Есть ли у кого-нибудь прямое описание алгоритма построения объединения двух данных DFA? Например, скажем, у нас есть два DFA более {0,1}, где
{w|w has an odd number of characters}
w has states A and B
delta | 0 | 1
----------------
A | B | B
----------------
B | A | A
{x|x has an even number of 1s}
x has states a and b
delta | 0 | 1
----------------
a | a | b
----------------
b | b | a
У меня есть итоговая таблица переходов, в которой объединение выглядит так:
delta | 0 | 1
----------------
Aa | Ba | Bb
----------------
Ab | Bb | Ba
----------------
Ba | Aa | Ab
----------------
Bb | Ab | Aa
У меня есть иллюстративное решение в моих лекционных заметках, но я хотел бы посмотреть, как другие описали бы его. Из этого я вижу, что мы по существу «умножаем» эти две исходные таблицы, используя их значения состояний, чтобы получить большую таблицу переходов. Таким образом, DFA можно извлечь из таблицы результатов. Это звучит правильно и должно ли это работать во всех случаях DFA, или я что-то упускаю?