Учитывая два набора строк над алфавитом Σ , можем ли мы вычислить наименьший детерминированный конечный автомат (DFA) M такой, что A ⊆ L ( M ) и L ( M ) ⊆ Σ ∗ ∖ B ?
Другими словами, представляет собой набор положительных примеров. Каждая строка в A должна быть принята DFA. B представляет собой набор отрицательных примеров. Никакая строка в B не должна быть принята DFA.
Есть ли способ решить эту проблему, возможно, с использованием методов минимизации DFA ? Я мог бы представить себе создание DFA-подобного автомата, который имеет три вида состояний: принимающие состояния, отклоняющие состояния и состояния "не заботятся" (любой вход, заканчивающийся в состоянии "не заботиться", может быть принят или отклонено). Но можем ли мы найти способ свести это к обычному DFA?
Вы можете думать об этом как о проблеме изучения DFA, используя положительные и отрицательные примеры.
Это вдохновлено Regex Golf NP-Complete? , который задает аналогичные вопросы для регулярных выражений вместо DFA.