Umjetna Sve Za Prvi Kolokvij

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 269

INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

INTELIGENTNI SUSTAVI – ZNAČAJKE I SVOJSTVA

Čovjek je inteligentan Sustav je inteligentan


Inteligentan sustav Zrcalni sustav čovjeka
Ovo se može postići Priroda naš partner Prirodu kopirati
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Funkcije inteligentnog sustava:

1. Prikupljanje i obrada informacija


2. Interakcija s vanjskim svijetom (radnom okolinom)
3. Komunikacija s čovjekom i /ili s drugim inteligentnim
sustavima
4. Prikupljanje znanja (učenje)
5. Rukovanje znanjem
6. Obrada znanja i zaključivanje
7. Planiranje
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Inteligentni sustav (R. Reddy, Carnegie Mallon University,


1996) svaki sustav koji pokazuje sljedeća svojstva:
1. Pokazuje prilagodljivo ciljno usmjereno ponašanje (engl.
goal-orientedbehavior):
Željeni cilj ili ciljeve predočiti pod ciljevima i rabiti znanje o
operacijama i postupcima koji prevode željeni cilj u slijed
akcija. Ako neki od pod ciljeva nije ostvariv sustav traži
alternativni put prema konačnom cilju sustava.
2.Uči na temelju iskustva:
Sustav ima algoritme za automatsku modifikaciju strukture i
funkcija na temelju iskustva koja stiče u radu - učenje
podrazumijeva da sustav može prikupljati, prikazivati i
upotrebljavati znanje.
3. Koristi velike količine znanja:
Količina znanja pohranjena u sustavu mora biti slična količini znanja koju
posjeduje čovjek da bi riješio takav problem.

4. Pokazuje svojstava svjesnosti:


Sustav ima sposobnost objašnjavanja svojeg ponašanja, nadgledanja i
dijagnoze stanja, te oporavka u slučaju pogreške.

5. Komunicira sa čovjekom prirodnim jezikom i govorom:


Sustav mora komunicirati sa čovjekom i drugim inteligentnim sustavima
na “prijateljski način” - zato upotrebljava prirodni jezik i govor. Takva
komunikacija podrazumijeva baratanje i dvosmislenostima i gramatički
neispravnim rečenicama.

6. Tolerira pogreške i nejasnoće u komunikaciji.

7. Odgovara u stvarnom vremenu.


INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

VRSTE INTELIGENTNIH SUSTAVA

1. Autonomni sustavi, koji samostalno planiraju akcije u realnom svijetu,


kao na primjer roboti na tekućoj traci.
2. Sustavi podrške, koji sudjeluju pri donošenju odluka, makar samostalno
ne mogu djelovati
3. Savjetodavni sustavi, koji posjeduju informaciju, s pomoću koje
upravljaju u cilju postizanja bolje učinkovitosti.

Nadalje:

1. Ljudi moraju s njima komunicirati jednostavno i prirodno


2. Moraju biti kompetentni i operirati s vanjskim i problemski usmjerenim
znanjem o svijetu, korisniku u radu koji ga koriste.
3. Moraju znati pojasniti svoje akcije.
4. Moraju biti adaptivni i učiti da bi se poboljšali.
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Gledano s drugog aspekta inteligentni sustavi:

1. Izražavaju adaptivno ciljno usmjereno ponašanje.


2. Uče na temelju iskustva
3. Upotrebljavaju velike «količine» znanja.
4. Komuniciraju s ljudima u upotrebi jezika i govora.
5. Toleriraju smetnje pri komuniciranju
6. Odgovaraju u realnom vremenu.
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

PREDSTAVLJANJE (PRIKAZ) ZNANJA U INTELIGENTNIM


SUSTAVIMA
Znanje: Stvari koje su znane, rezultati dobiveni percepcijom.
U užem smislu: Sistematizacija sudova koji su uniformno
organizirani pomoću načela koja zahtijevaju objektivnu
prikladnost.

Znanje: Spoznaja + Logika

Spoznaja – uključuje ne propozicijsko razumijevanje (npr.


kao što je percepcija, pamćenje i refleks) ali i
propozicijsko razumijevanje te razumijevanje sudova o ne
propozicijskom razumijevanju
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Logika – znanost koja proučava načela koja vode do


ispravnih zaključaka

Baza znanja u inteligentnim sustavima


Baza znanja – Apstraktni prikaz radne okoline ili svijeta
u kojem sustav treba rješavati zadatke.

Baza znanja:
• Znanje iz problemske domene
• Znanje o načinu kako se problem rješava
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Baza znanja sadrži:


• Objekte i relacije među njima
• Činjenice i nesigurne činjenice
• Pravila svijeta i decizijska pravila
• Opise motiviranja ,cilja i stanja sustava
. Metode rješavanja problema i heuristiku
• Opis ponašanja
• Hipoteze
• Opise tipičnih situacija
• Procese
• Ograničenja
Metaznanje
· Znanje iz problemske domene
· Znanje o načinu kako se problem rješava
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Jedan od središnjih problema na području umjetne inteligencije jest razvoj


dovoljno precizne i djelotvorne notacije za prikaz znanja u inteligentnom
sustavu – sheme za prikaz znanja (engl. Knowledge Representation
scheme).
Svojstva sheme za prikaz znanja:
• Primjerenost prikaza (engl. Representational Adequacy): Sposobnost
prikaza svih vrsta znanja koja su potrebna za određeno područje.
• Primjerenost zaključivanja (engl. Inferential Adequacy): Sposobnost
baratanja prikazanim strukturama na takav način da se izvode nove strukture
koje odgovaraju novom znanju dobivenom zaključivanjem na temelju starog
znanja.
• Djelotvornost zaključivanja (engl. Inferential Efficiency): Mogućnost
ugradnje dodatne informacije u strukturu znanja, koja se može koristiti za
usmjeravanje pažnje mehanizma zaključivanja prema obećavajućim
smjerovima.
• Djelotvornost učenja (engl. Acquisitinal Efficiency): Sposobnost lakog
prikupljanja znanja.
INTELIGENTNI SUSTAVI- UMJETNA INTELIGENCIJA

Taksonomija shema za prikaz znanja (J. Mylopoulos, H.


J.Levesque, 1984.)
Svijet – Zbirka objekata i/ili činjenica i zbirka odnosa koji postoje
među njima
Stanje svijeta – Zbirka svih objekata i odnosa među njima u
određenom trenutku u nekom svijetu.
Transformacija stanja – Prouzrokuje nastajanje i/ili nestajanje
objekata te promjene odnosa među njima.
Ishodišne točke:
Objekti i odnosi među njima  «mrežne sheme za prikaz
znanja»
Istinitost izjava o stanjima  « logičke sheme za prikaz
znanja»
Transformacije stanja  « proceduralne sheme za prikaz
znanja»

Teorija okvira (M. Minsky, 1975.) – aktivna organizacija iskustva


ARHITETKTURA INTELIGENTNOG SUSTAVA

Inteligentni sustavi, u okviru inteligentnih tehnoloških sustava, su


bazirani na primjeni umjetne inteligencije, odnosno strojne
inteligencije. Strojnu inteligenciju možemo definirati kao
sposobnost duplikacije mogućnosti senzorskog procesiranja i
donošenja odluka unutar računara. Dakle, inteligentni sustavi
trebaju biti sposobni da uče autonomno i da se adaptiraju u
neodređenom ili djelomično poznatom okruženju , bilo da se
radi o njihovoj poslovnoj ili tehnološkoj implementaciji.
Danas su prisutni različiti pristupi u realizaciji arhitekture
inteligentnih tehnoloških sustava, tako da se u daljem tekstu daje
prikaz osnovnih metodologija umjetne inteligencije koje se
koriste za rješavanje složenih problema koji se javljaju u
industrijskoj primjeni.
Primjena inteligentnih sustava poput sustava vizualne inspekcije,
autonomnih mobilnih robota ili autonomnih robo-kolica, podrazumijeva to da
ovi sustavi moraju raditi u dinamičkim, ne stacionaranim situacijama
rasuđivanja i procesiranja senzorskih informacija i to najčešće u realnom
vremenu. Kompleksnost inteligentnih sustava nije jedina teškoća koju trebaju
savladati, jer se često pojavljuju problemi vezani za to da se očit put realizacije
rješenja, od inicijalnog do finalnog stanja, teško ostvaruje. Zato se od
modernih tehnoloških sustava zahtijeva kooperativnost i fuzija mnogih
metodološki definiranih procedura baziranih na znanju, kako bi se ostvarilo
finalno stanje, odnosno cilj.

Razvoj umjetne inteligencije je direktno uticao na inteligentne tehnološke


sustave, počevši od razvoja sada već klasičnih ekspertnih sustava, preko pravila
baziranih na indukciji, do fuzzy sustava, genetičkih algoritama i umjetnih
neuronskih mreža (slika 14). Današnji trend razvoja inteligentnih tehnoloških
sustava pomjera težište ka adaptivnom procesiranju informacija, kamo prije
svega pripadaju umjetne neuronske mreže. U osnovi svih ovih inteligentnih
formaliziranih metodologija se nalazi manja ili veća sposobnost sustava da
uči.
Inteligentne formalizirane metodologije

Što je to učenje? U prirodi, iskustvo mijenja stanje nekog živog


organizma tako da novo stanje funkcionira bolje u istovjetnoj situaciji.
Taj proces se naziva učenje. Kod strojnog učenja je taj proces
formaliziran kroz matematičko-algoritamske podloge, tako da se kod
inteligentnih sustava primjenjuju različite strategije učenja koje koriste
principe umjetne inteligencije. U zavisnosti od načina zaključivanja i
nakon toga donošenja odluka o akcijama koje će inteligentni sustav
poduzeti, izvršena je klasifikacija strategija strojnog učenja.
Klasifikacija strategija učenja je prije svega zasnovana na stupnju
zaključivanja koji se traži kod onog koji uči, a široko je prihvaćena
sljedeća podjela na:
. rutinsko učenje,
. učenje na osnovu instrukcija,
. deduktivno učenje,
. induktivno učenje,
. učenje na osnovu analogije.

Rutinsko učenje je najniži nivo strojnog učenja, kao i učenja uopće.


Ovaj vid učenja se svodi na znanje koje je direktno ugrađeno u
inteligentni sustav, kroz programiranje ili kroz implementiranu
jednostavnu bazu podataka. Nikakvo dodatno procesiranje ili
transformacije podataka nisu potrebni da bi se sustav koristio, što
praktično znači da se ovakvo učenje može poistovjetiti sa "učenjem
napamet" koje je prepoznatljivo kod čovjekovog učenja.
Učenje na osnovu instrukcija je zasnovano na stečenom znanju od
učitelja ili knjige, a transformirano je u interni oblik kroz zaključke koje
mora da izvede učenik strogo držeći se danih instrukcija.

Deduktivno učenje podrazumijeva da učenik ili sustav koji je


podvrgnut učenju mora deduktivnim zaključcima izvršiti transformaciju
znanja, i da kroz preformuliranje, kompilaciju i organizacione procedure
dođe do istinite originalne formulacije.

Induktivno učenje se svodi na klasifikaciju stečenih iskustava u


odgovarajuće kategorije ili koncepte. Ovaj vid učenja ima mnogo pod
kategorija, poput učenja kroz primjere i učenja kroz eksperimentiranje.
Učenje kroz primjere uključuje proces akvizicije, tako što se opisi općeg
koncepta zaključivanja, kroz skup primjera dobivenih od učitelja, okruženja
ili preko baze znanja samog učenika, prosljeđuju učeniku. Učenje kroz
eksperimentiranje koristi koncept koji je dovoljno generalan da može
objasniti mnoge pozitivne primjere, tako da ako je izvor primjera
okruženje, učenik mora biti u mogućnosti izvršiti eksperimente od kojih će
dobiti valjane odzive.
Učenje na osnovu analogije kombinira deduktivne i induktivne vidove
učenja. Prvi korak je vezan za induktivno zaključivanje, koje je
neophodno da bi se našla zajednička pod struktura između domena
problema koji se rješava i jednog od analognih domena koji su
memorirani kao egzistirajuća baza znanja. Sljedeći korak podrazumijeva
preslikavanje mogućeg rješenja iz selektiranog analognog domena u
domenu problema preko deduktivne logike.

Za učenje se kaže da predstavlja rezultat interakcija između


onog tko uči i vanjskog svijeta-okruženja, na osnovu procesa
odlučivanja o svakoj novoj akciji. Prema prethodno danoj podjeli,
moguće je konstatirati da se učenje svodi na širok opseg akcija koje
mogu biti vezane ponekad i za trivijalno memoriranje iskustava, kao i za
veoma kompleksno zaključivanje koje je bazirano na kombinaciji
pojedinih opisanih vidova učenja. U literaturi se može prepoznati
pokušaj da se definira opći model učenja, koga najčešće čine četiri
koncepcijska elementa: element učenja (to može biti čovjek, stroj,...),
element realizacije, element kritike i generator problema.
Koncepcijski elementi općeg modela učenja
Element realizacije je odgovoran za izbor akcija, a modificira se u
cilju boljeg rješenja u toku realizacije akcija, i to na osnovu znanja
i povratnih veza koje ukazuju kako je element učenja realizirao
prethodni nivo znanja. Te povratne veze se dobivaju od elementa
kritike koji koristi informacije o standardnim performansama
sustava koji uči, kako bi, na osnovu senzorske informacije o
prethodnoj realizaciji naučenog, uopće došlo do modifikacije
elementa realizacije kroz stalnu dvosmjernu komunikaciju sa
elementom učenja (promjene - znanje). Generator problema, na
osnovu ciljeva učenja, ima zadatak da predloži nove akcije, slično
onome što rade znanstvenici kada izvode svoje nove istraživačke
eksperimente.
Da bi se ovi koncepcijski elementi općeg modela učenja doveli u vezu
sa konkretnom situacijom, promatrajmo primjer autonomnog mobilnog
robota. Element realizacije se sastoji od znanja i procedura koje
autonoman robot posjeduje pri izvršavanju zadatka istraživanja
okruženja: prepoznavanje objekata, kretanje u svim pravcima,
izbjegavanje prepreka i slično. Element učenja formulira ciljeve, kao
što su učenje optimalne putanje kretanja, učenje mape okruženja,
učenje o tome kako zaobići prepreku i kako izbjeći koliziju sa drugim
autonomnim mobilnim robotom. Element kritike osigurava povratne
informacije koristeći taktilne i vizualne senzore, i formulira pravila koja
trebaju ukazati na pogrešnu akciju robota (npr. suprotan pravac kretanja
robota), a element realizacije se modificira instaliranjem novog znanja,
kroz dvosmjernu interakciju sa elementom učenja. Povremeno,
generator problema se aktivira sa prijedlogom: promijeni rutu kretanja i
prati rub prepreka ili zida i vidi da li je ta putanja kretanja kraća, odnosno
efikasnija. Praktično, element učenja je odgovoran za poboljšanje
efikasnosti elementa realizacije.
Modeliranje okruženja, za prethodni
primjer, može se realizirati kao
deterministički konačni automat čija
promjena stanja zavisi od akcija
Autonomnog Mobilnog Robota (AMR).
Također je moguće formalizirati
modeliranje okruženja kao trojku:
(S, Q, W),
gdje je :
S skup mogućih stanja okruženja,
Q je skup mogućih izlaza od AMR-a ka
okruženju ( ili akcija koje AMR treba
obaviti) i
W je funkcija prijelaza, odnosno
preslikavanje Q u S.
Kada je u jednom trenutku stanje okruženja fiksirano,

AMR se može modelirati kao četvorka


(T, I, R, B),
gdje je:
T skup mogućih ulaza od okruženja ka AMR,
I je preslikavanje od S ka T koje određuje koji
ulaz AMR prima od okruženja kada je ono u
danom stanju,
R je funkcija pojačanja AMR-a koje preslikava
S u realne vrijednosti, i konačno
B je ponašanje AMR-a koje preslikava T u Q.
W-Funkcija prijelaza; I-Ulazna funkcija; R- Funkcija pojačanja; B- Ponašanje
AMR-a

Interakcija AMR-a sa okruženjem


Proces interakcije AMR-a sa okruženjem je
prikazan na gornjoj slici Okruženje je u
internom stanju (S), koje utiče na ponašanje
(B) AMR-a pomoću ulazne funkcije I, i
funkcije pojačanja R, a rezultira akcijom
AMR-a kroz odgovarajući izlaz. Taj izlaz sa
starim izlaznim stanjem okruženja
transformira okruženje u novo stanje
pomoću funkcije prijelaza W, što znači da
ovaj inteligentni sustav na taj način uči.
Autonomni mobilni robot je arhetipski
primjer inteligentnog sustava i kao što je
pokazano on organizira osobnu internu
strukturu u cilju adekvatnog ostvarenja ciljeva
u interakciji sa okruženjem. Drugim riječima,
on uči! Sprovedena istraživanja imala su
namjeru pokazati da poboljšanja u pogledu
programiranja, fleksibilnosti, efikasnosti i
vještini autonomnog industrijskog robota
potiču upravo od stupnja razvoja i realizacije
njegovog strojnog učenja.
Veoma je bitno uvesti i pojmove supervizorsko učenje
ili "učenje pod nadzorom" i ne supervizorsko učenje ili
"učenje bez nadzora". Kod supervizorskog učenja važi
da se i ulazna i izlazna stanja u bilo kojoj situaciji
mogu odrediti jer su uspostavljene determinirane
relacije između njih. Za ne supervizorski vid učenja
važi to da se u toku učenja ne mogu odrediti korektna
izlazna stanja, tako da se kod ovog učenja moraju
spoznati relacije između njegovih percepcija
korištenjem supervizorske metode učenja bazirane na
lokalnim informacijama i internim pravilima. Ne
supervizorsko učenje je poznato i kao kompetitivno
učenje ("competition learning").
UMJETNA INTELIGENCIJA
Definicije

Kada govorimo o prirodnoj inteligenciji onda pod tim pojmom najčešće


podrazumijevamo: nadarenost, oštroumlje, prirodne sposobnosti
pravilnog rasuđivanja, sposobnost snalaženja u novonastalim situacijama
na osnovu prethodno stečenog iskustva. Na osnovu ovakvog objašnjenja
teško je odgovoriti na pitanje:

-da li inteligencija predstavlja jednu zasebnu sposobnost ili je ona


skup različitih i nepovezanih mogućnosti?

Pored ovog pitanja za oponašanje ljudske inteligencije u računarima od


posebnog značaja je pronaći odgovore i na pitanja:
-Kako je znanje smješteno u ljudskom mozgu?
-Kako se stiče novo znanje?
-Što se događa tijekom procesa učenja?
-Što je to kreativnost?
-Kakav je utjecaj intuicije na donošenje odluke?

Odgovori na ova, kao i mnoštvo drugih, pitanja nisu samo u domenu


inženjerskog znanja nego i u domenu znanja psihologa, neurologa,
filozofa...

U uvodnom dijelu smo se dotaknuli i samog pojma umjetne inteligencije,


pa iako se izvjestan broj autora ne slaže sa terminom «umjetna
inteligencija» smatrajući da taj izraz nije najpogodniji, mi ćemo ipak
upotrebljavati ovaj izraz, bez obzira na primjedbe.

Postoji više definicija kojima se pokušava objasniti (definirati) pojam


umjetne inteligencije. Neke od njih su:
-Umjetna inteligencija je dio znanosti o računarima koja se bavi
određivanjem inteligentnih računalnih sustava tj. sustava koji
prikazuju karakteristike koje mi dovodimo u vezu sa inteligencijom
u ljudskom ponašanju-razumijevanju jezika, učenju, zaključivanju,
itd.

-Umjetna inteligencija je proces pomoću kojeg mehaničke sprave


mogu izvoditi zadatke za čije izvođenje ljudska bića zahtijevaju
razmišljanje.

-Umjetna inteligencija je znanost o izradi strojeva koji postaju


inteligentni kao ljudi.

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.

Međutim, nijedna od navedenih definicija nije uspjela napraviti


bitnu razliku koja je osnova za rad u umjetnoj inteligenciji.

Karakteristika ljudskog mozga jest njegova biološka crta koja ne


postoji kod računara, i upravo je ta biološka crta razlog
razilaženja znanstvenika u definiranju umjetne inteligencije.

Također se smatra da svi podaci koji zahtijevaju ljudsku


inteligenciju i misli ne spadaju u sferu umjetne inteligencije.
Proste aritmetičke operacije kao što su zbrajanje, oduzimanje, množenje i
dijeljenje zahtijevaju misaonu koncentraciju ljudskih bića, svakako za
vrijeme učenja i obično za vrijeme razvoja još kad ih izvode mehanički
«neinteligentni» računari i nisu od interesa za istraživače u umjetnoj
inteligenciji.

Tako i složeni matematički procesi koji uključuju razvoj visokih


stupnjeva obuke i vještine na matematičkom dijelu mogu pasti van
opsega rada na umjetnoj inteligenciji (naročito numeričke metode).

Osnovna razlika rada na umjetnoj inteligenciji i rada na drugim


oblastima računarske znanosti je da problemi koji su podložni
algoritmičkim rješenjima, u izvjesnom široko razumljivom značenju nisu
od važnosti u umjetnoj inteligenciji.
Istraživači umjetne inteligencije zanemarivali su odnosno
izbjegavali probleme: numeričkog procesuiranja, manipuliranja
tekstom zasnovano na sintaksi, sortiranja zabilježenih podataka,
kodiranje i dekodiranje informacija, proizvodnje i manipulacije
graficima (grafičko prikazivanje).

Njihov rad bio je usmjeren na probleme koji zahtijevaju zajednički


smisao, dosjetljivost, ekspertizu...

Tako je Geuarter svojom definicijom umjetne inteligencije dao


jedan novi pogled koji do njega nije korišten:

-Umjetna inteligencija bavi se inteligentnim ponašanjem


primarno s nenumeričkim procesima koji uključuju složenost,
nesigurnost i dvosmislenost i za koje ne postoje poznata
algoritmična rješenja.
Postoji još čitav niz definicija umjetne inteligencije u kojima je
ovisno od autora naglasak stavljen na čovjeka ili na računar.

Tako Simons izjavljuje da je glavni cilj umjetne inteligencije da


modelira, potiče, oponaša i udvostručuje psihološke fenomene.

Margaret Boden je otvorena i izravna u svojoj knjizi Umjetna


inteligencija i prirodni čovjek:

-Umjetna inteligencija nije znanost o računarima nego o


inteligenciji u misli i djelu. Računari su njen alat zato što su njene
teorije izražene kao računarski programi koji omogućavaju
strojevima da urade stvari koje bi zahtijevale inteligenciju da ih rade
ljudi.

Za razliku od M.Boden, Haugland naglašava središnju ulogu računara


u stimuliranju razvoja spoznajne znanosti:
-Vodeća inspiracija spoznajne znanosti je da u odgovarajućem stupnju
otuđenja, teorija o prirodnoj inteligenciji treba imati istu osnovnu
formu kao teorija koja objašnjava sofisticirane računalne sustave. Ova
ideja čini umjetnu inteligenciju ne samo mogućom nego i središnjim i
čistim oblikom psiholoških istraživanja.

Ovakav opis donosi jasno u razmatranje ključnu ulogu koju umjetna


inteligencija igra u postavljanju i razvoju interdisciplinarnih izučavanja,
sada poznatih kao znanost o spoznaji. Dok se središnja (glavna) tema
istraživanja u znanosti o spoznaji bavi ljudskom inteligencijom, postoji
interes među znanstvenicima za otvaranje mogućnosti zamjene naglaska
unutar umjetne inteligencije prema razvoju nove konkretizacije
inteligencije, koji može imati malo ili ništa zajedničko sa mehanizmima
ljudske inteligencije.
KRATKI POVIJESNI PREGLED RAZVOJA UMJETNE INTELIGENCIJE

Iako mlada znanost, UI je naslijedila mnoge zamisli, pristupe i tehnike iz


drugih disciplina:
• Filozofija (428 B.C. – do danas)
• Matematika (800 – do danas):
• Algoritam (arapski matematičar al-Khowarazmi, 9. stoljeće)
• Računanje
• Logika
• Vjerojatnost
• Psihologija (1879. – do danas)
• H. von Helmoholtz (1821. – 1894.) i W. Wundt – znanstvene metode
proučavanja ljudskog vida
• Moderno računarstvo (1949. – do danas)
• H. Robinson i istraživački tim A. Turinga – računski stroj Colossus
(1943.)
• K. Zuse – računalo Z-3
• J. Atanasoff, C. Berry, Iowa State University, (1940.- 1943.)
• H. Aiken, Mark I, II i III
• J. von Neumann –EDVAC (1946.)
• Lingvistika (1957. – do danas)
• B. F. Skinner, Verbal Behavior (1957.)
• N. Chomsky, Syntactic Structures (1955. – 1957.)
• Biologija
• W. McCulloch, W. Pitts (1943.) – osnovna znanja iz
psihologije i fiziologije, funkcioniranje neurona u mozgu,
propozicijska logika, Turingova teorija računanja  umjetni
neuron – osnova za konekcijski model
• D. Hebb (1949.) – učenje neuronskih mreža
• M. Minsky i D. Edmonds (1951.) – prvo računalo temeljeno
na neuronskoj mreži SNARC
• Izraz umjetna inteligencija – J. McCarthy, M. Minsky, A.
Newell, H. Simon,na konferenciji u Dartmouth College, 1956.
Neki važniji događaji na području AI:
Razdoblja u razvoju UI(AI):

• Faza inkubacije (1943.- 1956.)

• Faza ranog entuzijazma i velikih očekivanja (1952. – 1969.)

• Faza sustava temeljenih na znanju (Knowledge-based Systems) (1969.


–1979.)

• Faza kada AI postaje industrija (1980. – do danas)

• Faza povratka neuronskih mreža (1986.- do danas)


Povijest ; Uvod

Od davnina ljude privlači inteligencija - kako sam pojam inteligencije,


tako i mogućnost konstruiranja «INTELIGENTNIH STROJEVA» koji bi
mogli raditi samostalno. Tako napori da se razumije priroda inteligencije
sežu daleko u prošlost.

Filozofi stare Grčke su se bavili pitanjima inteligencije znanja i pravilnog


zaključivanja, a među njima posebno se isticao Aristotel (384-322). U
svojoj knjizi «Logika» Aristotel se bavi ispitivanjem da li se za neku
pretpostavku može reći da je istinita zato što se odnosi na druge stvari za
koje se zna da su istinite (ako se zna da su «svi ljudi smrtni» i da je
«Sokrat čovjek» može se zaključiti da je «Sokrat smrtan»).

U 13. stoljeću je Ramon Lull (1235-1316) opisao sustav kojim je


pokušao pomoću mehaničkog kombiniranja, simboličke notacije i
kombinatornih dijagrama ostvariti «inteligentan» sustav.
Tijekom 17. stoljeća G.V. Leibnitz (1646-1716) i Blaze Paskal (1623-1662)
pokušavali su konstruirati mehaničko-računski stroj za zbrajanje. Računski stroj
koji je konstruirao Charles Babbage bio je u stanju da po određenom algoritmu
izvršava operacije sa dekadnim brojevima.

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.

Već prvi rezultati u primjeni računara upućivali su na mogućnost računara da


preuzme vršenje određenih intelektualnih sposobnosti. Povoljni rezultati
istraživanja naveli su neke od znanstvenika da daju preuranjene izjave da se
ubrzo može konstruirati «Misleći stroj» ili «elektronski mozak». Zbog ovih
preuranjenih izjava vođene su brojne rasprave.

Krajem 50-tih do sredine 60-tih godina prošlog stoljeća problematika umjetne


inteligencije bila je dosta rasplinuta između fantastike, mašte, potencijalnih
mogućnosti i praktičnih ostvarenja.

Zanemarivanje razlike između potencijalne ostvarljivosti i obima praktičnih


problema, koji se nalaze na putu do ostvarivanja ideje, jedan je od čestih uzroka
nerazumijevanja mogućnosti umjetne inteligencije.

Ostvarivanjem praktičnih rezultata koji su našli primjenu u privredi, umjetna


inteligencija postaje zanimljiva za veliki broj znanstvenika iz različitih oblasti.
Danas postoje realizirani sustavi koji su u stanju autonomno obavljati
kompleksne probleme, kakve su jedino ljudi bili u stanju obavljati, i nije
rijedak slučaj da takvi sustavi obavljaju te zadatke daleko uspješnije od
ljudi.

U sprezi sa računarima strojevi postaju sposobni da rade samostalno, da


upravljaju sami sobom i da proizvode druge strojeve oslobađajući
čovjeka fizičkog i monotonog rada, prepuštajući mu rad na složenijim i
kreativnijim poslovima.

Sam termin «umjetna inteligencija» koristi se od sredine 50-tih godina i


za njegovo uvođenje zaslužan je John McCarty.

Smatra se da je izraz prvi put upotrijebljen u ljeto 1956.god. na sastanku


tadašnjih pet vodećih znanstvenika iz oblasti računarskih znanosti koji je
održan u Dartmount Colleg-u u SAD. Sam izraz je uveden da bi se što
više naglasile i što lakše objasnile mogućnosti budućih računara i
računarskih programa.
Iako još nije u cijelosti našla primjenu u svim segmentima proizvodnog
sustava, umjetna inteligencija ima vrlo važnu ulogu u postizanju veće
efikasnosti i kvalitete rada sustava.

TURINGOV TEST

Konačno dolazimo do najteže riječi – misliti. Radije nego pokušavati


definirati ovu riječ, Turing je predložio test, Turingov test, kojim bi se
moglo odlučiti da li je ili ne određeni stroj inteligentan ili ne. Test je u
originalu opisan kao igra. Citiram iz Turingovog članka (Turing 1950).
Znači postavljeno je pitanje: Mogu li strojevi misliti?
Kao zamjenu predložio je jedan test pa ako ga računalo savlada služio je
kao potvrda strojne inteligencije.

Test je izvorno poznat kao “IMITACIJA IGARA”


Igraju se troje ljudi, muškarac (A), žena (B) i ispitivač (C) koji može
biti bilo kojeg spola. Ispitivač ostaje u sobi odvojeno od drugo dvoje
(komunicira s njima preko terminala). Objekt igre za ispitivača je da
odredi tko je od ono dvoje muško, a tko žensko. Zna ih po oznakama
X i Y, i na kraju igre kaže ili “X je A i Y je B” ili “Xje B i Y je A”.
Ispitivaču je dopušteno da postavlja pitanja A i B prema:
- C: Hoće li X, molim vas, reći mi duljinu njegove ili njene
kose? Pretpostavimo da je X u stvari A, tada A mora odgovoriti. A
ima za cilj u igri da pokuša natjerati C da napravi pogrešnu
identifikaciju.
- Cilj igre trećeg igrača (u ovom slučaju B) je da pomaže
ispitivaču.

Sada se pitamo: “Što će se dogoditi kada stroj preuzme ulogu A u


ovoj igri?” Hoće li ispitivač odabrati pogrešno isto često kad se igra
igra ovako kao što bi pogriješio kad se igra između muškarca i žene?
Ova pitanja zamjenjuju naš original “Može li stroj misliti?”
Turingov test je često pojednostavljen na jedan u kojem stroj pokušava uvjeriti
ljudskog ispitivača da je čovjek. Razne verzije ovog jednostavnijeg testa su
postavljene, i zato što je moguće čak za neke više trivijalne strojeve da prevare
ljudskog ispitivača na neko vrijeme, jednostavna verzija se obično ne uzima
kao veoma koristan test inteligentnog stroja.

Naprimjer:, Joseph Weizenbaum-ov ELIZA program koristi neke veoma


jednostavne trikove ali čini se tolerantnom korisniku da je u mogućnosti izvršiti
dosta realistične, iako besmislene dijaloge.(1965)

Maudinov JULIA program je noviji i sofisticiraniji program dijaloga (1994).

U stranu od Turingovog testa, ne čini se vrijednim pokušavati pitati koje


mogućnosti bismo trebali zahtijevati od stroja prije nego je označimo
inteligentnom.Već postoje mnogi kompjutorski programi koji su postigli divne
stvari, uključujući planiranje optimalnih, gorivo- učinkovitim zrakoplovnim
rutama, simulirajući globalne meteorološke uvjete, raspoređujući uporabu
strojeva u tvornici i td. Jesu li ovi programi inteligentni? Da li bi se trebali
uračunavati kao dio subjektivne stvari AI-a?
Turingov test

(A. Turing, "Computing Machinery and Intelligence, Mind, 59, 433-460,


1950.)
Osnovna zamisao Turingovog testa – igra imitacije

• • Muškarac (A)

• • Žena (B)

• • Ispitivač (C) – muškarac ili žena


Cilj igre: Postavljanjem pitanja C mora odrediti koji je od dvoje
ispitanika muškarac a tko žena

• Cilj igre A: Uputiti C na pogrešnu identifikaciju

• Cilj igre B: Pomoći ispitivaču C

Što će se dogoditi ako stroj preuzme ulogu igrača A?

Hoće li ispitivač C praviti jednak broj pogrešaka kao u igri u kojoj


sudjeluju muškarac i žena?

Ako je broj pogrešaka jednak onda je stroj inteligentan (prema A.


Turingu)
Očekivane sposobnosti i svojstva (inteligentnog) stroja:

• obrada prirodnog jezika

• prikaz (predstavljanje) znanja

• automatsko zaključivanje

Totalni Turingov test

Ispitivač C može ispitivati i sposobnosti percepcije igrača A i B

Dodatne sposobnosti stroja:

• 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.

Ovakvo mišljenje je opasno, jer i sami sistemi koji mogu prevoditi


s jednog jezika na drugi su na ovom specifičnom polju mjerljivi
prema ljudskoj sposobnosti, ali predstavljaju jedan potpuno
drukčiji vid intelektualnog rada. Pritom je i kvaliteta ophođenja
putem formalnih simbola kompjutera potpuno različita od one
ljudskog razmišljanja.
John R.Searle je 1990. u časopisu Spektar Znanosti dao očiti
primjer za to kako kompjuter može simulirati inteligenciju:
Kineska soba
«Uzmite neki jezik koji ne razumijete. Ja osobno
ne govorim kineski: za mene su kineska slova tek
besmislene črčkarije. Zamislite sad da sam
smješten u sobu u kojoj se nalazi korpa puna
kartica s kineskim simbolima. Zamislite dalje da
mi je dana knjiga na mom materinjem jeziku
engleskom, koja daje upute kako se kombiniraju
kineski znakovi. Pritom se simboli identificiraju
samo na osnovu njihove forme/izgleda, bez da se
moraju razumjeti. Tako bi jedno pravilo moglo
glasiti npr: Uzmite 1 črčkavi znak iz korpe br.1 i
stavite ga kraj kitnjastog znaka iz korpe br.2.
Pretpostavimo da se izvan sobe nalaze ljudi
koji razumiju kineski i koji mi u sobu
dodaju kartice sa simbolima, koje ja onda
slažem pomoću pravila iz knjige, i kao
rezultat ponovo ih predajem njima.
Prevedeno na kompjuterski jezik, knjiga s
pravilima bi bila kompjuterski program ,
njezin autor-programer, a ja- kompjuter,
korpa sa simbolima- podaci, pružene mi
kartice-pitanja, a kartice koje bih ja
odaslao-odgovori.
Uzmimo da je knjiga s pravilima tako
napravljena da moji odgovori odgovaraju na
pitanja jednog rođenog Kineza, bez da se
primijeti da ja ne govorim kineski. Npr. mogu od
ljudi izvan sobe dobiti punu šaku simbola koji,
bez da ja to znam, znače:»Koja je vaša omiljena
boja?» Nakon proučavanja pravila iz knjige, ja
mogu odgovoriti snopom simbola, bez da isto
tako znam njihovo značenje:» Moja omiljena
boja je plava, ali zelena mi je isto draga.» I eto
tako bih položio Turingov test za kineski.»
Umjetna inteligencija proučava zamisli koje omogućuju računalima
obavljanje zadataka koji se ljudima čine inteligentnim (P. H. Winston,
1979.)
Mnoge ljudske aktivnosti kao što su, naprimjer, rješavanje slagaljki i
zagonetki, igranje igara, rješavanje matematičkih problema ili, pak,
vožnja automobila podrazumijevaju inteligenciju. Ako računala mogu
obaviti takve zadatke, tada se pretpostavlja da ta računala (skupa s
pripadajućim programima) imaju određen stupanj "umjetne
inteligencije" (N. J. Nilsson, 1971.).

Definicije AI svrstane u četiri kategorije (S. Russel, P. Norvig, 1995.):


• Sustavi koji misle kao čovjek
• Sustavi koji se ponašaju kao čovjek
• Sustavi koji misle racionalno
• Sustavi koji se ponašaju racionalno
PRAKTIČAN PRISTUP UMJETNOJ INTELIGENCIJI

Već smo vidjeli kako su različite definicije umjetne inteligencije dovele


do niza manje ili više nerješivih dilema. Razmotrimo sada jedan više
praktičan pristup:

-Umjetna inteligencija je znanstvena oblast u kojoj se istražuje kako


napraviti računare koji bi uspješno radili stvari koje u ovom trenutku
ljudi rade bolje.
Ova definicija teži određivanju približne granice oblasti kojom se bavi
umjetna inteligencija. Ona, doduše, govori samo o trenutnom stanju
znanosti, odnosno razvoja računara i programa, kada ukazuje na stvari
koje ljudi rade bolje od strojeva.
Sigurno da je takvih stvari prijašnjih godina bilo više nego danas.
Nejasno je da li neka oblast u kojoj računari nadmaše ljude automatski
izlazi iz okvira umjetne inteligencije. Također, nisu obuhvaćeni problemi
od potencijalno velikog značaja koje trenutno ne rješavaju ni ljudi ni
računari.
Ipak ova definicija predstavlja dobar okvir za teme koje obrađujemo jer
izbjegava filozofske zamjerke, kako po pitanju «umjetne», tako i po
pitanju «inteligencije».

Na osnovu navedene definicije možemo konstatirati da je glavni cilj


umjetne inteligencije:

-razviti računare koji su korisniji od danas postojećih

ili pak

-objasniti principe na kojima se inteligencija zasniva

To znači da bi stručnjaci za računarske znanosti, na osnovu rezultata na


planu umjetne inteligencije, trebali pronaći način da učine računare
korisnijim, dok bi psiholozima, lingvistima, filozofima i drugima trebalo
olakšati razumijevanje principa na kojima se inteligencija zasniva.
U cilju što boljeg opravdanja uvedenog termina «umjetna inteligencija»
često su razmatrane paralele između glavnih dijelova računarskog
sustava i njima analognih dijelova ljudskog mozga i njihovog rada.

Osnovni dijelovi digitalnog računara i njegovi analogni dijelovi kod čovjeka


Karakteristika Ljudski mozak Računar

brzina spor brz

dominantan način rezoniranja induktivno deduktivno

preciznost neprecizan precizan

prepoznavanje okoline brzo sporo

pamćenje zaboravan memorije sa dugim pamćenjem

kreativnost kreativan bez kreativnosti

emocije emotivan bez emocija

saznavanje učenjem programiranjem

prenošenje znanja komplicirano jednostavno (kopiranjem)

način funkcioniranja elektrokemijski električni


Brzina nervnog impulsa iznosi oko jedne milisekunde (0.001 sek), dok računari
rade na brzinama reda nanosekundi (0.000 000 001 sek).

Svoju sporost u odnosu na suvremene računare čovjekov mozak nadoknađuje


paralelnom obradom informacija, dok većina računara obrađuje informacije
sekvencijalno.

Početna istraživanja su imala za cilj davanje odgovora na pitanje da li su putem


računara rješivi zadaci koji se mogu nazvati intelektualnima. Zadaci su bili više
formalne prirode (logičke igre, dokazivanje teorema), te se pokazalo da je
sposobnost računara da vrlo brzo ispitaju velik broj mogućnosti veoma pogodna
pri rješavanju ovakvih problema, iako sami programi nisu u dovoljnoj mjeri
koristili znanje. Na osnovu prvih uspjeha smatralo se da se programi umjetne
inteligencije lako mogu isprogramirati i brzo izvršavati, ali se vrlo brzo uvidjelo
da to nije točno. Daljnjim istraživanjima došlo se do stanovišta da je računare
lakše obučiti specijaliziranim vještinama nego onima koje se kod ljudi
podrazumijevaju (prepoznavanje, snalaženje u običnim situacijama), a što je
posljedica neusporedivo jednostavnijeg načina formaliziranja ekspertnih
znanja.
Upravo suprotno se događa kod ljudi. Prvi zadaci sa kojima se dijete
susreće odnose se na opažanje okoline, sposobnost kretanja,
razumijevanje govora i tek u znatno kasnijem uzrastu savladavaju se
školski programi koji sadrže formalizirana znanja.

Klasifikacija sustava umjetne inteligencije

Među sustavima u umjetnoj inteligenciji od posebne su važnosti sljedeći:


*Sustavi za rješavanje čovjekovih uobičajenih zadataka:

-prepoznavanje slika i govora


-razumijevanje, generiranje i prevođenje prirodnih jezika
-snalaženje u svakodnevnim situacijama
-primjena ovih postupaka u upravljanju robotima
*Sustavi za rješavanje formalnih zadataka:

-igre (npr. šah)

-matematička logika, geometrija, integralni račun

-osobine programa

*Sustavi za rješavanje ekspertnih zadataka:

-konstruiranje, nalaženje grešaka, planiranje proizvodnje

-znanstvene analize i dijagnostika (medicina, kemija, pravo)

-financijska analiza

-programi za razvoj ovakvih sustava


PRIMJENE UMJETNE INTELIGENCIJE

Primjena umjetne inteligencije je slijedeća:

-Ekspertni sustavi

Osnova ovih sustava je korištenje znanja kojim raspolažu eksperti iz


pojedinih oblasti. Metoda koja se koristi jest logičko zaključivanje
zasnovano na pravilima koja nose ekspertna znanja.

-Obrada prirodnog jezika

Ljudska komunikacija se u najvećem dijelu obavlja putem jezika.


Također je razumijevanje pisanog jezika jedna od faza razumijevanja
govora. Dakle, vodeći se primjerom prirodnog jezika računarski sustavi
za razumijevanje jezika bi, kao i čovjek, morali posjedovati kontekstna
znanja koja bi omogućila zaključivanje na osnovu struktura poruka i
konteksta.
-Dobivanje informacija iz baze podataka

Značajna grana računarske znanosti je upravo rad na bazama podataka.


Pomoću baze podataka vrši se predstavljanje, čuvanje i dobivanje, na
zahtjev korisnika, proizvoljnog broja činjenica.
Sa gledišta umjetne inteligencije baze podataka predstavljaju predmet
interesiranja ukoliko odgovori na postavljena pitanja zahtijevaju
provođenje postupka rasuđivanja na osnovu činjenica iz baze podataka.

-Robotika

Iako se robotika izdvojila iz okvira umjetne inteligencije, istraživanja u


robotici pokazala su se korisnim za razvoj umjetne inteligencije. Često se
u ovoj oblasti traže odgovori na nepredvidive situacije u okolini, a koje
bi robot morao samostalno rješavati u realnom vremenu. Takvi zadaci se
po pravilu rješavaju sredstvima umjetne inteligencije.
-Generiranje programa
Generiranje programa se može shvatiti kao postupak koji na vrlo
visokom nivou prihvaća opis onog što treba uraditi i na osnovu toga
samostalno konstruira program za rješavanje problema.

-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

Pomoću njih se oponaša rad prirodnih neurona u mozgu.


Predstavljaju radikalno nov pristup u kojem se sa simboličkog
nivoa obrade informacija prelazi na tzv. podsimbolički nivo u
kome se i ne pokušava dati svjesno značenje pojmovima kao
što se sa pravilima radilo kod ekspertnih sustava. Neuronske
mreže su dio umjetne inteligencije koji se primjenjuje u
mnogim od navedenih oblasti, posebno u strojnom učenju,
prepoznavanju oblika i uopće u situacijama kada nisu poznata
pravila prema kojima bi bilo moguće dovesti u vezu ulazne
podatke i željeni izlaz iz sustava.
Pravci razvoja umjetne inteligencije

U dosadašnjem tekstu naveli smo neke argumente za i protiv mogućnosti primjene


umjetne inteligencije, tako da ćemo se ovdje osvrnuti na suvremena događanja u ovoj
oblasti.
Same početke umjetne inteligencije pratio je veliki optimizam i često nerealna
očekivanja. Međutim, brzo je došlo do razočarenja, te pojave suprotne struje koja je
potpuno negirala umjetnu inteligenciju i to ne samo u smislu stvaranja svojevrsnog
elektronskog mozga, već uopć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.

U oblasti matematike pomoću računara riješen je 70-ak godina star


problem četiri boje na koje ljudi samostalno nisu uspjeli odgovoriti.

( Problem četiri boje je definiran na sljedeći način: da li se svaka


zemljopisna karta može obojiti sa četiri boje tako da je svaka država
obojena jednom bojom, a ne postoje dvije susjedne države iste boje? )

Prije nekoliko godina napravljen je program koji je koristio sirovu snagu


računara, te ispitujući tisuće raznih slučajeva dao rješenje. Lista rezultata
je bila jako zanimljiva, ali toliko nepregledna da nitko nije ni pokušao
provjeriti da li negdje postoji greška. Tek nedavno razvijen je dokazivač
teorema EPQ u SAD-u koji je dao kratak i lako provjerljiv dokaz
problema. Dakle, i ovdje je napredak ostvaren u umjetnoj inteligenciji
kvalitativan a ne samo kvantitativan.
Umjetna inteligencija uspješno se primjenjuje u sustavima vjerojatne
dijagnoze utemeljene na grafičkim reprezentacijama neizvjesnosti u
sustavu VISTA. Ovaj sustav koristi NASA u kontroli svemirskih misija.

Također nalazi primjenu u sustavu strojne vizije gdje pomaže kirurzima u


operacijama mozga, zatim u sustavu za automatsko učenje primjenjivano
u analizi astronomskih podataka. Jedan ekspertni sustav se primjenjuje u
postupku odobravanja bankarskih kredita, a drugi u simulaciji
helikopterskih pilota. Neuronske mreže se koriste u predviđanju kretanja
na burzi i prepoznavanju rukopisa. Vojna ambulantna kola HMMWV sa
automatskim vozačem posjeduju senzore, kamere za stereoviziju,
program za prepoznavanje oblika, planiranje kretanja, itd. Ovo vozilo
postiže brzinu od 110km/h, a samostalno prelazi i 150km.
Na bazi automatskog prepoznavanja govora razvijen je
program LISTEN sa ciljem da se koristi u opismenjivanju.

Sve su ovo primjeri uspješne primjene umjetne inteligencije,


no i pored nesumnjivih uspjeha ne treba zaboraviti da ni
najnapredniji proizvodi u umjetnoj inteligenciji još uvijek
nisu u stanju izvesti ono što jednogodišnja beba radi bez
većih problema –hoda uspravno i stabilno, prepoznaje
roditelje i sl., tako da istraživačima još uvijek tek predstoje
glavni izazovi.
Strateški pravci razvoja umjetne inteligencije

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

Inteligencija lat. (inteligere – razabirati, umom shvaćati,


razumijevati) :

1. Naziv za radnike kod kojih prevladava umni rad nad


fizičkim (inženjeri, liječnici, časnici, službenici državnog
aparata); povijesno je inteligencija nastala uslijed
odvajanja umnog rada od fizičkog .
2. U dnevnom govoru: sposobnost snalaženja u novim
prilikama, sposobnost rješavanja problema i iznalaženja
novih prilagođenih reakcija; pronicavost, pronicljivost,
razumijevanje, razboritost; oštroumnost, bistrina uma,
pamet, obrazovanost, naobrazba, izobraženost, učenost,
visoka kvalificiranost;
UMJETNA INTELIGENCIJA

Inteligen(a)t, - nta, 2. mn. Inteligenata – čovjek koji pripada


inteligenciji
Inteligentan, - tna, -tno – U dnevnom govoru: razuman,
oštrouman, pametan, bistar, koji lako shvaća i rasuđuje,
obrazovan, kulturan
Inteligencija – svojstvo uspješnog snalaženja jedinke u
novim situacijama.
Inteligencija – opća sposobnost mišljenja pri rješavanju
problema.
Inteligencija – svrsishodno i prilagodljivo ponašanje u danim
okolnostima
(Psihologija, grupa autora, ŠK, Zagreb, 1992.).
UMJETNA INTELIGENCIJA

SUSTAV

Skup interaktivnih elemenata pasivnog djelovanja koji su


međusobno povezani vezama određenog stupnja jačine
koji sadrže tri osnovne funkcije i to:
- funkciju upravljanja,
- funkciju procesa rada i
- funkciju kontrole roka
i ima za cilj da ulazne komponente transformira u izlazne
komponente.
UMJETNA INTELIGENCIJA

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

Ako je sustav određen komponentama – koordinatama vektora ulaza


 
Xu i izlaza Xi onda se sustav može opisati relacijom:
 
S( Xu, Xi) = 0
 
Gdje su Xu i Xi vektorske funkcije vremena, određene u vremenskom
intervalu
to < t < t1
 
Pri ovom Xu i Xi uzimaju vrijednosti iz zadanih podskupova Xu i Xi
odgovarajućih funkcionalnih prostora, odnosno može se napisati da je:
 
Xu  Xu i Xi  Xi
UMJETNA INTELIGENCIJA

• Izučavanje sustava predstavlja u stvari proces izučavanja


relacija S tj. veza između ulaza i izlaza i predviđanja
ponašanja pojedinačnih i sklopa komponenti s ciljem
garantiranja projektiranih efekata sustava. Priroda objekta pri
ovim izučavanjima nije od posebnog utjecaja. Sustav je
najčešće veoma složena dinamička cjelina čiji su parametri
linearnih, nelinearnog ili kombiniranog karaktera.
Komponente ulaznih i izlaznih veličina su različite
kvalitativno i kvantitativno a funkcije su vremena, s obzirom
na razlike u vremenu pojave što određuje potrebu sposobnosti
akumuliranja sustava. Vremenske razlike pojave stanja su
određene postupkom transformiranja komponenti ulaza u
komponente izlaza pri čemu se ovdje pod postupkom
podrazumijeva način transformiranja komponenti. Potreba
sposobnosti transformiranja i akumuliranja uvjetuje osnovni
oblik sustava prema slici 1.
UMJETNA INTELIGENCIJA

Slika 1. Osnovni oblik sustava


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

U radu sustava osnovne izlazne komponente su:


• Proizvod,
• Transformirana i utrošena energija i
• Informacija o stanju
UMJETNA INTELIGENCIJA

Ako stanje sustava (prijenosnu funkciju) obilježimo sa S tada


je moguće između veličina sustava postaviti relaciju:

xi(t) = S xu(t)

pri čemu su xu(t) i xi(t) komponente ulaznog, odnosno izlaznog


vektora u funkciji vremena.
Promjena ulaznih veličina uzrokuje promjenu izlaznih
veličina. Na ovaj način ulazne veličine su uzroci a izlazne
posljedice procesa rada sustava.
UMJETNA INTELIGENCIJA

• Sustav u procesu rada elemenata sustava omogućuje


transformiranje ulazne u izlaznu veličinu pri čemu se
nastoji da efekti transformiranja budu maksimalni.
Veličine efekata transformiranja ovise u prvom redu
od:
• Kvalitete ulaznih komponenti,
• Efekata rada elemenata sustava,
• Kvalitete uklapanja elemenata sustava u cjelinu,
• Utjecaja okoline na sustav
i rezultat su usvojenih postupaka ili aktivnosti:
• Tehnološkog karaktera i
• Karaktera ljudskog rada
UMJETNA INTELIGENCIJA

1. KLASIFIKACIJA I VRSTE SUSTAVA


Klasifikacija sustava predstavlja njihovo razvrstavanje u razrede
prema nastanku, cilju itd. a može se predstaviti kao na slici 2.
Sustave možemo podijeliti prema:
• Načinu nastanka (prirodni, umjetni)
• Stupnju apstrakcije (apstraktni i realni)
• Odnosu prema okolinu (otvoreni, zatvoreni i djelomično
otvoreni)
• Funkciji vremena (statične, dinamične)
• Stupnju određenosti ( deterministički, stohastički,
nedeterministički)
• Tipu funkcioniranja (linearni, nelinearni)
• Stupnju složenosti-kompleksnosti (jednostavni, složeni)
• Stabilnosti (stabilni, nestabilni, indiferentni)
UMJETNA INTELIGENCIJA

Slika 2. Klasifikacija sustava


UMJETNA INTELIGENCIJA

• Prirodni sustavi su sustavi koji su nastali neovisno od čovjekove volje,


odnosno bez utjecaja čovjeka, te se ponašaju, razvijaju, rastu i raspadaju
pod utjecajem prirodnih zakona. To su na primjer astronomski,
geofizički, biološki, ekološki sustav itd.

• Tehnički sustavi su takvi sustavi koje je napravio čovjek s namjenom da


olakša svoj rad i život u procesu ostvarivanja svojih ciljeva. Djeluju na
podlogama prirodnih zakona u okviru ciljeva koje je definirao čovjek-
tvorac.

• Organizacijski sustavi su sastavljeni od različitih podsustava od


najprostijih do kompleksnih, a organizirao ih je čovjek koji je također dio
tih sustava, odredio im cilj, kvalitetu i funkcioniranje. Pod ovim sustavima
podrazumijevamo sve sustave kod kojih je uspostavljen odnos čovjek-
čovjek ili čovjek- stroj, s namjenom definiranja cilja. Cilj je glavno
obilježje i kvaliteta organizacijskih sustava. U uspoređenju s drugim
sustavima ciljevi organizacijskih sustava su dinamični i mijenjaju se u
funkciji djelovanja okoline u kojoj su postavljeni.
UMJETNA INTELIGENCIJA

Deterministički i nedeterministički sustavi


Prema kriteriju određenosti sustave dijelimo na determinističke (određeni) i
nedeterminističke (neodređene).

Ponašanje determinističkih sustava moguće je predvidjeti i eksplicitno opisati


matematskim relacijama na temelju poznavanja strukture sustava, kao i
zakona djelovanja funkcije upravljanja na sustav. Na temelju poznavanja
ulaznih podataka i funkcije upravljanja (cilja) moguće je predvidjeti
jednoznačno stanje u nekom vremenskom trenutku. U ovu kategoriju spadaju
tehnički sustavi: računalni sustavi, servosustavi itd.

Nedeterministički sustavi su takvi kod kojih na temelju podataka o stanju u


jednom presjeku i trenutku vremena pod djelovanjem funkcije upravljanja
(cilja) ne dobivamo jednoznačno rješenje u nekom drugom presjeku i drugom
trenutku vremena. U ovu kategoriju spadaju: meteorološka prognoza, kretanje
cijena na tržištu itd. Ovoj kategoriji pripadaju i organizacijski sustavi.
UMJETNA INTELIGENCIJA

Otvoreni i zatvoreni sustavi


• Otvoreni sustavi su oni sustavi koji izmjenjuju energiju, materiju i informacije
s okolinom. Promatrano iz ovog aspekta otvoreni sustavi imaju mogućnost
organiziranja ili samoorganiziranja, odnosno prelaženje iz stanja nižeg oblika
u stanje višeg oblika. U principu svi dinamični sustavi su otvoreni.
• Zatvoreni sustavi su oni koji nemaju interakciju sa okolinom na razini
materije, energije i informacija. Ove sustave karakterizira porast entropije zato
što takvi sustavi teže termodinaskoj ravnoteži.

Na slici 3. prikazani su elementi sustava i njihova međusobna povezanost, kao i


odnosi s okolinom.

Povezanost između elemenata sustava i njihov redoslijed tvore strukturu sustava.


Elementi preko kojih okolina direktno utječe na sustav, su ulazni elementi a
oni preko kojih sustav direktno utječe na okolinu su izlazni elementi. Sustav je
zatvoreni jer nema ni ulaznih ni izlaznih elemenata.
UMJETNA INTELIGENCIJA

Slika 3. Uz otvorene i zatvorene sustave


UMJETNA INTELIGENCIJA

Jednostavni i složeni sustavi


• Kriterij složenosti obzirom na kompleksnost nije jasno definiran.
Pojam složenosti sustava predstavlja sustav, koji imaju veliki broj
različitih objekata, koji imaju različite veze među sobom i
omogućavaju dostizanje postavljenog cilja sustava. Složeni sustav
je taj koji za svoje djelovanje treba veliku količinu upravljačkih
impulsa, koji su proporcionalni broju objekata sustava.

Prirodni sustavi
Podjela

Osnovna podjela sustava prikazana je na slici 4.


UMJETNA INTELIGENCIJA

Slika 4. Podjela sustava


UMJETNA INTELIGENCIJA

Prirodni živi sustavi: ljudi, životinje.


Prirodni neživi: voda, kamenje, staklo.
Umjetni neživi: kuće, automobili, računala

U drugoj skupini (nematerijalni) spadaju samo neživi


sustavi recimo računalni programi (funkcije,
aritmetički operatori, numeričke konstante, logični
operatori, logične konstante..) Uređeni sustavi recimo
država također spada u ovu skupinu, jer ona
predstavlja umjetnu organizaciju koja opredjeljuje
(uređuje) temeljne odnose između njenih elemenata.
UMJETNA INTELIGENCIJA

Svaki sustav je uključen u okolinu, drugim riječima on je


postavljen u okolini i u toj okolini vrši svoju funkciju
kriterija. Sustav i okolina su kategorije koje se
neprestano mijenjaju dopunjuju i izmjenjuju
informacije. Veza između sustava i okoline je često
nejasna i veoma složene.

Sustav se nastoji prilagoditi okolini i formirati


harmoničan sklad u međusobnom djelovanju. Izložen
različitim utjecajima sustav formira svoj takozvani
obrambeni mehanizam putem kojeg se sustav pokušava
usuglasiti s okolinom. Naziva se EVOLUCIJA. Slika 5.
prikazuje utjecaj okoline na sustav i obratno.
UMJETNA INTELIGENCIJA

Slika 5. Međusobni odnos okoline i sustava


UMJETNA INTELIGENCIJA

Sustav u vremenu sazrijeva i uvijek iznova se mora


prilagođavati utjecaju okoline. Naravno ovo je ujedno
uvjet opstanka sustava. U krugu neprestanog
prilagođavanja nema ničeg stalnog jer znanost,
tehnologija i ostalo stalno se razvijaju i te promjene
treba pratiti i koristiti za ova prilagođavanja.
Evolucijsko sazrijevanje i rast sustava prouzrokuje:

• samo organizacijsko povezivanje osnovnih komponenti


(kod živih sustava) i
• centralno usmjereno povezivanje osnovnih komponenti
(kod umjetnih sustava)
UMJETNA INTELIGENCIJA

Hijerarhijska struktura sustava


• U prirodi sustava je da teže hijerarhijskoj strukturi. Žive ćelije
(osnovne komponente) se povezuju u kompleksnu strukturu –
tkiva, tkiva u organe, organi u organizme i tako sve do
najrazličitijih oblika. Također i umjetni sustavi koji su plod
čovjekovog stvaranja imaju na hijerarhiji zasnovanu izgradnju.
Kod živih sustava hijerarhijska struktura je posljedica samo
organizacijskih i distributivnih tokova, koji potiču od osnovnih
komponenti (živih ćelija) ka bolje organiziranim stanjima.
Integracijski procesi teku odozdo na gore i nisu centralno
nadzirani. Osnovne komponente su autonomne jedinke, koje s
drugima komponentama tvore vrlo složene hijerarhijske
strukture. Te strukture se odlikuju velikom prilagodljivošću i
inteligentnim ponašanjem pod utjecajem nepredvidivih
događaja u okolini. Priroda najprije zasnuje sastavne dijelove
pa iz njih sastavlja složenije uzorke. Slika 6 prikazuje
hijerarhijsku strukturu živih sustava.
UMJETNA INTELIGENCIJA

Slika 6. Hijerarhijska struktura kod živih sustava


UMJETNA INTELIGENCIJA

Za žive sustave je značajno da tokovi izgradnje i združivanja teku u


istom smjeru i odvijaju se istovremeno. Oba procesa teku
spontano i bez unaprijed postavljenog cilja. Veliki broj
osnovnih komponenti i veliki broj individua u populaciji dopušta
da evolucija ne izabire uvijek najracionalnije putove.

Kod umjetnih sustava, koji su plod čovjekovog stvaranja (na


primjer: proizvodi, konvencionalni računalni programi),
hijerarhijska struktura nastaje centralizirano i prisilno, odozgo
prema dole, deterministički i s unaprijed postavljenim ciljem.
Slika 7. prikazuje hijerarhijsku strukturu umjetnih sustava .
UMJETNA INTELIGENCIJA

Slika 7. Hijerarhijska struktura kod umjetnih sustava


UMJETNA INTELIGENCIJA

Čovjek zamisli najprije proizvod (cjelinu) , a zatim njegove


sastavne dijelove. Pri razvoju i integraciji umjetnoga sustava
tokovi izgradnje i združivanja su suprotnih smjerova temeljena
na racionalnoj proizvodnji i odlučivanju. Najprije se definira
konfiguracija cjeline, zatim slijedi stvaranje osnovnih sastavnih
dijelova i na kraju integracija sastavnih dijelova u cjelinu koja
vrši funkciju cilja (sustav). Broj proučenih putova za izradu
umjetnoga sustava je zbog manjeg broja i unikatnosti osnovnih
komponenti razmjerno manja. Zato je razumski pristup pri
definiranju i izradi neizbježan i iz aspekta današnjeg načina
izrade je jedini moguć.
Dobra strana takvog racionalnog pristupa je u izvanredno brzoj
evoluciji od manje zahtjevnih konfiguracija do složenih
hijerarhijskih oblika sustava. Slaba strana je da umjetni sustavi
nisu izloženi dovoljno dugo široj okolini, koja bi kritično
vrednovala njihove učinke u duljem vremenskom djelovanju.
PREDSTAVLJANJE ZNANJA I RJEŠAVANJE ZADATAKA U
SUSTAVIMA UMJETNE INTELIGENCIJE
Proces rješavanja svakog zadatka uključuje dvije komponente:
•Predstavljanje zadatka,
•Strategiju rješavanja.
Mogući su različiti oblici predstavljanja znanja. Od izbora oblika
predstavljanja zavisi složenost opisa zadatka, ali i efektivnost
njegovog rješenja. To znači da postoji međuovisnost između
navedenih komponenti. Utvrđeno je da postoji obrnuta ovisnost
općenitosti predstavljanja i mogućnosti metoda rješavanja u
slijedećem smislu.
Specijalizovanija predstavljanja (problemski orijentirana)
daju efektivniju strategiju rješavanja.
Ilustrirat ćemo to na klasičnom problemu o sedam Keninsberških
mostova
Problem sedam mostova

Jezička postavka zadatka:

U Kaljingradu (ranije se zvao Keningsberg) rijeka Pregel nastaje


od starog i novog Pregela tako što pri ušću obrazuje otok. Obale su
povezane s ukupno sedam mostova, tako da je otok povezan s dva mosta
na starom, dva na novom Pregelu i jednim mostom sa dijelom između
pritoka. Na svakoj od pritoka, prije otoka postoji po jedan most.

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.

Naime, odustavši od slijepog pretraživanja na slici,


Ojler je pristupio globalnom ispitivanju svojstva prostora u
kojem se traži rješenje postavljenog problema. Uvođenjem
novog oblika u vidu grafa predstavljanja dolazi se do znanja
koje ima opći karakter i rješava postavljeni problem kao
specijalan slučaj. Ovakvo predstavljanje našeg problema
mostova prikazano je na narednoj slici:
Slika Predstavljanje problema u vidu grafa
Problem sedam mostova, u naprijed predstavljenom obliku poprima novu
formulaciju:

«Može li se graf na slici nacrtati jednim potezom tako da se ni jedna


grana ne crta dva puta»

Kraće, pitanje je da li je dati graf unikurzalan. Time se otvara općiji


teorijski problem unikurzalnosti ravnih grafova. Rješenje tog problema
sadržano je u teoremi koja glasi:

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!

Umjesto pregleda brojnih varijanti, sada se na


temelju teoreme o unikurzalnosti neposredno i
pouzdano nalazi rješenje našeg problema. Osim
toga, znanje sadržano u teoremi o unikurzalnosti
doprinosi efikasnosti rješavanju i mnogih drugih
problema koji se mogu svesti na unikurzalnost u
predstavljanju u vidu grafa.
Navedeni primjer ilustrira značaj iznalaženja adekvatnog
oblika predstavljanja problema. Ustvari , potrebne su
adekvatne transformacije koje provode opće oblike
predstavljanja u specijalizirane oblike koji osiguravaju
heuristički efikasnu strategiju.

Nažalost, za problem transformacije predstavljanja


još ne postoji opće teorijsko rješenje. Izbor oblika
predstavljanja i njegovo transformiranje prepušteni su
kreatoru. U osnovi radi se o izboru takvog oblika
predstavljanja koji je usklađen sa sredstvima koja pomažu
pri rješavanju i koji omogućuje globalno ispitivanje
prostora traženja rješenja radi njegovog sažimanja.
PROSTOR STANJA, SUSTAVI PRODUKCIJE I REDUKCIJE

Jedan od najznačajnijih koraka u rješavanju nekog problema je izbor načina


njegovog predstavljanja . Osim što pruža mogućnost lakšeg razumijevanja, ovaj
korak u znatnoj mjeri utiče i na način njegovog rješavanja . Predstavljanje
zadataka u prostoru stanja zasniva se na skupu stanja i skupu operatora koji
transformiraju jedno stanje u drugo. Rješenje zadatka svodi se na nalaženje niza
operatora kojima se neko od početnih stanja transformira u neko od konačnih
stanja.
Formalno, zadatak heurističkog pretraživanja u prostoru stanju definira se
kao uređena četvorka:

(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

Iz softverskog inženjerstva (engleski termin. Software engineering)


poznati su različiti životni ciklusi (paradigme) za izradu softverskih
proizvoda. Najopćiji prikaz razvoja softverskih proizvoda dat je na
narednoj slici:

Slika Klasičan životni ciklus razvoja softverskog proizvoda


Ne upuštajući se u detaljnije objašnjenje faza definiranja, razvoja i
održavanja, mogu se izdvojiti tri koraka, koja su u okviru sustava
umjetne inteligencije imaju slijedeće značenje:

•Precizno definiranje problema. U okviru ovog koraka


moraju se precizno definirati početna, kao i krajnja stanja
koja određuju prihvatljivo rješenje.

•Analiza problema. U okviru ovog koraka potrebno je


odrediti sve karakteristike problema i sagledati koji je
njihov utjecaj na izbor moguće tehnike u rješavanju danog
problema.

•Izbor i primjena odgovarajuće tehnike za rješavanje danog


problema (uključujući i način njegovog predstavljanja).
Praktična primjena navedenih koraka, kao i njihovo značenje, biće
ilustrirani na primjeru igre za čije se uspješno igranje smatra da je
potrebno posjedovanje kako znanja tako i inteligencije. Ta igra je šah.
Za izradu programa koji može da «igra šah», neophodno je prvo
definirati šta je početna pozicija na šahovskoj ploči, koja su pravila koja
omogućavaju legalne (dozvoljene) pokrete, kao i pozicije koje određuju
pobjedu jedne strane u odnosu na drugu. Također, potrebno je eksplicitno
definirati prethodno implicitno postavljeni cilj, a to je ne samo legalno
igranje šaha nego i ostvarivanje pobjede ako je to moguće.
Za problem igre šaha može se lako osigurati njegovo formalno i
kompletno opisivanje. Svaka pozicija predstavljana kao stanje figura na
šahovskoj ploči koje se može opisati korištenjem matrice 8x8, gdje svaki
element matrice sadrži simbol odgovarajuće figure na tom mjestu.
Prostor stanja čine sva moguća stanja figura na šahovskoj ploči. Legalni
pokreti omogućavaju pomjeranje figura, kojima se od početnog stiže do
ciljnog stanja. Sami pokreti se mogu opisati pomoću pravila koji se
sastoje od dva dijela:
•Lijeve strane, koja služi kao uzorak za uspoređenje sa stvarnom
situacijom na šahovskoj ploči,
•Desne strane, koja opisuje nastalu promjenu primjenom pravila.
Postoji nekoliko načina da se opišu ova pravila. Jedan od njih
prikazan je na narednoj slici.

Slika Jedan od načina za opisivanje pravila u igri šaha


Kod ovog načina svako moguće stanje opisuje se pomoću nekog pravila.
U slučaju da se pravila pišu na ovaj način, potrebno je napisati veliki
broj, budući da postoji približno 10120 mogućih stanja. Uopćeno
govoreći, korištenje velikog broja pravila uzrokuje dvije ozbiljne
praktične teškoće:
•Teško je definirati sva moguća pravila. Osim toga, oduzima previše
vremena i povećava se vjerovatnoća da se nešto uradi pogrešno.
•Uvećava se i složenost programa koji rukuju sa velikim brojem
pravila.
Zbog toga se u cilju što boljeg dimenzioniranja problema, traže
pravila koja će na što općiji način opisati legalne korake. U slučaju ovog
primjera, pravilo sa slike može se napisati na slijedeći općiji način:

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:

Dana su dva bokala, jedan od 4l, i drugi od 3l. Nijedan od


njih nema oznake za mjeru na sebi. Postoji crpka (pumpa) za
vodu pomoću koje se može puniti voda u bokale u
neograničenim količinama. Kako se može dobiti točno 2 l u
bokalu od 4l.

Prostor stanja ovog problema može se predstaviti kao


skup uređenih parova cijelih brojeva (X,Y) gdje je X =
0,1,2,3,4 i Y = 0,1,2,3. X predstavlja broj litara vode u bokalu
od 4l, a Y broj litara vode u bokalu od 3l. Pravila za rješavanje
ovog problema su prikazani na narednoj slici
1.
(X,Y X  4)  (4,Y) Napuniti bokal od 4 l

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:

(S, Sp, Sc, P)

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

U proceduri Produkcija nije dano na koji način treba birati


primjenljivo pravilo, pa je stoga ova procedura nedeterministička
Strategija upravljanja

Pod strategijom upravljanja (engleski termin: control strategy)


podrazumijeva se izbor pravila i pamćenje već oprobanih nizova pravila i
stanja baza podataka dobivenih njihovom primjenom. Kod većine
sustava umjetne inteligencije informacija koja je dostupna strategiji
upravljanja nije dovoljna da omogući izbor najboljeg pravila pri svakom
obraćanju koraku 4 u proceduri Produkcija. Tako se rad sustava
produkcije može označiti i kao proces pretraživanja (engleski termin:
search procss) u kome se ispituju pravila sve dok se ne otkrije da neki
njihov niz ne proizvede bazu podataka koja zadovoljava terminalni uvjet.
Efikasna upravljačka strategija zahtjeva dovoljno znanja o prirodi
problema koji se rješava, tako da izabrano pravilo u koraku 4 ima
najveću šansu da bude najbolje. Strategije upravljanja se mogu podijeliti
u dvije glavne skupine:
 bespovratne (engleski termin: irrevocable) i
 probne (engleski termin: tentative).

Kod bespovratne strategije upravljanja bira se primjenljivo pravilo bez


mogućnosti da se ono u narednim koracima preispita i zamjeni. U probnom
režimu upravljanja ostavlja se mogućnost povratka na korak u kojem je
pravilo izabrano, uz mogućnost da se ono zamijeni nekim drugim pravilom.
Razlikuju se dva osnovna tipa:
 Upravljanje s vraćanjem unazad (engleski termin: backtracking) i
 Upravljanje s pretraživanjem na grafu (engleski termin: graph search
control).
Kod upravljanja s povratkom unazad određuje se tzv. točka povratka
kada je pravilo izabrano. Ukoliko slijedeća uzastopna izračunavanja dovedu
do teškoća u formiranju rješenja, proces izračunavanja se prenosi na
prethodnu točku povratka, u kojoj se sada primjenjuje neko drugo pravilo i
proces se nastavlja.
Upravljanje s pretraživanjem na grafu pamti primjenu nekoliko
sekvenci pravila. Koriste se različite strukture grafova, kao i različite
procedure pretraživanja.
Upravljački režimi

Bespovratna strategija upravljanja

Na prvi pogled može izgledati da bespovratne strategije ne mogu


biti primjenljive na one zadatke kod kojih se zahtijeva proces
pretraživanja, već da je pogodnija metoda pokušaja i greške. Međutim,
nije uvijek tako.
Kao primjer za ovo može poslužiti strategija «najbržeg spuštanja ili
dizanja» pri određivanju ekstrema funkcije. U bilo kojoj točki
određujemo najstrmiji gradijent (lokalno znanje) za nalaženje
eventualnog maksimuma funkcije (globalno znanje). Za izvjesne vrste
funkcija znanje o najstrmijem gradijentu je dovoljno za nalaženje
rješenja «penjanje po brdu» (engleski termin: Hill-climbing) .
«Penjanje po brdu» predstavlja bilo koju numeričku proceduru za
pronalaženje maksimuma funkcije.
Direktno korištenje funkcije «penjanje po brdu», u bespovratnom sustavu
produkcije moguće je kada je potrebna funkcija realne procjene nad
globalnom bazom podataka. Strategija upravljanja koristi ovu funkciju
da bi se izabralo neko pravilo. Bira se (bespovratno) primjenljivo pravilo
koje proizvodi bazu podataka, dajući najveće uvećanje vrijednosti
funkcije. Funkcija mora biti takva da postiže svoju najveću vrijednost za
bazu podataka koja zadovoljava terminalni uvjet.
Primjenjujući strategiju najkraćeg rastojanja pri penjanju ili
spuštanju u igri slaganja, funkcija koja opisuje stanje može biti
negativan iznos broja polja čiji se cifre ne poklapaju s ciljnim stanjem.
Naredna slika pokazuje sekvencu stanja pri igranju ove igre.
Vrijednosti funkcije za sva stanja su evidentna. Slika pokazuje da jedno
od primijenjenih pravila duž puta ne povećava vrijednost dane
funkcije. Ako nijedno od primijenjenih pravila
Vrijednost funkcije «penjanje po brdu» u igri slaganja
ne dopusti uvećanje vrijednosti dane funkcije, bira se (proizvoljno)
pravilo koje ne smanjuje vrijednost. Ako ne postoje takva pravila, proces
se obustavlja. U općem slučaju strategija koja koristi funkciju «penjanje
po brdu» može imati više lokalnih maksimuma, koji ograničava metoda.
Na primjer, neka su ciljno i početno stanje kao na narednoj slici.

slika Ciljno (a) i početno (b) stanje


Bilo koje primjenljivo pravilo primijenjeno na početno stanje smanjuje
vrijednost dane funkcije, pa se sustav nalazi u lokalnom, ali ne i
globalnom maksimumu funkcije.
U mnogim konkretnim zadacima primjena neodgovarajućeg pravila
može usporiti, ili čak u potpunosti spriječiti nalaženje rješenja. Tada je
poželjno primijeniti probni režim upravljanja, po kome se primjena
nekog pravila ispituje, i ukoliko se njegova primjena pokaže nekorisnom,
vrši se povratak unazad i isprobava neko drugo pravilo.

Strategija s vraćanjem unazad

Vraćanje unazad je proces kod koga se strategija upravljanja


realizira probanjem. Po izboru pravila, ukoliko ono ne vodi do rješenja,
ono se «zaboravlja» i proces nastavlja sa drugim odabranim pravilom.
Ova strategija upravljanja može se primijeniti bez obzira na iznos koji
postoji o izabranom pravilu.
Slika Upravljačka strategija s vraćanjem unazad
Ukoliko ne postoji informacija o valjanosti izbora pravila, može se
nasumice birati bilo koje pravilo i zamijeniti nekim drugim, ukoliko
se pokaže pogrešnim. Čitav proces pronalaženja rješenja će biti
efikasniji ukoliko postoji informacija o ispravnosti izbora. Povratak
unazad će nastati svaki put:
a) kada se generira stanje koje je već postojalo u nizu stanja od
polaznog stanja,
b) kada se primjeni proizvoljan skup pravila a ne dostigne se
ciljno stanje ili
c) ukoliko nema više primjenljivih pravila.

Izabran broj pravila u koraku b) predstavlja dubinu procesa


pretraživanjima sa vraćanjem unazad (engleski termin: depth
bound).
Slika sa prethodne strane ilustrira sekvencu primjene «probnih»
pravila i trasu strategije sa povratkom unazad. Svako stanje je
obilježeno brojem da bi se označio red stanja koji proizvodi sustav
produkcije, pri čemu cio proces traženja nije prikazan.
Proces vraćanja unazad je efikasniji ako izbor pravila nije slučajan već je
uvjetovan informacijom što treba da bude najbolji potez. Ako je ova
informacija dostupna, tada će odgovarajuće pravilo biti izabrano i neće biti
potrebe za vraćanjem unazad. U navedenom primjeru korištena je funkcija
«penjanje po brdu» kao sredstvo za izbor pravila. Dok funkcija «penjanje po
brdu sa bespovratnim upravljačkim režimom može dovesti u «ćorsokak» u
lokalnom maksimumu, strategija sa vraćanjem unazad dopušta nastavljanje
alternativnim putanjama. U primjeru sa navedene slike nastaju slijedeće
situacije:

1. kolona: Ponavlja se stanje jednako nekom od već formiranih stanja na


putanji, tako da se odbacuje posljednji potez i primjenjuje «pomjeranje
praznog polja udesno» na stanje 5. Nastavlja se na narednoj koloni.
2. kolona: Odbacuje se zadnji potez iz istih razloga i primjenjuje potez
«pomjeranje praznog polja dole» na stanje 6. Nastavak na slijedećoj koloni.
3. kolona: Primijenjeno je 6 pravila a nije postignut cilj, stoga se odbacuje
zadnji potez. Ne postoji više neprobanih pravila da se primjene na stanje 6,
tako da se ponovo prelazi na stanje 5 i primjenjuje «pomjeranje praznog polja
dole». Nastavak na slijedećoj koloni.
4. kolona: Primijenjeno je pet pravila bez dostizanja cilj, i td.
Pretraživanje na grafu

Na strukturi prikazanoj u obliku grafa (i stablo je graf!) mogu se


prikazati primijenjena pravila i odgovarajuća stanja baze podataka.
Ovakva struktura naziva se stablom pretraživanja, i jedan primjer dan je
na narednoj slici:
Različita pravila koja se mogu primijeniti odgovaraju usmjerenim
lukovima koji uviru u čvorove rezultirajuće konfiguracije. Na vrhu stabla
pretraživanja je početna konfiguracija. Strategija pretraživanja na grafu
uvećava stablo sve dok se ne dostigne terminalni uvjet baze podataka.
Bespovratnom režimu upravljanja na stablu pretraživanja odgovora
samo jedan put naniže. Strategija sa vraćanjem unazad ne pamti cijelu
strukturu stabla pretraživanja, već samo tekući put da ga treba izmijeniti.
Slika Stablo pretraživanja u igri slaganja brojeva
Zadatak predstavljanja

Pored izbora dobre upravljačke strategije efikasno rješenje zadatka


nalaže dobar izbor stanja problema i terminalnih uvjeta. Očigledno je u
prednosti ona predstava koja ima manji prostor stanja. Postoje brojni
primjeri teških zadataka koji se uspješno rješavaju zahvaljujući efikasnoj
predstavi. Ponekad se prostor stanja zadatka može smanjiti uočavajući da
se neka pravila mogu odbaciti, ili kombinirati u «sniženju» pravila. Čak
kada se jednostavna transformacija i ne može izvršiti, moguće je da
potpuna preformulacija problema smanji prostor stanja.
Načini prikaza zadatka i procesi poboljšanja njegovog prikaza su
još nedovoljno ispitani, tako da je predstavljanje zadatka zavisno od
intuicije i iskustva onoga koji rješava zadatak. Ovo iskustvo dopušta da
se prepozna uprošćenje notacije, poput simetrije, ili sekvence pravila
koja treba kombinirati u makro pravilu. U naredna dva primjera biće
ilustriran način rješavanja zadataka pomoću produkcionih sustava.
Primjer1. Problem trgovačkog putnika. Trgovački putnik mora posjetiti
svaki od 5 gradova prikazanih na slici. Postoji definiran put i rastojanje
između svih parova gradova. Polazeći iz grada A, traži se najkraći put
kojim se posjećuje svaki grad samo jednom do konačnog povratka u A.

Slika Jedna trasa problema trgovačkog putnika


Globalna baza podataka predstavlja listu posjećenih gradova.
Inicijalna baza podataka je također opisana listom. Ne dopušta se da se
ime nekog grada pojavi više od jedan put (osim nakon posjete svim
gradovima).
Pravila odgovaraju odlukama usmjerenja na grad A, grad B,…, i
grad E. Pravilo se ne može primijeniti ukoliko upućuje na neki grad koji
je već posjećen. Ponovno upućivanje na grad A nije primjenljivo, ukoliko
već nisu posjećeni svi gradovi.
Globalna baza podataka započinje i završava sa gradom A
sadržavajući sve druge gradove koji zadovoljavaju terminalni uvjet.
Na slijedećoj slici predstavljeno je stablo pretraživanja dobiveno
pomoću strategije pretraživanja na grafu. Numeričke vrijednosti
obilježenih lukova predstavljaju brojčane vrijednosti rastojanja između
odgovarajućih gradova. Na slici (grafu) razvijena je samo putanja koja
predstavlja rješenje zadatka.
Slika Stablo pretraživanja za problem trgovačkog putnika
Primjer 2. Problem sintaksne analize. Drugi
problem koji se želi riješiti tehnikom produkcionih
sustava, predstavlja istraživanje dali je sekvenca
simbola, rečenica nekog jezika određena zadatom
gramatikom. Ovaj problem se naziva problem
parsiranja, t.j. rastavljanja rečenica (engleski
termin: parsing problem), a sustav produkcije se
može upotrijebiti za njegovo rješavanje. U općem
slučaju gramatika jezika se definira četvorkom (S0,
Vn, Vt, P), odnosno startnim simbolom, skupom
neterminiranih simbola, skupom terminalnih
simbola i skupom produkcija, respektivno.
Neka je dana slijedeća gramatika koja definira jezik:

Vn =  S, NP, VP, PP, P, V, DNP, DET, A, N 


Vt =  of, approves, new, president, company, sale, the
P =  DNP VP  S
V DNP  VP
P DNP  PP
of  P
approves  V
DET NP  DNP
DNP PP  DNP
ANP  NP
N  NP
new  A
president N
compani N
sale  N
the  DET
Potrebno je provjeriti da li slijedeći niz simbola predstavlja jednu
rečenicu ovog jezika.

The president of the new compani approve the sale

Za rješenje ovog problema specificirano je slijedeće:

 U ovom primjeru globalna baza podataka se sastoji od niza simbola Vn


i Vt. Inicijalna baza podataka predstavlja niz simbola koji se testira.
 Produkciona pravila su izvedena iz pravila gramatike. Desnom
stranom pravila gramatike se može zamijeniti sadržaj bilo koje lijeve
strane . Naprimjer, pravilom DNP VP  S se DNP VP može zamijeniti
sa S. Neko pravilo je neprimjenljivo ako rečenica (baza podataka) ne
sadrži lijevu stranu pravila. Također, pravilo se može primijeniti nad
bazom na razne načine, ovisno od sadržaja lijeve starne u bazi. Baza koja
se sastoji samo od simbola S zadovoljava završni uvjet.
Dio stabla pretraživanja za rješenje ovog problema dan je na slici

Slika Stablo pretraživanja iz primjera sintaksne analize.


Inverzni i dvosmjerni sustavi produkcije

Produkcioni sustav koji je do sada korišten u rješavanju igre slaganja,


radio je unaprijed, od početnog tanja do krajnjeg. Problem se može
riješiti i u povratnom pravcu polazeći od ciljnog stanja, inverzno
primjenjujući pravila i završavajući proceduru dostizanjem početnog
stanja. Iako nema formalnih razlika između sustava produkcije, koji rade
u direktnom i povratnom režimu, pogodno je napraviti razliku između
ovih sustava.
Ukoliko se u zadatku mogu jasno razaznati stanja i ciljevi i ako opis
stanja služi kao globalna baza podataka, tada se ovakav sustav
produkcije naziva direktni sustav produkcije (engleski termin: forward
production system), Pravila, koja primijenjena na opise stanja daju nova
stanja, nazivaju se F pravila. Ukoliko se koriste opisi cilja kao baza
podataka, tada je to inverzni sustav produkcije (engleski termin:
backward production system). Pravila, koja primijenjena na opise cilja
daju opise stanja podciljeva, nazivaju se B pravila.
U slučaju problema sa jedinstvenim inicijalnim i ciljnim stanjem
(naprimjer igra slaganja) ne postoji razlika da li se problem rješava
direktnim ili inverznim postupkom. Međutim, u nekim prilikama
bolje je rješavati problem jednim od dva postupka. Na primjer, ako
postoji velik broj eksplicitnih ciljnih stanja i jedno početno stanje,
tada je vrlo teško rješavati problem inverznim postupkom. U općem
slučaju, izbor postupka rješavanja ovisi od strukture prostora stanja.
U slučaju primjene dvosmjernog sustava produkcije, strategija
upravljanja odlučuje na svakom koraku da li će se na globalnu bazu
podataka primijeniti F ili B pravila. Kod ovog tipa pretraživanja
terminalni uvjet (kada je problem riješen)mora biti izražen i preko
dijela opisa stanja i preko dijela opisa cilja globalne baze podataka.
Odnosno, u bazi podataka takvog produkcionog sustava moraju se
naći i opisi stanja i opisi ciljeva. Na dio koji se odnosi na opis stanja
primjenjuju se F pravila, a na dio koji se odnosi na opis ciljeva B
pravila.
Specijalizirani produkcijski sustavi

Komutacijski sustav produkcije

Pod određenim uvjetima redoslijed pod kojim se primjenjuje skup


pravila nije od značaja. Kada su uvjeti ispunjeni, efikasnost rada sustava
produkcije može se povećati odbacivanjem suvišnih putanja pronalaženja
rješenja, koje su međusobno ekvivalentne, osim u redoslijedu. Kaže se da
je neki sustav produkcije komutativan, ako zadovoljava slijedeće uvjete,
bez obzira na globalnu bazu podataka D:
 Svako pravilo primijenjeno na D također je primjenljivo i na
proizvoljnu bazu podataka dobivenu primjenom pravila na D.
· Ako se ciljni uvjet postiže bazom D, tada se on postiže i
proizvoljnom bazom dobivenom primjenom pravila na D.
· Baza podataka koja se dobiva iz D primjenom neke sekvence
primjenljivih pravila, invarijantna je na permutaciju ove sekvence.
Na narednoj slici prikazana su tri pravila R1, R2, i R3 koja se mogu
primijeniti na bazu S1. poslije primjene nekog od ova tri pravila, sva tri
pravila se mogu primijeniti na rezultate baze.
Svojstvo komutativnosti sustava podrazumijeva da, pri produkciji
baze podataka označene su sa SG na danoj slici, ne koriste se svi nizovi
pravila za postizanje ovog cilja. Samo ona pravila koja su primjenljiva na
početnu bazu mogu se organizirati u proizvoljnu sekvencu i primijeniti
na bazu podataka za dostizanje rezultata nezavisno od reda.
Komutacijski sustavi produkcije posjeduju slijedeća važna
svojstva:
 Bespovratni režim upravljanja može se uvijek koristiti, pošto primjena

nekog pravila ne nalaže eventualnu njegovu zamjenu.


· Pravilo koje je ranije primijenjeno na bazu podataka može se
ponovo primijeniti.
Nema potrebe za osiguranjem mehanizma primjene različitih nizova
pravila. Primjena nekog pravila može produžiti proces rješavanja, ali
ga ne može onemogućiti, po završetku rada takva pravila se mogu
ukloniti iz niza.
Slika Ekvivalentne putanje u grafu
Dekompozicija produkcijskih sustava

Komutativnost nije jedini uvjet čije izvršenje dopušta izvjesnu slobodu


suglasno poretku primijenjenih pravila. Neka je dana inicijalna baza
podataka (C, B, Z) sa slijedećim produkcijskim pravilima

R1 : C (D, L)
R2 : C (B, M)
R3 : B (M, M)
R4 : Z (B, B, M)

i neka terminalni uvjet podrazumijeva sve M-ove u bazi podataka.


Upravljački režim pretraživanja po grafu mora ispitati i mnoge
ekvivalentne putanje dajući bazu koja sadrži sve M-ove kao što je
prikazano na narednoj slici. Redudentne (suvišne) putanje mogu
dovesti do neefikasnosti zbog toga što upravljačka strategija pokušava
ispitati sve putanje, a neke od njih se ne završavaju uspješno.
Način da se izbjegne ispitivanje redudentnih putanja je da se inicijalna
baza podataka dekomponira ili podijeli u posebne komponente koje se
mogu obrađivati neovisno. U danom primjeru, inicijalna baza podataka
se može dijeliti u komponente C, B, i Z. Pravila produkcije se mogu
primijeniti na svaku od ovih komponenti neovisno (moguće i paralelno);
i rezultati ovih primjena se mogu dijeliti i td, sve dok svaka komponenta
baze podataka ne sadrži sve M-ove.

Slika sekvence rješenja dekompozicije produkcijskih sustava


U cilju dekompozicije baze podataka neophodno je izraziti globalni
terminalni uvjet koristeći terminalne uvjete svake od komponenti.
Najvažniji slučaj nastaje kada se globalni terminalni uvjet može izraziti
kao konjukcija (združivanje) terminalnih uvjeta komponenti.
Produkcioni sustav kod koga se baza podataka i terminalni uvjeti mogu
dekomponirati naziva se razložnim (engleski termin: decomposible).
Osnovna procedura za dekompoziciju produkcionih sustava može se
predstaviti na slijedeći način:
procedure Razlaganje
begin
1 DATA := polazna baza podataka
2 Di := dekompozicija DATA;
individualni Di se sada razmatraju kao posebne baze podataka
3 while postoji Di koji ne zadovoljava terminalni uvjet do
4 begin
5 select D* iz Di koji ne zadovoljavaju terminalni uvjet
6 ukloniti D* iz Di
7 select pravilo R koje se mora primijeniti na D*
8 D := rezultat primjene R na D*
9 di := dekompozicija od D
10 dodati di na Di
end
end
Upravljačka strategija u proceduri Razlaganje mora izabrati neku
komponentu baze D* u koraku 5, i mora izabrati pravilo koje se
primjenjuje u koraku 7. Nezavisno od oblika ove strategije da bi se
zadovoljio korak 3 moraju se izabrati svi elementi u Di. Za neko
izabrano D* potrebno je izabrat jedno primjenljivo pravilo.
Iako je moguće obrađivati komponente baze podataka paralelno,
ovdje su interesantne upravljačke strategije koje obrađuju ove
komponente na serijski način. Postoje dva glavna načina uređenja
komponenti:

-komponente se uređuju u redoslijedu nastanka,


-komponente se dinamički uređuju tokom obrade
Fleksibilnije upravljačke strategije za razložite produkcione sustave dozvoljavaju da se
komponente baza podataka tijekom obrade reorganiziraju dinamički.
Strukture koje se nazivaju AND/OR (i/ili) grafovi služe za opisivanje produkcionih
sustava u režimu upravljanja, i jedan primjer dan je na slijedećoj slici. AND/OR graf se
sastoji od čvorova obilježenih globalnim bazama. Čvorovi obilježeni kao složene baze
podataka imaju skupove sljedbeničkih čvorova od kojih je svaki obilježen kao jedna
komponenta. Ovi sljedbenički čvorovi se nazivaju AND čvorovi zato što izvršenje
obrade složene baze podataka nalaže izvršenje svih komponenti baze podataka. Skup
AND čvorova je prikazan na primjeru polukrugom koji povezuje sve odgovarajuće
lukove.
Pravila se mogu primijeniti na komponente baze podataka. Čvorovi označeni
ovim komponentama baza podataka imaju sljedbeničke čvorove koji su označeni kao
rezultati primjena pravila. Ovi sljedbenički čvorovi se zovu OR čvorovi zato što
završetak obrade jedne komponente baze podataka čini suvišnim ostale obrade koje su
moguće na toj komponenti.
Čvor koji odgovara nekoj komponenti baze podataka i zadovoljavaju terminalni
uvjet prikazan je na slici dvostrukim kvadratom. Takvi čvorovi se nazivaju završni
čvorovi.
Rješenje zadatka predstavljeno je podgrafom AND/OR grafa. Rješenje podgrafa
je prikazano zatamnjenim lukovima grafa, a krajnji čvorovi podgrafa zadovoljavaju
terminalni uvjet.
Slika Primjer jednog AND/OR stabla
Vrste znanja o problemima

Može se reći da sustavi umjetne inteligencije


zahtijevaju znanje iz domena problema. Ovo znanje,
kao što je već rečeno, dijeli se u tri široke kategorije
koje pripadaju:
globalnoj bazi podataka,
pravilima i
upravljačkom sustavu.
Znanje o problemu koje je prikazano u globalnoj bazi
naziva se i deklarativno znanje (engleski termin:
declarative knowledge ). Na primjer, u inteligentnom
sustavu za pretraživanje deklarativno znanje uključuje
glavnu bazu podataka specifičnih činjenica.
Znanje o problemu koje je predstavljeno pravilima
naziva se proceduralno znanje /engleski termin:
procedural knowledge). U inteligentnom sustavu
za pretraživanje proceduralno znanje uključuje
informacije pomoću kojih se manipulira
deklarativnim znanjem.
Znanje o problemu koje je predstavljeno pomoću
upravljačke strategije naziva se upravljačko
znanje (engleski termin: control knowledge)
Upravljačko znanje uključuje znanje o različitim
procesima, strategijama, strukturama koje se
koriste za koordiniranje procesa cijelog rješenja
problema.
STRATEGIJE PRETRAŽIVANJA

Za uspješno projektiranje i implementaciju algoritma za


pretraživanje, neophodno je izvršiti njihovu analizu i
predvidjeti njihovo ponašanje. U tom slučaju mogu se
dobiti odgovori na pitanja poput: Da li se sigurno
pronalaze rješenja problema? Kada se pronađe rješenje
da li je ono i optimalno? Kolika je složenost procesa
pretraživanja, i koliko je potrebno vremena da se
okonča? Pronalaženje odgovora na ova pitanja, i niz
drugih koji se mogu postaviti, saznat će se kroz opis
različitih strategija pretraživanja.
STRATEGIJE PRETRAŽIVANJA

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.

Ukupna efikasnost produkcijskih sustava umjetne inteligencije ovisi


od stupnja informativnosti upravljačke strategije. Cijena
računalne primjene produkcijskog sustava može se podijeliti u
dvije kategorije:

• Cijenu primjene pravila i


• Cijenu upravljanja
STRATEGIJE PRETRAŽIVANJA
• Kompletno neinformiran upravljački sustav uzima na sebe mali
dio cijene upravljačke strategije zato što jedino proizvoljno
izabrano pravilo ne ovisi od skupih izračunavanja. Međutim,
takva strategija ima za rezultat visoku cijenu primjene pravila,
zato što mora pokušati primjeniti velik broj pravila dok ne nađe
rješenje.
• Kompletno informiranje upravljačkog sustava o domenama
problema, zahtijeva visoku cijenu upravljačke strategije u smislu
memorije i potrebnih izračunavanja.. Kompletno informirane
računalne strategije, međutim imaju minimalnu cijenu primjene
pravila, one vode direktno sustav do rješenja, kao što je
prikazano na slici 1.
Slika 1. Cijena izračunavanja kod produkcijskih sustava
STRATEGIJE PRETRAŽIVANJA
• Ukupna cijena izračunavanja kombinacija cijena izbora
pravila i cijene upravljačke strategije. Balansiranje ove
cijene je često prepušteno projektantu. Optimum efikasnosti
produkcijskog sustava se dobiva nekompletno informiranim
upravljačkim strategijama, pošto cijena potpuno
informiranog sustava može biti vrlo velika.
• Ponašanje upravljačkog sustava, pri izboru pravila može se
smatrati kao proces pretraživanja. Kod metoda penjanja po
brdu radi se o bespovratnom izboru pravila, dok u režimima
vraćanja unazad i pretraživanja na grafu proces
pretraživanja dopušta povratne izbore pravila.
STRATEGIJE PRETRAŽIVANJA
• Strategija s vraćanjem
• Strategija s vraćanjem je jednostavna rekurzivna strategija
pogodna za probleme koji ne zahtijevaju veliku količinu
pretraživanja (manjih memorijskih resursa).
• Procedura Backtrack
• (koja opisuje njen rad) ima smo jedan argument, DATA, koji
je inicijalno jednak globalnoj bazi podataka produkcijskog
sustava. Stanje sustava se shvaća kao baza podataka koja
opisuje sustav. Nakon uspješnog završetka rada, procedura
vraća listu pravila. Kada bi se ta pravila, redom, primijenila na
početnu bazu podataka sustava, proizvela bi ciljnu bazu
podataka. Ako procedura ne nađe takvu listu pravila, vratiće
FAIL (neuspjeh). Sadržaj procedure je slijedeći:
STRATEGIJE PRETRAŽIVANJA
• U proceduri je korišteno nekoliko lista, predikata i funkcija. Predikat
Term je istinit za argumente koji zadovoljavaju terminalne uvjete
produkcijskog sustava, kada se (po uspješnom završetku) vraća NIL,
prazna lista, pošto je sustav već u željenom stanju, pa nije potrebna
primjena nikakvih pravila. Predikat Deadend je istinit ako je njegov
argument DATA takav da se pouzdano zna da se nikako ne može doći
do cilja, tj. da je pretraživanje zapalo u «ćorsokak». U tom slučaju
procedura Backtrack vraća FAIL. Funkcija Apprules izračunava
pravila koja su primjenljiva na njen argument i uređuje (pravi
vrijednosti redosljed, bilo proizvoljno, bilo heurističkim mjerilima) list
pravila RULES. U koraku 4, ukoliko više nema primjenljivih pravila,
procedura Backtrack vraća FAIL, dok funkcija First bira najbolje
primjenljivo pravilo (pravilo sa čela liste RULES). Funkcija Tail briše
upravo izabrano pravilo iz liste. Izabrano pravilo R se primjenjuje nad
DATA da bi se dobila nova baza RDATA. PATH je lista pravila.
Procedura Cons u ovu listu dodaje pravila.
STRATEGIJE PRETRAŽIVANJA
• U okviru procedure Backtrack treba obratiti pažnju na
nekoliko činjenica. Prvo, procedura se završava uspješno (u
koraku 1) samo ako proizvodi bazu podataka koja
zadovoljava terminalni uvjet. Neuspješno završavanje može
nastati u koracima 2 i 4. Kada se unutar jednog rekurzivnog
poziva ne uspije postići cilj, procedura se vraća na višu
razinu. Korak 2 ispituje da li je moguće rješenje sa bazom
koja je u pitanju.
• U koraku 4 procedura se neuspješno završava ako su već
probana sva primjenljiva pravila. Rekurzivna primjena
procedure Backtrack na novu bazu RDATA započinje u
koraku 8. U koraku 9, ako rekurzivni poziv ne uspije, vraća
se na korak 4 i proba se sa slijedećim primjenljivim pravilom,
inače se vraća lista pravila koja osiguravaju uspješno rješenje,
dodajući pravilo R na čelo liste pravila PATH.
STRATEGIJE PRETRAŽIVANJA
• Ako bi u koraku 3, funkcija Apprules radila idealno (algoritam
geneze i ocjena pravila bili bi takvi da uvijek «pogodno»
pravilo dolazi na pravo mjesto liste), ne bi se pojavljivala
potreba za ispitivanjem raznih mogućih pravila, odnosno, broj
rekurzija bi bio jednak minimalnom broju potrebnih međustanja
pri prevođenju sustava iz početnog u ciljno stanje. U praksi se
ovo nikad neće desiti, jer bi takav rad funkcije Apprules značio
posjedovanje tolike količine informacija o sustavu koja bi
isključivala potrebu za bilo kakvim pretraživanjem. Na ovom
koraku se koriste raspoložive heurističke informacije o
problemu. Primjenljiva pravila mogu se urediti proizvoljno ako
ne postoji informacija o uređenju. U tom slučaju ekstenzivno
vraćanje unazad može izazvati neefikasnost procedure.
STRATEGIJE PRETRAŽIVANJA
• Dalje, svako rekurzivno izvršenje može zapasti u generiranje
novih i novih rekurzija. Ovo se može spriječiti ugradnjom
granične vrijednosti dubine rekurzije BOUND u proceduru. U
proceduru treba ugraditi i provjeru da li je novoproizvedena baza
podataka (stanje sustava) već bila u razmatranju. Zato se kao
argument procedure koristi lista baza DATALIST. Imajući ovo u
vidu, dolazi se do poboljšane procedure Backtrack, čiji opis
slijedi:
STRATEGIJE PRETRAŽIVANJA
• procedure Backtrack(DATALIST)
• begin
1. DATA : = First (DATALIST)
2. if Member(DATA, TAIL(DATALIST)) then return FAIL
3. if Term(DATA) than return NIL
4. if Deadend(DATA) then return FAIL then return FAIL
5. if Lenght (DATALIST)BOUND
6. RULES : = Apprules(DATA)
7. if Null(RULES) then return FAIL
8. R : = First (RULES)
9. RULES : = Tail(RULES)
10. RDATA : = R(DATA)
11. RDATALIST : = Cons(RDATA, DATALIST)
12. PATH : = Backtrack (RDATALIST)
13. if PATH = FAIL then goto 7
14. return Cons(R, PATH)
• end
STRATEGIJE PRETRAŽIVANJA
• U proceduri DATALIST je lista svih baza na putu unazad, a DATA je
posljednja kreirana baza iz liste već kreiranih. U koraku 2 se objavljuje
neuspjeh, ako je generirana baza koja je već bila u razmatranju. U koraku 5
procedura vraća «fail», ako je primijenjeno suviše pravila, pri čemu je
BOUND globalna promjenljiva definirana prije prvog poziva procedure. Lista
već razmatranih baza se proširuje dodavanjem baze RDATA u koraku 11.

• 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.

• Pod strategijom pretraživanja na grafu podrazumijeva se


iznalaženje puta u grafu od čvora koji predstavlja inicijalnu
bazu podataka do jedne baze podataka koja zadovoljava
terminalni uvjet produkcijskog sustava. Prije opisa ovih
algoritama biće izložena osnovna terminologija teorije grafova.
STRATEGIJE PRETRAŽIVANJA
• Po definiciji grafova, graf G se sastoji od nepraznog skupa V koji se naziva
skup čvorova grafa i skupa E koji je skup grana grafa. Po konvenciji se piše G
= (V, E). Svakoj grani grafa G pridružen je par čvorova grafa ( njen početak i
kraj). Ako je grana   E pridružena paru čvorova (u, v) gdje je u, v  V,
kažemo da grana  spaja susjedne čvorove u i v. Kod dijagrafa su sve grane
usmjerene, t. j. zna se koji je čvor početak grana, a koji njen kraj. Ulazni stupanj
čvora je broj grana čiji je on kraj. Izlazni stupanj čvora je broj grana čiji je on
početak. Ulazni i izlazni stupanj čine totalni stupanj čvora.
• Stablo se može smatrati kao ograničeni graf. Usmjereno stablo je acikličan
dijagraf koji ima jedan čvor koji se zove korijen sa ulaznim stupnjem 0, dok svi
drugi čvorovi imaju ulazni stupanj 1. Ako se izbriše korijen i njegove grane
koje spajaju čvorove na razini 1, dobiva se skup disjunktnih stabala. Kod
usmjerenog stabla bilo koji čvor koji ima izlazni stupanj 0, naziva se terminalni
čvor ili list, dok se svi drugi nazivaju čvorovi grananja.
STRATEGIJE PRETRAŽIVANJA
• Sekvenca čvorova (ni1, ni2,…,nik) takvih da svaki nij-1 za j =
2,…,k, naziva se put dužine k od čvora ni1 do čvora nik. Ako
postoji put od čvora ni do čvora nj, tada se za čvor nj kaže da je
dostižan iz čvora ni. na temelju gore navedenog, može se uočiti
da je problem nalaženja sekvence pravila koja transformira
jednu bazu podataka u drugu, ekvivalentan problem nalaženja
putanje u grafu.
• Pri najprostijoj vrsti problema, najčešće se želi pronalaženje
puta minimalne cijene danog čvora s (koji predstavlja inicijalnu
bazu podataka) i drugog danog čvora t (koji predstavlja neku
drugu bazu podataka). Često se javlja i situacija u kojoj se
pokušava pronalaženje između s i nekog skupa čvorova koji
predstavljaju baze podataka koje zadovoljavaju terminalni uvjet.
STRATEGIJE PRETRAŽIVANJA
Graf se može zadati:
 eksplicitno – tablicom čvorova i grana ( sa odgovarajućim
cijenama grana) i
 implicitno – zadavanjem početnog čvora baze podataka i
operatora generiranja potomaka.
Primjenom operatora generiranja potomaka na neki čvor
dobivaju se svi njegovi potomci. Ovaj proces se naziva
razvijanje čvora.
Postoje različite procedure za pretraživanje na grafu. U tekstu
koji slijedi dan je opis procedure koja je dovoljno opća i
uključuje mnoge varijante algoritama pretraživanja na grafu.
Procedura generira jedan eksplicitni graf G koji se naziva graf
pretraživanja i njegov podskup T koji se naziva stablo
pretraživanja.
STRATEGIJE PRETRAŽIVANJA
• procedura Pretraživanje grafa
• begin
• 1 Formirati graf pretraživanja G, koji se sastoji samo od startnog čvora s.
• Unijeti čvor s u listu OPEN.
• 2 Formirati listu CLOSED koja je na početku prazna
• 3 Ako je OPEN prazan, rad se završava neuspjehom.
• 4 Izabrati prvi čvor iz OPEN, ukloniti ga i smjestiti u CLOSED.
• Označiti ovaj čvor sa n.
• 5 Ako je n ciljni čvor, procedura se uspješno završava prikazujući putanju pomoću pokazivača
od n do s. (Pokazivači se određuju u koraku 7).
• 6 Razviti čvor n generirajući skup od M njegovih sljedbenika.
• Smjestiti sljedbenike n-a u G.
• 7 Napraviti pokazivače prema n svih elemenata koji do sada nisu bili u G (t.j., ni u OPEN niti
u CLOSED). Dodati ove elemente u OPEN. Za svaki element koji je već bio u OPEN ili u
CLOSED odlučiti da li treba preorijentirati njegove pokazivače prema n. Za svaki član koji je već
u CLOSED, odlučiti da li je za svaki potomak iz G potrebno preorijentirati njegove pokazivače.
• 8 Uraditi spisak OPEN pomoću neke proizvoljne ili heurističke procedure
• 9 goto 3
• end
STRATEGIJE PRETRAŽIVANJA
• Stablo pretraživanja je definirano pomoću postavljenih
pokazivača u koraku 7 algoritma. Svaki čvor (izuzev čvora s) u
G ima poenter usmjeren na jedan od njegovih roditelja u T.
Svaki mogući put do nekog čvora je definirana u T. Grubo
govoreći čvorovi u OPEN su čvorovi listova stabla traženja, a
čvorovi u CLOSED nisu čvorovi tipa listova. Točnije, u koraku
3 procedure čvorovi u OPEN su oni čvorovi stabla traženja koji
nisu još selektirani za razvoj (ekspanziju). Čvorovi u CLOSED
su bilo čvorovi (listovi) selektirani za razvoj koji ne generira
sljedbeniku grafu pretraživanja, ili nisu čvorovi listovi stabla
pretraživanja.
• OPEN-čvorovi koji su stvoreni, ali nisu još prošireni
• CLOSED- čvorovi koji su prošireni, čija su djeca na
raspolaganju algoritma pretraživanja
STRATEGIJE PRETRAŽIVANJA
• Procedura uređuje čvorove iz OPEN u koraku 8 tako da se
«najbolji» od njih selektira za razvoj u koraku 4. Ovo
uređenje može biti zasnovano na osnovu raznih heurističkih
ideja, ili na osnovu proizvoljnih kriterija. Ukoliko je
odabrani čvor za razvoj ciljni čvor, proces se završava
uspješno. Uspješan put se dobiva u slijedu pokazivača
unazad od ciljnog čvora do s. Proces se završava neuspješno
ukoliko stablo traženja nema preostalih čvorova (listova)
koji nisu već bili odabrani za razvoj. ( Neki čvorovi uopće
nemaju sljedbenike, tako da lista OPEN na kraju postaje
prazna). U ovom slučaju procedura se neuspješno završava
a ciljnim čvorovima se ne može pristupiti iz startnog čvora.
STRATEGIJE PRETRAŽIVANJA
• Korak 7 zahtjeva dodatna objašnjenja. Ako implicitni graf koji
se pretražuje predstavlja stablo, onda je sigurno da nijedan od
generiranih sljedbenika u koraku 6 nije prethodno generiran.
Svaki čvor (izuzev korijena) stabla je sljedbenik samo jednog
čvora i tako se generira samo jednom pri razvoju jedinstvenog
roditelja. Tako u ovom specijalnom slučaju članovi M-a u
koracima 6 i 7 nisu već bili u OPEN ili CLOSED. U ovom
slučaju, svaki član M-a se dodaje u OPEN i instalira u stablu
pretraživanja kao sljedbenik n-a. Graf pretraživanja je stablo
pretraživanja tijekom izvršenja algoritma i ne postoji potrebna
izmjena roditelja čvorova u T.
STRATEGIJE PRETRAŽIVANJA
• Ako implicitni graf koji se pretražuje nije stablo, moguće je da je neki od
članova M već bio generiran, t.j. da je već bio u OPEN ili CLOSED. Problem
se svodi na određivanje da li nova generirana baza podataka, koja je identična
jednoj ranije generiranoj bazi može biti skupa s aspekta izračunljivosti.
Ponavljanje čvorova vodi u redudentno izračunavanje sljedbenika. U koracima
6 i 7 procedure pretraživanja na grafu, pretpostavlja se da je vrijedno ispitivati
identitet čvorova.
• Kada proces pretraživanja generira neki čvor koji je već prethodno
generiran, nalazi (možda bolji) put u odnosu na onaj koji je prethodno
generiran u stablu pretraživanja. Cilj je da stablo pretraživanja sačuva
najmanje skup put (najbolji) od s-a do njegovih čvorova. (Cijena puta od s do
n u stablu pretraživanja može se izračunati zbrajanjem cijena elementarnih
stranica od n do s. Ukoliko nisu dane cijene stranica, pretpostavljamo da su
jedinične). Kada je nova nađena putanja manje skupa od stare, podešava se
stablo pretraživanja.
STRATEGIJE PRETRAŽIVANJA
Primjer 2.
• Proces podešavanja pokazat će se na primjeru sa slike 3. (a). Tamne strelice
označavaju pokazivače na roditelje čvorova u stablu pretraživanja.
Ispunjeni čvorovi su u CLOSED, a drugi u OPEN, u trenutku kada
algoritam izabere čvor 1 za razvoj. Pretpostavljaju se jedinične cijene
stranica. Kada se čvor 2 sa 1 razvija, njegov jedinstveni sljedbenik čvor 2 se
generira. Budući da je čvor 2 sa roditeljem čvorom 3 u stablu pretraživanja
već prethodno generiran, a čvor 2 je također u CLOSED sa sljedbenicima
čvorovima, 4 i 5. Potrebno je napomenuti da je roditelj čvora 4, čvor 6, zbog
najkraćeg puta od s-a do čvora 4 preko čvora 6. Dakle, algoritam sada
otkriva put do čvora 2 preko čvora 1 koji je kraći od prethodnog puta preko
čvora 3, pa se roditelj čvora 2 u stablu pretraživanja mijenja sa čvora 3 na
čvor 1. Cijena putova u silaznom smjeru čvora 2 u stablu traženja (t.j.
putanje do čvorova 4 i 5) se ponovo izračunavaju. Ove cijene su sada
također manje nego prije, što rezultira u promjeni roditelja čvora 4 sa čvora
6 na čvor 2.
Slika 3. Graf i stablo traženja prije (a) i poslije (b) razvoja čvora 1.
STRATEGIJE PRETRAŽIVANJA

Neinformativne procedure pretraživanja

Procedura je neinformativna, ako se uređenje čvorova u


skupu OPEN vrši proizvoljno, odnosno, ne koristi se
nikakva heuristička informacija iz domena problema. Zbog
uspoređenja sa drugim metodama, biće izložene slijedeće
dvije metode:

 Pretraživanje u dubinu (engleski termin: depth-first


search) i
 Pretraživanje u širinu (engleski termin: breadth-first
search)
STRATEGIJE PRETRAŽIVANJA
Procedura pretraživanja u dubinu

• Ovaj tip neinformativnog pretraživanja uređuje Čvorove u OPEN u silaznom


poretku njihovih dubina u stablu pretraživanja. Čvorovi na najvećoj dubini se
stavljaju prvi u listu. Čvorovi jednake dubine se uređuju proizvoljno. Zbog toga
što se prvo pristupa čvorovima u dubinu ( čvor na najvećoj dubini uvijek se bira
za razvoj) ovaj tip pretraživanja se zove pretraživanje grafa (stabla ) u dubinu.
• Osnovna ideja metode je da se u svakom čvoru izabere jedna alternativa
(prva lijeva), dok se ostale zanemaruju. Pretpostavlja se da su alternative
poredane s lijeva na desno. Ovo se sprovodi sve dok postoji mogućnost da se
stigne do odredišta na temelju (osnovu) izabrane alternative. Kada ta mogućnost
otpadne, vraća se na prethodnu razinu (čvor roditelj) u stablu, i biraju se novi
čvorovi za nastavak pretraživanja. Na taj način, pretraživanje se nastavlja sve
dok se ne stigne do ciljnog čvora, ili dok se ne ispitaju svi čvorovi u stablu i
ustanovi da put od korijena stabla do ciljnog čvora postoji. Ovaj metoda je
pogodan za «plitka» stabla. U nastavku je dan algoritam postupka, u kojem red
(engleski termin: queue ) pretstavlja listu pokazivača na čvorove u stablu.
STRATEGIJE PRETRAŽIVANJA
• procedure Pretraživanje_stabla_u dubinu
• 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 Ako prvi pokazivač u listi queue ne pokazuje na ciljni čvor,
• Ukloniti ga iz liste, i dodati na početak liste queue
• Pokazivača koji pokazuju na potomke danog čvora.
• end
• 5 return «put nije nađen»
• end
STRATEGIJE PRETRAŽIVANJA
• Procedura pretraživanja u dubinu generira nove baze podataka slično
neinformativnoj upravljačkoj strategiji sa vraćanjem unazad.
Korespondencija bi bila potpuno točna ako bi proces pretraživanja grafa
generirao samo jednog sljedbenika u nekom trenutku vremena. Strategije s
vraćanjem unazad koriste samo jedan put do ciljnog čvora i ne čuvaju čitav
zapis pretraživanja, zbog čega im se obično daje prednost u odnosu na
pretraživanje u dubinu.
• Slika 5. predstavlja stablo pretraživanja koje je generirano pomoću
procesa pretraživanja u dubinu ranije razmatranog primjera igre slaganja
brojeva. Čvorovi su označeni odgovarajućim bazama podataka i numerirani
su u poretku u kojem su izabrani za razvoj. Pretpostavlja se da je granica
dubine 5. Puna linija pokazuje rješenje koje uključuje primjenu pet pravila.
Vidi se da je pretraživanje u dubinu proces traženja gdje se ide duž putanje
dok ne dostigne graničnu dubinu. Tada počinje razmatranje alternativne
putanje iste dubine, ili manje, koje se razlikuju samo u posljednjem koraku, ili
u posljednja dva, i td.
Slika 5. Ilustracija pretraživanja stabla u dubinu
STRATEGIJE PRETRAŽIVANJA
Procedura pretraživanja u širinu

Ovaj tip neinformativne procedure pretraživanja uređuje čvorove


OPEN u rastućem poretku njihovih dubina u stablu
pretraživanja. Ekspanzija (razvoj)čvorova vrši se duž konture
jednake dubine. Prije nego što se pređe na ispitivanje potomaka
nekog čvora ispita se cijela razina u stablu kome dani čvor
pripada, odnosno svi čvorovi na danoj razini.
Primjer za usvojenu strukturu stabla je dan na slici 6. Procedura
ispituje sve čvorove u razini, sve dok se ne dođe do ciljnog
čvora.
Algoritam pretraživanja stabla u širinu je zadovoljavajući kada se
listovi, koji nisu istovremeno i ciljni čvorovi, ne nalaze suviše
duboko u stablu. Slijedi algoritam za ovu proceduru.
STRATEGIJE PRETRAŽIVANJA
• procedure Pretraživanje_stabla_u_širinu
• 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 Ako prvi pokazivač u listi queue ne pokazuje na ciljni čvor,
• ukloniti ga iz liste, i dodati na kraj liste queue
• pokazivače koji pokazuju na potomke danog čvora.
• end
• 5 return «put nije nađen»
• end
Slika 6. Ilustracija pretraživanja stabla u širinu
STRATEGIJE PRETRAŽIVANJA
Heurističke procedure

• Neinformativne metode pretraživanja, bilo pretraživanje u dubinu ili


pretraživanje u širinu su iscrpne metode nalaženja putanja do cilja. U praksi,
ove metode daju rješenje problema nalaženja putanje, ali su često
neprimjenljive u upravljanju produkcijskim sustavima u umjetnoj inteligenciji
zato što pretraživanje razvija suviše čvorova prije nego što se pronađe putanja.
Dakle, za njihovu upotrebu postoje praktična memorijska i vremenska
ograničenja.
• U mnogim zadacima moguće je koristiti neku informaciju kojom se
smanjuje obim pretraživanja. Informacija ove vrste naziva se heuristička
informacija (engleski termin: heuristic information ), a procedure pretraživanja
koje to koriste nazivaju se heurističke metode pretraživanja. Heurističke
metode znatno smanjuju pretraživanje, ali njihova upotreba ne garantira
nalaženje puta minimalne dužine. U većini praktičnih problema posebno je u
interesu da se minimiziraju kombinacije cijene putanje i cijene pretraživanja pri
dobivanju putanje.
STRATEGIJE PRETRAŽIVANJA
• Heuristička informacija koristi se za uređivanje čvorova u skupu
OPEN u 8-om koraku procedure. Pretraživanje_grafa tako da se
pretraživanje prostire duž onih graničnih sektora koji najviše
obećavaju. Metoda o kome je riječ koristi funkciju procjene
(engleski termin: evalution function) nad čvorovima. Funkcije
procjene pokušavaju da ustanove vjerovatnoću događaja da je
neki čvor na najboljoj putanji.
• Funkcije procjene označimo sa f . Vrijednost funkcije ocjene
u čvoru n, f(n), predstavlja procjenu cijene puta minimalne dužine
od startnog čvora do ciljnog čvora, pod uvjetom da prolazi kroz
čvor n. Po konvenciji čvorovi OPEN su uređeni u rastućem
poretku vrijednosti svojih f vrijednosti.
• Upotreba funkcije ocjene ilustrirat će se na ranijem primjeru
igre slaganja brojeva. Koristit će se jednostavna funkcija ocjene:
STRATEGIJE PRETRAŽIVANJA

f(n) = d(n) + W(n)


gdje je:
 d(n) dubina čvora n u stablu traženja , a
 W(n) broj netočnih pozicija brojeva u bazi podataka
rješenja pridruženih čvoru n.
Tako startna konfiguracija

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

cijene od m do cilja. Ograničenje monotonosti nameće prilično razuman zahtjev da


heuristička funkcija treba biti lokalno usuglašena sa težinom grana.
• U igri slaganja brojeva lako se pokazuje da h(n) = W(n) zadovoljava
ograničenje monotonosti. Ako se funkcija h mijenja na neki način za vrijeme
procesa pretraživanja, tada ograničenje ne mora biti zadovoljeno.
• Ako je zadovoljen uvjet monotonosti, tada za svako n važi
• g(n) = g * (n)
• Ovo podrazumijeva da A* automatski bira optimalan put do proizvoljnog
čvora izabranog za razvoj (otkrivanje). Stoga nije potrebna dopunska korekcija
stabla pretraživanja, t.j. nema potrebe da se provjerava da li su tek otkriveni
čvorovi već bili prisutni u CLOSED. To, opet znači nema potrebe za
promjenom pokazivača (nasljednih relacija) na stablu pretraživanja.
• Ako je zadovoljen uvjet monotonosti, vrijednost ocjene f na nizu čvorova
otkrivenih algoritmom A* ne opada.
STRATEGIJE PRETRAŽIVANJA
Heuristička snaga funkcije ocjene
• Izbor heurističke funkcije je ključna stvar u određivanju
heurističke snage algoritma pretraživanja A. Ako je h jednaka
najvećoj mogućoj donjoj granici za h*, osigurano je otkrivanje
najmanjeg broja čvorova bez narušavanja konzistentnosti
algoritma.
• Često se heuristička snaga može dobiti po cijenu
konzistentnosti korištenjem neke funkcije h koja nije donja
granica na h*. Tako dodana heuristička snaga dopušta da se rješe
mnogo teži problemi. U igri slaganja funkcija h(n) = W(n) (gdje
je W(n) broj pogrešnih zaposjednutih polja) je donja granica za
h*, ali ne osigurava dobru procjenu konfiguracije polja. Ovdje bi
postojao apsolutni minimum otkrivenih čvorova. Ovakvu funkciju
može se odrediti kroz potpuno pretraživanje uz sudjelovanje
svakog čvora u rješenju.
STRATEGIJE PRETRAŽIVANJA
• Bolja procjena, t.j. veća heuristička snaga, se dobiva pomoću funkcije
h(n) = P(n), gdje je P(n) suma rastojanja svakog broja od svog
«matičnog” mjesta. Međutim ovdje nastaju teškoće sa izmjenama
pozicija susjednih polja.
• U nekim slučajevima snaga heurističke procjene može se uvećati
množenjem heurističke funkcije sa nekom pozitivnom konstantom
većom od 1, odnosno
f=g+W*h

• Velika vrijednost za W daje veliki značaj heurističkoj komponenti, dok


mala vrijednost daje algoritmu karakter pretraživanja u širinu. Iskustvo
pokazuje da efikasnost pretraživanja raste ukoliko se W mijenja u
obrnutoj razmjeri sa dubinom čvorova u stablu pretraživanja. Pri
malim dubinama naglasak treba staviti na heurističku komponentu, dok
za veće dubine pretraživanje treba sve više da liči na pretraživanje u
širinu.
STRATEGIJE PRETRAŽIVANJA
• Kao što je rečeno, ukoliko je konstanta W vrlo velika, situacija je ista kao
kada je g(n)0. U mnogim problemima želi se jedino pronaći neki put do
ciljnog čvora, ne uzimajući u obzir cijenu rezultante putanje. U takvoj
situaciji, g se potpuno ignorira u bilo kojoj etapi pretraživanja, pa se ne vodi
briga o cijeni do sada razvijene putanje, već samo o preostalim naporima
pretraživanja da bi se dostigao ciljni čvor. Napor pretraživanja zavisi samo od
vrijednosti h i čvorova u OPEN i nezavisan je od vrijednosti g ovih čvorova.
Stoga se koristi fh kao funkcija procjene.
• Postoje tri značajna faktora koja imaju utjecaj na heurističku snagu
algoritma A:
 cijena putanje,
 broj čvorova razvijenih pri nalaženju putanje i
 računarski napor da se izračuna h.
• Kompromisno rješenje se nalazi u balansu ova tri faktora dajući
maksimizaciju heurističke snage.
STRATEGIJE PRETRAŽIVANJA
Srodni algoritmi
• Neki problemi se mogu rješavati koristeći produkcijske sustave čija
pravila se mogu koristiti u direktnom ili u inverznom smjeru. Jedna od
mogućnosti je da se oba smjera koriste istovremeno (od startnog čvora i
od skupa ciljnih čvorova). Proces se završava kada se dva fronta
pretraživanja susretnu. Dvosmjerni proces razvija mnogo manje
čvorova u odnosu na jednosmjerni.
• Kao primjeri mogu poslužiti dvosmjerna pretraživanja u širinu i
dvostrana heuristička pretraživanja.
• Među ostalim navest će se oni algoritmi čije znanje o problemu
može ponekad poslužiti da se prepozna da izvjesni čvorovi ne mogu biti
na putanji do ciljnog čvora. Smanjenje čvorova može biti izvedeno u
grafa pretraživanja modificirajući proceduru A da uključi ovaj test.
Takvim čvorovima dodijelit će se visoka vrijednost za h, tako da nikada
neće biti izabrani za razvoj.
STRATEGIJE PRETRAŽIVANJA
• Postoje također problemi pretraživanja u kojima se sljedbenici
nekog čvora mogu numerirati, a vrijednosti za h izračunavati
prije nego što se odgovarajuće baze podataka eksplicitno
izračunaju.
• Kao preostale najjednostavnije metode pretraživanja
prikazat će se dva algoritma:

 Pretraživanje stabla po rastojanju (penjanje po brdu) i


 Pretraživanje po snopu (engleski termin: beam search).
STRATEGIJE PRETRAŽIVANJA
Pretraživanje stabla po rastojanju
• Efikasnost pretraživanja se poboljšava, ukoliko postoji neki način da se
urede izbori u svakom čvoru, tako da se može reći da određeni izbor
više obećava od nekog drugog. Izbor se može izvršiti na osnovu
različitih kriterija, a koji će se primijeniti, zavisi od tipa problema koji se
rješava. Jedan od kriterija može biti pravolinijsko rastojanje od tekućeg
čvora do odredišnog čvora.
• Na slici 8. brojevi pored čvorova označavaju pravolinijsko
rastojanje od tekućeg čvora do ciljnog čvora. U svakom čvoru, na
osnovu danih rastojanja vrši se izbor čvora sa kojim se pretraživanje
nastavlja. Pri nailasku na list koji nije istovremeno i ciljni čvor vrši se
ponovno startanje algoritma od prvog čvora prethodnika koji ima još
neispitanih potomaka.
• Algoritam daje dobre rezultate kada se može odrediti rastojanje od
ciljnog do tekućeg čvora i kada se pravi izbor nalazi među procijenjenim
rastojanjima. Slijedi prikaz ovog algoritma:
STRATEGIJE PRETRAŽIVANJA
procedure Pretraživanje_stabla_po_rastojanju
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 Ukloniti prvi pokazivač iz liste queue, sortirati pokazivace
potomke danog cvora na osnovu ocekivanog preostalog rastojanja
od tih potomaka do ciljnog cvora i dodati odgovarajuce pokazivace
na pocetak liste
end
• 5 return «Put nije nađen»
end
Slika 8. Ilustracija pretraživanja stabla po rastojanju
STRATEGIJE PRETRAŽIVANJA
Pretraživanje po snopu
• Ova metoda je slična metodu pretraživanja po razinama, s tim što se ne
ispituju svi čvorovi na jednoj razini, već samo određeni broj (w), ili
manje, ukoliko ih toliko ne postoji. Ovi čvorovi se biraju na osnovu
nekog očekivanja (na primjer rastojanja do ciljnog čvora
pretraživanja). Ako stablo ima faktor grananja b, na svakoj razini biće
razmatrano najviše w * b čvorova i od njih odabrano najviše w
potomaka. Iako se vrši zanemarivanje nekih putanja, ovaj metoda je
dosta uspješan za različite strukture stabala.
• Na slici 9. dan je primjer pretraživanja stabla po snopu. Brojevi
pored čvorova predstavljaju pravolinijska rastojanja od tekućeg čvora
do ciljnog čvora. Simbol «x» pored nekih čvorova označava da se dani
čvorovi ne uzimaju u obzir prilikom izbora. Znak «-» označava da se
dani čvor ne uzima u obzir, ali ne zbog usvojenog kriterija
pretraživanja, već zato što se radi o listu koji nije istovremeno i ciljni
čvor.
Slika 9. Ilustracija pretraživanja stabla po rastojanju
STRATEGIJE PRETRAŽIVANJA

Algoritam pretraživanja stabla u snopu se koristi kada postoji način


da se odredi rastojanje od tekućeg do ciljnog čvora, i kada se
pravi put do ciljnog čvora nalazi među izabranim putovima na
svim razinama. Opis algoritma pretraživanja za ovu metodu
može se dati u vidu slijedeće procedure:
STRATEGIJE PRETRAŽIVANJA
• procedure Pretraživanje_stabla_po_snopu
• begin
• 1 Ştaviti pokazivač na korijen stabla u listu queue
• 2 while lista queue neprazna do
• begin
• if neki od prvih pokazivaca u listi pokazuje na ciljni čvor
• 3 then return «Put je nađen»
• 4 Ukloniti prvih w pokazivaca iz liste queue, sortirati pokazivace
• Na potomke prvih w pokazivaca, prema ocekivanom rastojanju tih
• potomaka od ciljnog cvora, izdvojiti prvih w pokazivaca iz
• sortiranog vektora, i staviti ih na kraj liste queue
• end
• 5 return «Put nije nađen»
• end
STRATEGIJE PRETRAŽIVANJA
Mjerenje performansi
• Heuristička snaga tehnike pretraživanja veoma zavisi od posebnih činilaca značajnih
za dani problem. Procjena heurističke snage podrazumijeva zaključak koji je
zasnovan na eksperimentu, a ne na računanju. Izvjesna mjerenja performansi mogu
se izračunati, međutim, iako ona ne određuju kompletno heurističku snagu, i korisna
su pri komparaciji različitih tehnika.
• Jedno takvo mjerenje se naziva P-usmjerenost (engleski termin: penetration)
odnosno, usmjerenost pretraživanja u pravcu cilja:

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

Putanja dužine n u grafu je uređeni niz čvorova N1 , N2 , N3 ,…, Nn . Svaki Ni ,


Nj+1 pokazuje neki luk. U grafu tipa stablo kaže se da je jedan čvor prethodnik
svih čvorova desno u listi, a sljedbenik svih čvorova lijevo u listi. Broj lukova
koji izlaze iz čvora zove se stupanj izlaza (faktor grananja b od engleske riječi
branching).

Slika 4. Uređeni niz čvorova


STRATEGIJE PRETRAŽIVANJA
• Pretraživanje naslijepo znači da nema informacija gdje bi se mogao
nalaziti cilj. Vrijeme potrebno za pronalaženje ciljnog čvora zove
se vrijeme traženja.
• Strategija pretraživanja prvo u dubinu generira stablo
pretraživanja s više razina (različite dubine čvorova). Algoritam
traženja prvo u dubinu može se izraziti sljedećim koracima:
 Neka je dana lista N početnih čvorova.
 Ako je N prazan (nema ni jedan čvor u stablu), izići i
signalizirati neuspjeh.
 Ako je n prvi čvor u N, tada izvaditi n.
 Ako je n ciljni čvor, završiti traženje i signalizirati uspjeh
(pronađen je traženi čvor).
 Obrnuto, dodati dijete od n na kraju N i vratiti se na korak 2.
Obilježje je pretraživanja prvo u dubinu što se uvijek nastoji tražiti
dublje, a ne šire u stablu.

Slika 5. Traženje prvo u dubinu

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

• Traženje prvo u širinu (breadth firast search ) temelji se na


slijedećem algoritmu:
• 1. Neka je dana lista koju čini skup N početnih čvorova,
• 2. Ako je N prazan, izići i signalizirati neuspjeh.
• 3. Ako je n prvi čvor u N, tada izvaditi n.
• 4. Ako je n ciljni čvor, završiti pretraživanje i signalizirati
uspjeh (pronađen je traženi čvor).
Slika 6. Pretraživanje prvo u širinu

Moguće je izračunati i za pretraživanje prvo u širinu srednji broj


čvorova koji se treba pretražiti na temelju broja čvorova i dubine
stabla pretraživanja. Takav srednji broj čvorova je aritmetička
sredina najvećeg i najmanjeg broja čvorova koje treba pretražiti.
Temeljni razlog primjene heurističkog pretraživanja je povećati
učinkovitost procesa zaključivanja putem nalaženja smjera procesa
traženja.

You might also like