Синтез скінченних автоматів

Матеріал з testwiki
Версія від 18:03, 29 червня 2024, створена imported>Олюсь
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Задача синтезу скінченного автомата полягає в створенні такого автомата акцептора, який би розпізнавав дану регулярну мову.

Конструкція Томпсона

Конструкція Томпсона - це спосіб побудови НДСкА який розпізнає мову заданого регулярного виразу. Придуманий Кеном Томпсоном для реалізації регулярних виразів в текстовому редакторі QED для Compatible Time-Sharing System.

Регулярний вираз Відповідна йому регулярна мова Відповідний йому НДСкА
Файл:Tompson emptyset.png
x, xΣ{ϵ} {x} Файл:Tompson one char.png
r1r2 - різні регулярні вирази L(r1)L(r2) - різні мови Файл:Tompson two FA.png } - автомати що не містять спільних станів
r1+r2 L(r1)L(r2) Файл:Tompson add.pngШаблон:Clear Заключний стан в об'єднанні єдиний! Заключні стани обох автоматів перестають бути заключними.
r1r2 L(r1)L(r2) Файл:Tompson mult.pngШаблон:Clear Хоча краще злити вхід A2 і заключний стан A1
r1* L(r1)* Файл:Tompson closure.png

Варто також зауважити, що автомат зручніше будувати, коли регулярний вираз записаний у формі ПОЛІЗ.

Перед тим як застосовувати автомат для перевірки рядків на відповідність шаблону, його детермінізують та мінімізують.

Джерела

Шаблон:Math-stub Шаблон:Compu-prog-stub