[Strojové učenie 2011/2012]
Cvičenie 4
Na tomto cvičení si precvičíme praktické použitie evolučných algoritmov, ktoré sme
prebrali na poslednej prednáške. Vyberte si jeden z používaných univerzálnych balíkov,
ktoré implementujú väčšinu najpoužívanejších verzií EA:
Úloha:
Skompilujte si vybraný systém a vyskúšajte a preštudujte činnosť pribalených príkladov.
Buď modifikáciou existujúceho príkladu alebo odznova vytvorte program, ktorý vypočíta,
ako rozdeliť N úloh na M strojov (ide o známy problém Job Shop Scheduling, ktorý sa vyskytuje
v mnohých verziách, pre mnohé z nich neexistuje polynomický algoritmus, takže je potrebné
používať optimalizačné algoritmy). V našom prípade vstupom pre program sú:
- počet úloh N, strojov M, závislostí K a odstávok L
- čas v minútach (celé číslo) potrebný na spracovanie každej z N úloh, Ti, 1 <= i <= N
- relatívna závislosť úloh, t.j. zoznam K dvojíc (ui,uj), 1 <= i,j <= N, pričom
platí, že úloha ui musí byť skončená skôr, ako úloha uj začne
- povinné odstávky strojov, čiže zoznam L trojíc (si,odi,doi), ktorý udáva, že stroj si od minúty odi (vrátane) má prestávku a je znova voľný od minúty doi, 1 <= i <= L
Program má vypísať plán spracovania úloh, t.j. zoznam N trojíc (ui,si,ti), kde úloha ui sa má vykonávať na stroji si nepretržite od minúty ti.
Príklady vstupných súborov: ex4_input1.txt
Hodnotenie: 5 bodov za riešenie úlohy, uveďte krátky popis algoritmu a nakreslite graf z konvergencie (najlepšie riešenie pre každú generáciu)
Riešenie posielajte mailom (petrovic
fmph.uniba.sk) do 16.10.