Изменения

Перейти к: навигация, поиск

Участница:Наталья Юльцова

274 байта добавлено, 22:40, 1 января 2021
Преобразование регулярного выражения в ДКА
===Пример===
 
[[Файл:0+1.png|200px|thumb|рис. 2.1]] [[Файл:(0+1)star.png|250px|thumb|рис. 2.2]] [[Файл:(0+1)star1(0+1).png|200px|thumb|left|рис. 2.3]] [[Файл:removeEps.png|200px|thumb|left| рис. 3]] [[Файл:minDKA.png|200px|thumb|left|рис. 4]]
 
Преобразовать регулярное выражение (0|1)*1(0|1) в ДКА.
#{| class = "wikitable" !Регулярное выражение!!Автомат|-align="center"|Преобразуем регулярное выражение <tex>(0|1)^*1(0|1) </tex> в ε-НКА. Построим сначала автомат для <tex>0|1 (рис. 2.1)</tex>. Это выражение имеет вид <tex>R|S</tex>.| style="background-color:white;" | [[Файл:0+1.png|200px]]|-align="center"|Далее считаем, что <tex>(0|1) </tex> это подвыражение вида R, и строим выражение <tex>(0|1)* </tex>.| style="background-color:white;" | [[Файл:(рис. 2.20+1)star. png|200px]]|-align="center"|Выражение <tex>(0|1)*1 </tex> имеет вид RS, <tex>(0|1)*1(0|1) </tex> имеет тот же вид .| style="background-color:white;" | [[Файл:(рис. 2.30+1)star1(0+1). png|200px]]#|-align="center"|Удалим ε-переходы, согласно алгоритму из[[Автоматы с eps-переходами. Eps-замыкание | статьи]], получим НКА. (рис| style="background-color:white;" | [[Файл:removeEps. 3)png|200px]]|-align="center"#|Преобразуем НКА в ДКА по [[Построение по НКА эквивалентного ДКА, алгоритм Томпсона | алгоритму Томпсона]] и [[Минимизация ДКА, алгоритм Хопкрофта (сложность O(n log n)) | минимизируем ДКА]] (рис. 4)| style="background-color:white;" | [[Файл:minDKA.png|200px]]|-align="center"|}
=Преобразование ДКА в регулярное выражение=

Навигация