Täydentäviä muistiinpnoj epädeterministisistä äärellisistä utomteist Antti-Juhni Kijnho 2. mrrsuut 25 NFA Trstelln seurv NFA:t. 2 3 Sen toimint merijonoll voidn esittää päätöspuun: 3 3 2 2 3 3 TIEA24 Automtit j ieliopit, esä 22
Yhtenäiset nuolet meritsevät tilsiirtymiä, toniset nuolet syötteen etenemistä. Rsi troitt, että siirtymää ei ole, j ympyröinnit troittvt viimeisen tiln tulint hyväsyväsi ti ei-hyväsyväsi. Kunin syötemerin tsoll olevt tilt ovt ne tilt, joiss NFA voi ennen yseisen merin luemist oll. 2 Spontnien siirtymien poisto NFA:st pitää toisinn poist spontnit siirtymät (eli ε-siirtymät). Poistoon soveltuu esimerisi seurv lgoritmi:. Poist utomtist ii ε-siirtymät jostin tilst itseensä. 2. Vlitse join ε-siirtymä jostin tilst q johonin tiln q 2. 3. Joiselle siirtymälle q 2 c q 3 lisää siirtymä q c q 3 (tässä c voi oll ε). 4. Poist siirtymä q ε q 2. Tätä toistetn, unnes utomtiss ei ole enempää ε-siirtymiä. Voit lisäsi poist utomtist tilt, joihin ei pääse millään tvll lutilst. Trstelln esimerisi seurv NFA:t: ε ε A A i A2 s A3 s A4 A5 B B o B2 i B3 r B4 B5 Vlitn ε-siirtymä ε A. Kopioidn siirtymä A A siirtymäsi A siirtymäsi. Poistetn siirtymä ε A. ε A A i A2 s A3 s A4 A5 B B o B2 i B3 r B4 B5 Vlitn ε-siirtymä ε B. Kopioidn siirtymä B B siirtymäsi B siirtymäsi. Poistetn siirtymä ε B. A A i A2 s A3 s A4 A5 B B o B2 i B3 r B4 B5 2
Poistetn tilt A j B, joihin ei enää pääse lutilst mitenään. A i A2 s A3 s A4 A5 B o B2 i B3 r B4 B5 3 Osjouoonstrutio Luse. Joiselle NFA:lle M = (Q, Σ, δ, q, F ) on DFA M, jolle pätee L(M) = L( M). Todistus. Voidn olett, että δ(q, ε) = pätee iill q Q. Määritellään: Q = P(Q) ˆq = {q } F = { S Q S F } ˆδ : (ˆq, c) q ˆq δ(q, c) M = ( Q, Σ, ˆδ, ˆq, F ) Nyt L(M) = L( M) seur suorviivisell indutioll merijonon pituuden suhteen. Mtemtion truudell tehtäessä todistus loppuisi tähän. Teen tässä mllisi todistusen hiemn tremmin. Meritään w:n päätöstilojen jouo M:ssä Q M w j sen päätöstil M:ssä q M w. Näin siis pätee Q M w = { q Q q w q } Riittää osoitt, että iill w Σ pätee Q M w = q M w. Edetään indutioll w:n pituuden suhteen. Perustpusess trstelln tyhjää merijono. Kos spontnit siirtymät on poistettu, pätee δ(q, ε) =, j siten pätee myös Q M w = {q }. Toislt suorn määritelmästä seur qw M = ˆq = {q }. Indutioseleess trstelln epätyhjää merijono w = vc, missä v Σ j c Σ pätevät. Tehdään indutio-oletus, että Q M v = q M v pätee. Nyt 3
voidn lse: Q M w = Q M vc = { q Q q vc q } = { q Q q Q: q v q q c q } = { q Q q Q M v : q c q } = { q Q q Q M v : q δ(q, c) } = δ(q, c) q Q M v j q M w = q M vc = ˆδ(q M v, c) = δ(q, c) q q M v Nähdään, että indutio-oletusest Q M v = q M v seur väite Q M w = q M w. Osjouoonstrution ide tuli esille jo edellisessä todistusess: Poistetn ii ε-siirtymät. Muodostetn DFA:n tilt NFA:n tilojen osjouoist. DFA:n tilsiirtymät muodostuvt seurvsti: ˆδ(ˆq, c) = δ(q, c) q ˆq DFA:n til on hyväsyvä jos se sisältää inin yhden NFA:n hyväsyvän tiln. Jos tätä ide noudtt orjllisesti, tulee n-tilisest NFA:st 2 n -tilinen DFA. Tämä ei ole järevää, os suurin os näin syntyvistä DFA-tiloist on yleensä trpeettomi. Sen sijn nntt noudtt lis lsent:. Poistetn ii ε-siirtymät. 2. Alustetn DFA sellisesi, että siinä on vin lutil ilmn siirtymätieto. 4
3. Niin un uin DFA:ss on tiloj, joill ei ole siirtymätieto, toistetn seurvi: () Vlitn join DFA:n til, jolle ei ole vielä siirtymiä lsettu. () Lsetn vlitulle tillle iill meristön mereillä siirtymät yllä esitetyn vn muisesti. (c) Miäli siirtymän ohteesi tulee tiloj, joit DFA:ss ei ole, lisätään ne DFA:hn (ilmn siirtymätieto). 4. Lopusi selvitetään, mitä tilt ovt hyväsyviä. Tämä on helppo tehdä tuluoesitysessä. Otetn esimerisi seurv NFA: ε, {, } {} {} Alustetn DFA: Lsetn tiln {} siirtymät: {} {} {, } {} Lisätään puuttuvt tilt ilmn tilsiirtymätieto: Lsetn tiln {, } siirtymät: {} {, } {} {, } {} {} {, } {} {, } {, } {} {} Uusi tiloj ei tullut. Lsetn tiln {} siirtymät: {} {, } {} {, } {, } {} {} {} 5
Lisätään puuttuv til ilmn tilsiirtymätieto: Lsetn sen tilsiirtymät: {} {, } {} {, } {, } {} {} {} {} {, } {} {, } {, } {} {} {} Puuttuvi tilsiirtymätietoj ei enää ole. Selvitetään vielä hyväsyvät tilt: {} {, } {} {, } {, } {} {} {} Näin meillä on vlmis DFA. Piirretään vielä sen grfiesitys äytten DFA:lle sopivmpi tilnimiä (A = {}, B = {, }, C = {} j D = ): A B C D, 6