Sunteți pe pagina 1din 3

3.8.3.

Rezolvarea problemei planificrii activitilor de tip sisteme de producie bazate


pe comand (Job Shop Scheduling - JSS)

Pentru problema planificrii activitilor n varianta JSS datele i ipotezele de lucru
sunt urmtoarele:
J, un set de n sarcini, *

+;
O, un set de operaii; fiecare sarcin

este constituit dintr-o secven de m


activiti (operaii), m independent de ,

+,

; evident, || ;
M, o mulime de m maini care execut operaii din O; activitile fiecrei
sarcini

se execut pe cte o main din M (n cadrul unei sarcini nu exist


dou operaii care s fie executate pe aceeai main);
n cadrul fiecrei sarcini, activitile respect o relaie de preceden din
punctul de vedere al execuiei (o ordine de execuie), astfel nct dou sau mai
multe activiti nu pot fi executate simultan; cu alte cuvinte, fiecare sarcin
este definit de un set ordonat de operaii, ordinea fiind predefinit;
o funcie care asociaz fiecrei operaii o durata de
execuie; durata efecturii unei operaii este independent de planificare;
activitile, odat programate, nu i pot ntrerupe execuia;
la fiecare moment de timp, pe oricare main, poate fi executat o singur
operaie.
Planificarea unei operaii o revine la a i aloca un timp de execuie (pe maina
corespunztoare lui o), un plan fiind o colecie de astfel de alocri cu proprietatea c fiecare
operaie este inclus cel mult o dat. Problema este de a gsi un plan cu proprietile:
completitudine: planul conine toate operaiile mulimii O;
corectitudine: sunt satisfcute toate restriciile impuse prin ordinea de execuie;
optimalitate: durata total a planului este minim.

Rezolvarea problemei prin implementare GA este realizat prin meninerea unei
populaii de genotipuri care reprezint permutri ale mulimii posibile de operaii. Fie n*m
dimensiunea mulimii de operaii. O permutare, pg, corespunde ordinii de analizare a
operaiilor n scopul planificrii lor i are corespondent ntr-un plan (fenotip), pf, care const
n programarea fiecrei operaii conform unei analize efectuate n ordinea n care aceasta
apare n permutarea genotip. Planul corespuztor unei permutri pg poate fi construit pe baza
urmtoarei proceduri.
Pentru efectueaz:
();
determin maina pe care este executat ,

;
asigneaz timpul de start minim pentru

, innd cont de ocuparea mainii

i relaiile de preceden pe care trebuie s le respecte relativ la


operaiile din cadrul sarcinii din care face parte i care au fost deja planificate.
Funcia de evaluare aplicat unui genotip furnizeaz durata de execuie a planului
corespunztor n spaiul fenotipurilor. Scopul este de a minimiza funcia de evaluare.
Alegerea operatorilor de variaie este realizat astfel nct progeniturile s rmn n
spaiul genotipurilor. n cazul mutaiei poate fi folosit de exemplu operatorul interschimbare.
Deoarece relaiile de adiacen nu au nici o semnificaie n aceast problem, operaia de
recombinare poate fi aleas din oricare dintre cele prezentate n 3.4. n implementarea GA a
fost utilizat recombinarea PMX.
n cazul acestei probleme operatorii de selecie sunt, de asemenea, independeni de
reprezentarea cromozomial, deci pot fi utilizai oricare dintre cei prezentai n acest capitol,
singurul scop fiind acela de a minimiza funcia obiectiv. Operatorul de selecie a prinilor
este de tip SUS cu distribuia de probabilitate de selecie FPS stanard, n timp ce generaia
urmtoare este construit pe baza urmailor cu propagarea celui mai bun cromozom din
generaia curent n locul celui mai slab urma, dac progeniturile sunt sub acel cromozom
din punct de vedere al funciei de evaluare.
Stabilirea populaiei iniiale este realizat aleator, iar condiia terminal este de tip
prag: de exemplu, dac a fost atins un numr de iteraii sau au fost evaluai un numr maxim
de cromozomi.

n continuare este prezentat implementarea GA, n situaia n care funcia obiectiv,
care trebuie maximizat, este definit astfel:
() ()

()

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

i este pe poziia r n aceasta:


* +; evident, dac , lista este vid
altfel, face parte din sarcina

i este ultima operaie:


*( ) ( ) +;
* +, dac , altfel este vid (ultima
operaie din

)
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.

S-ar putea să vă placă și