You are on page 1of 199

A számítástudomány

alapjai
G A Z D A G Z S O LT

S Z T E , S Z Á M Í TÁ S T U D O M Á N Y A L A PJ A I TA N S Z É K

2022. ŐSZ
A kurzusról Előadó: Gazdag Zsolt
Elérhetőség: Irinyi épület, III. lh. 67. szoba
• A kurzus teljesítésének feltételei: Email: gazdag@inf.u-szeged.hu

• Sikeres gyakorlat
• A vizsgán sikeres írásbeli teszt (beugró):
• Kis kérdések a feltöltött előadás-fóliasor alapján
• Rossz válaszért pontlevonás
• A sikeres beugró minimum 50%-os
• Sikeres beugró esetén sikeres szóbeli vizsga
• Félévközi munka: nem kötelező, de beszámít a beugró pontszámába
• Négy kisdolgozat: szep. 28, okt. 19, nov. 9, 30.
• Ha a három legjobb átlaga 70%-os, akkor nem kell beugrót írni
• Egyébként a három legjobb átlagát hozzáadjuk a beugró pontszámához

2
Hogyan kell olvasni a fóliákat?

Az egyes részek elkülönítettek:

Fogalmak, definíciók, jelölések

Tételek, segédtételek (lemmák) és bizonyításaik

Példák

Megjegyzések

3
Hogyan kell olvasni a fóliákat?
Azon részek, amik a beugróban előjöhetnek folyamatos keretben lesznek, pl. így:

Ábécé: tetszőleges véges, nem üres halmaz


Betűk: tetszőleges ábécé elemei

A többi meg szaggatott keretben, pl így:

Példa: Σ = {0,1}
0,1 itt most betűk, nem számok

4
Miről lesz szó?
Véges automaták, reguláris kifejezések, környezetfüggetlen nyelvtanok
◦ A programozási nyelvek, fordítóprogramok, számítógépek egyszerű matematikai modelljei
◦ Szerepük van a logikában, természetes nyelvfeldolgozásban, stb.

Kiszámíthatóság elmélet
◦ Mi az amit algoritmikusan meg lehet oldani és mi az amit nem
◦ Például a következőt nem: Adott egy P program és annak egy B bemenete. Döntsük el, hogy P megáll-e B-n

Bonyolultságelmélet
◦ Csak az eldönthető problémákkal foglalkozik
◦ A problémák eldöntéséhez szükséges erőforrásigényt vizsgálja
◦ Itt vizsgáljuk majd az ismert P=NP kérdést is

5
Véges automata mint egyszerű gép – Példa
• Egy előadóterem mozgatható táblájának állapotai:
• Fent van (∧) Legfelső
pozíció
• Lent van (∨) szenzor
• A kettő között áll (⊖)
• Felfele megy (⇑)
• Lefele megy (⇓)
• Milyen jelek befolyásolják az állapotát?
• Felfele gomb (↑)
• Lefele gomb (↓)
• Állj gomb (○) Távirányító
• Fent van szenzor (⊤)
Legalsó
• Lent van szenzor (⊥)
pozíció
• És hogyan kapcsolódnak ezek egymáshoz? Elektronikusan mozgatható
szenzor
tábla

6
Véges automata mint egyszerű gép – Példa
• Egy előadóterem mozgatható táblájának állapotai:
• Fent van (∧) ↑, ○, ⊤ Legfelső
pozíció
• Lent van (∨) ⊤ ∧ ↓ szenzor

• A kettő között áll (⊖) ↑ ↑ ↓
• Felfele megy (⇑) ⇑


○ ⊖
• Lefele megy (⇓) ○
• Milyen jelek befolyásolják az állapotát?
↑ ↓
• Felfele gomb (↑) ↑ ∨ ⊥
• Lefele gomb (↓)
↓, ○, ⊥
• Állj gomb (○) Távirányító
• Fent van szenzor (⊤) Átmeneti diagram
Legalsó
• Lent van szenzor (⊥)
pozíció
• És hogyan kapcsolódnak ezek egymáshoz? Elektronikusan mozgatható
szenzor
tábla

7
Véges automata mint szavak felismerője
• Ilyenkor arra vagyunk kíváncsiak, hogy mely jelsorozatok „sikeresek”
• Ekkor a véges automata rendelkezik
• egy olvasófejjel (balról jobbra mozog) és egy input szalaggal amit ott a bemenő szó
• egy kezdő- és legalább egy végállapottal
• A véges automata pontosan akkor fogadja el a bemeneten kapott szót ha
• a szó első betűjétől kezdve balról jobbra végig olvasva a bemenetet
• végállapotban áll meg

I t t j ö n a b e m e n e t

olvasó olvasó
fej fej
Vezérlő végállapotban?
Vezérlő
kezdőállapotban

IGEN / NEM =
ELFOGAD / ELUTASÍt

8
Véges automata mint mintaillesztő vs.
reguláris kifejezés
Ellenőrzi, hogy van-e a
bemenetben aa vagy ac részszó

9
Szavak és nyelvek
Ábécé: tetszőleges véges, nem üres halmaz Σ = {0,1}, Σ ∗ = {𝜀, 0,1,00,01,10,11,000, … }
Betűk: tetszőleges ábécé elemei 0 és 1 itt most betűk, nem számok

• 𝑤 = 01001, 𝑤 = 5, 𝑤 0 = 3
Legyen Σ egy ábécé • 𝑤 = 000 = 03 , 𝑤 = 3, 𝑤 1 = 0
Σ-feletti szó: Σ-beli betűk véges (akár 0 hosszú) • 0,1 -feletti nyelvek:
sorozata • Véges nyelvek:
Egy 𝑤 szó hossza: a 𝑤-ben szereplő betűk száma, • 1,01,001 , 𝜀 , 𝜀, 1 , ∅
jele: |𝑤| • Végtelen nyelvek:
𝑤 𝑎 : 𝑤-ben az 𝑎-k száma • Σ ∗ , 0𝑛 1𝑚 𝑛, 𝑚 ≥ 0
Üres szó: a 0 hosszú szó, jele: 𝜀 • {0𝑛 1𝑛 ∣ 𝑛 ≥ 0}
Σ ∗ : Az összes Σ-feletti szó halmaza • 𝑤 ∈ Σ∗ 𝑤 0 = 𝑤 1
Σ-feletti nyelv: Σ ∗ egy részhalmaza • {0𝑝 ∣ 𝑝 prímszám}

1
Véges automaták
𝛿 𝑞, 𝑎 = 𝑝
• Véges automata: (Q, Σ, 𝛿, 𝑞0 , 𝐹)
• Q: állapotok véges, nemüres halmaza
• Σ: bemenő jelek (betűk) ábécéje Régi A bemeneten Új
állapot olvasott betű állapot
• 𝑞0 : kezdőállapot
• 𝐹 ⊆ 𝑄: végállapotok
• 𝛿: 𝑄 × Σ → 𝑄, az átmeneti függvény
𝑎
• Ha 𝛿 𝑞, 𝑎 = 𝑝, akkor 𝑞 𝑝 az 𝑀 egy átmenete
• Az átmenetek alapján a 𝛿 egyértelműen leírható egy
irányított címkézett gráffal, az átmeneti diagrammal:
• A csúcsok az állapotok, és két csúcs közte egy betűvel
címkézett éllel megfelel egy átmenetnek
• 𝑀 megadása átmeneti diagrammal: megjelöljük a kezdő-
és végállapotokat
Véges automaták
• Legyen M = (Q, Σ, 𝛿, 𝑞0 , 𝐹) egy véges automata, 𝑞 ∈ 𝑄, 𝑤 = 𝑎1 … 𝑎𝑛 é𝑠 𝑛 ≥ 0

Σ-beli betűk
• 𝑀egy 𝑞-ból induló futása a 𝑤-n: átmenetek egy olyan
𝑎1 𝑎2 𝑎𝑛
𝑞1 𝑞2 𝑞3 … 𝑞𝑛 𝑞𝑛+1 sorozata, ahol 𝑞1 = 𝑞
• 𝑛 = 0 esetén 𝑞𝑛+1 = 𝑞1 , a futás 0 átmenetből áll
• Ez a futás sikeres, ha 𝑞𝑛+1 ∈ 𝐹
• 𝑀 elfogadja 𝑤-t: 𝑀-nek van 𝑞0 -ból induló sikeres futása a 𝑤-n
• Az 𝑀 által felismert nyelv:
𝐿 𝑀 = {𝑤 ∈ Σ ∗ ∣ 𝑀 elfogadja 𝑤-t}

3
Véges automata mint mintaillesztő – Példa
• Ez a véges automata azt vizsgálja, hogy a bemenetként kapott szóban van-e 𝑎𝑏𝑏𝑎 részszó
• Azaz olyan szavakra kerül végállapotba, melyekben az 𝑎𝑏𝑏𝑎 részszó
• Az egyszerűség kedvéért feltesszük, hogy a bemenetben legfeljebb csak 𝑎, 𝑏 és 𝑐 betűk vannak

𝑎 𝑞1 𝑏 𝑏 𝑞3 𝑎
𝑏, 𝑐 𝑐 𝑎
𝑞0 𝑞2 𝑞4
𝑐
𝑐, 𝑏 A végállapot
A kezdőállapot kijelölése
kijelölése
Átmeneti diagram

4
Véges automata mint lexikális elemző – Példa
• Ez a véges automata pedig azt vizsgálja, hogy a bemenetként kapott szó szintaxisa megfelel-
e annak amit az XML-ben a kommentekre előírnak:
• <!-- az eleje és --> a vége, és
• a kommentben nem fordul elő két kötőjel egymás után
• Az egyszerűség kedvéért feltesszük, hogy a kommentekben csak az 𝑎 é𝑠 𝑏 betűk, valamint a
kötőjel ( - ) szerepelnek

𝑎, 𝑏
! - - -
𝑞1 𝑞2 𝑞3 𝑞4 - 𝑞5 > 𝑞6
𝑞0
< 𝑎, 𝑏
𝑘

𝑒 𝑎, 𝑏,<,
Átmeneti diagram (az összes be >,-, !
nem rajzolt átmenet 𝑒-be vezet)
5
Véges automaták – További példák 1.

𝑀1 :

• 𝑄 = 𝑞0 , 𝑞1
• Σ = 0,1
• Kezdőállapot: 𝑞0
• 𝐹 = {𝑞0 }
0 1 1 0
• 𝑞0 -ból induló sikeres futás a 0110 szón: 𝑞0 𝑞0 𝑞1 𝑞1 𝑞0
• 𝐿 𝑀1 = {𝑤 ∈ 0,1 ∗ ∣ 𝑤 = 𝜀 vagy 𝑤 utolsó betűje 0}

6
Véges automaták – További példák 2.

𝑀2 :

• 𝑄 = 𝑞0 , 𝑞1
• Σ = 0,1
• Kezdőállapot: 𝑞0
• 𝐹 = {𝑞0 }
0 1 0 1
• 𝑞0 -ból induló sikeres futás a 0110 szón: 𝑞0 𝑞0 𝑞1 𝑞1 𝑞0
• 𝐿 𝑀2 = {𝑤 ∈ 0,1 ∗ ∣ 𝑤-ben az 1-esek száma páros}

7
Véges automaták – További példák 3.

𝑀3 :

• 𝑄 = 𝑞0 , 𝑞1 , … , 𝑞𝑛−1
• Σ = 0,1
• Kezdőállapot: 𝑞0
• 𝐹 = {𝑞0 }
• 𝐿 𝑀3 = {𝑤 ∈ 0,1 ∗ ∣ 𝑤-ben az 1-esek száma 𝑛-nel osztható}

8
Felismerhető nyelvek
Egy 𝐿 ⊆ Σ ∗ nyelv felismerhető, ha van olyan 𝑀 véges automata, ami felismeri, azaz
𝐿 = 𝐿(𝑀)

Σ = {0,1}
Felismerhető nyelvek:
◦ {𝑤 ∈ Σ ∗ ∣ 𝑤 utolsó betűje1 } = {𝑢1 ∣ 𝑢 ∈ Σ ∗ }
◦ {𝑤 ∈ Σ ∗ ∣ 𝑤 1 ≡ 0 𝑚𝑜𝑑 2}
◦ {𝑤 ∈ Σ ∗ ∣ 00 és 11 nem fordulnak elő rész-szóként 𝑤-ben}

Nem felismerhető:
◦ {0𝑛 1𝑛 ∣ 𝑛 ≥ 0}

9
Műveletek nyelveken
Halmazelméleti műveletek (𝐿1 , 𝐿2 ⊆ Σ ∗ ):
Komplementer
Egyesítés Metszet Σ∗

𝐿1 𝐿2 𝐿1 𝐿2 𝐿1

𝐿1 ∪ 𝐿2 = 𝐿1 ∩ 𝐿2 =
{𝑤 ∣ 𝑤 ∈ 𝐿1 vagy 𝑤 ∈ 𝐿2 } {𝑤 ∣ 𝑤 ∈ 𝐿1 és 𝑤 ∈ 𝐿2 } 𝐿1 = {𝑤 ∈ Σ ∗ ∣ 𝑤 ∉ 𝐿1 }

10
Műveletek nyelveken
Egyéb műveletek 𝑢, 𝑣 ∈ Σ ∗ , 𝐿1 , 𝐿2 ⊆ Σ ∗
◦ 𝑢 és 𝑣 konkatenációja: 𝑢 ⋅ 𝑣 (𝑢 és 𝑣 összefűzése, egymás után írása)
◦ 𝑢 ⋅ 𝑣 helyett általában 𝑢𝑣-t fogunk írni
◦ Konkatenáció kiterjesztése nyelvekre: 𝐿1 ⋅ 𝐿2 = {𝑢𝑣 ∣ 𝑢 ∈ 𝐿1 , 𝑣 ∈ 𝐿2 }

𝐿1 𝐿2

Pl.
01,10 ⋅ 00,11 = 0100,0111,1000,1011
◦ 𝐿1 ⋅ 𝐿2 helyett általában 𝐿1 𝐿2 -t fogunk írni

11
Műveletek nyelveken
• (Kleene) iteráció: 𝐿∗1 = 𝑢1 𝑢2 … 𝑢𝑛 𝑛 ≥ 0, 𝑢1 𝑢2 , … , 𝑢𝑛 ∈ 𝐿1 𝐿∗1 = 𝐿01 ∪ 𝐿11 ∪ 𝐿21 ∪ 𝐿31 …

{𝜀} 𝐿1 𝐿1 𝐿1 𝐿1 𝐿1 𝐿1
𝐿1 𝐿1 … 𝐿1

• 01 ∗ = {𝑤 ∈ 0,1 ∗ ∣ 𝑤 = 𝜀 vagy 𝑤 első


betűje 0, utolsó 1 és 00,11 nem rész-
szavak 𝑤-ben}
• Reguláris műveletek: unió, konkatenáció, iteráció
• 1, 𝜀 01 ∗ 0, 𝜀 = {𝑤 ∣ 𝑤-ben 00 és 11
nem rész-szavak}

12
Műveletek nyelveken
Néhány azonosság:
◦ Az egyesítés és a konkatenáció asszociatív, az egyesítés kommutatív is (a konkatenáció
nyilván nem)
◦ 𝐿1 ⋅ 𝐿2 ∪ 𝐿3 = (𝐿1 ⋅ 𝐿2 ) ∪ (𝐿1 ⋅ 𝐿3 ) és 𝐿1 ∪ 𝐿2 ⋅ 𝐿3 = (𝐿1 ⋅ 𝐿3 ) ∪ (𝐿2 ⋅ 𝐿3 )
(a konkatenáció disztributiv az egyesítés felett)
◦ ∅∗ = {𝜀}
◦ 𝐿⋅ 𝜀 = 𝜀 ⋅𝐿 =𝐿 Ezek pedig NEM azonosságok:
◦ 𝐿⋅∅=∅⋅𝐿 = ∅ ◦ 𝐿1 ∪ 𝐿2 ∗ ≠ 𝐿∗1 ∪ 𝐿∗2
Jelölés: ◦ (pl. 𝐿1 = 𝑎 , 𝐿2 = {𝑏}),
◦ 𝐿+ = 𝐿 ⋅ 𝐿∗ = 𝐿∗ ⋅ 𝐿 ◦ 𝐿1 ∩ 𝐿2 ∗ ≠ 𝐿∗1 ∩ 𝐿∗2
◦ (pl. 𝐿1 = 𝑎 , 𝐿2 = {𝑎𝑎})
Megjegyzés:
◦ 𝐿1 ∪ 𝐿2 ⋅ 𝐿3 ≠ (𝐿1 ∪ 𝐿2 ) ⋅ (𝐿1 ⋅ 𝐿3 )
◦ 𝐿∗ = 𝐿+ ∪ {ε}
◦ (pl. 𝐿1 = 𝑎 , 𝐿2 = 𝐿3 = {𝜀})

13
A felismerhető nyelvek zártsági
tulajdonságai
A felismerhető nyelvek zártak a halmazelméleti műveletekre

Bizonyítás
Komplementerképzésre való zártság
• Legyen 𝐿 egy felismerhető nyelv és 𝑀 = (𝑄, Σ, 𝛿, 𝑞0 , 𝐹) úgy hogy 𝐿 = 𝐿 𝑀
• Megadunk egy 𝑀′-t melyre 𝐿 𝑀′ = 𝐿ത
• Ötlet:
𝑀 𝑀′

∙ ∙
→∙ ∙ ⊙ ⊙ ⊙⊙
→⊙⊙ ∙

• Legyen tehát 𝑀′ = (𝑄, Σ, 𝛿, 𝑞0 , 𝑄 − 𝐹)

14
A felismerhető nyelvek zártsági
tulajdonságai
Bizonyítás
Egyesítésre és metszetre való zártság
◦ Legyen 𝐿𝑖 (𝑖 = 1,2) felismerhető nyelv és 𝑀𝑖 = 𝑄𝑖 , Σ, 𝛿𝑖 , 𝑞𝑖 , 𝐹𝑖 , úgy hogy 𝐿𝑖 = 𝐿 𝑀𝑖
◦ Ötlet: megadunk egy 𝑀′-t, ami egyszerre szimulálja 𝑀1 és 𝑀2 számításait

𝑎1 𝑎2 𝑎𝑛
𝑀1 egy futása: 𝑞1 = 𝑠1 𝑠2 𝑠3 … 𝑠𝑛 𝑠𝑛+1
𝑎1 𝑎2 𝑎𝑛
𝑀2 egy futása: 𝑞2 = 𝑟1 𝑟2 𝑟3 … 𝑟𝑛 𝑟𝑛+1
𝑎1 𝑎2 𝑎𝑛
𝑀′ egy futása: q1 , q2 = (s1 , r1 ) (𝑠2 , 𝑟2 ) (𝑠3 , 𝑟3 ) … (𝑠𝑛 , 𝑟𝑛 ) (sn+1 , rn+1 )

◦ Legyen tehát 𝑀′ = (𝑄1 × 𝑄2 , Σ, 𝛿 ′ , (𝑞1 , 𝑞2 ), 𝐹′),


ahol 𝛿 ′ 𝑠, 𝑟 , 𝑎 = (𝛿1 𝑠, 𝑎 , 𝛿2 (𝑟, 𝑎)), minden 𝑠, 𝑟 ∈ 𝑄1 × 𝑄2 és 𝑎 ∈ Σ esetén
◦ Ha 𝐹 ′ = 𝐹1 × 𝐹2 , akkor 𝐿 𝑀′ = 𝐿1 ∩ 𝐿2
◦ Ha 𝐹 ′ = 𝐹1 × 𝑄2 ∪ 𝑄1 × 𝐹2 , akkor 𝐿 𝑀′ = 𝐿1 ∪ 𝐿2

15
Reguláris nyelvek
Egy 𝐿 ⊆ Σ ∗ nyelvet regulárisnak nevezünk, ha előáll az

∅ é𝑠 𝑎 (𝑎 ∈ Σ)
nyelvekből a három reguláris művelet:
• egyesítés,
• konkatenáció és
• Kleene-iterált
véges sokszori alkalmazásával

0 ∪ ∅∗ 1 0 ∗( 1 ∪ ∅∗ ) azon szavak halmaza melyekben nincs 00


vagy 11 részszó

16
Reguláris kifejezések
A reguláris nyelvek jelölésére alkalmasak a reguláris kifejezések
• Különbség: nem használjuk a {,} zárójeleket
• az egyesítés (∪) helyett plusz (+) jelet használunk
A műveletek sorrendjét a (,) zárójelekkel adjuk meg
• A felesleges zárójeleket elhagyjuk a ∗ > ⋅ > + prioritási sorrend alapján
• A ⋅ jelet általában elhagyjuk
• Rövidítés: a ∅∗ helyett 𝜀-t írunk

17
Reguláris nyelvek
𝑹 reguláris kifejezés Az 𝑹 által jelölt nyelv

0 01 + 10 1 + 𝜀 {𝜀, 0011,0101}
0 0 + 1 ∗1 {𝑤 ∣ 𝑤 0-val kezdődik és 1-gyel végződik}
0 + 𝜀 10 ∗ (1 + 𝜀) {𝑤 ∣ 𝑤-ben 00 és 11 nem rész-szavak}
∗ {𝑤 ∣ 𝑤 páros hosszú és csak 0-t tartalmaz}
00
0∗ 10∗ 1 ∗ 0∗ {𝑤 ∣ 𝑤 páros sok 1-est tartalmaz}

Egy nyelv akkor és csak akkor reguláris ha jelölhető reguláris kifejezéssel

18
UNIX reguláris kifejezések
• A gyakorlatban is használatos regex formalizmus (csak a főbb lehetőségeket
tekintjük):
• Metakarakterek: [,],^,+,*,|
• Bármely 𝑎 karakter, ami nem metakarakter, az {𝑎} nyelvet jelöli
• [𝑎1 𝑎2 … 𝑎𝑛 ] az {𝑎1 , 𝑎2 , … , 𝑎𝑛 } nyelvet jelöli; intervallum is megadható a -
jellel
• Pl. [𝑎𝑏𝑞] az {𝑎, 𝑏, 𝑞} nyelvet, [𝑎𝑏𝑞-𝑠] pedig az {𝑎, 𝑏, 𝑞, 𝑟, 𝑠} nyelvet jelöli
• * az iterációt jelöli (mint a mi reguláris kifejezéseinkben)
• Pl. (00)* az 𝜀, 00,0000, … nyelvet jelöli
• + a pozitív iterációt jelöli (mint eddig is)
• | megfelel a vagy-nak (ami a mi reguláris kifejezéseinkben a +-nak felel meg)
• Pl. 00 11 * a mi reguláris kifejezésünkkel 00 + 11 ∗ alakban adható
meg
UNIX reguláris kifejezések
Tovább lehetőségek:
• A ^ jel
• lehet tagadás ha [ után van, pl. [^0-9] azon karakterek halmazát jelöli,
melyekben nincsenek számok
• jelölheti a sor elejét
• $: a sor végére illeszkedik
• \n: új sor karakterre illeszkedik
• \b egy szó elejére vagy végére illeszkedik
• Pl. \b1(0|1)*1\b azokat a legalább kettő hosszú szavakat listázza
melyeknek az első és utolsó betűje 1
Nemdeterminisztikus véges automata

I t t j ö n a b e m e n e t

olvasó
fej • Adott állapotból adott jel hatására több (esetleg 0)
állapotba is átmehet,
• üres szó hatására is állapotot válthat.

Vezérlő

1
Nemdeterminisztikus véges automata –
Motiváció
A következő nemdeterminisztikus véges automata egyszerűen oldja meg az alábbi feladatot:
• Döntsük el, hogy a bemenetben szerepel-e részszóként a 𝑙é𝑝 vagy az é𝑙 szó
• Az egyszerűség kedvéért feltesszük, hogy a bemenetben csak ez a három betű szerepel
• Megoldás:

𝑙, é, 𝑝
é 𝑝
𝑞1 𝑞2 𝑞3
𝑙
𝑙, é, 𝑝
𝑘
é
𝑙, é, 𝑝
𝑙 𝑝2
𝑝1

2
Nemdeterminisztikus véges automata
• (üres átmenetekkel ellátott) Nemdeterminisztikus véges
automata (röviden NVA): Q, Σ, 𝛿, 𝑞0 , 𝐹 , ahol
• Q, Σ, 𝑞0 , 𝐹 ugyanaz, mint a véges automaták esetében
• 𝛿: 𝑄 × Σ𝜀 → 𝑃(𝑄), az átmeneti függvény, ahol 𝑝 ∈ 𝛿 𝑞, 𝑎
• Σ𝜀 = Σ ∪ {𝜀}
• 𝑃 𝑄 pedig a 𝑄 részhalmazainak halmaza
𝑎 Egy
• Ha 𝑝 ∈ 𝛿 𝑞, 𝑎 , ahol 𝑎 ∈ Σ𝜀 , akkor 𝑞 𝑝 az 𝑀 egy A régi A bemeneten
lehetséges állapot olvasott betű
átmenete
új állapot vagy 𝜀
• A 𝛿 most is egyértelműen leírható egy átmeneti
diagrammal, az 𝑀 pedig megadható úgy, hogy az
átmenetdiagrammban megjelöljük a kezdő- és végállapotokat

3
Nemdeterminisztikus véges automaták
• Legyen M = (Q, Σ, 𝛿, 𝑞0 , 𝐹) egy NVA, 𝑞 ∈ 𝑄, és 𝑤 ∈ Σ ∗
𝑎1 𝑎2 𝑎𝑛
• 𝑀egy 𝑞-ból induló futása egy 𝑤 szón: átmenetek egy 𝑞1 𝑞2 𝑞3 … 𝑞𝑛 𝑞𝑛+1
sorozata, ahol n ≥ 0, 𝑞1 = 𝑞, 𝑎1 , … , 𝑎𝑛 ∈ Σ𝜀 és 𝑤 = 𝑎1 𝑎2 … 𝑎𝑛
• Ez a futás sikeres, ha 𝑞𝑛+1 ∈ 𝐹
• 𝑀 elfogadja 𝑤-t: 𝑀-nek van 𝑞0 -ból induló sikeres futása a 𝑤-n
• Az 𝑀 által felismert nyelv:
𝐿 𝑀 = {𝑤 ∈ Σ ∗ ∣ 𝑀 elfogadja 𝑤-t}

4
Nemdeterminisztikus véges automaták
• Egy 𝑀 NVA-nak egy adott 𝑢 szón egytől különböző számú futása is lehet (azaz lehet,
hogy egy sincs neki, vagy egynél több van)
• A véges automaták is tekinthetők NVA-knak: egy 𝑀 = (𝑄, Σ, 𝛿, 𝑞0 , 𝐹) véges automata
egy olyan NVA, ahol minden 𝑎 ∈ Σ, 𝑞 ∈ 𝑄 esetén 𝛿 𝑞, 𝑎 =1
• Ekkor 𝑀-nek minden szóra pontosan egy futása van
• A véges automatákat szokás determinisztikus véges automatáknak (DVA-knak) is
nevezni
• Azt mondjuk, hogy két NVA, 𝑀1 és 𝑀2 ekvivalensek, ha 𝐿 𝑀1 = 𝐿(𝑀2 )

5
Nemdeterminisztikus véges automaták -
Példa

• A felismert nyelv: {𝑢 ∈ 0,1 ∗ ∣ 𝑢 101-re vagy 11-re végződik}


• Futások az 1101 szó prefixein:

6
Nemdeterminisztikus véges automaták
Bizonyítás Minden NVA-val felismerhető nyelv felismerhető DVA-val is

Legyen 𝑀 = (Q, Σ, 𝛿, 𝑞0 , 𝐹) egy NVA. Megadunk egy 𝑀-mel ekvivalens 𝑀′ = (𝑄 ′ , Σ, 𝛿 ′ , 𝑞0′ , 𝐹′) DVA-t
Ötlet: 𝑀′ egyszerre szimulálja 𝑀 összes számítását egy adott szón:

𝑀 összes számítása az 1101-en 𝑀′ egyetlen azámítása 1101-en


1 𝑞0 1 𝑄0 Azon állapotok, melyek elérhetők 𝑀-
1 ben bemenet olvasása nélkül: 𝑞0
1 𝑞0 1 𝑞1 𝜀
𝑄1 Azon állapotok, melyek elérhetők 𝑀-
𝑞0 𝑞1 𝑞2 1 1 ben az 1 szó elolvasásával: 𝑞0 , 𝑞1 , 𝑞2
0 𝜀
0
𝑄2 Azon állapotok, melyek elérhetők 𝑀-ben
𝑞0 𝑞2 𝑞2 𝑞3 0 az 11 szó elolvasásával: 𝑞0 , 𝑞1 , 𝑞2 , 𝑞3
1 1 1
𝑞1 𝑄3 Azon állapotok, melyek elérhetők 𝑀-ben
𝑞0 𝑞3 az 110 szó elolvasásával: 𝑞0 , 𝑞2
𝜀 1
𝑞2 Végállapotnak jelöljük, 𝑄2 Azon állapotok, melyek elérhetők 𝑀-ben
mert 𝑀 elér végállapotot az 1101 szó elolvasásával: 𝑞0 , 𝑞1 , 𝑞2 , 𝑞3
az 1101 szóval (𝑞3 -at) 7
Nemdeterminisztikus véges automaták
Bizonyítás (folyt.) Legyen 𝑀 = (𝐴, 𝐵, 𝑡, 𝑘, 𝑉) egy
tetszőleges NVA és 𝑞 ∈ 𝐴
• 𝑞-t elérhetőnek nevezzük,
Az 𝜀-átmenetek miatt szükség lesz a következő műveletre, 𝑋 ⊆ 𝑄, ha 𝑀-nek van 𝑘-ból induló
és 𝑞-ba érkező futása
𝑋෠ = {𝑠 ∈ 𝑄 ∣ ∃𝑞 ∈ 𝑋, hogy 𝑀-nek van egy 𝑞-ból induló és 𝑠-be érkező futása valamely alkalmas w ∈ Σ ∗
az 𝜀 szón} szón
Legyen 𝑀′ = (𝑄 ′ , Σ, 𝛿 ′ , 𝑞0′ , 𝐹′), ahol
◦ 𝑄′ = 𝑃(𝑄) (azaz a 𝑄 részhalmazainak halmaza) A determinizáló algoritmus
◦ 𝑞0′ = {𝑞෢0 } (a 𝑞0 -ból 𝜀-átmenetekkel elérhető állapotok halmaza) módosítható úgy, hogy 𝑀′ egy
olyan VA legyen, aminek
◦ 𝐹 ′ = {𝑋 ⊆ 𝑄 ∣ 𝑋 ∩ 𝐹 ≠ ∅} (azaz a 𝑄 összes olyan részhalma, ami tartalmaz eredeti minden állapota elérhető
végállapotot)
◦ 𝛿 ′ : 𝑃 𝑄 × Σ → 𝑃(𝑄), 𝛿 ′ 𝑋, 𝑎 = 𝑌,෠ 𝑌 =∪𝑞∈𝑋 𝛿(𝑞, 𝑎)

Az 𝑌-beli állapotokból 𝜀- Az 𝑋-beli állapotokból az 𝑀 által


átmenetekkel elérhető állapotok 𝑎-t olvasva elérhető állapotok
8
Nemdeterminisztikus véges automaták –
Példa determinizálásra

9
Nemdeterminisztikus véges automaták
A determinizálás során a kapott automata állapotszáma akár exponenciális is lehet az eredeti NVA
állapotszámának függvényében

Legyen 𝑛 ≥ 1 és 𝐿𝑛 = 0,1 ∗ 1 0,1 𝑛−1 = {𝑤 ∈ 0,1 ∗ ∣ 𝑤 ≥ 𝑛 és 𝑤 hátulról 𝑛-ik betűje 1}


Ekkor 𝐿𝑛 felismerhető 𝑛 + 1 állapotú NVA-val, de minden 𝐿𝑛 -et felismerő (determinisztikus) véges
automatának legalább 2𝑛 állapota van
Bizonyítás (csak az első állítás)
𝐿𝑛 -et felismeri a következő NVA:

10
NVA-k minimalizálása
Minden 𝑀 NVA-hoz egyértelműen létezik egy ekvivalens minimális állapotszámú 𝑀′ DVA

Bizonyítás
Előkészületek 𝑀′ megkonstruálásához: legyen 𝑁 egy tetszőleges NVA
• Most megengedjük, hogy 𝑁-nek akár több kezdőállapota is legyen
• Az 𝑁 egy 𝑞 állapototát csapdaállapotnak nevezzük, ha nincs olyan 𝑞-ból induló futása 𝑁-
nek, ami végállapotba érkezik
• Jelölések:
• 𝑛 𝑁 egy 𝑁-nel ekvivalens normalizált NVA-t, azaz olyan NVA melyben nincsenek
csapdaállapotok
• 𝑑(𝑁) egy 𝑁-nel ekvivalens DVA, és
• 𝑓 𝑁 az 𝑁 fordítottja, amit a következőképpen definiálunk:
• 𝑓(𝑁) állapotai ugyanazok, mint 𝑁-nek,
• 𝑁 kezdőállapota lesz 𝑓(𝑁) végállapota, 𝑁 végállapotai lesznek 𝑓(𝑁) kezdőállapotai, és
• 𝑓 𝑁 átmeneteit pedig úgy kapjuk, hogy 𝑁 átmeneteit „megfordítjuk”

11
NVA-k minimalizálása
Bizonyítás (folyt.)
Ezek után az 𝑀′ megkonstruálása: • 𝑀1 még akkor is lehet nemdeterminisztikus
• Először kiszámítjuk az 𝑀 fordítottját ha 𝑀 determinisztikus
• 𝑀1 ≔ 𝑓(𝑀) • 𝑀3 az 𝑀 által felismert nyelv fordítottját, azaz
• Ezután elhagyjuk 𝑀 csapdaállapotait az 𝐿(𝑀)-beli szavak tükörképeiből álló
• 𝑀2 ≔ 𝑛(𝑀1 ) nyelvet felismerő minimális állapotszámú DVA
• Ezután determinizáljuk 𝑀2 -t
• 𝑀3 ≔ 𝑑(𝑀2 )
• Ezután kiszámítjuk az 𝑀3 fordítottját és elhagyjuk a kapott NVA
csapdaállapotait
• 𝑀4 ≔ 𝑛(𝑓 𝑀2 )
• Megint determinizálunk: 𝑀′ ≔ 𝑑(𝑀4 )
• Belátható, hogy 𝑀′ az 𝑀-mel ekvivalens minimális állapotszámú DVA

12
Példa minimalizálásra

13
A felismerhető nyelvek zártsági
tulajdonságai II.
A felismerhető nyelvek zártak a konkatenációra: 𝐿1 , 𝐿2 felismerhetők ⇒ 𝐿1 𝐿2 felismerhető

• Legyen 𝑀𝑖 = (𝑄𝑖 , Σ, 𝛿𝑖 , 𝑞𝑖 , 𝐹𝑖 ) úgy hogy 𝐿𝑖 = 𝐿 𝑀𝑖 és 𝑄1 ∩ 𝑄2 = ∅ (𝑖 = 1,2)


• Megadunk egy 𝑀′-t melyre 𝐿 𝑀′ = 𝐿1 𝐿2
• Ötlet:

→∙ ∙∙ ∙ ⊙ →∙ ∙ ∙
𝑀1 𝑀2
⊙ ⊙ 𝑀′ = (𝑄1 ∪ 𝑄2 , Σ, 𝛿, 𝑞1 , 𝐹2 ), ahol
⊙⊙
𝛿1 (𝑞, 𝑎) 𝑞 ∈ 𝑄1 − 𝐹1
𝛿1 (𝑞, 𝑎) 𝑞 ∈ 𝐹1 , 𝑎 ≠ 𝜀
𝛿 𝑞, 𝑎 =
𝑀′ 𝛿1 𝑞, 𝑎 ∪ {𝑞2 } 𝑞 ∈ 𝐹1 , 𝑎 = 𝜀
𝛿2 (𝑞, 𝑎) 𝑞 ∈ 𝑄2

→∙ ∙ ∙ ∙∙ 𝜀
𝜀
∙ ∙∙

⊙⊙
14
A felismerhető nyelvek zártsági
tulajdonságai II.
A felismerhető nyelvek zártak a Kleene-féle iterációra: 𝐿 felismerhető ⇒ 𝐿∗ felismerhető

Bizonyítás
• Legyen 𝑀 = (𝑄, Σ, 𝛿, 𝑞0 , 𝐹) úgy hogy 𝐿 = 𝐿 𝑀
• Megadunk egy 𝑀′-t melyre 𝐿 𝑀′ = 𝐿∗
• Ötlet:
∙𝑀

→∙ ∙ ⊙ ⊙ 𝑀′ = (𝑄 ∪ {𝑠0 }, Σ, 𝛿′, 𝑠0 , 𝐹 ∪ {𝑠0 }), ahol

𝛿(𝑞, 𝑎) 𝑞 ∈ 𝑄, 𝑞 ∉ 𝐹
𝛿(𝑞, 𝑎) 𝑞 ∈ 𝐹, 𝑎 ≠ 𝜀
𝛿′ 𝑞, 𝑎 = 𝛿 𝑞, 𝑎 ∪ {𝑞0 } 𝑞 ∈ 𝐹, 𝑎 = 𝜀
𝑀′
𝜀 𝑞0 𝑞 = 𝑠0 , 𝑎 = 𝜀

→⊙ 𝜀 ∙ ∙
∙ ∙ ⊙ ⊙ 𝜀 ∅ 𝑞 = 𝑠0 , 𝑎 ≠ 𝜀

𝑠0

15
A felismerhető nyelvek zártsági
tulajdonságai II.
Nemdeterminisztikus automatákkal az egyesítésre való zártság könnyeben is bizonyítható:
• Ötlet:
𝑀1
∙ ∙
→∙ ∙ ⊙ ⊙ 𝑀′

∙ ⊙
∙ ∙ ∙⊙
𝜀

→∙ ∙ ∙
𝑀2

⊙⊙ →∙ 𝜀


∙ ∙

⊙⊙
• Ekkor 𝐿 𝑀′ = 𝐿 𝑀1 ∪ 𝐿(𝑀2 )

16
Kleene tétele
A felismerhető nyelvek megegyeznek a reguláris nyelvekkel

Reguláris kifejezésből DVA

Legyen 𝑅 egy 𝐿 nyelvet jelölő reguláris kifejezés


𝑅 felépítése szerinti indukcióval belátható, hogy 𝐿 egy felismerhető nyelv
Ha 𝑅 a legegyszerűbb reguláris kifejezések egyike, egy betű vagy ∅, akkor könnyen adható megfelelő
automata:
𝑎
◦ Egy 𝑎 betűt (és csak azt) felismerő VA: → ⋅ ⊙
◦ Az üres nyelv felismerhető tetszőleges olyan VA-val, aminek nincs végállapota

Ha 𝑅 egy összetett reguláris kifejezés, akkor szétbonthatjuk egyszerűbbekre és feltehetjük, hogy az


egyszerűbbekhez már vannak megfelelő NVA-k
Ezekből az NVA-kból, ahogyan azt a felismerhető nyelvek zártsági tulajdonságainál láttuk,
megkonstruálható egy 𝐿-et felismerő NVA, amiből pedig megadható egy 𝐿-et felismerő DVA is

1
Kleene tétele – NVA-ból reguláris kifejezés
Legyen 𝑀 egy NVA, megadunk egy olyan 𝑅 reguláris kifejezést, ami 𝐿(𝑀)-et jelöli
Feltehetjük, hogy 𝑀 a következő alakú:
• pontosan egy végállapota van,
• a végállapotból nem indul átmenet,
• A kezdőállapotba nem vezet átmenet,
• a kezdőállapot különbözik a végállapottól
• (a többi állapotot belső állapotnak nevezzük)
Továbbá általánosítjuk az NVA-t:
• bármely két belső állapot között pontosan egy él van és
• minden él egy reguláris kifejezéssel van címkézve
• (a példákban nem tüntetjük majd fel az üreshalmazzal címkézett éleket)
Megjegyzés: ha egy ilyen NVA-nak nincs belső állapota, akkor a kezdő és végállapot közötti
él olyan reguláris kifejezéssel van címkézve ami megegyezik az NVA által felismert nyelvvel

3
Kleene tétele – NVA-ból reguláris kifejezés
Amíg az NVA-nak van belső csúcsa, csináljuk a
következőt:
◦ Legyen 𝑠 egy belső csúcs és 𝑞, 𝑞′ , 𝑠 egy ◦ Az 𝑞 𝑞′ átmenet címkéjét 𝑅𝑞𝑞′ -ről változtassuk
„háromszög” az átmeneti gráfban: 𝑅𝑞𝑞′ + 𝑅𝑞𝑠 ⋅ 𝑅𝑠𝑠 ∗ ⋅ (𝑅𝑠𝑞′ )-re:

◦ Amikor ezt minden ilyen háromszögre megcsináltuk, hagyjuk el az 𝑠 csúcsot


◦ Belátható, hogy a kapott új NVA ugyanazt a nyelvet ismeri fel, mint a korábbi
◦ Ezt addig iteráljuk, amíg a kapott NVA-nak már csak kezdő és végállapota van
◦ Az ezek között átmenet címkéje egy olyan reguláris kifejezés, ami 𝐿(𝑀)-et jelöli

4
NVA-ból reguláris kifejezés – Példa

0,1
0+1
0,1
𝑞1 0 𝑞2 0+1
0 𝑞1 0 𝑞2
0 𝜀
𝑞0 0,1 𝜀
1 𝑞0′ 𝑞0 0+1 𝑞𝑓
𝑝1 1 1 𝜀
𝑝2
𝑝1 1 𝑝2

A felismert nyelv: azon


{0,1}-feletti szavak, 0+1
𝑞1
melyekben előfordul a 0
00 vagy 11 részszó 𝜀
𝑞0′ 𝑞0 0+1 𝑞𝑓 (folyt. köv.)
1 𝜀
𝑝1 1 𝑝2
5
NVA-ból reguláris kifejezés – Példa

0+1
𝑞1 0+1
0 𝑞1
𝜀 0
𝑞0′ 𝑞0 0+1 𝑞𝑓 𝜀
1 𝜀 𝑞0′ 𝑞0 𝑞𝑓
1 𝑝1
𝑝1 1 𝑝2

0+1
00 0 + 1 ∗
𝜀
𝑞0′ 𝑞0 𝑞𝑓
1 𝑝1

(folyt. köv.)

6
NVA-ból reguláris kifejezés – Példa
Egy reguláris kifejezés, ami pont az
eredeti NVA által felismert nyelvet
0+1 jelöli (azon szavak, melyekben
00 0 + 1 ∗
𝜀 előfordul a 00 vagy 11 részszó)
𝑞0′ 𝑞0 𝑞𝑓
1 𝑝1

0 + 1 ∗ (00 0 + 1 ∗ + 11 0 + 1 ∗ )
𝑞0′ 𝑞𝑓

0+1
00 0 + 1 ∗
𝜀 +11 0 + 1 ∗
𝑞0′ 𝑞0 𝑞𝑓

7
A felismerhető nyelvek korlátai
Ha egy 𝑀 automatának egy ,,elég hosszú” olyan 𝑢 szót adunk bemenetként, akkor az 𝑀-nek az 𝑢-n való
futása biztos, hogy érint egy 𝑞 állapotot kétszer

A pumpáló lemma
Legyen 𝑀 = (𝐴, 𝐵, 𝑡, 𝑘, 𝑉) egy 𝐿 nyelvet felismerő VA és legyen 𝑝 az 𝑀 állapotainak száma.
Legyen 𝑢 egy olyan legalább 𝑝 hosszú szó, amit 𝑀 elfogad. Ekkor 𝑢 felírható

𝑥 𝑦 𝑧
alakban úgy, hogy a következő teljesül:
1. 𝑦 hossza legalább 1
2. 𝑥𝑦 hossza legfeljebb 𝑝
3. 𝑥𝑦 𝑖 𝑧 ∈ 𝐿 minden 𝑖 ≥ 0 számra

8
A felismerhető nyelvek korlátai
Bizonyítás

Vegyük az 𝑀 sikeres futását az 𝑢-n:


𝑎1 𝑎2 𝑎𝑛
𝑞0 𝑞1 𝑞2 … 𝑞𝑛−1 𝑞𝑛 (𝑞0 = 𝑘, 𝑞𝑛 ∈ 𝑉, 𝑎1 … 𝑎𝑛 = 𝑢, 𝑎𝑖 ∈ 𝐵, 𝑛 ≥ 𝑝)
Legyen 𝑞𝑗 az első olyan állapot, ami volt már korábban, azaz van olyan 𝑖 < 𝑗, hogy 𝑞𝑖 = 𝑞𝑗
Legyen 𝑥 az 𝑢 𝑖-hosszú kezdőszelete
𝑢 =𝑛
𝑦 az 𝑥-et követő 𝑗 − 𝑖 hosszú részszó,
és 𝑧 az 𝑢 𝑛 − 𝑗 hosszú zárószelete:

𝑥 =𝑖 𝑦 =𝑗−𝑖 𝑧 =𝑛−𝑗
𝑞0 𝑞𝑖 = 𝑞𝑗 𝑞𝑗 𝑞𝑛
Ekkor az 𝑢 = 𝑥𝑦𝑧 felbontásra teljesül mindhárom állítás

9
𝑛 𝑛
Az 𝐿 = {𝑎 𝑏 ∣ 𝑛 ≥ 0} nyelv nem felismerhető
Legalább
Hogyan lehet ezt megmutatni? 1 db 𝑎
Tegyük fel, hogy egy 𝑀 VA mégis felismeri 𝐿-et, és legyen 𝑝 az 𝑀 állapotainak száma
Legyen 𝑢 = 𝑎𝑝 𝑏 𝑝 , ezen 𝑀-nek van sikeres futása 𝑥 𝑦, 𝑦 > 1

Mivel 𝑢 ≥ 𝑝, 𝑢-nak van egy ilyen felbontása: 𝑎𝑎𝑎𝑎𝑎 … 𝑎𝑎𝑎𝑎𝑎 𝑏𝑏𝑏𝑏𝑏 … 𝑏𝑏𝑏𝑏𝑏
𝑦 Csak 𝑎
𝑦 𝑧
𝑥𝑦, 𝑥𝑦 ≤ 𝑝 betű lehet
𝑎𝑎𝑎𝑎𝑎 … 𝑎𝑎𝑎 … 𝑎𝑎𝑎𝑎𝑎 𝑏𝑏𝑏𝑏𝑏 … 𝑏𝑏𝑏𝑏𝑏 benne
Legyen 𝑢′ a következő szó:

Azt tanultuk, hogy 𝑢′-t is fel kellene ismernie 𝑀-nek, de abban több 𝑎 van mint 𝑏!
Hol a hiba? Hát ott, hogy feltettük, hogy 𝑀 𝐿-et ismeri fel
Tehát 𝐿 nem felismerhető!

10
A VA-k kimenettel
Mealy automata: (𝐴, 𝐵, 𝑂, 𝑡, 𝑓, 𝑘)
◦ 𝐴, 𝐵, 𝑡, 𝑘 ugyanaz, mint VA-knál
◦ 𝑂: kimenő jelek ábécéje
◦ 𝑓: 𝐴 × 𝐵 → 𝑂, a kimeneti függvény
◦ Ha 𝑡 𝑞, 𝑎 = 𝑝 és 𝑓 𝑞, 𝑎 = 𝑏, 𝑞, 𝑝 állapotok, 𝑎 bemenő jel, 𝑏 pedig egy kimenő jel, akkor
𝑎/𝑏
𝑞 𝑝
◦ az 𝑀 egy átmenete
◦ Az átmenetek alapján 𝑡 és 𝑓 egyértelműen leírható az átmeneti−kimeneti diagrammal
◦ csúcsai: állapotok, élei: átmenetek
◦ 𝑀 megadása az átmeneti−kimeneti diagrammal: megjelöljük a gráfban a kezdőállapotot

11
A VA-k kimenettel
𝑀 egy futása egy 𝑢 = 𝑎1 … 𝑎𝑛 𝑎𝑖 ∈ 𝐵 szón átmenetek egy

𝑎1 /𝑓 𝑞1 ,𝑎1 𝑎2 /𝑓(𝑞2 ,𝑎2 ) 𝑎𝑛 /𝑓(𝑞𝑛 ,𝑎𝑛 )


𝑞1 𝑞2 𝑞3 … 𝑞𝑛 𝑞𝑛+1 sorozata, ahol 𝑞1 = 𝑘

Megjegyzés: 𝑀-nek pontosan egy futása van 𝑢-n


𝑓 kiterjesztése 𝑢-ra: 𝑓 𝑢 = 𝑓 𝑞1 , 𝑎1 𝑓 𝑞2 , 𝑎2 … 𝑓(𝑞𝑛 , 𝑎𝑛 )
Az 𝑀 által meghatározott számítás:
egy 𝐹𝑀 : 𝐵∗ → 𝑂∗ függvény, melyre 𝐹𝑀 𝑢 = 𝑓(𝑢), minden 𝑢 ∈ 𝐵∗ esetén

12
Mealy automata – Példa
Mealy automata, ami minden olyan 0-t ami közvetlenül 11 után jön átír 1-re:
0/1
0/0

1/1 1/1
𝑘 𝑞 𝑟

0/0
1/1
𝑀 futása a 010110 szón:
0/0 1/1 0/0 1/1 1/1 0/1
𝑘 𝑘 𝑞 𝑘 𝑞 𝑟 𝑘
𝐹𝑀 010110 = 010111
◦ Egy 𝑀=(𝐴, 𝐵, 𝑂, 𝑡, 𝑓, 𝑘) Mealy automata kimeneti
𝐹𝑀 (11001110)=11101111 függvénye általánosítható a következőképpen:
◦ 𝑓: 𝐴 × 𝐵 → 𝑂∗
◦ azaz tetszőleges 𝑞 állapotra és 𝑏 bemenetre 𝑓(𝑞, 𝑏) értéke
egy 𝑂 feletti szó

13
Protokoll megadása Mealy automatával – Példa
Egy fiktív, ember-ember közötti kommunikációs protokollt adunk meg
A kapcsolat kialakításának menete: Kliens állapotdiagram:
req(Mi a dátum?)
--------------------------
send_msg(svr, SZIA)
IDLE
IDLE
Infó kéne: Mi a dátum? IDLE VAR_KOSZONTES
rcv_msg(SZIA)
--------------------------------
VAR_KOSZONTES rcv_msg(UDV) send_msg(svr, DATUM?)

VAR_KERDES VAR_BUCSU VAR_VALASZ


rcv_msg(DATUM)
-----------------------------------
ans_req(A dátum DATUM)
send_msg(svr, UDV)
VAR_VALASZ
Server állapotdiagram:
Infó: a dátum 2021.09.29 VAR_BUCSU
rcv_msg(SZIA)
---------------------------
send_msg(clt, SZIA)
VAR_BUCSU IDLE
rcv_msg(UDV)
--------------------------
send_msg(clt, UDV)
IDLE VAR_KERDES

IDLE rcv_msg(DATUM?)
-------------------------------
VAR_BUCSU send_msg(clt, DATUM)
14
Környezetfüggetlen
nyelvtanok

1
Környezetfüggetlen nyelvtanok
A környezetfüggetlen nyelvtanokat Noam Chomsky vezette be az 1950-es években a
természetes nyelvek struktúrájának leírására
◦ Kiderült, hogy erre nem annyira jók
Mire jók akkor?
◦ Programozási nyelvek szintaxisának megadására
(Backus—Naur-forma, BNF)
A bal oldalon
van amit
definiálunk Egyszerű kifejezések definíciója BNF-fel: Hogyan ellenőrizhető, hogy az 𝑎 + 𝑏 ∗ 𝑐
helyes-e?
<kifejezés> ::= <kifejezés> "+" <kifejezés> |
<kifejezés> "∗" A jobb oldalon <kifejezés>
<kifejezés> | megmondjuk, ⇒ <kifejezés> ∗ <kifejezés>
"("<kifejezés>")" | <konstans> miből állhat egy ⇒ (<kifejezés>) ∗ <kifejezés>
<konstans> ::= "𝑎" | "𝑏" | "𝑐" kifejezés ⇒ (<kifejezés> + <kifejezés>) ∗ <kifejezés>
(a ∣ jel „vagy”- ⇒3 (<konstans> + <konstans>) ∗ <konstans>
ként funkcionál, ⇒3 (a + b) * c
mint a Unix
regkifeknél) 2
Környezetfüggetlen nyelvtanok
Környezetfüggetlen (röviden: CF) nyelvtan egy 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) rendszer, ahol
◦ 𝑁 véges, nemüres halmaz: a nemterminálisok halmaza
◦ 𝑇 véges, nemüres halmaz: a terminálisok halmaza, 𝑁 ∩ 𝑇 = ∅
◦ 𝑆 ∈ 𝑁 a kezdőszimbólum
◦ 𝑅: 𝐴 → 𝑤 alakú szabályok véges
halmaza, ahol 𝑁 = 𝑆 , 𝑇 = 0,1
𝐴 ∈ 𝑁, 𝑤 ∈ 𝑁 ∪ 𝑇 ∗
𝑅 = {𝑆 → 𝜀, 𝑆 → 0𝑆1} Kezdőszimbólum: 𝑆
◦ A továbbiakban 𝐺 szimbólumai alatt (𝑅 = {𝑆 → 0𝑆1|𝜀}),
az 𝑁 ∪ 𝑇 halmazt értjük 𝑆 ⇒ 0𝑆1 ⇒ 00𝑆11 ⇒ 000𝑆111 ⇒ 000111 deriváció

derivációs fa

3
Környezetfüggetlen nyelvtanok
Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy környezetfüggetlen nyelvtan és 𝑢, 𝑣 ∈ (𝑁 ∪ 𝑇)∗
1. 𝑢 közvetlenül deriválja 𝑣-t (jele: 𝑢 ⇒ 𝑣) ha 𝑢, 𝑣 felbontható 𝑢 = 𝑢1 𝐴𝑢2 és 𝑣 = 𝑢1 𝑤𝑢2 alakban
úgy, hogy 𝐴 → 𝑤 ∈ 𝑅:
𝑢: 𝑢1 𝐴 𝑢2

𝑣: 𝑢1 𝑤 𝑢2

2. Egy 𝑢0 , 𝑢1 , … , 𝑢𝑛 (𝑛 ≥ 0) sorozatot a 𝑣 szó 𝑢-ból való derivációjának (levezetésének) nevezzük


ha
𝑢 = 𝑢0 ⇒ 𝑢1 ⇒ 𝑢2 ⇒ ⋯ ⇒ 𝑢𝑛−1 ⇒ 𝑢𝑛 = 𝑣 A 𝐺 levezetésben
megjelenő
3. Ez esetben azt mondjuk, hogy a 𝑣 deriválható vagy levezethető 𝑢-ból, jele: 𝑢 ⇒∗ 𝑣 szavakat
4. A 𝐺 által generált nyelv: azon 𝑇-feletti szavak halmaza, melyek levezethetők 𝑆-ből mondatformáknak
nevezzük
Ezt a nyelvet 𝐿 𝐺 jelöljük

4
Környezetfüggetlen nyelvtanok – Példa
Az ilyen nyelvtanok egyik legjellemzőbb tulajdonsága az, hogy a helyes zárójelezéseknek
megfelelő struktúrák modellezhetők vele
Például a helyes zárójelezések nyelve a következő nyelvtannal generálható:
◦ A terminális jelek: ( és )
◦ A nemterminálisok: 𝑆 Derivációs fa
◦ Kezdő nemterminális: 𝑆
◦ A szabályok: 𝑆 → 𝑆𝑆 𝑆 𝜀

Az (())() szó egy levezetése:


◦ 𝑆 ⇒ 𝑆𝑆 ⇒ 𝑆 𝑆
⇒ 𝑆 𝑆 ⇒ (())𝑆
⇒ (())(𝑆) ⇒ (())()

5
Derivációs fák
Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy környezetfüggetlen nyelvtan. Egy 𝐺-feletti derivációs fa egy olyan
fa, amire teljesülnek az alábbiak:
𝑆
A gyökere 𝑆-sel van címkézve
A fa csúcsainak címkéi 𝐺
szimbólumai és az 𝜀 lehetnek
A 𝐺 által generált nyelv szavai és 𝐺
derivációs fái között szoros kapcsolat van:
◦ Tetszőleges 𝑢 ∈ 𝑇 ∗ szóra: A derivációs fa felépítése
◦ 𝑢 levezethető 𝐺-ben ⇔ 𝐺-nek van olyan 𝑋
derivációs fája, melynek a határa 𝑢 Egy derivációs fa felépítésekor a
következőket kell eldönteni:
𝑋1 … 𝑋𝑛
1. Melyik nemterminálist terjesszük ki
• A levelek címkéje 2. Melyik szabályt alkalmazzuk erre a
terminális nemterminálisra
szimbólum illetve az
𝜀 lehet, és
• ha egy csúcs Ha egy 𝑋-el jelölt csúcs gyerekei A derivációs fa leveleinek
címkéje 𝜀, akkor 𝜀- 𝑋1 , … , 𝑋𝑛 , akkor 𝑋 → 𝑋1 … 𝑋𝑛 egy 𝑅-beli címkéi balról jobbra olvasva:
nak nincs testvére szabály a derivációs fa határa

6
Derivációs fák – Példa
Az egyszerű kifejezések korábbi – BNF-fel megadott – leírása CF nyelvtannal
megadva (nevezzük ezt a nyelvtant CFEXP1-nek):
◦ Terminális jelek: +,∗, , , 𝑎 (az egyszerűség kedvéért a továbbiakban a konstansok jelölésére csak
az 𝑎 terminálist használjuk)
◦ Nemterminálisok: 𝐾, ez lesz a kezdő is Az első levezetés A másodiké és
derivációs fája: harmadiké:
◦ Szabályok:
◦ 𝐾 → 𝐾+𝐾 𝐾∗𝐾 𝐾 |𝑎 𝐾 𝐾
◦ Az 𝑎 ∗ 𝑎 + 𝑎 kifejezés néhány levezetése:
1. 𝐾 ⇒ 𝐾 + 𝐾 ⇒ 𝐾 ∗ 𝐾 + 𝐾 ⇒ 𝐾 ∗ 𝑎 + 𝐾 𝐾 𝐾 𝐾 𝐾
⇒𝑎∗𝑎+𝐾 ⇒𝑎∗𝑎+𝑎 + ∗
2. 𝐾 ⇒ 𝐾 ∗ 𝐾 ⇒ 𝑎 ∗ 𝐾 ⇒ 𝑎 ∗ 𝐾 + 𝐾
⇒ 𝑎 ∗ 𝑎 + 𝐾 ⇒ 𝑎 ∗𝐾
𝑎 + 𝑎∗ 𝐾 𝐾 + 𝐾
3. 𝐾 ⇒ 𝐾 ∗ 𝐾 ⇒ 𝐾 ∗ 𝐾 + 𝐾 ⇒ 𝑎 ∗ 𝐾 + 𝐾 𝑎 𝑎
⇒𝑎∗𝑎+𝐾 ⇒𝑎∗𝑎+𝑎
𝑎 𝑎 𝑎 𝑎
A harmadik csak annyiban különbözik a másodiktól,
hogy más sorrendben írja át a 𝐾-kat 𝑎-ra (ezért egyezik meg a derivációs fájuk)

9
Derivációs fák – Baloldali levezetés
A derivációs fából könnyen kiolvasható, hogy melyik nemterminális melyik szabály jobb oldalával lett
kiterjesztve (előző megjegyzés 2. pont), de az nem, hogy ez milyen sorrendben történt (1. pont)

𝐺 egy levezetését baloldalinak nevezzük ha minden lépésben az aktuális mondatforma legelső


nemterminálisa van átírva (a jobboldali levezetések hasonlóan definiálhatók)
A baloldali deriváció jelölése: 𝑢0 ⇒𝑙 𝑢1 ⇒𝑙 . . . ⇒𝑙 𝑢𝑛 vagy 𝑢0 ⇒∗𝑙 𝑢𝑛

Egy 𝐺 CF nyelvtan derivációs fái és 𝐿(𝐺)


CFEXP1 levezetései közül csak a 2. baloldali baloldali levezetései között kölcsönösen
levezetés egyértelmű kapcsolat van

10
?

Egyértelmű CF nyelvtanok
A 𝐺 CF nyelvtant egyértelműnek nevezzük, ha minden 𝑢 ∈ 𝐿(𝐺) szónak pontosan egy baloldali levezetése
(azaz derivációs fája) van

Az „A derivációs fa felépítése” megjegyzésben írtak 1. pontja világos, ha baloldali levezetéseket tekintünk


A megfelelő szabály kiválasztását (2-es pont) segítheti az, hogy a nyelvtan egyértelmű
Ezért célszerű adott feladatra egyértelmű nyelvtant megadni

CFEXP1 nem egyértelmű, de az általa generált nyelvhez lehet egyértelmű


nyelvtant adni: Derivációs fa
𝐾
◦ A terminális jelek: +,∗, 𝑎, , , a nemterminálisok: 𝐾, 𝑇, 𝐹, kezdő 𝐾 𝑇
nemterminális: 𝐾 +
𝑇 𝐹
◦ A szabályok:
𝑎
◦ 𝐾 → 𝐾 + 𝑇 | 𝑇; 𝑇 → 𝑇 ∗ 𝐹 | 𝐹 ; 𝐹 → (𝐾) | 𝑎 𝐹
𝑇
◦ Az 𝑎 ∗ 𝑎 + 𝑎 kifejezés egyetlen baloldali levezetése: ∗
𝐹 𝑎
◦ 𝐾 ⇒𝑙 𝐾 + 𝑇 ⇒𝑙 𝑇 + 𝑇 ⇒𝑙 𝑇 ∗ 𝐹 + 𝑇 ⇒𝑙 𝐹 ∗ 𝐹 + 𝑇 ⇒𝑙 𝑎 ∗ 𝐹 + 𝑇 ⇒𝑙 𝑎 ∗ 𝑎 + 𝑇
⇒𝑙 𝑎 ∗ 𝑎 + 𝐹 ⇒𝑙 𝑎 ∗ 𝑎 + 𝑎 𝑎

11
Egyértelmű CF nyelvtanok
Egy 𝐿 nyelvet környezetfüggetlennek (CF) nevezünk ha generálható CF nyelvtannal
Egy CF nyelvet egyértelműnek nevezünk ha generálható egyértelmű CF nyelvtannal

Nem minden CF nyelv egyértelmű


Ráadásul nem lehet algoritmust adni annak eldöntésére, hogy egy CF nyelvtan egyértelmű-e

Egy nem egyértelmű CF nyelv: 𝐿 = {𝑎𝑖 𝑏 𝑗 𝑐 𝑘 ∣ 𝑖, 𝑗, 𝑘 ≥ 1, 𝑖 = 𝑗 vagy 𝑗 = 𝑘}


𝐿 generálására alapvetően nincs más mód, mint a következő szabályokkal rendelkező 𝐺 nyelvtan használata (a
nagybetűk a nemterminálisok, a kisbetűk a terminálisok, 𝑆 a kezdő):
𝑆 → 𝐴𝐵 Ezt használjuk ha olyan szavakat De akkor azok a szavak,
𝑆 → 𝐶𝐷 akarunk levezetni, melyekben melyekben ugyanannyi 𝑎,
ugyanannyi 𝑎 van mint 𝑏 𝑏 és 𝑐 van levezethetők
𝐴 → 𝑎𝐴𝑏 ∣ 𝑎𝑏 akkor is ha az első és
𝐵 → 𝑐𝐵 ∣ 𝑐 akkor is ha a második
Ezt pedig akkor ha olyanokat,
szabállyal kezdjük a
𝐶 → 𝑎𝐶 ∣ 𝑎 melyekben ugyanannyi 𝑏 van mint 𝑐
levezetést. Azaz a
𝐷 → 𝑏𝐷𝑐 ∣ 𝑏𝑐 nyelvtan nem egyértelmű
12
Környezetfüggetlen nyelvek

Minden felismerhető nyelv környezetfüggetlen

Bizonyítás
Legyen 𝑀 = (𝑄, Σ, 𝛿, 𝑞0 , 𝐹) egy 𝐿-et felismerő véges automata
Konstruáljuk meg a következő 𝐺 környezetfüggetlen nyelvtant:
◦ 𝐺 = (𝑄, Σ, 𝑅, 𝑞0 ), ahol
𝑎
𝑅 = {𝑞 → 𝑎𝑞 ′ ∣ 𝑞 𝑞 ′ az 𝑀 egy átmenete} ∪ {𝑞 → 𝜀 ∣ 𝑞 ∈ 𝑉}
◦ Ekkor 𝐿 = 𝐿(𝐺)
◦ Megjegyzés: a megadott nyelvtan egy úgynevezett jobblineáris nyelvtan

13
Környezetfüggetlen nyelvek
Minden reguláris nyelv környezetfüggetlen

Közvetlen bizonyítás (közvetve következik az előbbi állításból)


Legyen 𝐸 egy Σ-feletti reguláris kifejezés. Az 𝐸 felépítése szerinti indukcióval megadunk egy olyan 𝐺𝐸 =
(𝑁𝐸 , Σ, 𝑅𝐸 , 𝑆𝐸 ) környezetfüggetlen nyelvtant melyre 𝐿 𝐺𝐸 = |𝐸|:

A reguláris kifejezés A környezetfüggetlen nyelvtan


𝑎∈Σ 𝐺𝑎 =({𝑆}, Σ, {𝑆 → 𝑎}, 𝑆)
∅ 𝐺∅ = ({𝑆}, Σ, ∅, 𝑆)
𝐸 = 𝐸1 + 𝐸2 𝐺𝐸 = (𝑁𝐸1 ∪ 𝑁𝐸2 ∪ {𝑆}, Σ, 𝑅𝐸1 ∪ 𝑅𝐸2 ∪ {𝑆 → 𝑆𝐸1 , 𝑆 → 𝑆𝐸2 }, 𝑆)
𝐸 = (𝐸1 𝐸2 ) 𝐺𝐸 = (𝑁𝐸1 ∪ 𝑁𝐸2 ∪ {𝑆}, Σ, 𝑅𝐸1 ∪ 𝑅𝐸2 ∪ {𝑆 → 𝑆𝐸1 𝑆𝐸2 }, 𝑆)
𝐸 = (𝐸1∗ ) 𝐺𝐸 = (𝑁𝐸1 ∪ {𝑆}, Σ, 𝑅𝐸1 ∪ {𝑆 → 𝑆𝑆𝐸1 , 𝑆 → 𝜀}, 𝑆)

Ahol (𝑁𝐸𝑖 , Σ, 𝑅𝐸𝑖 , 𝑆𝐸𝑖 ) az |𝐸𝑖 | nyelvet generáló CF nyelvtan (𝑖 = 1,2)


A 3. és 4. esetben feltesszük, hogy 𝑁𝐸1 ∩ 𝑁𝐸2 = ∅, 𝑆 ∉ 𝑁𝐸1 ∪ 𝑁𝐸2 , az 5. esetben pedig azt, hogy 𝑆 ∉ 𝑁𝐸1
14
Környezetfüggetlen nyelvek
Az előző konstrukció felhasználásával adódik az alábbi
Következmény: A környezetfüggetlen nyelvek zártak a reguláris műveletekre

A környezetfüggetlen nyelvek nem zártak a metszetképzésre és a komplementerképzésre

Bizonyítás

Elég megmutatni az állítást a metszetképzésre, abból az egyesítésre való zártság miatt adódik az állítás
a komplementerképzésre
Legyen 𝐿1 = 𝑎𝑛 𝑏 𝑛 𝑐 𝑚 𝑛, 𝑚 ≥ 0 és 𝐿2 = 𝑎𝑚 𝑏𝑛 𝑐 𝑛 𝑛, 𝑚 ≥ 0
Világos, hogy 𝐿1 ∩ 𝐿2 = 𝑎𝑛 𝑏 𝑛 𝑐 𝑛 𝑛 ≥ 0
Ugyanakkor 𝑎𝑛 𝑏 𝑛 𝑐 𝑛 𝑛 ≥ 0 nem környezetfüggetlen (ennek bizonyítása hamarosan)

15
A környezetfüggetlen nyelvek korlátai
Ha egy 𝐺 környezetfüggetlen nyelvtannak egy 𝑡 derivációs fája ,,elég magas”, akkor 𝑡-ben lesz olyan út,
melyen egy nemterminális legalább kétszer fordul elő

CF pumpáló lemma
Legyen 𝐺 = 𝑁, 𝑇, 𝑅, 𝑆 egy 𝐿 nyelvet generáló CF nyelvtan
Legyen 𝑝 = 𝑘 𝑁 +1 , ahol 𝑘 az 𝑅 leghosszabb szabályában a jobboldal hossza
Legyen 𝑤 egy olyan legalább 𝑝 hosszú szó, ami levezethető 𝐺-ben. Ekkor 𝑤 felírható
|𝑣| + |𝑦| >0

alakban úgy, hogy


𝑢 𝑣 𝑥 𝑦 𝑧
1. 𝑣𝑦 > 0, 𝑣𝑥𝑦 ≤ 𝑝
2. 𝑣𝑥𝑦 ≤ 𝑝,
3. 𝑢𝑣 𝑖 𝑥𝑦 𝑖 𝑧 ∈ 𝐿 minden 𝑖 ≥ 0 számra

16
A környezetfüggetlen nyelvek pumpáló lemmája
Bizonyítás
◦ Vegyük a 𝑤 szó egy minimális magasságú 𝑡 derivációs fáját
◦ 𝑡 magassága a leghosszabb úton lévő élek száma; jele: |𝑡|
◦ A 𝑡 határának hossza legfeljebb 𝑘 |𝑡|
◦ Mivel 𝑤 hossza legalább 𝑘 𝑁 +1 , |𝑡| legalább 𝑁 + 1
◦ Legyen ℎ a 𝑡-ben az egyik leghosszabb út, ekkor 𝑡 felírható a következő alakban: 𝑆

3.
𝑆
Tekintsük a ℎ utat, és vegyük a ℎ-n az ⋮

melynek határa -beli


Ez is egy derivációs fa,
A 𝑡′-vel jelölt részfa 𝑖-
𝐴 utolsó 𝑁 + 1 nemterminálist 𝐵
szeres iterálása (azaz
Ezek között kell legyen egy ismétlődő
egymás alá írása)
⋮ nemterminális, vegyük a legelső
𝐵 ilyet, legyen ez 𝐵 𝐵
⋮ ⋮
𝐵
𝑡′ 𝐵
𝑤 ezen felbontására teljesülnek a lemma
feltételei: 𝐵
𝑡′ 1. 𝑣𝑦 nem lehet üres, mert akkor 𝑣 𝑦
készíthetnénk egy alacsonyabb
𝑢 𝑡′ 𝑧
derivációs fát ami ugyanúgy 𝑤-t vezeti le
𝑢 𝑣 𝑥 𝑦 𝑧 2. 𝑣𝑥𝑦 hossza legfeljebb 𝑝 mert az őt
levezető der. fa magassága legfeljebb 𝑣 𝑥 𝑦
𝑁 +1 𝑣𝑖 𝑦𝑖 17
Az 𝐿 = {𝑎𝑛 𝑏𝑛 𝑐 𝑛 ∣ 𝑛 ≥ 0} nyelv nem környezetfüggetlen
Hogyan lehet ezt megmutatni?
Tegyük fel, hogy mégis van olyan 𝐺 CF nyelvtan ami 𝐿-et generálja és legyen 𝑝 az előző állításban
definiált szám
𝑤
𝑝 𝑝 𝑝
Legyen 𝑤 = 𝑎 𝑏 𝑐 , ez levezethető 𝐺-ben
Mivel 𝑤 ≥ 𝑝, a 𝑤-nek van egy ilyen felbontása: 𝑎𝑎𝑎 … 𝑎𝑎𝑎 𝑏𝑏𝑏 … 𝑏𝑏𝑏 𝑐𝑐𝑐 … 𝑐𝑐𝑐

𝑢 𝑣𝑥𝑦 𝑧 𝑣𝑥𝑦 hossza


max. 𝑝, ezért
𝑣𝑦 legalább
legfeljebb
𝑣2 𝑦2 1 betűt
kétféle betű
Legyen 𝑤 ′ = 𝑢 𝑣 𝑣 𝑥 𝑦 𝑦 𝑧 tartalmaz
lehet benne
Azt tanultuk, hogy 𝐺 𝑤′-t is tudja generálni, de abban valamelyik betűből kevesebb van mint a többiből!
Hol a hiba? Hát ott, hogy feltettük, hogy a 𝐺 CF nyelvtan képes generálni az 𝐿-et generálni
Tehát 𝐿 nem CF nyelv!
18
A szóprobléma
Egy 𝐿 ⊆ Σ ∗ nyelv szóproblémája alatt a következőt értjük:
◦ Legyen 𝑤 ∈ Σ ∗
◦ Döntsük el, hogy 𝑤 ∈ 𝐿 teljesül-e
Azt a programot, ami megoldja a szóproblémát hívjuk elemzőnek

Az elemzők bizonyos feltételeket teljesítő CF nyelvtanokon hatékonyabban működnek, mint


általános CF nyelvtanokon
Ezért elemzés előtt érdemes a nyelvtanokat megfelelően átalakítani
A következő átalakításokra lesz szükségünk:
◦ felesleges szimbólumok elhagyása
◦ ε-mentesítés
◦ láncszabály mentesítés

1
Felesleges szimbólumok elhagyása
Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy CF nyelvtan és 𝐴 ∈ 𝑁 ∪ 𝑇
◦ 𝐴-t befejezhetőnek nevezünk, ha van olyan 𝑢 ∈ 𝑇 ∗ szó, melyre 𝐴 ⇒∗ 𝑢
◦ 𝐴-t elérhetőnek nevezzük, ha van olyan 𝐴-t tartalmazó 𝑢 mondatforma, melyre 𝑆 ⇒∗ 𝑢
𝐴-t hasznosnak nevezzük ha befejezhető és elérhető
A nem hasznos szimbólumok feleslegesen bonyolítják a nyelvtant, mert nem vesznek részt semmilyen
terminális szó levezetésében, ezért érdemes őket törölni a nyelvtanból
Ha egy 𝐺′ CF nyelvtan ugyanazt a nyelvet generálja mint 𝐺 akkor azt mondjuk, hogy a két nyelvtan
ekvivalens

𝐺-hez megadható egy ekvivalens 𝐺 ′ CF nyelvtan úgy, hogy 𝐺′-ben minden szimbólum hasznos

2
Felesleges szimbólumok elhagyása
Bizonyítás

1. A nem befejezhető szimbólumok elhagyása


◦ Számoljuk ki a befejezhető szimbólumok 𝑩 halmazát a következő algoritmussal:

◦ BEFEJEZHETO-SZIMBOLUMOK(𝐺) 𝑆 → 𝐴𝐷 | 𝐶 𝑩 = {𝑎, 𝑏, 𝑐}
𝑩 = 𝑇; 𝐴 → 𝑎𝐴 | 𝑎 𝑩 = {𝑎, 𝑏, 𝑐, 𝐶, 𝐴}
while 𝐵 változik do D → 𝑏𝐷 𝑩 = {𝑎, 𝑏, 𝑐, 𝐶, 𝐴, 𝑆}
for minden 𝐴 → 𝑋1 … 𝑋𝑘 𝑅-beli szabályra do
𝐶→𝑐
if {𝑋1 , … , 𝑋𝑘 } ⊆ 𝑩 then 𝑩 = 𝑩 ∪ {𝐴};
return 𝑩

◦ Ekkor 𝑩 pontosan azon 𝐺-beli szimbólumokat tartalmazza, melyek befejezhetőek


◦ Hagyjuk el 𝐺-ből az összes olyan szabályt ami tartalmaz 𝑩-n kívüli nemterminálist
◦ Belátható, hogy a kapott 𝐺ҧ = (𝑁 ∩ 𝑩, 𝑇, 𝑅,
ത 𝑆) nyelvtan ekvivalens 𝐺-vel és minden nemterminálisa befejezhető
◦ Itt azért annyi feltevéssel éltünk, hogy a nyelvtanunk levezet legalább egy terminális szót, azaz 𝑆 ∈ 𝑩

3
Felesleges szimbólumok elhagyása
Bizonyítás (folyt.)

2. A nem elérhető szimbólumok elhagyása


◦ Számoljuk ki az elérhető szimbólumok 𝑬 halmazát a következő algoritmussal:
◦ ELERHETO-SZIMBOLUMOK(𝐺)ҧ
𝑬 = {𝑆};
while 𝑬 változik do 𝑆→𝐶 𝑬 = {𝑆}

for minden 𝐴 → 𝑋1 … 𝑋𝑘 𝑅-beli szabályra do 𝐴 → 𝑎𝐴 | 𝑎 𝑬 = {𝑆, 𝐶}
if 𝐴 ∈ 𝑬 then 𝑬 = 𝑬 ∪ {𝑋1 , … , 𝑋𝑘 }; 𝐶→𝑐 𝑬 = {𝑆, 𝐶, 𝑐}
return 𝑬
ҧ
◦ Ekkor 𝑬 pontosan azokat a 𝐺-beli szimbólumokat tartalmazza, melyek elérhetők
ҧ
◦ Hagyjuk el 𝐺-ből az összes olyan szabályt ami tartalmaz 𝑬-n kívüli szimbólumokat
◦ Belátható, hogy a kapott 𝐺′ nyelvtan ekvivalens 𝐺-vel és minden szimbóluma használható (a nem elérhető
szimbólumok elhagyása nem vezet be nem befejezhető nemterminálisokat)
◦ Megjegyzés: a sorrend fontos, mert a nem befejezhető szimbólumok elhagyása bevezethet nem elérhető
szimbólumokat

4
𝜀-szabályok elhagyása
Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy CF nyelvtan és 𝐴 ∈ 𝑁
◦ Az 𝐴 → 𝜀 alakú szabályokat 𝜀-szabályoknak nevezzük
◦ Ha 𝐴 ⇒∗ 𝜀, akkor 𝐴-t törölhetőnek nevezzük
◦ 𝐺-t 𝜀-mentesnek nevezzük ha nincs benne 𝜀-szabály (kivéve esetleg az 𝑆 → 𝜀 szabályt, de ekkor 𝑆 nem fordulhat
elő szabály jobb oldalán, röviden: KES)

Tetszőleges 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) CF nyelvtanhoz megadható egy ekvivalens 𝜀-mentes 𝐺 ′ CF nyelvtan


Bizonyítás
Először meghatározzuk a törölhető nemterminálisok
𝑫 halmazát az alábbi algoritmussal:
TOROLHETO-NEMTERMINALISOK(𝐺)
𝑫 = ∅; 𝑆 → 𝐴𝐵 𝑫=∅
for minden 𝐴 → 𝜀 𝑅-beli szabályra 𝐴 → 𝑎𝐴 | 𝜀 𝑫 = {𝐴}
𝑫 = 𝑫 ∪ {𝐴} 𝐵 → 𝑏𝐵 | 𝐴 𝑫 = {𝐴, 𝐵}
while 𝑫 változik do 𝑫 = {𝐴, 𝐵, 𝑆}
for minden 𝐴 → 𝑋1 … 𝑋𝑘 𝑅-beli szabályra do
if {𝑋1 , … , 𝑋𝑘 } ⊆ 𝑫 then 𝑫 = 𝑫 ∪ {𝐴};
return 𝑫
5
𝜀-szabályok elhagyása
Bizonyítás (folyt.)
Ötlet:
◦ Tfh. 𝐴 törölhető és 𝐵 → 𝛼𝐴𝛽 a 𝐺 egy szabálya
◦ Adjuk a 𝐺-hez a 𝐵 → 𝛼𝛽 szabályt
◦ Ahelyett, hogy 𝐺 alkalmazná a 𝐵 → 𝛼𝐴𝛽-t és utána törölné 𝐴-t, alkalmazhatja közvetlenül az új 𝐵 → 𝛼𝛽
szabályt
A konstrukció:
◦ Hagyjuk el 𝐺-ből az összes 𝐴 → 𝜀 alakú szabályt
◦ Minden további 𝐴 → 𝑤 szabályt helyettesítsük az összes olyan 𝐴 → 𝑤′ szabály halmazával, ahol 𝑤′ ≠ 𝜀 és 𝑤′
a következőképpen áll elő 𝑤-ből:
◦ 𝑤-ből minden lehetséges módon elhagyjuk a törölhető (azaz 𝑫-beli) szimbólumokat
◦ A kapott 𝐺ҧ 𝜀-mentes és ugyanazt a nyelvet generálja mint 𝐺 (kivéve az esetleges 𝜀-t)
◦ Ha a kiindulási 𝐺 nyelvtan nem generálja az üres szót, akkor 𝐺′ legyen a 𝐺ҧ
ҧ
◦ Egyébként 𝐺-be felveszünk egy új 𝑆′ kezdőszimbólumot és az 𝑆 ′ → 𝜀 meg az 𝑆 ′ → 𝑆 szabályt, és legyen 𝐺′ a
kapott nyelvtan
𝑆 → 𝐴𝐵 𝑆 → 𝐴𝐵 𝐴 𝐵 (ha 𝐴-t és 𝐵-t is elhagynánk 𝜀-szabályt kapnánk)
𝐴 → 𝑎𝐴 | 𝜀 𝐴 → 𝑎𝐴 | 𝑎
𝐵 → 𝑏𝐵 | 𝐴 𝐵 → 𝑏𝐵 | 𝑏 | 𝐴 (ha 𝐴-t elhagynánk 𝜀-szabályt kapnánk)
6
Láncszabályok elhagyása
Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy CF nyelvtan és 𝐴, 𝐵 ∈ 𝑁
◦ Az 𝐴 → 𝐵 alakú szabályokat láncszabályoknak nevezzük
◦ Ha 𝐴 ⇒∗ 𝐵 csupán láncszabályok alkalmazásával, akkor azt mondjuk, hogy 𝐵 lánclevezethető 𝐴-ból
◦ Megjegyzés: 𝐴 lánclevezethető 𝐴-ból, mert 𝐴 ⇒∗ 𝐴

𝐺-hez megadható egy ekvivalens láncszabálymentes 𝐺′ CF nyelvtan

Bizonyítás
Minden 𝐴 nemterminálisra számoljuk ki az 𝐴-ból lánclevezethető nemterminálisok 𝑁𝐴 halmazát a
következő algoritmussal:
LANCLEVEZETHETO(𝐺, 𝐴)
𝑁𝐴 = {𝐴}; 𝑆 → 𝐴𝐵 𝐴 𝐵 𝑁𝑆 = {𝑆, 𝐴, 𝐵}
while 𝑁𝐴 változik do 𝐴 → 𝑎𝐴 | 𝑎 𝑁𝐴 = {𝐴}
for minden 𝐵 → 𝐶 𝑅-beli láncszabályra do 𝐵 → 𝑏𝐵 | 𝑏 | 𝐴 𝑁𝐵 = {𝐵, 𝐴}
if 𝐵 ∈ 𝑁𝐴 then 𝑁𝐴 = 𝑁𝐴 ∪ {𝐶};
return 𝑁𝐴
7
Láncszabályok elhagyása
Bizonyítás

Ötlet:
◦ Tfh. 𝐵 lánclevezethető 𝐴-ból és legyen 𝐵 → 𝛼 a 𝐺 egy nem láncszabálya
◦ Adjuk a 𝐺-hez a 𝐴 → 𝛼 szabályt
◦ Ahelyett, hogy 𝐺 levezetné 𝐴-ból a 𝐵-t és utána alkalmazná a 𝐵 → 𝛼 szabályt
◦ alkalmazhatja közvetlenül az új 𝐴 → 𝛼 szabályt

A konstrukció
◦ Minden 𝐴 nemterminálisra, 𝐵 ∈ 𝑁𝐴 -ra és 𝐵 → 𝛼 𝑅-beli nem láncszabályra vegyük fel 𝐺-be az 𝐴 → 𝛼
szabályt
◦ Ezután hagyjuk el az összes 𝐺-beli láncszabályt
◦ Legyen a kapott nyelvtan 𝐺′ 𝑆 → 𝐴𝐵 𝐴 𝐵 𝑁𝑆 = {𝑆, 𝐴, 𝐵} 𝑆 → 𝐴𝐵 𝑎𝐴 𝑎|𝑏𝐵|𝑏
𝐺′ láncszabálymentes és ekvivalens 𝐺-vel 𝐴 → 𝑎𝐴 | 𝑎 𝑁𝐴 = {𝐴} 𝐴 → 𝑎𝐴|𝑎
𝐵 → 𝑏𝐵 | 𝑏 | 𝐴 𝑁𝐵 = {𝐵, 𝐴} 𝐵 → 𝑏𝐵 𝑏 𝑎𝐴|𝑎

8
CF nyelvtanok átalakítása
Minden 𝐿 CF nyelv generálható egy 𝐺′ CF nyelvtannal úgy, hogy 𝐺′
◦ minden szimbóluma használható
◦ 𝜀-szabály mentes és Azaz 𝐺 minden szabályának jobb oldala vagy egy
◦ láncszabálymentes terminális vagy egy legalább 2 hosszú szó + KES

Bizonyítás

Hajtsuk végre 𝐺-n a következő átalakításokat: Ez legyen az elő lépés, mert


◦ 𝜀-mentesítés behozhat láncszabályokat
◦ láncszabálymentesítés
◦ nem hasznos szimbólumok elhagyása
Ez legyen a következő, mert behozhat
nem hasznos szimbólumokat

9
Chomsky normálforma
Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy CF nyelvtan
𝐺 Chomsky normálformában van ha minden szabálya
◦ 𝐴 → 𝑎 (𝑎 egy terminális) vagy
◦ 𝐴 → 𝐵𝐶 alakú (𝐵 és 𝐶 nemterminálisok)
◦ + KES

𝐺-hez megadhadható egy ekvivalens Chomsky normálformában lévő 𝐺′ CF nyelvtan

Bizonyítás

Korábban láttuk, hogy megadható egy olyan 𝐺ҧ CF nyelvtan ami ekvivalens 𝐺-vel és a szabályainak a
jobb oldala
◦ egy terminális vagy
◦ legalább 2 hosszú
◦ +KES
𝐺ҧ szabályinak jobboldalait átalakítjuk úgy, hogy a kapott 𝐺′ ekvivalens 𝐺-vel
ҧ és Chomsky
normálformában van
10
Chomsky normálforma
Bizonyítás (folyt.)

Minden 𝑎 ∈ Σ-ra vegyünk fel egy 𝑋𝑎 nemterminálist és az 𝑋𝑎 → 𝑎 szabályt


ҧ
Minden 𝐺-ben lévő nem 𝐴 → 𝑎 alakú szabály jobboldalán az 𝑎 terminális minden egyes
előfordulását helyettesítsük 𝑋𝑎 -val
Majd minden egyes így átalakított szabályra, mely jobboldalának hossza > 2, végezzük el az
alábbiakat:
◦ Legyen a szabály 𝐴 → 𝐴1 . . . 𝐴𝑛 (𝑛 > 2)
◦ Vezessük be az 𝐴 → 𝐴1 𝐵1
𝐵1 → 𝐴2 𝐵2
. . . 𝐵𝑛−2 → 𝐴𝑛−1 𝐴𝑛 szabályokat, ahol 𝐵1 , . . . , 𝐵𝑛−2 új nemterminálisok
◦ Az 𝐴 → 𝐴1 . . . 𝐴𝑛 szabályt cseréljük ki az új szabályokkal
◦ Legyen 𝐺′ az így kapott nyelvtan
ҧ
◦ Belátható, hogy 𝐺′ ekvivalens 𝐺-vel és Chomsky normálformában van

11
Chomsky normálforma
𝑆 → 𝐴𝑆𝐴 | 𝑎𝐵
𝐴→𝐵|𝑆 𝐷 = {𝐴, 𝐵}
𝐵 →𝑏|𝜀

𝑆 → 𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 | 𝑆 | 𝑎𝐵 | 𝑎 𝑁𝑆 = {𝑆}


𝐴→𝐵|𝑆 𝑁𝐴 = {𝐴, 𝐵, 𝑆}
𝑁𝐵 = {𝐵}
𝐵→𝑏

𝑆 → 𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 | 𝑎𝐵 | 𝑎
𝐴 → 𝑏 |𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 | 𝑎𝐵 | 𝑎 Minden szimbólum hasznos

𝐵→𝑏

12
Chomsky normálforma
𝑆 → 𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 |𝑋𝑎 𝐵 | 𝑎
𝐴 → 𝑏 |𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 |𝑋𝑎 𝐵 |𝑎
𝑋𝑎 → 𝑎
𝐵 → 𝑏

𝑆 → 𝐴𝐵1 |𝐴𝑆 | 𝑆𝐴 |𝑋𝑎 𝐵 | 𝑎


𝐵1 → 𝑆𝐴
𝐴 → 𝑏 |𝐴𝐵1 |𝐴𝑆 | 𝑆𝐴 |𝑋𝑎 𝐵 | 𝑎
𝑋𝑎 → 𝑎
𝐵→𝑏

13
A környezetfüggetlen nyelvek szóproblémája
Legyen az 𝐿 nyelv egy 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) Chomsky normálformában lévő nyelvtannal adott
𝐿 szóproblémája polinom időben eldönthető

Bizonyítás

Legyen 𝑢 = 𝑎1 … 𝑎𝑛 (𝑎𝑖 ∈ Σ, 𝑖 = 1, … , n)
A következő, ún. CYK (Cocke–Younger–Kasami) algoritmus nagyságrendileg 𝑛3 lépésben eldönti,
hogy 𝑢 ∈ 𝐿 teljesül-e
Ötlet: kiszámoljuk minden 𝑙 = 1, … , 𝑛-re, 𝑖 = 1, … , 𝑛 − 𝑙 + 1-re és 𝐴 ∈ 𝑁 nemterminálisra, hogy
deriválható-e 𝐴-ból az 𝑢 𝑖-ik pozíción kezdődő 𝑙 hosszú rész-szava
Világos, hogy 𝑢 ∈ 𝐿 akkor és csak akkor ha 𝑆-ből deriválható az 𝑢 első pozícióján kezdődő 𝑛-
hosszú rész-szava (azaz az 𝑢)
A CYK algoritmus Legyen 𝐿 = {𝑎𝑛 𝑏𝑛 ∣ 𝑛 ≥ 1} és 𝐺 az alábbi Chomsky
normálformában lévő 𝐿-et generáló nyelvtan:
Bizonyítás (folyt.) 𝑆 → 𝐴𝑆 ′ ∣ 𝐴𝐵
𝑆 ′ → 𝑆𝐵
Legyenek 𝐺 nemterminálisai: 𝐴1 , … , 𝐴𝑟 , ahol 𝐴1 = 𝑆 𝐴→𝑎
Legyen 𝐷[𝑛, 𝑛, 𝑟] egy Boolean típusú tömb 𝐵→𝑏
Legyen 𝐴1 = 𝑆, 𝐴2 = 𝑆 ′ , 𝐴3 = 𝐴, 𝐴4 = 𝐵, és 𝑢 = 𝑎𝑎𝑏𝑏
𝐷[𝑙, 𝑖, 𝑝] akkor és csak akkor 𝑖𝑔𝑎𝑧 ha 𝐴𝑝 -ből levezethető az 𝑢 𝑎𝑖 -
n kezdődő 𝑙 hosszú rész-szava Az alábbi táblázat 𝑖-ik sorának 𝑗-ik oszlopa pontosan akkor
tartalmaz egy 𝐴𝑝 nemterminálist ha 𝐷 𝑖, 𝑗, 𝑝 = 𝑖𝑔𝑎𝑧
𝐷-ben kezdetben minden elem ℎ𝑎𝑚𝑖𝑠-ra van állítva
for 𝑖 = 1, … , 𝑛 4 𝑆
◦ for minden 𝐴𝑗 → 𝑎𝑖 szabályra 3 ∅ 𝑆′
◦ legyen 𝐷 1, 𝑖, 𝑗 = 𝑖𝑔𝑎𝑧 % inicializálás
2 ∅ 𝑆 ∅
for 𝑙 = 2, … , 𝑛 % a vizsgált rész-szó hossza
◦ for 𝑖 = 1, … , 𝑛 − 𝑙 + 1 % a rész-szó kezdőpozíciója 1 𝐴 𝐴 𝐵 𝐵
◦ for 𝑗 = 1, … , 𝑙 − 1 % a rész-szó partícionálása
◦ for minden 𝐴𝑎 → 𝐴𝑏 𝐴𝑐 szabályra % 1 ≤ 𝑎, 𝑏, 𝑐 ≤ 𝑟 a a b b
◦ if 𝐷 𝑗, 𝑖, 𝑏 = 𝑖𝑔𝑎𝑧 és 𝐷 𝑙 − 𝑗, 𝑖 + 𝑗, 𝑐 = 𝑖𝑔𝑎𝑧 then legyen Mivel a táblázat 4. sorának 1. oszlopa tartalmazza 𝐴1 = 𝑆-
◦ 𝐷 𝑙, 𝑖, 𝑎 = 𝑖𝑔𝑎𝑧 t, kapjuk, hogy 𝐷 4,1,1 = 𝑖𝑔𝑎𝑧, azaz 𝑢 ∈ 𝐿
if 𝐷 𝑛, 1,1 = 𝑖𝑔𝑎𝑧 then Ez valóban igaz: 𝑆 ⇒ 𝐴𝑆 ′ ⇒ 𝐴𝑆𝐵 ⇒ 𝐴𝐴𝐵𝐵 ⇒∗ 𝑎𝑎𝑏𝑏
◦ 𝑢 ∈ 𝐿(𝐺)
else
◦ 𝑢 ∉ 𝐿(𝐺)
Veremautomaták

I t t j ö n a b e m e n e t

olvasó Az olvasó fej jobbra mozog


fej
(esetleg helyben marad)
𝛾6
𝛾5 A vezérlőnek véges a memóriája
Vezérlő 𝛾4
𝛾3
(állapothalmaza)

𝛾2 A számításhoz felhasználhat egy


𝛾1 (potenciálisan végtelen) vermet is

1
Veremautomaták
Egy 𝑀 veremautomata egy (𝑄, Σ, Γ, 𝛿, 𝑞0 , $, 𝐹) rendszer, ahol (𝑝, 𝛾) ∈ 𝛿 𝑞, 𝑎, 𝛽
𝑄, Σ, 𝑞0 , 𝐹 ugyanazok, mint véges automata esetén,
◦ Γ a verem ábécé
◦ $ ∈ Γ, a verem alját jelző betű Egy A bemeneten
◦ 𝛿 ∶ 𝑄 × Σ𝜀 × Γ𝜀 → 𝑃(𝑄 × Γ𝜀 ) az átmenetfüggvény lehetséges olvasott betű
új állapot A régi vagy 𝜀 A verem
Ha (𝑝, 𝛾) ∈ 𝛿 𝑞, 𝑎, 𝛽 , ahol 𝑎 ∈ Σ𝜀 és 𝛽, 𝛾 ∈ Γ𝜀 , akkor A verem állapot tetején
𝑎,𝛽/𝛾 tetejére írt lévő betű
𝑞 𝑝 az 𝑀 egy átmenete vagy 𝜀
betű vagy 𝜀
A 𝛿 most is egyértelműen leírható az átmeneti diagrammal A veremautomata is egy
◦ A csúcsok az állapotok, és két csúcs közte egy 𝑎, 𝛽/𝛾 hármassal
címkézett éllel megfelel egy átmenetnek nemdeterminisztikus modell

𝑀 megadása átmeneti diagrammal: megjelöljük a kezdő- és


végállapotokat

2
Veremautomaták
𝑀egy 𝑞 állapotból induló futása egy 𝑤 szón: átmenetek egy
𝑎1 ,𝛽1 /𝛾1 𝑎2 ,𝛽2 /𝛾2 𝑎𝑛 ,𝛽𝑛 /𝛾𝑛
𝑞1 𝑞2 𝑞3 … 𝑞𝑛 𝑞𝑛+1
sorozata úgy, hogy
◦ 𝑛 ≥ 0, 𝑞1 = 𝑞,
◦ 𝑤 = 𝑎1 𝑎2 … 𝑎𝑛 és
◦ minden átmenet kompatibilis az aktuális veremtartalommal: ha az átmenet 𝛽𝑖 -t olvas a verem
tetejéről, akkor a verem tetején 𝛽𝑖 van, amit az átmenet kicserél 𝛾𝑖 -re

Ez a futás sikeres, ha 𝑞𝑛+1 ∈ 𝐹


𝑀 elfogadja 𝑤-t: 𝑀-nek van 𝑞0 -ból induló sikeres futása a 𝑤-n úgy, hogy kezdetben a
veremben csak $ van
Az 𝑀 által felismert nyelv: 𝐿 𝑀 = {𝑤 ∈ Σ ∗ ∣ 𝑀 elfogadja 𝑤-t}

3
Veremautomaták – Példa
Egy veremautomata a {0𝑛 1𝑛 ∣ 𝑛 ≥ 0} nyelv felismerésére, $ a verem alja

A veremautomata egy futása a 0011 szón, alatta a megfelelő


veremtartalmak:
𝑞0 𝑣
0,𝜀/0 0,𝜀/0 1,0/𝜀 1,0/𝜀 𝜀,$/𝜀
𝑞0 𝑝 𝑝 𝑞 𝑞 𝑣
0, 𝜀/0 𝜀, $/𝜀
0
0 0 0
1,0/𝜀 $ $ $ $ $
𝑝 𝑞
0, 𝜀/0 1,0/𝜀 A veremautomata elfogadja a 0011 szót mert a futás
• sikeres (végállapotba érkezik),
• kezdőállapotból indul, és
• a veremben kezdetben csak $ van

5
Veremautomaták kiterjesztése

A veremautomata fogalmát kiterjeszthetjük úgy, hogy a verembe az egyes átmenetek


során 1-nél hosszabb szó is kerülhessen
Ekkor
◦ 𝛿 ∶ 𝑄 × Σ𝜀 × Γ𝜀 → 𝑃 𝑄 × Γ ∗
◦ 𝛿(𝑞, 𝑎, 𝑏) véges minden 𝑞 ∈ 𝑄, 𝑎 ∈ Σ𝜀 , 𝑏 ∈ Γ𝜀 esetén, és
𝑎,𝛽/𝛾
◦ ha 𝑞 𝑝 a veremautomata egy átmenete, akkor ez az átmenet úgy írja a verembe a
𝛾-t hogy annak a jobbról első betűje kerül alulra

6
Veremautomaták
A környezetfüggetlen nyelvek osztálya megegyezik a veremautomatával felismerhető
nyelvek osztályával

Bizonyítás (egyik irány, vázlat) Ezt az átmenetet


akkor vesszük fel
Legyen 𝐺 = (𝑉, Σ, 𝑅, 𝑆) egy környezetfüggetlen nyelvtan ha van 𝐴 → 𝑤
A következő veremautomata 𝐿 𝐺 -t ismeri fel szabály 𝑅-ben
(bemenő jelek: Σ, veremjelek: 𝑉 ∪ Σ ∪ {$}, verem alja: $):
Ezt az átmenetet
𝜀, 𝐴/𝑤 meg minden 𝑎
𝑎, 𝑎/𝜀 terminálisra
felvesszük
𝑞0 𝑞 𝑞𝑓
𝜀, 𝜀/𝑆 𝜀, $/𝜀

7
Determinisztikus veremautomaták
Determinisztikus az 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝐹) veremautomata, ha az átmenetekre az alábbiak
teljesülnek:
𝑎,𝑏/𝛾
• Ha 𝑀-nek van egy 𝑞 𝑝 átmenete, ahol 𝑎, 𝑏, 𝛾 tetszőlegesek, akkor nincs
𝑎,𝑏/𝛾′
𝑞 𝑝′ átmenete semmilyen 𝛾 ′ ≠ 𝛾 és 𝑝′ ∈ 𝑄 esetén
𝜀,𝑏/𝛾 𝑎,𝑏/𝛾′
• Ha 𝑀-nek van egy 𝑞 𝑝 átmenete, ahol 𝑏, 𝛾 tetszőlegesek, akkor nincs 𝑞 𝑝′
átmenete (𝛾′ tetszőleges) semmilyen 𝑎 ∈ Σ betűre és 𝑝′ ∈ 𝑄 állapotra
𝑎,𝜀/𝛾 𝑎,𝑏/𝛾′
• Ha 𝑀-nek van egy 𝑞 𝑝 átmenete, ahol 𝑎, 𝛾 tetszőlegesek, akkor nincs 𝑞 𝑝′
átmenete (𝛾′ tetszőleges) semmilyen 𝑏 ∈ Γ betűre és 𝑝′ ∈ 𝑄 állapotra
Az {𝑢𝑢−1 ∣ 𝑢 ∈ 0,1 ∗ } nyelv környezetfüggetlen, de nem ismerhető fel determinisztikus
veremautomatával

9
Nyelvtanok
(Általános) nyelvtan egy olyan 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) rendszer, ahol
• 𝑁, 𝑇, 𝑆 ugyanazok, mint környezetfüggetlen nyelvtan esetén,

• 𝑅 pedig 𝑢 → 𝑣 alakú szabályok véges halmaza, ahol 𝑢, 𝑣 ∈ 𝑁 ∪ 𝑇 és 𝑢 tartalmaz legalább egy
nemterminálist

Legyen 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) egy nyelvtan, 𝑢, 𝑣 ∈ 𝑁 ∪ 𝑇

𝑦 → 𝑦′ szabály 𝐺 ∶ 𝑆 → 𝑎𝑆𝐵𝑐 | 𝜀
• 𝑢 ⇒ 𝑣 ha létezik olyan 𝑥, 𝑦, 𝑦′, 𝑧 ∈ 𝑁 ∪ 𝑇 úgy, hogy 𝑅-ben
𝑐𝐵 → 𝐵𝑐
𝑎𝐵 → 𝑎𝑏
𝑢: 𝑥 𝑦 𝑧 𝑏𝐵 → 𝑏𝑏

𝐿(𝐺) = {𝑎𝑛 𝑏𝑛 𝑐 𝑛 ∣ 𝑛 ≥ 0}
𝑣: 𝑥 𝑦′ 𝑧

• 𝑢 ⇒∗ 𝑣 és 𝐿(𝐺) (azaz a 𝐺 által generált nyelv) definíciója ugyanaz, mint a környezetfüggetlen


nyelvtanok esetében
10
Nyelvtanok
Környezetfüggőnek nevezünk egy 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) nyelvtant, ha 𝑅 minden eleme 𝑢𝑋𝑣 → 𝑢𝑤𝑣
alakú, ahol 𝑢, 𝑣, 𝑤 ∈ 𝑁 ∪ 𝑇 ∗ , 𝑋 ∈ 𝑁, 𝑤 ≠ 𝜀 + KES (kivéve az 𝑆 → 𝜀 szabályt, de akkor … )
𝐺′ ∶ 𝑆0 → 𝑆 | 𝜀
𝑆 → 𝑎𝑆𝐵𝐶 | 𝑎𝐵𝐶
𝐶𝐵 → 𝑋𝐵 𝐿(𝐺) = {𝑎𝑛 𝑏 𝑛 𝑐 𝑛 ∣ 𝑛 ≥ 0}
𝑋𝐵 → 𝑋𝐶
𝑋𝐶 → 𝐵𝐶
𝑎𝐵 → 𝑎𝑏
𝑏𝐵 → 𝑏𝑏
𝐶→𝑐

Jobblineárisnak nevezünk egy 𝐺 = (𝑁, 𝑇, 𝑅, 𝑆) nyelvtant, ha 𝑅 minden eleme 𝐴 → 𝑢𝐵 vagy


𝐴 → 𝑢 alakú, ahol 𝐴, 𝐵 ∈ 𝑁, 𝑢 ∈ 𝑇 ∗
(Láttunk már ilyet: a véges automatából konstruált környezetfüggetlen nyelvtan)

11
Chomsky-féle hierarchia
Jobblineáris nyelvtan: 3-as típusú nyelvtan
Itt van az
Környezetfüggetlen nyelvtan: 2-es típusú nyelvtan {𝑎𝑛 𝑏 𝑛 𝑐 𝑛 ∣ 𝑛 ≥ 0}
Itt van az nyelv
Környezetfüggő nyelvtan: 1-es típusú nyelvtan {𝑎𝑛 𝑏 𝑛 ∣ 𝑛 ≥ 0}
nyelv
Általános nyelvtan: 0-ás típusú nyelvtan ℒ0
ℒ𝑖 : az 𝑖-típusú nyelvtanokkal (𝑖 = 0,1,2,3) generálható nyelvek
ℒ1
osztálya
Chomsky-féle
ℒ2
hierarchia
(mindegyik
tartalmazás ℒ3
ℒ 3 pontosan a reguláris nyelvek osztálya valódi)

12
Kiszámíthatóság elmélet – Történeti áttekintés
1900: Hilbert 23 problémája
◦ A 10-es probléma: keressük meg egy tetszőleges egész együtthatós többváltozós egyenlet gyökeit
◦ Pl. bemenet: 3𝑥𝑦 − 2𝑥 2 + 2𝑧 + 4 = 0, kimenet: 𝑥 = 0, 𝑦 = 0, 𝑧 = −2
◦ Megjegyzés: A 10-es probléma algoritmikusan eldönthetetlen (1970, Matiyasevich)

1920-as évek: Hilbert programja


◦ Célja a matematika összes elméletének axiomatizálása egy végesen reprezentálható
axiómarendszerrel
◦ A program része: egy olyan Mindent Megoldó Algoritmus megadása ami a matematika tetszőleges
állításáról eldönti, hogy az igaz vagy hamis

1929, Gödel: Az elsőrendű kalkulus teljes (minden tautólógia levezethető egy megfelelő
axiómarendszerből)

1
Kiszámíthatóság elmélet – Történeti áttekintés
1931, Gödel első nemteljességi tétele
◦ Egy olyan effektíven kiszámítható elmélet ami tartalmazza az elemi aritmetikát nem lehet egyszerre
helyes és teljes
◦ Egy T elmélet G Gödel mondata: G egy olyan állítás ami nem bizonyítható T-ben
◦ Következmény: Hilbert programja megvalósíthatalan
1930-as évek: különböző algoritmus modellek bevezetése
◦ Gödel: rekurzív függvények
◦ Church, Kleene, Rosser: 𝜆 kalkulus
◦ Turing: Turing-gép
A Mindent Megoldó Algoritmus létezésének cáfolása
◦ 1936, Church: Két 𝜆-kalkulusbeli kifejezés ekvivalenciája eldönthetetlen
◦ 1936, Turing: A Turing-gépek megállási problémája eldönthetetlen
Church-Turing-tézis: a kiszámíthatóság különböző matematikai modelljei mind az effektíven
kiszámítható függvények osztályát definiálják

2
Kiszámíthatóság elmélet – Alapfogalmak
Eldöntési probléma: egy 𝐼 bemenetre a válasz 𝑖𝑔𝑒𝑛 vagy 𝑛𝑒𝑚 (ekkor azt is mondjuk, hogy
𝐼 pozitív vagy negatív bemenet)
◦ Például a SAT probléma:
◦ Bemenet: 𝜑 zérusrendű KNF
◦ Kérdés: Kielégíthető-e 𝜑?

Egy 𝑃 eldöntési probléma eldönthető, ha minden 𝐼 bemenetre algoritmikusan


kiszámítható a bemenetre adott válasz
◦ Pl. SAT eldönthető (Hogyan?)

Egy 𝑃 eldöntési probléma megfeleltethető egy


𝐿𝑃 : = { 𝐼 ∣ 𝐼 a 𝑃 pozitív bemenete} formális nyelvnek
◦ Pl. 𝐿𝑆𝐴𝑇 𝑣𝑎𝑔𝑦 𝑆𝐴𝑇 ≔ { 𝜑 ∣ 𝜑 𝑘𝑖𝑒𝑙é𝑔í𝑡ℎ𝑒𝑡ő}

Jelölés: Tetsz. 𝐷 objektumra 〈𝐷〉 jelöli a 𝐷 elkódolását egy megfelelő ábécé felett
(mondjuk binárisan)
3
A Turing-gép

Egy algoritmus modell formális nyelvek eldöntésére

Bemenet

… ⊔ ⊔ a b b a ⊔ ⊔ … Két irányban
(potenciálisan)
végtelen szalag
Két irányban mozgó író / olvasó fej

Véges vezérlő

4
A Turing-gép

Formálisan: 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝑞𝑖 , 𝑞𝑛 ), ahol


◦ 𝑄 az állapotok véges, nem üres halmaza, 𝑞0 : kezdő-, 𝑞𝑖 : elfogadó, 𝑞𝑛 : elutasító
állapot

◦ Σ a bemenő jelek ábécéje

◦ Γ a szalagszimbólumok ábécéje
(Σ ⊂ Γ, ⊔∈ Γ − Σ, ⊔: üres szimbólum)

◦ 𝛿: 𝑄 − 𝑞𝑖 , 𝑞𝑛 × Γ → 𝑄 × Γ × 𝐿, 𝑅 az átmeneti függvény

◦ A gyakorlatban az 𝑆 – helyben maradás jelet is használjuk

5
A Turing-gép
Konfiguráció: egy 𝑢𝑞𝑣 alakú szó (𝑢 ∈ Γ ∗ , 𝑞 ∈ 𝑄, 𝑣 ∈ Γ + )
Ha 𝑀 az 𝑢𝑞𝑣 konfigurációban van, akkor
◦ a szalagon csak az 𝑢𝑣 szó van (az azon kívüli rész csak ⊔-t tartalmaz)
◦ a fej a 𝑣 első betűjére mutat és
◦ az 𝑀 a 𝑞 állapotban van: 𝑢 ∈ Γ∗ 𝑣 ∈ Γ+

… ⊔ 𝑎 … b b … 𝑐 ⊔ …

𝑞
Egy 𝑢𝑞𝑣 konfiguráció
◦ Kezdőkonfiguráció, ha 𝑣 ∈ Σ + ∪ {⊔}, 𝑞 = 𝑞0 és 𝑢 = 𝜀
◦ Elfogadó konfiguráció, ha 𝑞 = 𝑞𝑖
◦ Elutasító konfiguráció, ha 𝑞 = 𝑞𝑛
Az elfogadó és elutasító konfigurációkat megállási konfigurációknak is nevezzük

6
A Turing-gép
Konfiguráció átmenet:
◦ Legyen 𝑀 egy Turing gép és 𝐶1 , 𝐶2 az 𝑀 két konfigurációja
◦ 𝐶2 közvetlenül elérhető 𝐶1 -ből, jele 𝐶1 ⇒ 𝐶2 , ha az alábbiak egyike teljesül:
◦ 𝐶1 = 𝑢𝑞𝑎𝑣, 𝐶2 = 𝑢𝑏𝑝𝑣 és 𝛿 𝑞, 𝑎 = (𝑝, 𝑏, 𝑅) ahol 𝑎, 𝑏 ∈ Γ, 𝑢 ∈ Γ ∗ , 𝑣 ∈ Γ +
𝑢 𝑣 𝑢 𝑣

𝐶1 : … ⊔ 𝑎 … b a … 𝑐 ⊔ … ⇒ 𝐶2 : … ⊔ 𝑎 … b b … 𝑐 ⊔ …

𝑞 𝑝

◦ 𝐶1 = 𝑢𝑐𝑞𝑎𝑣, 𝐶2 = 𝑢𝑝𝑐𝑏𝑣 és 𝛿 𝑞, 𝑎 = (𝑝, 𝑏, 𝐿), ahol 𝑎, 𝑏, 𝑐 ∈ Γ, 𝑢, 𝑣 ∈ Γ ∗


𝑢 𝑣 𝑢 𝑣

𝐶1 : … ⊔ 𝑎 … c a … 𝑐 ⊔ … ⇒ 𝐶2 : … ⊔ 𝑎 … c b … 𝑐 ⊔ …

𝑞 𝑝

7
A Turing-gép

Többlépéses konfiguráció átmenet:


◦ Legyen 𝐶, 𝐶′ az 𝑀 két konfigurációja
◦ 𝐶′ elérhető 𝐶-ből, jele 𝐶 ⇒∗ 𝐶′, ha
◦ vannak olyan 𝐶1 , … , 𝐶𝑛 konfigurációk 𝑛 ≥ 1 hogy
◦ 𝐶 = 𝐶1 ⇒ 𝐶2 ⇒ ⋯ 𝐶𝑛−1 ⇒ 𝐶𝑛 = 𝐶′

𝑀 felismeri az 𝑢 ∈ Σ ∗ szót, ha az 𝑞0 𝑢 kezdőkonfigurációból elérhető egy


elfogadó konfiguráció
Az 𝑀 által felismert nyelv:
𝐿 𝑀 ≔ 𝑢 ∈ Σ ∗ 𝑀 felismeri az 𝑢−t

Feladat: Adjunk Turing-gépet, ami az 𝐿 = {𝑢𝑢−1 ∣ 𝑢 ∈ 𝑎, 𝑏 ∗ } nyelvet ismeri fel

8
A Turing-gép
Egy 𝐿 nyelv Turing-felismerhető, ha van olyan 𝑀 Turing
gép, hogy 𝐿 = 𝐿 𝑀
Ha 𝑀 minden bemeneten meg is áll, akkor 𝐿 eldönthető
A Turing-felismerhető nyelveket nevezzük még
rekurzívan felsorolható nyelveknek Meg itt is (ezek
◦ ezen nyelvek osztályát 𝑅𝐸-vel jelöljük még csak nem is 𝑅𝐸
felismerhetőek)
Az eldönthető nyelveket nevezzük még rekurzív
nyelveknek is
◦ ezen nyelvek osztályát 𝑅-rel jelöljük Itt is vannak 𝑅
nyelvek (ezek nem
eldönthetőek)
Pl. a Hilbert 10-es

10
A Turing-gép

Egy 𝑀 Turing-gép időigénye 𝑓 𝑛 (𝑓: ℕ → ℕ), ha minden 𝑛


hosszú bemeneten 𝑀 legfeljebb 𝑓(𝑛) lépésben megáll
Feladat: Mi az előbb megadott Turin-gép időigénye?
Megjegyzés: nem kell a pontos időigényt megadni 100𝑛 = 𝑂 𝑛2
𝑛3 + 100𝑛2 − 100𝑛 = 𝑂 𝑛3
A nagy 𝑂 jelölés: 𝑛 ⋅ log 𝑛 = 𝑂 𝑛2
Legyen 𝑓, 𝑔: ℕ → ℝ+ . Az 𝑓 legfeljebb olyan gyorsan log100 𝑛 = 𝑂(𝑛)
𝑛
nő mint a 𝑔 (jele: 𝑓 = 𝑂(𝑔)), ha 𝑛100 =𝑂 2 100

∃𝑛0 ∈ ℕ, 𝑐 > 0: ∀𝑛 ≥ 𝑛0 :
𝑓 𝑛 ≤ 𝑐 ⋅ 𝑔(𝑛) A fordított irány egyik esetben
sem teljesül!

11
Többszalagos Turing-gép

Többszalagos Turing-gép
◦ Turing-gép 𝑘 (konstans) számú szalaggal
◦ A szalagok mindegyike rendelkezik egy független író / olvasó fejjel
◦ A bemenet az első szalagra kerül, a többi szalag üres
◦ Az átmeneti függvény:
𝛿: 𝑄 − 𝑞𝑖 , 𝑞𝑛 × Γ 𝑘 → 𝑄 × Γ 𝑘 × 𝐿, 𝑅 𝑘

◦ A további komponensek mint az egyszalagos esetben


◦ Az egyszalagosra tanult definíciók kiterjeszthetők a többszalagos esetre
(konfiguráció-átmenet, felismert nyelv, időigény, stb.)

12
Többszalagos Turing-gép

Egy 𝐿 nyelv 𝑓(𝑛) időben eldönthető, ha van olyan 𝑓 𝑛 időigényű, akár


többszalagos Turing-gép, ami eldönti 𝐿-t
Két Turing-gép ekvivalens, ha ugyanazt a nyelvet ismerik fel

Feladat:
• Adjunk kétszalagos Turing-gépet, ami a korábban látott
𝐿 = {𝑢𝑢−1 ∣ 𝑢 ∈ 𝑎, 𝑏 ∗ }

• Milyen időben dönti el a megadott kétszalagos Turing-gép a fenti 𝐿 nyelvet?

13
Többszalagos Turing-gép
Minden 𝑘-szalagos 𝑀 Turing-géphez van vele ekvivalens egyszalagos 𝑀′ Turing-gép
Az 𝑀 szalagábécéjét duplikáljuk,
Bizonyítás (vázlat) minden betűnek lesz egy ෡ -pal
megjelölt változata; ezeket csak ott
𝑀′ egy szalagon tárolja az 𝑀 teljes konfigurációját: használjuk ahol az eredeti gép fejei
lennének
… ⊔ 𝑎 𝑎 𝑐 𝑏 ⊔ …

… ⊔ 𝑏 𝑎 𝑎 𝑐 ⊔ … … ⊔ # 𝑎 𝑎 𝑐Ƹ 𝑏 # 𝑏 𝑎 𝑎 𝑐 ⊔
⊔ ෠ 1 # …
ෝ # 0 0 1

… ⊔ 0 0 1 1 ⊔ …

𝑀 𝑀′

15
Többszalagos Turing-gép
Bizonyítás (vázlat)
A szimuláció menete egy 𝑎1 𝑎2 … 𝑎𝑛 bemeneten:
1. 𝑀′ előállítja 𝑀 kezdőkonfigurációját:
… ⊔ # 𝑎𝑎

ො11 𝑎2 … 𝑎𝑛 # ෝ #


⊔ ෝ #


⊔ …

2. 𝑀′ végigmegy a szalagon (számolja a #-okat) és eltárolja a Ƹ-pal megjelölt


szimbólumokat az állapotában
3. 𝑀′ az 𝑀 átmenetfüggvénye alapján aktualizálja a szalagját (ha 𝑀 valamelyik szalagján nő
a szó hozza, akkor 𝑀′-nek az adott ponttól mozgatnia kell a szalagja tartalmát jobbra)
4. Ha 𝑀 elfogadó vagy elutasító állapotba lép, akkor 𝑀′ is belép a saját elfogadó vagy
elutasító állapotába
5. Egyébként 𝑀′ folytatja a szimulációt a 2-ik ponttal

Megjegyzés: 𝑀′ időigény-romlása négyzetes

16
Nemdeterminisztikus Turing-gép
Nemdeterminisztikus Turing-gép
◦ A két irányban végtelen szalaggal rendelkező Turing-gép általánosítása
◦ Az átmeneti függvény:
𝛿: 𝑄 − 𝑞𝑖 , 𝑞𝑛 × Γ → P(𝑄 × Γ × 𝐿, 𝑅 )
◦ Azaz: 𝛿 𝑞, 𝑎 ⊆ 𝑄 × Γ × 𝐿, 𝑅
◦ A további komponensek mint az egyszalagos esetben

Konfiguráció átmenet: a determinisztikus esethez hasonlóan


◦ Legyen 𝑀 egy nemdeterminisztikus Turing gép és 𝐶1 , 𝐶2 az 𝑀 két konfigurációja. 𝐶2
közvetlenül elérhető 𝐶1 -ből, jele 𝐶1 ⇒ 𝐶2 , ha az alábbiak egyike teljesül:
◦ 𝐶1 = 𝑢𝑞𝑎𝑣, 𝐶2 = 𝑢𝑏𝑝𝑣 és 𝑝, 𝑏, 𝑅 ∈ 𝛿 𝑞, 𝑎 , ahol 𝑎, 𝑏 ∈ Γ, 𝑢 ∈ Γ ∗ , 𝑣 ∈ Γ +
◦ 𝐶1 = 𝑢𝑐𝑞𝑎𝑣, 𝐶2 = 𝑢𝑝𝑐𝑏𝑣 és 𝑝, 𝑏, 𝐿 ∈ 𝛿 𝑞, 𝑎 , ahol 𝑎, 𝑏, 𝑐 ∈ Γ, 𝑢, 𝑣 ∈ Γ ∗
Csak itt különbözik a
determinisztikus definíciótól
18
Nemdeterminisztikus Turing-gép
A többlépéses konfiguráció átmenet és a felismert nyelv a determinisztikus esethez hasonlóan definiálható
Egy 𝑀 nemdeterminisztikus Turing-gép számítása egy 𝑢 szón egy ún. számítási fával szemléltethető:
◦ A gyökere az 𝑀 kezdőkonfigurációja az 𝑢-n
◦ A csúcsai 𝑀 konfigurációi
◦ Két szomszédos csúcs (azaz egy éllel összekötött csúcspár) megfelel 𝑀 egy lehetséges
konfigurációátmenetének
◦ Minden csúcsnak annyi gyermeke van ahány nemdeterminisztikus választás létezik az adott
konfigurációban 𝑞 𝑢 0

Pl. 𝑞0 𝑢 ⇒ 𝐶12 ⇒ 𝐶21 ⇒ ⋯ ⇒ elfogadó konf. vagy


𝑪𝟏𝟏 𝑪𝟏𝟐 𝑪𝟏𝟑 𝑞0 𝑢 ⇒ 𝐶13 ⇒ ⋯ ⇒ elutasító konf.
⋮ ⋮
𝑪𝟐𝟏 𝑪𝟐𝟐 elutasító
konf.
⋮ ⋮
elfogadó
konf.

𝑀 elfogadja az 𝑢-t ha a számítási fa legalább egy levele elfogadó konfiguráció


19
Nemdeterminisztikus Turing-gép
𝑀 eldönti az 𝐿 ⊆ Σ ∗ nyelvet, ha felismeri és minden 𝑢 ∈ Σ ∗ szóra az 𝑀 számítási fája véges és
minden levele elfogadó vagy elutasító konfiguráció
𝑀 𝑓(𝑛) időigényű, ha minden 𝑢 ∈ Σ ∗ 𝑛 hosszú szóra a számítási fa legfeljebb 𝑓(𝑛) magas
A 𝑘-szalagos Turing-gép definíciója értelemszerűen kiterjeszthető nemdeterminisztikus Turing-
gépre is:
𝛿: 𝑄 − 𝑞𝑖 , 𝑞𝑛 × Γ 𝑘 → P(𝑄 × Γ 𝑘 × 𝐿, 𝑅 𝑘 )

Feladat: adjunk kétszalagos nemdeterminisztikus Turing-gépet, ami az


𝐿 = 𝑢𝑢−1 𝑢 ∈ 𝑎, 𝑏 ∗ nyelvet dönti el
◦ Mennyi a megadott Turing-gép időigénye?

20
Nemdeterminisztikus Turing-gép
Minden 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝑞𝑖 , 𝑞𝑛 ) 𝑓(𝑛) idejű nemdeterminisztikus Turing-géphez megadható
egy ekvivalens, 2𝑂(𝑓 𝑛 ) idejű 𝑀′ (det.) Turing-gép

Bizonyítás (alapötlet)

Legyen 𝑢 ∈ Σ ∗ és tekintsük az 𝑀 𝑡 számítási fáját az 𝑢-n 𝒒𝟎 𝒖


𝜺
A 𝑡 minden szögpontjához egyértelműen hozzárendelhető 𝑪𝟏𝟏 𝑪𝟏𝟐 𝑪𝟏𝟑
egy {1, … , 𝑑}∗ -beli szó, ahol 𝑑 a 𝑡 kifokainak maximuma ⋮ ⋮ 𝟑
𝑪𝟐𝟏 𝑪𝟐𝟐 elutasító
konf.
𝑀’ egy ciklusban az egyik szalagján lexikografikusan felsorolja ⋮ ⋮
elfogadó 𝟐𝟐
a {1, … , 𝑑}∗ -beli szavakat egészen addig, amíg nem talál 𝑡-ben konf.

elfogadó konfigurációt:
◦ legyen az aktuális szó 𝑤
◦ 𝑀′ szimulálja a 𝑞0 ⇒∗ 𝐶 számítást, ahol 𝐶 a 𝑤-vel címkézett konfiguráció 𝑡-ben
◦ Ha 𝐶 elfogadó, akkor 𝑀′ is elfogadó állapotba lép
◦ Egyébként átírja 𝑤 az azt lexikografikusan követő szóra

22
Nemdeterminisztikus Turing-gép

Abból, hogy a bizonyításban alkalmazott szimuláció exponenciális időigényű még nem


következik, hogy nincs hatékonyabb szimuláció
Az a sejtés, hogy nem lehet a nemdeterminisztikus Turing-gépet az időigény drasztikus
romlása nélkül determinisztikus Turing-géppel szimulálni

Következmény: Ha egy 𝐿 nyelv eldönthető nemdeterminisztikus Turing-géppel, akkor


eldönthető determinisztikussal is

23
Az 𝑅𝐸 szerkezete
Emlékeztető: Olyan 𝑀 Turing-gép – 𝑤 bemenet
párosok elkódolva szavakban,
◦ 𝑅 az eldönthető, 𝑅𝐸 pedig a Turing-felismerhető nyelvek osztálya
hogy 𝑀 elfogadja 𝑤-t
◦ 𝑅 ⊆ 𝑅𝐸
𝑅𝐸 𝐿á𝑡𝑙ó
A célunk megmutatni, hogy :
𝐿𝑢 = { 𝑀, 𝑤 ∣ 𝑤 ∈ 𝐿(𝑀)}
𝐿𝑢
𝐿á𝑡𝑙ó = { 𝑀 ∣ 𝑀 ∉ 𝐿(𝑀)}
𝑅
Olyan Turing-gépek kódjainak a
halmaza, melyek nem fogadják el
saját maguk kódját bemenetként
◦ 𝑀 : 𝑀 elkódolása a 0,1 ábécé felett
◦ 𝑀, 𝑤 : Az 𝑀 Turing-gép - 𝑤 bemenet páros elkódolása 0,1 felett
Megjegyzés: Ebben a részben csak {0,1} bemenő ábécével rendelkező Turing-gépeket
vizsgálunk

1
A Turing-gépek elkódolásáról
Az 𝑀, 𝑤 és 〈𝑀〉 definíciója
Legyen 𝑀 = (𝑄, 0,1 , Γ, 𝛿, 𝑞0 , 𝑞𝑖 , 𝑞𝑛 ) egy Turing-gép
◦ 𝑄 és Γ minden eleméhez rendelhetünk egy sorszámot
◦ a fej 𝐿 és 𝑅 irányait tekinthetjük rendre az 1-es és 2-es iránynak
𝑀 minden 𝛿 𝑞, 𝑎 = (𝑝, 𝑏, 𝐷) átmenete egyértelműen elkódolható a következő szóval:

0 … 010 … 010 … 010 … 010 … 0


𝑞 sorszáma db 0 𝑎 sorszáma db 0 … az irány sorszáma db 0

𝑀 kódja: 𝛿1 11〈𝛿2 〉11 … 11〈𝛿𝑙 〉, ahol 𝛿1 , … , 𝛿𝑙 az 𝑀 összes átmenete, ⟨𝛿𝑖 ⟩ az 𝑖-ik


átmenet kódja
𝑀, 𝑤 kódja: 〈𝑀〉111𝑤

2
A Turing-gépek elkódolásáról
A 0,1 ∗ elemei felsorolhatóak, pl. lexikografikusan:

𝟎, 𝟏 ∗ = {𝜺, 𝟎, 𝟏, 𝟎𝟎, 𝟎𝟏, 𝟏𝟎, 𝟏𝟏, 𝟎𝟎𝟎, … 𝟏𝟏𝟏, … }

2-hosszú szavak
0-hosszú
lexikografikusan
szó
1-hosszú szavak rendezve
lexikografikusan
rendezve

Jelölés: Minden 𝑖 ≥ 1-re,


◦ 𝑤𝑖 jelöli a 0,1 ∗ halmaz 𝑖-ik elemét
◦ 𝑀𝑖 jelöli a 𝑤𝑖 által kódolt Turing-gépet (ha 𝑤𝑖 nem kódol Turing-gépet, akkor 𝑀𝑖 egy
olyan tetszőleges Turing-gép, ami nem fogad el semmit)

3
Eldönthetetlen problémák
Miért nehéz a Turing-gépekkel kapcsolatos kérdések eldöntése?
A 2 állapotú „szorgos hód”
◦ Mennyit lép és mennyi 1-est ír a szalagra, amíg megáll:

1/1, 𝐿
⊔/1, 𝑅
1/1, 𝐿
𝑞0 𝑞1 𝑞𝑖

⊔/1, 𝐿

◦ Válasz: 4 darab 1-es 6 lépés után

5
Eldönthetetlen problémák
A 3 állapotú „szorgos hód”
◦ Mennyit lép és mennyi 1-est ír a szalagra, amíg megáll:

⊔/1, 𝑅

𝑞0 𝑞1 1/1, 𝑅

𝑞𝑖 𝑞2

⊔/1, 𝐿

◦ Válasz: 6 darab 1-es 14 lépés után

6
Eldönthetetlen problémák

A 4 állapotú „szorgos hód”


◦ 13 1-est ír a szalagra 107 lépés után

A legjobb 5 állapotú jelölt:


◦ 4098 1-est ír a szalagra 47.176.870 lépés után

A legjobb 6 állapotú jelölt:


◦ ≈ 3.5 ⋅ 1018267 1-est ír a szalagra ≈ 7.4 ⋅ 1036534 lépés után

7
Eldönthetetlen problémák
Tehát a célunk megmutatni, hogy:

𝑅𝐸 𝐿á𝑡𝑙ó
𝐿𝑢 = { 𝑀, 𝑤 ∣ 𝑤 ∈ 𝐿(𝑀)}
𝐿𝑢
𝐿á𝑡𝑙ó = { 𝑀 ∣ 𝑀 ∉ 𝐿(𝑀)}
𝑅

8
Eldönthetetlen problémák
𝐿á𝑡𝑙ó nem ismerhető fel Turing-géppel

Bizonyítás
Tekintsük azt a 𝑇 táblázatot, mely 𝑖-ik sorának 𝑗-ik oszlopa (𝑖, 𝑗 ≥ 1), azaz 𝑇(𝑖, 𝑗), akkor és csak akkor 1, ha 𝑤𝑗 ∈
𝐿 𝑀𝑖
Legyen 𝑑 a 𝑇 átlójában olvasható végtelen hosszú bitsztring, és legyen 𝑑ҧ a 𝑑 bitenkénti komplementere
Ekkor igazak az alábbi megjegyzések:
◦ Minden 𝑖 ≥ 1-re, 𝑇 𝑖-ik sora az 𝐿(𝑀𝑖 ) nyelv karakterisztikus függvénye
ഥ az 𝐿á𝑡𝑙ó karakterisztikus függvénye
◦ 𝒅
◦ Minden Turing-géppel felismerhető, azaz 𝑅𝐸-beli nyelv karakterisztikus függvénye megegyezik 𝑇 valamelyik sorával
◦ 𝑑ҧ különbözik 𝑇 minden sorától
Ezek alapján 𝐿á𝑡𝑙ó különbözik az összes 𝑅𝐸-beli nyelvtől

9
Eldönthetetlen problémák
Az 𝐿𝑢 nyelv eldönthetetlen

Bizonyítás
◦ Indirekt módon tfh. 𝐿𝑢 ∈ 𝑅 és legyen 𝑀 egy 𝐿𝑢 -t eldöntő Turing-gép
◦ Konstruáljuk meg 𝑀′-t:
𝑞𝑖
𝑤 ⟨𝑤, 𝑤⟩ 𝑞𝑖
Másol 𝑀 𝑞𝑛
𝑞𝑛

𝑀′ A 𝑤 által kódolt T-gép és a w bemenet


párosa elkódolva ( azaz ⟨𝑤,𝑤⟩= 𝑤111𝑤 )

◦ Ekkor 𝑀′ elfogadja 𝑤-t ⇔ 𝑀 nem fogadja el a ⟨𝑤, 𝑤⟩ szót ⇔ A 𝑤 által kódolt Turing-gép nem fogadja el 𝑤-t
◦ Azaz 𝑤 ∈ 𝐿 𝑀 ′ ⇔ 𝑤 ∈ 𝐿á𝑡𝑙ó
◦ Tehát 𝐿 𝑀 ′ = 𝐿á𝑡𝑙ó , ami ellentmondás, mert 𝐿á𝑡𝑙ó -t nem lehet felismerni
◦ Következik, hogy 𝐿𝑢 -t nem lehet eldönteni

10
Eldönthetetlen problémák
𝐿𝑢 felismerhető Turing-géppel 𝑈 működése vázlatosan:
◦ Létrehozza 𝑀 kezdőkonfigurációját elkódolva a 2-es (𝑀
Bizonyítás szalagja) és 3-as (𝑀 állapota) szalagon
◦ Szimulálja 𝑀 egy lépését:
𝐿𝑢 -t egy ún. Univerzális Turing-gép ismeri fel:
◦ Leolvassa a második szalagról 𝑀 aktuálisan olvasott
szalagszimbólumát
𝑀 kódja 𝑤
◦ Megnézi, hogy a bemenetén szereplő 𝑢 szó kódol-e
… ⊔ 0 … 0 1 1 1 1 0 1 ⊔ … 𝑈 bemenete (𝑢) Turing-gépet; ha nem elutasítja a bemenetet
𝑋2
𝑋1 𝑋1 ◦ Leolvassa a harmadik szalagról 𝑀 aktuális állapotát
… ⊔ 0 0 1 0 1 0 1 ⊔ …
𝑀 szalagja ◦ Szimulálja 𝑀 egy lépését (𝑀 ott van az 1-es szalagon)
elkódolva
… ⊔ 0 0 0 0 ⊔ …
◦ Ha 𝑀 aktuális állapota elfogadó vagy elutasító, akkor 𝑈
𝑀 állapota is belép a saját elfogadó vagy elutasító állapotába
𝑝4
elkódolva
Megjegyzés: ha 𝑀 nem áll meg 𝑤-n, akkor 𝑈 sem áll
… ⊔ ⊔ ⊔ ⊔ ⊔ ⊔ … Segédszalag meg 〈𝑀, 𝑤〉-n
𝑈

11
Eldönthetetlen problémák
Tehát egy 𝐿 eldöntési probléma komplementere az az
𝐿ത probléma aminek pozitív bemenetei az 𝐿 negatív
bemenetei, negatív bemenetei pedig az 𝐿 pozitív
Jelölés: Ha 𝐿 ⊆ Σ∗ , akkor 𝐿ത ≔ {𝑢 ∈ Σ∗ ∣ 𝑢 ∉ 𝐿} bemenete i

Ha 𝐿 és 𝐿ത is felismerhető Turing-géppel, akkor 𝐿 eldönthető

Bizonyítás
Legyen 𝑀1 és 𝑀2 rendre az 𝐿-t és 𝐿ത -t felismerő Turing-gép
Konstruáljuk meg az 𝑀′ kétszalagos Turing-gépet:
𝑤 𝑤 𝑀1 𝑞𝑖 𝑞𝑖
Másol
𝑤 𝑀2 𝑞𝑖 𝑞𝑛

𝑀′

𝑀′ lemásolja 𝑤-t a második szalagjára, majd felváltva szimulálja 𝑀1 és 𝑀2 egy-egy lépését


addig, amíg valamelyik elfogadó állapotba lép
Így 𝑀′ az 𝐿-et ismeri fel, és minden bemeneten meg is áll, azaz 𝑀 el is dönti 𝐿-et

12
Eldönthetetlen problémák
Következmény: 𝑅𝐸 nem zárt a komplementer-képzésre

Bizonyítás
Legyen 𝐿 ∈ 𝑅𝐸 − 𝑅 (𝐿𝑢 pl. egy ilyen nyelv)
Ha 𝐿ത ∈ 𝑅𝐸, akkor az előző tétel miatt 𝐿 ∈ 𝑅, ami ellentmondás
Tehát 𝐿ത ∉ 𝑅𝐸

𝑅 zárt a komplementer-képzésre

Bizonyítás
𝑞𝑖 𝑞𝑖
𝑤
Legyen 𝐿 ∈ 𝑅 és 𝑀 egy Turing-gép, ami az 𝐿-t dönti el 𝑀 𝑞𝑛 𝑞𝑛
Akkor a következő 𝑀′ 𝐿ത -t dönti el: 𝑀′

13
Visszavezetések
Egy 𝑓: Σ ∗ → Δ∗ függvény kiszámítható ha van olyan Turing-gép, ami egy 𝑢 ∈ Σ ∗ szóval
az első szalagján elindítva úgy áll meg, hogy az utolsó szalagján az 𝑓(𝑢) szó van
Egy 𝐿1 ⊆ Σ ∗ nyelv visszavezethető egy 𝐿2 ⊆ Δ∗ nyelvre (𝐿1 ≤ 𝐿2 ), ha van olyan 𝑓: Σ ∗ →
Δ∗ kiszámítható függvény, hogy minden 𝑢 ∈ Σ ∗ szóra,
ha 𝑢 ∈ 𝐿1 , akkor 𝑓 𝑢 ∈ 𝐿2 és ha 𝑢 ∈ 𝐿ത1 , akkor 𝑓 𝑢 ∈ 𝐿ത 2
𝑳𝟏 𝑳𝟐
Mivel tetszőleges 𝐿 nyelvre 𝐿2 pozitív
𝐿1 pozitív 𝑓
𝐿ത = 𝐿, az 𝐿1 és 𝐿ത1 illetve 𝐿2 bemenetei bemenetei
és 𝐿ത 2 szerepének
felcserélésével kapjuk, hogy 𝐿1 negatív 𝐿2 negatív
bemenetek 𝑓 bemenetei
𝐿ത1 ≤ 𝐿ത 2 is teljesül

14

14
Visszavezetések
Következmény:
Legyen 𝐿1 és 𝐿2 két nyelv úgy hogy 𝐿1 ≤ 𝐿2 Ha 𝐿1 eldönthetetlen, akkor 𝐿2 is az
Ha 𝐿2 ∈ 𝑅𝐸 akkor 𝐿1 ∈ 𝑅𝐸, továbbá ha 𝐿2 eldönthető, akkor 𝐿1 is az
Bizonyítás
Legyen 𝐿2 ∈ 𝑅𝐸
Legyen 𝑀2 az 𝐿2 -t felismerő, 𝑀 pedig a visszavezetést kiszámító Turing-gép
Konstruáljuk meg 𝑀1 -et:
𝑤 𝑓(𝑤) 𝑞𝑖 𝑞𝑖
𝑀 𝑀2 𝑞𝑛 𝑞𝑛
𝑀1

Világos, hogy 𝑀1 az 𝐿1 -et ismeri fel, azaz 𝐿1 ∈ 𝑅𝐸


Ha 𝐿2 ∈ 𝑅, akkor 𝑀2 választható olyannak, hogy minden bemeneten megáll
Akkor 𝑀1 is minden bemeneten megáll, tehát eldönti 𝐿1 -et

15
A megállási probléma
Az alábbi nyelvet a Turing-gépek megállási problémájának nevezzük:
𝐿ℎ = { 𝑀, 𝑤 ∣ 𝑀 megáll 𝑤 ‐ n}
Azaz a Turing-gépek megállási problémája a következő: Fontos: egy Turing-gép csak a 𝑞𝑖
◦ Adott egy 𝑀 Turing-gép és 𝑀 egy 𝑤 bemenete vagy 𝑞𝑛 állapotok valamelyikében
◦ Kérdés: Megáll-e 𝑀 a 𝑤-n? tud megállni

𝐿ℎ eldönthetetlen

Bizonyítás
Korábbi tétel alapján elég megmutatni, hogy 𝐿𝑢 ≤ 𝐿ℎ
Tetszőleges 𝑀 Turing-gépre, legyen 𝑀′ az alábbi Turing-gép
𝑀′ tetszőleges 𝑢 bemeneten a következőket teszi:
1. Futtatja 𝑀-et 𝑢-n
2. Ha 𝑀 𝑞𝑖 -be lép, akkor 𝑀′ is 𝑞𝑖 -be lép
3. Ha 𝑀 𝑞𝑛 -be lép, akkor 𝑀′ egy végtelen ciklusba lép

16
A megállási probléma
Bizonyítás (folyt.)
◦ Belátható, hogy
1. Az 𝑓: 𝑀 → 〈𝑀′ 〉 leképezés egy kiszámítható függvény
2. Tetszőleges 𝑀, 𝑤 Turing-gép — bemenet párosra:
𝑀, 𝑤 ∈ 𝐿𝑢 ⇔ 𝑀 elfogadja 𝑤-t ⇔ Az 𝑀′ megáll 𝑤-n ⇔ 𝑀′, 𝑤 ∈ 𝐿ℎ
◦ Tehát az 𝑀′ konstrukciója az 𝐿𝑢 visszavezetése 𝐿ℎ -ra
◦ Mivel 𝐿𝑢 eldönthetetlen, következik, hogy 𝐿ℎ is az

Visszavezetések megadásakor jellemzően csak azon szavakat vizsgáljuk, amelyek


kódolnak valamilyen objektumot
Pl. a fenti esetben nem foglalkoztunk azzal, hogy 𝑓 mit rendeljen egy olyan szóhoz,
ami nem kódol Turing-gépet (ami egyébként egy könnyen kezelhető eset)

17
A megállási probléma
𝐿ℎ ∈ 𝑅𝐸

Bizonyítás
Korábbi tétel alapján elég megmutatni, hogy 𝐿ℎ ≤ 𝐿𝑢
◦ Tetszőleges 𝑀 Turing-gépre, legyen 𝑀′ az alábbi Turing-gép:
◦ 𝑀′ tetszőleges 𝑢 bemeneten a következőket teszi:
1. Futtatja 𝑀-et 𝑢-n
2. Ha 𝑀 𝑞𝑖 -be vagy 𝑞𝑛 -be lép, akkor 𝑀′ 𝑞𝑖 -be lép
◦ Belátható, hogy
1. Az 𝑓: 𝑀 → 〈𝑀′ 〉 leképezés egy kiszámítható függvény
2. Tetszőleges 𝑀, 𝑤 Turing-gép — bemenet párosra,
𝑀, 𝑤 ∈ 𝐿ℎ ⇔ Az 𝑀 megáll 𝑤-n ⇔ A 𝑀′ elfogadja 𝑤-t ⇔ 𝑀′, 𝑤 ∈ 𝐿𝑢
◦ Tehát 𝑀′ konstrukciója az 𝐿ℎ visszavezetése 𝐿𝑢 -ra
◦ Következik, hogy 𝐿ℎ ∈ 𝑅𝐸

18
További eldönthetetlen problémák
𝐸!" = 𝑀 𝐿 𝑀 =∅
◦ azaz az 𝐸!" nyelv a következő problémának felel meg:
◦ Adott egy 𝑀 Turing-gép
◦ Vajon 𝑀 olyan-e, hogy nem fogad-e el semmit? Az 𝑁𝐸!" és 𝐸!" nyelvek egymás
komlpementerei
𝑁𝐸!" = 𝑀 𝐿 𝑀 ≠∅
◦ Adott egy 𝑀 Turing-gép
◦ Vajon 𝑀 olyan-e, hogy legalább egy szót elfogad?

𝐸𝑄!" = 𝑀# , 𝑀$ 𝑀# , 𝑀$ ekvivalens Turing − gépek


◦ Adott két Turing-gép, 𝑀# és 𝑀$
◦ Vajon 𝑀# és 𝑀$ ugyanazt a nyelvet ismerik-e fel?

1
További eldönthetetlen problémák
𝑁𝐸!" ∈ 𝑅𝐸 − 𝑅, azaz 𝑁𝐸!" Turing-felismerhető, de nem eldönthető

Bizonyítás

1. 𝑵𝑬𝑻𝑮 ∈ 𝑹𝑬, azaz Turing-felismerhető 2. 𝑵𝑬𝑻𝑮 ∉ 𝑹, azaz nem eldönthető


Legyen 𝑁 az alábbi Turing-gép Megmutatjuk, hogy 𝐿# ≤ 𝑁𝐸$%
𝑁 tetszőleges 𝑀 Turing-gép kódra a bemenetén Tetszőleges 𝑀, 𝑤 Turing-gép – bemenet pároshoz
Minden 𝑖 = 1,2,3, … számra legyen 𝑁 a következő Turing-gép:
Futtatja 𝑀-et 𝑖 lépésig az első 𝑖 szón 𝑁 teszteli, hogy a bemenete megegyezik-e 𝑤-vel
Ha eközben 𝑀 elfogad, 𝑁 is elfogadó Ha nem, akkor elutasítja a bemenetet
állapotba lép Ha igen, akkor futtatja rajta 𝑀-et és pontosan
akkor fogadja el, ha 𝑀 is elfogadja azt
Világos, hogy 𝑀, 𝑤 ∈ 𝐿# ⇔ ⟨𝑁⟩ ∈ 𝑁𝐸$%
Hasonlít ahhoz ahogy egy
felismerő Turing-géphez
megadtunk egy felsoroló
Turing-gépet (idén ez kimaradt)
2
További eldönthetetlen problémák
𝐸!" ∉ 𝑅𝐸
Miért? Korábban láttuk, hogy minden olyan 𝐿 nyelvre ami Turing-felismerhető de nem
eldönthető, az 𝐿 komplementere nem Turing-felismerhető
A 𝑁𝐸!" Turing-felimerhető, de nem eldönthető, és a komplementere pedig pont 𝐸!"

𝐸𝑄!" ∉ 𝑅𝐸

Bizonyítás

Megmutatjuk, hogy 𝐸67 ≤ 𝐸𝑄67


◦ Tetszőleges 𝑀 Turing-géphez legyen
𝑀# ≔ 𝑀 és 𝑀$ egy tetszőleges Turing-gép, ami az üres nyelvet ismeri fel
◦ Ekkor 𝑀 ∈ 𝐸!" ⇔ 𝑀# , 𝑀$ ∈ 𝐸𝑄!"

3
Rice tétele
Legyen 𝑀 egy Turing-gép
Legyen 𝐾 egy Turing-gépek által felismert nyelvekkel kapcsolatos
kérdés A 𝐾 kérdés lehet pl. a következő
Az 𝑀 által felismert nyelv
𝐾 nem triviális
◦ ha van olyan 𝑀 Turing-gép, hogy az 𝑀 által felismert nyelvvel • üres-e
kapcsolatban a 𝐾-ra a válasz igen • véges-e
◦ és van olyan 𝑀′ Turing-gép is, hogy az 𝑀′ által felismert nyelvvel
kapcsolatban a 𝐾-ra a válasz nem • reguláris-e

Rice tétele: Ha 𝐾 egy nem triviális kérdés, akkor nem lehet eldönteni azt, hogy egy tetszőleges
𝑀 Turing-gép esetén az 𝐿(𝑀)-mel kapcsolatban mi a válasz a 𝐾 kérdésre

4
Post Megfelelkezési Probléma

Legyen 𝑢# , … , 𝑢% , 𝑣# , … , 𝑣% ∈ 𝛴 & (𝑛 ≥ 1)
'& ''
A𝐷 = , … , halmazt dominókészletnek nevezzük
(& ('
'(& '()
Az ( … ( (𝑚 ≥ 1, 1 ≤ 𝑖# , … , 𝑖) ≤ 𝑛) dominósorozat a 𝐷 egy megoldása, ha
(& ()

𝑢*& … 𝑢*) = 𝑣*& … 𝑣*)


A 𝑃𝑀𝑃 probléma + - ,- -+,
A , , , , egy megoldása:
◦ Adott egy 𝐷 dominókészlet ,- -+ -
◦ Van-e 𝐷-nek megoldása? 𝑎 𝑏 𝑐𝑎 𝑎 𝑎𝑏𝑐
𝑎𝑏 𝑐𝑎 𝑎 𝑎𝑏 𝑐

𝑃𝑀𝑃 Turing-felismerhető, de nem eldönthető

5
CF nyelvekkel kapcsolatos eldönthetetlen
problémák
𝐸𝐶𝐹 probléma: Adott egy 𝐺 CF nyelvtan, döntsük el, hogy 𝐺 egyértelmű-e

Az 𝐸𝐶𝐹 probléma eldönthetetlen

Bizonyítás
Visszavezetjük a 𝑃𝑀𝑃 problémát (ami eldönthetetlen) az 𝐸𝐶𝐹 komplementerére
Ebből már következik, hogy 𝐸𝐶𝐹 is eldönthetetlen
%! %"
◦ Legyen 𝐷 = ,…, egy dominókészlet
&! &"
◦ Konstruáljuk meg a következő CF nyelvtant 𝐺' : = ({𝑆, 𝐴, 𝐵}, Σ ∪ Δ, 𝑃 ∪ {𝑆 → 𝐴, 𝑆 → 𝐵}, 𝑆), ahol
◦ Δ = {𝑎# , … , 𝑎( }, Σ ∩ Δ = ∅
◦ 𝑃 = 𝐴 → 𝑢# 𝐴𝑎# , … , 𝐴 → 𝑢( 𝐴𝑎( , 𝐴 → 𝜀 ∪ 𝐵 → 𝑣# 𝐵𝑎# , … , 𝐵 → 𝑣( 𝐵𝑎( , 𝐵 → 𝜀
◦ Megmutatjuk, hogy az 𝑓: 𝐷 → 〈𝐺' 〉 konstrukció tényleg visszavezetés

6
CF nyelvekkel kapcsolatos eldönthetetlen
problémák
Bizonyítás (folyt.)
%#! %
• Először tegyük fel, hogy … & #$ a 𝐷 egy megoldása
&#! #$
• Akkor 𝑢*! … 𝑢*" = 𝑣*! … 𝑣*"
• A 𝐺+ konstrukciója miatt érvényesek az alábbi levezetések:
S ⇒ 𝐴 ⇒∗ 𝑢*! … 𝑢*" 𝑎*" … 𝑎*! és S ⇒ 𝐵 ⇒∗ 𝑣*! … 𝑣*" 𝑎*" … 𝑎*!
• Azaz ugyanannak a szónak van két különböző baloldali levezetése
• Ezért 𝐺+ nem egyértelmű
• Most tegyük fel azt, hogy 𝐺' nem egyértelmű
• Akkor van olyan 𝑤 ∈ 𝐿(𝐺+ ) szó, aminek van két különböző baloldali levezetése
• Az egyik levezetés S → 𝐴-val a másik pedig S → 𝐵-vel kell kezdődjön
• Viszont 𝑤 alakja a következő: 𝑤 = 𝑥𝑦, ahol 𝑥 ∈ Σ ∗ és 𝑦 ∈ 𝑎- , … , 𝑎. ∗
• Ezért a fenti két levezetésben a szabályok ugyanolyan sorrendben kell alkalmazásra
kerüljenek
• Következik, hogy 𝐷-nek van megoldása
• Tehát a megadott konstrukció tényleg a 𝑃𝑀𝑃 visszavezetése az 𝐸𝐶𝐹 komplementerére

7
CF nyelvekkel kapcsolatos további
eldönthetetlen problémák

Legyen 𝐺# és 𝐺$ két CF nyelvtan. Eldönthetetlen, vajon 𝐿 𝐺# ∩ 𝐿 𝐺$ ≠ ∅

Bizonyítás
Legyen 𝐷 egy dominókészlet, 𝐺. , 𝐺/ a 𝐺0 két rész-nyelvtana rendre az 𝐴-t és 𝐵-t
tekintve kezdőszimbólumnak
Legyen 𝐺# = 𝐺. és 𝐺$ = 𝐺/
◦ Ekkor 𝐷-nek pontosan akkor van megoldása, ha 𝐿 𝐺; ∩ 𝐿 𝐺< ≠ ∅

Legyen 𝐺# és 𝐺$ két CF nyelvtan. A következők is eldönthetetlenek:


◦ a) 𝐿 𝐺# = 𝐿 𝐺$ b) 𝐿 𝐺# = Γ ∗ valamely Γ ábécére d) 𝐿 𝐺# ⊆ 𝐿 𝐺$

8
Néhány eldönthető probléma
A környezetfüggő nyelvek szóproblémája eldönthető

Bizonyítás
Legyen 𝐺 = (𝑉, Σ, 𝑅, 𝑆) egy környezetfüggő nyelvtan és 𝑤 ∈ Σ ∗
Tudjuk, hogy 𝐺 𝜀-mentes, azaz egy deriváció során soha nem csökkenhet egy mondatforma hossza (KES)
Ezért megadható egy olyan |𝑤|-től és 𝐺-től függő 𝑑, hogy ha 𝑆 ⇒∗ 𝑤, akkor 𝑤 levezethető 𝑆-ből legfeljebb 𝑑
lépésben
Legyen 𝑇 a következő nemdeterminisztikus, négyszalagos Turing-gép, ami a 〈𝐺, 𝑤〉 benemeten:
◦ ha 𝑤 = 𝜀, akkor ellenőrzi, hogy 𝑆 → 𝜀 szabály-e; ha igen, akor megáll 𝑞% -ben, egyébként 𝑞& -ben
◦ ha 𝑤 ≠ 𝜀, akkor kiszámolja a negyedik szalagján a 𝑑-t
◦ rámásolja az 𝑆-t a kettes szalagra; 1-et ír a 3-as szalagra
◦ amíg a kettes szalagon nem 𝑤 van és a 3-as szalagon 𝑑-nél kisebb szám van
◦ ha nincs olyan szabály ami alkalmazható lenne a 2-es szalagon lévő szóra, akkor 𝑞& -be lép
◦ egyébként nemdeterminisztikusan átírja a 2-es szalagon lévő szót egy abból egy lépésben levezethető
mondatformára
◦ növeli a 3-as szalagon lévő számot 1-gyel
◦ Ha a kettes szalagon 𝑤 van, akkor 𝑞% -be lép, egyébként pedig 𝑞& -be lép

9
Néhány eldönthető probléma
Tehát 𝐸/01 az a probléma, ahol azt kell
eldönteni, hogy egy nemdeterminisztikus
𝐸9:. = { 𝑀 ∣ 𝑀 egy nemdet. véges automata és 𝐿 𝑀 = ∅} véges automata az üres nyelvet ismeri-e fel

𝐸9:. eldönthető

Bizonyítás
• Legyen 𝑀 egy (𝑄, Σ, 𝛿, 𝑞* , 𝐹) nemdeterminisztikus véges automata
• 𝐿 𝑀 = ∅ akkor és csak akkor, ha 𝑀 állapotátmeneti gráfjában nincs út 𝑞* -ból
végállapotba
• Ez pedig eldönthető

10
Néhány eldönthető probléma
𝐸𝑄9:. = { 𝑀# , 𝑀$ ∣ 𝑀# és 𝑀$ ekvivalens véges nemdeterminiszSkus automaták}
Tehát 𝐸𝑄/01 az a probléma, ahol azt kell
eldönteni, hogy két véges nemdeterminisztikus
automata ugyanazt a nyelvet ismeri-e fel
𝐸𝑄9:. eldönthető

Bizonyítás
◦ Legyen 𝑀- , 𝑀2 két véges nemdeterminisztikus automata
◦ Konstruáljuk meg az ezekkel rendre ekvivalens 𝑀-3 és 𝑀23 véges determinisztikus automatát
◦ A korábban látott direktszorzat konstrukció segítségével ezekből effektíven megkonstruálható egy olyan 𝑀
automata, ami az 𝐿 𝑀- − 𝐿 𝑀2 ∪ 𝐿 𝑀2 − 𝐿 𝑀- nyelvet ismeri fel
◦ Világos, hogy 𝑀- , 𝑀2 ∈ 𝐸𝑄/01 ⇔ 𝐿 𝑀 = ∅ ⇔ 𝑀 ∈ 𝐸/01
◦ Azt pedig láttuk, hogy 𝐸/01 eldönthető
◦ Megjegyzés: a fenti konstrukció valójában az 𝐸𝑄/01 visszavezetése 𝐸/01 -ra

11
Néhány eldönthető probléma
Tehát 𝐸40% az a probléma, ahol azt
kell eldönteni, hogy egy CF nyelvtan
𝐸;:" = { 𝐺 ∣ 𝐺 egy környezetfüggetlen nyelvtan és 𝐿 𝐺 = ∅} az üres nyelvet generálja-e

𝐸;:" eldönthető

Bizonyítás
Tudjuk, hogy algoritmikusan kiszámolható egy CF nyelvtan befejezhető nemterminálisainak
halmaza
𝐿 𝐺 = ∅ akkor és csak akkor, ha 𝐺 kezdőszimbóluma befejezhető

𝐸+," = { 𝐺 ∣ 𝐺 környezetfüggő és 𝐿 𝐺 = ∅} viszont eldönthetetlen

12
Bonyolultságelmélet
Cél: A megoldható (eldönthető) problémák osztályozása a megoldáshoz szükséges
erőforrások (idő, tár) mennyisége szerint
Emlékeztető:
◦ az idő- tárigényre csak nagyságrendileg vagyunk kíváncsiak
◦ 𝑓 = 𝑂(𝑔): az 𝑓 legfeljebb olyan gyorsan nő mint a 𝑔.

◦ 5𝑛! + 6𝑛" + 1 = 𝑂(𝑛! )


◦ 𝑛# = 𝑂 2$ és 2$ ≠ 𝑂(𝑛# )
◦ log # 𝑛 = 𝑂(𝑛% ) és 𝑛% ≠ 𝑂(log # 𝑛)
◦ log " 𝑛 = 𝑂(log ! 𝑛)
◦ log " log " 𝑛 = 𝑂(log " 𝑛)

1
Bonyolultságelmélet – P és NP
P-vel jelöljük a
◦ polinom időben
◦ determinisztikus Turing-géppel eldönthető problémák osztályát

NP-vel jelöljük a
◦ polinom időben
◦ nemdeterminisztikus Turing-géppel eldönthető problémák osztályát

Világos, hogy P ⊆ NP
Az a sejtés, hogy P ⊊ NP
◦ Azaz van olyan probléma ami nemdeterminisztikusan megoldható polinom időben, de
determinisztikusan nem

2
Bonyolultságelmélet – P és NP
P tartalmazza a gyakorlatban is hatékonyan megoldható problémákat, de milyen problémák
vannak NP-ben?
Minden NP-beli 𝐿 problémára a következő jellemző:
◦ Létezik egy polinom idejű nemdeterminisztikus Turing-gép ami
◦ 𝐿 minden 𝐼 bemenetére nemdeterminisztikusan generálja 𝐼 egy lehetséges 𝑀 megoldását és
◦ polinom időben leellenőrzi (determinisztikusan), hogy 𝑀 valóban megoldása-e 𝐼-nek

Azt mondjuk, hogy egy 𝐿 nyelv polinom időben verifikálható, ha van olyan 𝐾 ∈ P nyelv és 𝑘
szám, hogy
𝐿 = {𝑥 ∣ ∃𝑦 𝑥, 𝑦 ∈ 𝐾 és 𝑦 = 𝑂( 𝑥 ! )}

Bemenet Megoldás Polinom időben y x-hez képest


ellenőrizhető “nem túl nagy”

Egy nyelv akkor és csak akkor NP-beli, ha polinom időben verifikálható


3
Bonyolultságelmélet – P és NP

Milyen visszavezetésre van szükség az NP-n belül?

Olyanra, ami feltehetőleg nem elég erős, hogy minden NP-beli problémát megoldjon

Mivel valószínűleg P ≠ NP, a polinom időben kiszámítható visszavezetések megfelelnek


a céljainknak

Egy 𝐿" nyelv polinom időben visszavezethető az 𝐿# nyelvre (jele: 𝐿" ≤$ 𝐿# ), ha


◦ 𝐿& ≤ 𝐿" és
◦ a visszavezetéshez használt függvény polinom időben kiszámítható

4
Bonyolultságelmélet – P és NP
Legyen 𝐿! és 𝐿" két nyelv úgy hogy 𝐿! ≤# 𝐿" . Ha 𝐿" ∈ P, akkor 𝐿! ∈ P. Továbbá ha 𝐿" ∈ NP, akkor 𝐿! ∈ NP.

Bizonyítás
Csak az első állítást bizonyítjuk, a másik hasonlóan bizonyítható
◦ Tfh. 𝐿" ∈ P és legyen 𝑀" az 𝐿" -t eldöntő, 𝑀 pedig az 𝑓 visszavezetést kiszámító Turing-gép
◦ Konstruáljuk meg 𝑀! -et:
𝑤 𝑓(𝑤) 𝑞" 𝑞"
𝑀 𝑀! 𝑞# 𝑞#

𝑀$
◦ Világos, hogy 𝑀! az 𝐿! -et dönti el
◦ 𝑀! polinom idejű: legyen 𝑀 időigénye 𝑝! , 𝑀" -é pedig 𝑝" (𝑝! és 𝑝" polinomok)
◦ ha 𝑤 𝑛 hosszú, akkor 𝑓(𝑤) legfeljebb 𝑝!(𝑛) hosszú lehet
◦ ezért az 𝑀! időigénye 𝑂(𝑝! 𝑛 + 𝑝"(𝑝!(𝑛))), ami szintén polinom

5
NP-teljesség
Ha 𝐿" ≤$ 𝐿# , akkor 𝐿" nem lehet „nehezebben megoldható”, mint 𝐿#

Legyen ℂ egy problémaosztály


Egy 𝐿 probléma ℂ -nehéz (a polinom idejű visszavezetésre nézve), ha minden 𝐿' ∈ ℂ esetén 𝐿' ≤( 𝐿
Egy ℂ -nehéz 𝐿 probléma ℂ -teljes, ha 𝐿 ∈ ℂ

Legyen 𝐿 egy NP-teljes probléma. Ha 𝐿 ∈ P, akkor P = NP

Bizonyítás
Mivel P ⊆ NP, elég megmutatni, hogy NP ⊆ P
Legyen 𝐿′ ∈ NP egy tetszőleges probléma
Ekkor 𝐿' ≤( 𝐿, és mivel 𝐿 ∈ P, az előző tétel alapján 𝐿' ∈ P

6
SAT NP-teljes

Az „első’’ NP-teljes probléma:


SAT ≔ { 𝜑 ∣ 𝜑 kielégíthető zérusrendű KNF}
Cook tétele: SAT NP-teljes (bizonyítás később)

Ha 𝐿 NP-teljes, 𝐿% ∈ NP és 𝐿 ≤$ 𝐿′, akkor 𝐿′ is NP-teljes

Bizonyítás
◦ Az állítás egyszerű következménye annak, hogy a polinom idejű visszavezetések tranzitívak:
◦ ha 𝑝& (𝑛) és 𝑝" (𝑛) polinomok, akkor 𝑝" (𝑝& (𝑛)) szintén polinom

7
3SAT NP-teljes
𝑘SAT:
◦ Adott egy 𝜑 zérusrendű KNF, melynek minden tagjában pontosan 𝑘 literál szerepel
◦ Kérdés: kielégíthető-e 𝜑?

3SAT NP-teljes

Bizonyítás

◦ Világos, hogy 3SAT ∈ NP


◦ Megmutatjuk, hogy SAT ≤' 3SAT

8
3SAT NP-teljes
Bizonyítás
◦ Tetszőleges 𝜑 KNF-ben lévő formulához konstruáljuk meg 𝜑′-t a következő táblázat alapján, ahol
𝑝, 𝑝& , … , 𝑝$(" mindig új, korábban nem használt ítéletváltozók:

𝜑 egy 𝐶 tagja 𝜑 $ klózai


𝑙 𝑙∨𝑙∨𝑙
𝑙! ∨ 𝑙" 𝑙! ∨ 𝑙" ∨ 𝑙"
𝑙! ∨ 𝑙" ∨ 𝑙% 𝑙! ∨ 𝑙" ∨ 𝑙%
𝑙! ∨ 𝑙" ∨ 𝑙% ∨ 𝑙& (𝑙!∨ 𝑙" ∨ 𝑝) ∧ (¬𝑝 ∨ 𝑙% ∨ 𝑙&)
𝑙! ∨ ⋯ ∨ 𝑙' (𝑛 ≥ 5) (𝑙!∨ 𝑙" ∨ 𝑝!) ∧ (¬𝑝! ∨ 𝑙% ∨ 𝑝") ∧ ⋯ ∧ (¬𝑝'(" ∨ 𝑙'(! ∨ 𝑙' )

◦ Belátható, hogy 𝜑 kielégíthető ⇔ 𝜑′ kielégíthető

9
3SAT NP-teljes
Bizonyítás (folyt.)

◦ Például, 𝑙& ∨ 𝑙" ∨ 𝑙! ∨ 𝑙) kielégíthető ⇔ (𝑙& ∨ 𝑙" ∨ 𝑝) ∧ (¬𝑝 ∨ 𝑙! ∨ 𝑙) ) kielégíthető


◦ Tfh. 𝑙! ∨ 𝑙" ∨ 𝑙% ∨ 𝑙& kielégíthető
◦ Akkor van olyan 𝐴 értékadás, hogy 𝐴 ⊨ 𝑙! ∨ 𝑙" ∨ 𝑙% ∨ 𝑙&
◦ Azaz 𝐴 ⊨ 𝑙! ∨ 𝑙" vagy 𝐴 ⊨ 𝑙% ∨ 𝑙&
◦ Legyen 𝐴′ u.a. a 𝜑 változóin, mint 𝐴, továbbá
◦ Legyen 𝐴$ 𝑝 =0 ha 𝐴 ⊨ 𝑙! ∨ 𝑙" , és legyen 𝐴$ 𝑝 =1 ha 𝐴 ⊨ 𝑙% ∨ 𝑙& (ha mindkét eset fennáll, akkor
mindegy, hogy mi lesz 𝐴′(𝑝) értéke)
◦ Ekkor 𝐴$ ⊨ (𝑙!∨ 𝑙" ∨ 𝑝) é𝑠 𝐴$ ⊨ (¬𝑝 ∨ 𝑙% ∨ 𝑙&), azaz 𝐴$ ⊨ (𝑙!∨ 𝑙" ∨ 𝑝) ∧ (¬𝑝 ∨ 𝑙% ∨ 𝑙&), vagyis

◦ (𝑙& ∨ 𝑙" ∨ 𝑝) ∧ (¬𝑝 ∨ 𝑙! ∨ 𝑙) ) kielégíthető


◦ A másik irány és a többi állítás: hasonlóan

10
SAT NP-teljes
SAT NP-teljes

Bizonyítás

SAT ∈ NP
◦ SAT polinom időben verifikálható: megadható olyan 𝑀 nemdet. Turing-gép, ami egy 𝜑 bemenetre
nemdeterminisztikusan előállítja 𝜑 egy 𝐼 interpretációját és polinom időben leellenőrzi, hogy 𝐼 kielégíti-e 𝜑-t

SAT NP-nehéz: megmutatjuk, hogy tetszőleges 𝐿 ∈ NP-re, 𝐿 ≤( SAT


◦ Legyen 𝐿 ∈ NP és 𝑀 = (𝑄, Σ, Γ, 𝛿, 𝑞) , 𝑞* , 𝑞' ) egy 𝐿-et 𝑝 𝑛 polinom időben eldöntő nemdet. Turing-gép
◦ Legyen 𝑤 = 𝑎! … 𝑎' ∈ Σ ∗
◦ Polinom időben megkonstruálunk egy 𝜑, KNF-et úgy, hogy
◦ 𝑤 ∈ 𝐿 (azaz 𝑀 elfogadja 𝑤-t) ⇔ 〈𝜑, 〉 ∈ SAT

11
SAT NP-teljes
Bizonyítás

◦ 𝑀 számítása 𝑤-n leírható egy 𝑇


# ⊔ … ⊔ 𝑞% 𝑎$ … 𝑎# ⊔ … ⊔ #
táblázattal:
# #
◦ 𝑇 első sora 𝑀 kezdőkonfigurációja 𝑤-n
# #
◦ 𝑇 két egymást követő sora 𝑀 két egymást követő

𝒑 𝒏 +𝟏
konfigurációja (a két sor közötti különbség ⋮ ⋮
belefér egy 2×3-as ablakba) Ablak
◦ Egy ilyen ablak legális, ha „kompatibilis” 𝛿-val
◦ 𝑇 elfogadó, ha egyik sora elfogadó
konfiguráció (feltesszük, hogy az ez
# 𝑞" #
utáni sorok megegyeznek ezzel a sorral)
𝟐⋅𝒑 𝒏 +𝟑

12
SAT NP-teljes
Bizonyítás

◦ Legyen 𝜑* a következő KNF


# ⊔ … ⊔ 𝑞% 𝑎$ … 𝑎# ⊔ … ⊔ #
◦ 𝜑* ítéletváltozói 𝑝+,-,. alakúak, melynek # #
jelentése: T 𝑖-ik sorának 𝑗-ik cellájában s # #
szimbólum van, ahol 𝑠 ∈ 𝐶 ≔ 𝑄 ∪ 𝛤 ∪ #

𝒑 𝒏 +𝟏
⋮ ⋮
Ablak
◦ 𝜑* = 𝜑/ ∧ 𝜑.0120 ∧ 𝜑3456 ∧ 𝜑1776'0

# 𝑞" #

𝟐⋅𝒑 𝒏 +𝟑
𝑇(𝑖, 𝑗)-ben van 𝑇(𝑖, 𝑗)-ben nincs
valamilyen betű két különböző
betű

13
SAT NP-teljes
Bizonyítás

◦ 𝜑* = 𝜑/ ∧ 𝜑.0120 ∧ 𝜑3456 ∧ 𝜑1776'0


# ⊔ … ⊔ 𝑞% 𝑎$ … 𝑎# ⊔ … ⊔ #
# #
# #

𝒑 𝒏 +𝟏
⋮ ⋮
Ablak

# 𝑞" #

𝑏! 𝑏" 𝑏# 𝒊 𝟐⋅𝒑 𝒏 +𝟑
𝑏$ 𝑏% 𝑏&
𝒋

14
SAT NP-teljes

Bizonyítás

Belátható, hogy
◦ 𝜑, egy KNF-ben adott formula
◦ 𝜑, polinom időben megkonstruálható
◦ 𝑤 ∈ 𝐿 ⇔ 〈𝜑, 〉 ∈ SAT
◦ Tehát, a fenti konstrukció 𝐿 polinom idejű visszavezetése SAT-ra
◦ Mivel 𝐿 tetszőleges NP-beli nyelv volt kapjuk, hogy SAT NP-teljes

15
További NP-teljes problémák

Michael R. Garey, David S. Johnson


COMPUTERS AND INTRACTABILITY
A Guide to the Theory of NP-Completeness

1
További NP-teljes problémák

Michael R. Garey, David S. Johnson


COMPUTERS AND INTRACTABILITY
A Guide to the Theory of NP-Completeness

2
További NP-teljes problémák

Michael R. Garey, David S. Johnson


COMPUTERS AND INTRACTABILITY
A Guide to the Theory of NP-Completeness

3
További NP-teljes problémák
Legyen adott egy 𝐺 = (𝑉, 𝐸) irányítatlan gráf és 𝐾 ≤ |𝑉|
◦ KLIKK
◦ Kérdés: Van-e 𝐺-ben 𝐾 darab olyan csúcs, melyek teljes gráfot alkotnak?
◦ FÜGGETLEN CSÚCSHALMAZ
◦ Kérdés: Van-e 𝐺-ben 𝐾 darab olyan csúcs, melyek egyikéből sincs a másikba vezető él?
◦ CSÚCSLEFEDÉS
◦ Kérdés: Van-e 𝐺-ben 𝐾 darab olyan csúcs, hogy 𝐺 minden élének egyik végpontja ezen csúcsok
valamelyikére esik?

A fenti problémák mindegyike NP-teljes

Bizonyítás
◦ Mindhárom probléma polinomidőben verifikálható, azaz NP-beli: Megadható olyan 𝑀 nemdet. Turing-gép, ami egy
〈𝐺, 𝐾〉 bemenetre nemdeterminisztikusan felsorolja 𝐺 𝐾 darab csúcsát és polinom időben leellenőrzi, hogy ezek
rendelkeznek-e a kérdéses tulajdonsággal

4
További NP-teljes problémák
Bizonyítás (folyt.)

FÜGGETLEN CSÚCSHALMAZ (FCS) NP-nehéz


◦ Megmutatjuk, hogy 3SAT ≤𝑝 FCS
◦ Legyen 𝜑 = 𝑙11 ∨ 𝑙12 ∨ 𝑙13 ∧ ⋯ ∧ 𝑙𝑘1 ∨ 𝑙𝑘2 ∨ 𝑙𝑘3
◦ Konstruáljuk meg 𝐺𝜑 -t: 𝑙 𝑙𝑘3
13


𝑙11 𝑙12 𝑙𝑘1 𝑙𝑘2

◦ Továbbá, 𝑙𝑖𝑗 és 𝑙𝑚𝑛 között pontosan akkor van él ha ezek egymás komplementerei
◦ Belátható, hogy a konstrukció polinom időben elvégezhető
◦ Megmutatjuk, hogy 𝜑 kielégíthető ⇔ 𝐺𝜑 -ben van 𝑘 csúcsú független csúcshalmaz

5
További NP-teljes problémák
Bizonyítás (folyt.)
𝜑 kielégíthető

van olyan 𝐴 értékadás, hogy minden 𝑖 = 1, … , 𝑘-ra, az 𝑖-ik klózból ki lehet
választani olyan 𝑙𝑖𝑗𝑖 literált, hogy 𝐴 ⊨ {𝑙1𝑗1 , … , 𝑙𝑘𝑗𝑘 }

minden 𝑖 = 1, … , 𝑘-ra, az 𝑖-ik háromszögből ki lehet választani olyan 𝑙𝑖𝑗𝑖
csúcsot, hogy az {𝑙1𝑗1 , … , 𝑙𝑘𝑗𝑘 } csúcshalmaz független csúcshalmaz 𝐺𝜑 -ben

𝐺𝜑 -ben van 𝑘 csúcsú független csúcshalmaz

Alkalmazzuk a fenti konstrukciót a következő formulára


𝜑 = ¬𝑋 ∨ Y ∨ ¬𝑍 ∧ ¬𝑋 ∨ ¬𝑌 ∨ 𝑍 ∧ (𝑋 ∨ ¬𝑌 ∨ ¬𝑍)

6
További NP-teljes problémák
Bizonyítás (folyt.)

KLIKK NP-nehéz
Megmutatjuk, hogy FCS ≤𝑝 KLIKK
◦ Legyen 𝐺 = (𝑉, 𝐸)
◦ Konstruáljuk meg 𝐺 ′ = (𝑉, 𝐸′)-t:
◦ Minden 𝑎, 𝑏 ∈ 𝑉-re, 𝑎, 𝑏 ∈ 𝐸 ′ ⇔ {𝑎, 𝑏} ∉ 𝐸

Belátható, hogy
◦ a konstrukció polinom időben elvégezhető és
◦ tetszőleges 𝐾 ≤ |𝑉|-re,
𝐺-ben van 𝐾 csúcsú független csúcshalmaz ⇔ 𝐺′-ben van 𝐾 csúcsú teljes részgráf

7
További NP-teljes problémák
Bizonyítás (folyt.)

CSÚCSLEFEDÉS (CSL) NP-nehéz


Megmutatjuk, hogy FCS ≤𝑝 CSL
◦ Legyen 𝐺 = (𝑉, 𝐸) és 𝐾 ≤ |𝑉|
◦ Vegyük észre, hogy
𝐺-ben van 𝐾 csúcsú független csúcshalmaz ⇔ 𝐺-ben van V − 𝐾 csúcsú csúcslefedés

A bekarikázott csúcsok független csúcshalmazt alkotnak ⇔


A bekeretezett csúcsok csúcslefedést alkotnak

8
HITTING SET és HALMAZ FEDÉS
HITTING SET (HS)
◦ Adott egy 𝑈 halmaz, 𝑇 = {𝑠1 , … , 𝑠𝑛 }, ahol 𝑠1 , … , 𝑠𝑛 ⊆ 𝑈, és egy 𝐾 szám
◦ Kérdés: Van-e olyan 𝐾 elemű 𝐻 ⊆ 𝑈 halmaz (a hitting set ) ami tartalmaz
minden 𝑇-beli halmazból legalább egy elemet?

HALMAZ FEDÉS (HF)


◦ Adott 𝑈 részhalmazainak egy 𝑠1 , … , 𝑠𝑛 sorozata és egy 𝐾 szám
◦ Kérdés: Van-e ezen halmazok közül 𝐾 darab olyan melyek uniója 𝑈?

HITTING SET és HALMAZ FEDÉS NP-teljesek

Bizonyítás

Mindkét probléma polinom időben verifikálható

9
HITTING SET és HALMAZ FEDÉS
Bizonyítás
HS NP-nehéz
Megmutatjuk, hogy CSL ≤𝑝 HS
◦ Legyen 𝐺 = (𝑉, 𝐸) és 𝐾 ≤ |𝑉|
◦ Konstruáljuk meg 𝑇-t a következőképpen:
◦ Legyen 𝑈 = 𝑉 és minden 𝑢, 𝑣 ∈ 𝐸 élre vegyük fel 𝑇-be az {𝑢, 𝑣} halmazt
◦ Ekkor 𝐺-ben pontosan akkor van 𝐾 elemű csúcslefedés, ha 𝑇-ben van 𝐾 elemű hitting set

𝑣 𝑤
Végezzük el a konstrukciót a köv. gráfon:
𝑢
𝑥
𝑦
A CSL igazából a HS egy speciális esete
Megoldás: 𝑠 𝑡 (azaz a CSL NP-nehézségéből azonnal
◦ 𝑇 = { 𝑢, 𝑣 , 𝑢, 𝑠 , 𝑣, 𝑤 , 𝑠, 𝑣 , 𝑤, 𝑥 , 𝑥, 𝑡 , 𝑠, 𝑦 , 𝑦, 𝑡 , 𝑠, 𝑡 } következik a HS NP-nehézsége)
◦ Egy négy elemű hitting set 𝑇-ben: 𝐻 = {𝑢, 𝑠, 𝑡, 𝑤}

10
HITTING SET és HALMAZ FEDÉS
Bizonyítás
HF NP-nehéz
Megmutatjuk, hogy CSL ≤𝑝 HF
◦ Legyen 𝐺 = (𝑉, 𝐸) és 𝐾 ≤ |𝑉|
◦ Konstruáljuk meg HF bemenetét a következőképpen:
◦ 𝑈 = 𝐸 és minden 𝑢 ∈ 𝑉 csúcsra, legyen 𝑧𝑢 az 𝑢-ból induló 𝐸-beli élek halmaza
◦ Ekkor 𝐺-ben pontosan akkor van 𝐾 elemű csúcslefedés,
ha vannak olyan 𝑢1 , … , 𝑢𝐾 𝑉-beli csúcsok, hogy 𝑧𝑢1 ∪ ⋯ ∪ 𝑧𝑢𝐾 = 𝑈

𝑤
Végezzük el a konstrukciót a köv. gráfon: 𝑣
𝑢
𝑥
𝑦
Megoldás:
◦ 𝑈 = { 𝑢, 𝑣 , 𝑢, 𝑠 , 𝑣, 𝑤 , 𝑠, 𝑣 , 𝑤, 𝑥 , 𝑥, 𝑡 , 𝑠, 𝑦 , 𝑦, 𝑡 , 𝑠, 𝑡 } 𝑠 𝑡
◦ 𝑧𝑢 = 𝑢, 𝑣 , 𝑢, 𝑠 , 𝑧𝑠 = 𝑠, 𝑢 , 𝑠. 𝑣 , 𝑠, 𝑦 , {𝑠, 𝑡} , …
◦ Egy négy elemű halmaz fedés: 𝑈 = 𝑧𝑢 ∪ 𝑧𝑠 ∪ 𝑧𝑤 ∪ 𝑧𝑡

11
HAMILTON ÚT
HAMILTON ÚT HÚ : Adott egy G = (V, E) irányított gráf és 𝑠, 𝑡 ∈ 𝑉
Kérdés: Van-e 𝐺-ben 𝑠-ből 𝑡-be Hamilton út (azaz minden csúcsot pontosan egyszer érintő út)?

HÚ NP-teljes

Bizonyítás

Világos, hogy HÚ polinom időben verifikálható


Megmutatjuk, hogy SAT ≤p HÚ
◦ Legyen 𝜑 = 𝑐1 ∧ ⋯ ∧ 𝑐𝑘 egy tetszőleges KNF-ben adott formula
◦ Tegyük fel, hogy a 𝜑-ben használt változók: 𝑝1 , 𝑝2 , … , 𝑝𝑙

12
HAMILTON ÚT
Bizonyítás

Minden 𝑝𝑖 változóhoz konstruáljuk meg egy alábbi részgráfot:

𝑐1 -nek megfeleltetett 𝑐𝑘 -nak megfeleltetett


csúcspár csúcspár

13
HAMILTON ÚT
Bizonyítás (folyt.)

Legyen 𝐺𝜑 az alábbi gráf:


𝑠
𝑝1 : …
𝑐1


𝑝𝑖 : … 𝑐𝑗



𝑐𝑘
𝑝𝑙 : …

14
HAMILTON ÚT
Bizonyítás (folyt.)

Legyen 𝐺𝜑 az alábbi gráf:


𝑠
𝑝1 : …

… ……
𝑐1
¬𝑝𝑖 szerepel 𝑐𝑛 -ben 𝑐1


𝑐𝑚


𝑋:
𝑝𝑖 : 𝑝𝑖𝑖 : … …
… …


𝑐𝑗


𝑐𝑛

…… …
𝑐𝑛 -nek meg- feleltetett 𝑐𝑘


csúcspár 𝑐𝑘
𝑋𝑝𝑙𝑙:: …

15
HAMILTON ÚT
Bizonyítás (folyt.)

Legyen 𝐺𝜑 az alábbi gráf:


𝑠
𝑝1 : …

… ……
𝑐1
𝑝𝑖 szerepel 𝑐𝑚 -ben 𝑐1


𝑐𝑚


𝑋:
𝑝𝑖 : 𝑝𝑖𝑖 : … …
… …


𝑐𝑗


𝑐𝑛

…… …
𝑐𝑚 -nek meg- 𝑐𝑘


feleltetett csúcspár 𝑐𝑘
𝑋
𝑝𝑙𝑙:: …

16
HAMILTON ÚT
Bizonyítás (folyt.)

G𝜑 polinom időben megkonstruálható


Továbbá, belátható, hogy 𝜑 kielégíthető ⇔ 𝐺𝜑 -ben van Hamilton-út 𝑠-ből 𝑡-be
◦ Megjegyzés:
◦ Minden 𝑠-ből 𝑡-be vezető 𝑢 út meghatározza a 𝜑-beli változók egy 𝐴 értékadását:
◦ 𝑢 egy 𝑝𝑖 -nek megfelelő részgráf tetején pontosan akkor megy balra, ha 𝐴 𝑝𝑖 = 1
◦ Ekkor 𝐴 ⊨ 𝜑 ⇔ 𝑢 Hamilton úttá alakítható

Konstruáljuk meg 𝐺𝜑 -t, ha 𝜑 = 𝑝 ∨ ¬𝑞 ∧ (¬𝑝 ∨ 𝑞)

17
IRÁNYíTATLAN HAMILTON ÚT
IRÁNYíTATLAN HAMILTON ÚT (IHÚ)
◦ Adott: G = (V, E) irányítatlan gráf és 𝑠, 𝑡 ∈ 𝑉
◦ Kérdés: Van-e 𝐺-ben 𝑠-ből 𝑡-be Hamilton-út?

IHÚ NP-teljes

Bizonyítás
Világos, hogy IHÚ polinom időben verifikálható
Megmutatjuk, hogy HÚ ≤p IHÚ
Tetszőleges 𝐺-re legyen 𝐺 ′ = (𝑉′, 𝐸′) a következő gráf
◦ Minden 𝑢 ∈ 𝑉-re, 𝑢1 , 𝑢2 , 𝑢3 ∈ 𝑉′
◦ Minden 𝑢 ∈ 𝑉-re, {𝑢1 , 𝑢2 }, 𝑢2 , 𝑢3 ∈ 𝐸′
◦ Minden 𝑢, 𝑣 ∈ 𝐸-re, 𝑢3 , 𝑣1 ∈ 𝐸′

18
IRÁNYíTATLAN HAMILTON ÚT
Bizonyítás (folyt.) 𝑢
𝐺′ polinom időben megkonstruálható
𝑠 𝑡
Továbbá, belátható, hogy
𝐺-ben van Hamilton-út 𝑠-ből 𝑡-be ⇔ 𝐺′-ben van 𝑣
Hamilton-út 𝑠1 -ből 𝑡3 -ba
◦ Megjegyzés: A csúcsok triplázása biztosítja 𝐺′-ben azt hogy a
𝐺-beli élek az irányításuk elvesztése után is pontosan akkor
alkossanak Hamilton-utat, ha 𝐺-ben azt alkotnak 𝑢1
𝑠1 𝑡1
𝑢2
𝑠2 𝑡2
𝑢3
𝑠3 𝑡3
𝑣1
𝑣2
𝑣3
19
IRÁNYíTATLAN HAMILTON KÖR
IRÁNYíTATLAN HAMILTON KÖR (IHK)
◦ Adott: G = (V, E) irányítatlan gráf
◦ Kérdés: Van-e 𝐺-ben Hamilton-kör?

IHK NP-teljes

Bizonyítás
Világos, hogy IHK polinom időben verifikálható
Megmutatjuk, hogy IHÚ ≤p IHK
Tetszőleges 𝐺-re és 𝑠, 𝑡 ∈ 𝑉 csúcsokra, legyen 𝐺 ′ = (𝑉′, 𝐸′) a következő gráf
◦ 𝑉 ′ = 𝑉 ∪ {𝑢}, ahol 𝑢 egy új, 𝑉-ben nem szereplő csúcs
◦ 𝐸 ′ = 𝐸 ∪ { 𝑠, 𝑢 , {𝑡, 𝑢}}

20
IRÁNYíTATLAN HAMILTON KÖR
Bizonyítás (folyt.)

A konstrukció szemléletesen:

𝑠
𝑢 𝐺′
𝑡

Belátható, hogy 𝐺-ben pontosan akkor van Hamilton-út 𝑠-ből 𝑡-be, ha 𝐺′-ben
van Hamilton-kör

21
UTAZÓÜGYNÖK
UTAZÓÜGYNÖK
◦ Adott: G = (V, E) irányítatlan gráf az éleken pozitív egész súlyokkal és 𝐾 természetes szám
◦ Kérdés: Van-e 𝐺-ben legfeljebb 𝐾 súlyú Hamilton-kör?

UTAZÓÜGYNÖK NP-teljes
Bizonyítás
Világos, hogy UTAZÓÜGYNÖK polinom időben verifikálható
Észrevesszük, hogy az UTAZÓÜGYNÖK probléma bemenetét a következőképpen megszorítva:
◦ 𝐺 minden élén 1 súly szerepel
◦ 𝐾 = |𝑉|
visszakapjuk a HAMILTON KÖR problémát

Tehát HAMILTON KÖR az UTAZÓÜGYNÖK egy speciális esete, azaz ez utóbbi is NP-nehéz

22
Tárbonyolultság

A tárbonyultság vizsgálatához ún. off-line Turing-gépeket használunk:


◦ A bemenetet csak olvassa
◦ A kimenetet csak írja
◦ A felhasznált tárba csak a munkaszalagokon felhasznált cellák száma számít bele

◦ Off-line Turing-gépek használatával szublineáris tárbonyultságnak is van értelme


◦ A tár újra felhasználható

1
Tárbonyolultság
PSPACE-szel jelöljük a
◦ polinom tárral
◦ determinisztikus Turing-géppel eldönthető problémák osztályát

NPSPACE-szel jelöljük a
◦ polinom tárral
◦ nemdeterminisztikus Turing-géppel eldönthető problémák osztályát

Triviálisan: PSPACE ⊆ NPSPACE és NP ⊆ NPSPACE


Később látni fogjuk, hogy PSPACE = NPSPACE és az a sejtés, hogy NP ⊂ PSPACE

2
Savitch tétele
Savitch tétele: Ha 𝑓 𝑛 ≥ log 𝑛 és az 𝐿 probléma eldönthető 𝑓(𝑛) tárbonyolultságú nemdeterminisztikus
Turing-géppel, akkor 𝐿 eldönthető 𝑓 2 (𝑛) tárbonyolultságú (determinisztikus) Turing-géppel

Bizonyítás
Először definiálunk egy speciális elérhetőségi problémát gráfokban:
Legyen 𝐺 = (𝑉, 𝐸) egy irányított gráf, 𝑛 = |𝑉|, 1 ≤ 𝑖 ≤ 𝑛, 𝑢, 𝑣 ∈ 𝑉, és tekintsük a következő
Boole-függvényt: Egy 𝑢-ból 𝑣-be tartó
MAXELÉR 𝐺, 𝑢, 𝑣, 𝑖 = igaz ⇔ 𝐺-ben van legfeljebb 𝑖 hosszú út 𝑢-ból 𝑣-be út hossza az úton
szereplő élek száma
◦ MAXELÉR 𝐺, 𝑢, 𝑣, 𝑖 kiszámítható egy 𝑂(log 2 𝑛) tárigényű 𝑁 (determinisztikus) Turing-géppel:
◦ MAXELÉR 𝐺, 𝑢, 𝑣, 𝑖 = 𝑖𝑔𝑎𝑧 ⇔ ha 𝑖 = 1 és 𝑢 = 𝑣 vagy 𝑢, 𝑣 ∈ 𝐸 VAGY 𝑖 > 1 és
𝑖 𝑖
∃𝑤 ∈ 𝑉: MAXELÉR 𝐺, 𝑢, 𝑤, = 𝑖𝑔𝑎𝑧 ∧ MAXELÉR 𝐺, 𝑤, 𝑣, = 𝑖𝑔𝑎𝑧
2 2
◦ A számításhoz 𝑁-nek legfeljebb log 𝑛 mélységű rekurziót kell alkalmaznia, és a rekurzió
minden szintjén 𝑂(log 𝑛) méretű adatot kell eltárolnia
◦ Tehát 𝑁 tárigénye 𝑂(log 2 𝑛)
3
Savitch tétele
𝑀 konfigurációs gráfja 𝑤-n:
- A csúcsai 𝑀 lehetséges
Bizonyítás (folyt.) konfigurációi 𝑤-n
- A gráfban egy 𝐶1 csúcsból
Ezek után a tétel bizonyítása: pontosan akkor vezet egy 𝐶2
◦ Legyen 𝑀 egy 𝑓(𝑛) tárigényű nemdeterminisztikus Turing-gép és csúcsba él ha 𝐶1 ⇒ 𝐶2
𝑤 az 𝑀 egy 𝑛 hosszú bemenete
◦ Ekkor az 𝑀 konfigurációs gráfjának a mérete 𝑤-n 2𝑑𝑓(𝑛) egy alkalmas 𝑑 konstansra
◦ Jelöljük ezt a gráfot 𝐺𝑀 -mel
◦ 𝐺𝑀 -ben kell keresni egy legfeljebb 2𝑑⋅𝑓 𝑛 hosszú utat a 𝑐𝑘𝑒𝑧𝑑ő kezdő és a 𝑐𝑒𝑙𝑓𝑜𝑔𝑎𝑑ó elfogadó
konfiguráció között
◦ Azaz az 𝑁 Turing-géppel ki kell számolni az MAXELÉR 𝐺𝑀 , 𝑐𝑘𝑒𝑧𝑑ő , 𝑐𝑒𝑙𝑓𝑜𝑔𝑎𝑑ó , 2𝑑⋅𝑓 𝑛 értékét
◦ Láttuk, hogy ez kiszámolható 𝑂 log 2 2𝑑⋅𝑓 𝑛 = 𝑂(𝑓 2 𝑛 ) tárigénnyel

Következmény: PSPACE = NPSPACE

4
PSPACE-teljes problémák
QBF:
Adott egy 𝜑 prenex alakú zárt Boole formula
Kérdés: Igaz-e 𝜑?

∃𝑋∀𝑌∃𝑍( 𝑋 ∨ 𝑌 ∧ 𝑌 ∨ 𝑍 ∧ (¬𝑌 ∨ ¬𝑍)) igaz


∃𝑋∀𝑌( 𝑋 ∨ 𝑌 ∧ (¬𝑋 ∨ ¬𝑌)) nem igaz

QBF PSPACE-teljes

5
QBF PSPACE-teljes
Bizonyítás
Csak azt mutatjuk meg, hogy QBF ∈ PSPACE
◦ Az alábbi 𝐴 algoritmus QBF-et dönti el:
◦ Egy 𝜑 QBF bemenetre
◦ Ha 𝜑-ben nincs kvantor, akkor értékeljük ki: ha 𝜑 𝑖𝑔𝑎𝑧, akkor a kimenetre: 𝑖𝑔𝑒𝑛, egyébként a
kimenetre: 𝑛𝑒𝑚
◦ Ha 𝜑 = ∃𝑋𝜓, akkor rekurzívan hívjuk meg 𝐴-t 𝜓-re 𝑋 = 𝑖𝑔𝑎𝑧 és 𝑋 = ℎ𝑎𝑚𝑖𝑠 értékekkel is; Ha
valamelyik esetben 𝑖𝑔𝑒𝑛 a kimenet, akkor a kimenetre: 𝑖𝑔𝑒𝑛, egyébként a kimenetre: 𝑛𝑒𝑚
◦ Ha 𝜑 = ∀𝑋𝜓, akkor rekurzívan hívjuk meg 𝐴-t 𝜓-re 𝑋 = 𝑖𝑔𝑎𝑧 és 𝑋 = ℎ𝑎𝑚𝑖𝑠 értékekkel is; Ha mindkét
esetben 𝑖𝑔𝑒𝑛 a kimenet, akkor a kimenetre: 𝑖𝑔𝑒𝑛, egyébként a kimenetre: 𝑛𝑒𝑚
◦ 𝐴 tárigénye:
◦ A rekurzió mélysége: változók száma
◦ Egy szinten tárolandó adat: egy változó igazságértékei
◦ Az összes tárigény lineáris 𝜑 változóinak számában

6
FÖLDRAJZI JÁTÉK PSPACE-teljes
7

FÖLDRAJZI JÁTÉK FJ
◦ Adott egy 𝐺 = (𝑉, 𝐸) irányított gráf és 𝑝 ∈ 𝑉
◦ Kérdés: Van-e nyerő stratégiája a kezdő játékosnak az alábbi játékban:
◦ Két játékos felváltva jelöli meg 𝑝-ből kiindulva 𝐺 csúcsait úgy, hogy a következő játékos mindig csak egy a
legutoljára megjelölt csúcsból elérhető még meg nem jelölt csúcsot választhat
◦ Az veszít aki nem tud újabb csúcsot megjelölni

FJ PSPACE-teljes

Bizonyítás

FJ ∈ PSPACE
◦ Hasonlóan látható be, mint QBF esetében

7
FÖLDRAJZI JÁTÉK PSPACE-teljes
8

Bizonyítás (folyt.)

FJ PSPACE-nehéz:
◦ Polinom időben visszavezetjük rá QBF-et
◦ Legyen
◦ 𝜑 = ∃𝑋1 ∀𝑋2 … ∀𝑋𝑘−1 ∃𝑋𝑘 𝜓, ahol 𝜓 = 𝑐1 ∧ ⋯ ∧ 𝑐𝑚
◦ (QBF ilyen alakú bemenetekre megszorítva is PSPACE-teljes)
◦ Konstruáljuk meg 𝐺𝜑 -t a következőképpen
◦ Minden 𝑋𝑖 -hez elkészítünk egy részgráfot:
𝑋𝑖 :

8
FÖLDRAJZI JÁTÉK PSPACE-teljes
9

Bizonyítás (folyt.)

◦ Legyen 𝐺𝜑 a következő gráf: 𝑝


𝑖 ℎ
𝑐1
𝑋1 :
◦ A konstrukció polinom időben 𝑋1


elvégezhető
◦ Belátható, hogy ¬𝑋2 𝑐𝑖 𝜓
𝑋2 :
𝜑 𝑖𝑔𝑎𝑧 ⇔ 𝐺𝜑 -ben van nyerő



stratégiája a kezdő játékosnak
◦ Megjegyzés: A játékosok által 𝑐𝑖 lite-


követett út a „rombuszokban” ráljai 𝑐𝑚
meghatároz egy változóhozzá- 𝑋𝑘 :
rendelést

Konstruáljuk meg 𝐺𝜑 -t ha
𝜑 = ∃𝑋1 ∀𝑋2 ∃𝑋3 ( 𝑋1 ∨ 𝑋2 ∧ 𝑋2 ∨ 𝑋3 ∧ (¬𝑋2 ∨ ¬𝑋3 ))

9
Az L és NL osztályok
10

L: determinisztikus Turing-géppel logaritmikus tárral megoldható problémák osztálya


NL ∶ nemdeterminisztikus Turing-géppel logaritmikus tárral megoldható problémák osztálya

Triviálisan L ⊆ NL , de az a sejtés, hogy a tartalmazás valódi

• Egy 𝐾1 nyelv logaritmikus tárral visszavezethető egy 𝐾2 nyelvre (jele: 𝐾1 ≤𝑙 𝐾2 ), ha a 𝐾1 ≤ 𝐾2


visszavezetés kiszámítható logaritmikus táras determinisztikus (off-line) Turing-géppel
• Egy 𝐾 nyelv NL-nehéz (a log. táras visszavezetésre nézve), ha minden 𝐾 ′ ∈ NL nyelvre, 𝐾 ′ ≤𝑙 𝐾
• Az 𝐾 nyelv NL-teljes, ha 𝐾 NL-nehéz és 𝐾 ∈ NL is teljesül

L zárt a logaritmikus tárral való visszavezetésre


Következmény: Ha egy 𝐾 nyelv NL-teljes és 𝐾 ∈ L, akkor L = NL

10
Az L és NL osztályok
Az ELÉR probléma: Adott 𝐺 = 𝑉, 𝐸 irányított gráf és 𝑠, 𝑡 ∈ 𝑉
Kérdés: Van-e 𝐺-ben út 𝑠-ből 𝑡-be?

ELÉR NL-teljes

Bizonyítás

◦ ELÉR ∈ NL
◦ Legyen 𝑀 egy nemdeterminisztikus Turing-gép ami adott 𝐺 = (𝑉, 𝐸) gráfra és 𝑠, 𝑡 ∈ 𝑉 csúcsokra a következőt teszi:
◦ Ráírja 𝑠-t a második szalagra
◦ Ráírja a 0-t a harmadik szalagra
◦ Amíg a harmadik szalagon 𝑉 -nél kisebb szám van
◦ Legyen 𝑢 a második szalagon lévő csúcs
◦ Nemdeterminisztikusan felír 𝑢 helyére egy 𝑢-ból elérhető 𝑣 csúcsot a második szalagra
◦ Ha 𝑣 = 𝑡, akkor elfogadja a bemenetet, egyébként növeli a harmadik szalagon lévő számot binárisan eggyel
◦ Elutasítja a bemenetet
◦ Belátható, hogy 𝑀 𝑂(𝑙𝑜𝑔 |𝑉|) tárral eldönti, hogy van-e út 𝑠-ből 𝑡-be

11
Az L és NL osztályok
12

Bizonyítás (folyt.)
ELÉR NL-nehéz
◦ Legyen 𝐾 egy NL-beli nyelv; megmutatjuk, hogy 𝐾 ≤𝑙 ELÉR
◦ Legyen 𝑀 egy 𝐾-t eldöntő 𝑂(𝑙𝑜𝑔 𝑛) táras nemdeterminisztikus Turing-gép és legyen 𝑢 az 𝑀 egy 𝑛 hosszú bemenete
◦ Akkor 𝑀 egy konfigurációja 𝑐 ⋅ 𝑙𝑜𝑔 𝑛 méretű valamely alkalmas 𝑐 konstansra
◦ Legyen 𝐺 az 𝑀 konfigurációs gráfja az 𝑢-n
◦ Legyen 𝑠 és 𝑡 rendre az 𝑀 kezdő- és elfogadó konfigurációja az 𝑢-n
◦ Ekkor 𝑢 ∈ 𝐿 𝑀 ⇔ 𝐺-ben van út 𝑠-ből 𝑡-be, tehát 𝐺 megkonstruálása 𝐾 visszavezetése ELÉR-re
◦ Ez a visszavezetés logaritmikus tárral kiszámítható
◦ Lexikografikusan soroljuk fel az összes 𝑐 ⋅ 𝑙𝑜𝑔 𝑛 hosszú szót
◦ teszteljük, hogy ez legális konfigurációja-e 𝑀-nek, ha igen, akkor a kimenetre írjuk, mint a 𝐺 egy csúcsát
◦ Az élek (konfiguráció párok) hasonlóképpen felsorolhatók, tesztelhetők és a kimenetre írhatók

12
Az L és NL osztályok
13
Korábban kimondtuk, hogy ha egy
NL-teljes problémáról kiderül,
Következmények: hogy L-beli, akkor L = NL
◦ Ha ELÉR ∈ L, akkor L = NL
◦ ELÉR eldönthető 𝑂 log 𝑛 tárral determinisztikusan ELÉR ∈ NL azt jelenti, hogy
ELÉR eldönthető 𝑂(log 𝑛) tárral
◦ NL ⊆ P
nemdeterminisztikusan;
alkalmazzuk Savitch tételét!
Bizonyítás (vázlat)

◦ Legyen 𝐾 ∈ NL és 𝑀 egy 𝐾-t felismerő logaritmikus táras Turing-gép


◦ Legyen 𝑤 az 𝑀 egy 𝑛-hosszú bemenete
◦ 𝑀 konfigurációs gráfja a 𝑤-n polinom méretű, polinom időben megkonstruálható, és
◦ ebben a gráfban kell keresni utat a kezdőkonfigurációból az elfogadóba (feltehetjük, hogy egy
elfogadó konfiguráció van)
◦ Ez polinom idő alatt elvégezhető (pl. Dijkstra algoritmusa)

13
Az L és NL osztályok
14

Immerman-Szelepcsényi tétel: NL = coNL A tanult (és egyéb) osztályok feltehető viszonyai

R
2EXP

L ⊆ NL = coNL ⊆ P ⊆ NP ⊆ PSPACE ⊆ EXPTIME EXPSPACE

◦ EXPTIME az exponenciális időben megoldható problémák


osztálya
EXPTIME
Ismert, hogy NL ⊂ PSPACE és P ⊂ EXPTIME PSPACE
= NPSPACE
Az a sejtés, hogy minden tartalmazás valódi
P
NL
= coNL
L

You might also like