Professional Documents
Culture Documents
Szamtud Ea
Szamtud Ea
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?
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:
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
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 )
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
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}
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
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:
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
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ő
→∙ ∙∙ ∙ ⊙ →∙ ∙ ∙
𝑀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
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:
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
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
𝑥 =𝑖 𝑦 =𝑗−𝑖 𝑧 =𝑛−𝑗
𝑞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
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?)
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
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: 𝑆 → 𝑆𝑆 𝑆 𝜀
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)
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
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
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
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
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 ⋮
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
◦ BEFEJEZHETO-SZIMBOLUMOK(𝐺) 𝑆 → 𝐴𝐷 | 𝐶 𝑩 = {𝑎, 𝑏, 𝑐}
𝑩 = 𝑇; 𝐴 → 𝑎𝐴 | 𝑎 𝑩 = {𝑎, 𝑏, 𝑐, 𝐶, 𝐴}
while 𝐵 változik do D → 𝑏𝐷 𝑩 = {𝑎, 𝑏, 𝑐, 𝐶, 𝐴, 𝑆}
for minden 𝐴 → 𝑋1 … 𝑋𝑘 𝑅-beli szabályra do
𝐶→𝑐
if {𝑋1 , … , 𝑋𝑘 } ⊆ 𝑩 then 𝑩 = 𝑩 ∪ {𝐴};
return 𝑩
3
Felesleges szimbólumok elhagyása
Bizonyítás (folyt.)
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)
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
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
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.)
11
Chomsky normálforma
𝑆 → 𝐴𝑆𝐴 | 𝑎𝐵
𝐴→𝐵|𝑆 𝐷 = {𝐴, 𝐵}
𝐵 →𝑏|𝜀
𝑆 → 𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 | 𝑎𝐵 | 𝑎
𝐴 → 𝑏 |𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 | 𝑎𝐵 | 𝑎 Minden szimbólum hasznos
𝐵→𝑏
12
Chomsky normálforma
𝑆 → 𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 |𝑋𝑎 𝐵 | 𝑎
𝐴 → 𝑏 |𝐴𝑆𝐴 |𝐴𝑆 | 𝑆𝐴 |𝑋𝑎 𝐵 |𝑎
𝑋𝑎 → 𝑎
𝐵 → 𝑏
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
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
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
3
Veremautomaták – Példa
Egy veremautomata a {0𝑛 1𝑛 ∣ 𝑛 ≥ 0} nyelv felismerésére, $ a verem alja
5
Veremautomaták kiterjesztése
6
Veremautomaták
A környezetfüggetlen nyelvek osztálya megegyezik a veremautomatával felismerhető
nyelvek osztályával
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}
𝑣: 𝑥 𝑦′ 𝑧
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)
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 𝜑?
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
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
◦ Γ a szalagszimbólumok ábécéje
(Σ ⊂ Γ, ⊔∈ Γ − Σ, ⊔: üres szimbólum)
◦ 𝛿: 𝑄 − 𝑞𝑖 , 𝑞𝑛 × Γ → 𝑄 × Γ × 𝐿, 𝑅 az átmeneti függvény
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 : … ⊔ 𝑎 … c a … 𝑐 ⊔ … ⇒ 𝐶2 : … ⊔ 𝑎 … c b … 𝑐 ⊔ …
𝑞 𝑝
7
A Turing-gép
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
∃𝑛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:
𝛿: 𝑄 − 𝑞𝑖 , 𝑞𝑛 × Γ 𝑘 → 𝑄 × Γ 𝑘 × 𝐿, 𝑅 𝑘
12
Többszalagos Turing-gép
Feladat:
• Adjunk kétszalagos Turing-gépet, ami a korábban látott
𝐿 = {𝑢𝑢−1 ∣ 𝑢 ∈ 𝑎, 𝑏 ∗ }
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 … 𝑎𝑛 # ෝ #
ෝ
⊔
⊔ ෝ #
ෝ
⊔
⊔ …
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
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)
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
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:
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
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, 𝐿
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, 𝐿
6
Eldönthetetlen problémák
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 𝑀 𝑞𝑛
𝑞𝑛
◦ 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
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 𝑞𝑖 𝑞𝑛
𝑀′
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
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
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?
1
További eldönthetetlen problémák
𝑁𝐸!" ∈ 𝑅𝐸 − 𝑅, azaz 𝑁𝐸!" Turing-felismerhető, de nem eldönthető
Bizonyítás
𝐸𝑄!" ∉ 𝑅𝐸
Bizonyítás
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
(& ()
5
CF nyelvekkel kapcsolatos eldönthetetlen
problémák
𝐸𝐶𝐹 probléma: Adott egy 𝐺 CF nyelvtan, döntsük el, hogy 𝐺 egyértelmű-e
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
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 𝐿 𝐺; ∩ 𝐿 𝐺< ≠ ∅
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ő
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 𝑔.
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 𝑦 = 𝑂( 𝑥 ! )}
Olyanra, ami feltehetőleg nem elég erős, hogy minden NP-beli problémát megoldjon
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 𝐿#
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
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
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:
9
3SAT NP-teljes
Bizonyítás (folyt.)
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
11
SAT NP-teljes
Bizonyítás
𝒑 𝒏 +𝟏
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
𝒑 𝒏 +𝟏
⋮ ⋮
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
𝒑 𝒏 +𝟏
⋮ ⋮
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
1
További NP-teljes problémák
2
További NP-teljes problémák
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?
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.)
…
𝑙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
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.)
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?
Bizonyítás
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
12
HAMILTON ÚT
Bizonyítás
13
HAMILTON ÚT
Bizonyítás (folyt.)
…
𝑝𝑖 : … 𝑐𝑗
…
…
𝑐𝑘
𝑝𝑙 : …
14
HAMILTON ÚT
Bizonyítás (folyt.)
… ……
𝑐1
¬𝑝𝑖 szerepel 𝑐𝑛 -ben 𝑐1
…
𝑐𝑚
…
𝑋:
𝑝𝑖 : 𝑝𝑖𝑖 : … …
… …
…
𝑐𝑗
…
𝑐𝑛
…… …
𝑐𝑛 -nek meg- feleltetett 𝑐𝑘
…
csúcspár 𝑐𝑘
𝑋𝑝𝑙𝑙:: …
…
15
HAMILTON ÚT
Bizonyítás (folyt.)
… ……
𝑐1
𝑝𝑖 szerepel 𝑐𝑚 -ben 𝑐1
…
𝑐𝑚
…
𝑋:
𝑝𝑖 : 𝑝𝑖𝑖 : … …
… …
…
𝑐𝑗
…
𝑐𝑛
…… …
𝑐𝑚 -nek meg- 𝑐𝑘
…
feleltetett csúcspár 𝑐𝑘
𝑋
𝑝𝑙𝑙:: …
…
16
HAMILTON ÚT
Bizonyítás (folyt.)
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
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
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
4
PSPACE-teljes problémák
QBF:
Adott egy 𝜑 prenex alakú zárt Boole formula
Kérdés: Igaz-e 𝜑?
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.)
…
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
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)
13
Az L és NL osztályok
14
R
2EXP