You are on page 1of 9

Zadaci za prvu zadaću:

Predmet: Umjetna inteligencija


PMF – Studij računarstva i matematike

Napomene:

Ideja zadaća je da posluže kao mali projekti na kojima ćete nastojati raditi kao
ekipa. Za ove zadatke predviñamo da će vam trebati 3-4 tjedna.
Zadaci se predaju u obliku kratkih izvještaja (5-10 stranica), programa («source») i
prezentacija (PDF, PPT) na e-mailove (tomislav.smuc@irb.hr ;
matko.bosnjak@irb.hr).
Isto tako kontakti vezani uz nejasnoće (pitanja) najavljuju se e-mailom, a odgovori
se dobivaju, odnosno razgovor se dogovara istim putem.

Datumi:
a) formiranje ekipa i odabir zadatka – prijava na e-mail (31.10.2008.)
b) predaja izvještaja, programa i prezentacija 28.11.2008.
c) Prezentacije rezultata: 5.12.2008. (10-12)

Dodjeljivanje zadataka:
Svaka ekipa rješava različit zadatak. Prioritet pri dodjeljivanju je po principu «tko
prvi njemu dečko/djevojka». One ekipe koje prijave neki zadatak koji je već
odabran, moraju odabrati neki od preostalih zadataka.
Za zadatke koji su vezani uz neobrañene teme (algoritme), nastojat ćemo vam dati
dodatne materijale.

Ocjenjivanje:
Za svaki zadatak predviñen je maksimalan broj bodova = n*6, gdje je n broj
učesnika u rješavanju zadatka. Ukoliko ekipa ne uspije do kraja napraviti radnu
verziju, ocjena će zavisiti od stupnja do kojeg je algoritam izveden, te prezentacije
napravljenog.

Prezentacije:
Svaka grupa mora prirediti cca 15 minutnu prezentaciju, slobodne forme na kojoj
bi se predstavio sam rad. Uz samu prezentaciju potrebno je predati kratak report
(možete ga nazvati i seminarom) o samoj zadaći koji bi trebao sadržavati slijedeće
elemente:
• kratak uvod u algoritam (ukoliko se radi o već poznatim algoritmima, ako se radi
o nepoznatim, algoritam je potrebno adekvatno objasniti)
• kod rješenja
• rezultate
• komentare (zaključak)

Ovaj materijal naći će se na WEB-u danas 27.10.2008.

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
ZADATAK 1: BFS, DFS - labirinti (Broj učesnika: 3)
Realizirati algoritme BFS i DFS za rješavanje problema pronalaženja puta u
labirintu.

1. dio
• Generiranje labirinta riješeno je zadavanjem kvadratne matrice N*N. Na
toj matrici trebaju se definirati prepreke. Prepreke su definirane x,y
lokacijama u matrici, a definiraju se slučajno – zadavanjem njihovog
relativnog udjela Np – za koji vrijedi da je broj prepreka = Np*N*N. Za
zadane veličine N i Np program treba generirati slučajno definirani
labirint.
• Za veličine labirinta (10*10, 25*25, 50*50), te Np = 0.05, 0.1 i 0.25,
treba napraviti po 10 random labirinata za svaku kombinaciju. Početna i
krajnja točka po definiciji su na dijagonalnim točkama labirinta, koje ne
smiju biti prepreke.
• Prvi run DFS algoritmom može poslužiti za provjeru da li je problem
rješiv (da li su početna i završna točka spojive – graph connectivity
problem). Ukoliko se ne radi o spojenom grafu – treba generirati novi
graf.
2. dio
• Rješive probleme treba riješiti algoritmima BFS i DFS.
o Ulazni parametri algoritma čitaju se iz posebne (ulazne) datoteke
 N – veličina labirinta (kvadratna matrica N*N)
 Np – relativni udio prepreka
 So – opcija kojom se odabire tip algoritma (BFS ili DFS)
 Seed – za inicijalizaciju random number generatora
o Izlaz iz algoritma – spremanje u posebnu (izlaznu) datoteku
 Opis problema
• Originalni izgled labirinta (x,y lokacije s oznakama
prepreka i slobodnih lokacija, te početnog i
završnog čvora)
 Opis rješenja
• Izgled labirinta sa pronañenim putem izmeñu
početnog i završnog čvora
• Prosječna veličina grananja u problemu
• Napraviti statistiku po tipovima problema (N*N, Np) za svaki algoritam:
prosječna složenost, prosječno grananje.

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
ZADATAK 2: A* - Ulice Manhattana (Broj učesnika: 3)
Realizirati algoritam A* za rješavanje problema najkraćeg puta izmeñu dviju
točaka u grafu koji simulira mrežu ulica.
1. dio: stvaranje grafa
o Ulice su meñusobno ili paralelne ili okomite i spajaju se na čvorovima.
Broj ulica (ulaza) koji se spajaju na nekom čvoru u principu je izmeñu
1 i 4.
o Graf možete stvarati:
 a) jednostavno(«horse's way»): «ručno» - time je provjera
jedinstvenosti grafa osigurana ☺. U tom slučaju program treba
učitavati graf u obliku liste veza (ulica) i čvorova koje veza (ulica)
povezuje
 b) teže («king's way»): stvarati random graf uz gornje uvjete
(mreža) za zadani broj čvorova, te gustoću ulica zadanu prosječnim
brojem ulica koje se spajaju u čvoru. Graf treba biti povezan –
jedinstven, što se može provjeriti korištenjem DFS algoritma (na
kraju algoritma svi čvorovi moraju biti posjećeni).
 c) your way ??
o uz slučajno odabrani polazni i krajnji čvor algoritam treba riješiti problem
korištenjem A* uz dvije heuristike: euklidske udaljenosti i manhattan
udaljenosti (|xi – xj| + |yi – yj|) izmeñu točaka i i j.
o Za različite veličine (10, 20, 30 čvorova) i (približno) različite gustoće
mreže (2, 2.5, 3) treba ispitati rad ovih dviju heuristika, na većem broju
instanci (grafova), te izvući statistiku ponašanja za ove dvije heuristike.
o Komentirati rezultate.

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
ZADATAK 3: SA - N-kraljica: (Broj učesnika: 3)
Algoritam za rješavanje problema N-kraljica na bazi simuliranog kaljenja.

Definirati reprezentaciju problema, te operatore promjene trenutnog rješenja, kao i


evaluaciju funkcije cilja. Početno stanje zadaje se slučajnim razmještanjem N-kraljica
na ploči dimenzija N*N.
Ulazni parametri algoritma čitaju se iz posebne (ulazne) datoteke:
• N – veličina problema
• Seed – za inicijalizaciju random number generatora
• Np – Broj popravaka rješenja (koraka osnovnog algoritma)
• T – početna «temperatura» za Metropolisov kriterij
• Korištena heuristika promjene trenutnog rješenja
Izlaz iz algoritma- spremanje u posebnu (izlaznu datoteku)
• Ulazni parametri – opis problema
• Rješenje (pozicije kraljica na ploči)

Ispitati rad algorima na problemima veličine: N=20,50,100,200. Za svaku veličinu


problema generirati po 5-10 «run-ova» sa drukčijim (slučajnim) početnim rješenjem.

Izvještaj i prezentacija:
Osim opisa algoritma, treba prezentirati i rezultate te ih komentirati.

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
ZADATAK 4: Standardni genetski algoritam (binarna reprezentacija)
(Broj učesnika: 3)
• Napraviti standardni genetski algoritam baziran na binarnoj reprezentaciji za
rješavanje optimizacijskih problema s kontinuiranim varijablama.
o Prilikom selekcije koristiti tro-turnirsku selekciju
o Koristiti generacijski GA (Npop djece zamjenjuje Npop roditelja) uz
zadržavanje najboljeg rješenja
o Ulazni parametri algoritma čitaju se iz posebne (ulazne) datoteke
 N – generacija
 Npop – veličina populacije
 Tip rekombinacije
 Pr – vjerojatnost rekombinacije
 Pm – vjerojatnost mutacije
 Seed – za inicijalizaciju random number generatora
 Funkcija koja se rješava
 Dimenzija problema (vidi opis funkcija)
o Izlaz iz algoritma – spremanje u posebnu (izlaznu) datoteku
 Opis problema
• Ulazni parametri
 Za svaku generaciju (ako je broj generacija velik – svaka 10-ta
generacija):
• Srednja vrijednost funkcije cilja za populaciju
• Najbolja vrijednost funkcije cilja u populaciji
• Vektor najboljeg rješenja
 Nakon završetka algoritma
• Broj evaluacija funkcije cilja i ukupno vrijeme izvoñenja
algoritma te prosječno po jednoj evaluaciji funkcije cilja

o Pretpostavke: funkcije cilja realizirane su u posebnom potprogramu –


pozivaju se iz glavnog programa.
o Predvidjeti randomiziranje inicijalnog rješenja.
o Napraviti kao stopping kriterij maksimalan broj generacija.
o Realizirati mjerenje vremena izvoñenja.
o Za zadane funkcije napraviti eksperimente (po 10 eksperimenata) za 2, 5,
20 dimenzionalne varijante.
o Za zadane funkcije (vidi dodatak) napraviti eksperimente sa različitim
brojem jedinki u populaciji, različitim operatorima rekombinacije
(uniformni, rekombinacija u jednoj točki, rekombinacija u dvije točke), uz
fiksnu vjerojatnost rekombinacije (0.8) i mutacije p=2/Npop.

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
ZADATAK 5: Genetski algoritam («floating point» reprezentacija – aritmetički
operatori) (Broj učesnika: 3)
Ovaj algoritam ne zahtijeva transformaciju varijabli već su operatori rekombinacije i
mutacije definirani aritmetičkim operacijama – direktno na varijablama.

o Prilikom selekcije koristiti tro-turnirsku selekciju


o Koristiti generacijski GA (Npop djece zamjenjuje Npop roditelja) uz
zadržavanje najboljeg rješenja
o Ulazni parametri algoritma čitaju se iz posebne (ulazne) datoteke
 N – generacija
 Npop – veličina populacije
 Tip rekombinacije
 Tip mutacije
 Pr – vjerojatnost rekombinacije
 Pm – vjerojatnost mutacije
 Seed – za inicijalizaciju random number generatora
 Funkcija koja se rješava
 Dimenzija problema (vidi opis funkcija)
o Izlaz iz algoritma – spremanje u posebnu (izlaznu) datoteku
 Opis problema
• Ulazni parametri
 Za svaku generaciju (ako je broj generacija velik – svaka 10-ta
generacija):
• Srednja vrijednost funkcije cilja za populaciju
• Najbolja vrijednost funkcije cilja u populaciji
• Vektor najboljeg rješenja
 Nakon završetka algoritma
• Broj evaluacija funkcije cilja i ukupno vrijeme izvoñenja
algoritma te prosječno po jednoj evaluaciji funkcije cilja

• Aritmetička rekombinacija

x i' = a ⋅ x i + (1 − a ) ⋅ x j
gdje je a slučajni broj izmeñu a=rand(0,1) ,
x 'j = a ⋅ x j + (1 − a ) ⋅ x i
x i i x j su «roditelji», a x 'i + x 'j «djeca».

x = ( x1 , x 2 ,...xi ....x n ) je vektor rješenja (jedinka), n je dimenzija rješenja

• Uniformna mutacija
Za slučajno odabranu varijablu k jedinke odabrane za mutaciju:

x k' = x k + r ⋅ ∆x k , gdje je r slučajni broj izmeñu 0,1, (r=rand(0,1)), dok su:

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
∆x k = gornja _ granica(k ) − x k , za rand({0,1})=0
∆x k = −( x k − donja _ granica(k )), za rand({0,1}) =1

• Ne-uniformna mutacija
Za slučajno odabranu varijablu k jedinke odabrane za mutaciju:
x k' = x k + r ⋅ ∆( x k , t ) gdje je r slučajni broj izmeñu 0,1, (r=rand(0,1)), dok su:
∆( x k , t ) = ( gornja _ granica(k ) − x k ) ⋅ (1 − t / T ) m za rand({0,1})=0
∆( xk , t ) = −( xk − donja _ granica(k ) ⋅ (1 − t / T ) m ), za rand({0,1}) =1

U vašim eksperimentima koristite m=1, radi jednostavnosti, a t je broj trenutne


generacije u GA i T je ukupan (zadani) broj generacija.

• Za zadane funkcije napraviti eksperimente (5-10 eksperimenata) za 2, 5, 20


dimenzionalne varijante problema.
• Za zadane funkcije (vidi dodatak) napraviti eksperimente sa različitim brojem
jedinki u populaciji (20,50,100), različitim operatorima rekombinacije (uniformni,
rekombinacija u jednoj točki, rekombinacija u dvije točke), uz fiksnu vjerojatnost
rekombinacije (0.8) i mutacije p=2/Npop.

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
Dodatak:

Funkcije za genetske algoritme


Sve funkcije imaju varijabilan broj dimenzija, i zadatak je naći njihov minimum na
intervalu vrijednosti koji je zadan. Funkcije se mogu realizirati zasebno, pa se pozivaju iz
programa prema nazivu, ili mogu biti sve u zasebnom potprogramu.

Ackley

n
1 n 2 1
− 0.2 ⋅ ∑ xi
n ∑ cos 2πxi
f (x) = 20 + e − 20 ⋅ e n i =1
−e i =1

-32.768 ≤ x(i) ≤ 32.768.


global minimum
f(x) = 0, x(i) = 0, i=1:n

Rastrigin:

n
[
f (x) = 10n + ∑ xi2 − 10 cos 2πxi ]
i =1

-5.12 ≤ x(i) ≤ 5.12


global minimum
f(x) = 0, x(i) = 0, i=1:n

Rosenbrock (banana funkcija)

n
[
f (x) = ∑ 100( xi − xi2−1 ) 2 + (1 − xi −1 ) 2 ]
i =1
-2.048 ≤ x(i) ≤ 2.048
global minimum
f(x) = 0, x(i) = 1.0, i=1:n

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.
Ostali zadaci: Neobrañeni algoritmi
Uz navedene zadatke, postoji mogućnost odabiranja nekih od, tokom nastave,
neobrañenih algoritama. U tom slučaju, navedene algoritme je potrebno dobro proučiti i
opisati u samom radu. Uz to je potrebno odabrani algoritam iskodirati na nekom
standardnom (ili nestandardnom, još bolje) i netrivijalnom primjeru na kojem se može
vidjeti/objasniti kako algoritam radi (TSP, križić-kružić...šah?). Broj učesnika po ovim
zadacima jest 2.

Ponuñeni algoritmi su:

ZADATAK 6: Minimax algoritam


ZADATAK 7: Alpha-beta pruning
ZADATAK 8: Tabu search
ZADATAK 9: Ant colony optimization
ZADATAK 10: Particle swarm optimization

Umjetna Inteligencija – PMF , Studij Računarstva i matematike


Tomislav Šmuc, Matko Bošnjak, listopad, 2008.

You might also like