teorija algoritama, automata [2pt] i jezika [2pt] · 2016. 6. 9. · uveo ga je americˇki...

17
TEORIJA ALGORITAMA, AUTOMATA I JEZIKA Uvod Jelena Ignjatovi´ c 1 Uvod Logika i teorija skupova

Upload: others

Post on 02-Feb-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

  • TEORIJA ALGORITAMA, AUTOMATA

    I JEZIKA

    Uvod

    Jelena Ignjatović

    1 Uvod Logika i teorija skupova

  • TEORIJA ALGORITAMA, AUTOMATA I JEZIKA

    LITERATURA:

    M. Ćirić, T. Petković, S. Bogrdanović, Jezici iautomati, Prosveta Niš, 2000.

    M. Ćirić, J. Ignjatović, Teorija algoritama,automata i jezika-zbirka zadataka,Prirodno-matematički fakultet Niš, 2012.

    Dexter C. Kozen, Automata and Computability,Springer, 1997.

    J. Ignjatović, M. Ćirić, Automati i fomalni jezici,Univerzitet u Nišu, to be published.

    2 Uvod Logika i teorija skupova

  • TEORIJA ALGORITAMA, AUTOMATA I JEZIKA

    Teorijsko raunarstvo

    Danas – u prvi plan se ističe razvoj tehnologija na kojima se baziraju računari.

    To jedna vrsta pojednostavljivanja, pa i zamagljivanja, stvari kojoj je sklona propaganda industrijeračunara i računarskih programa potpomognuta popularnim medijima.

    Teorijski rezultati su ono orude koje inspiriše i usmerava rad u računarstvu dajući sasvim noveelegantnije postupke.

    Poseban značaj teorijskog računarstva – verifkacija praktičnih rešenja.

    Do čuvenih grešaka u Intelovim procesorima verovatno ne bi došlo da su primenjeni postupcizasnovani na teorijskim dostignićima o kojima će biti reči u ovom kursu.

    Takvih i sličnih primera ima na pretek, tako da je sasvim izvesno da će u budućnosti ovoj oblastibiti posvećena pažnja i ona će predstavljati glavni oslonac računarskih nauka i sa praktične i sateorijske strane.

    Izračunljivost i odlučivost

    Rešavanje problema razvojem algoritama i pisanjem programa je jedan od osnovnih zadataka uračunarstvu.

    Formalni modeli izračunavanja odreduju granice mogućnosti mehaničkog izračunavanja kojerazdvajaju klase problema na one na za koje postoji mogućnost programskog rešavanja i one zakoje to nije slučaj.

    3 Uvod Logika i teorija skupova

  • Intuitivni pojam algoritma

    Algoritam

    Pojam algoritama – osnovni matematički koncept i kao takav se ne defniše.

    Sledeći opšti uslovi se, prihvataju kao kriterijumi za nazivanje nekog postupka algoritmom (efek-tivnom procedurom):

    postupak se opisuje konačnim nizom jednostavnih naredbi,

    postoji idealna mašina (računar) koja izvršava te naredbe prema unapred utvrdenimpravilima,

    ta mašina započinje izračunavanje u nekom inicijalnom stanju; primenjena na ulaznepodatke mašina izvršava naredbe u diskretnim koracima u kojima menja svoja stanja,

    izvršavanje svake naredbe se izvodi u konačnom vremenu pri čemu se koristi konačanmemorijski prostor,

    izvršavanje naredbe je determinističko: iz jednog stanja izvršavanjem iste naredbe mašinauvek prelazi u isto stanje i

    prelaskom u završno stanje mašina prestaje sa izračunavanjem.

    4 Uvod Logika i teorija skupova

  • Intuitivni pojam algoritma

    Komentar

    Osobina determinisanosti izvršavanja naredbi se drugačije može formulisati kao mogućnost pon-avljanja izvršavanja algoritama. Ako ga prihvatimo, postupci koji uključuju slučajnost ne spadajuu algoritme. U pojedinim slučajevima mi ćemo odbaciti ovaj uslov i razmatrati i nedeterminističkealgoritme.

    Algoritam predstavlja opis funkcije koja ulazne podatke preslikava u odgovor. Funkcije za kojepostoje algoritmi zato nazivamo algoritamskim funkcijama (efektivnim funkcijama, izračunljivimfunkcijama).

    Algoritam

    Poznat je veliki broj algoritama. Za probleme za koje poznajemo postupke rešavanja lakoutvrdujemo da jesu algoritamski rešivi. Kako se napreduje u razvoju matematike, nailazi sena probleme za koje nismo u stanju da damo rešenje.

    Da li je to posledica naše nesposobnosti ili je reč o principijelnoj nemogućnosti?

    Da bi se na to pitanje odgovorilo potrebno je formalno precizirati pojmove algoritma i izračunljivihfunkcija.

    5 Uvod Logika i teorija skupova

  • ALGORITAM

    Algoritam

    Algoritam – efektivni postupak za rešavanje problema, jedan od najznačajnijih matematičkihpojmova, koji je u matematici prisutan još od samog njenog nastanka.

    Reč algoritam potiče od latinskog zapisa arapskog matematičara al-Horezmija Algorithmi, prekočijih dela je do Evrope stigao indijski desetični pozicioni sistem i računanje u ovom sistemu.

    Prvobitno se ovaj naziv koristio upravo za označavanje postupaka za računanje u tom sistemu, akasnije je dobio današnji opštiji smisao.

    Pojam algoritma

    ”Al-džebr” je kod el-Horezmija operacija prenošenja članova sa jedne na drugu stranu jednakosti,uz promenu znaka, odakle se latinskim zapisom došlo do naziva algebra.

    Već vekovima se pojam algoritma u matematici koristi u svom neformalnom, intuitivnom smislu.

    Mnogi matematičari smatraju da ovaj pojam spada u grupu primitivnih matematičkih pojmova ida ne postoje jednostavniji, intuitivno jasniji matematički pojmovi preko kojih bi se pojam algo-ritma definisao.

    Prvi pokušaji preciznog matematičkog definisanja pojma algoritma vezani su za problemodlučivosti matematičkih teorija, koji je početkom dvadesetog veka bio veoma aktuelan umatematičkoj logici i filozofiji matematike.

    6 Uvod Logika i teorija skupova

  • ALGORITAM

    ISTORIJSKI PREGLED

    Prve formalizacije pojma algoritma javljaju se tridesetih godina ovog veka, kroz različite tipovialgoritama:

    rekurzivne funkcije (Kleene [1936,1943]);

    Postovi sistemi-vrsta formalnih sistema u kojima se opisuju moguće transformacije(pravila izvodenja) jednih u druge reči na unapred fiksiranom alfabetu (Post [1936,1943]);

    Churchov λ-račun-jednostavan formalni jezik za koji se defniše pojam redukcije kojipredstavlja izračunavanje (Church [1941]);

    Turingove mašine (A.Turing [1936]);

    normalni algoritmi Markova (Markov [1954]);

    neograničene registarske mašine (Shepherdson and Sturgis [1963]);

    Komentar

    Navedeni tipovi algoritama prvobitno su razmatrani u vezi sa izračunljivošću aritmetičkihfunkcija, dok su kasnije počeli da se razmatraju i u vezi izračunljivosti funkcija na rečima(stringovima).

    7 Uvod Logika i teorija skupova

  • Teorija izračunljivosti

    Teorija izračunljivosti

    Tako je razvijena teorija izračunljivosti, disciplina računarskih nauka koja se bavi

    Modelima i oblicima izračunavanja, posebno izračunavanjima uz pomoć apstraktnihmatematičkih mašina,

    Analizom algoritama i problemima kompleksnosti algoritama,

    Formalnim gramatikama i formalnim jezicima,

    i drugim pitanjima.

    Hijararhija Chomsky

    Koncept generativne gramatike prvi put se pojavio 1950-ih godina.

    Uveo ga je američki lingvist, filozof i humanista Noam Čomski (Noam Chomsky, 1928- ), koji jena osnovu formalnih svojstava gramatika koje ih generišu klasifikovao formalne jezike u sledećeklase:

    regularni jezici;

    konteksno-nezavisni jezici;

    konteksno-zavisni jezici;

    jezici generisani proizvoljnim gramatikama.

    8 Uvod Logika i teorija skupova

  • Konačni automati

    Regularni jezici i konačni automati

    Regularni jezici čine najužu od navedenih klasa formalnih jezika.

    Oni se mogu predstaviti najjednostavnijom vrstom apstraktnih mašina – konačnim automatima.

    Konačni automati su se prvi put pojavili u radu McCullocha i Pittsa [1943], da bi se 1950-ih godinaintenzivno izučavali od strane niza autora: D. A. Huffman [1954], G. H. Mealy [1955], E. F. Moore[1956], M. O. Rabin and D. Scott [1959] i drugi.

    Konačni automati su najpre uvedeni da bi se njima modelirale funkcije mozga, ali su se kasnijepokazali veoma efikasnim i u raznim drugim primenama.

    Konačni automati predstavljaju koristan model za veoma važne tipove hardvera i softvera, kaošto su:

    Softver za dizajniranje i proveru ponašanja digitalnih kola;

    Leksički analizatori kod kompajlera, tj. delovi kompajlera koji vrše analizu i podeluulaznog teksta na logičke jedinice;

    Softver za skeniranje velikih porcija teksta, kao što su kolekcije Web strana, radipronalaženja pojavljivanja izvesnih reči, fraza, i drugih šablona;

    Softver za verifikovanje sistema svih tipova koji imaju konačan broj različitih stanja, kaošto su komunikacioni protokoli ili protokoli za bezbednu razmenu informacija, itd.

    9 Uvod Logika i teorija skupova

  • Automati sa izlazom

    Rad automata

    – sastoji se iz niza uzastopnih prelaza iz stanja u stanje, pod dejstvom niza uzastopnih ulaznihsignala.

    Šta je rezultat tog rada?

    Automati su mašine koje služe za procesiranje informacija.

    Informacije se obično predstavljaju nizovima simbola (rečima) nad nekim alfabetom, i tipičnamašina za procesiranje informacija to radi tako što niz ulaznih simbola (ulaznu reč) transformišeu niz izlaznih signala (izlaznu reč).

    Takav vid procesiranja informacija vrše takozvani automati sa izlazom.

    Automati sa izlazom su apstraktne matematičke mašine koje rade u diskretnoj vremenskoj skali,i koje tokom tog rada, pod uticajem ulaznih signala, menjaju svoja unutrašnja stanja i emitujuodgovarajuće izlazne signale.

    Kakve se transformacije mogu realizovati pomoću automata sa izlazom?

    Odgovor na ovo pitanje dali su, nezavisno jedan od drugog, Raney [1958] i Glushkov [1961],koji su pokazali da su to transformacije ulaznih u izlazne reči zadate takozvanim automatovnimpreslikavanjima.

    Pri tome je Glushkov dokazao da za svaku takvu transformaciju postoji automat sa minimalnimbrojem stanja koji je realizuje.

    10 Uvod Logika i teorija skupova

  • Automati bez izlaza

    Automati bez izlaza

    Automati bez izlaza se mogu zamisliti kao automati koji imaju izvesnu vrstu izlaza, koja serealizuje pomoću samo dva izlazna signala: ”da” i ”ne”.

    Ako ona dovodi do emitovanja signala ”da”, onda kažemo da automat prepoznaje ili da prihvatatu reč.

    U suprotnom, ukoliko dovodi do emitovanja signala ”ne”, onda kažemo da automat ne prepoznajeili da odbacuje tu reč.

    Videćemo da se ovi izlazi mogu predstaviti pomoću posebne vrste stanja, koje nazivamo završnimstanjima automata.

    Automati kao algebarske strukture

    Jedna od najznačajnijih karakteristika automata bez izlaza je to što se mogu razmatrati kao alge-barske strukture.

    Ako na nizove ulaznih simbola automata gledamo kao elemente slobodnog monoida generisanogalfabetom ulaznih simbola, tada se automat može posmatrati kao monoid transformacija skupastanja automata.

    11 Uvod Logika i teorija skupova

  • Automati kao algebarske strukture

    Automati kao algebarske strukture

    Takode je prirodno tretirati automate bez izlaza i kao algebre u kojima se svaki ulazni simbolrealizuje kao unarna operacija.

    Taj pristup, koji su Büchi i Wright dali još pedesetih godina, povezao je automate sa univerzalnomalgebrom i stvorio uslove da se u njihovom izučavanju koriste brojni koncepti, ideje i metodiuniverzalne algebre.

    Postoji obostrano jednoznačna veza izmedu povezanih inicijalnih automata sa ulaznim alfabetomX i desnih kongruencija na slobodnom monoidu X∗, koju su prvi uočili Nerode [1958] i Myhill[1957], a razmatraćemo i osnovne osobine polugrupa prelaza automata.

    Raspoznavanje jezika automatima

    Glavni zadatak automata bez izlaza svakako je raspoznavanje jezika, a problem opisivanja jezikakoji se mogu raspoznati konačnim automatima, takozvanih raspoznatljivih jezika, jedan je odnajvažnijih u Teoriji automata.

    Kada se bavimo dizajniranjem automata radi njihovih praktičnih primena, srećemo se sa dvaosnovna problema:

    Da li za dati jezik postoji konačan automat koji ga raspoznaje?

    Kako konstruisati automat sa što je moguće manje stanja koji raspoznaje dati jezik?

    12 Uvod Logika i teorija skupova

  • Regularni izrazi

    Regularni izrazi

    Još jedan način predstavljanja regularnih jezika, pored konačnih automata je njihovo predstavljanjeregularnim izrazima.

    Regularni izrazi kao i dokaz njihove ekvivalentnosti sa konačnim automatima prvi put se sreću uradu Kleenea [1956].

    Ipak, regularni izrazi daju nesto sto automati ne mogu: obavestenje o načinu procesiranja reči kojetreba da budu prihvaćene.

    Zato se regularni izrazi koriste kao ulazni jezici mnogih sistema koji vrše procesiranje informacija.

    Primene regularnih izraza

    Komande pretraživanja kao što je UNIX grep ili ekvivalentne komande kod Web browseraili sistema za formatiranje teksta (WinEdt). Ovi sistemi koriste regularne izraze za opisšablona koji treba da bude pronaden u fajlu.

    Leksički-analizator (Lex ili Flex) je deo kompajlera koji razbija izvorni program na logičkejedinice (tzv. tokene).

    Regularni izrazi opisuju formu tokena koju prihvata leksički-analizator kompajlera.

    13 Uvod Logika i teorija skupova

  • Konteksno-nezavisni jezici

    Raspoznatljivost regularnih jezika

    U delu ovog kursa koji se bavi regularnim jezicima govorićemo o njihovom raspoznavanjukonačnim determinističkim i nedeterminističkim automatima, kao i o njihovom predstavljanjuregularnim izrazima.

    Dokazaćemo da za svaki regularan jezik postoji minimalan konačan deterministički automat kojiga raspoznaje i koji je jedinstven do na izomorfizam.

    U slučaju kada je regularan jezik zadat konačnim determinističkim automatom daćemo i algoritamza njegovu minimizaciju, tj. za nalaženje minimalnog automata koji raspoznaje isti jezik.

    Konteksno-nezavisni jezici

    – nastali su u cilju formalizacije gramatičkih svojstava prirodnih jezika;

    Konteksno-nezavisni jezici su se vrlo brzo pokazali veoma pogodnim za formalno opisivanjesintakse programskih jezika.

    Primene: u definisanju programskih jezika (Fortran je definisao Backus [1959], a Algol Naur [1960]),kao i u sintaksnoj analizi jezika i konstrukciji kompajlera.

    Osnovni deo XML-a je Definicija tipa dokumenta u čijoj je osnovi konteksno-nezavisna gramatikakoja opisuje dozvoljene komande (tagove) i načine pisanja teksta u okviru tih komandi, što usuštini nema veze sa formatiranjem teksta, već sa njegovim značenjem.

    Široka primena konteksno-nezavisnih jezika dovela je do razvoja teorije konteksno-nezavisnihjezika kao jedne od najznačajnijih oblasti Teorije formalnih jezika.

    14 Uvod Logika i teorija skupova

  • Konteksno-nezavisni jezici

    Definicije

    Postoji više različitih, medusobno ekvivalentnih definicija konteksno-nezavisnih jezika:

    kao jezici koji se mogu generisati konteksno-nezavisnim gramatikama;

    kao komponenete najmanjeg rešenja sistema polinomnih jednačina, što su nezavisno jedniod drugih pokazali Chomsky i Schützenberger [1963] i Ginsburg i Rice [1962].

    potisnim automatima čiji je matematički model uveden u radu Schützenbergera [1963], ačiju su ekvivalentnost sa konceptom generisanja jezika konteksno-nezavisnomgramatikom u svojim radovima dokazali Chomsky [1962] i Evey [1963].

    Potisni automati

    Uvešćemo pojam potisnog automata (automata sa potiskujućom memorijom (stekom)), pojmoveraspoznavanja jezika skupom stanja potisnog automata i raspoznavanja jezika praznim stekom ipokazaćemo da su ova dva načina raspoznavanja ekvivalentna.

    Model generisanja jezika potisnim automatima ekvivalentan je generisanju konteksno-nezavisnimgramatikama i jezici koji se mogu raspoznati potisnim automatima tačno konteksno-nezavisnijezici.

    15 Uvod Logika i teorija skupova

  • Jezici tipova 0 i 1

    Jezici tipova 0 i 1

    Konteksno-zavisni jezici drugačije se nazivaju jezicima tipa 1, dok su jezici generisani proizvoljnimgramatikama jezici tipa 0.

    Da li se navedeni tipovi jezika mogu okarakterisati pomoću nekih modela apstraktnihmatematičkih mašina koje raspoznaju te jezike?

    Za raspoznavanje jezika tipa 0 koristi se apstraktna mašina koju je, još pre pojave elektronskihračunara, 1930-ih godina, definisao britanski matematičar-informatičar Alan Tjuring (Alan Tur-ing, 1912-1954), i koja, u pogledu onoga što može izračunati, poseduje sve mogućnosti današnjihračunara.

    U njegovu čast, tu mašinu danas nazivamo Tjuringova mašina.

    Komentar

    Tjuringov cilj bio je da precizno opiše granice izmedu onoga što računske mašine mogu i onogašto ne mogu, odnosno, da odgovori na pitanja

    Koji problemi su algoritamski rešivi?

    Koji problemi su algoritamski nerešivi?

    16 Uvod Logika i teorija skupova

  • Linearno ograničeni automati

    Jezici tipova 0 i 1

    Sa druge strane, jezici tipa 1, odnosno konteksno-zavisni jezici, raspoznaju se specijalnim tipomTuringovih mašina uvedenim u radu Myhilla [1960], koje se nazivaju linearno ograničenim au-tomatima.

    Landweber [1963] i Kurod [1964] su dokazali da klasa jezika koji se mogu raspoznati nedetermin-ističkim linearno ograničenim automatima jeste upravo klasa konteksno-zavisnih jezika.

    17 Uvod Logika i teorija skupova