[[szakdoli:menu|Szakdolgozat: Véges automaták és reguláris nyelvek kapcsolata]] \\ ====== Láncszabály mentesítés ====== ===== A szabály alkalmazása ===== A láncszabály mentesítés végrehajtásához adjuk hozzá a "Feldolgozás műveletei" listához a "Láncszabály mentesítés" kapcsolót. A szabály végrehajtása a "feldolgozás" gomb megnyomására történik. A szabály lefutása során kiírja az indulási állapotot és a lefutás utáni eredmény állapotot. ===== A szabály folyamata ===== Minden egyes szabályt végig kell vizsgálni, hogy van-e köztük olyan, amelynek bal és jobb oldalán is csak egy NT elem található. Ha találtunk ilyen szabályt, akkor úgy alakítjuk át a szabályt, hogy a jobb oldalon található NT elem összes szabályát létrehozzuk a bal oldalon szereplő NT-al.\\ \\ Pl.:\\ A -> B | Ca\\ B -> c | d\\ \\ Átalakítás után a következő szabály képződik:\\ A -> c | d | Ca\\ B -> c | d\\ \\ Figyelni kell arra, hogy ha a folyamat során önmagába forduló szabály jönne létre, azt mindig ki kell venni az eredményből!\\ \\ Ezt a folyamatot addig hajtjuk végre, ameddig el nem fogynak az átalakítandó szabályok. A végrehajtás sorrendje nem számít mivel tetszőleges sorrendben végrehajtva a műveletet ugyanarra az eredményre fogunk jutni!\\ \\ Megjegyzés: előfordulhat, hogy egy átalakítás eredményeként ugyanahhoz a bal oldali NT-hez egy másik de szintén átalakítandó szabály jön létre. Természetesen akkor az így létrejövő új szabályon a műveletet végre kell hajtani. A pontos működés érdekében mindig a teljes szabályhalmazt kell ellenőrizni és nem csak a maradék szabályokat!\\ \\ A szabály algoritmusának Petri hálója:\\ \\ {{:szakdoli:lancszabalymentesites.png?800}}