Genetski_algoritam_i_problem_trgovaÄ kog_putnika

Download Report

Transcript Genetski_algoritam_i_problem_trgovaÄ kog_putnika

Genetski algoritam i problem trgovačkog putnika

Luka Križan Voditelj: Izv. prof. dr. sc. Domagoj Jakobović

Problem trgovačkog putnika

   Definicija problema: pronaći najkraći hamiltonovski ciklus u težinskom grafu Za zadani skup gradova i zadane udaljenosti među njima potrebno je pronaći najkraći put kojim će se proći kroz sve gradove točno jednom i vratiti se u početni grad Faktorijelna složenost 2/28

Genetski algoritam

  Osnovne ideje – evolucija i prirodna selekcija Jedinke najboljih sposobnosti preživljavaju i prenose svoje gene na iduću generaciju 3/28

  Evolucija traži najbolje i najprilagođenije jedinke na uvjete u okolini Selekcija – proces izdvajanja najsposobnijih jedinki  Križanje – rekombinacija gena prilikom reprodukcije  Mutacija – slučajna promjena genetskog materijala → genetski operatori 4/28

Definicija genetskog algoritma

    Proces koji imitira prirodne evolucijske procese i primjenjuje ga na populaciji jedinki Jedinka – potencijalno rješenje problema (npr. redoslijed gradova u problemu trgovačkog putnika) Svakom rješenju pridjeljuje se dobrota – mjera kvalitete rješenja Iz populacije se stvara nova populacija selekcijom – izdvajanjem najboljih rješenja 5/28

  Prazna mjesta u novoj populaciji popune se novim jedinkama koje nastaju križanjem između preživjelih jedinki Ponavljanje postupka – jedinke/rješenja teže k optimalnom rješenju 6/28

Pseudokod genetskog algoritma

Genetski algoritam: t=0 generiraj pocetnu populaciju P(0) sve dok nije zadovoljen uvjet zavrsetka: t=t+1 selektiraj P’(t) iz P(t-1) krizaj jedinke iz P’(t) i djecu spremi u P(t) mutiraj jedinke iz P(t)

7/28

Prikaz rješenja

   Kromosom prikazati strukturom podataka koja najbolje opisuje svojstva jedinke Traženje ekstrema funkcije f(x) – realni broj iz domene od f Problem trgovačkog putnika – cjelobrojno polje u kojem svaki broj označava redni broj grada u obilasku 8/28

Selekcija

    Postupak odabira dobrih jedinki koje će sudjelovati u reprodukciji Svrha – čuvanje i prenošenje dobrih svojstava na iduću generaciju Odabir samo najboljih jedinki – prerana konvergencija Loše jedinke mogu sadržavati dobar genetski materijal – trebaju imati (manju) šansu za opstanak 9/28

    Implementirana je eliminacijska turnirska selekcija Iz populacije se slučajno odabere k jedinki i izbaci se ona najlošija od njih Veličina turnira (k) obično je cijeli broj iz intervala [2,10] Prazno mjesto u populaciji popuni se križanjem između dvije slučajno odabrane jedinke 10/28

Genetski operatori

 Križanje – sudjeluju dvije jedinke, nastaju jedna ili dvije nove jedinke Roditelji: Djeca: 1001|0110|1101 1101|1011|0110 1001| 1011 |1101 1101 |0110| 0110 11/28

  Proizvoljan broj prekidnih točaka Uklanjanje duplikata 12/28

PMX

  PMX – partially matched crossover Slično uniformnom križanju s dvije prekidne točke, ali prilagođeno problemu trgovačkog putnika 13/28

Roditelj1 = 1234 | 567 | 8 Roditelj2 = 1852 | 364 | 7  Uniformno križanje bi dalo neispravno rješenje 1234 | 364 | 8  PMX provodi zamjenu 3→5, 6→6, 4→7  Rješenje nakon križanja: 12 57 | 364 | 8 14/28

CX

    CX - cycle crossover Križanje bez prekidnih točaka Dobiveno rješenje je uvijek valjano U slučaju velike sličnosti roditelja, dijete može završiti jednako kao jedan od roditelja 15/28

Roditelj1 = 12345678 Roditelj2 = 18523647 Dijete = 12XXXXXX Dijete = 12XXXXX8 Dijete = 12XXXX78 Dijete = 12X4XX78 Dijete = 12 5 4 36 78 16/28

GX

     GX – greedy crossover Odabire se prvi grad iz jednog od roditelja i uspoređuje u koje se gradove dolazi iz tog grada u oba roditelja U nastavak obilaska dodaje se onaj grad do kojeg je put kraći Ako se jedan od gradova već nalazi u djetetu, odabire se onaj drugi Ako se oba grada nalaze u djetetu, slučajno se odabire jedan od gradova koji se još nije pojavio 17/28

Mutacija

  Slučajna promjena jednog ili više gena Provodi se nad jednom jedinkom Prije mutacije: 01110101 Poslije mutacije: 1 1110101 18/28

Zašto koristiti mutaciju?

  Smanjuje mogućnost zaustavljanja u lokalnom optimumu Obnova izgubljenog genetskog materijala Roditelj1: 1011011 0 Roditelj2: 0101101 0 19/28

Jednostavna mutacija

  Mutacija prilagođena problemu trgovačkog putnika Slučajno se odaberu dva grada u obilasku i zamjeni se njihov redoslijed 12345678 12 3 456 7 8 12 7 456 3 8 20/28

2opt

 Optimizacijska metoda razvijena za pojednostavljenje rješavanja problema trgovačkog putnika 21/28

Pseudokod 2opt zamjene

2optzamjena(rjesenje,i,k): rjesenje[0] do rjesenje[i-1] dodaju se istim redoslijedom u novo_rjesenje rjesenje[i] do rjesenje[k-1] dodaju se suprotnim redoslijedom u novo_rjesenje rjesenje[k] do kraja dodaju se istim redoslijedom u novo_rjesenje vrati novo_rjesenje

22/28

i=2, k=4, početno rješenje 1234567 →12 43 567 i=2,k=5 →12 543 67 i=2,k=6 →12 6543 7 i=3,k=5 →123 54 67 i=3,k=6 →123 654 7 23/28

Pseudokod programa

ucitaj parametre programa ucitaj tablicu udaljenosti iz tekstualne datoteke kreiraj nasumicno pocetnu populaciju za i=1 do broj_iteracija: nasumicno odaberi velicna_turnira jedinki od odabranih jedinki izbaci onu koja ima najdulji put obilaska nasumicno odaberi dvije jedinke iz cijele populacije ako su obje jedinke iste: nad jednom jedinkom provedi jednostavnu mutaciju kao rezultat krizanja nasumicno kreiraj novu jedinku inace: nad odabranim jedinkama provedi odabrano krizanje za j=0 do vjerojatnost_mutacije*velicina_populacije: nasumicno odaberi jedinku iz cijele populacije nad odabranom jedinkom provedi odabranu mutaciju sortiraj uzlazno populaciju prema duljini puta obilaska ispiši populaciju u tekstualnu datoteku

24/28

Rezultati izvođenja za problem gr17

Operatori Udio uspjesnih 0% Pros. broj iteracija Najbolje rješenje 2194 Prosječno rješenje 2407 Odstupanje 0,1544 pmx, j. mutacija pmx, 2opt 100% 107 pmx, kombinacija cx, j. mutacija cx, 2opt cx, kombinacija 100% 0% 100% 100% 196 311 316 2140 2379 0,1413 25/28

Operatori Broj uspješnih 28% Pros. broj iteracija 3209 Najbolje rješenje 2094 Prosječno rješenje Odstupanje 2101 7,99*10^-3 gx, j. mutacija gx, 2opt 100% 412 gx, kombinacija 100% 413 26/28

Zaključak

   Najbolja kombinacija operatora: pmx i 2opt mutacija Brzo i uspješno rješavanje problema sa dvadesetak gradova Lošiji rezultati za probleme s više od 40 gradova 27/28

Hvala na pažnji :) 28/28