Top Banner
A számítógépes nyelvészet elmélete és gyakorlata Automaták
33

A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Jan 09, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

A számítógépes nyelvészet elmélete és gyakorlata

Automaták

Page 2: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Nyelvek és automaták

A nyelvek automatákkal is jellemezhetőek

Automaták hierarchiája – Chomsky-féle hierarchia

Automata: új eszköz a nyelvek komplexitásának tanulmányozására, a természetes nyelvek jellemzésére

Page 3: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Automata

idealizált, absztrakt számítógép

matematikai fogalom

azzal a módszerrel írható le, ahogyan a számítást végzi

input: erre reagál

output: ezt produkálja

a kettő viszonyát az automata belső felépítése határozza meg

Page 4: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Automata

egy automata mindig valamilyen állapotban van

állapot: az automata azon jellemzője, ami a számítás során megváltozik

véges állapothalmaz: minden helyzetben pontosan egy állapot érvényes

Page 5: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Nyelvek és automaták

automata: elfogadó berendezés

eszköz, amely adott inputot számítás után elfogad vagy elutasít

input: jelsorozat adott ábécé felett

automata: eldönti, adott nyelvhez tartozik-e az input

generáló eszköznek is tekinthető

Page 6: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

reguláris nyelveket elfogadó automaták osztálya

- vezérlőmű, véges sok különböző állapottal (a számítás során mindig vmilyen állapotban van)

- bemenő szalag, mely cellákra van osztva, erre írjuk rá

az inputot

- olvasó fej: az inputot balról jobbra, cellánként beolvassa

Page 7: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

Page 8: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

M ( K, , , q0, F)

– K az automata állapotainak véges halmaza,

– az elemzendő nyelv ábécéje,

– az automata mozgási szabályainak véges halmaza, az állapotról állapotra változáshoz

– q0 a kezdőállapot, q0 ∈ K

– F az elfogadó állapotok halmaza, F K

Page 9: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

- bekapcsoláskor a vezérlőmű egy előre

rögzített belső állapotba, a kezdőállapotba kerül, az olvasó fej a bemenő szalag balról vett első cellájára áll; - az automata beolvassa az első cella tartalmát, majd a pillanatnyi belső állapota és

a beolvasott jel alapján a szabályok által vezérelve átkerül a következő állapotba, az olvasó fej egy cellával jobbra lép

Page 10: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

A mozgási szabályok adják meg, hogy egy adott állapotban egy adott karakter beolvasásának hatására milyen új állapotot vesz fel az automata. A

δ( Q, a ) = R

mozgási szabály akkor alkalmazható, ha az automata az Q állapotban van, és az olvasott karakter a. Az új állapot R lesz (ez Q is lehet).

Page 11: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

determinisztikus automata:

mindig csak egy utasítás hajtható végre, működése teljesen meghatározott

elfogadás:

- az inputot végig kell olvasnia

- az utolsó karakter beolvasása után elfogadó

állapotba kell kerülnie

Page 12: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

az automata leáll, ha az utolsó jel beolvasása

után:

- az utolsó állapot elfogadó állapot, akkor az

automata elfogadta a szót;

- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a szót.

ha bármely jel beolvasása után nincs értelmezve a következő állapot, akkor az automata elutasította a szót

Page 13: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa

K={S, A, B, C } Ábrázolás:

={a, b, c}

S

F = {C }

= { (S, a) = A (A, a) = A (A, b) = B (B, b) = B (B, c) = C (C, c) = C}

Page 14: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa

Elfogadja-e az alábbi jelsorozatokat?

01011

0011

11001101

01010111111

Milyen nyelvet fogad el?

Page 15: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Véges automaták

Az M automata L(M) nyelve azon jelsorozatok

összessége, amelyeket az automata elfogad.

A véges automaták által elfogadott nyelvek

éppen a 3-as nyelvosztály elemei, tehát a véges automaták pontosan azokat a nyelveket fogadják el, amelyeket a reguláris

nyelvtanok generálnak.

(NB: a determinisztikus és a nem-determinisztikus véges automaták osztálya

ekvivalens)

Page 16: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Alkalmazási területek

szótárak tárolása

(NB: ez egy determinisztikus minimál- automata)

hozzáférés szótárakhoz

szótárak módosítása

Page 17: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Veremautomaták

nemdeterminisztikus veremautomaták: környezetfüggetlen nyelvek osztályát fogadják el

véges automata kiegészítve egy memóriaszalaggal:

olvas, ír, töröl róla

elnevezés: verem

működése: LIFO – Last In First Out

LIFO elv illusztrációja: Tower of Hanoi

http://www.mathsisfun.com/games/towerofhanoi.html

Page 18: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Veremautomaták

Page 19: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Veremautomaták

Veremautomata működése:

- a bemenő szalagon szerepel az input, a vezérlőmű ezt olvassa be balról-jobbra

- a véges memóriájú vezérlőmű minden pillanatban meghatározott állapotban van, az állapotok száma véges

- a vermet, mint szalagot alkalmazzuk, melyre ráírjuk, illetve melyről beolvassuk a verem ábécé jeleit

- a verem felső szimbólumát olvashatja, eltávolíthatja, hozzáadhat, változatlanul hagyhatja

- bekapcsoláskor: üres verem, kezdőállapot, olvasófej input bal szélén

- elfogadás: az inputot végig kell olvasni, elfogadó állapotba kell kerülni, a veremnek üresnek kell lennie

Page 20: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Veremautomaták

P ( K, , Γ, , q0, F )

– K az automata állapotainak véges halmaza

– az elemzendő nyelv ábécéje

– Γ a verem ábécéje, vagyis azon szimbólumok véges halmaza,

amelyek a veremben szerepelhetnek

– a mozgási szabályok véges halmaza

– q0 az automata kezdőállapota

– F az elfogadó állapotok halmaza

Page 21: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Veremautomaták

Az utasítások:

δ( Q, a, A ) = (R, )

mozgási szabály akkor alkalmazható, ha az automata a Q állapotban van, az olvasott karakter a, a verem tetején A szerepel. Az új állapot R lesz és A-t -val helyettesíti.

Page 22: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa: determinisztikus veremautomata

Page 23: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa: nemdeterminisztikus veremautomata

K={q0, q1 } ={a, b} ={A, B} q0

F={q0, q1 }

Page 24: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Turing-gép

0. típusú nyelvosztály elfogadása

1936, bármilyen műveletet képes végrehajtani, ami a számítás fogalmába belefér

Turing-gép felépítése:

- véges memóriájú vezérlőmű, mindig adott állapotban van a véges sok lehetséges belső állapota közül

- véges hosszúságú szalag, mely mindkét irányban tetszés szerint meghosszabbítható; a szalag mezőkre osztott, egy-egy cellába egy-egy szimbólum kerül

Page 25: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Turing-gép

Page 26: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Turing-gép

T ( K, , Γ, {L, R}, , q0, )

Γ: szalagábécé, tartalmazza a blank jelet

és -t

{L, R}: a mozgás irányát adja meg

NB: F hiányzik

Page 27: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Turing-gép

Az utasítások:

δ( Q, a ) = (R, X)

mozgási szabály akkor alkalmazható, ha az

automata a Q állapotban van, az olvasott karakter a. Az automata R-be kerül (ez azonos lehet Q-val is).

- ha X az input ábécé eleme, a-t ezzel felülírja;

- ha X {L,R} eleme, a szimbólum marad, és

jobbra/balra lép egyet.

Page 28: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Turing-gép

determinisztikus:

minden állapotra és tetszőleges input ábécé-beli szimbólumra legfeljebb egy mozgás lehetséges

ha nincs alkalmazható utasítás, megáll

blank jelet olvashatja, írhatja is, emiatt az eredeti inputon túlterjedhet a számítás, a végtelenségig is számolhat

Page 29: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Turing-gép

elfogadás: ha a Turing-gép véges sok lépés

után megáll

ha nem áll meg, akkor elutasítja

megállási probléma:

elutasítás – végtelen ciklus

DE: nem tudhatjuk, meg fog-e állni

emiatt: elfogadó állapot kijelölése, de ez nem

mindig lehetséges

Page 30: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa

K={q0, q1 } ={a, b} ={a, b, #} q0

:

Page 31: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa

Page 32: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Példa

K={q0, q1 } ={a, b} ={a, b, #} q0

:

Page 33: A számítógépes nyelvészet elmélete és gyakorlata …lingua.arts.unideb.hu/doc/sznyelv_5ea.pdf- az utolsó állapot nem elfogadó állapot, akkor az automata elutasította a

Ajánlott irodalom:

Alberti Gábor: Matematika a természetes nyelvek leírásában. Budapest: Tinta Könyvkiadó, 2006.

Bach Iván: Formális nyelvek. Budapest: Typotext, 2001.

Partee, B. H., A. ter Meulen & R. Wall: Mathematical Methods in Linguistics. Dordrecht: Kluwer, 1990.