35
Genetski algoritmi za optimizaciju rasporeda sati Ivan Ković Dragan Marinković Ivan Petrović Ivan Raspović

Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Embed Size (px)

DESCRIPTION

Genetski algoritmi

Citation preview

Page 1: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Genetski algoritmi za optimizaciju

rasporeda satiIvan Ković

Dragan Marinković

Ivan Petrović

Ivan Raspović

Page 2: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Sadržaj

1. Uvod

2. Cilj istraživanja

3. Teorijski dio rada

1. Problem rasporeda

2. Genetski algoritmi

3. Pregled literature

4. Praktični dio rada

5. Zaključak

Page 3: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Uvod

• Genetski algoritam - imitira prirodni evolucijski proces, a koristi se za pronalazak točnih ili približno točnih rješenja

• Primjena genetskih algoritama na stvarni problem - optimizacija rasporeda sati

• Opis izrade programskog rješenja problema  

Page 4: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Cilj istraživanja• Izrada aplikacije koja bi korištenjem genetskog algoritma na temelju ulaznih podataka

kreirala raspored sati i optimizirala ga prema zadanim kriterijima

• Istraživačka pitanja:

• Kako modelirati rješavani problem pomoću gena, odnosno kromosoma?

• Kako identificirati sva ograničenja vezana uz neki raspored sati?

• Na koji način vrednovati prilagođenost neke verzije rješenja navedenim ograničenjima?

• Kako programski implementirati funkciju vrednovanja prilagođenosti rješenja?

• Koji programski jezik i razvojnu okolinu odabrati?

• Kako interpretirati dobiveno rješenje?

• Analiza primjene već poznate metode na dobro utvrđen problem sa svrhom  poboljšanja implementacije genetskog algoritma za optimizaciju rasporeda sati

Page 5: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Problem rasporeda

• Problem rasporeda uključuje odabir optimalnog rasporeda imajući na umu ciljeve, razna okruženja te specifičnosti poslova

• Ukupan broj raspoloživih sati svih dvorana mora biti veći ili jednak sumi sati izvođenja svih predmeta

• Čvrsta i slaba ograničenja

• Resursi su uglavnom ograničeni te nijedna dva zadatka ne bi trebala zauzeti određeni resurs u isto vrijeme

Page 6: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Problem rasporeda

• Postoji više metoda za rješavanje problema rasporeda sati

• Pristup matematičkog programiranja

• Pristup temeljen na bojanju grafova

• Metode klastera

• Constraint based planiranje

• Metaheurističke metode

• Zaključivanje na temelju baze slučaja

Page 7: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Genetski algoritmi

• Pripadaju nasumično navođenim tehnikama pretraživanja koje pokušavaju naći globalni optimum

• Koncept genetičkog algoritma je predstavio u ranim 70-tima J.H. Holland

• U mogućnosti je pronaći globalni optimum u prostoru sa mnogo lokalnih optimum

• Radi sa nizom potencijalnih rješenja koja se nazivaju populacija

• Svako od potencijalnih rješenja se naziva jedinka te se ona mjeri funkcijom prilagođenosti (fitness funkcija)

• Vrijednost prilagođenosti predstavlja mjeru kvalitete jedinke

• Cilj evolucije je pronaći bolje jedinke u svakoj sljedećoj generaciji

Page 8: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Genetski algoritmi

• Terminologija

• Kromosom

• Genotip

• Generacija

• Prilagođenost

• Reprodukcija

• Križanje

• Mutacija

Page 9: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Genetski algoritmi

Page 10: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Prijašnja istraživanja na zadanu temu

• A Genetic Algorithm Based University Timetabling System

• Faculty Scheduling using Genetic Algorithms A Master's Project Proposal

• Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling Problem

• Lecture Timetabling Using Genetic Algorithms• Solving Timetable Scheduling Problem by Using

Genetic Algorithms

Page 11: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

A Genetic Algorithm Based University Timetabling

System

• Edmund Burke, David Elliman i Rupert Weare sa

• Sveučilište u Nottinghamu

• Definiran problem

• Problem NP-potpun

• Faze razvoja

• Opisuju primjere rezultata genetskog algoritma

• problem za 4 dvorane sa 40, 80, 160, 160 mjesta

• definirana konfliktna matrica

Page 12: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

A Genetic Algorithm Based University Timetabling

System• Korištena funkcija evaluacije

• Lijepo objašnjeno kako genetski algoritam napreduje

Page 13: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Prijašnja istraživanja na zadanu temu

• A Genetic Algorithm Based University Timetabling System

• Faculty Scheduling using Genetic Algorithms A Master's Project Proposal

• Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling Problem

• Lecture Timetabling Using Genetic Algorithms• Solving Timetable Scheduling Problem by Using

Genetic Algorithms

Page 14: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Faculty Scheduling using Genetic Algorithms A Master's Project

Proposal• Kevin Soul

• fakultet Monroe, New York iz 2006. godine.

• Dodatak na prethodni članak

• Čvrsta ograničenja:

• Profesor može predavati samo jedan predmet u određeno vrijeme

• U dvorani može biti održan samo 1 predmet u određeno vrijeme

• Profesor može održavati samo one predmete za koje je obučen

• Slaba ograničenja:

• Profesor ne preferira održavati predavanja noću

• Profesor ne preferira održavati predavanja danom

• Profesor ne preferira da ima jutarnja i večernja predavanja zbog dugog radnog dana

Page 15: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Faculty Scheduling using Genetic Algorithms A Master's Project

Proposal

• Cilj ->genetski algoritmi mogu riješiti problem rasporeda sati za potrebe fakulteta + problem riješen u „brzom“ vremenu

• Definirani koraci za ostvarenje cilja:

• Inicijalni program

• Optimizacija inicijalnog programa

• Kreiranje i uspoređivanje ostalih shema genetskih algoritama

• Kombiniranje i pronalaženje najboljeg rezultata

• User-friendly

Page 16: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Prijašnja istraživanja na zadanu temu

• A Genetic Algorithm Based University Timetabling System

• Faculty Scheduling using Genetic Algorithms A Master's Project Proposal

• Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling Problem

• Lecture Timetabling Using Genetic Algorithms• Solving Timetable Scheduling Problem by Using

Genetic Algorithms

Page 17: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling

Problem • Sehraneh Ghaemi i Mohammad Taghi Vakili

• Fakultet elektrotehnike i računalstva u Tabrizu, Iran

• Opis konkretnog problema

• studenti na fakultetu podijeljeni po godinama i semestrima

• četiri vremenska perioda u danu i

• svaki period -> 90 minuta nastave i 30 minuta.

• Svaki student „učen“ kroz jedan ili dva perioda tokom tjedna

• Nastavnik, Student, Predmet, Dvorana, Vremenski okvir

• Problem autora 24 predmeta

• Šifriranje i prikaz preko „kromosoma“

• ključni faktor uspjeha genetskog algoritma jer neće utjecati samo na efikasnost i izvedbu, već i na brzinu i kvalitetu konačnog rezultata

• Autori „svoje“ kromosome stavljaju u 2 dijela

Page 18: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Using a Genetic Algorithm Optimizer Tool to solve University Timetable

Scheduling Problem

• Testiranje 6 dvorana

• dano 8 bitova svakom genu

• Moguće vrijednosti svakog gena je 28=256.Vrijednosti od 0-255 normaliziraju se na vrijednosti od 24x6=144

• Modificiran algoritam

• Kooperativan algoritam

• Oba algoritma testirana na 6 dvorana, 40 predmeta i 18 predavača

• Rezultati

Page 19: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Prijašnja istraživanja na zadanu temu

• A Genetic Algorithm Based University Timetabling System

• Faculty Scheduling using Genetic Algorithms A Master's Project Proposal

• Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling Problem

• Lecture Timetabling Using Genetic Algorithms• Solving Timetable Scheduling Problem by Using

Genetic Algorithms

Page 20: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Lecture Timetabling Using Genetic Algorithms

• Leon Bambrik

• odjela elektrotehnike i računalstva na Sveučilištu u Queenslandu

• Treba zadovoljiti ograničenja

• Strategija popravljanja

• Svaki raspored se posebno evaluira, a to ponajprije s tim da se vidi koliko puta se narušavaju čvrsta ograničenja

• Ostale greške koje su se pojavljivale su:

• Kolizija sa sličnim predmetima

• Dvorana premala

• Predavač 2x označen za predavanje u određenom terminu

• Predavač nedostupan

• Rasporedi „mutirani“; neki potpuno izbačeni

• 7 testova

Page 21: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Prijašnja istraživanja na zadanu temu

• A Genetic Algorithm Based University Timetabling System

• Faculty Scheduling using Genetic Algorithms A Master's Project Proposal

• Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling Problem

• Lecture Timetabling Using Genetic Algorithms• Solving Timetable Scheduling Problem by Using Genetic

Algorithms

Page 22: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Solving Timetable Scheduling Problem by Using Genetic

Algorithms• Branimir Sigl, Marin Golub i Vedran Mornar

• FER, Zagreb

• Autori prikazuju planiranje rasporeda u obliku 3D presjeka problema

• Navode osnovne uvjete koje bi raspored trebao zadovoljiti

• Grupa g može prisustvovati samo jednom predmetu u isto vrijeme

• Profesor p može držati predavanje za samo jedan predmet u isto vrijeme

• U dvorani dv samo se jedan predmet može održati u nekom vremenu

• Sva predavanja bi trebala biti održana točno jednom

• Jedinke se mogu generirati

• svaki gen jedinke predstavlja neki predmet

• Kvaliteta rasporeda određena ranije zakazanim izvođenjem nastave -> svojevrsno slabo ograničenje

Page 23: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Solving Timetable Scheduling Problem by Using Genetic

Algorithms• Reprodukcijske operacije za generiranje novih jedinki kao

• jako bitan dio genetičkog algoritma jer se generiraju nove jedinke koje ostaju u populaciji te se na temelju njih generiraju novije jedinke za iduće generacije

• Ideja za unapređenje algoritma -> zabrana uvođenja novih konflikata

• Nakon poboljšanja algoritam je testiran na malom i velikom primjeru problema rasporeda sati

• Mali problem koji predstavlja 30% velikog, riješila su oba algoritma bez konflikata

• Kod rješavanja velikog problema,

• osnovni algoritam je stopirao 95 konflikata

• poboljšani stopirao samo 20

• Poboljšani algoritam je pokazao puno bolje rezultate

• Brže usklađivanje i manji broj konflikata je ostvaren za manje vremena

Page 24: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Praktični dio rada

• Koraci pri izradi programskog rješenja:

• Analiza zahtjeva

• Identifikacija ograničenja

• Mapiranje gena

• Odabir tehnologije

• Implementacija

• Interpretacija dobivenih rezultata

Page 25: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Analiza zahtjeva

• Funkcije aplikacije:

• Unos podataka

• Konfiguracija algoritma

• Provedba algoritma

• Ispis rješenja

Page 26: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Identifikacija ograničenja

• Čvrsta ograničenja:

• Raspoloživost dvorana, profesora i studenata

• Broj sati određen planom i programom kolegija

• Slabo ograničenje:

• Preferencija jutarnjih termina predavanja

Page 27: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Mapiranje gena

• Kromosom = n gena

• Gen sadrži ID kolegija

• n = 12 sati x brojDvorana x 5 dana

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

kol_I

D

Ponedjeljak … Petak

Dvorana 1 … Dvorana n … Dvorana 1 … Dvorana n

12 gena čini raspored za jednu dvoranu u jednom danu

Kromosom

Page 28: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Odabir tehnologijePopis korištenih tehnologija

Razvojno okruženje NetBeans IDE 7.3.1

Operacijski sustav Windows 7

Programski jezik Java

Razvojni okvir JGAP

• Java

• Prenosivost

• Neovisnost o platformi

• Bogatstvo specijaliziranih biblioteka i razvojnih okvira

• JGAP

• Java Genetic Algorithms Package

• Besplatni razvojni okvir za implementaciju genetskih algoritama

Page 29: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Implementacija

• Planiranje kromosoma• Mapiranje gena

• Klase koje predstavljaju model podataka

• Profesor, Dvorana, GrupaStudenata, Kolegij, RasporedElement

• Implementiranje funkcije vrednovanja prilagođenosti• Dodjeljivanje bodova ovisno o ispunjenosti čvrstih i slabih ograničenja

• Konfiguriranje genetskog algoritma• Broj evolucija

• Veličina populacija

• Željena razina prilagođenosti

• Stvaranje inicijalne populacije• Učitavanje podataka iz datoteke

• Pokretanje evolucije

Page 30: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Interpretacija rezultata

• 30 min rada -> Fitness 984, 50 000 evolucija

• Broj dvorana = 2 -> 10 min rada, F = 990

• Brzina rada najviše ovisi o broju dostupnih dvorana i veličini populacije

Konfiguracijski podaci

Broj dvorana 3

Grupe studenata G21, G22

Profesori

Maleković, Vrček, Kermek, Dobša,

Dušak, Lovrenčić, Krakar, Hip,

Pavlina, Ciglar, Dobrović, Kliček

Kolegiji

INTS, UzDiz, MPKI, MIS, BZSW, KMI,

RG, MNI2, PRO, ERP, MOP, NRS,

SEU, VS

Page 31: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Prva verzija – 3 dvorane, F = 984

Page 32: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Druga verzija – 2 dvorane, F = 990

• Fitness je viši zbog boljeg pridržavanja slabog ograničenja

Page 33: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Usporedba s rezultatima prethodnih istraživanja

• Faculty Scheduling using Genetic Algorithms: A Master's Project Proposal

• Istraživanje sličnog opsega i cilja

• Identificiran veliki broj mogućih čvrstih i slabih ograničenja

• Naše rješenje zadovoljava kriterije postavljene u članku

• Solving Timetable Scheduling Problem by Using Genetic Algorithms

• Podudaranje opsega, cilja i ograničenja

• Optimizacija algoritma

• Ovisnost o broju elemenata koji se uspoređuju

• Prijedlog optimizacije algoritma ovisno o broju dvorana

Page 34: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Zaključak• Genetski algoritmi kao pouzdan alat za optimizaciju

• Primjena u praksi – informatika, strojarstvo, ekonomija, glazba

• Uspješno optimiziranje rasporeda sati

• Pitanja za buduća istraživanja:

• Kako skratiti vrijeme u kojem genetski algoritam dolazi do najboljeg rješenja?

• Smanjenjem složenosti algoritma (Big -O)

• Povećanjem procesne moći (višedretvenost, distribuiranost)

• Kako povećati kvalitetu postojećeg programskog rješenja?

• Grafičko sučelje

• Modularnost

• Konfigurabilnost

• Validacija konfiguracijskih podataka

Page 35: Genetski Algoritmi Za Optimizaciju Rasporeda Sati

Literatura• Bambrick L (1997) Lecture Timetabling Using Genetic Algorithms, preuzeto 12. siječnja s

• st1-dsa.googlecode.com/ files/bambrilg.pdf

• Burke E, Elliman D, Weare R (s.a.) A Genetic Algorithm Based University Timetabling System, preuzeto 12. siječnja s

• ftp://ftp.cs.nott.ac.uk/ ttp/Papers/PDF/Crimea94.pdf

• Burke E, Petrović S (2004) The Handbook of Scheduling:Algorithms, Models, and Performance Analysis: University Timetabling, chapter 45

• Ghaemi S, Vakili M T (s.a.) Using a Genetic Algorithm Optimizer Tool to solve University Timetable Scheduling Problem, preuzeto 12. siječnja s

• http://www.acd-2006.cran.uhp-nancy.fr/Files/ACD/p49.pdf

• Golub M (2013) Genetski algoritam, preuzeto 12. siječnja 2014. s

• http://www.zemris.fer.hr/~golub/ga/ ga.html

• Golub M, Mornar V, Sigl B (s.a.) Solving Timetable Scheduling Problem by Using Genetic Algorithms, preuzeto 12. siječnja s

• http://zemris.fer.hr/~golub/ clanci/iti2003.pdf

• Hochbaum Dorit S (1999) The Scheduling Problem, preuzeto 12. siječnja s

• http://riot.ieor.berkeley.edu/~ vinhun/index.html

• Soule K (2006) Faculty Scheduling using Genetic Algorithms A Master's Project Proposal, preuzeto 12. siječnja s

• https://ritdml.rit.edu/bitstream/handle/1850/2788/KSouleProposal2005.pdf?sequence=1

• The Project Spot (2012) Creating a genetic algorithm for beginners, preuzeto 12. siječnja s

• http://www.theprojectspot.com/ tutorial-post/creating-a-genetic-algorithm-for-beginners/3

• Wikipedia (2013) Genetic algorithm, preuzeto 12. siječnja 2014. S

• http://en.wikipedia.org/ wiki/Genetic_algorithm