Как использовать конструкцию пересечения для формирования DFA?

Я выполняю домашнее задание по теории вычислений и немного запутался, как объединить 2 DFA. В книге говорится, что для этого используется "конструкция пересечения", но я не уверен, что это такое. Вот 2 примера:

enter image description here

enter image description here

27
задан Bart 23 March 2013 в 10:48
поделиться

1 ответ

Это: {s∈ {a, b, c} ∗: за каждым a в s сразу следует ab} {s∈ {a, b, c} ∗: за каждым a в s сразу следует ab} и {s∈ {a, b, c} ∗: каждому c в s непосредственно предшествует ab} enter image description here

Спереди и еще один автомат, вы можете присоединиться состояния "0" и "2".

и вам нужно сохранить это ...

Существует точный способ выполнения автоматов для скрещивания языков. Пусть AA и BB - входные автоматы. Случаи нового автомата будут все пары состояний AA и BB, то есть SA∩B = SA × SBSA∩B = SA × SB, начальное состояние будет iA∩B = ⟨iA, iB⟩iA∩B = AiA, iB⟩, где iAiA и iBiB - начальные состояния AA и BB, и FA∩B = FA × FBFA∩B = FA × FB, где FXFX обозначает набор принимающих состояний XX. Наконец, функция перехода δA∩BδA∩B определяется следующим образом для любой буквы α∈Σα∈Σ и состояний p1, p2∈SAp1, p2∈SA, q1, q2∈SBq1, q2∈SB:

1p1, q1⟩− → −−A∩B α ⟨p2, q2⟩ тогда и только тогда, когда p1− → Aα p2andq1− → Bα q2 ⟨p1, q1⟩ → A∩B α ⟨p2, q2⟩ тогда и только тогда, когда p1 → A α p2andq1 → B α q2 Обратите внимание, что такой автомат обычно не является минимальным (например, пересечение может быть просто пустым языком). Кроме того, может быть полезно (но не обязательно) сделать входные автоматы минимальными, поскольку выходные данные имеют квадратичный размер. // Ссылка: math.stackexchange.com Happy Coding ...

0
ответ дан 28 November 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: