Фон:
Учитывая два детерминированных конечных автомата A и B, мы формируем произведение C, позволяя состояниям в C быть декартовым произведением состояний в A и состояний в B. Затем мы выбираем переходы, начальное состояние и конечные состояния, так что язык, принятый C является пересечением языков для A и B.
Вопросов:
(1) Можем ли мы «разделить» C на B, чтобы найти A? Является ли А даже уникальным, с точностью до изоморфизма? Мы заботимся о диаграммах состояния, а не о языках здесь и ниже. Таким образом, мы не позволяем сжимать диаграммы состояний, чтобы уменьшить количество состояний.
(2) Если A уникален, существует ли эффективный алгоритм его поиска?
(3) Каждый ли детерминированный конечный автомат имеет уникальную факторизацию на «простые числа». Штрих здесь означает автомат, который не может быть разложен на множители, то есть записан как произведение двух меньших автоматов.
- Работать с @MichaelWehar
источник
Ответы:
Взгляните на эту статью MFCS 2013 , которая изучает композицию в автоматах. Возможно, это поможет.
источник
Давайте дадим очевидный способ восстановить один «фактор» автомата продукта. Если и A = A 1 × A 2 обозначает автомат произведения, то если мы определим π 1 ( ( q , q ′ ) ) : = q т.е. просто забываю о A 2Aя= ( Qя, δя, д0 я, Fя) , я = 1 , 2 A= A1× A2
Поэтому, если мы знаем, что автомат является декартовым (или внешним) автоматом произведения, мы можем легко восстановить факторы.
Но я думаю, что это не то, что вы имеете в виду в отношении других ваших вопросов. Здесь возникают два вопроса (далее под автоматным изоморфизмом я подразумеваю изоморфный как граф состояний, т. Е. Безотносительно к начальным или конечным состояниям, как вы сказали, язык здесь не так важен):
1) Для любого автомата, который изоморфен производному автомату (т.е. может быть каким-либо образом разложен) некоторого конечного числа автоматов, является ли это разложение по существу уникальным? (учитывая, что факторы не могут быть разложены дальше, иначе явно нет). Более точно, если для неразложимых автоматов A i
2) для любых двух автоматов , существует ли третий автомат С таким образом, что = В × С .A, Б С A= B× C
Легко вывести необходимые условия, чтобы это имело место, но я не вижу каких-либо простых достаточных критериев для того, чтобы один автомат был фактором другого.
Х. Штраубинг, П. Вейль Введение в конечные автоматы и их связь с логикой,
Сайт курса с большим количеством информации.
Примечание . Существует также другое понятие « факторинга », см. Википедию: фактор-автомат , но это просто правило для коллапсирующих состояний и используется в алгоритмах обучения / вывода языка или минимизации состояний.
источник