Felhasználói eszközök

Eszközök a webhelyen


szakdoli:autokezel

Szakdolgozat: Véges automaták és reguláris nyelvek kapcsolata

Véges automata modul felépítése, kezelése

Ezen modulon belül tudunk elkészíteni egy véges automata modellt, és akár annak a működését szimuláltatni vagy át tudjuk konvertáltatni az elkészült automata szerkezetét nyelvi leírássá.

Megjegyzés: a rendszer megjegyzi az éppen szerkesztett automata adatait, és egy újbóli lap betöltése vagy frissítés esetén megjeleníti azokat, nem vesznek el az adatok!

Szerkesztő felület kezelése

Szerkesztő ablak

Az automata összeállítására egy méretében módosítható szerkesztőfelület áll rendelkezésünkre. A szerkesztőfelület mérete a jobb alsó sarkában található kis háromszög alakú elem megfogásával/mozgatásával változtatható.

Ezen felületen belül helyezhetjük el az „állapot” objektumokat és összeköttetéseket tudunk létesíteni az egyes objektumok között.

Új állapot felvétele

A szerkesztő ablak bal felső sarka felett látható az „Új állapot:” megnevezés és mellette egy üres állapot objektum (kör). Ezt az objektumot megfogva egér bal gombjának lefogásával tudjuk a szerkesztő felületre mozgatni. Ahol elengedjük az egér bal gombját ott elhelyeződik egy új állapot objektum.

Megfigyelhető, hogy elengedés után automatikusan értéket kap az állapot. A rendszer megkeresi az ABC-ben legelöl lévő olyan karaktert, amely még nincs használva a felületen és annak nevezi el az objektumot. (A..Z)

Új átmenet felvétele

Két állapot objektum közé úgynevezett átmenet objektumot hozhatunk létre. Ezt úgy tudjuk végrehajtani, hogy ha az egeret ráhelyezzük egy állapot objektumra, akkor a felső részében megjelenik egy kék kis pötty. Helyezzük az egeret erre a kis kék pöttyre és az egér bal gombját nyomva tartva már tudunk is egy nyilat mozgatni az állapot objektum körül. Mozgassuk az egeret ahhoz az állapot objektumhoz, amelyhez kapcsolatot szeretnénk teremteni, és engedjük el a bal egér gombot.

Megjegyzés: az elengedés lehet ugyanaz az objektum is, ahonnan elindítottuk a folyamatot!

Sikertelen kapcsolatteremtés esetén nem születik kapcsolat két állapot objektum között. Ilyen lehet pl. ha már a 2 állapot objektum között volt előzőleg egy kapcsolat. Minden egyes két állapot objektum között csak egy átmenet kapcsolat hozható létre ugyanazon irányban!

Ha sikeres volt a folyamat, tehát egy kapcsolat létrejött, akkor megjelenik a két állapot objektum között az átmenet objektum (nyíl). Lényeges, hogy a nyíl mutatja a kapcsolat irányát. A rendszer automatikusan ellátja az átmenet objektumot az adott kiinduló állapot objektumnál szereplő következő átmenet szimbólummal. (a..z)

Ugyanazon állapotra mutató átmenet elforgatása

Lehetőségünk van arra, hogy egy olyan átmenetet hoztunk létre, amely önmaga állapot objektumra mutat. Ennek az átmenetnek a helyzetét az állapot objektum körül megváltoztathatjuk, így lehetőségünk van egy jobb megjelenés létrehozására.

Helyezzük az egeret az ármenet objektumra, aminek hatására megjelenik egy kik kék pötty. Ezután helyezzük az egeret a kék pöttyre és nyomjuk le és tartsuk nyomva a bal egérgombot, majd mozgassuk az egeret az objektum körül. Ennek hatására az átmenet objektum meg fogja változtatni helyzetét. Ha megfelelő irányba fordult az átmenet objektum, akkor engedjük el a bal egérgombot és az átmenet objektum helyzetet rögzítésre kerül.

Összes adat törlése

Az 'Összes adat törlése' gomb segítségével az összes megszerkesztett objektum egyben törölhető, és tiszta 'lappal' kezdhető a szerkesztés.

Kijelölt objektum kezelése

A szerkesztő felületen az állapot vagy az átmenet objektumra kattintva a szerkesztő ablak alatt megjelenik egy adat részletek blokk, ahol az adott objektum egyéb adatát tudjuk beállítani vagy pl. törölhetjük az objektumot.

Figyelem: Minden változtatás az adat ablakban azonnali érvényileg megváltoztat minden kapcsolódó adatot!

Állapot objektum

Állapot szimbólum meghatározása

Az állapot szimbólum a nagy 'A' betűtől a nagy 'Z' betűig lehet meghatározni. A 'I','L','O' szimbólumok ki vannak véve a listából biztonsági okokból.

A rendszer automatikusan azokat a karaktereket is kiveszi, amelyek már használva vannak a szerkesztő ablakban! Így minden állapot objektum csak egyszer szerepelhet a szerkesztő ablakban.

Elfogadó állapot beállítása

Az elfogadó állapot bekapcsolását egy checkbox jellegű beviteli elem bekapcsolásával tudjuk aktiválni.

Állapot objektum törlése

Az állapot objektum törlése gomb hatására nem csak az adott állapot objektum törlődik, hanem a hozzá kapcsolódó összes átmenet objektum is!

Átmenet objektum

Átmenet szimbólum megadása

Az átmenet szimbólum a kis 'a' betűtől a kis 'z' betűig lehet meghatározni. A 'i','l','o' szimbólumok ki vannak véve a listából biztonsági okokból.

Egy adott átmenetre egyszerre több szimbólum is megadható. Ezt úgy tudjuk megtenni, hogy a '+' jelű gombbal egy új szimbólumot rendelhetünk az átmenet objektumhoz.
Egy átmenet objektumra az elérhető maximális számú átmenet szimbólumot rendelhetünk azaz 23 darabot.
A '-' gombbal csökkenthetjük a szimbólumok számát.

Egy átmenet objektumon egy átmenet szimbólum csak egyszer szerepelhet!

Átmenet objektum törlése

Az átmenet objektum törlése gomb hatására csak az adott átmenet objektum törlődik!

Állapot mátrix

Az állapot mátrix megmutatja a szerkesztő ablakban létrehozott automata kapcsolati rendszerét táblázatos formában.
A táblázat bal oldalán az állapot szimbólumok vannak felsorolva függőlegesen. A táblázat tetején pedig az átmenet szimbólumok vízszintesen.

A táblázat megmutatja, hogy a bal oldalon szereplő állapot szimbólum a felső részen található átmenet szimbólum hatására milyen másik állapot szimbólumba megy át.

Megjegyzés: Minden változtatás amely az automata szerkezetében történik azonnal frissítést eredményes az állapot mátrix szerkezetében is automatikusan!

Egyéb funkciók

Automata működésének bemutatása

Lehetőségünk van arra, hogy teszteljük a létrehozott automata működését. Ez a teszt nem teljes megoldást mutatja be, hanem csak egy véletlenszerűen létrehozott egyetlen eredmény létrehozását mutatja be.

Az elindítás után a szerkesztő ablak alatti adat blokkban tudjuk követni szövegesen a folyamatot ill. ott tudjuk megnézni a létrehozott eredményt is.

  1. Lépésszám
  2. Létrehozott szó
  3. Folyamat naplója


Bemutató folyamata:

  1. Zöld színűre színeződik az az állapot, amely aktuálisan ki van választva
  2. Zöld színűre színeződnek azok az átmenet objektumok, amelyek a lehetséges továbbhaladási irányokat mutatják
  3. Vizualizációval piros színnel egymás után változtatódnak azok az átmenet szimbólumok és objektumok, amelyek közül egyet véletlenszerűen kiválaszt a rendszer
  4. Amikor megtörténik a kiválasztás, akkor az az átmenet szimbólum és objektum kék színűre vált
  5. Az előző pontban meghatározott átmenet kiválasztja a következő állapot objektumot, ezzel az 1. ponttal folytatódik a bemutató

A bemutató addig tart, ameddig:

  1. elfogadó állapotba nem kerül a rendszer
  2. hiba keletkezik a futás során, pl. olyan állapotba kerül a rendszer ami nem elfogadó állapot és nincs belőle átmenet állapot létrehozva!

Automata konvertálása nyelvtanná

Ez a gomb szolgál arra, hogy az elkészített automatából nyelvi szabály halmazt generáljunk. A generálás után automatikusan átvált a képernyő a reguláris nyelvi modul ablakra.

Generálás szabályai:

Állapot objektum szimbóluma = nem terminális szimbólum
Átmenet objektum egy-egy szimbóluma = egy-egy terminális szimbólum
Szabály felépítése: [kiinduló átmenet objektum szimbóluma] = [átmenet objektum 1 db szimbóluma ] [érkező átmenet objektum szimbóluma]
Üres szabály (elfogadó állapottal bíró állapot objektumokra): [kiinduló átmenet objektum szimbóluma] = λ

Figyelem: A menüpont végrehajtása a jelenlegi nyelvi szabályhalmaz törlésével/elvesztésével jár!

Véges automata eltárolása

Lehetőségünk van eltárolni egy adott automata adatát. Meg kell adni egy elnevezést, és a funkció aktiválásával a 'localStorage' rendszerben eltárolódik az automata adata.

Eltárolt automata adatok kezelése

Az eltárolt automata adatok listázódnak ki ezen menüpont alatt. Lehetőségünk van

Betöltés   Az eltárolt adatok betöltésére
Felülírás  Az eltárolt adatok felülírására az aktuális automata adataival
Törlés     Az eltárolt adatok törlésére

A rendszer kiegészítésképpen megjegyzi a mentés dátumát és azt is kilistázza a felhasználó számára.

szakdoli/autokezel.txt · legutóbbi módosítás: – Szerkesztő: peter