Documente Academic
Documente Profesional
Documente Cultură
+;
O, un set de operaii; fiecare sarcin
+,
; evident, || ;
M, o mulime de m maini care execut operaii din O; activitile fiecrei
sarcini
;
asigneaz timpul de start minim pentru
()
unde, pentru fiecare plan fezabil x, () desemneaz durata de execuie a lui x (este
ntotdeauna nenul).
Funciile gen_perm i PMX sunt identice cu cele prezentate n capitolele 2, respectiv 3
(mai puin faptul c, n prezentarea PMX de mai sus prinii sunt specificai direct n funcie,
n timp ce, pentru rezolvarea acestei probleme, ei sunt parametri de intrare). Funcia gen_ini
este cea prezentat n problema TSP.
Evident, partea cea mai dificil este aceea de a asocia unei permutri un plan care s
respecte cerinele de completitudine i corectitudine, construcia neasigurnd, n acest caz, un
plan optim, ci un plan ct mai bun conform permutrii date. O variant de rezolvare este
urmtoarea. Fie x permutarea (genotipul) a crui plan trebuie determinat (fenotipul) i n*m
numrul de operaii planificate. Vom presupune n continuare c
+
*( ) + i aceasta este i ordinea de efectuare a operaiilor (ele sunt
nscrise n sarcin n ordinea n care trebuie executate). Fiecare operaie
este codificat (reprezentat) prin numrul ( ) .
Iniial, planific toate operaiile de la momentul 0 i marcheaz fiecare activitate ca
neexecutat (prin intermediul meninerii unui vector binar, iniializat cu toate valorile 0).
Ct timp nu au fost planificate toate activitile
Pentru fiecare :
1. fie () neplanificat, lista operatorilor care preced o, lista operatorilor
care succed o; pot fi determinate astfel:
dac face parte din sarcina
)
2. pentru fiecare
dac op a fost executat, timpul de nceput al execuiei operaiei o trebuie sa fie
dup timpul de sfrit al lui op (dac o este planificat nainte, este resetat
timpul de nceput cu timpul de sfrit al lui op: () ()
());
3. fie plan(o) timpul de start calculat pn la acest moment; dac maina pe care trebuie
s se execute o nu este liber, adic exist un interval planificat pentru o alt activitate
care se intersecteaz cu ,() () ()-, atunci planific o dup acel
interval; operaia este repetat pn cnd, pe maina corepunztoare, nu exist
programri conflictuale;
4. marcheaz o ca operaie programat;
5. pentru fiecare
dac op a fost executat, i timpul de nceput al execuiei operaiei op este sub
timpul de sfrit al lui o (situaie de programare eronat), atunci renun la
planificarea lui op (este scoas programarea de pe maina care o execut) i
marcheaz op ca neplanificat.