Sunteți pe pagina 1din 39

Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici paraleli

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 1


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Introducere

• Algoritmii genetici (AG):


– reprezintă o soluţie a problemelor de optimizare
– bazati pe mecanisme împrumutate din genetică.
• Un AG:
– menţine o populaţie de indivizi,
– fiecare individ reprezinta o soluţie potenţială a unei
probleme
bl
• AG realizeaza, în fiecare etapă, următoare operaţii:
– evaluarea populaţiei curente
– selecţia celor mai buni indivizi
– transformarea populaţiei folosind operatori genetici de
încrucişare şi mutaţie.
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 2
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Domeniile de aplicare
• optimizarea parametrilor
• control optim
• transport
• optimizare combinatorială
• desenare de grafuri
• învăţare inductivă a regulilor de decizie
• stabilirea cablajelor
• planificarea
l ifi
• jocuri, modelarea cognitivă
• optimizarea interogării bazelor de date.
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 3
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Vocabular

• AG împrumută
p vocabularul geneticii:
g
– soluţiile sunt indivizi,
– mulţimea soluţiilor potenţiale reprezintă o populaţie
– în reprezentarea
p soluţiilor
ţ apar
p g gene ((caractere))

• Un AG are următoarele componente:


– o reprezentare genetică a soluţiilor
– o cale de generare a primei populaţii
– o funcţie de evaluare a “calităţii” soluţiilor
– operatori genetici
– valori pentru parametri - dimensiunea populaţiei, probabilitatea aplicării
operatorilor genetici.

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 4


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Metode clasice de optimizare

• Problema:
– cautarea
t i t
intr-un spatiu
ti de
d siruri
i i binare
bi d 30
de
de biti, cu functia obiectiv:
f( ) = | 11*one(v)-150
f(v) 11*one( ) 150 |
– unde one(v) este numarul de unitati din
vectorul binar v.v
– Functia f(v) are :
• un maxim global pentru vg = (1 1 1 1 …1),
1) pentru
care f(vg) = 180
• un maxim local pentru vl = (0 0 0 …0), pentru care
f(vl) = 150.
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 5
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul hill climbing


procedure
d hillclimber
i i
begin
t := 0
do t < MAX -> >
local := false
selectează aleator sirul curent Vc
evalueaza Vc
do not local ->
gaseste Vn dintre vecinii cu cea mai mare
valoare a functiei obiectiv F
if F(Vc) < F(Vn) -> Vc := Vn
[] F(Vc) >= F(Vn) -> local := true
fi
od
d
t := t+1
od
end
Obs: daca sirul de pornire are cel mult 13 unitati atunci se gaseste
intotdeauna maximul local
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 6
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul hill climbing (2)

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 7


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul simulated annealing


procedure
d simulated-annealing
i i
begin
t := 0
initializeaza temperatura T
selecteaza aleator sirul curent Vc
evalueaza Vc
do not cond
cond-stop
stop ->
>
do not cond-terminare ->
selecteaza un nou sir Vn vecin cu Vc
if F(Vc) < F(Vn) -> Vc := Vn
[] F(Vc) >= F(Vn) ->
if random[0,1)< exp((F(Vn)-F(Vc))/T)-> Vc:=Vn fi
fi
od
d
T := g(T,t)
t := t+1
od
end

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 8


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul simulated annealing (2)


P
Pentru problema
bl sirurilor
i il bi binare:
• daca v12 are 12 unitati:
f(v12) = |11*12 – 150| = 18
f(v13) = |11*13 – 150| = 7

• Algoritmul accepta o noua solutie cu 13 unitati cu


probabilitatea:
p = exp((f(Vn)-f(Vc))/T)
= exp((7-18)/T)
exp((7 18)/T)
= 0.576 > 0.5
pentru T=20.
T 20.

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 9


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici

• AG păstrează o populaţie de soluţii


potenţiale
• Legatura intre problema reala si
cromozomi:
– populatia – grup de cromozomi
– codificarea solutiei in cromozomi
– functii de evaluare a cromozomilor, pentru a
avea o masura a calitatii fiecarui cromozom
– potrivirea ("conditia fizica" a) cromozomului,
care va fi luata in considerare in procesul de
reproducere
d
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 10
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici (2)

procedure algoritm_genetic
begin
t := 0;
creaza o populatie initiala de cromozomi P(t);
evalueaza fiecare cromozom al populatiei initiale.
do t < MAX ot not conditie de terminare ->
t := t+1;
selecteaza
l t parintii
i tii pentru
t reproducere;
d
creaza noi cromozomi prin imperechere si mutatie;
inlocuieste anumiti membri ai populatiei cu cei noi;
evalueaza cromozomii din noua populatie
od
end

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 11


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici (3)


• Problema:
P bl
– Dat fiind graful G = (V, E) să se găsească o partiţionare a sa în două
subgrafuri având acelaşi număr de noduri, prin eliminarea unui număr
minim
i i d de muchii.
hii
• Problema este NP completă.
• Rezolvare cu alg genetici:
– soluţia reprezentată ca un vector cu elemente binare, de dimensiune
egală cu numărul nodurilor din graf
– un cromozom codifica o p posibila p
partitionare a g
grafului
– o gena corespunde unui nod:
• 1 = nod in prima partitie
• 0 = nod in a doua partitie
1. Evaluarea solutiei: eval(x) = cutsize(x)
2. Generarea populatiei initiale:
– aleator cu corectii (orice cromozom sa aiba acelasi numar de 0 si 1
(±1) )
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 12
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici (4)


3. Selectia parintilor pt reproducere – strategia ruletei:
Constructia ruletei: Selecţia:
calculează eval(xi)
( )p pentru fiecare cromozom i = 1..pop-size
p p g
generează un număr aleator rand în intervalul
sortează populatia în ordinea crescătoare a valorilor eval [o, cf-max]
asociază cu fiecare cromozom o valoare de “potrivire” if rand < cf(x1) -> alege primul cromozom x1 fi
f(xi) = max-fit - eval(xi) if cf(xi-1) < rand < cf (xi) -> alege xi fi
astfel că f(xi) > 0 pentru orice i = 1
1..pop-size
pop-size
calculează valorile de potrivire cumulative
cf(xi) = SUMA f(xj), j = 1..i

Exemplu selectie cromozomi


Cromozom 1 2 3 4 5 6 7 8 9 10
Potrivire 8 2 17 7 2 12 11 7 3 7
Potrivire cumulata 8 10 27 34 36 48 59 66 69 76

Numar aleator 23 49 76 13 1 27 57
Cromozom ales 3 7 10 3 1 3 7
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 13
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici (5)


4. Reproducerea
• Operatorul mutation

A li
Aplicarea operatorului
t l i mutation
t ti pentru
t probabilitatea
b bilit t 0 0.08
08
Cromozom vechi 1 0 1 0 1 1 0 0
Probabilitate 0 80
0.80 0 11
0.11 0 27
0.27 0 45
0.45 0 12
0.12 0 05
0.05 0 15
0.15 0 03
0.03
Cromozom nou 1 0 1 0 1 0 0 1

• Operatorul de încrucişare (crossover)


Aplicarea operatorului crossover intr-un punct (6)
Primul parinte 1 1 1 1 1 1 1 1
Al doilea parinte 0 0 0 0 0 0 0 0

Primul fiu 1 1 1 1 1 1 0 0
Al doilea fiu 0 0 0 0 0 0 1 1
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 14
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici (6)


Aplicarea operatorului crossover pentru pozitiile 3 si 6
Primul parinte 1 1 1 1 1 1 1 1
Al doilea parinte 0 0 0 0 0 0 0 0

Primul fiu 0 0 0 1 1 1 0 0
Al doilea fiu 1 1 1 0 0 0 1 1

Aplicarea operatorului crossover uniform


P i l parinte
Primul i t 1 1 1 1 1 1 1 1
Al doilea parinte 0 0 0 0 0 0 0 0

Probabilitati 1 0 0 1 0 0 0 1

Primul fiu 1 0 0 1 0 0 0 1
Al doilea fiu 0 1 1 0 1 1 1 0

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 15


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Justificarea funcţionării algoritmilor genetici


• Schema
– un şir construit cu simbolurile 0, 1 şi * (don't care)
– o schemă reprezintă toate şirurile care coincid cu ea în poziţiile
diferite de *
– o schemă cu r simboluri * are drept corespondente 2r şiruri
– un şir de lungime m poate fi pus în corespondenţă cu 2m scheme
– există 3m scheme posibile de lungime m
– intr
intr-o
o populaţie de dimensiune n pot fi reprezentate între 2m şi
n2m scheme
• Proprietăţile schemelor
De el depinde probabilitatea de
– Ordinul
Ordin l o(S) = numarul
n mar l de po
pozitii
itii fifixe
e ssupravieţuire
pra ieţ ire a schemei la mutaţii.
m taţii

S1 = (010***11***1) are o(S1) = 6


– Lungimea caracteristică (S) = distanţa între prima şi ultima
poziţie fixă De ea depinde probabilitatea de

(S1) = 11
supravieţuire a schemei la încrucişări.

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 16


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Evoluţia schemelor - Selectia


• pop_size dimensiunea populaţiei
• m lungimea unui cromozom
• p = (S,t)
(S t) numărul de şiruri vij care corespund la momentul t cu
schema S. p eval (v )
Potrivirea schemei S la momentul t: eval ( S , t )  
ij

Media potrivirilor şirurilor din populaţia reprezentată de S
S. j 1 p
eval (vi )
• Şirul vi are probabilitatea de selectie conform ruletei: pi 
F (t )
pop size
• Potrivirea totală: F (t )   eval(v )
i 1
i

eval ( S , t )
ţ a unui şşir care corespunde
• Probabilitatea de selecţie p schemei S =
• Numar de selectii este pop_size
F (t )
• Rezulta:
eval ( S , t )
 ( S , t  1)   ( S , t ) * pop _ size *
F (t )
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 17
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Evoluţia schemelor – Selectia (2)


eval ( S , t )
 ( S , t  1)   ( S , t ) * ———
F (t )
———
cu F (t )  F (t ) potrivirea medie a populatiei
pop _ size
eval ( S , t )
O schemă "peste medie" are ———
1
F (t )

sii primeşte
i t un număr
ă maii mare d
de iindivizi
di i i îîn noua populaţie.
l ţi
____
Dacă eval ( S , t )  F (t )(1   )
avem  ( S , t  1)   ( S , t ) * (1   )
sau  ( S , t )   ( S ,0) * (1   ) t

numărul de indivizi este în creştere conform unei progresii geometrice.


12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 18
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Evolutia schemelor - Încrucişarea

Fie şirul (1110111101001) selectat pentru incrucisare


şşi doua scheme care ii corespund:
p
S0=(****111******), ( S0)=2
S1=(111********01), ( S1)=12
Dacă poziţia de tăiere = 10, schema S0 se regăseşte într-
unul din fii, în timp ce schema S1 are şanse foarte reduse
de reproducere.
reproducere
lungimea caracteristică importanta în reproductibilitatea
schemei
• m-1 posibilităţi selectie loc de încrucişare
 (S )
• probabilitatea de distrugere a schemei S este d p ( S ) 
 ((SS ) m 1
• probabilitatea de supravieţuire p s ( S )  1 
m 1
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 19
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Evolutia schemelor – Încrucişarea (2)

 (S )
• cu p pentru incrucisare pc: p s ( S )  1  p c *
prob. de selectie p
m 1

• deoarece se pot combina indivizi aparţinând unor scheme


comune:
 (S )
p s (S )  1  pc *
m 1

• efect combinat selectie & incrucisare:

eval ( S , t )  (S )
 ( S , t  1)   ( S , t ) * * (1  p c * )
———
F (t
(t ) m 1

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 20


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Evolutia schemelor - Mutaţia


• probabilitatea mutaţiei unui singur bit este pm
• probabilitatea nemodificării sale este (1- pm).
• probabilitate ca o schemă S să supravieţuiască unei mutaţii:
p s ( S )  (1  p m ) o ( S )
• deoarece pm<<1: ps (S ) 1 pm *o(S )
• efectul combinat al selecţiei, încrucişării şi mutaţiei este
eval ( S , t )  (S )
 ( S , t  1)   ( S , t ) * * (1  p c *  p m * o( S ))
———
F (t ) m 1

• Teorema schemei. Schemele scurte, de ordin scăzut şi peste


medie cresc exponenţial dede-a
a lungul generaţiilor unui algoritm
genetic.
• Ipoteza blocurilor constructive. Un algoritm genetic atinge
performaţe aproape optime prin juxtapunerea unor scheme scurte
scurte, de
ordin scăzut, de mare performaţă, numite blocuri constructive.

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 21


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Constrângerile în algoritmii genetici


• Metode:
– penalizări pentru solutii ce nu respecta constrângeri
– eliminarea soluţiilor necorespunzătoare
– aplicarea unor algoritmi de corecţie.

• Ex:
E problema
bl rucsacului.
l i
– date fiind o mulţime de ponderi W, profiturile asociate
P şi capacitatea
p C a rucsacului, să se g
găsească un
vector binar X = <x1, x2, ..., xn> a.i.

 i = 11,n xi * wi <
<= C şi

( ) =  i = 1,n
P(X) 1 n xi * pi este maxim.

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 22


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritm bazat pe penalizari

• Functia de evaluare: eval(X) =  i = 1,n xi * pi - Pen(X)


– unde Pen(X) = 0 pentru soluţiile fezabile şi
Pen(X) ≠ 0 pentru soluţiile nefezabile (suma > C).

• Variante:
– logaritmică,
g , g2 ((1 +  ( i = 11,nn xi * wi - C))
Pen1((X)) = log ))
– liniară, Pen2(X) =  ( i = 1,n xi * wi - C)
– pătratică, Pen3(X) = ( ( i = 1,n xi * wi - C))2

• d  = MAX i = 1,n { pi / wi}


unde

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 23


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul bazat pe corecţia soluţiei


• Functia de evaluare: eval(X) =  i = 1,n x'i * pi
– unde X’ este versiunea corectată a lui X

procedure corectie (X)


begin
depasire := false
X’ := X
if  i = 1,n x
x’i * wi > C ->> depasire :=
: true fi
do depasire ->
i := selecteaza un element din sac
scoate elementul x'i := 0
if  i = 1,n x'i * wi <= C -> depasire := false fi
od
end

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 24


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul bazat pe decodificatori


• Un cromozom este interpretat ca o strategie de a incorpora elemente
într-o soluţie.
• Fiecare cromozom este un vector de n întregi.
întregi
• Componenta i a vectorului
– este un întreg din domeniul 1..n-i+1
– indică poziţia unui element al unei liste L
– elementele selectate sunt eliminate din lista.
• Exemplu:
– fie L = (1,2,3,4,5,6).
– Vectorul <4,3,4,1,1,1> este decodificat ca secvenţa 4, 3, 6, 1, 2, 5.
– 6 este al 4-lea element după eliminarea lui 4 şi a lui 3
• Ca efect,
– la mutaţie, gena i poate lua orice valoare între 1 şi n-i+1,
– încrucişarea
î i unor părinţi
ă i i corecţii produce
d d
descendenţi
d i corecţi.
i

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 25


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmul bazat pe decodificatori (2)


procedure decode (X)
construieste o lista de elemente L
i := 1
suma ponderi :
suma-ponderi := 0
suma-profit := 0
do i <= n ->
j :=
: xi
elimina elementul cu numarul de ordine j din L
if suma-ponderi + wj <= C ->
suma-ponderi := suma-ponderi + wj
suma-profit := suma-profit + pj
fi
i := i+1
od
end
Variante pentru construieste
aleator
l t
greedy - elementele în ordinea descrescătoare a rapoartelor pi / wi;
12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 26
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici paraleli


• Abordari
– paralelizarea operatorilor genetici
– distribuirea
di t ib i populatiei.
l ti i
• Paralelizarea operatorilor genetici
– partitionare functionala: paralelizarea buclei care
produce noua generatie
– se mentine o singura populatie
– operatorii genetici sunt aplicati in paralel:
• functia de potrivire si mutatia aplicate in paralel
i di i il
indivizilor
• crossover la doi indivizi
– potrivit pentru memorie partajata

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 27


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici paraleli (2)


• Distribuirea
Di t ib i populatiei:
l ti i
– corespunde descompunerii domeniului
– pprelucrari facute in p
paralel p
pe diferite sub-populatii
p p
– exploreaza mai bine spatiul solutiilor
– PGAs mentin sub-populatii separate care evolueaza independent
=> granularitatea algoritmilor paraleli
• PGAs de granularitate fina:
– Asigneaza un individ fiecarui task / procesor
– Fiecare task foloseste indivizi din vecinatatea sa
– Ajuta migrarea indivizilor
• Intrebari:
– care este tolopogia de inter-conectare ?
– care este dimensiunea vecinatatii ?
– care este schema de inlocuire pentru includerea migratorilor in
sub-populatia tinta ?

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 28


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Algoritmi genetici paraleli (2)


• PGAs de granularitate mare:
– Fiecare sub-populatie contine un numar mare de indivizi
– AG se executa independent pe fiecare sub-populatie si produce o solutie a problemei
– Rezultatul final este obtinut prin selectia celei mai bune solutii
– Indivizii migreaza periodic de la o sub-populatie la alta
• Synchronous Island PGAs
– migrarea
g are loc dupa
p un anumit numar de g generatii
• Asynchronous Island PGAs
– migrarea intre doua sub-populatii nu este corelata cu restul migrarilor
– mai aproape de migrarea din natura
– mai potrivita cu algoritmi distribuiti
• Intrebari
– care este topologia proceselor?
– este reteaua omogena sau nu?
– care este rata de migrare?
– cati migratori sunt inter-schimbati?
– cum sunt selectati migratorii?
g
– cum sunt combinati cu populatia tinta?

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 29


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Asynchronous Island PGAs

• Modelul "replicated workers"

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 30


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Examen

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 31


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Un model de subiect de examen la APD


Subiectul 1
1. (2 puncte) Ceasuri logice vectoriale.
vectoriale Tratati:
1.1 Conceptul general (0.7 p)
Motivatia folosirii ceasurilor logice: de ce este nevoie de ele (ce aduce nou
fata de alte metode).
Principiul ceasurilor logice vectoriale.
1.2 Pentru procesele din figura, precizati vectorii de timp asociati
evenimentelor specificate. Axele orizontale reprezinta timpul. (0.3 p)
1 3 Aplicatie - ordonarea cauzala multicast.
1.3 multicast (1 p)
Specificarea problemei.
Solutia, cu descrierea actiunilor la trimiterea, receptia si livrarea mesajelor.

a c
P1

P2 f b

P3
d e

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 32


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Subiectul 2. (1 punct)

Propuneti un algoritm de tip heartbeat pentru calculul sumei a n2 valori


de tip intreg. Pentru aceasta folositi n2 procese dispuse intr-o
grila neperiodica. Deci, fiecare proces poate comunica cu vecinii
de la est, vest, nord si sud (cu restrictiile de rigoare la margini).
Fiecare proces detine initial o singura valoare v. In final fiecare
proces va trebui
t b i sa detina
d ti valoarea
l sumei.
i Calculati
C l l ti
complexitatea solutiei oferite.

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 33


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

S bi t l 3.
Subiectul 3 (1 punct)
t) Tratati
T t ti unull din
di subiectele
bi t l urmatoare,
t l alegere:
la l

3.1. Cautarea paralela.


Prezentarea problemei (0.2 p)
Descrierea algoritmului (0.4 p)
Analiza complexitatii (0.4 p)

3.2. Problema cititorilor si scriitorilor


Prezentarea
e e ta ea p problemei
ob e e (0(0.2 p)
Descrierea algoritmului (0.4 p)
Politici cu prioritate asupra cititorilor si asupra scriitorilor (0.4 p)

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 34


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Conditii
Timp de lucru: 2 ore
Fara documentatie

12/01.2010 Algoritmi Paraleli si Distribuiti – Curs 14 35


Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Hinturi de rezolvare
Subiectul 1. Ceasuri logice
g vectoriale ((subiect tratat p
pe larg
g in cursul 8).
)
1.1 Conceptul general
Motivatia: cu solutia Lamport, din amprentele logice nu se poate deduce ordinea
evenimentelor. Justificare, eventual pe un exemplu.
Principiul:
p rolul vectorilor V(i)
( ) si modul de actualizare;; compararea
p vectorilor si
deducerea relatiei cauzale a evenimentelor corespunzatoare.
1.2 Exemplul din figura
Vezi exemplul de la curs
1.3 Aplicatie
Specificarea: descrierea dependentei cauzale a mesajelor; atentie la notiunea de
livrare a mesajelor!
Solutia: Descrierea operatiilor; nu trebuie uitata livrarea mesajelor.

a c
P1

P2 f b

P3
d e

12/01.2010
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Subiectul 2. (1 punct)

Algoritmi de tip heartbeat au fost ilustrati pentru mai multe probleme si


diverse topologii, de ex. in stabilirea topologiei (cursul 10) sau ca
ilustrare a algoritmilor unda (cursul 9). Pentru problema de fata
se cere o solutie, nu neaparat optima. Trebuie asigurat ca:
fiecare proces insumeaza toate valorile
o valoare nu este considerata de mai multe ori.

12/01.2010
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

S bi t l 3.
Subiectul 3

Problema 3.1 – (cursul 5)


Problema 3.2 – (cursul 4 – si tema de casa)

La ambele probleme:
la descrierea algoritmului se acorda punctaj maxim (0.4 p) pentru o
descriere coerenta in pseudocod.

La problema 3.2:
punctaj maxim pentru analiza detaliata a politicilor de prioritate cu
exemplificare pe pseudocod.

12/01.2010
Universitatea Politehnica Bucuresti - Facultatea de Automatica si Calculatoare

Observatii:
• Punctajul este afisat pe site (plus
actualizarea de astazi – nelamuriri?)
• Nu aveti voie sa veniti cu alta grupa decat
cu aprobarea mea (pentru probleme
speciale contactati-ma)
• Pentru nelamuriri,
nelamuriri documentatie/explicatii
suplimentare – open office, EG303,
p @ p
ciprian.dobre@cs.pub.ro
• …
Poza de grup
12/01.2010