Чи є пошук мінімального регулярного виразу неповною проблемою?


43

Я маю на увазі наступну проблему: я хочу знайти регулярний вираз, який відповідає певному набору рядків (наприклад, дійсні адреси електронної пошти) і не відповідає іншим (недійсні адреси електронної пошти).

Припустимо, що під регулярним виразом ми маємо на увазі деяку чітко визначену машину з кінцевим станом, я не знайомий з точною термінологією, але давайте погодимось про якийсь клас дозволених виразів.

Замість того, щоб вручну складати вираз, я хочу надати йому набір позитивних та набір негативних прикладів.

Тоді слід створити вираз, що відповідає + +, відкидає - і є мінімальним у певному чітко визначеному сенсі (кількість станів в автоматах?).

Мої запитання:

  • Чи була розглянута ця проблема, як її можна визначити дещо конкретнішим способом і чи можна її ефективно вирішити? Чи можемо ми розв’язати це в поліном час? Чи завершено НП, чи можемо ми його якось наблизити? Для яких класів виразів він би працював? Буду вдячний за будь-який вказівник на підручники, статті чи подібне, що обговорюють цю тему.
  • Чи пов’язано це якимось чином зі складністю Колмогорова?
  • Чи пов’язано це з будь-яким способом навчання? Якщо регулярний вираз узгоджується з моїми прикладами, в силу того, що він мінімальний, чи можемо ми сказати щось про його узагальнюючу силу на ще небачених прикладах? Який критерій мінімальності був би придатний для цього? Який із них був би більш ефективним? Чи має це зв’язок із машинним навчанням? Знову будь-які вказівки будуть корисні ...

Вибачте за безладне запитання ... Наведіть мене в правильному напрямку, щоб зрозуміти це. Дякую !


2
Наступна сторінка здається дуже актуальною для аспекту вивчення питання: people.dsv.su.se/~henke/ML/MERLIN.html
Цуйосі Іто

1
… А може й ні. Здається, що так чи інакше працює багато про навчання DFA.
Цуйосі Іто

Відповіді:


39

OPTkkP=NP

Щодо навчального питання: Kearns і Valiant довели, що ви можете кодувати RSA в DFA. Таким чином, навіть якщо мічені приклади походять від рівномірного розподілу, можливість узагальнення до майбутніх прикладів (також навіть виходячи з рівномірного розподілу) порушить RSA. Отже, ми вважаємо, що в гіршому випадку зазначення прикладів не допомагає вивчати DFA (у моделі PAC). Це один із класичних криптографічних показників твердості для навчання.

Обидва ці питання переплітаються завдяки тому, що ми називаємо теоремою бритви Оккама . В основному йдеться про те, що якщо у нас є процедура пошуку найменшої гіпотези з даного класу, яка відповідає зразку, позначеному гіпотезою того ж класу, то ми можемо PAC вивчити цей клас. Отже, враховуючи результат твердості RSA, ми очікували б, що знайти найменший послідовний DFA буде важко загалом!

Щоб додати позитивний результат навчання, Англуйн показав, що ви можете навчитися DFA, якщо вам вдасться скласти власні приклади, але для цього потрібна додаткова потужність, щоб мати змогу запитати "чи правильна моя гіпотеза?" Це також був навчальний документ у навчанні.

Щоб відповісти на ваше інше питання, це все справді пов’язано зі складністю Колмогорова, оскільки проблема навчання стає легшою, коли канонічне представлення цільової ДФА має низьку складність.


3
Ви перемогли мене останнім, сильнішим результатом! Кращу відповідь слід опублікувати пізніше !! 1 !!
Цуйосі Іто

ой вибачте! Я витратив достатньо часу на вивчення DFA, що мені довелося стрибати на цьому :)
Лев Рейзін

1
Про всяк випадок, я жартував у своєму попередньому коментарі. Звичайно, я радий бачити кращу відповідь!
Tsuyoshi Ito

1
тому іншими словами, ключовою відмінністю цієї проблеми від регулярного мінімізації DFA є наявність негативних прикладів, так?
Суреш Венкат

1
я не розумію без негативних прикладів найменший послідовний dfa має лише 1 стан - стан прийняття, який вказує на себе ...
Лев Рейзін

13

Я відповідаю на питання, пов'язані з навчанням.

Здається, ця проблема в літературі називається «навчання DFA».

Золото [Gol78] показало, що вирішити, задаючи k ∈ℕ та два кінцеві множини P і N рядків, чи існує детермінований автомат з кінцевими станами (DFA) з максимально k станами, що приймає кожну рядок Р і жодна з рядків в N . У статті [PH01], здається, обговорюються проблеми, пов'язані з цією мотивацією (їх може бути набагато більше; це якраз з’явилося, коли я намагався знайти відповідні документи в Google).

Список літератури

[Gol78] E Mark Gold. Складність ідентифікації автомата з даних даних. Інформація та контроль , 37 (3): 302–320, червень 1978. http://dx.doi.org/10.1016/S0019-9958(78)90562-4

[PH01] Раджеш Парех та Васант Хонавар. Навчання DFA з простих прикладів. Машинне навчання , 44 (1–2): 9–35 липня 2001 р. Http://www.springerlink.com/content/kr2501h2442l8mk1/ http://www.cs.iastate.edu/~honavar/Papers/parekh- dfa.pdf


1
Дякую за відповідь, переглядаю посилання. Чи можу я проголосувати за одну найкращу відповідь на цьому сайті? :) Знову ж мені збентежено, що я пропустив ціле підполе "DFA learning", хоча я вивчав машинне навчання роками.
Ласло Козма

@steve: Ви можете прийняти лише одну відповідь, але ви можете проголосувати скільки завгодно відповідей.
Jukka Suomela

2
Зауважимо, що [Gold78] також стверджує, що DFA можна дізнатися в поліноміальний час (всередині рамки навчальної ідентифікації в межах межі). Дивіться також останню книгу про граматичні умовиводи ( pagesperso.lina.univ-nantes.fr/~cdlh/book_webpage.html ) для огляду.
mgalle

@mgalle: Дякую за додаткову інформацію.
Цуйосі Іто

8

Протягом усієї дискусії передбачалося, що пошук мінімального регулярного виразу означає знаходження мінімального FSM, що розпізнає мову, але це дві різні речі. Якщо я правильно пам’ятаю, DFA можна мінімізувати в поліноміальний час, тоді як знайти мінімальний регулярний вираз, який представляє задану регулярну мову, важко PSPACE. Останнє - це один із тих результатів, які належать до фольклору теорії автоматів, але доказів яких не можна знайти ніде. Я думаю, це зазначено як вправу в книзі Пападімітру.


1
Правильно, що довжина регулярного вираження і кількість станів у DFA - це різні об'єктивні функції. Я відповів про мінімізацію DFA, оскільки він має приємнішу властивість (наприклад, існує унікальна DFA з мінімальною кількістю штатів) і з того, як було задано питання, у мене склалося враження, що точна цільова функція є гнучкою.
Цуйосі Іто

Випадковий коментар: враховуючи той факт, що регулярний вираз розміром f (n) може бути змодельований NFA розміром O (f (n)), мінімізація регулярних виразів більше схожа на мінімізацію NFA, що, очевидно, складніше.
Сісен-Чі Чанг 27 之

дещо з цього стосується у коментарях до відповіді @ keith
Лев Рейзін

2

Дивіться також цю публікацію про переповнення стека. Книга, яку ви шукаєте, здається, вступ до теорії обчислень Майкла Сіпсера.

Ви задаєте кілька різних питань, тож приймайте їх по одному:

Is finding a minimal Finite State Machine for a language L NP-complete?

Ні, це не так. Пост переповнення стека обговорює наївний алгоритм n ^ 2 для зменшення FSM до його мінімального розміру. (Працюючи назад від стоп-станів, комбінуйте стани, які "точні" в точному сенсі.)

Мабуть (я не перейшов за посиланням), для цього є алгоритм n log n.

I have a training set of strings, how do I find the minimal FSM 
that separates the good examples from the bad?

Коли ви це фразували, ваш навчальний набір описує обмежену мову. Кінцеві мови тривіально відображаються на FSM - створюйте лінійний набір станів, що закінчуються в стап стопі для кожної рядки на вашій мові, не потрібно циклічно. Потім запустіть алгоритм мінімізації FSM на отриманій машині.

Is this a good way to build a classifier?

Я б не сказав цього. Мінімізація FSM не змінює її дискримінаційну силу - ось такий сенс. Мінімальний FSM приймає саме набір рядків як будь-який еквівалентний не мінімальний FSM.

Взагалі, регулярні вирази непридатні для класифікації нових даних. Для будь-якого обмеженого навчального набору ви отримаєте RE / FSM, який відповідає лише позитивним прикладам у цьому наборі, без можливості генералізувати нові дані. Я ніколи не бачив підходу, який намагається знайти нескінченну регулярну мову, яка відповідає деякому навчальному корпусу.

Для машинного навчання ви шукаєте щось на зразок наївного класифікатора Байєса, дерева рішень, нейронної мережі чи чогось більш екзотичного. Штучний інтелект Рассела та Норвіга : сучасний підхід - це так само хороше місце, як і будь-який, щоб знайти огляд методик машинного навчання (і багато, багато іншого).


2
Я не згоден з цією відповіддю. Якщо ви просто візьмете всі позитивні приклади і побудуєте FSM, який приймає лише ті приклади і більше нічого, ваш FSM може бути величезним. З іншого боку, найменший FSM, який приймає всі позитивні приклади і не має негативних прикладів, може бути набагато меншим.
Jukka Suomela

3
Я думаю, що в оригінальному питанні це було досить зрозумілим: "вираз, який відповідає +, відкидає - і є мінімальним у певному визначеному сенсі".
Юкка Суомела

5
@keith різниця між вашою відповіддю та моєю досить тонка. коли ви будуєте свій dfa, створюючи нові стани для кожного рядка у зразку, ви зобов’язуєтесь використовувати мову, яка може бути іншою, ніж та, яку представлено мінімальним dfa, що розділяє позитивні та негативні приклади. тож алгоритм для генерування dfa та його мінімізації, на жаль, не робить!
Лев Рейзін

1
Я не впевнений, що розумію цю відмінність. Якщо у нас є набір позитивних і негативних прикладів, у нас є сім'я мов, які всі відповідають цим обмеженням. для кожного є (набір) мінімальних dfas. Поки я повертаю мінімальний розмір DFA, як це важливо, яку з цих мов я вибираю.
Суреш Венкат

1
Для навчання ви хочете вибрати найменший DFA, оскільки він має найкращу здатність до узагальнення. Процедура @ kieth не буде вибирати мінімальну DFA для всіх цих мов, лише найменшу для мови, яка зобов’язана використовувати його процедуру.
Лев Рейзін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.