Sunteți pe pagina 1din 5

PROBLEMA 1

SEMINAR 11

• Țogoe Radu
• Vonica Andreea
• Todea Tudor
• Toma Raul
• Timiș Ioan
2

CERINȚA
Problema planificării activitatilor
Se considera un set de prelucrari ce trebuie executate de catre un
procesor. Durata executiei prelucrarilor este aceeasi (se considera egala cu
1). Fiecare prelucrare are asociat un termen final de executie ,ti≤n ̧si un
profit,pi. Profitul unei prelucrari intervine in calculul profitului total doar daca
prelucrarea este executata (daca prelucrarea nu poate fi planificata inainte
determenul final de executie profitul este nul). Se cere sa se planifice
activitatile astfel incat sa fie mizat profitul total (acesta este corelat cu
numarul de prelucrari planificate).
DESCRIERE
ALGORITM
• Se ordoneaza prelucrarile in ordine descrescatoare
in functie de profit
• Fiecare prelucrare e planificata pe o pozitie cat mai
apropiata de termenul sau final de executie
• Daca pentru fiecare i{1,…,n} nr prelucrarilor care
au termenul final de executie cel mult i este cel
mult egal cu 1 atunci toate prelurcarile for fi
planificate, altfel vor exista prelucrari ce nu vor fi
planficate
• Restrictie: fiecare prelucrare sa fie planificata
inainte de timpul final de executie astfel incat
profitul sa fie maxim

IMPLEMENTARE IN
PSEUDOCOD
Planificare(A[1..n])
A[1..n] – sortare descrescatoare// sortare dupa profit
for i ← 1,n do
rez ← 0
Endfor
for i ← 1,n do
poz ← A[i].t
while rez[poz] !=0 and poz >1 do
poz ← poz-1
Endwhile
if rez[poz]=0 then
rez[poz] ← i// se planifica activitatea
else
“activitatea i nu poate fi planificata”
Endif
Endfor
Return rez[1..n]
IMPLEMENTARE IN 5

C++

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