Эвристический алгоритм уменьшения множества допустимых корней в задаче о нахождении минимального языка
Автор: Портнов А.М.
Журнал: Теория и практика современной науки @modern-j
Рубрика: Основной раздел
Статья в выпуске: 6-2 (12), 2016 года.
Бесплатный доступ
В статье решается проблема нахождения минимального языка для дополненного максимального префиксного кода. Для двух конечных языков можно определить соотношение эквивалентности. Задача проверки эквивалентности двух конечных языков сводится к задаче нахождения их минимальных языков и проверке того, что это один и тот же язык. Одной из подзадач этой проблемы является уменьшение множества корней и, следовательно, вычислительной сложности. Данная статья описывает соответствующий алгоритм и возможные методы его применения.
Эвристические алгоритмы, вычислительная сложность, максимальный префиксный код, минимальный язык, множество корней
Короткий адрес: https://sciup.org/140269432
IDR: 140269432
Текст научной статьи Эвристический алгоритм уменьшения множества допустимых корней в задаче о нахождении минимального языка
Computing Classification System 1998: E.4Mathematics Subject Classification 2010: 68P30
Теоретическая основа алгоритма заключается в следующем: согласно [1], для каждого «хорошего» корня v в дополненном префиксном коде найдётся слово vn .
С учётом этого, а также механизма формирования максимальных префиксных кодов, в дополненном префиксном коде, в случае если n ≠ 1, найдутся так же слова с префиксом vn - 1, кроме самого слова vn . Количество данных слов (с префиксом vn - 1 , но заканчивающихся не на v ) будет не меньше m -1, где m – длина минимального языка. Общая формула для этого числа mk + r -1, где m – длина минимального языка, k – число итераций, прошедших на этой ветви максимального префиксного кода, а r – число добавившихся на этой ветви случайных слов.
Более того, это повторяется рекурсивно при дальнейшем уменьшении степеней n .
Всё это касается лишь «хороших» корней. «Плохие» корни могут обладать подобными свойствами лишь случайно. Опишем этот алгоритм:
Алгоритм исследования свойств корней
Шаг 1. i =1;
Шаг 2. Рассмотрим i -й корень множества F ;
Шаг 3. n := степени F [ i ];
Шаг 4. Если n =1, то перейти на шаг 8. j =1;
Шаг 5. Определим число слов в MP(+), обладающих префиксом F [ i ] в степени n -1. Запишем его как m j ;
Шаг 6. n := n -1, j := j +1; если n >1, то перейти на шаг 4;
Шаг 7. m i =min( m j );
Шаг 8. Перейти к следующему корню, i := i +1. Если следующего корня нет, то закончить выполнение алгоритма.
Кроме того, опираясь на вышеприведённые формулы, мы можем оценить максимальное возможное m для минимального языка, включавшего бы этот корень. В ряде случаев этого уже достаточно, чтобы корень можно было исключить. Для этого мы предлагаем такой метод:
Алгоритм исключения
Шаг 1 . Каждому корню сопоставляется число P , обозначающее количество слов в максимальном префиксном коде, для которых он является префиксом.
Шаг 2 . Множество корней сортируется по возрастанию этого показателя.
Шаг 3 . Рассматриваем некий корень, максимально возможная длина минимального языка при включении которого составляет N . Если сумма P этого корня и N -1 корней с самым большим P меньше общей длины нашего дополненного максимального префиксного кода, то этот корень заведомо является «плохим» и может быть удалён из множества корней.
Возможно, есть и более эффективные методы
Данный алгоритм не даёт нам никакой информации о корнях первой степени, для их просева необходимо использовать дополнительный алгоритм.
Данный алгоритм является эвристическим и не гарантирует, что ни один «плохой» корень не попадёт в просеянное множество (но гарантирует, что его не покинет ни один «хороший»), однако он достаточно эффективен в удалении из множества плохих корень со степенью больше 1.
Опираясь на этот алгоритм, мы можем наложить серьёзные ограничения на полный перебор вариантов.
Во-первых, мы можем определить, пользуясь описанным выше способом максимальную и минимальную возможные длины минимального языка. В самом деле, если взять q корней с самым большим P и сложить их P , то, если полученное число оказалось меньше числа слов в MP(+), значит, минимальная длина минимального языка больше, чем q . И наоборот, есть взять s корней с самым маленьким P и сумма их P больше числа слов в MP(+), значит максимальная длина минимального языка меньше, чем s . Таким образом, мы можем определить промежуток, в котором находится длина минимального языка | L |.
Во-вторых, для каждой возможной длины минимального языка l мы можем рассматривать лишь те из них, у которых показатель mi ≥ l . Более того, если число таких корней меньше, чем l , то мы можем заключить, что | L | не равно рассматриваемому l .
Всё это накладывает серьёзные ограничения на алгоритм полного перебора. Сложность получаемого алгоритм нуждается в дополнительном исследовании.
Список литературы Эвристический алгоритм уменьшения множества допустимых корней в задаче о нахождении минимального языка
- Melnikov В. The equality condition for infinite catenations of two sets of finite words. // Int. J. of Found. of Comp. Sci., Vol. 4, No. 3 (1993) 267-274.
- Алексеева А.Г. Применение итераций конечных языков в алгоритмических задачах теории формальных языков.
- Алексеева А.Г., Мельников Б.Ф. Итерации конечных и бесконечных языков и недетерминированные конечные автоматы. // Вектор науки Тольяттинского Государственного университета, 2011, №3(17), с 30-33.
- Бросалина А. Оценка эвристических алгоритмов построения регулярного выражения по конечному автомату. // Материалы II Международной научно-практической конф. «Компьютерные технологии в наук, производстве, социальных и экономических процессах». Новочеркасск, 2001. - Ч.1 - С. 11.
- Лаллеман Ж. Полугруппы и комбинаторные приложения - М.: Мир, 1985.
- Мельников Б. Алгоритм проверки равенства бесконечных итераций конечных языков. // Вестник Московского университета, сер.15, №4 (1996) 49-54.
- Портнов А.М. Компактное представление максимального префиксного кода в виде списка замен. // сборник Всероссийской научно-практической internet-конференции «Междисциплинарные исследования в области математического моделирования и информатики», 18-19 июня 2013, с. 37-39.
- Портнов А.М., Мельникова Е.А. Алгоритмы построения минимального языка для некоторых конечных языков // сборник статей II Международной научно-практической конференции «Теоретические и практически вопросы развития научной мысли в современном мире», Уфа, 29-30 апреля 2013. - Ч.1 - с. 21-24.