З огляду на два рядки x і y, я хочу створити DFA мінімального розміру, який приймає x і відхиляє y. Один із способів зробити це - жорстокий пошук. Ви перераховуєте DFA, починаючи з найменшого. Ви спробуйте кожен DFA, поки не знайдете той, який приймає х і відхиляє y.
Я хочу знати, чи є якийсь інший відомий спосіб пошуку або побудови DFA мінімального розміру, який приймає x і відхиляє y. Іншими словами, чи можемо ми перемогти грубі сили пошуку?
Детальніше:
(1) Я дійсно хочу, щоб алгоритм знаходив DFA мінімального розміру, а не мінімального розміру DFA.
(2) Я не просто хочу знати, наскільки великий чи малий мінімальний показник DFA.
(3) Тут я зосередився лише на тому випадку, якщо у вас були два рядки x і y.
Редагувати :
Додаткова інформація для зацікавленого читача:
Припустимо, і - двійкові рядки довжиною не більше . Відомий результат, що існує DFA, який приймає і відхиляє з максимум станами. Зауважте, що існує близько DFA з двійковим алфавітом і не більше станів. Таким чином, підхід грубої сили не вимагає від нас перерахувати через більш ніж DFA. Звідси випливає, що підхід грубої сили не міг зайняти набагато більше часу.y n x y √ n √ √ n √ n √
Слайди, які мені здаються корисними: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf