Professional Documents
Culture Documents
Umjetna Sve Za Prvi Kolokvij
Umjetna Sve Za Prvi Kolokvij
Umjetna Sve Za Prvi Kolokvij
Nadalje:
Baza znanja:
• Znanje iz problemske domene
• Znanje o načinu kako se problem rješava
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA
ili
-Umjetna inteligencija je znanstvena oblast u kojoj se istražuje kako
napraviti računare koji bi uspješno radili stvari koje u ovom
momentu rade bolje ljudi.
Svaka od navedenih definicija na svoj način objašnjava pojam
umjetne inteligencije i na osnovu njih bi se dalo zaključiti da će
računarski sustavi biti «inteligentni» ako pokazuju karakteristike
vezane sa ljudskom inteligencijom.
Sredinom 19. st. George Bool razrađuje algebru logike u kojoj se algebarska
simbolika koristi za operacije pojmovima pri logičkom izvođenju. Njegova
binarna algebra predstavlja osnovu današnjih digitalnih računala.
Englez Alan Turing i Amerikanac Post 1936. god. neovisno jedan o drugom
objavljuju radove iz oblasti matematičke logike i iznose mogućnosti
univerzalnog transformatora informacija. Rad A.Turinga »Računski strojevi i
inteligencija» jedan je od prvih radova vezanih za strojnu (umjetnu)
inteligenciju. Turingov test za «mjerenje inteligencije» strojeva predstavlja
jedini do sada priznati standard u ovom domenu. Međutim, tek pojavom prvog
računara «Electronic Numerical Integrator And Computer» (ENIAC), kojeg su
1945.god. izmislili Mauchly i J.Presper Eckert može se govoriti o inteligentnim
strojevima.
U početku su računari bili namijenjeni prvenstveno za izvršavanje računskih
operacija ali vrlo brzo je uočeno da oni imaju daleko veće sposobnosti.
TURINGOV TEST
• • Muškarac (A)
• • Žena (B)
• automatsko zaključivanje
• računarski vid
• robotika
Sl.1. Principijelna razrada Turingovog testa: Osoba koja intervjuira treba razlikovati odgovore čovjeka i stroja
Ovaj test, kojeg je 1950. u časopisu «Mind» predstavio jedan od
otaca umjetne inteligencije(UI), Alan Turing, počiva na sljedećem:
Ako je kompjuter u stanju riješiti neki problem tako da ni stručnjak
ne može razlikovati je li do rješenja došao čovjek ili kompjuter,
onda kompjuter posjeduje istu sposobnost kao i čovjek.
ili pak
-osobine programa
-financijska analiza
-Ekspertni sustavi
-Robotika
-Kombinatorički problemi
Pri rješavanju ovih problema broj varijanti može biti tako velik da
nadilazi mogućnosti najvećih računara. Neophodno vrijeme za rješavanje
zadataka korištenjem poznatih metoda, raste eksponencijalno sa redom
zadatka. Pored ovakvih postoje i tzv. transkompjuterski problemi.
Količina informacija koja se može obraditi ograničena je raspoloživom
energijom, odnosno masom računara i vremenom obrade. Na osnovu
ovoga postavljeno je ograničenje za probleme koji su teorijski nerješivi,
te se svi problemi čije rješavanje zahtjeva obradu veće količine
informacija nazivaju transkompjuterski problemi. Istraživači rade na
metodama rješavanja nekih tipova ovako složenih zadataka, kako bi
korištenjem tehnika iz umjetne inteligencije smanjili red potrebnog
vremena za rješavanje.
-Obrada vizualne informacije
Veliki napori se danas čine da se postojećim ulaznim jedinicama računara
pridoda i video i govorni ulaz, što bi omogućilo računaru da vidi i čuje.
Eksperimentiranjem je pokazano da je za to potrebno «razumijevanje»
ulaznih podataka, što zahtijeva veliku bazu podataka.
Smisao cjelokupnog procesa obrade i razumijevanje vizualne scene je u
formiranju sažete predstave ogromne količine sirovih informacija
sadržanih u ulaznim podacima. Očigledno je da karakter i kvaliteta
krajnje predstave zavise od ciljeva sustava za obradu (ponekad su bitne
boje, ponekad dimenzije...), a koje sustav treba točno određivati.
-Strojno učenje
Učenje predstavlja osnovu za prilagodljivost nepoznatim situacijama kao
i situacijama koje se brzo mijenjaju. Strojno učenje se primjenjuje u
teoriji igara, učenju koncepata, pravilima u ekspertnim sustavima,
analogiji itd. Iako postoje neposredni dokazi da je učenje ostvarljivo u
ovim oblastima, postojeći programi su značajno limitirani , tako da
umjetna inteligencija u ovoj oblasti nije dala posljednju riječ.
-Neuronske mreže
Jedan od takvih je Hubert Dreyfus koji nije prikrivao cinizam, te je pisao sljedeće
(1972. godine) «...vidjeli smo dovoljno dokaza o nevoljama koje su pratile neuspjeh da
se programira šahovski prvak, da se dokaže interesantna teorema...».
Iako možda pretjerano, Dreyfus je imao dobro pokriće za ovakav stav i prikazao je
ondašnje stanje stvari. Međutim, od objavljivanja te knjige tehnologija je u
kvantitativnom pogledu (brzina procesora, veličina memorija,...) napredovala do
neslućenih razmjera, a najavljuje se još brži daljnji razvoj čime se stvaraju preduvjeti za
novi zamah umjetne inteligencije.
Važno je naglasiti da je suštinski napredak ostvaren u programu za
igranje šaha, a ne u ubrzanju elektronike na kojoj je računar zasnovan.
Prioritetni zadaci:
- Postizanje robusnosti i adaptivnosti u raznim okruženjima koja
ne mogu biti unaprijed pretpostavljena i opisana i koja se mijenjaju s
vremenom. Ovo se odnosi i na realan svijet i na računarsko okruženje
kao svojevrsnu novu vrstu sredine.
- Ovladavanje obimnim i raznolikim znanjem organiziranim tako
da olakšava stjecanje novog znanja kroz rješavanje problema i kroz
suradnju sa ljudima.
- Razvoj sustava koji sa ljudima surađuje na prirodnom jeziku za
razliku od današnjih limitiranih sustava.
- Razvoj sustava koji posjeduju određen stupanj samosvijesti i
internog integriteta kao i razumijevanja suradnika i okoline što treba
poslužiti boljoj integraciji, jednostavnijoj suradnji, upravljanju i
unaprjeđenju znanja.
Pravci istraživanja kojima bi se ovi ciljevi postigli izdvajaju
unaprjeđenje i razvoj:
- Svih vrsta integracije, kako raznih znanstvenih oblasti
planiranja, učenja, vizije i drugih u samoj umjetnoj
inteligenciji, tako i programa i ljudi.
- Robota gdje se pod ovim imenom podrazumijevaju i
uobičajeni roboti i programi koji obavljaju zadatke poput
prikupljanja informacija na Internetu.
- Suradnja u kojoj programi i ljudi shvaćaju osim izravnih
komandi i želje, namjere, sposobnosti i ograničenja.
- Postupaka prikupljanja svih vrsta znanja i mehanizama
rezoniranja itd.
UMJETNA INTELIGENCIJA
INTELIGENCIJA
SUSTAV
PROCES
• Podrazumijeva djelovanje, aktivan rad, sustava odnosno
postupak promjene stanja elemenata sustava u vremenu. Pri
ovome se ima u vidu takva promjena stanja koja daje određen,
potreban i dovoljan, efekt.
STANJE
• Pod pojmom stanja podrazumijeva se skup podataka koji daju
potpunu informaciju o radu sustava i elementima okoline u
prošlosti potrebnu za projektiranje ponašanja sustava u
budućnosti. Stanje je prema tome funkcija vremena. Formalnim
razmatranjem ulazno-izlaznih relacija sustava dolazi se do
preciznije definicije stanja.
UMJETNA INTELIGENCIJA
Ovdje je :
S – sustav čiji je rad određen procesom postupne promjene stanja u
funkciji vremena.
Xu – ulazni vektor koji određuje veličinu djelovanja na proces rada
sustava i utječe na ponašanje sustava a ima komponente
xu ( u = 1, 2, 3, …m)
• Komponente ulaznog vektora mogu biti, u općem slučaju
kontrolirane i nekontrolirane. Kontrolirane veličine su funkcija
vremena i stanja sustava. Nekontrolirane veličine su slučajnog
karaktera i na njih promatrani sustav nema utjecaja. Ulazne
veličine sustava za obradu su najčešće kontrolirane i po pravilu
se mogu mjeriti na relativno jednostavan način. U osnovi su to
elementi:
UMJETNA INTELIGENCIJA
materijal
energija
informacija
Xi – izlazni vektor koji predstavlja rezultat rada sustava i karakterizira procese u
sustavu a sadrži komponente
xi (i = 1, 2, 3,… n)
Zk – vektor okruženja
xi(t) = S xu(t)
Prirodni sustavi
Podjela
Pitanje glasi:
Može li se preći preko svih sedam mostova tako da se preko svakog
mosta pređe samo jednom?
Može se primijetiti da ovakav jezični oblik predstavljanja nije
najpodesniji za razumijevanje problema, a još manje pogodan
za traženje rješenja. Mogli bi ga zamijeniti prirodnim, fizičkim
oblikom predstavljanja. To bi značilo da se ode na lice mjesta,
upoznamo problem i pokušamo šetnjom po mostovima naći
rješenje. Naravno, takav prilaz nije svojstven čovjekovom
intelektu. I pored neospornog uživanja u šetnji, ubrzo bi se
umorili ne znajući da li smo iscrpili sve varijante prolaska
mostovima. Umjesto takvog prilaza rješenju prirodno je
potražiti neki pogodniji oblik predstavljanja. Iskustvo nam
sugerira da pribjegnemo izvjesnoj mjeri apstrakcije i problem
očistimo od nebitnih detalja.
Jezični i fizički oblik predstavljanja transformiramo u
grafički oblik predstavljanja kao što je pokazano na slici.
Slika Grafički prikaz problema
Grafički oblik predstavljanja znatno pojašnjava
sam problem i omogućava izgrađivanje primitivne
strategije rješavanja: crtanje linija prolaska po
mostovima. Možemo nasumice krenuti iz neke
točke i pokušati da linijom (crtom) prođemo preko
svih mostova. Takvi pokušaji slijepog traganja i
neuspjeh u nalaženju potvrdnog rješenja inspiriraju
hipotezu da potvrdno rješenje možda i ne postoji.
Dokaz da je to zaista tako imali bi tek nakon što
pregledamo sve moguće varijante prolaza (njihov
broj je velik, ali konačan). Za takav dokaz poželjeli
bismo pomoć, na primjer suvremenih računala.
Prenošenje problema na računalo
podrazumijeva transformiranje
predstavljanja problema u oblik pogodan za
rješavanje na računalu. Pod tim uvjetom
računalo bi umjesto nas izvršilo pregled svih
mogućih varijanti i nakon toga, ako
raspolaže dovoljnim kapacitetom
memorijskog prostora, dalo rješenje u
obliku:
«Nije moguće preći preko svih sedam
mostova tako da se preko svakog pređe
samo jednom»
Možda je sretna okolnost što 1738 godine, kada je ovaj
problem riješio Ojler nije bilo računala. Realizacija
pretraživanja na računalu bez dublje analize problema
vjerojatno bi nas uskratila za jedno značajno saznanje -
teorem o unikurzalnosti grafova.
Graf je unikurzalan ako nema neparnih čvorova, ili, ako ih ima onda
ih ima samo dva.
Čvor je neparan ako iz njega polazi neparan broj grana, u suprotnom,
čvor je paran.
Ovo znanje o globalnom svojstvu prostora traženja
rješenja čini rješenje našeg problema sedam
mostova trivijalnijim:
Svi čvorovi grafa na slici su neparni, pa graf nije
unikurzalan!
(So, S, F, T)
gdje je S skup stanja, So skup početnih stanja, T skup izvršnih stanja, F skup
operatora. Svaki operator f F je funkcija definirana na Sf S sa vrijednostima
u S, tj, f: Sf S. Rješenje zadatka je niz operatora f1, f2, f3,…,fn takav da za s
So kompozicija f1, f2, f3,…,fn(s) T.
Dvije osnovne metode heurističkog pretraživanja zasnivaju se na
sustavima produkcije odnosno redukcije:
Prostor stanja
Ako je
Bijeli pješak na polju(2,X) i polje (3,X) prazno i polje (4,X) prazno
Onda
Pomjeri bijelog pješaka sa polja (2,X) na polje (4,X).
Na ovakav način problem igranja šaha je predstavljen kao kretanje u
prostoru stanja, gdje svako stanje odgovara legalnoj poziciji na
šahovskoj ploči. To znači, da se igranje šaha može predstaviti kao
kretanje od početnog stanja, korištenjem skupa pravila za prelazak u
drugo stanje, sve dok se ne dostigne jedno od ciljnih stanja.
Predstavljanje igre šaha u prostoru čini se veoma prirodnim, ali
treba imati na umu da se kod nekih problema moraju koristiti složenije
strukture nego što su matrice za opisivanje nekog pojedinačnog stanja.
Dvije osnovne karakteristike koje omogućavaju korištenje prostora stanja
u rješavanju različitih problema su slijedeće:
•Dozvoljava da se korištenjem formalnih definicija, problem
predstavi kao potreba za prevođenje neke dane situacije u željenu
situaciju, korištenjem legalnih operacija.
•Dozvoljava da se definira proces nalaženja rješenja za dani proces
kao korištenje poznatih tehnika (predstavljenih u vidu pravila za
svaki korak u prostoru stanja) traženja, kao opće tehnike za
pronalaženje puta od trenutnog stanja do ciljnog.
Drugi primjer korištenja prostora stanja ilustrirat će se na
rješavanju slijedećeg problema:
2.
(X,Y Y 3) (X,3) Napuniti bokal od 3 l
3.
(X,Y X 0) (X-D,Y) Prosuti nešto vode (D) iz
bokala od 4 l
4.
(X,Y Y 0) (X,Y-D) Prosuti nešto vode (D) iz
bokala od 3 l
5.
(X,Y X 0) (0,Y) Isprazniti bokal od 4 l
6.
(X,Y Y 0) (X,0) Isprazniti bokal od 3 l
7.
(X,Y X +Y =4LY 0) Napuniti bokal od 4 l vodom iz
(4,Y-(4-X)) bokala od 3 l
8.
(X,Y X +Y =3LX 0) (X- Napuniti bokal od 3 l vodom iz
(3-Y),3) bokala od 4 l
9.
(X,Y X +Y =4LY 0) Presuti svu vodu iz bokala od 3
(X+Y,0) l u bokal od 4 l
10.
(X,Y X +Y =3LX 0) Presuti svu vodu iz bokala od 3
(0,X+Y) l u bokal od 4 l
Kao što se može vidjeti pravila su zapisana na isti način kao pravila igre
šaha. Lijeva strana predstavlja trenutno stanje, a desna novo stanje nakon
primjene pravila. (Pravila 3 i 4 mogu se primijeniti samo u slučaju da je
na bokalima postoji označena razina napunjenosti. Napisana su u cilju
mogućnosti korištenja danih pravila kada je zadatkom predviđeno da na
bokalima postoje oznake). Za rješavanje ovog zadatka, osim definicije
navedenih pravila, potrebno je odrediti i upravljačku strukturu, kojom će
se birati pravila sve dok se ne postigne željeno stanje. Jasno je da brzina
rješavanja problema zavisi od toga kako će se primijeniti (vršiti izbor)
pravila. Jedna od sekvenci za rješavanje problema punjenja bokala sa
vodom dana je u tablici, pri čemu je za početno stanje uzeto (0,0), a za
ciljno (2,Y).
Voda u bokalu od Voda u bokalu od Primijenjeno
4l 3l pravilo
0 0 2
0 3 9
3 0 2
3 3 7
4 2 5
0 2 9
2 0
Na osnovu ova dva primjera, jasno se uočava da je prvi korak u
rješavanju problema, predstavlja traženje mogućnosti njegovog
opisivanja nekim formalnim sustavom. Navedeni problemi su dobro
strukturirani, pa se i lako rješavaju. Oni nam mogu ujedno poslužiti kao
putokaz za rješavanje problema koji su slabo strukturirani, poput obrade i
razumijevanja prirodnog jezika, jer se upoznaju različite metode kojima
se dolazi do rješenja. Ukoliko se želi neki problem predstaviti u prostoru
stanja, onda se to može uraditi korištenjem slijedeće uređene četvorke:
gdje je:
S skup svih mogućih stanja,
Sp skup svih početnih stanja,
Sc skup svih ciljnih stanja i
P skup svih pravila koja opisuju akcije (operacije) koje se mogu
primijeniti.
Rješavanje problema u prostoru stanja sastoji se od korištenja
pravila, pomoću izabrane upravljačke strategije, kojom se pronalazi put
od početnog do ciljnog stanja. Proces traženja predstavlja osnovu za
rješavanje problema, ali se mogu odabrati i drugi prilazi. Na primjer, kao
što je primjena jednadžbi u pravilu 7 iz primjera sa punjenjem bokala
vodom. Pretraživanje predstavlja jedan generalni prilaz koji se
primjenjuje kada nisu poznate neke direktne metode.
Budući da proces pretraživanja predstavlja srž većine programa u
umjetnoj inteligenciji, važno je posjedovati i strukturu koja se opisuje.
Produkcioni sustavi su jedan od primjera koji osiguravaju takvu strukturu
i u tekstu koji slijedi dan je opis.
Produkcioni sustavi
Kod većine sustava u umjetnoj inteligenciji uočava se podjela na tri
standardne računalne komponente:
•Podatke,
•Operacije i
•Upravljanje
Centralni entitet predstavlja globalna baza podataka kojom se
upravlja preko dobro definiranih operacija globalne upravljačke strategije.
Dakle, glavni elementi produkcionih sustava umjetne inteligencije su:
•Globalna baza podataka,
•Skup produkcionih pravila i
•Upravljački sustav.
Globalna baza podataka je centralna struktura koja se koristi u
produkcionom sustavu umjetne inteligencije. U ovisnosti od primjene, baza
podataka može biti jednostavna, kao na primjer obična matrica brojeva, ili
složena kao velika relaciona indeksna struktura datoteka (ovdje se podvlači
razlika između pojma globalna baza podataka, kako se ovdje koristi i
pojma baza podataka, kakav se standardno upotrebljava).
Produkciona pravila funkcioniraju nad globalnom bazom podataka.
Svako pravilo ima svoje početne uvjete koje globalna baza podataka može
ili ne može ispunjavati. Ako su početni uvjeti ispunjeni, pravilo se može
primijeniti. Primjenom pravila mijenja se baza podataka. Upravljački sustav
odlučuje koje pravilo treba izabrati (primijeniti) u svakom koraku i prekida
rad kada globalna baza podataka zadovolji završni uvjet.
Postoji nekoliko razlika između ovih struktura produkcionih sustava i
tradicionalnih računalnih sustava koji koriste hijerarhijski organizirane
programe:
•Globalna baza podataka je dostupna svim pravilima, a nijedan dio nije
orijentiran ne neki od njih,
•Pravila ne «pozivaju» druga pravila; komunikacija između pravila se
ostvaruje samo preko globalne baze podataka.
Teškoće primjene tradicionalnih hijerarhijskih programa u sustavu
umjetne inteligencije javljaju se uslijed toga što proširenja ili izmjene u
globalnoj bazi podataka uvjetuju velike izmjene u programima, strukturama
podataka i organizaciji potprograma. Produkcioni sustavi su modularni pa se
zato izmjene u bazi podataka, upravljačkom sustavu ili pravilima mogu vršiti
relativno nezavisno.
Postoji nekoliko vrsta produkcionih sustava. Razlike proističu uslijed
korištenja različitih upravljačkih sustava, osobnosti pravila i baza podataka i
načina na koji se primjenjuju pri rješavanju problema. U nastavku dano je
nekoliko primjera produkcionih sustava.
Što se podrazumijeva pod produkcionim sustavom (ili sustavom
produkcije) umjetne inteligencije, i kako se primjenjuje, biće ilustrirano na
slijedećem primjeru igre brojeva.
Primjer 1.
Potrebno je složiti 8 brojeva distribuiranih u 3 x 3 polja. Na ovaj način
je jedno polje uvijek prazno, tako da se u ovo prazno polje može u
jednom koraku pomjeriti susjedni broj. Problem se svodi na provođenje
neke početne konfiguracije u konačnu ciljnu konfiguraciju kao što je
prikazano na narednoj slici:
1 2 3 2 8 3
8 4 1 6 4
7 6 5 7 5
a b
Slika Početna (a) i ciljna (b) konfiguracija u igri slaganja
Da bi se ovaj problem riješio pomoću produkcionog sustava, moraju se
definirati globalna baza podataka, pravila i strategija upravljanja.
Transformiranje problema u ove tri komponente nekog produkcionog
sustava naziva se predstavljanje problema u umjetnoj inteligenciji. Kako
postoji više načina predstavljanja istog problema, izbor dobrog
predstavljanja je najznačajnija vještina u primjeni metoda tehnike umjetne
inteligencije u praktičnim zadacima.
Za ovaj i druge zadatke moraju se identificirati elementi problema:
stanja, pravila (promjene) i ciljevi. U slučaju igre slaganja brojeva svaka
kombinacija je jedno stanje. Skup svih mogućih konfiguracija je prostor
stanja problema. U ovom primjeru skup svih mogućih konfiguracija (9! =
362880) sačinjava prostor stanja problema. Kada su definirana stanja
problema, potrebno je odabrati formu predstavljanja koja će se koristiti kao
globalna baza podataka sustava produkcije (u ovom slučaju to predstavlja
matricu 3 x 3). Izvorna baza podataka daje opis početnog stanja problema.
U općem slučaju za opis stanja se može koristiti bilo koja struktura
podataka (nizovi znakova, vektori, skupovi, stabla, liste, i td.).
Svaka promjena transformira jedno stanje zadatka u drugo. U danom
primjeru je pogodno definirati četiri pravila: pomjeranje praznog polja
lijevo, desno, gore i dole. Ova pravila (promjene) se opisuju pravilima
produkcije koja se na odgovarajući način primjenjuju na dano stanje
problema (zadatka),
Svako pravilo ima svoje početne uvjete koji moraju biti zadovoljeni
opisom stanja. Na primjer, početni uvjet za primjenu pravila «pomjeranje
praznog polja na gore» jeste da se ono ne nalazi u gornjem redu.
Problem se svodi na ispitivanje liste stanja zadatka. Dalja
generalizacija se svodi na specificiranje točno/netočno (engleski termini:
true/false) uvjeta na stanjima koji služe kao ciljni uvjet. Cilj ostvaruje
neko stanje koje zadovoljava ovaj uvjet. Na ovaj način terminalni uvjet
eksplicitno definira skup ciljnih stanja.
Na osnovu uvedenih termina stanja, pravila i ciljeva, rješenje
problema je izbor sekvence pravila koja provode početno u ciljno stanje.
Upravljačke strategije naizmjenično primjenjuju pravila na opise stanja
sve dok se ne dobije opis ciljnog stanja. Također se evidentiraju pravila
koja pri tom bivaju korištena, tako da se ta pravila komponiraju u
sekvencu koja predstavljaju rješenje problema.
U izvjesnim zadacima zahtijeva se da rješenje zadovoljava i dodatna
ograničenja. Osnovni algoritam sustava produkcije može se napisati u
obliku slijedeće procedure:
procedure Produkcija
begin
1 DATA := polazna baza podataka
2 while DATA zadovolji terminalni uvjet do
3 begin
4 izabrati neko pravilo, R iz skupa pravila koja se mogu
primijeniti na DATA
5 DATA := rezultat primjene R na DATA
6 end
end
R1 : C (D, L)
R2 : C (B, M)
R3 : B (M, M)
R4 : Z (B, B, M)
Uvod
Kako smo vidjeli pri razmatranju problematike
procedura Produkcije i Razlaganja osnovni upravljački
problem, prema proceduri Produkcija, svodi se na izbor
primjenljivog pravila. Za razložite produkcijske sustave
problem upravljanja svodi se na izbor komponente baze
podataka i primjenljivog pravila(prema proceduri
Razlaganje). Drugi dopunski, ali također važni, zadaci
su:
STRATEGIJE PRETRAŽIVANJA
Provjera uvjeta primjene pravila,
Provjera terminalnih uvjeta, i
• Pamćenje primijenjenih pravila.
• Primjer 1.
• Kao primjer primjene Backtrack procedure biće prikazano nalaženje putanja
od startnog čvora S do ciljnog čvora G za mrežu na slici 2. Ostajući pri
terminologiji iz opisa Backtrack procedure, sada su čvorovi S, A,…, G baze
podataka (argument DATA ). Svako stanje sadrži sve moguće putanje do
drugih stanja; recimo, u čvoru B (DATA = = B) mogu se formirati pravila: B
A, B C i B E.
Slika 2. Topologija mreže iz primjera 1.
STRATEGIJE PRETRAŽIVANJA
• Funkcija Apprules rangira pravila po razdaljini do stanja koja
se mogu postići. Tako bi za čvor B uređena lista pravila koja se
mogu formirati za primjenljiva pravila, izgledala ovako :
RULES = = (B = 1 C, B = 3 A, B = 2 E). Procedura
Term će biti zadovoljena u čvoru G (TERM(G) = = TRUE), jer
je čvor G ciljni čvor Procedura Deadend će biti zadovoljena u
čvoru C (Deadend © = = TRUE) , jer se iz njega ne može stići
do čvora G. Pošto dana mapa ima zatvorene putanje (recimo S-
A-D-S), postoji mogućnost upadanja u beskonačni niz
rekurzija. Što više, primjena navedene funkcije Appreules bi iz
čvora A vodila u čvor D, a iz čvora D ponovo u čvor A, pa bi
tako nastalo osciliranje sustava. Zato se mora primjenjivati
poboljšana Backtrack1 procedura koja onemogućava povratak
u već posjećena stanja sustava.
STRATEGIJE PRETRAŽIVANJA
• U ovom primjeru treba upotrijebiti pet pravila da bi se sustav
doveo u željeno stanje, a to je i minimalan broj rekurzija koji se
mora primijeniti. Postoje i dvije ekstenzivne rekurzije: jedna
zbog tendencije osciliranja između čvorova A i D, a druga zbog
postojanja «mrtvog» čvora C. Putanja do ciljnog čvora postignuta
Backtrack procedurom nije obvezno i optimalna zato što
prvenstveno ovisi od količine informacija o sustavu i izboru
funkcije Apprules. Na primjer, putanja S-D-A-B-E-G ima
ukupnu dužinu puta 9, dok je putanja S-D-E-G kraća za 1. Ovdje
je znanje o sustavu predstavljala poznata dužina puta do
susjednih čvorova. U slučaju mreže gradova mogla bi se izabrati
i druga Apprules funkcija, na primjer, «kretanje ka gradu koji je
zračnom linijom najbliži». Ova funkcija je sigurno kvalitetnija,
ali bi njena primjena zahtijevala i dodatno znanje o sustavima.
STRATEGIJE PRETRAŽIVANJA
• Strategija pretraživanja na grafu
• Postupak pretraživanja na grafu podrazumijeva iznalaženje puta na grafu od
čvora koji predstavlja početno stanje do čvora koji predstavlja ciljno stanje.
Ova fleksibilna procedura podrazumijeva eksplicitno memoriranje svih
pokušaja nalaženja putanja, tako da neke putanje mogu biti kandidati za dalja
ispitivanja. U tom smislu upravljački sustav mora čuvati eksplicitni zapis grafa
baza podataka povezan preko primijenjenih pravila.
• Kao primjer na slici 3. prikazana je inicijalna baza podataka DB1 na
koju su primijenjena pravila R1 i R2. Pretpostavimo da upravljački sustav
prvo izabere i primjeni pravilo R1 proizvodeći bazu podataka DB2, a potom
primjenom pravila R3 na bazu DB2 proizvodi bazu podataka DB3.
Pretpostavimo da u ovoj točki upravljački sustav odluči da ovaj put ne
obećava mnogo i vrati se natrag na primjenu pravila R2 na bazu DB1,
proizvodeći tako DB4. Kako je već ranije objašnjeno, backtracking bi izbrisao
zapise DB2 i DB3.
Slika 3. primjer inicijalne baze podataka
STRATEGIJE PRETRAŽIVANJA
• Međutim, u strategiji pretraživanja na grafu upravljački sustav
će čuvati eksplicitni zapis grafa baza podataka spregnutih preko
primijenjenih pravila, tako da bi, ukoliko bi se put preko DB4
pokazao bezuspješnim, nastavio odmah rad bilo preko DB2 ili
DB3.
2 8 3
1 6 4
7 5
STRATEGIJE PRETRAŽIVANJA
• Ima vrijednost funkcije f(0) = 0 + 4 = 4
• Rezultat primjene algoritma Pretraživanje_grafa u primjeru
igre slaganja brojeva prikazan je na slici 7. Vrijednosti f funkcije
za svaki čvor su prikazane u crnom krugu. Vidi se da se ista
putanja rješenja nalazi kao i primjenom drugih metoda
pretraživanja, mada korištenje funkcije ocjene rezultira u
smanjenom broju razvijenih čvorova. Ako se koristi funkcija
ocjene f(n) = d(n), dobivamo proces pretraživanja u širinu.
• Izbor funkcije ocjene određuje rezultat pretraživanja.
Korištenje funkcije koja griješi u prepoznavanju točnog
očekivanja nekih čvorova može imati za rezultat neminimalnu
cijenu putanja, dok korištenje funkcije ocjene koja vrši
«nadprocjenu» očekivanja svih čvorova (kao kod funkcije za
preztraživanje u širinu) ima za rezultat razvoj mnogih čvorova.
Slika 7. Stablo pretraživanja pri korištenju funkcije ocjene
STRATEGIJE PRETRAŽIVANJA
Algoritam A
• U algoritmu A, funkcija ocjene f definirana je tako da njena
vrijednost f(n) u nekom čvoru n predstavlja zbroj minimalne cijene
puta od startnog čvora s do čvora n, plus minimalnu cijenu puta od
čvora n do ciljnog čvora. Odnosno f(n) je procjena minimalne
cijene putanje ograničena da prolazi kroz čvor n.
• Potrebno je uvesti nekoliko oznaka. Neka su h*(n) cijena
optimalnog puta od čvora n do ciljnog čvora, a g*(n) cijena
optimalnog puta od čvora s do ciljnog čvora, odnosno,
• f*(n) = g*(n) + h*(n)
• Ako se želi da funkcija ocjene puta minimalne dužine f bude
ocjena vrijednosti f*, odnosno
• f(n) = g(n) + h(n)
• gdje su:
STRATEGIJE PRETRAŽIVANJA
• g i h ocjene vrijednosti g* i h*, respektivno. Vrijednost za h
naziva se heuristička funkcija (engleski termin: heuristic function).
• Ukoliko se stablo pretraživanja mijenja na koraku 7
procedure Pretraživanje_grafa. Vrijednost za g(n) se može
smanjiti. Ovo implicira da je g(n) g*(n). Ako je h donja granica
za h* , t.j. h(n) h*(n) za svako n, algoritam A koristi funkciju h
koja je donja granica za h* , kaže se da to A* algoritam. Najmanja
vrijednost za h je svakako h = 0. Ako je uz to i g d, dobiveno je
pretraživanje u širinu, kao specijalan slučaj algoritma A*.
• Algoritam A* je poboljšana verzija algoritma Branch and
bound. To je u stvari kombinacija algoritma Branch and bound sa
očekivanjima i algoritma Branch and bound sa dinamičkim
programiranjem. Procedura algoritma A* ima slijedeći opis:
STRATEGIJE PRETRAŽIVANJA
• procedure A*
• begin
• 1 Ştaviti pokazivač na korijen stabla u listu queue
• 2 while lista queue neprazna do
• begin
• if prvi pokazivač u listi pokazuje na ciljni čvor
• 3 then return «Put je nađen»
• 4 * Prvi pokazivač u listi queue ne pokazuje na ciljni čvor *
• 4a Ukloniti prvi pokazivač iz liste queue
• 4b Pristupiti potomcima čvora na koji ukazuje uklonjeni pokaziva,
• izračunati njihovo ukupno rastojanje od početnog cvora i
• memorirati ga u promjenljivoj cost za taj cvor.
• 4c Izračunati očekivanje dužine preostalog dijela puta (dužina puta
• od danog čvora do ciljnog cvora), dodati ovu vrijednost na vrijednost
• promjenljive cost za taj cvor i staviti ovaj zbir u vektor esredi.
• 4d Staviti u listu queue pokazivace koji pokazuju na potomke
• uklonjenog cvora.
• 4e Sortirati vektor esredi u neopadajućem poretku i istovremeno
• izvršiti sortiranje pokazivaca u listi queue.
• 4f if vise pokazivaca u listi queue pokazuje na isti cvor
• then
• begin
• Obrisati sve takve pokazivace iz liste
• osim najbližeg pocetku liste
• end
• end
• 5 return «put nije nađen»
• end
STRATEGIJE PRETRAŽIVANJA
Poređenja A* algoritma.
• Točnost heurističke funkcije h zavisi od iznosa heurističkog znanja koje se
posjeduje o problemu. Koristeći h(n) 0 odražava se kompletno odsustvo
bilo kakve heurističke informacije o problemu.
• Ako se pretpostavi da postoje dvije verzije algoritma A*, na primjer A1 i
A2 koje koriste slijedeće funkcije razvoja f1(n) = g1(n) + h1(n) i f2(n) = g2(n) +
h2(n), gdje su h1 i h2 donje granice h*. Kaže se da je algoritam A2
informativniji od algoritma A1 ako je za svaki neciljni čvor n, h2(n) h1(n).
• Kao primjer može se uzeti rješenje igre slaganja sa slike 7. Tamo je
korištena funkcija razvoja f(n) = d(n) + W(n). Proces pretraživanja iz ovog
primjera predstavit će se kao primjena A* sa heurističkom funkcijom h(n) =
W (n), gdje je W(n) donja granica broja koraka preostalih do cilja. Jasno
slijedi da je A* sa h(n) = W(n) informativnija (ima znatno manji broj
otkrivenih čvorova) od metode pretraživanja u širinu, koja koristi h(n) 0.
STRATEGIJE PRETRAŽIVANJA
• Intuitivno je jasno da u općem slučaju informativniji algoritam
treba da izvrši razvoj manjeg broja čvorova pri nalaženju puta
minimalne cijene. Ovo zapažanje se potvrđuje uspoređenjem
slike 6. i slike 7. Naravno, činjenica da jedan algoritam vrši
razvoj manjeg broja čvorova od drugog ne implicira da je
efikasniji. Informativniji algoritmi mogu imati veću cijenu
računanja koja narušava efikasnost. Ipak broj razvijenih čvorova
putem algoritma je jedan od faktora koji određuje efikasnost, a
to je faktor koji dozvoljava jednostavna uspoređenja.
• Neka su A1 i A2 dvije verzije algoritma A*, takve da je A2
informativniji od algoritma A1. Tada, po završetku pretraživanja
na bilo kom grafu koji sadrži put od s do ciljnog čvora, svaki
čvor razvijen (otkriven) algoritmom A2 je razvijen i algoritmom
A1. Ovo znači da A1 otkriva najmanje onoliko čvorova koliko i
A2.
STRATEGIJE PRETRAŽIVANJA
Ograničenje monotonosti
• Za heurističku funkciju h se kaže da zadovoljava uvjet monotonosti
ukoliko za sve čvorove n i m, takve da je m sljedbenik n važi:
• h(n) – h(m) c(n,m), h(t) = 0
• gdje je:
c(n,m) cijena prelaska iz n u m. Ako se ovaj uvjet zapiše u formi
•
• h(n) h(m) + c(n,m), h(t) = 0
•
• on podsjeća na nejednakost trokuta. Ovim se specificira da procjena
optimalne cijene od čvora n do ciljnog čvora nije veća od cijene luka
od n do m, uvećana za procjenu optimalne
STRATEGIJE PRETRAŽIVANJA
L
P = -----
T
Gdje su:
L – dužina puta do cilja,
T- ukupan broj čvorova razvijen prilikom pretraživanja.
STRATEGIJE PRETRAŽIVANJA
Strategije pretraživanja prostora stanja
• Promatrajući strategije pretraživanja stanja problema, mogu se primijetiti dva
pristupa:
pretraživanje na slijepo i
heurističko
• Pretraživati dopuštena stanja, a da se ne pokušava pronaći putove koji daju veće
izglede za uspjeh, naslijepo je pretraživanje. Ono u uvjetima velikog broja
kombinacija (velikog broja mogućih stanja) ne može u konačnom vremenu dati
zadovoljavajuće rezultate jer ne raspolaže informacijama gdje bi se mogao
nalaziti cilj.
• Složeni problemi se zato ne mogu rješavati pretraživanjem na slijepo.
Heurističko pretraživanje je ne pretražiti sva dopuštena stanja, nego pokušati
pronaći putove koji daju veće izglede za uspjeh. Ono primjenjuje izvjesna
znanja za usmjeravanje postupka pretraživanja. Cilj uporabe određenih znanja u
procesu pretraživanja je smanjiti ukupan
STRATEGIJE PRETRAŽIVANJA
• prostor pretraživanja (skratiti vrijeme pretraživanja).
• Heuristika je približna metoda koja nastoji pronaći
zadovoljavajuća rješenja.
• Može u određenim slučajevima značiti i pogrešan smjer kretanja u
pronalaženju rješenja, tj. voditi nas dužim putem u pronalaženju
cilja. Potpuno je jasno da je traženje rješenja temeljna metoda u
umjetnoj inteligenciji. Heuristika je empirijski postupak kojim bi
trebalo smanjiti broj koraka traženja rješenja. Programi umjetne
inteligencije zahtijevaju snažne računalne resurse i podosta
vremena za izvršavanje. Heuristički postupci ne samo da dovode
do rješenja, nego rješenje postižu na što je moguće kraći način.
Formalno se heuristika može definirati kao skup kriterija, metoda
ili načela za odlučivanje koji od više mogućih akcija biraju one
koje najviše obećavaju u postizanju nekog cilja. Ona je vještina
pronalaženja cilja.
STRATEGIJE PRETRAŽIVANJA
Pretraživanje prvo u dubinu
• Pretraživati prostor stanja moguće je ako se problem izrazi u obliku grafa.
Čvorovi takvog grafa odgovaraju (korespondiraju) stanjima djelomičnog
rješenja problema.
• Lukovi grafa koji spajaju čvorove, odgovaraju pojedinim koracima.
Uvijek na tom grafu jedan čvor određuje početno stanje, a jedan ili više
čvorova ciljno stanje. Prostor stanja problema može se prikazati kao četvorka
(N, L, S, G ), gdje N označava skup čvorova ili stanja grafa, L skup lukova
između čvorova, S početno stanje i neprazan je podskup od N, dok G označuje
ciljno stanje i neprazan je podskup od N.
• Prostor traženja je prostor u kojem tražimo neki objekt.
• Graf čini skup čvorova N1, N2,…Nn i skup lukova L koji povezuju parove
čvorova. Takav skup čvorova ne mora biti konačan. Lukovi se opisuju kao
uređen par čvorova.
• Svaki luk usmjerenog grafa ima određeni smjer. Ako usmjereni graf pokazuje
od čvora Nj prema Nk tada se Nj zove roditelj, a Nk dijete. Ako usmjereni graf
sadrži lukove (Nj, Nk) (Nj , Nl ) tada se Nk i Nl zovu braća jer imaju istog
roditelja. Čvor koji nema roditelja u grafu zove se korijen, a čvor koji nema
djece zove se list ili vrh.
Slika 3. Usmjereni graf
Slika 2. Pretraživanje prostora stanja
U najgorem slučaju, ako ima istu dubinu kao i cilj, taj algoritam
pretražuje svaki čvor. Moguće je izračunati srednji broj čvorova koji
se treba pretražiti na temelju broja čvorova (faktor grananja) i dubine
stabla pretraživanja. Takav srednji broj čvorova je aritmetička sredina
najvećeg i najmanjeg broja čvorova koje treba pretražiti.
STRATEGIJE PRETRAŽIVANJA
Pretraživanje prvo u širinu