Title

Величина: px
Почињати приказ од странице:

Download "Title"

Транскрипт

1 Umjetna inteligencija Evolucijsko računarstvo doc. dr. sc. Marko Čupić

2 Copyright c Marko Čupić, v0.2 IZDAVAČ JAVNO DOSTUPNO NA WEB STRANICI JAVA.ZEMRIS.FER.HR/NASTAVA/UI Ovaj materijal nastao je na temelju knjige "Prirodom inspirirani optimizacijski algoritmi" (autor: Marko Čupić), kao popratni materijal na kolegiju Umjetna inteligencija. Licensed under the Creative Commons Attribution-NonCommercial 3.0 Unported License (the License ). You may not use this file except in compliance with the License. You may obtain a copy of the License at Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Prvo izdanje, lipanj 2016.

3 Sadržaj 1 Uvod Pregled algoritama evolucijskog računanja Najbolji optimizacijski algoritam Optimizacija 10 2 Genetski algoritam Motivacijski primjer Evolucija Robbyjevog mozga Primjena na numeričku optimizaciju Dvije vrste genetskih algoritama Utjecaj operatora k-turnirska selekcija Proporcionalna selekcija Binarna reprezentacija 27 3 Mravlji algoritmi Pojednostavljeni matematički model Algoritam Ant System 36 4 Kamo dalje? Bibliografija Knjige 41 Članci 41

4 Konferencijski radovi i ostalo 42 Indeks

5 1. Uvod Razvojem računarstva i povećanjem procesne moći računala, ljudi su počeli rješavati izuzetno kompleksne probleme koji su do tada bili nerješivi i to naprosto tehnikom grube sile (engl. bruteforce, koristi se još i termin iscrpna pretraga), tj. pretraživanjem cjelokupnog prostora rješenja. Uobičajeni algoritmi koji se koriste u tu svrhu su algoritam pretraživanja u širinu, algoritam pretraživanja u dubinu te algoritam iterativnog pretraživanja u dubinu (sve smo ih obradili na ovom kolegiju). Svi navedeni algoritmi spadaju u algoritme slijepog pretraživanja s obzirom da ne uzimaju u obzir nikakve informacije vezane uz problem koji rješavaju. Kako bi se pretraga ubrzala, razvijena je i porodica algoritama usmjerenog pretraživanja, u koju spadaju algoritmi koji su prilikom pretraživanja vo deni informacijama o problemu koji rješavaju i procjeni udaljenosti od trenutnog pa do ciljnog rješenja koje se traži. Ove se informacije uzimaju u obzir kako bi se pretraga usmjerila i time prije završila. Primjer ovakvog algoritma je algoritam A koji smo tako der obradili. S obzirom da su danas računala ekstremno brza, nije rijetka situacija da se njihovom uporabom u jednoj sekundi mogu istražiti milijuni ili čak milijarde potencijalnih rješenja, i time vrlo brzo pronaći ono najbolje. Ovo, dakako, vrijedi samo ako smo jako sretni, pa rješavamo problem koji se grubom silom, odnosno uporabom upravo spomenutih algoritama, dade riješiti. Nažalost, postoji čitav niz problema koji ne spadaju u ovu kategoriju; spomenimo samo neke od njih. Problem trgovačkog putnika (engleski termin je Traveling sales-person problem, odnosno kraće TSP) definiran je ovako: potrebno je pronaći redoslijed kojim trgovački putnik mora obići sve gradove, a da pri tome niti jedan ne posjeti više puta, te da ukupno prevali najmanje kilometara. Na kraju, trgovački se putnik mora vratiti u onaj grad iz kojeg je krenuo. Danas je poznato da ovaj naoko trivijalan problem pripada razredu N P-teških problema. N P-teški problemi pripadaju u vrstu problema za koje danas još uvijek nemamo efikasnih algoritama kojima bismo ih mogli riješiti. Uzrok tome je, dakako, ekstremna složenost ove vrste problema. Kako bismo ilustrirali složenost problema trgovačkog putnika, napisan je jednostavan program u programskom jeziku Java koji ga rješava tehnikom grube sile, i potom je napravljeno mjerenje za probleme od 3 do 13 gradova. Rezultate prikazuju slike 1.1 i 1.2. Eksperiment je napravljen na računalu s AMD Turion 64 procesorom na 1.8 GHz i s 1 GB

6 6 Poglavlje 1. Uvod Slika 1.1: Ovisnost vremena pretraživanja kod iscrpne pretrage o broju gradova kod TSP-a Slika 1.2: Ovisnost vremena pretraživanja kod iscrpne pretrage o broju gradova kod TSP-a uz logaritamsku skalu po ordinati

7 radne memorije. Vrijeme potrebno za rješavanje problema s 12 gradova iznosilo je približno 12.3 sekunde, dok je za 13 gradova bilo potrebno poprilici 2.5 minute. Očekivano vrijeme rješavanja problema s 14 gradova je oko pola sata, za 15 gradova oko 7.6 sati, dok bi za 16 gradova trebalo oko 4.7 dana. Detaljnijom analizom ovog problema te samih podataka eksperimenta lako je utvrditi da je složenost problema faktorijelna, pa je jasno da je problem koji se sastoji od primjerice 150 gradova primjenom tehnike grube sile praktički nerješiv. Faktorijelna složenost naivnog načina rješavanja ovog problema proizlazi iz činjenice da se jedno rješenje problema može predstaviti kao jedna permutacija redosljeda obilaska gradova. Problem koji tada rješavamo jest pronalazak optimalne permutacije, koji, ako ga rješavamo tako da ispitamo svaku moguću permutaciju pa potom odaberemo optimalnu, ima faktorijelnu složenost (jer toliko ima permutacija). Me dutim, za ovaj konkretan problem pokazano je da nema potrebe ispitivati baš svaku permutaciju rješenja; algoritmom koji se temelji na dinamičkom programiranju ovaj problem moguće je rješiti u eksponencijalnoj složenosti (konkretno, u složenosti O(n 2 2 n )). Iako je ovo bitno prihvatljivije od faktorijelne složenosti, jasno je da su takvi pristupi i dalje neupotrebljivi za veće primjerke problema. U teoriji grafova, problem trgovačkog putnika odgovara pronalasku Hamiltonovog ciklusa u grafu, za koji je pokazano da je N P-potpun problem. Probleme sličnog tipa u svakodnevnom životu neprestano susrećemo. Evo još dva problema vezanih uz akademski život. Primjer 1.1 Raspore divanje neraspore denih studenata u grupe za predavanja. Razmotrimo problem koji se javlja naknadnim upisom studenata na predmete, nakon što je već napravljen raspored (redovno upisanih) studenata po grupama. Veličina grupe za predavanje ograničena je dodijeljenom prostorijom u kojima se izvode predavanja. Neraspore dene studente potrebno je tako razmjestiti da grupe ne narastu iznad maksimalnog broja studenata (odre denog prostorijom), te da se istovremeno osigura da student nema preklapanja s drugim dodijeljenim obavezama. Primjerice: neka imamo 50 studenata koji su ostali neraspore deni na 5 kolegija, i neka u prosjeku svaki kolegij ima 4 grupe u kojima se održavaju predavanja. Potrebno je za prvog studenta i njegov prvi kolegij provjeriti 4 grupe, pa za njegov drugi kolegij 4 grupa, itd. Za sve studente to ukupno daje: ( ) ( ) ( ) = = Kada bismo imali računalo koje bi jednu kombinaciju moglo provjeriti u jednoj nanosekundi, za provjeru svih kombinacija trebali bismo godina! Kako bismo bolje shvatili koliko je ovo vremena, spomenimo samo da je svemir star oko godina. Primjer 1.2 Izrada rasporeda me duispita. Razmotrimo problem u kojem je unaprijed definiran skup raspoloživih termina u kojima se mogu održati ispiti, kapaciteti termina, skup kolegija koji imaju ispite, te popis studenata po kolegijima. Jednostavnija varijanta problema zahtjeva pronalazak takvog rasporeda kolegija po terminima uz koji će svi kolegiji održati svoje ispite, i u kojem ne postoji student koji u istom terminu piše više od jednog ispita. Teža varijanta problema dodatno traži da svaki student izme du dva ispita ima što je moguće više slobodnog vremena. Uzmimo kao ilustraciju problem izrade rasporeda me duispita na Fakultetu elektrotehnike i računarstva Sveučilišta u Zagrebu, u ljetnom semestru akademske godine 2008/2009. Broj termina bio je 40 a broj kolegija 130. Za prvi kolegij možemo uzeti jedan od 40 termina, za drugi kolegij jedan od 40 termina,... Ukupno imamo kombinacija. Opisani problem je puta složeniji od prethodno opisanog problema raspore divanja neraspore denih studenata. Za jesenski ispitni rok u akademskoj godini 2011/2012 brojke su bile još veće: u raspore divanje je ušlo gotovo 200 kolegija. Na sreću, optimalno rješenje nam često nije nužno; obično smo zadovoljni i s rješenjem koje je dovoljno dobro. 7

8 8 Poglavlje 1. Uvod Definicija Heuristika. Algoritme koji pronalaze rješenja koja su zadovoljavajuće dobra, ali ne nude nikakve garancije da će uspjeti pronaći optimalno rješenje, te koji imaju relativno nisku računsku složenost (tipično govorimo o polinomijalnoj složenosti) nazivamo približni algoritmi, heurističke metode, heuristički algoritmi ili jednostavno heuristike. Dijelimo ih na konstrukcijske algoritme te algoritme koji koriste lokalnu pretragu. Konstrukcijski algoritmi rješenje problema grade dio po dio (često bez povratka unatrag) sve dok ne izgrade kompletno rješenje. Tipičan primjer je algoritam najbližeg susjeda (engl. nearestneighbor procedure). Na problemu trgovačkog putnika, ovaj algoritam započinje tako da nasumice odabere početni grad, i potom u turu uvijek odabire sljedeći najbliži grad. Algoritmi lokalne pretrage rješavanje problema započinju od nekog početnog rješenja koje potom pokušavaju inkrementalno poboljšati. Ideja je da se definira skup jednostavnih izmjena koje je moguće obaviti nad trenutnim rješenjem, čime se dobivaju susjedna rješenja. U najjednostavnijoj verziji, algoritam za trenutno rješenje pretražuje skup svih susjednih rješenja i bira najboljeg susjeda kao novo trenutno rješenje (tada govorimo o metodi uspona na vrh, ili engl. hill-climbing method). Ovo se ponavlja tako dugo dok kvaliteta rješenja raste. U današnje doba posebno su nam zanimljive metaheuristike. Definicija Metaheuristika. Metaheuristika je skup algoritamskih koncepata koji koristimo za definiranje heurističkih metoda primjenjivih na širok skup problema. Možemo reći da je metaheuristika heuristika opće namjene čiji je zadatak usmjeravanje problemski specifičnih heuristika prema području u prostoru rješenja u kojem se nalaze dobra rješenja. Primjeri metaheuristika su simulirano kaljenje, tabu pretraživanje, algoritmi evolucijskog računanja i slični. Pri tome ih možemo podijeliti u dvije velike porodice algoritama: algoritmi koji rade nad jednim rješenjem (gdje spadaju algoritam simuliranog kaljenja te algoritam tabu pretrage) te na populacijske algoritme koji rade sa skupovima rješenja (gdje spadaju algoritmi evolucijskog računanja). Osvrnimo se ovdje ukratko i na podskup algoritama evolucijskog računanje poznat pod nazivom evolucijski algoritmi. Danas ga uobičajeno dijelimo na četiri podpodručja: genetske algoritme, genetsko programiranje, evolucijske strategije te evolucijsko programiranje. Zajednička im je ideja da rade s populacijom rješenja nad kojima se primjenjuju evolucijski operatori (selekcija, križanje, mutacija, zamjena) čime populacija iz generacije u generaciju postaje sve bolja i bolja. Velika skupina algoritama koji se dobro nose s opisanim teškim problemima nastala je proučavanjem procesa u prirodi. Priroda je oduvijek bila inspiracija čovjeku u svemu što je radio. I to ne bez razloga prirodni procesi optimiraju život u svakom njegovom segmentu već preko 4 milijarde godina. Proučavanjem ovih procesa i načina na koji živa bića danas rješavaju probleme znanost je došla do niza uspješnih tehnika kojima je moguće napasti prethodno opisane probleme. U nastavku ćemo opisati dvije takve tehnike: genetski algoritam te optimizaciju temeljenu na mravljem algoritmu. 1.1 Pregled algoritama evolucijskog računanja U prethodnom odjeljku kratko smo se osvrnuli na evolucijske algoritme. No kako izgleda šira slika? Evolucijsko računanje je grana umjetne inteligencije koja se, najvećim dijelom, bavi rješavanjem optimizacijskih problema. To je područje u razvoju već više od pola stoljeća: začetci sežu u kasne 50.-e. Evolucijsko računanje danas obuhvaća bogat skup raznorodnih algoritama od kojih ćemo se u ovom poglavlju osvrnuti na nekoliko. Evolucijsko računanje može se podijeliti u tri grane: evolucijske algoritme, algoritme rojeva te ostale algoritme. Ova podjela kao i odabrani algoritmi prikazani su na slici 1.3.

9 1.2 Najbolji optimizacijski algoritam 9 Slika 1.3: Podjela evolucijskog računanja na glavne grane. Uz svaku granu prikazani su i odabrani algoritmi. Područje evolucijskog računanja ujedno pripada i u područje metaheuristika heuristika namijenjenih vo denju problemski specifičnijih heuristika u pokušaju da se prona de potprostor u prostoru pretraživanja koji sadrži dobra rješenja. U evolucijske algoritme danas uobičajeno ubrajamo evolucijske strategije, evolucijsko programiranje, genetski algoritam te genetsko programiranje. U algoritme rojeva ubrajamo mravlje algoritme, algoritam roja čestica, algoritme pčela i druge. Granu ostali algoritmi čini još niz drugih algoritama koji ne pripadaju u prethodne dvije grane. Od značajnijih algoritama tu svakako pripadaju umjetni imunološki algoritmi, algoritam diferencijske evolucije te algoritam harmonijske pretrage. 1.2 Najbolji optimizacijski algoritam Nakon ovog kraćeg uvoda, evo i zanimljivog pitanja: koji je od spomenutih optimizacijskih algoritama najbolji?. Ovo je važno pitanje, jer ako ga odgovorimo, nadamo se da će nam odgovor omogućiti da se fokusiramo na samo jedan onaj najbolji, i zaboravimo na sve ostale. To bi svakako bila značajna ušteda vremena. A evo i još jedno pitanje: mogu li se metaheuristički algoritmi iz porodice algoritama evolucijskog računanja uspješno koristiti za rješavanje svih problema? Dodatno, postavlja se i pitanje je li dobro koristiti nasumičnu pretragu, te da li, kada i u kojoj mjeri uvesti dodatne informacije u algoritam? Uporaba dodatne informacije u postupku pretraživanja čini razliku izme du slijepog i usmjerenog pretraživanja. U nedostatku bilo kakvih smjernica, algoritmi mogu samo nasumično generirati moguća rješenja ili pak nasumično modificirati trenutna rješenja. Uvo denjem dodatnih informacija mogli bismo pomisliti da će algoritmi uvijek raditi bolje (ma što bolje značilo). Me dutim, uvo denjem dodatnih informacija pretraga se fokusira čime se efektivno smanjuje prostor pretraživanja; to u nekim slučajevima može djelovati nepovoljno na postupak pretraživanja (primjerice, u prisustvu velikog broja lokalnih ekstrema gdje će algoritam ostati trajno zarobljen u lokalnom optimumu jer je previše fokusiran). S druge pak strane, ako problem nije takve vrste, fokusiranje pretrage može dovesti do značajnog skraćivanja vremena potrebnog za pronalazak dovoljno dobrog (ili čak optimalnog) rješenja. Razmišljajući dalje u tom smjeru, vratimo se na početno pitanje: koji je algoritam pretraživanja onda najbolji? Na našu sreću (ili ne), danas znamo odgovor na ovo pitanje. Wolpert i Macready su u svojim radovima dokazali da nema najboljeg algoritma, što je poznato kao teorem no-free-lunch. Dapače, dokazali su da su svi algoritmi pretraživanja upravo prosječno dobri: All algorithms that search for an extremum of a cost function perform exactly the same,

10 10 Poglavlje 1. Uvod according to any performance measure, when averaged over all possible cost functions. In particular, if algorithm A outperforms algorithm B on some cost functions, then loosely speaking there must exist exactly as many other functions where B outperforms A. No što to znači odnosno kakve to ima posljedice? Poruka je jasna: za različite probleme različiti će algoritmi biti "najbolji". Što više algoritama znamo, i što više razumijemo njihovo ponašanje i način rada, veće su nam šanse da odaberemo pravi algoritam za problem koji pokušavamo riješiti. U ovom tekstu stoga ćemo dati pregled dva algoritma; zainteresiranog se čitatelja upućuje da dalje samostalno istraži druge pristupe, ili da iskoristi ponudu koju FER nudi kroz, primjerice, vještinu Rješavanje optimizacijskih problema algoritmima evolucijskog računanja u Javi. 1.3 Optimizacija Algoritme o kojima govorimo u ovom tekstu koristimo za rješavanje optimizacijskih problema. Prethodno opisani problemi raspore divanja neraspore denih studenata u grupe za predavanja te izrade rasporeda me duispita mogu se svesti na optimizacijske probleme na način da se definira funkcija koja mjeri koliko je trenutno rješenje dobro. Potom puštamo algoritam da predlaže nova rješenja odnosno da korigira i kombinira trenutna, a sve kako bi došao do rješenja koja su bolja. Definicija Optimizacija. Optimizaciju ćemo definirati kao postupak pronalaženja najboljeg rješenja problema. Rješenje će pri tome imati definiranu funkciju dobrote (engl. fitness-function) koju će optimizacijski postupak maksimizirati, ili funkciju kazne (cijenu; engl. cost-function) koju će optimizacijski postupak minimizirati. Problemi koje optimiramo kreću se izme du dvije krajnosti. Mogu biti: kombinatorički - koji su definirani nad diskretnom domenom koja može ali čak i ne mora imati ure daj izme du elemenata (usporedite primjerice domenu cijelih brojeva i činjenicu da je 1 manje od 5 s domenom tropskog voća i činjenicom da ne možemo reći je li banana manja, veća ili jednaka ananasu); kontinuirani - koji su definirani nad kontinuiranim domenama poput realnih brojeva, kompleksnih brojeva i slično, i gdje već ta činjenica povlači beskonačan prostor pretraživanja koji grubom silom nikada ne možemo pretražiti. U praksi, često se susrećemo i s problemima koji su kombinacija ovih krajnosti - neki od elemenata problema su diskretni a neki kontinuirani. Optimizacijske probleme možemo promotriti i kroz prizmu problema pretraživanja prostora stanja o kojima smo već učili. Prisjetimo se: problem pretraživanja prostora stanja svodi se na problem pronalaska puta od početnog stanja s 0 do ciljnog stanja s f koristeći dozvoljene poteze (odnosno funkciju sljedbenika). Prisjetite se samo problema slagalice. Jednu značajnu podvrstu problema pretraživanja prostora stanja čine problemi zadovoljavanja ograničenja. Definicija Problem zadovoljavanja ograničenja. Problem zadovoljavanja ograničenja (engl. Constraint Satisfaction Problem) je vrsta problema pretraživanja prostora stanja kod koje put od početnog do konačnog stanja nije bitan. Rješenje je isključivo konačno stanje. Uobičajena je situacija da kod problema zadovoljavanja ograničenja početna stanja generiramo potpuno slučajno i tijekom postupka pretraživanja ne pamtimo roditeljska stanja - radimo isključivo s jednim ili populacijom "trenutnih" stanja koje mjerimo funkcijom dobrote ili kazne. Postojanje ciljnog stanja tako der je često nepoznato. Primjerice, vratimo se na problem izrade rasporeda me duispita koji pripada u ovu vrstu problema. Definirajmo ispitni predikat tako da kao ciljno stanje proglasi svaki raspored u kojem niti jedan student nije raspore den na dva me duispita u isto vrijeme.

11 1.3 Optimizacija 11 Uzmemo li u obzir što je svaki od studenata upisao, koliko termina imamo na raspolaganju, koliko kolegija te koliki su raspoloživi kapaciteti dvorana, u općem slučaju ne možemo znati postoji li uopće ciljno stanje (odnosno raspored bez preklapanja). Stoga je uobičajeno da tijekom provo denja optimizacijskog postupka pratimo kvalitetu rješenja i da isti prekinemo unatoč činjenici da nije pronašao ciljno stanje (ali je neko za koje smo procijenili da je iskoristivo). Problemi zadovoljavanja ograničenja mogu definirati: jedno ili više čvrstih ograničenja (engl. hard constraints) te jedno ili više mekih ograničenja (engl. soft constraints). Definicija Čvrsta ograničenja. Čvrsta ograničenja su ograničenja koja nužno moraju biti ispunjena da bi rješenje bilo prihvatljivo. Primjerice, kao čvrsto ograničenje mogli bismo definirati da me duispiti dvaju predmeta s prve godine preddiplomskog studija ne mogu ići u istom ili uzastopnim danima. U tam slučaju, svaki predloženi raspored koji ovo ne bi imao zadovoljeno automatski bi bio neprihvatljiv, neovisno o svim njegovim drugim karakteristikama. Definicija Meka ograničenja. Meka ograničenja su ograničenja koja definiraju poželjna (ili nepoželjna) svojstva rješenja. Primjerice, bilo bi dobro da za svakog studenta vrijedi da mu je razmak izme du uzastopnih me duispita barem dva dana. Uzmemo li u obzir populaciju od 4000 studenata, meko ograničenje nam omogućava da definiramo relativan odnos kvalitete dvaju rješenja: bolje je ono kod kojeg 3900 studenata nema prekršeno navedeno meko ograničenje od rješenja kod kojega to nema 3000 studenata. U slučaju da mekih ograničenja ima više, u najjednostavnijem slučaju optimizacijski će ih postupak na odre deni način agregirati u jednu kumulativnu mjeru na temelju koje će potom uspore- divati rješenja. Moguća su i druga rješenja koja vode na višekriterijsku odnosno mnogokriterijsku optimizaciju (engl. multi-objective optimization vs. many-objective optimization).

12

13 2. Genetski algoritam L. J. Fogel, A. J. Owens i M. J. Walsh stvorili su evolucijsko programiranje, I. Rechenberg i H.-P. Schwefel evolucijske strategije, a H. J. Holland genetski algoritam. Paralelno tome, tekao je i razvoj genetskog programiranja koji je popularizirao J. R. Koza. Inspiracija za razvoj svih navedenih pristupa došla je proučavanjem Darwinove teorije o postanku vrsta. Darwin teoriju razvoja vrsta temelji na 5 postavki: 1. potomaka uvijek ima više no što je potrebno, 2. veličina populacije je približno stalna, 3. količina hrane je ograničena, 4. kod vrsta koje se seksualno razmnožavaju, nema identičnih jedinki već postoje varijacije te 5. najveći dio varijacija prenosi se naslje dem. Iz navedenoga slijedi da će u svakoj populaciji postojati borba za preživljavanje: ako potomaka ima više no što je potrebno a količina hrane je ograničena, sve jedinke neće preživjeti. Pri tome će one bolje i jače imati veću šansu da prežive i dobiju priliku stvarati potomke. Pri tome su djeca roditelja u velikoj mjeri odre dena upravo genetskim materijalom svojih roditelja, no nisu ista roditeljima postoji odre deno odstupanje. Genetski algoritam jedan je od algoritama stvorenih za rješavanje optimizacijskih problema, a koji izravno utjelovljuje navedene postavke. Kroz tekst koji slijedi upoznat ćemo se s idejom genetskog algoritma te uvidjeti da ne postoji "jedan" genetski algoritam već da je navedene postavke moguće implementirati na niz različitih načina čime dobivamo različite inačice genetskog algoritma. Kao motivacijski primjer poslužit će nam zadatak razvoja upravljačkog podsustava jednostavnog robota. 2.1 Motivacijski primjer U svojoj knjizi Complexity: A Guided Tour, američka znanstvenica Melanie Mitchell daje vrlo zgodan primjer koji ćemo ovdje prikazati. Zamislimo zidovima ogra deni teren koji se sastoji od m n ploča. Nakon održanog koncerta, na tom su terenu ostale porazbacane prazne boce vode. Pri tome se na svakoj ploči može zateći najviše jedna boca. Kako se koncerti redovno odvijaju,

14 14 Poglavlje 2. Genetski algoritam Slika 2.1: Svijet robota Robbyja umjesto da plaćamo čovjeka za čišćenje terena, želimo razviti robota koji će za nas obavljati taj posao. Primjer jednog takvog terena dimenzija ploča prikazan je na slici 2.1. Robot se nalazi u gornjem lijevom uglu (ploča 0,0) a popunjenost terena bocama je 30% (od 100 ploča, na njih 30 se nalazi boca). Robot kroz dostupne senzore od okoline može primiti sljedeće informacije: što se nalazi na ploči na kojoj je robot, što se nalazi jednu ploču iznad ploče na kojoj je robot, što se nalazi jednu ploču ispod ploče na kojoj je robot, što se nalazi jednu ploču desno od ploče na kojoj je robot te što se nalazi jednu ploču lijevo od ploče na kojoj je robot. Senzor pri tome može dojaviti da je promatrana ploča prazna, da se na njoj nalazi boca ili pak da se radi o zidu. Stanje ploča koje su dijagonalne trenutnoj te stanje ploča koje nisu susjedne ploči na kojoj je robot senzori ne percipiraju. Robot kojim raspolažemo tako der ne posjeduje nikakvu memoriju - robot ne može zapamtiti da je u nekom ranijem trenutku već vidio na nekoj ploči bocu. U tom smislu, akcije koje robot poduzima u potpunosti su reaktivne: temeljem ulaza koje senzori u odre denom trenutku šalju, robot mora odlučiti koju će akciju poduzeti. Upravljački podsustav robota omogućava izvo denje sedam različitih akcija, kako slijedi. 1. Ne radi ništa. 2. Sagni se i pokupi bocu s ploče na kojoj stojiš. 3. Oti di na susjednu ploču koja je iznad ploče na kojoj stojiš. 4. Oti di na susjednu ploču koja je ispod ploče na kojoj stojiš. 5. Oti di na susjednu ploču koja je desno od ploče na kojoj stojiš. 6. Oti di na susjednu ploču koja je lijevo od ploče na kojoj stojiš. 7. Oti di na slučajno odabranu susjednu ploču.

15 2.1 Motivacijski primjer 15 U slučaju da se robot odabranom akcijom sudari sa zidom, trenutna pozicija mu se ne mijenja (ne može se popesti na zid). Zadatak koji želimo riješiti je sljedeći: za svaku moguću percepciju koju robot prima potrebno je odrediti akciju koju robot treba poduzeti kako bi u ograničenom broju akcija pokupio što veći broj boca. Naravno, idealno bi bilo da robot uspije pokupiti sve boce i tako očisti teren. Za teren dimenzija broj akcija ćemo ograničiti na 150. S obzirom da je za svaku moguću percepciju robota (odnosno različitu situaciju u kojoj se robot može zateći) potrebno odrediti akciju koju će robot poduzeti, idemo najprije odrediti koliko različitih percepcija može dobiti Robby? Kao pomoć razmotrimo sliku 2.2. Trenutna Iznad Ispod Desno Lijevo Trenutna percepcija Ništa Boca Zid Gledano kao ternarni broj: 0 10 do *3 4 +2*3 3 +1*3 2 +0*3 1 +2*3 0 =65 10 Slika 2.2: Percepcija robota Robbyja Robby raspolaže s pet senzora koji mu govore što se nalazi na ploči na kojoj je i on sam te na izravno susjednim pločama. Stoga možemo razmišljati na sljedeći način. Na svakoj od tih pet ploča može biti ništa, boca ili zid. Broj mogućih kombinacija tada bi bio = 3 5 = 243. Me dutim, stvarni broj mogućih percepcija nešto je manji. Primjerice, nemoguće je da se Robby nalazi na zidu - stoga na trenutnoj ploči imamo samo dvije mogućnosti: ili je prazna ili sadrži bocu. Time je broj mogućih kombinacija = = 162. Mogli bismo isključiti još nekoliko situacija koje se na pravokutnom terenu koji je barem dimenzija 2 2 ne mogu dogoditi: da je Robby okružen s tri ili četiri zida. Me dutim, nećemo to učiniti jer uz 162 percepcije imamo vrlo jednostavan način kako svakoj od tih percepcija pridijeliti jedan jedinstven redni broj. Slika 2.2 prikazuje ideju: tri moguće situacije jedne ploče (ništa, boca, zid) kodirat ćemo jednom ternarnom znamenkom. Čitava Robbyjeva percepcija tada je zapisiva jednim 5-znamenkastim ternarnim brojem čija vrijednost (u dekadskom sustavu) ide od 0 do 161. Dodijelimo li i svakoj akciji redni broj (0: ne radi ništa, pa sve do 6: oti di na slučajno odabranu susjednu ploču), postavljeni zadatak tada se svodi na odre divanje jednog 162-komponentnog vektora cijelih brojeva, čiji je element na poziciji i broj akcije koju robot treba poduzeti kada kroz senzore dobiva percepciju i. Ovo je ilustrirano na slici 2.3, gdje je akcija za svaku percepciju postavljena na "Ne radi ništa" osim za percepciju 0 (prisjetimo se: situacija u kojoj robot stoji na praznoj ploči i susjedne ploče su tako der prazne) za koju je podešena akcija 6 (pomakni se na slučajno odabranu susjednu ploču). Pretpostavimo da problem želimo riješiti na sljedeći način: isprobat ćemo kako se robot ponaša za svaku mogući konfiguraciju mozga i potom ćemo odabrati najbolju (onu uz koju robot prikuplja najveći broj boca uz zadani ograničeni broj koraka). Koliko konfiguracija moramo isprobati? Jedna konfiguracija mozga je 162-komponentni vektor. Svaki njegov element može biti postavljen na jednu od 7 vrijednosti (redni broj akcije). Stoga je broj različitih konfiguracija jednak: =

16 16 Poglavlje 2. Genetski algoritam "Mozak" robota Robby Ne radi ništa Sagni se i pokupi bocu Otiđi iznad Otiđi ispod Otiđi desno Otiđi lijevo Otiđi u slučajnom smjeru Slika 2.3: Jedna moguća konfiguracija "mozga" robota Robbyja Ako je za provjeru "kvalitete" jednog mozga potrebna 1 µs, za provjeru kvalitete trebat ćemo godina odnosno starosti svemira. Ovo jednostavno razmatranje upućuje da ćemo do rješenja morati nekim drugim putem Evolucija Robbyjevog mozga Umjesto iscrpne pretrage, primjenit ćemo Darwinovu ideju evolucije. Napisat ćemo program koji će krenuti od populacije slučajno generiranih mozgova (doista, generatorom slučajnih brojeva generirat ćemo svih 162 komponente svakog od mozga iz populacije). Zatim ćemo definirati funkciju dobrote koja će vrednovati kvalitetu mozga. Tom ćemo funkcijom vrednovati svaki od mozgova u populaciji. Potom ćemo ponavljati jednostavan postupak: iz populacije ćemo posredstvom slučajnog mehanizma odabrati tri mozga; kombiniranjem dva bolja (prema dogovorenoj funkciji dobrote) stvorit ćemo novi mozak i taj ćemo umetnuti u populaciju na mjesto trećeg odabranog (najlošijeg od izabrana tri) mozga, i to samo ako novi mozak nije nekvalitetniji od tog trećeg. Pseudokod ovog postupka dan je u nastavku. Pseudokod Eliminacijski genetski algoritam. Generiramo slučajnu populaciju mozgova od VEL_POP jedinki; evaluiramo svaki. Ponavljamo dok nije kraj: Biramo slučajno tri jedinke Dijete = Križamo bolje dvije + Mutacija Vrednujemo dijete i ubacimo ga na mjesto treće ako nije lošije od nje Opisani postupak poznat je kao Troturnirski genetski algoritam a koristi se još i naziv Eliminacijski genetski algoritam odnosno potpunije Eliminacijski genetski algoritam s jednostavnom troturnirskom selekcijom. U jednostavnijoj inačici, stvoreno dijete uvijek se ubacuje na mjesto treće-odabrane jedinke, neovisno o odnosu njihovih dobrota. Križanjem dvaju roditelja nastaje dijete koje dio genetskog materijala preuzima od jednog roditelja a dio od drugog. Postoji niz načina na koje se to može ostvariti, a tipični primjeri su uniformno križanje te križanje s jednom točkom prijeloma. Kod uniformnog križanja za svaki se gen (u našem slučaju to je akcija za pojedinu percepciju) posredstvom slučajnog mehanizma bira hoće li biti preuzet od jednog ili od drugog roditelja. Slika 2.4 ilustrira ovu vrstu križanja. Križanje s jednom točkom prijeloma bira poziciju gena na kojoj cijepa oba roditelja. Potom stvara dijete tako da od prvog roditelja uzme gene do točke prijeloma a od drugog gene nakon točke prijeloma. Drugo dijete moguće je izgraditi na analogni način: od drugog se roditelja uzimaju geni do točke prijeloma a od prvog nakon točke prijeloma. Slika 2.5 ilustrira ovu vrstu križanja.

17 2.1 Motivacijski primjer Roditelj 1: Roditelj 2: Dijete: Slika 2.4: Provedba uniformnog križanja Točka prijeloma: nakon trećeg gena Roditelj 1: Roditelj 2: Dijete 1: Dijete 2: Slika 2.5: Provedba križanja s jednom točkom prijeloma Mutaciju ćemo provoditi na sljedeći način. Definirat ćemo vjerojatnost mutacije gena kao vjerojatnost da ćemo za neki konkretan gen napraviti mutaciju. Potom krećemo od prvog gena na dalje, i za svaki, sa zadanom vjerojatnošću radimo njegovu mutaciju. Primjerice, ako je vjerojatnost mutacije gena jednaka 0.05, tada će svaki od gena ima 5% šanse biti mutiran. Za gene za koje utvrdimo da ih treba mutirati, njihovu vrijednost zamijenimo slučajno odabranom akcijom. Slika 2.6 ilustrira ovako definiranu mutaciju, gdje je pod utjecajem mutacije došlo do promjene u tri gena Jedinka: Mutirana jedinka: Slika 2.6: Provedba mutacije Da bismo algoritam mogli isprobati, još je preostalo definirati funkciju dobrote. Postupit ćemo na sljedeći način. Posredstvom slučajnog mehanizma stvorit ćemo N S različitih terena, pri čemu će svi imati

18 18 Poglavlje 2. Genetski algoritam popunjenost bocama od pb. Rad robota simulirat ćemo u svakom od N S terena kroz zadani broj koraka N K i pri tome ćemo robotu davati nagradne ili kaznene bodove. Dobrotu ponašanja u jednom terenu definirat ćemo kao ukupnu sumu bodova dobivenih na tom terenu. Konačnu dobrotu mozga postavit ćemo na prosječnu dobrotu ponašanja u svih N S terena. Bodovanje radimo na sljedeći način. +10 bodova dodijelit ćemo robotu svaki puta kada pokupi bocu. 5 bodova dodijelit ćemo robotu svaki puta kada se sagne da pokupi bocu na ploči na kojoj nema boce. 10 bodova dodijelit ćemo robotu svaki puta kada se zabije u zid. Ponašanje robota na više terena provjeravamo kako se ne bi dogodilo da se mozak robota prilagodi jednoj specifičnoj konfiguraciji terena. Me dutim, kako je stvaranje novih terena dosta skupo, postupak možemo ubrzati tako da jednom stvoreni skup terena koristimo odre den broj iteracija (za ocjenu dobrote više od jednog mozga) pa ih tek tada nanovo generiramo. Uvjet zaustavljanja algoritma može biti pronalazak dovoljno dobrog rješenja ili pak premašivanje zadanog broja iteracija. Rad algoritma provjeren je uz sljedeće parametre. Postotak popunjenosti bocama postavljen je na 0.35, dimenzije terena su 10 10, broj koraka (odnosno akcija) koje robot smije napraviti je 150. Razvijamo mozak uporabom populacije od 50 jedinki, vjerojatnost mutacije gena je 0.02, vrednovanje robota provodimo na skupu od 20 svjetova i taj skup nanovo generiramo nakon svakih 100 vrednovanih robota. Uvjet zaustavljanja je pronalazak mozga s kojim robot u prosjeku uspije dobiti 330 bodova (uz dane parametre, teorijski maksimum je 350). Kretanje funkcije dobrote za jedno konkretno pokretanje algoritma prikazano je na slici 2.7. Šumovitost prikazane krivulje rezultat je periodičke promjene skupa terena na kojima se roboti vrednuju. Uočite kako s vremenom dobrota rješenja postaje sve bolja i bolja Dobrota Iteracija Slika 2.7: Evolucija rješenja Postupak je zaustavljen nakon iteracije u kojoj je prona den mozak prosječne dobrote Slika 2.8 detaljnije prikazuje zbivanja na samom početku evolucijskog procesa. Na samom početku rada algoritma (iteracija 0), najbolje rješenje u populaciji imalo je prosječnu dobrotu Slijedi da se radi o robotu koji se često zabija u zidove te se saginje da skuplja boce na poljima na kojima boca nema. U ranim trenutcima evolucije, taj se problem rješava pa se preferiraju mozgovi koji to ne rade. Oko iteracije 50 dolazi se do konfiguracije mozga čija je

19 2.2 Primjena na numeričku optimizaciju Dobrota Iteracija Slika 2.8: Evolucija rješenja - početak prosječna dobrota oko nule: radi se ili o mozgu koji je naučio akcije koje kažnjavamo kompenzirati povremenim prikupljanjem boca, ili pak o mozgu koji je naučio da je najbolje ne raditi ništa. Kako vrijeme napreduje, mozak koji se razvija ipak postaje sve bolji i bolji. Jedan od trikova koji evolucija relativno rano razvija jest ponašanje koje tjera robota da, ako oko njega nema boca, konzistentno krene u jednom smjeru do prvog zida i potom krene kružiti ili u smjeru kazaljke na satu, ili u suprotnom smjeru (ali konzistentno). Zahvaljujući takvom ponašanju, robot će često pronalaziti nove boce (a jednom kad ih na de, skuplja ih sve dok mu se ne dogodi situacija da oko sebe više nema ničega, nakon čega ponavlja postupak - odlazi do zida i nastavlja kruženje). Me dutim, samo to nije još dovoljno da bismo postigli konačnu traženu dobrotu. S vremenom, evolucija pronalazi još jedno interesantno rješenje: ako se robot na de u situaciji da su oko njega s obje strane boce te ako je i on sam na polju na kojem je boca, tu bocu nije dobro pokupiti; umjesto toga, robot će krenuti u jednom smjeru dok ne do de do kraja niza boca i potom se krenuti vraćati i tek ih tada sve redom skupljati. Razmislite zašto je ovakva strategija bitna! Slika 2.9 prikazuje još jednu karakteristiku navedenog algoritma. Postupak optimizacije pokrenuli smo 20 puta te smo za svako od pokretanja vodili detaljni dnevnik iteracija u kojima su prona dena nova bolja rješenja. Ova slika prikazuje kretanje prosječne dobrote a crvena područja oko krivulje označavaju pojas širine jednog standardnog odstupanja (engl. standard deviation) izračunatih na temelju dobrote svakog od 20 eksperimenata u promatranoj iteraciji. 2.2 Primjena na numeričku optimizaciju U prethodnom poglavlju razmotrili smo zadatak evolucije upravljačkog podsustava robota, što je primjer kombinatoričke optimizacije. Od mogućih različitih konfiguracija zadatak je bio pronaći neku koja je dovoljno dobra za daljnju uporabu. Ista se načela mogu primijeniti i na zadatke numeričke optimizacije. Numeričke optimizacije tipično su problemi pretraživanja n-dimenzijskog podprostora kartezijevih produkata skupova realnih brojeva. U nastavku ćemo razmotriti dva od mnoštva sličnih primjera koje nije moguće jednostavno (ili uopće) rješavati analitički. Razmotrit ćemo i način na koji bismo iste mogli krenuli rješavati genetskim algoritmom. Primjer 2.1 Zadana je funkcija f (x,y,z) = sin(z 2 1 x e0.2 y x z ) + cos(0.02 y x).

20 20 Poglavlje 2. Genetski algoritam Dobrota Iteracija Slika 2.9: Evolucija rješenja - prosječno ponašanje Pronaći za koju vrijednost argumenata x, y i z ova funkcija poprima minimalnu vrijednost na podprostoru odre denom s x [ 10,10], y [ 10,10] i z [ 10,10]. U ovom primjeru jedinka (odnosno sinonimi: rješenje, kromosom) bi predstavljala jednu točku u trodimenzijskom prostoru realnih brojeva. U konkretnom programskom jeziku, mogli bismo je, primjerice, pamtiti kao polje od tri decimalna broja. Postavljeni zadatak ima prirodnu definiciju funkcije kazne: za svaku jedinku njezinu ćemo kaznu definirati kao iznos funkcije u točki koju predstavlja jedinka. Do funkcionalnog genetskog algoritma još nas dijeli samo zadaća definiranja operatora križanja i mutacije. Križanje dviju jedinki koje su prikazane kao polje decimalnih brojeva možemo ostvariti na mnoštvo načina. Primjerice, u djetetu svaki od elemenata postavimo na aritmetičku sredinu pripadnih elemenata iz oba roditelja. Primjer takvog križanja ilustriran je na slici Postoji i niz drugih mogućnosti; primjerice, križanje s jednom točkom prijeloma koje smo već opisali Roditelj 1: Roditelj 2: Dijete: Slika 2.10: Definicija operatora križanja: aritmetička sredina po komponentama Mutaciju tako der možemo raditi na više načina. Primjerice, možemo definirati vjerojatnost mutacije varijable p b, pa u skladu s tom vjerojatnošću za svako od elemenata polja provjeriti hoćemo li ga mutirati ili ne. Ako je odgovor da, možemo mu dodati neki slučajno odabrani broj

21 2.2 Primjena na numeričku optimizaciju 21 izvučen iz normalne distribucije centrirane oko 0 i prikladne standardne devijacije. Primjer ovakve mutacije prikazan je na slici Pitali smo se želimo li mutirati prvi element, odgovor je bio ne; za drugi element odgovor je bio da; za treći element odgovor je bio ne. Za potrebe mutacije drugog elementa generirali smo slučajni broj iz normalne distribucije (u prikazanom primjeru na slici broj je bio -0.4) i dodali ga drugom elementu roditelja čime smo dobili vrijednost ( 0.4) = 3.8 koju smo upisali kao drugi element polja djeteta. Uočite da ovako definirana mutacija dozvoljava da se ponekad mutira samo jedan element, ponekad dva elementa, ponekad tri, itd., ali u prosjeku, broj mutiranih elemenata bit će proporcionalan zadanom vjerojatnoću p b Jedinka 1: Mutirana jedinka: Slika 2.11: Definicija operatora mutacije: nadodajemo broj iz normalne razdiobe oko nule Uz ovaj dogovor imamo sve što je potrebno kako bismo upogonili prethodno opisani eliminacijski genetski algoritam. Pri provo denju turnira potrebno je samo obratiti pažnju da su sada dva bolja roditelja ona koja imaju manju dodijeljenu kaznu. Želimo li raditi s funkcijom dobrote (za koju vrijedi: veće je bolje), istu bismo mogli definirati kao negativnu vrijednost iznosa funkcije u točki koju predstavlja jedinka. u tom slučaju, od tri izabrane jedinke, roditelji postaju dvije jedinke koje imaju veću dobrotu. Slika 2.12 prikazuje postupak traženja minimuma ove funkcije pri čemu radimo s funkcijom dobrote. Uočite, kako se radi o zbroju sinusa i kosinusa, teorijski minimum je 2 (odnosno maksimalna dobrota je 2) Dobrota Iteracija Slika 2.12: Evolucija rješenja kod traženja minimuma funkcije Prikazana evolucija rješenja ostvarena je populacijom od samo 5 jedinki, a prona deno rješenje je x = , y = , z = Opetovanim pokretanjem algoritma lako je utvrditi i da rješenje nije jedinstveno. Križanje i mutacija izvedeni

22 22 Poglavlje 2. Genetski algoritam su u skladu s prethodno danim opisom i slikama 2.10 i Mutacija je brojeve kojima korigira vrijednost zapisanu u roditelju dobivala izvlačenjem iz normalne distribucije s parametrima (0,0.2) pri čemu je prvi broj srednja vrijednost distribucije a drugi standardno odstupanje. Primjer 2.2 Kroz odre deno vrijeme promatran je rad nekog sustava. Sustav ima 3 ulaza (označimo ih x, y i z) i jedan izlaz (označimo ga s P). Ulazima sustava upravljaju naponski. Na izlazu sustav generira laserski impuls odre dene snage. Poznato je da je ovisnost snage tog impulsa o naponima koji se dovode na ulaz oblika P(x,y,z) = α eβ x y + γ z 2. Me dutim, konkretne vrijednosti parametara α, β i γ nisu poznate. Tijekom praćenja rada sustava napravljen je i zabilježen niz mjerenja oblika: (x,y,z) P; primjerice, kada je x bio 0.1 V i y bio 0.3 V i z bio 0.2 V, snaga lasera na izlazu je bila 0.48 W. Uz pretpostavku da smo prikupili stotinjak takvih mjerenja, potrebno je odrediti parametre α, β i γ uz koje će zadani model ovisnosti snage o ulaznim naponima najbolje odgovarati opaženom ponašanju sustava. Kako bismo postupili u ovom slučaju? Kao prikaz rješenja opet možemo koristiti polje decimalnih brojeva. Kako imamo tri parametra koji se traže (α, β i γ), polje će imati tri elementa. Operatore križanja i mutacije možemo napraviti kao u prethodnom primjeru. Jedino pitanje koje preostaje jest kako sada definirati funkciju dobrote ili funkciju kazne. No to nije problem. Uočimo: uz zadane vrijednosti parametara model ovisnosti je fiksiran: imamo funkciju koja uz zadane x, y i z može izračunati koju snagu model predvi da. Ako su parametri dobro pogo deni, razlika izme du predvi dene snage i snage koja je stvarno bila izmjerena bit će mala. Stoga ćemo najprije definirati funkciju pogreške kao srednje kvadratno odstupanje stvarno izmjerene snage i snage koju predvi da model za svaki od izmjerenih podataka. Ta funkcija pogreške izravno ovisi o traženim parametrima α, β i γ i nju ćemo poistovjetiti s funkcijom kazne. Genetskim algoritmom potom ćemo evoluirati prijedloge ovih parametara uz zadaću minimizacije funkcije kazne. 2.3 Dvije vrste genetskih algoritama Kada razmatramo različite izvedbe genetskih algoritama, pronaći ćemo dvije krajnosti. Prvu čini implementacija algoritma koju smo uveli kao eliminacijski genetski algoritam a koji je u engleskoj terminologiji poznat kao Steady-state Genetic Algorithm. Radi se o izvedbi algoritma koja u svakom koraku radi minimalnu izmjenu u populaciji: mijenja se samo jedna jedinka. Isto tako, već u sljedećem koraku, ta novododana jedinka može biti roditelj na temelju kojeg se stvara sljedeće dijete. Bitno drugačiju izvedbu čini takozvani Generacijski genetski algoritam čiji je pseudokod prikazan u nastavku. Radi se o izvedbi kod koje je na početku svake iteracije populacija roditelja fiksirana. Iz te populacije biraju se roditelji koji križanjem i mutacijom stvaraju djecu koja se pohranjuju u pomoćnu privremenu populaciju. Postupak se radi sve do trenutka dok u populaciji djece nema jednak broj jedinki koliko ih je i u roditeljskoj populaciji. Kada se to dogodi, roditeljska se populacija briše a stvorena populacija djece promovira se u roditelje. Taj trenutak označava smjenu generacije nakon čega se postupak ciklički ponavlja. Pseudokod Generacijski genetski algoritam. Generiraj slučajnu populaciju mozgova od VEL_POP jedinki; evaluiraj svaki. Ponavljaj dok nije kraj: Inicijaliziraj pomoćnu populaciju na praznu. Ponavljaj dok veličina pomoćne populacije ne postane jednaka veličini populacije roditelja Odaberi dva roditelja iz populacije roditelja

23 2.4 Utjecaj operatora 23 Dijete = Križaj roditelje + Mutacija Vrednuj dijete Ubaci ga u pomoćnu populaciju Obriši populaciju roditelja Promoviraj pomoćnu populaciju u populaciju roditelja Kod generacijskog genetskog algoritma eventualno dobro dijete ne može se odmah iskoristiti; ono mora pričekati dok se ne završi čitava generacija. Prikazani algoritam tako der nije elitistički. Definicija Elitizam. Elitizam je svojstvo algoritma da ne može izgubiti najbolje prona- deno rješenje. Kod elitističkih algoritama graf koji prikazuje kretanje funkcije dobrote kroz evoluciju je monoton; pogledajte ponovno sliku 2.12 koja to ilustrira. Kod algoritama koji nisu elitistički taj će graf biti nazubljen: prosječne vrijednosti funkcije dobrote asimptotski će rasti ali je sasvim moguće da u nekon koraku algoritma dobrota najbolje jedinke bude manja od dobrote najbolje jedinke koju je algoritam imao u nekom prethodnom koraku. Vježba 2.1 Generacijski genetski algoritam prikazan u prethodnom pseudokodu nije elitistički. Možete li objasniti zašto? Vježba 2.2 Eliminacijski genetski algoritam kojim smo razvijali upravljački podsustav Robbyja je elitistički. Možete li objasniti zašto? Generacijski genetski algoritam jednostavno se može pretvoriti u elitističku inačicu. Primjerice, na početku svake generacije u pomoćnu se populaciju djece može ubaciti kopija najbolje jedinke iz roditeljske populacije. 2.4 Utjecaj operatora Neovisno o tome koju inačicu genetskog algoritma koristimo, operatori križanja i mutacije imaju važnu ulogu. Operator križanja na temelju roditelja stvara djecu. Kako su ta djeca slična roditeljima, ovaj operator ima ulogu fine pretrage prostora rješenja u okolici rješenja koja predstavljaju roditelji. Operator križanja na čitavu populaciju često djeluje kontrakcijski. Uzmite za primjer križanje koje smo prikazali za jedinke koje reprezentiramo poljem decimalnih brojeva i koje djecu stvara izračunom aritmetičke sredine. Kada bismo koristili samo taj operator, svaka bi generacija bila sve zgusnutija i zgusnutija. Ako zamislite populaciju kao skup točaka u R-dimenzijskom prostoru koje zauzimaju odre den volumen, jasno je vidljivo da će volumen populacije djece koja je dobivena opisanim križanjem biti manji. Ponovimo li to kroz više iteracija, populacija postaje sve gušća i gušća i gubi genetski materijal. Operator mutacije ima suprotnu ulogu: on nad jedinkom radi jednu ili više slučajnih izmjena koje jedinku mogu drastično izmijeniti. Ovaj operator u postupku pretraživanja povećava volumen populacije. Njegova druga važna uloga jest izbacivanje populacije iz lokalnih optimuma. Da bi evolucijski postupak pretraživanja bio djelotvoran, nužno je postići dobar balans izme du sila koje uvode ovi operatori. Ako je kontrakcijsko djelovanje križanja prejako, postupak će se vrlo brzo zaglaviti u lokalnom optimumu. Ako je djelovanje mutacije prejako, ono će konzistentno uništavati sve pozitivno što je postupak pretraživanja do tada pronašao i pretragu će svesti na slučajnu. U idealnoj situaciji, ove su dvije sile me dusobno u balansu čime se osigurava da postupak pretraživanja može napredovati prema kvalitetnijim rješenjima.

24 24 Poglavlje 2. Genetski algoritam Opisana dinamika u stvarnosti je još malo kompliciranija: u obzir treba uzeti i selekcijski pritisak koji je posljedica načina na koji dobrota jedinke utječe na vjerojatnost njezinog razmnožavanja i preživljavanja. Na ovom mjestu nećemo se baviti formalnim definicijama ovog pojma već ćemo razmotriti dva primjera izvedbe operatora selekcije k-turnirska selekcija Selekcija poznata pod nazivom k-turnirska selekcija omogućava kontroliranje selekcijskog pritiska jednostavnim podešavanjem jednog parametra: k iz naziva selekcije. Pseudokod ove selekcije prikazan je u nastavku. Pseudokod k-turnirska selekcija. Ulaz: populacija P jedinki veličine VEL_POP; k VEL_POP. Izlaz: jedna jedinka Inicijaliziraj pomoćnu populaciju P na praznu Ponavljaj k puta: Iz populacije P slučajnim postupkom uz jednoliku distribuciju vjerojatnosti odaberi jednu jedinku koja još nije u populaciji P Ubaci je u populaciju P Vrati najbolju (ili najgoru - ovisno što tražimo) jedinku iz populacije P Opisani postupak iz populacije vadi uzorak od k jedinki i vraća onu koja je najpoželjnija. Ako ovom selekcijom tražimo kandidata za roditelja, najpoželjnija će jedinka biti ona koja od jedinki iz uzorka ima najveću dobrotu (ili najmanju kaznu). Tražimo li jedinku za eliminaciju, najpoželjnija će jedinka biti ona koja od jedinki iz uzorka ima najmanju dobrotu (ili najveću kaznu). Trebamo li dva roditelja za križanje, uporabom ovakvog operatora selekcije, roditelje ćemo dobiti tako da dva puta pozovemo operator. roditelj1 = k-turnir(p) roditelj2 = k-turnir(p) Što je parametar k veći, veći se naglasak daje na najbolja rješenja. Postavimo li da je k =VEL_POP, algoritam će kao roditelja uvijek birati najbolju jedinku populacije, a to će pak za posljedicu najčešće imati strelovitu konvergenciju algoritma u loš lokalni optimum. S druge pak strane, ako k postavimo na 1, roditelji se biraju potpuno slučajno i njihova dobrota uopće nije bitna; u ovom slučaju selekcijski pritisak uopće ne postoji i algoritam će nasumice i neusmjereno generirati nova rješenja. U praksi se ovakva inačica operatora koristi uz manje vrijednosti k; primjerice, 2 ili 3, čime se osigurava da postoji barem minimalna kompeticija izme du jedinki za roditeljstvo. Kod eliminacijske izvedbe genetskog algoritma, ovaj se operator može koristiti za odabir jedinke koja će biti zamijenjena (eliminirana) stvorenim djetetom. Evo primjera takvog jednostavnog algoritma. ponavljaj dok nije kraj roditelj1 = k-turnir(p, biraj najbolju) roditelj2 = k-turnir(p, biraj najbolju) dijete = stvori(roditelj1, roditelj2) vrednuj(dijete) jedinka3 = k-turnir(p, biraj najlo²iju) u populaciji P ukloni jedinku3 i zamijeni je sa stvorenim dijetetom kraj

25 2.4 Utjecaj operatora 25 R U praksi često dolazi do konfuzije oko termina troturnirska selekcija. Ponekad se naprosto misli na operator koji turnirom uz k = 3 obavlja selekciju, a ponekad se misli na čitav eliminacijski genetski algoritam kakav smo opisali u poglavlju s robotom Robby. Pogledajte prethodni primjer. Ako u njemu postavimo k = 3, radimo tri turnira (dva za izbor roditelja i jedan za izbor jedinke koju ćemo eliminirati) odnosno biramo ukupno devet jedinki. Čitav se postupak može pojednostavniti tako da napravimo samo jedan turnir nad tri jedinke i dvije bolje odaberemo za roditelje a treću (najlošiju) zamijenimo nastalim djetetom. Gdje god ćemo govoriti o takvoj implementaciji algoritma, koristit ćemo termin eliminacijski genetski algoritam s jednostavnom troturnirskom selekcijom. Napomenimo i da dinamika takvog algoritma u odnosu na prethodno opisani algoritam koji dobivamo uz k = 3 nije jednaka Proporcionalna selekcija Termin Proporcionalna selekcija (engl. Roulette-Wheel Selection) koristi se za operator koji jedinke bira iz populacije na temelju vjerojatnosti koje su im dodijeljene proporcionalno njihovim dobrotama. Pretpostavimo da imamo populaciju od 4 jedinke, i neka su im dobrote redom 6, 4, 8 i 2 (vidi sliku 2.13) Dobrota Jedinke Slika 2.13: Razdioba dobrota jedinki iz populacije Svakoj jedinki htjeli bismo pridijeliti vjerojatnost odabira koja je proporcionalna njezinoj dobroti. Označimo s f it i dobrotu jedinke i a s prob i vjerojatnost da i-ta jedinka bude izabrana. Kako želimo da ta vjerojatnost bude proporcionalna dobroti, neka k predstavlja (za sada nepoznati) koeficijent proporcionalnosti, tako da možemo pisati: prob i = k fit i i {1,2,3,4}. Da bi prob i bile vjerojatnosti, njihova suma mora biti 1. Slijedi da možemo pisati: prob 1 = k fit 1 prob 2 = k fit 2 prob 3 = k fit 3 prob 4 = k fit 4 prob 1 + prob 2 + prob 3 + prob 4 = 1

26 26 Poglavlje 2. Genetski algoritam što je sustav 5 jednadžbi s 5 nepoznanica. Uvrštavanjem prve četiri u petu izravno dobivamo rješenje za faktor proporcionalnosti k: 1 k = 4 i=1 fit. i Uvrštavanjem u prve četiri jednadžbe dobivamo: prob 1 = fit 1 4 i=1 fit i prob 2 = fit 2 4 i=1 fit i prob 3 = fit 3 4 i=1 fit i prob 4 = fit 4 4 i=1 fit i odnosno opći izraz: prob i = fit i n j=1 fit. j (2.1) Pogledajmo to na našem konkretnom slučaju. Ukupna suma dobrota iznosi = 20, pa ćemo vjerojatnosti odabira jedinki redom postaviti na 6/20 = 0.3, 4/20 = 0.2, 8/20 = 0.4 i 2/20 = 0.1. Uz ovakvu distribuciju vjerojatnosti vidimo da će, primjerice, treća jedinka imati 40% šanse da postane roditelj. Ovo je lijepo prikazano i na slici 2.14 gdje su sve jedinke predstavljene kao kružni isječci pri čemu je širina oboda isječka proporcionalna dobroti jedinke koju isječak predstavlja. jedinka 4 dobrota = 2 jedinka 1 dobrota = 6 jedinka 3 dobrota = 8 jedinka 2 dobrota = 4 Slika 2.14: Razdioba dobrota jedinki iz populacije prikazana kao kolo ruleta Na slici je s desne strane prikazan i mali trokutić koji služi selekciji jedinki. Zamislimo da je prikazani krug u centru fiksiran i da ga možemo potezom ruke zavrtiti. Uslijed trenja kolo će u jednom trenutku stati, i jedinka koja se zatekne ispod trokutića bit će odabrana. Uočite: vjerojatnost

27 2.5 Binarna reprezentacija 27 da to bude jedinka i proporcionalna je duljini oboda kružnog isječka koji je predstavlja. Engleski naziv ovakve selekcije (Roulette Wheel) upravo dolazi od ovakve konceptualne implementacije. Programka implementacija ovakve selekcije prikazana je u pseudokodu u nastavku. Funkcija random(...) korištena u pseudokodu ovdje prima dva argumenta: donju granicu i gornju granicu te prema uniformnoj distribuciji vraća slučajno generirani decimalni broj iz tog raspona. Pseudokod Implementacija proporcionalne selekcije. Ulaz: P - populacija Izlaz: odabrana jedinka suma = 0 za svaku jedinku J iz P: suma += J.dobrota trokutic = random(0, suma) podrucje = 0 za svaku jedinku J iz P: podrucje += J.dobrota ako je trokutic <= podrucje vrati J kraj ako kraj za Da bismo proporcionalnu selekciju mogli koristiti, uočite da jedinke moraju imati dobrote koje su nenegativni brojevi. Ovo slijedi iz početne pretpostavke da želimo da je vjerojatnost odabira jedinke proporcionalna njezinoj dobroti. Ako je dobrota 5, što bi to značilo za vjerojatnost? U slučaju da želimo koristiti proporcionalnu selekciju a sve jedinke nemaju nenegativne dobrote, moguće je prije selekcije napraviti jednostavnu transformaciju: potrebno je pronaći jedinku čija je dobrota minimalna (označimo tu dobrotu s fit min ) i potom njoj i svim ostalim jedinkama u populaciji dobrotu korigirati na dobrotu jedinke umanjenu za identificiranu minimalnu dobrotu: fit i fit i fit min. Dakako, nećemo zbog selekcije mijenjati stvarne vrijednosti dobrote jedinkama: u prethodnom izrazu dobrote prema kojima se radi selekcija označili smo s fit i i njih će pripremiti sam operator selekcije prije no što krene u vjerojatnosni odabir. Ovaj operator podložan je još jednom problemu poznatom kao problem skale. Ako su vrijednosti funkcije dobrote jako visoke, vjerojatnosti odabira svih jedinki bit će podjednake, neovisno o dobroti samih jedinki. Primjerice, neka su dobrote triju jedinki koje čine populaciju redom , i Iako je treća jedinka bolja od prethodne dvije, vjerojatnost odabira svih triju jedinki je 33.3% uz razliku na toliko dalekoj decimali da u praksi to neće imati nikakvog utjecaja. Jedno moguće rješenje ovog problema opet je translacija svih dobrota prema nuli za dobrotu najgore funkcije, ili pak rangiranje jedinki po dobroti i dodjela vjerojatnosti proporcionalno rangu jedinke (najbolji rang, najveća vjerojatnost). Mana tog pristupa je povećana računska složenost jer je jedinke potrebno sortirati. 2.5 Binarna reprezentacija Kratak osvrt na genetski algoritam koji ovdje dajemo ne bi bio potpun a da ne spomenemo kako je jedan od koraka primjene genetskog algoritma na optimizacijski problem upravo odabir načina

28 28 Poglavlje 2. Genetski algoritam na koji će rješenje ("kromosom") biti predstavljeno. Tek kada je dogovoren način predstavljanja rješenja, definiraju se operatori križanja i mutacije koji djeluju nad tom reprezentacijom. U uvodnom dijelu ovog poglavlja vidjeli smo već dvije reprezentacije: polje cijelih brojeva te polje decimalnih brojeva. Praktički najranija reprezentacija rješenja u genetskom algoritmu bila je binarna reprezentacija koja ima izravnu analogiju s genetikom: svaki bit je jedan gen, nakupina bitova čini kromosom. Križanje se provodi cijepanjem kromosoma i njihovom rekombinacijom dok mutacije invertiraju vrijednosti bitova. Ovakav prikaz moguće je koristiti i kada se radi numerička optimizacija nad realnim područjem. Sve što je potrebno jest definirati postupak dekodiranja vrijednosti na temelju binarnog zapisa. Evo kako to možemo napraviti. Pretpostavimo da tražimo optimum funkcije f (x). Moguće vrijednosti varijable x kodirat ćemo binarno uporabom k-bitova. Potrebno je definirati donju i gornju granicu za varijablu x unutar koje radimo pretragu: x min x x max, čime je definirana i širina prostora pretrage: x max x min. Primjetimo sada da k-bitni binarni vektor ima 2 k različitih vrijednosti. Svaku od tih vrijednosti znamo pretvoriti u cijeli broj: binarni broj a n a n 1...a 1 a 0 pretvaramo oslanjajući se na bazu: a = n i=0 a i 2 i. Broj a bit će minimalno 0 a maksimalno 2 k 1. Te brojeve iskoristit ćemo kako bismo jednoliko uzorkovali prostor realnih brojeva iz intervala [x min,x max ]. Broj 0 pri tome ćemo preslikati u x min, broj 2 k 1 u x max a sve brojeve izme du linearno u taj interval. Izraz prema kojem to radimo je: x = a 2 k 1 (x max x min ) + x min. (2.2) Pogledajmo to na primjeru. Primjer bitnim binarnim kromosom želimo pretražiti područje [ 30,+40]. Odredimo koje su sve moguće vrijednosti realne varijable koje se mogu dobiti. Trobitni kromosom (k = 3) može poprimiti vrijednosti od 000 do 111, što predstavlja cijele brojeve od 0 do 7. Kako je u našem primjeru x min = 30 a x max = +40, širina područja je 70, pa uporabom izraza (2.2) slijedi: x = a = 10 a 30 7 što daje redom: 000 a = 0 x = = a = 1 x = = a = 2 x = = a = 3 x = = a = 4 x = = a = 5 x = = a = 6 x = = a = 7 x = = +40 U prethodnom primjeru kromosom je imao samo 3 bita odnosno 8 mogućih vrijednosti. Kako je širina prostora pretrage bila poprilično velika, pretraga je morala raditi velike korake.

29 2.5 Binarna reprezentacija 29 Definicija Preciznost pretrage. Preciznost pretrage definirat ćemo kao minimalni korak (kvant) kojim se radi pretraga. Kod prethodno opisane binarne reprezentacije preciznost odre dena je izrazom: = 1 2 k 1 (x max x min ). (2.3) 1 U slučaju iz prethodnog primjera, preciznost pretraživanja bila je (40 ( 30)) = Poznavanjem izraza (2.3) lako je uz zadane granice područja i zadanu preciznost doći do potrebnog broja bitova. Prokomentirajmo ovdje još jedno svojstvo reprezentacije rješenja: sama reprezentacija za optimizacijski algoritam može unijeti lokalni optimum koji u funkciji koja se optimira ne postoji. Primjerice, pretpostavimo da je genetski algoritam došao do sljedećeg rješenja koje je vrlo blizu optimumu: Stvarni optimum postiže se za Da bi iz trenutnog rješenja postupak stigao u optimalno, morao bi doslovno promijeniti sve bitove što je vrlo malo vjerojatan scenarij - stoga će na tom mjestu optimizacijski postupak najčešće zaglaviti. Ovakav problem moguće je riješiti promjenom načina dekodiranja rješenja (primjerice, uporabom Grayevog koda za pretvaranje binarnog uzorka u cijeli broj). Za kraj, spomenimo da binarna reprezentacija iskazuje još jedno zanimljivo svojstvo: pri djelovanju mutacije, promjena na različitim bitovima rješenje modificira u različitoj mjeri: promjena prvog bita radi promjenu od čak pola širine prostora pretraživanja dok promjena zadnjeg bita radi promjenu od samo jednog kvanta. Kod ove reprezentacije jasno je zašto za mutaciju kažemo da joj je uloga izbacivanje iz lokalnih optimuma - promjenom jednog jedinog bita ovdje mutacija može napraviti dovoljno veliku izmjenu da se rješenje preseli u skroz novo područje i dalje nastavi optimizaciju. U posljednjih desetak godina izravna uporaba decimalnih brojeva (ili polja decimalnih brojeva) pokazala se praktičnijom u odnosu na binarnu reprezentaciju.

30

31 3. Mravlji algoritmi Mravi su izuzetno jednostavna bića usporedimo li ih, primjerice, s čovjekom. No i tako jednostavna bića zahvaljujući socijalnim interakcijama postižu zadivljujuće rezultate. Sigurno ste puno puta u životu naišli na mravlju autocestu niz mrava koji u koloni idu jedan za drugim prenoseći hranu do mravinjaka. O ponašanju ovih stvorenja snimljen je čitav niz dokumentarnih filmova: o njihovoj suradnji, o organizaciji mravinjaka, o nevjerojatnoj kompleksnosti i veličini njihovih kolonija. No kako jedno jednostavno biće poput mrava može ispoljavati takvo ponašanje? Mnoštvo različitih znanstvenih disciplina iskazalo je interes za mrave. U okviru ovog kolegija, mravi su nam posebno zanimljivi iz vrlo praktičnog razloga: uspješno rješavaju optimizacijske probleme. Naime, uočeno je da će mravi uvijek pronaći najkraći put izme du izvora hrane i njihove kolonije, što će im omogućiti da hranu dopremaju maksimalno učinkovito. Kako to postižu? Da bi misterij bio još veći, spomenimo samo da mravlje vrste ili uopće nemaju razvijen vidni sustav, ili je on ekstremno loš, pa je očito da se za kretanje ne oslanjaju na osjet vida. Kako bi istražili ponašanje mrava, Deneubourg i suradnici [6, 10] napravili su niz eksperimenata koristeći dvokraki most postavljen izme du mravinjaka i hrane (slika 3.1). Mravi prilikom kretanja ne koriste osjet vida, već je njihovo kretanje odre deno socijalnim interakcijama s drugim mravima [1, 2]. Na putu od mravinjaka do hrane, te na putu od hrane do mravinjaka, svaki mrav ostavlja kemijski trag feromone. Mravi imaju razvijen osjet feromona, te prilikom odlučivanja kojim putem krenuti tu odluku donose obzirom na jakost feromonskog traga koji osjećaju. Tipično, mrav će se kretati smjerom jačeg feromonskog traga. Deneubourg i suradnici prilikom eksperimenata varirali su duljine krakova mosta. U prvom eksperimentu oba su kraka jednako duga. Mravi su na početku u podjednakom broju krenuli preko oba kraka. Nakon nekog vremena, me dutim, dominantni dio mrava kretao se je samo jednim krakom (slučajno odabranim). Objašnjenje je sljedeće. Na početku, mravi slučajno odabiru jedan ili drugi krak, i krećući se njima ostavljaju feromonski trag. U nekom trenutku dogodi se da nekoliko mrava više krene jednim od krakova (uslijed slučajnosti) i tu nastane veća koncentracija feromona. Privučeni ovom većom količinom feromona, još više mrava krene tim krakom što dodatno poveća količinu feromona. S druge strane, kako drugim krakom krene manje mrava, količina feromona koja se osvježava je manja, a feromoni s vremenom i isparavaju. Ovo u konačnici dovodi do

32 32 Poglavlje 3. Mravlji algoritmi 15 cm mravinjak 60 hrana Slika 3.1: Eksperiment dvokrakog mosta (prvi). mravinjak hrana Slika 3.2: Eksperiment dvokrakog mosta (drugi). situacije da se stvori jaki feromonski trag na jednom kraku, i taj feromonski trag privuče najveći broj mrava. Eksperiment je ponovljen više puta, i uočeno je da u prosjeku u 50% slučajeva mravi biraju jedan krak, a u 50% slučajeva biraju drugi krak. Sljedeći eksperiment napravljen je s dvokrakim mostom kod kojeg je jedan krak dvostruko dulji od drugoga (slika 3.2). U svim pokušajima eksperimenta pokazalo se je da najveći broj mrava nakon nekog vremena bira kraći krak. Ovakvo ponašanje na makroskopskoj razini pronalazak najkraće staze izme du hrane i mravinjaka rezultat je interakcija na mikroskopskoj razini interakcije izme du pojedinih mrava koji zapravo nisu svjesni "šire slike" [4, 11, 12]. Takvo ponašanje temelj je onoga što danas znamo pod nazivom izranjajuća inteligencija (engl. emerging intelligence). Konačno, kako bi se provjerila dinamika odnosno sposobnost prilagodbe mrava na promjene, napravljen je treći eksperiment (slika 3.3). Kod ovog eksperimenta mravinjak i izvor hrane najprije su spojeni jednokrakim mostom (čiji je krak dugačak). Mravi su krenuli tim krakom do hrane i natrag. Nakon 30 minuta kada se je situacija stabilizirala, mostu je dodan drugi, dvostruko kraći krak. Me dutim, eksperiment je pokazao da se je najveći dio mrava i dalje nastavio kretati duljim krakom, zahvaljujući stvorenom jakom feromonskom tragu.

33 3.1 Pojednostavljeni matematički model 33 Kraći krak je odvojen Nakon 30 minuta: mravinjak hrana mravinjak hrana Slika 3.3: Eksperiment dvokrakog mosta (treći) Mravinjak Izvor hrane 10 Slika 3.4: Primjer pronalaska hrane. 3.1 Pojednostavljeni matematički model Matematički model koji opisuje kretanje mrava dan je u [9]. Mravi prilikom kretanja u oba smjera (od mravinjaka pa do izvora hrane, te od izvora hrane pa do mravinjaka) neprestano ostavljaju feromonski trag. Štoviše, neke vrste mrava na povratku prema mravinjaku ostavljaju to jači feromonski trag što je izvor prona dene hrane bogatiji. Simulacije ovakvih sustava, posebice uzmemo li u obzir i dinamiku isparavanja feromona izuzetno su kompleksne. Me dutim, ideje i zakonitosti koje su ovdje uočene našle su primjenu u nizu mravljih algoritama u donekle pojednostavljenom obliku. Pogledajmo to na primjeru. Izme du mravinjaka i izvora hrane nalazi se niz tunela (slika 3.4, tuneli su modelirani bridovima grafa). Ideja algoritma je jednostavna. U fazi inicijalizacije, na sve se bridove postavi ista (fiksna) količina feromona. U prvom koraku, mrav iz mravinjaka (čvor 1) mora odlučiti u koji će čvor krenuti. Ovu odluku donosi na temelju vjerojatnosti odabira brida p k i j : p k i j = τi α j l N k τil α i, ako je j N k i 0, ako je j / N k i pri čemu τ i j predstavlja vrijednost feromonskog traga na bridu izme du čvorova i i j, a α predstavlja konstantu. Skup N k i predstavlja skup svih indeksa svih čvorova u koje je u koraku k moguće prijeći

34 34 Poglavlje 3. Mravlji algoritmi iz čvora i. Konkretno, u našem slučaju N1 1 = 2,3,4. Ako iz čvora i nije moguće prijeći u čvor j, vjerojatnost će biti 0. Suma u nazivniku prethodnog izraza ide, dakle, po svim bridovima koji vode do čvorova u koje se može stići iz čvora i. Nakon što odabere sljedeći čvor, mrav ponavlja proceduru sve dok ne stigne do izvora hrane (čvor 11). Uočimo kako se rješenje problema ovom tehnikom gradi dio po dio mravlji algoritmi pripadaju porodici konstrukcijskih algoritama. Jednom kada stigne do izvora hrane, mrav zna koliki je put prešao. Umjetni mravi feromone tipično ostavljaju na povratku, i to na način da je količina feromona proporcionalna dobroti rješenja (odnosno ako tražimo najkraći put, obrnuto je proporcionalna duljini puta). Ažuriranje radimo za sve bridove kojima je mrav prošao, i to prema izrazu: gdje je: τ i j τ i j + τ k τ k = 1 L, pri čemu je L duljina prona denog puta. Isparavanje feromona modelirano je izrazom: τ i j τ i j (1 ρ) gdje je ρ brzina isparavanja (iz intervala 0 do 1). Isparavanje se primjenjuje na sve bridove grafa. Ovaj pristup, dakako, ima svojih problema. Primjerice, kada mrav dinamički gradi put, ako se u svakom čvoru dopusti odabir bilo kojeg povezanog čvora, moguće je dobiti cikluse, što je nepoželjno. Tako der, ažuriranje feromonskog traga nakon svakog mrava pokazalo se kao loše. Temeljeći se na opisanim principima moguće je napisati jednostavan optimizacijski algoritam, prikazan pseudokodom u nastavku. Pseudokod Jednostavan mravlji algoritam. ponavljaj dok nije kraj ponovi za svakog mrava stvori rje²enje vrednuj rje²enje kraj ponovi odaberi podskup mrava ponovi za odabrane mrave aºuriraj feromonske tragove kraj ponovi ispari feromonske tragove kraj ponavljanja Algoritam radi s populacijom od m mrava, pri čemu u petlji ponavlja sljedeće. Svih m mrava pusti se da stvore rješenja, i ta se rješenja vrednuju (izračunaju se duljine puteva). Pri tome, svaki mrav prilikom izgradnje pamti do tada pre deni put, i kada treba birati u koji će sljedeći čvor krenuti, automatski odbacuje čvorove kroz koje je već prošao (skupovi Ni k ). Tek kada je svih m mrava stvorilo prijedloge rješenja, odabire se n m mrava koji će obaviti ažuriranje feromonskih tragova. Pri tome n može biti jednak m, što znači da će svi mravi ažurirati feromonske tragove. Kako se takav pristup pokazao kao loša praksa, bolje je pustiti samo bolji podskup, ili čak samo najboljeg

35 3.1 Pojednostavljeni matematički model 35 Slika 3.5: Rješenje TSP-a dobiveno jednostavnim mravljim algoritmom. Slika 3.6: Napredak jednostavnog mravljeg algoritma. mrava da obavi ažuriranje. Potom se primjenjuje postupak isparavanja feromona, i sve se ciklički ponavlja. Kako bi se ilustrirao rad ovog algoritma, napisana je implementacija u Javi, i to na problemu trgovačkog putnika s 30 gradova (podsjetimo se radi se o NP teškom problemu; dobiveno rješenje kao i rješavani problem prikazani su na slici 3.5). Rezultati su dobiveni uz sljedeće parametre: m = 40, ρ = 0.2, α = 1, maksimalni broj iteracija 1 iznosi 500. Feromonski tragovi svih bridova izvorno su postavljeni na Sa slike se može uočiti da prona deno rješenje nije idealno, ali je vrlo blizu optimalnog. Kvaliteta prona denih rješenja kroz epohe prikazana je na slici 3.6, gdje se može pratiti najbolje prona deno rješenje kao i prosječno prona deno rješenje. Nakon što smo opisali kako primijeniti prikazane ideje, pogledajmo stvarne algoritme koji se danas koriste.

36 36 Poglavlje 3. Mravlji algoritmi 3.2 Algoritam Ant System Algoritam Ant System predložili su Dorigo i suradnici [5, 7, 9]. Prilikom inicijalizacije grafa, na sve se bridove deponira količina feromona koja je nešto veća od očekivane količine koju će u jednoj iteraciji algoritma deponirati mravi. Koristi se izraz: τ 0 = m C nn gdje je C nn najkraća duljina puta prona dena nekim jednostavnim algoritmom (poput algoritma najbližeg susjeda). Ideja je zapravo dobiti kakvu-takvu procjenu duljine puta od koje će mravi dalje tražiti bolja rješenja, te ponuditi optimalnu početnu točku za rad algoritma. Prema [9], uz premali τ 0 pretraga će brzo biti usmjerena prema području koje su mravi slučajno odabrali u prvoj iteraciji, a uz preveliki τ 0 količine feromona koje mravi ostavljaju u svakoj iteraciji bit će premale da bi mogle usmjeravati pretragu, pa će se morati potrošiti puno iteracija kako bi mehanizam isparavanja uklonio višak feromona, i time omogućio da započne stvarna pretraga. Rad algoritma započinje tako što m mrava stvara rješenja problema. U slučaju TSP-a, mravi se slučajno raspore duju po gradovima iz kojih tada započinju konstrukciju rješenja (nije dobro da svi kreću iz istog grada). Prilikom odlučivanja u koji grad krenuti, umjesto prethodno prikazanog pravila, mravi koriste slučajno proporcionalno pravilo (engl. random proportional rule) koje uključuje dvije komponente: jakost prethodno deponiranog feromonskog traga te vrijednost heurističke funkcije. Vjerojatnost prelaska iz grada i u grad j odre dena je izrazom: p k i j = τ α i j ηβ i j l N k i τ α il ηβ il, ako je j N k i 0, ako je j / N k i η i j je pri tome heuristička informacija koja govori koliko se čini da je dobro iz grada i otići u grad j. Ovo je tipično informacija koja je poznata unaprijed, i u slučaju problema trgovačkog putnika računa se kao η i j = 1 d i j, gdje je d i j udaljenost grada i od grada j. Parametri α i β pri tome odre duju ponašanje samog algoritma. Ako je α = 0, utjecaj feromonskog traga se poništava, i pretraživanje se vodi samo heurističkom informacijom. Ako je pak β = 0, utjecaj heurističke informacije se poništava, i ostaje utjecaj isključivo feromonskog traga, što često dovodi do prebrze konvergencije suboptimalnom rješenju (gdje mravi slijede jedan drugoga po relativno lošoj stazi). Dobri rezultati postižu se uz α 1 i β izme du 2 i 5. Nakon što su svi mravi napravili rješenja, rješenja se vrednuju. Potom se pristupa isparavanju feromona sa svih bridova, prema izrazu: τ i j τ i j (1 ρ). Nakon isparavanja, svi mravi deponiraju feromonski trag na bridove kojima su prošli, i to proporcionalno dobroti rješenja koje su pronašli: τ i j τ i j + pri čemu je: m τi k j k=1 { 1, ako je brid i- j na stazi k-tog mrava τ i j = C k 0, inace Implementacija ovog algoritma dana je pseudokodom u nastavku.

37 3.2 Algoritam Ant System 37 Slika 3.7: Rješenje TSP-a dobiveno algoritmom Ant System. Slika 3.8: Napredak algoritma Ant System. Pseudokod Algoritam Ant System. ponavljaj dok nije kraj ponovi za svakog mrava stvori rje²enje vrednuj rje²enje kraj ponovi ispari feromonske tragove ponovi za sve mrave aºuriraj feromonske tragove kraj ponovi kraj ponavljanja U svrhu ilustracije rada algoritma napravljen je program u programskom jeziku Java, i pokrenut nad problemom trgovačkog putnika s 30 gradova. Parametri algoritma su redom: m = 30, α = 1, β = 2, ρ = 0.5. Algoritam je zaustavljen nakon 500 iteracija. Rezultati su prikazani na slikama 3.7 i 3.8. Uz opisane inačice algoritama, napravljen je i niz daljnjih poboljšanja poput elitistička verzija algoritma (engl. Elitist Ant System EAS) [7, 8], algoritma rangirajućeg sustava mrava (engl. Rank-based Ant System) [3], max-min mravljeg sustava (engl. Max-Min Ant System, MMAS) [13,

38 38 Poglavlje 3. Mravlji algoritmi 14, 15] te drugi. Zainteresiranog se čitatelja upućuje na [9].

39 4. Kamo dalje? Evolucijsko računanje danas je našlo primjene u mnogim područjima ljudske djelatnosti. Fokusiramo li se na rješavanje optimizacijskih problema, mnogi su smjerovi u kojima možemo krenuti: otkrivanje i izrada novih postupaka optimizacije, teorijska analiza i razumijevanje postojećih postupaka te uvjeti pod kojima se postižu zadovoljavajući rezultati, ubrzavanje postupaka optimiranja kroz paralelizaciju postupaka, uporaba i razumijevanje hibridnih optimizacijskih postupaka koji istovremeno pretraživanje rade kombinacijom raznih postupaka te višekriterijska optimizacija kod koje se svakom rješenju pridjeljuje više mjera dobrote. Kroz posljednjih tridesetak godina područje je dosta napredovalo, no još uvijek jest vrlo interesantno i plodno za mnoga istraživanja.

40

41 Bibliografija Knjige [Cam+01] S. Camazine i drugi, urednici. Self-organization in Biological Systems. Princeton, NJ: Princeton University Press, [DS04] M. Dorigo i T. Stützle. Ant Colony Optimization. Cambridge, MA: MIT Press, [Hak83] H. Haken. Synergetics. Berlin: Springer-Verlag, [NP77] G. Nicolis i I. Prigogine. Self-Organisation in Non-Equilibrium Systems. New York: John Wiley i Sons, Članci [Bon+97b] [BHS99] [Den+90] [DMC96] [Gos+89] [SH00] E. Bonabeau i drugi. Self-organization in social insects. Tree 12.5 (1997), stranice B. Bullnheimer, R. F. Hartl i C. Strauss. A new rank-based version of the Ant System: A computational study. Central European Journal for Operations Research and Economics 7.1 (1999), stranice J. L. Denebourg i drugi. The self-organizing exploratory pattern of the Argentine ant. Journal of Insect Behaviour 3 (1990), stranice M. Dorigo, V. Maniezzo i A. Colorni. Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics Part B 26.1 (1996), stranice S. Goss i drugi. Self-organized shortcuts in the Argentine ant. Naturwissenschaften 76 (1989), stranice T. Stützle i H.H. Hoos. Max-Min Ant System. Future Generation Computer Systems 16.8 (2000), stranice

42 42 Poglavlje 4. Kamo dalje? Konferencijski radovi i ostalo [Bon+97a] [CDM92] [DMC91] [SH97] [SH99] E. Bonabeau i drugi. Adaptive task allocation inspired by amodel of division of labor in social insects. Bio-Computation and Emergent Computing. Obrada: D. Lundha, B. Olsson i A. Narayanan. Singapore: World Scientific Publishing, 1997, stranice A. Colorni, M. Dorigo i V. Maniezzo. Distributed optimization by ant colonies. Proceedings of the First European Conference on Artificial Life. Obrada: F. J. Varela i P. Bourgine. Cambridge, MA: MIT Press, 1992, stranice M. Dorigo, V. Maniezzo i A. Colorni. Positive feedback as a search strategy. Tehničko izvješće. Technical report Milano: Dipartimento di Elettronica, Politecnico di Milano, T. Stützle i H.H. Hoos. The Max-Min Ant System and local search for the traveling salesman problem. Proceedings of the 1997 IEEE International Conference on Evoultionary Computation (ICEC 97). Obrada: T. Bäck, Z. Michalewicz i X. Yao. Piscataway, NJ: IEEE Press, 1997, stranice T. Stützle i H.H. Hoos. Max-Min Ant System and local search for combinatorial optimization problem. Meta-Heuristics: Advances and Trend sin Local Search Paradigms for optimization. Obrada: S. Voss i drugi. Dordrecht, Netherlands: Kluwer Academic Publishers, 1999, stranice

43 Kazalo A algoritam diferencijske evolucije algoritam harmonijske pretrage algoritam roja čestica algoritmi lokalne pretrage algoritmi pčela algoritmi rojeva B brute force E evolucijske strategije , 9 evolucijski algoritmi evolucijsko programiranje , 9 evolucijsko računanje G genetski algoritmi , 9, 13 genetsko programiranje , 9 H heurističke metode seeheuristike heuristički algoritmi seeheuristike heuristike algoritmi lokalne pretrage seealgoritmi lokalne pretrage, 8 konstrukcijski algoritmi Vidjeti konstrukcijski algoritmi metaheuristike.... Vidjeti metaheuristike metoda uspona na vrh I imunološki algoritmi iscrpna pretraga K konstrukcijski algoritmi , 34 M metaheuristike algoritam diferencijske evolucije algoritam harmonijske pretrage algoritam roja čestica algoritmi pčela algoritmi rojeva evolucijske strategije , 9 evolucijski algoritmi evolucijsko programiranje , 9 evolucijsko računanje genetski algoritmi , 9

Neuronske mreže

Neuronske mreže Neuronske mreže: Genetički algoritmi Prof. dr. sc. Sven Lončarić Fakultet elektrotehnike i računarstva sven.loncaric@fer.hr http://ipg.zesoi.fer.hr 1 Uvod U mnogim primjenama pojavljuje se problem optimizacije

Више

ALIP1_udzb_2019.indb

ALIP1_udzb_2019.indb Razmislimo Kako u memoriji računala prikazujemo tekst, brojeve, slike? Gdje se spremaju svi ti podatci? Kako uopće izgleda memorija računala i koji ju elektronički sklopovi čine? Kako biste znali odgovoriti

Више

Problemi zadovoljavanja ogranicenja.

Problemi zadovoljavanja ogranicenja. I122 Osnove umjetne inteligencije Tema:. 7.1.2016. predavač: Darija Marković asistent: Darija Marković 1 I122 Osnove umjetne inteligencije. 2/26 (PZO) Problem zadovoljavanja ograničenja sastoji se od 3

Више

Рачунарска интелигенција

Рачунарска интелигенција Рачунарска интелигенција Генетско програмирање Александар Картељ kartelj@matf.bg.ac.rs Ови слајдови представљају прилагођење слајдова: A.E. Eiben, J.E. Smith, Introduction to Evolutionary computing: Genetic

Више

MAZALICA DUŠKA.pdf

MAZALICA DUŠKA.pdf SVEUČILIŠTE JOSIPA JURJA STROSSMAYERA U OSIJEKU ELEKTROTEHNIČKI FAKULTET Sveučilišni studij OPTIMIRANJE INTEGRACIJE MALIH ELEKTRANA U DISTRIBUCIJSKU MREŽU Diplomski rad Duška Mazalica Osijek, 2014. SADRŽAJ

Више

Microsoft Word - predavanje8

Microsoft Word - predavanje8 DERIVACIJA KOMPOZICIJE FUNKCIJA Ponekad je potrebno derivirati funkcije koje nisu jednostavne (složene su). Na primjer, funkcija sin2 je kompozicija funkcija sin (vanjska funkcija) i 2 (unutarnja funkcija).

Више

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1.

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL završni ispit 6. srpnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1. MJERA I INTEGRAL završni ispit 6. srpnja 208. (Knjige bilježnice dodatni papiri i kalkulatori nisu dozvoljeni!). (8 bodova) Kao na predavanjima za d N sa P d : a b ] a d b d ] : a i b i R a i b i za i

Више

Algoritmi SŠ P1

Algoritmi SŠ P1 Državno natjecanje iz informatike Srednja škola Prvi dan natjecanja 2. ožujka 219. ime zadatka BADMINTON SJEME MANIPULATOR vremensko ograničenje 1 sekunda 1 sekunda 3 sekunde memorijsko ograničenje 512

Више

Microsoft Word - 6ms001

Microsoft Word - 6ms001 Zadatak 001 (Anela, ekonomska škola) Riješi sustav jednadžbi: 5 z = 0 + + z = 14 4 + + z = 16 Rješenje 001 Sustav rješavamo Gaussovom metodom eliminacije (isključivanja). Gaussova metoda provodi se pomoću

Више

Microsoft Word - 15ms261

Microsoft Word - 15ms261 Zadatak 6 (Mirko, elektrotehnička škola) Rješenje 6 Odredite sup S, inf S, ma S i min S u skupu R ako je S = { R } a b = a a b + b a b, c < 0 a c b c. ( ), : 5. Skratiti razlomak znači brojnik i nazivnik

Више

Classroom Expectations

Classroom Expectations АТ-8: Терминирање производно-технолошких ентитета Проф. др Зоран Миљковић Садржај Пројектовање флексибилних ; Математички модел за оптимизацију флексибилних ; Генетички алгоритми у оптимизацији флексибилних

Више

Elementarna matematika 1 - Oblici matematickog mišljenja

Elementarna matematika 1 - Oblici matematickog mišljenja Oblici matematičkog mišljenja 2007/2008 Mišljenje (psihološka definicija) = izdvajanje u čovjekovoj spoznaji odre denih strana i svojstava promatranog objekta i njihovo dovo denje u odgovarajuće veze s

Више

Državna matura iz informatike

Državna matura iz informatike DRŽAVNA MATURA IZ INFORMATIKE U ŠK. GOD. 2013./14. 2016./17. SADRŽAJ Osnovne informacije o ispitu iz informatike Područja ispitivanja Pragovi prolaznosti u 2014./15. Primjeri zadataka po područjima ispitivanja

Више

Osnove fizike 1

Osnove fizike 1 Sveučilište u Rijeci ODJEL ZA INFORMATIKU Ulica Radmile Matejčić 2, Rijeka Akademska 2018./2019. godina OSNOVE FIZIKE 1 Studij: Preddiplomski studij informatike Godina i semestar: 1. godina; 1. semestar

Више

8 2 upiti_izvjesca.indd

8 2 upiti_izvjesca.indd 1 2. Baze podataka Upiti i izvješća baze podataka Na početku cjeline o bazama podataka napravili ste plošnu bazu podataka o natjecanjima učenika. Sada ćete izraditi relacijsku bazu u Accessu o učenicima

Више

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja) 1. C. Imamo redom: I. ZADATCI VIŠESTRUKOGA IZBORA 9 + 7 6 9 + 4 51 = = = 5.1 18 4 18 8 10. B. Pomoću kalkulatora nalazimo 10 1.5 = 63.45553. Četvrta decimala je očito jednaka 5, pa se zaokruživanje vrši

Више

knjiga.dvi

knjiga.dvi 1. Vjerojatnost 1. lgebra dogadaja......................... 1 2. Vjerojatnost............................. 9 3. Klasični vjerojatnosni prostor................. 14 4. eskonačni vjerojatnosni prostor...............

Више

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odrediti njene krajeve. b) Odrediti sledeće skupove: -

Више

PowerPoint Presentation

PowerPoint Presentation Колоквијум # задатак подељен на 4 питања: теоријска практична пишу се програми, коначно решење се записује на папиру, кодови се архивирају преко сајта Инжењерски оптимизациони алгоритми /3 Проблем: NLP:

Више

Uvod u računarstvo 2+2

Uvod u računarstvo 2+2 Programiranje 2 doc.dr.sc. Goranka Nogo PMF Matematički odsjek, Zagreb Kontakt ured: 228, drugi kat e-mail: nogo@math.hr konzultacije: četvrtak, 12:00-14:00 petak, 11:00-12:00 neki drugi termin, uz prethodni

Више

Optimizacija

Optimizacija Optimizacija 1 / 43 2 / 43 Uvod u optimizaciju Zadana funkcija Uvod u optimizaciju f : R n R Cilj: Naći x, točku minimuma funkcije f : - Problem je jednostavno opisati x = arg min x R n f (x). - Rješavanje

Више

Sadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor

Sadržaj 1 Diskretan slučajan vektor Definicija slučajnog vektora Diskretan slučajan vektor Sadržaj Diskretan slučajan vektor Definicija slučajnog vektora 2 Diskretan slučajan vektor Funkcija distribucije slučajnog vektora 2 4 Nezavisnost slučajnih vektora 2 5 Očekivanje slučajnog vektora 6 Kovarijanca

Више

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL 2. kolokvij 29. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1. (

JMBAG IME I PREZIME BROJ BODOVA MJERA I INTEGRAL 2. kolokvij 29. lipnja (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) 1. ( MJERA I INTEGRAL. kolokvij 9. lipnja 018. (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni! 1. (ukupno 6 bodova Neka je (, F, µ prostor s mjerom, neka je (f n n1 niz F-izmjerivih funkcija

Више

VELEUČILIŠTE VELIKA GORICA REZULTATI STUDENTSKE ANKETE PROVEDENE NA VELEUČILIŠTU VELIKA GORICA ZA ZIMSKI SEMESTAR AKADEMSKE 2013/2014 GODINE 1. Uvod E

VELEUČILIŠTE VELIKA GORICA REZULTATI STUDENTSKE ANKETE PROVEDENE NA VELEUČILIŠTU VELIKA GORICA ZA ZIMSKI SEMESTAR AKADEMSKE 2013/2014 GODINE 1. Uvod E REZULTATI STUDENTSKE ANKETE PROVEDENE NA VELEUČILIŠTU VELIKA GORICA ZA ZIMSKI SEMESTAR AKADEMSKE 2013/2014 GODINE 1. Uvod Evaluacijska anketa nastavnika i nastavnih predmeta provedena je putem interneta.

Више

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica dimenzije m n, b Z m, c Z n. Takođe, očekuje se da

Више

Objektno orjentirano programiranje 2P

Objektno orjentirano programiranje 2P Sveučilište u Rijeci ODJEL ZA INFORMATIKU Akademska 2016./2017. godina OBJEKTNO ORIJENTIRANO PROGRAMIRANJE Studij: Preddiplomski studij informatike (dvopredmetni) Godina i semestar: 2. godina, 3. semestar

Више

Infokup - Školsko Osnovne škole Algoritmi BaPaCpp

Infokup - Školsko Osnovne škole Algoritmi BaPaCpp 21.. siječnja 2013.. od 1:30 do 16:30 Školsko natjecanje / Algoritmi (Basic/Pascal/C/C++) Sadržaj Zadaci... 1 Zadatak: Napolitanke... 2 Zadatak: Peking... 3 Zadatak: Joker... Zadaci U tablici možete pogledati

Више

Recuva CERT.hr-PUBDOC

Recuva CERT.hr-PUBDOC Recuva CERT.hr-PUBDOC-2019-5-379 Sadržaj 1 UVOD... 3 2 INSTALACIJA ALATA RECUVA... 4 3 KORIŠTENJE ALATA RECUVA... 7 4 ZAKLJUČAK... 13 Ovaj dokument izradio je Laboratorij za sustave i signale Zavoda za

Више

Slide 1

Slide 1 OSNOVNI POJMOVI Naredba je uputa računalu za obavljanje određene radnje. Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Pisanje programa zovemo programiranje. Programski jezik

Више

Hej hej bojiš se matematike? Ma nema potrebe! Dobra priprema je pola obavljenog posla, a da bi bio izvrsno pripremljen tu uskačemo mi iz Štreberaja. D

Hej hej bojiš se matematike? Ma nema potrebe! Dobra priprema je pola obavljenog posla, a da bi bio izvrsno pripremljen tu uskačemo mi iz Štreberaja. D Hej hej bojiš se matematike? Ma nema potrebe! Dobra priprema je pola obavljenog posla, a da bi bio izvrsno pripremljen tu uskačemo mi iz Štreberaja. Donosimo ti primjere ispita iz matematike, s rješenjima.

Више

JMBAG IME I PREZIME BROJ BODOVA 1. (ukupno 6 bodova) MJERA I INTEGRAL 1. kolokvij 4. svibnja (Knjige, bilježnice, dodatni papiri i kalkulatori n

JMBAG IME I PREZIME BROJ BODOVA 1. (ukupno 6 bodova) MJERA I INTEGRAL 1. kolokvij 4. svibnja (Knjige, bilježnice, dodatni papiri i kalkulatori n 1. (ukupno 6 bodova) MJERA I INTEGRAL 1. kolokvij 4. svibnja 2018. (Knjige, bilježnice, dodatni papiri i kalkulatori nisu dozvoljeni!) (a) (2 boda) Definirajte (općenitu) vanjsku mjeru. (b) (2 boda) Definirajte

Више

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br Ostvarenje imperijalističkog optimizacijskog algoritma u programskom

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br Ostvarenje imperijalističkog optimizacijskog algoritma u programskom SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 4831 Ostvarenje imperijalističkog optimizacijskog algoritma u programskom sustavu za evolucijsko računanje Kristijan Jaklinović

Више

SVEUČILIŠTE U ZAGREBU

SVEUČILIŠTE U ZAGREBU SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Zagreb, 2017. godina. SVEUČILIŠTE U ZAGREBU FAKULTET STROJARSTVA I BRODOGRADNJE ZAVRŠNI RAD Mentori: Prof. dr. sc. Dragutin Lisjak,

Више

2015_k2_z12.dvi

2015_k2_z12.dvi OBLIKOVANJE I ANALIZA ALGORITAMA 2. kolokvij 27. 1. 2016. Skice rješenja prva dva zadatka 1. (20) Zadano je n poslova. Svaki posao je zadan kao vremenski interval realnih brojeva, P i = [p i,k i ],zai

Више

Teorija skupova - blog.sake.ba

Teorija skupova - blog.sake.ba Uvod Matematika je jedan od najomraženijih predmeta kod većine učenika S pravom, dakako! Zapitajmo se šta je uzrok tome? Da li je matematika zaista toliko teška, komplikovana? Odgovor je jednostavan, naravno

Више

Uvod u obične diferencijalne jednadžbe Metoda separacije varijabli Obične diferencijalne jednadžbe Franka Miriam Brückler

Uvod u obične diferencijalne jednadžbe Metoda separacije varijabli Obične diferencijalne jednadžbe Franka Miriam Brückler Obične diferencijalne jednadžbe Franka Miriam Brückler Primjer Deriviranje po x je linearan operator d dx kojemu recimo kao domenu i kodomenu uzmemo (beskonačnodimenzionalni) vektorski prostor funkcija

Више

Logičke izjave i logičke funkcije

Logičke izjave i logičke funkcije Logičke izjave i logičke funkcije Građa računala, prijenos podataka u računalu Što su logičke izjave? Logička izjava je tvrdnja koja može biti istinita (True) ili lažna (False). Ako je u logičkoj izjavi

Више

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije korake. Uz dobro razrađen algoritam neku radnju ćemo

Више

(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka)

(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka) . B. Zapišimo zadane brojeve u obliku beskonačno periodičnih decimalnih brojeva: 3 4 = 0.7, = 0.36. Prvi od navedenih četiriju brojeva je manji od 3 4, dok su treći i četvrti veći od. Jedini broj koji

Више

UAAG Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević

UAAG Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević Osnovne algebarske strukture 5. Vektorski prostori Borka Jadrijević Osnovne algebarske strukture5. Vektorski prostori 2 5.1 Unutarnja i vanjska množenja Imamo dvije vrste algebarskih operacija, tzv. unutarnja

Више

Uvod u statistiku

Uvod u statistiku Uvod u statistiku Osnovni pojmovi Statistika nauka o podacima Uključuje prikupljanje, klasifikaciju, prikaz, obradu i interpretaciju podataka Staistička jedinica objekat kome se mjeri neko svojstvo. Svi

Више

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs Numeričke metode u fizici, Projektni zadataci 8./9.. Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrsta životinja koje se nadmeću za istu hranu, dx ( dt = x x ) xy

Више

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc Konstrukcija i analiza algoritama 2 (prvi kolokvijum, smer R) 1. a) Konstruisati AVL stablo od brojeva 100, 132, 134, 170, 180, 112, 188, 184, 181, 165 (2 poena) b) Konkatenacija je operacija nad dva skupa

Више

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost 1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar. 1.. Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred. 1.7. Bodovna vrijednost (ECTS) 7 1.3. Suradnici 1.8. Način izvođenja nastave

Више

UDŽBENIK 2. dio

UDŽBENIK 2. dio UDŽBENIK 2. dio Pročitaj pažljivo Primjer 1. i Primjer 2. Ova dva primjera bi te trebala uvjeriti u potrebu za uvo - denjem još jedne vrste brojeva. Primjer 1. Živa u termometru pokazivala je temperaturu

Више

Algoritmi SŠ P1

Algoritmi SŠ P1 Županijsko natjecanje iz informatike Srednja škola 9. veljače 2018. RJEŠENJA ZADATAKA Napomena: kodovi za većinu opisanih algoritama dani su u Pythonu radi jednostavnosti i lakše čitljivosti. Zbog prirode

Више

Microsoft Word - Seminar[godina]Prezime_Ime.docx

Microsoft Word - Seminar[godina]Prezime_Ime.docx SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINAR Naslov seminarskog rada Mario Kostelac Voditelj: Domagoj Jakobović Zagreb, travanj, 2012. Sadržaj 1. SAŽETAK... 1 2. UVOD... 2 3. GENETSKI

Више

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet organizacije i informatike I

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet organizacije i informatike I Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet organizacije i informatike Informacijsko i programsko inženjerstvo Ured za upravljanje

Више

PowerPoint Presentation

PowerPoint Presentation Kompetencijski profil nastavnika u visokom obrazovanju Prof. dr. sc. Aleksandra Čižmešija Sveučilište u Zagrebu Prirodoslovno-matematički fakultet cizmesij@math.hr Educa T projekt Kompetencijski profil

Више

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet organizacije i informatike O

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet organizacije i informatike O Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet organizacije i informatike Organizacija poslovnih sustava Ured za upravljanje kvalitetom

Више

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Hrvatski studiji Psihologija Ured za

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Hrvatski studiji Psihologija Ured za Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Hrvatski studiji Psihologija Ured za upravljanje kvalitetom Sveučilište u Zagrebu Zagreb,

Више

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe 6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe, očekuje se da su koordinate celobrojne. U slučaju

Више

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Hrvatski studiji Kroatologija Ured za

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Hrvatski studiji Kroatologija Ured za Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Hrvatski studiji Kroatologija Ured za upravljanje kvalitetom Sveučilište u Zagrebu Zagreb,

Више

7. predavanje Vladimir Dananić 14. studenoga Vladimir Dananić () 7. predavanje 14. studenoga / 16

7. predavanje Vladimir Dananić 14. studenoga Vladimir Dananić () 7. predavanje 14. studenoga / 16 7. predavanje Vladimir Dananić 14. studenoga 2011. Vladimir Dananić () 7. predavanje 14. studenoga 2011. 1 / 16 Sadržaj 1 Operator kutne količine gibanja 2 3 Zadatci Vladimir Dananić () 7. predavanje 14.

Више

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Grafički fakultet Grafička tehnnologi

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Grafički fakultet Grafička tehnnologi Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Grafički fakultet Grafička tehnnologija Ured za upravljanje kvalitetom Sveučilište u Zagrebu

Више

Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp

Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp PMF-MO Seminar iz kolegija Oblikovanje i analiza algoritama 22.1.2019. mrežu - Ford-Fulkerson, Edmonds-Karp 22.1.2019. 1 / 35 Uvod - definicije

Више

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet kemijskog inženjerstva i teh

Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet kemijskog inženjerstva i teh Vrjednovanje diplomskih studija od strane studenata koji su tijekom akademske godine 2015./2016. završili studij Fakultet kemijskog inženjerstva i tehnologije Primijenjena kemija Ured za upravljanje kvalitetom

Више

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na

Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati na Drugi kolokvij iz predmeta Operacijski sustavi 2. srpnja 2019. Napomene: PISATI ČITKO! Zadatke 7-10 rješavati na ovom papiru ili uz njih napisati "na papirima". 1. (2) Opisati pristupni sklop za izravni

Више

Postojanost boja

Postojanost boja Korištenje distribucije osvjetljenja za ostvaranje brzih i točnih metode za postojanost boja Nikola Banić 26. rujna 2014. Sadržaj Postojanost boja Ubrzavanje lokalnog podešavanja boja Distribucija najčešćih

Више

Diferenciranje i integriranje pod znakom integrala math.e Vol math.e Hrvatski matematički elektronički časopis Diferenciranje i integriranje pod

Diferenciranje i integriranje pod znakom integrala math.e Vol math.e Hrvatski matematički elektronički časopis Diferenciranje i integriranje pod 1 math.e Hrvatski matematički elektronički časopis Diferenciranje i integriranje pod znakom integrala analiza Irfan Glogić, Harun Šiljak When guys at MIT or Princeton had trouble doing a certain integral,

Више

ŽUPANIJSKO NATJECANJE IZ MATEMATIKE 28. veljače razred - rješenja OVDJE SU DANI NEKI NAČINI RJEŠAVANJA ZADATAKA. UKOLIKO UČENIK IMA DRUGAČIJI

ŽUPANIJSKO NATJECANJE IZ MATEMATIKE 28. veljače razred - rješenja OVDJE SU DANI NEKI NAČINI RJEŠAVANJA ZADATAKA. UKOLIKO UČENIK IMA DRUGAČIJI ŽUANIJSKO NATJECANJE IZ MATEMATIKE 8. veljače 09. 8. razred - rješenja OVDJE SU DANI NEKI NAČINI RJEŠAVANJA ZADATAKA. UKOLIKO UČENIK IMA DRUGAČIJI OSTUAK RJEŠAVANJA, ČLAN OVJERENSTVA DUŽAN JE I TAJ OSTUAK

Више

SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc.

SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc. SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Ivana Šore REKURZIVNOST REALNIH FUNKCIJA Diplomski rad Voditelj rada: doc.dr.sc. Zvonko Iljazović Zagreb, rujan, 2015. Ovaj diplomski

Више

Microsoft Word - Ispitivanje toka i grafik funkcije V deo

Microsoft Word - Ispitivanje toka i grafik funkcije V deo . Ispitati tok i skicirati grafik funkcije y= arcsin + Oblast definisanosti (domen) Podsetimo se grafika elementarnih funkcija i kako izgleda arcsin funkcija: y - y=arcsin Funkcija je definisana za [,]

Више

P11.3 Analiza zivotnog veka, Graf smetnji

P11.3 Analiza zivotnog veka, Graf smetnji Поједностављени поглед на задњи део компајлера Међурепрезентација (Међујезик IR) Избор инструкција Додела ресурса Распоређивање инструкција Инструкције циљне архитектуре 1 Поједностављени поглед на задњи

Више

Skalarne funkcije više varijabli Parcijalne derivacije Skalarne funkcije više varijabli i parcijalne derivacije Franka Miriam Brückler

Skalarne funkcije više varijabli Parcijalne derivacije Skalarne funkcije više varijabli i parcijalne derivacije Franka Miriam Brückler i parcijalne derivacije Franka Miriam Brückler Jednadžba stanja idealnog plina uz p = nrt V f (x, y, z) = xy z x = n mol, y = T K, z = V L, f == p Pa. Pritom je kodomena od f skup R, a domena je Jednadžba

Више

Matematika 1 - izborna

Matematika 1 - izborna 3.3. NELINEARNE DIOFANTSKE JEDNADŽBE Navest ćemo sada neke metode rješavanja diofantskih jednadžbi koje su drugog i viših stupnjeva. Sve su te metode zapravo posebni oblici jedne opće metode, koja se naziva

Више

Програмирај!

Програмирај! Листе Поред појединачних вредности исказаних бројем или ниском карактера, често је потребно забележити већи скуп вредности које су на неки начин повезане, као, на пример, имена у списку путника у неком

Више

Grupiranje podataka: pristupi, metode i primjene, ljetni semestar 2013./ Standardizacija podataka Predavanja i vježbe 8 Ako su podaci zadani

Grupiranje podataka: pristupi, metode i primjene, ljetni semestar 2013./ Standardizacija podataka Predavanja i vježbe 8 Ako su podaci zadani Grupiranje podataka: pristupi, metode i primjene, ljetni semestar 2013/2014 1 5 Standardizacija podataka Predavanja i vježbe 8 Ako su podaci zadani s više obilježja (atributa), ta se obilježja mogu međusobno

Више

Programiranje 1

Programiranje 1 Sveučilište u Rijeci ODJEL ZA INFORMATIKU Ulica Radmile Matejčić 2, Rijeka Akademska 2018./2019. godina PROGRAMIRANJE 1 Studij: Preddiplomski studij informatike (jednopredmetni) Godina i semestar: 1. godina,

Више

Орт колоквијум

Орт колоквијум II колоквијум из Основа рачунарске технике I - 27/28 (.6.28.) Р е ш е њ е Задатак На улазе x, x 2, x 3, x 4 комбинационе мреже, са излазом z, долази четворобитни BCD број. Ако број са улаза при дељењу

Више

Newtonova metoda za rješavanje nelinearne jednadžbe f(x)=0

Newtonova metoda za rješavanje nelinearne jednadžbe f(x)=0 za rješavanje nelinearne jednadžbe f (x) = 0 Ime Prezime 1, Ime Prezime 2 Odjel za matematiku Sveučilište u Osijeku Seminarski rad iz Matematičkog praktikuma Ime Prezime 1, Ime Prezime 2 za rješavanje

Више

(Microsoft Word - Rje\232enja zadataka)

(Microsoft Word - Rje\232enja zadataka) 1. D. Svedimo sve razlomke na jedinstveni zajednički nazivnik. Lako provjeravamo da vrijede rastavi: 85 = 17 5, 187 = 17 11, 170 = 17 10, pa je zajednički nazivnik svih razlomaka jednak Tako sada imamo:

Више

GLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu 098/ Sažetak Glazbena učilica je projekt osmišljen kao nadopuna

GLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu 098/ Sažetak Glazbena učilica je projekt osmišljen kao nadopuna GLAZBENA UČILICA Marko Beus Filozofski fakultet u Zagrebu beusmarko@gmail.com 098/938-8295 Sažetak Glazbena učilica je projekt osmišljen kao nadopuna nastavnom programu solfeggia u osnovnim glazbenim školama.

Више

2

2 2 Ne možemo svoje ideje ostvariti bez drugih ljudi. Naš biznis ne može rasti bez drugih ljudi. Ne možemo sve sami. Ne moramo sve sami. Možemo i trebamo pronaći i zaposliti ljude bolje od sebe. Krenuli

Више

Natjecanje 2016.

Natjecanje 2016. I RAZRED Zadatak 1 Grafiĉki predstavi funkciju RJEŠENJE 2, { Za, imamo Za, ), imamo, Za imamo I RAZRED Zadatak 2 Neka su realni brojevi koji nisu svi jednaki, takvi da vrijedi Dokaži da je RJEŠENJE Neka

Више

Napredno estimiranje strukture i gibanja kalibriranim parom kamera

Napredno estimiranje strukture i gibanja kalibriranim parom kamera Napredno estimiranje strukture i gibanja kalibriranim parom kamera Ivan Krešo Mentor: Siniša Šegvić 3. srpnja 2013. Motivacija Stereo vid dvije kamere omogućavaju mjerenje dubine korespondentnih točaka

Више

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prijavama koje građani mogu slati Upravnom odjelu za komunalno

Више

Microsoft PowerPoint - IS_G_predavanja_ [Compatibility Mode]

Microsoft PowerPoint - IS_G_predavanja_ [Compatibility Mode] INŽENJERSKE SIMULACIJE Aleksandar Karač Kancelarija 1111 tel: 44 91 20, lok. 129 akarac@ptf.unze.ba Nermin Redžić Kancelarija 4202 tel: 44 91 20, lok.128 nermin.redzic@ptf.unze.ba www.ptf.unze.ba http://ptf.unze.ba/inzenjerske-simulacije

Више

No Slide Title

No Slide Title Statistika je skup metoda za uređivanje, analiziranje i grafičko prikazivanje podataka. statistika???? Podatak je kvantitativna ili kvalitativna vrijednost kojom je opisano određeno obilježje (svojstvo)

Више

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelenog svjetla koji prikazuje sniženu temperaturu. Uključuje

Више

CVRSTOCA

CVRSTOCA ČVRSTOĆA 12 TEORIJE ČVRSTOĆE NAPREGNUTO STANJE Pri analizi unutarnjih sila koje se pojavljuju u kosom presjeku štapa opterećenog na vlak ili tlak, pri jednoosnom napregnutom stanju, u tim presjecima istodobno

Више

Matrice. Algebarske operacije s matricama. - Predavanje I

Matrice. Algebarske operacije s matricama. - Predavanje I Matrice.. Predavanje I Ines Radošević inesr@math.uniri.hr Odjel za matematiku Sveučilišta u Rijeci Matrice... Matrice... Podsjeti se... skup, element skupa,..., matematička logika skupovi brojeva N,...,

Више

(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja)

(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja) 1. C. Imamo redom: I. ZADATCI VIŠESTRUKOGA IZBORA. B. Imamo redom: 0.3 0. 8 7 8 19 ( 3) 4 : = 9 4 = 9 4 = 9 = =. 0. 0.3 3 3 3 3 0 1 3 + 1 + 4 8 5 5 = = = = = = 0 1 3 0 1 3 0 1+ 3 ( : ) ( : ) 5 5 4 0 3.

Више

PROGRAM

PROGRAM 2019 PROGRAM AKADEMIJA REGIONALNOGA RAZVOJA I FONDOVA EU 2019. Europska unija Zajedno do fondova EU SADRŽAJ 1. EDUKATIVNE AKTIVNOSTI AKADEMIJE REGIONALNOGA RAZVOJA I FONDOVA EU... 4 MODUL 1: Što su fondovi

Више

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode] Сложеност алгоритама (Програмирање 2, глава 3, глава 4-4.3) Проблем: класа задатака истог типа Велики број различитих (коректних) алгоритама Величина (димензија) проблема нпр. количина података које треба

Више

ТЕОРИЈА УЗОРАКА 2

ТЕОРИЈА УЗОРАКА 2 ТЕОРИЈА УЗОРАКА 2 12. 04. 13. ВЕЖБАЊА Написати функције за бирање елемената популације обима N у узорак обима n, код простог случајног узорка, користећи алгоритме: Draw by draw procedure for SRS/SRSWOR

Више

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje, te službeni šalabahter. Kalkulatori, mobiteli, razne neslužbene tablice, papiri i sl., nisu dozvoljeni! Sva rješenja napišite

Више

Development Case

Development Case Tehnička dokumentacija Verzija Studentski tim: Nastavnik: < izv. prof. dr. sc. Nikola Mišković> FER 2 -

Више

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi 3. siječnja 0. od 3:00 do 4:00 RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovitelji Sadržaj Zadaci. 4.... Zadaci 5. 0.... 3 od 8 Zadaci. 4. U sljedećim pitanjima na pitanja odgovaraš upisivanjem

Више

FAKULTET STROJARSTVA I BRODOGRADNJE KATEDRA ZA STROJARSKU AUTOMATIKU SEMINARSKI RAD IZ KOLEGIJA NEIZRAZITO I DIGITALNO UPRAVLJANJE Mehatronika i robot

FAKULTET STROJARSTVA I BRODOGRADNJE KATEDRA ZA STROJARSKU AUTOMATIKU SEMINARSKI RAD IZ KOLEGIJA NEIZRAZITO I DIGITALNO UPRAVLJANJE Mehatronika i robot FAKULTET STROJARSTVA I BRODOGRADNJE KATEDRA ZA STROJARSKU AUTOMATIKU SEMINARSKI RAD IZ KOLEGIJA NEIZRAZITO I DIGITALNO UPRAVLJANJE Mehatronika i robotika Zagreb, 2014. MODEL PROCESA U PROSTORU STANJA

Више

DUBINSKA ANALIZA PODATAKA

DUBINSKA ANALIZA PODATAKA DUBINSKA ANALIZA PODATAKA () ASOCIJACIJSKA PRAVILA (ENGL. ASSOCIATION RULE) Studeni 2018. Mario Somek SADRŽAJ Asocijacijska pravila? Oblici učenja pravila Podaci za analizu Algoritam Primjer Izvođenje

Више

Slide 1

Slide 1 0(a) 0(b) 0(c) 0(d) 0(e) :: :: Neke fizikalne veličine poput indeksa loma u anizotropnim sredstvima ovise o iznosu i smjeru, a nisu vektori. Stoga se namede potreba poopdavanja. Međutim, fizikalne veličine,

Више

SveuĊilište u Zagrebu

SveuĊilište u Zagrebu SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1883 Ocjena učinkovitosti asinkronih paralelnih evolucijskih algoritama Bruno Alfirević Zagreb, veljača 2011. i Sažetak Ovaj

Више

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у посебном дијалог-прозору до кога се долази линком есервис

Више

(Microsoft Word - Dr\236avna matura - rujan osnovna razina - rje\232enja)

(Microsoft Word - Dr\236avna matura - rujan osnovna razina - rje\232enja) I. ZADATCI VIŠESTRUKOGA IZBORA. B. Broj je cijeli broj, tj. pripada skupu cijelih brojeva Z. Skup cijelih brojeva Z je pravi podskup skupa racionalnih brojeva Q, pa je i racionalan broj. 9 4 je očito broj

Више

Diskretna matematika Sveučilište u Rijeci ODJEL ZA INFORMATIKU Radmile Matejčić 2, Rijeka Akademska 2017./2018.godina DISKRETNA MATEMATIKA Studij: Pre

Diskretna matematika Sveučilište u Rijeci ODJEL ZA INFORMATIKU Radmile Matejčić 2, Rijeka Akademska 2017./2018.godina DISKRETNA MATEMATIKA Studij: Pre Sveučilište u Rijeci ODJEL ZA INFORMATIKU Radmile Matejčić 2, Rijeka Akademska 2017./2018.godina DISKRETNA MATEMATIKA Studij: Preddiplomski studij informatike (jednopredmetni) Godina i semestar: 2. godina,

Више

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br.349 SIMBOLIČKO DERIVIRANJE UZ POMOĆ GENETSKOG PROGRAMIRANJA Luka Donđivić Z

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br.349 SIMBOLIČKO DERIVIRANJE UZ POMOĆ GENETSKOG PROGRAMIRANJA Luka Donđivić Z SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br.349 SIMBOLIČKO DERIVIRANJE UZ POMOĆ GENETSKOG PROGRAMIRANJA Luka Donđivić Zagreb, lipanj, 2008. Sadržaj Uvod...1 Genetsko programiranje...2

Више

Verovatnoća - kolokvijum 17. decembar Profesor daje dva tipa ispita,,,težak ispit i,,lak ispit. Verovatnoća da student dobije težak ispit je

Verovatnoća - kolokvijum 17. decembar Profesor daje dva tipa ispita,,,težak ispit i,,lak ispit. Verovatnoća da student dobije težak ispit je Verovatnoća - kolokvijum 17. decembar 2016. 1. Profesor daje dva tipa ispita,,,težak ispit i,,lak ispit. Verovatnoća da student dobije težak ispit je 0.8. Ako je ispit težak, verovatnoća da se prvo pitanje

Више

Maretić M., Vrhovski Z., Purković, D. Multikriterijska optimizacija putanje četveropolužnog mehanizma zasnovana na genetičkim algoritmima ISSN

Maretić M., Vrhovski Z., Purković, D. Multikriterijska optimizacija putanje četveropolužnog mehanizma zasnovana na genetičkim algoritmima ISSN ISSN 1846-6168 UDK 531.1 MULTIKRITERIJSKA OPTIMIZACIJA PUTANJE ČETVEROPOLUŽNOG MEHANIZMA ZASNOVANA NA GENETIČKIM ALGORITMIMA MULTIPLE-CRITERIA OPTIMIZATION OF A FOURBAR MECHANISM TRAJECTORY BASED ON GENETIC

Више

(Microsoft Word vje\236ba - LIMES FUNKCIJE.doc)

(Microsoft Word vje\236ba - LIMES FUNKCIJE.doc) Zadatak Pokažite, koristeći svojstva esa, da je ( 6 ) 5 Svojstva esa funkcije u točki: Ako je k konstanta, k k c c c f ( ) L i g( ) M, tada vrijedi: c c [ f ( ) ± g( ) ] c c f ( ) ± g( ) L ± M c [ f (

Више