Flow-Shop uždavinys

Uždavinio aprašymass

Flow-Shop priklauso tvarkaraščio optimizavimo uždavinių klasei. Šiame uždavinyje reikia parinkti tokią vienodos sekos, tačiau skirtingos trukmės darbų eilės tvarką, kad bendras atlikimo laikas būtų trumpiausias. Uždavinį gerai iliustruoja siuvykla: vienoda užduočių seka yra dažymas, kirpimas, siuvimas, lyginimas. Kadangi siuvami skirtingi drabužiai, tai darbų sekos yra skirtingos trukmės, todėl svarbu gerai išdėstyti darbus. Pavyzdžiui pradedame darbą nuo palto, nes jam reikia daugiausia darbo, o smulkesnius drabužius po jo.

Duomenų failai

Programa tikisi nuskaityti duomenis iš tekstinio failo, kurio pirmoje eilutėje užrašytas darbų kiekis, antroje mašinų skaičius, sekančiose iš eilės kiekvieno darbo sugaištamas laikas kiekvienoje mašinoje, laikus skiriant tarpais, darbus naujomis eilutėmis.

Rezultatų interpretavimas

Programa optimizuoja tikimybes pasirenkant darbų tvarką naudoti vieną iš 3 heuristikų: ilgiausio darbo, ilgiausio likusio laiko ir Gupta. Dėl GMJ karkaso apribojimų, rezultatas užrašomas ne normalizuotoje formoje. Geriausią sudarytą tvarkaraštį galima peržiūrėti per analizę FlowShopGnatt.

Kompiliavimas ir paleidimas

Iš komandinės eilutės
javac -classpath gmj-cmp.jar */*/*/*/*java
jar -cf FlowShop.jar */*/*/*/*class

Panaudojant Elipse
Sukurti nauja java projektą iš egzistuojančio išeities teksto nurodant vietą kur išpakuotas archyvas, Libraries kortelėje reikia įdėti „gmj-cmp.jar“ archyvą.

Paleidžiant GMJ prie užduočių parametro TASKS reikia pridėti klasę lt.ktu.gmj.tasks.FlowShop, tvarkarasčio analizei prie ANALYSIS lt.ktu.gmj.analysis.FlowShopGantt