Минимальный DFA, удовлетворяющий ограниченному взгляду на язык

12

Скажем, у кого-то есть язык , но вы не знаете, какие строки на самом деле являются частью языка. Все, что есть, - это конечное представление языка: конечный набор строк о которых известно, что они есть в языке, и конечный набор строк , которые известны не быть на языке.LΣALB(ΣL)

Например, допустим, у меня есть и . Я мог бы иметь язык , так как и согласуются с , или я мог бы иметь полностью другой язык.B = { b , a a b , a a a b a } L = { a 2 i + 1 b j | i , j N } A B LA={ab,aaab,aaaaabb}B={b,aab,aaaba}L={a2i+1bj | i,jN}ABL

Мой вопрос: существует ли известный способ создания DFA (детерминированных конечных автоматов), который принимает строки в и отклоняет строки в с минимальным или почти минимальным числом состояний? В чем сложность этой проблемы? Насколько это хорошо при аппроксимации (при условии, что имеет довольно низкую описательную сложность, а и большие)?B L L A BABLLAB

Оригинальный вопрос на math.stackexchange.com. Я решил сделать репост здесь, не получив ответов на исходный вопрос и не зная, где их искать. Если бы кто-то мог указать мне на исследования в этой области, это было бы очень ценно.

Франсиско Мота
источник
2
Хорошо написанный ответ Льва на вопрос, который я связал, уже охватывает неприемлемость.
Цуёси Ито
6
Я также написал сообщение в блоге, которое более подробно, чем мой оригинальный ответ cstheory.blogoverflow.com/2011/08/on-learning-regular-languages
Лев Рейзин
1
Я не вижу разницы между «вашей версией» и результатом неприемлемости, процитированным Левом в ответе. Кроме того, я не вижу связи между «вашей версией» и «движением в другую сторону».
Tsuyoshi Ito
1
@TsuyoshiIto На самом деле, похоже, что Лев отвечает «моя версия»! Я читал пост в блоге выше, и это не так (по крайней мере, я не нашел его). Но оригинальный ответ Льва сделал. Что касается связи между «моей версией» и «идти другим путем» ... Если мы можем генерировать такие и , это означает, что ответ на «мою версию» не всегда отрицательный. В работе Пареха и Хонавара эта идея фактически используется для доказательства того, что простые ДФА могут быть изучены с произвольно высокой вероятностью. В любом случае, как можно или как закрыть этот вопрос? BAB
Франциско Мота

Ответы:

5

Как вы уже знаете из комментариев, поиск минимального DFA, удовлетворяющего конечному набору положительных и отрицательных примеров, является -hard. Однако не вся надежда потеряна, если вы захотите немного изменить свою парадигму обучения, тогда мы сможем вернуться в .ПNPP

Предположим, что вы пытаетесь выучить неизвестный DFA минимальный для некоторого языка . Если вы разрешаете запросы на членство оракула и выступаете в роли учителя, отвечая на следующий вопрос: Учитывая предложенный DFA , распознает ли он ? Если нет, можете ли вы привести контрпример?L W G L WWLWGLW

Обратите внимание, что если оракул имеет доступ к он может сравнить с в поли-времени, так как тестирование равенства между обычными языками легко. Генерация контрпримеров также может быть выполнена за полиномиальное время.G WWGW

В этом контексте вы можете выучить за полиномиальное время, используя алгоритм Angluin ( 1987 ; pdf ) (или его уточнение по Шапире ; см. Раздел 5.4.5). Для получения дополнительной информации об этой модели, вот два вопроса о cstheory и CS.SE об этом:W

Артем Казнатчеев
источник
0

Мне кажется, что вы можете использовать уточнение эквивалентности Myhill-Nerode для этой проблемы.

Мы можем определить , если существует таким образом, что и . Это означает, что любой автомат, отделяющий от должен находиться в разных состояниях после чтения и .x Σ u x A v x B A B u vuvxΣuxAvxBABuv

Достаточно изучить это соотношение по префиксам элементов и . Это даст вам нижнюю границу количества нужных вам штатов. Я не уверен, что это напрямую дает вам способ построить минимальный автомат, но это по крайней мере путь для исследования.BAB

Денис
источник
-1

Я думаю, что эта проблема, возможно, была точно сформулирована спрашивающим. Опрашивающий, очевидно, хочет алгоритм, который обобщает бесконечные слова на основе конкретных примеров конечных слов, используя некоторую механизированную индукцию, то есть распознавая очевидные закономерности в примерах.

В дополнение к некоторым исследованиям теории КС, цитируемым в комментариях, в этой области также есть некоторые более эмпирические исследования, например, ниже, с использованием ANN для создания FSM из примеров. Обратите внимание, что всегда можно запустить стандартный алгоритм минимизации DFA для результата. Библиотека AT & T FSM хороша для работы в этой области.

Спрашивающий не конкретизирует свою проблемную область, что может помочь понять структуру примеров и получить более конкретные ссылки. Однако, один пример, который можно увидеть, это алгоритмы ИИ в играх, которые используют алгоритмы FSM. Я подозреваю, что в некоторых случаях автоматы изучаются на примерах с использованием алгоритмов обучения.

[1] Изучение класса больших конечных автоматов с рекуррентной нейронной сетью C. Lee Giles, 1, BG Horne, T. Lin 1995

[2] Обучение FSM с самокластеризованными рекуррентными сетями , Zeng & Smyth 1993

[3] библиотека AT & T FSM

ВЗН
источник
1
ваша вторая ссылка просто ссылки на этот вопрос. Где это предполагается для ссылки?
Артем Казнатчеев
упс, спасибо, исправлено
vzn