Tudd Intuíció, előadás, reguláris nyelvek és véges automaták

Abstract: A műveletek összefűzése és ismétlések nyelven. A reguláris kifejezések és nyelvek. Példák a reguláris kifejezések és nyelvek. Épület véges állapotú gép reguláris kifejezés

A reguláris kifejezések és nyelvek

A reguláris kifejezések nagyon kényelmes eszköz az építési „algebrai” leírást a nyelvet. Ezek kialakítani elemi kifejezések kombinálásával műveletek (+), összefűző () és iteráció (*). Minden ilyen kifejezést r felel be őket Lr nyelvet. Jelentése nyelv kombinációs műveletek, tudjuk. Mi határozza meg a összefűzés működése és ismétlés (néha a Kleene zárás).

Hagyja, L1 és L2 - nyelv az ábécé

Aztán, hogy a Nyelvek összefűzése áll konkatenációjából minden szava az első nyelv minden szava a második nyelvet. Különösen akkor, ha, akkor, ha, akkor.

Bemutatjuk a jelölést „fok” az L nyelvet:

Így az L i tartalmaz minden szava, hogy osztható i egymást követő szavak L.

Iteráció (L) * L formanyelvét összes szót lehet osztani több egymást követő szavak L:

Meg lehet képviselők hatásköre:

Gyakran célszerű figyelembe venni a „csonka” iteráció a nyelv, amely nem tartalmaz üres szó. ha nem azon a nyelven :. Ez nem egy új műveletet, hanem egyszerűen rövidítették a kifejezést.

Szintén fontos megjegyezni, hogy ha figyelembe vesszük az ábécé mint államnyelv, amely egy-betűs szó, a korábban bevezetett jelöléseket a készlet minden szó, beleértve az üres, az ábécé megfelel a meghatározása iteráció a nyelvet.

Az alábbi táblázat a formális indukciós meghatározása reguláris kifejezések az ábécé és nyelv általuk benyújtott.

Írásakor szabályos kifejezések kihagyja a szimbólum összefűzés és feltételezik, hogy a működés * magasabb elsőbbséget, mint összefűzés, +. és összefűzése - magasabb prioritást +. Ez lehetővé teszi, hogy kihagyja sok zárójelben. Például, ez a következőképpen írható fel 10 (1 * + 0).

Definíció 5.1. Két reguláris kifejezés r és p egyenértékű, ha az általuk képviselt ugyanazt a nyelvet, azaz a Lr = Lp. Ebben az esetben, írunk r = p.

Ez könnyen ellenőrizhető, például az ilyen ingatlanok rendszeres műveletek:

  • r + p = p + r (kommutativitás társulásai)
  • (R + p) + q = r + (p + q) (asszociatív társulásai)
  • (R p) q = r (p q) (asszociatív összefűzés)
  • (R *) * = R * (idempotencia iteráció)
  • (R + p) q = RQ + PQ (disztributivitás).

Példa 5.1. Bebizonyítjuk példaként nem annyira nyilvánvaló egyenlőséget. (R + p) * = (r * p *) *.

Let L1 - nyelv, be a bal oldalon, és L2 - jobb. Üres szó tartozik mindkét nyelven. Ha egy nem üres szó, akkor definíció szerint iterációs képviselteti magát, mint összefűzése subwords tartozó nyelvet. De ez a nyelv egy részhalmaza az L nyelvet „= Lr * Lp * (miért?). Ezért. Ezzel szemben, ha a szó, akkor is képviselteti magát láncolata subwords tartozó L nyelvet.” Minden ilyen subwords v reprezentálható, mint v = v1 v1 1 VK 1. 2. 2. VL ahol minden i = 1. subword k minden j = 1. l subword (talán, hogy k értéke 0 vagy l). De ez azt jelenti, hogy w összefűzöttjével subwords, amelyek mindegyike tartozik, és következésképpen.

Tekintsük néhány példa a reguláris kifejezések és nyelvek általuk képviselt.

Példa 5.2. A reguláris kifejezések (0 + 1) * a készlet minden szava az ábécé.

Példa 5.3. Szabályos kifejezés 11 (0 + 1) * 001 a nyelvet, amely minden szó az ábécé. kezdődő „11”, és a végén a „001”.

Példa 5.4. A reguláris kifejezés egy olyan nyelv, amely minden szó az ábécé. amelyek nem tartalmaznak subword „000” (ld. Feladat 5.3 pont).

5.5 példa. A reguláris kifejezés 1 * (01 * 01 *) * a nyelv L0ch. álló minden szó az ábécé. ahol még nullák száma.

Valóban, minden szavát L0ch vagy nem tartalmaznak nulla, azaz a nyelv részévé, ami 1 *. vagy lehet osztani blokkok formájában 01 i 01 J. i, j> = 0, amely talán megelőzi blokk egységekben. Az expressziós (01 * 01 *). nyilvánvalóan meghatározza egy ilyen egységet, de iteráció - tetszőleges sorrendben az ilyen blokkok.

5.6 példa. Most össze egy reguláris kifejezés. képviselő L0ch1ch nyelvet. amely minden szó az ábécé. amely páros számú nullát és páros számú egységek.

Legyen w = w1 w2. WN - minden szót L0ch1ch. Aztán persze, n - még, hadd n = 2k. W bontottuk pár szomszédos betűk pi = w2i-1 w2i. i = 1,2. k. Jelenleg 4 típusú pár: 00, 11, 01 és 10. A gőz fajok 00 és 11 lehet bármilyen számú és típusú pár 01 és 10 szükségszerűen páros számú. Ezért, W blokkokra osztjuk fel, amelyek mindegyike kezdődik egyik pár 01 és 10, és tartalmaz egy másik ilyen párra. Minden ilyen blokk által leírt expressziós (01 +10) (00 + 11) * (01 + 10) (00 + 11) *. Ebben előtag lehet, mielőtt az első blokk. álló párok 00 és 11. A szavak halmazának álló párok 00 és 11 által adott expressziós (00 + 11) *. Innen jutunk a kifejezést R0ch1ch. L0ch1ch Nyelv beállítása:

Kapcsolódó cikkek