Felhasználói eszközök

Eszközök a webhelyen


szakdoli:szabalykezel

Összehasonlítás

A kiválasztott és az jelenlegi változat között az alábbi különbségek fordulnak elő:

Összehasonlító nézet hivatkozása

Előző változat mindkét oldalonElőző változat
Következő változat
Előző változat
szakdoli:szabalykezel [2016/02/08 20:41] – [Szabályhalmaz feldolgozásának műveletei] peterszakdoli:szabalykezel [2016/04/15 23:41] (aktuális) – [Szabály szavainak előállítása] peter
Sor 1: Sor 1:
 [[szakdoli:menu|Szakdolgozat: Véges automaták és reguláris nyelvek kapcsolata]] \\ [[szakdoli:menu|Szakdolgozat: Véges automaták és reguláris nyelvek kapcsolata]] \\
 ====== Reguláris nyelv modul felépítése, kezelése  ====== ====== Reguláris nyelv modul felépítése, kezelése  ======
 +Megjegyzés: a rendszer megjegyzi az éppen szerkesztett szabályrendszer összes adatát, és egy újbóli lap betöltése vagy frissítés esetén megjeleníti azokat, nem vesznek el az adatok!
 +
 ===== Terminális és nem terminális elemek kijelölése ===== ===== Terminális és nem terminális elemek kijelölése =====
 A feladat kiírásakor peremfeltételként volt meghatározva, hogy először legyenek kijelölve a terminális (továbbiakban: T) és nem terminális (továbbiakban: NT) elemek, majd csak utána lehessen szabályokat alkotni. Ezért a felső részben megjelenítem a lehetséges T és NT elemeket. Ezzel korlátozva a szabályok létrehozásának lehetőségét. A T és NT sorokban található gombokra kattintva tudjuk kijelölni azt az elemet, amelyet használni szeretnénk a szabály felépítésekor. Az 'S' jelű NT elem automatikusan ki van jelölve, mivel Ő a kezdő elem. És bár a kezdő elem egyéb esetben tetszőlegesen választható az NT elemek közül, ebben a feladatban ezt fixáltuk és mindig kijelölt elemként jelenik meg! (törlése nem lehetséges)\\ \\ A feladat kiírásakor peremfeltételként volt meghatározva, hogy először legyenek kijelölve a terminális (továbbiakban: T) és nem terminális (továbbiakban: NT) elemek, majd csak utána lehessen szabályokat alkotni. Ezért a felső részben megjelenítem a lehetséges T és NT elemeket. Ezzel korlátozva a szabályok létrehozásának lehetőségét. A T és NT sorokban található gombokra kattintva tudjuk kijelölni azt az elemet, amelyet használni szeretnénk a szabály felépítésekor. Az 'S' jelű NT elem automatikusan ki van jelölve, mivel Ő a kezdő elem. És bár a kezdő elem egyéb esetben tetszőlegesen választható az NT elemek közül, ebben a feladatban ezt fixáltuk és mindig kijelölt elemként jelenik meg! (törlése nem lehetséges)\\ \\
Sor 21: Sor 23:
 A legvégén megjelenik a Chomsky-féle szabály kategória értéke is tájékoztatásnak. A legvégén megjelenik a Chomsky-féle szabály kategória értéke is tájékoztatásnak.
 ===== Szabályhalmaz feldolgozásának műveletei =====  ===== Szabályhalmaz feldolgozásának műveletei ===== 
 +Ebben a blokkban tudjuk meghatározni azt, hogy a szabályhalmazon milyen átalakító algoritmusokat hajtsunk végre és azt milyen sorrendben tegyük meg. A rendszer azt biztosítja, hogy a kijelölhető átalakító algoritmusokat tetszőleges sorrendben végre lehet hajtani a szabály halmazon.
 +A következő algoritmusok hajthatók végre:
 +  - Önmaga szabályok eltávolítása
 +  - Szabály többszörözés eltávolítása
 +  - Üres szó lemma szabály alkalmazása
 +  - Láncszabály mentesítés
 +  - Zsákutca mentesítés
 +  - Szabály hosszredukció
 +  - Szabály konvertálása automatává
 +  - Szabály szavainak előállítása
 +Ezek nagy része külön leírásban van részletezve, most az egyéb pontokat említjük csak.
 +==== Szabály konvertálása automatává ====
 +Ezen algoritmus kiválasztása a következő algoritmusok sorrendjében ajánlott:
 +  - Láncszabály mentesítés
 +  - Zsákutca mentesítés
 +  - Szabály hosszredukció
 +  - Szabály konvertálása automatává
 +A felsorolt szabályok készítik elő egy nyelvi szabályhalmazt olyan állapotba, hogy átalakítható legyen automata szerkezetté. Az algoritmus csak akkor engedi az átalakítást miután megvizsgálta, hogy minden egyéb feltételnek megfelel a szabályhalmaz. Az elfogadott szabály formátumok:
 +  A→aA
 +  A→a
 +  A→λ
 +Az algoritmus végeredménye
 +  - hibaüzenet: nem hajtható végre a konvertálás
 +  - konvertálás végrehajtódott, át lehet lépni az automata modulra és megtekinthető a konvertált forma
 +Figyelem: Ezen pont alkalmazása sikeres végrehajtás esetén a jelenlegi automata törlésével/elveszésével jár!
 +==== Szabály szavainak előállítása ====
 +Lehetőség van arra, hogy megtekintsük a szabályhalmaz által generálható szavakat. Az előállításhoz több beállítás is tartozik, amelyeket a következő nagy pontban részletezek.
 +
 +Figyelem: A szavak előállítása sokszor nagy számítási és idő igényű, ezért a beállításoknál csak akkor alkalmazzunk nagy értékeket ha már megbizonyosodtunk, hogy kis értékek mellett előállíthatók a szavak illetve figyeljünk az időkorlátozó beállításra. Túl nagy értékek esetén nagyon hosszú lefutási idővel lehet számolni!
 +
 +Amennyiben valamely korlátozó feltétel miatt állt le a szavak előállítási folyamata (pl. elérte az 1000 db szó korlátot az előállított szavak száma), tehát a generálási folyamat meg lett szakítva és ezáltal nem a teljes halmazt állította elő a rutin, akkor megjelenik egy figyelmeztető üzenet: "Nincs előállítva az összes lehetséges szó!"
 +
 +Természetesen azt is megtehetjük, hogy a listában minden egyéb átalakító algoritmus után elhelyezzük ez az algoritmust, és megfigyeljük hogyan változnak az előállított szavak az egyes algoritmusok lefutása után.
 +
 +A szabály szavainak előállításakor nem csak a generált szavakat listázza a rendszer, hanem a szavak előállítási módját is megmutatja.
 +
 +Pl.: [S→aA] [a**A**, A→aB] [aa**B**, B→λ] [aa]
 +
 +A példában jól látható, hogy a vastag betűvel jelölt NT tag kifejtése történik a mellette szereplő nyelvtani szabály alkalmazásával. Az így kapott eredmény a következő blokkban láthatjuk. Az első blokk a kiinduló szabályt mutatja, az utolsó blokk pedig a létrehozott szót.
 +
 +Az "Egyedi szavak megjelenítése" esetében természetesen csak egy példát mutat meg, nem listázza az összes előállítási változatot. Ha szeretnénk megnézni az adott szóhoz tartozó összes lehetséges előállítási módot, akkor válasszuk az "Minden szó megjelenítése" módot, ekkor minden egyes előállított szó mellett megtaláljuk az előállítás módját.
 +
  
 ===== Szabályhalmaz feldolgozási műveletek beállításai =====  ===== Szabályhalmaz feldolgozási műveletek beállításai ===== 
-==== Max mélység ====+==== Max. mélység ====
 A 'max. mélység' beállításával azt állíthatjuk be, hogy amikor a szabályhalmaz alkalmazásával a rendszer előállítja a lehetséges szavakat, akkor rekurzívan milyen mélységig kövesse a szabályokat a rendszer.\\ \\ A 'max. mélység' beállításával azt állíthatjuk be, hogy amikor a szabályhalmaz alkalmazásával a rendszer előállítja a lehetséges szavakat, akkor rekurzívan milyen mélységig kövesse a szabályokat a rendszer.\\ \\
 Pl. A→aA szabály esetében a végtelenségig lehetne 'a' karaktert tartalmazó szavakat előállítani. Ezen beállítással ez lekorlátozható pl. maximum 10 karakter hosszú szóra. Pl. A→aA szabály esetében a végtelenségig lehetne 'a' karaktert tartalmazó szavakat előállítani. Ezen beállítással ez lekorlátozható pl. maximum 10 karakter hosszú szóra.
-==== Max szó ====+==== Max. szó ====
 A 'max. szó' beállításával azt állíthatjuk be, hogy mennyi legyen a maximálisan előállított szavak száma. Az előző pontban is említett példa esetében ez végtelen lenne, ennek a beállításnak az alkalmazásával ez lekorlátozható pl. maximum 1000 db szóra. A 'max. szó' beállításával azt állíthatjuk be, hogy mennyi legyen a maximálisan előállított szavak száma. Az előző pontban is említett példa esetében ez végtelen lenne, ennek a beállításnak az alkalmazásával ez lekorlátozható pl. maximum 1000 db szóra.
 +==== Max. futási idő ==== 
 +Lehetőségünk van korlátozni a szavak előállításának futási idejét másodpercben megadva. Így megakadályozhatjuk, hogy a túl hosszú futási idő miatt "lefagyás" jelenséget okozzunk a böngészőben. Természetesen ettől függetlenül elég nagy maximális értéket lehet beállítani, ami 86400 másodperc azaz 1 nap.
 ==== Szavak ==== ==== Szavak ====
 A szavak előállításának végeredményét lehet szabályozni ezzel a kapcsolóval. A szavak megjelenési formátumát tudjuk szabályozni. A szavak előállításának végeredményét lehet szabályozni ezzel a kapcsolóval. A szavak megjelenési formátumát tudjuk szabályozni.
 === Egyedi szavak megjelenítése === === Egyedi szavak megjelenítése ===
-A rendszer csoportosítja az egyes szavakat és minden szórt csak egyszer jelenít meg, és megmutatja a szó mellett a szó előfordulási mennyiségét is. A szavak ebben az esetben ABC sorrendben jelennek meg.+A rendszer csoportosítja az egyes szavakat és minden szót csak egyszer jelenít meg, és megmutatja a szó mellett a szó előfordulási mennyiségét is. A szavak ebben az esetben ABC sorrendben jelennek meg.
 === Minden szó megjelenítése === === Minden szó megjelenítése ===
 Minden egyes szót megjelenít a rendszer. Így előfordulhat, hogy egy szó többször is meg fog jelenni a listában. Ezzel a beállítással végig tudjuk követni a szavak előállítási sorrendjét (nincs sorba rendezés). Minden egyes szót megjelenít a rendszer. Így előfordulhat, hogy egy szó többször is meg fog jelenni a listában. Ezzel a beállítással végig tudjuk követni a szavak előállítási sorrendjét (nincs sorba rendezés).
 +
 ===== Szabályhalmaz eltárolása =====  ===== Szabályhalmaz eltárolása ===== 
 Lehetőségünk van eltárolni egy adott nyelvi szabályhalmazt. Meg kell adni egy elnevezést, és a funkció aktiválásával a 'localStorage' rendszerben eltárolódik az aktuális szabályhalmaz összes adata. Lehetőségünk van eltárolni egy adott nyelvi szabályhalmazt. Meg kell adni egy elnevezést, és a funkció aktiválásával a 'localStorage' rendszerben eltárolódik az aktuális szabályhalmaz összes adata.
szakdoli/szabalykezel.1454964074.txt.gz · legutóbbi módosítás: (külső szerkesztés)