Sunteți pe pagina 1din 5

BAILA IONELA RALUCA

2. Programarea dinamica, exceptand Informatica de foloseste in:


matematica, ,economie si bioinformatica,biologie computationala.
Programarea dinamic este utilizata pe scar larg n bioinformatica pentru
sarcinile:
1. aliniere de secven
2. pliere proteine
3. structura ARN-ului de predicie i de legare de proteine - ADN .
Primii algoritmi de programare dinamica pentru proteine - ADN au fost dezvoltati
n anii 1970 , n mod independent de ctre Charles DeLisi n Statele Unite ale
Americii i Georgii Gurskii i Alexander Zasedatelev n URSS .
Recent, aceti algoritmi au devenit foarte populari n bioinformatica si biologie
computationala.
In ceea ce priveste matematica, exista ecuatia Bellman, cunoscuta ca o ecuatie de
programare dinamica care are nevoie de o conditie de optimalitate asociata cu
metoda de optimizare matematica cunoscuta sub numele de programare dinamica.

EGG DROPPING PUZZLE


Exista un puzzle celebru, care implica n=2 oua si o cladire cu H= 36 etaje.
S presupunem c dorim s tim ce povesti ntr-o cldire de 36 etaje sunt sigure sa
cada ouale , i ceea ce va cauza oule sa se sparga la aterizare ( folosind
terminologia engleza american , n care primul etaj este la nivelul solului ) .
Facem cateva presupuneri:
1.
2.
3.
4.

Un ou care supravietuieste o cadere poate fi utilizat din nou.


Un ou spart trebuie aruncat.
Efectul de cadere este acelasi pentru toate ouale.
Daca un ou se sparge cand cade, atunci s-ar sparge si daca ar cadea de o
fereastra mai inalta.
5. Daca un ou supravietuieste o cadere, atunci ar supravietui si la o cadere
scurta.
6. Nu este exclus ca ferestrele de la primul etaj sa sparga oule, nici nu este
exclus ca oule sa supravietuiasca de la al 36-lea etaj.
Daca avem doar ou singur pu si vrem sa fim siguri de obtinerea rezultatului
correct, experimental poate fi efectuat intr-un singur fel.
Lasa oul sa cada de la fereastra de la primul etaj; daca supravietuieste, lasa
oul sa cada de la urmatorul etaj. Continuati in sus pana se sparge. In cel mai
rau caz, aceasta metoda poate necesita 36 de aruncari droppings.
Presupunand ca avem 2 oua disponibile.Care este cel mai mic numar de
aruncari egg droppings care garanteaza ca functioneaza in toate cazurile.
.
Pentru a obtine o ecuatie functionala de programare dinamica, lasam ca
starea modelului de programare dinamica sa fie o pereche s=(n, k), in cazul
in care n = numarul de oua de testare disponibile, n=0, 1, 2, 3,N-1
k= numarul de etaje(consecutive) ce urmeaza sa fie testate; k=0, 1, 2,.H-1
De exemplu, s=(2,6) indica faptul ca doua oua sunt disponibile pentru testare
si 6 etaje(consecutive) trebuie sa fie inca testate.
Starea initiala a procesului este s=(N,H) unde N reprezinta numarul de oua
de testare disponibile la inceputul experimentului.Procesul se termina fie
atunci cand nu mai sunt oua de testat (n=0) sau atunci cand k=0, oricare este
indeplinita mai intai. Daca terminarea are loc la starea s=(0,k) si k>0, atunci

testul nu a reusit.
Acum lasam W(n, k) = numarul minim de incercari necesare pentru a
identifica valoarea etajului critic in cel mai rau caz, dat fiind faptul ca
procesul este in starea s = (n, k)
Atunci se poate demonstra ca W(n,k) = 1 + min{max(W(n 1, x 1),
W(n,k x)): x = 1, 2, ..., k }
cu W(n,1) = 1 pentru orice n > 0 si W(1,k) = k pentru orice k.
Este usor a se rezolva aceasta ecuatie iterative prin cresterea sistematica a
valorilor n si k.
Solutie mai rapida folosind programarea dinamica folosind alta
parametrizare
Solutia de mai sus este de ordinul timpului O( n k^2 ) folosind programarea
dinamica.
Acest lucru poate fi imbunatatit la O( nk log k) timp de cautare binara a lui x
optim deoarece W ( n - 1 , x - 1 ) este n cretere n x in timp ce W ( n , k-x ) este
descresctor n x , astfel exista un minim local de max ( W ( n - 1 , x - 1 ) ,
W ( n , k-x ) este un minim global .
De asemenea prin stocarea lui x optim pentru fiecare celula din tabelul DP si
referindu-se la valoarea sa din celula precedent, x optim poate fi gasit intr-un timp
constant , imbunatatind ordinul timpului la O(nk).
Chiar si asa, exista o solutie si mai rapida, care implica urmatorii parametrii:
Fie k numarul total de etaje astfel incat oule sparte de la cadere de etajul k.
(Exemplul de mai sus este echivalent cu a lua k = 37 ) .
Fie m etajul minim de la care oua poate fi aruncat si se sparge.
Fie f(t, n) numarul maxim de valori de m care se disting folosind t incercari si n
oua.
Atunci f(t,0) = f(0,n) = 1 pentru orice t, n 0.
Fie a etajul de la care primul ou cade in strategia optima.
Daca primul ou s-a spart, m este de la 1 la a si se distinge prin folosirea a cel mult
t-1 incercari si n-1 oua.
Daca primul ou nu s-a spart atunci m este de la a+1 la k si se distinge folosind t-1
incercari si n oua.

De aceea f(t,n) = f(t-1,n-1) + f(t-1,n).


Atunci problema este echivalenta cu gasirea de x minim astfel incat f(x,n) k.
Pentru aceasta, am putea calcula
pentru a creste , care ar
lua O(nx).
Relatia de recurrenta poate fi rezolvata prin
calculate prin O(n)

care poate fi

Folosind
pentru oricare i 0.
Atata timp cat
pentru oricare t 0 putem cauta binary t
pentru a gasi x, rezultand un algoritm
.

WASP (Winning and Score Predictor)


Este un instrument de calcul utilizat in cricket pentru a prezice scoruri si rezultate
posibile de peste 20 de meciuri.Este intemeiat pe teoria programarii dinamice. Se
uita la datele din meciurile anterioare si estimeaza probabilitatea de rulari si portite
in fiecare situatie a jocului si lucreaza inapoi pentru a calcula totalul rularilor si
posibilitatea de a castiga in orice situatie.
Acesta este modul n care Dr Seamus Hogan - unul dintre creatorii WASP - descris
sistemul :
Fie ca V(b,w) sa fie rularile aditionale asteptate pentru restul de reprize, atunci
cand b mingi au fost rostogolite si w porti s-au ratat, iar r (b,w) si p (b, w)
semnificand rularile aproximate si probabilitatea unei portite la urmatoarea minge.
Atunci putem scrie:
V(b*,w)=0; b* este egal cu numarul maxim de livrari legitime premise in reprize
( 300 in peste 50 de joc). Putem rezolva modelul invers.
Acest lucru inseamna ca estimarile pentru V (b, w) in situatii rare depinde doar
usor de rularile estimate si probabilitatea portitei unei mingi si mai ales valorile
V(b + 1,w) and V(b + 1,w + 1) care vor fi determinate in mare parte de punctele
date .
REFERINTE WEB:
http://en.wikipedia.org/wiki/Dynamic_programming#Example:_Economic_optimi
zation
http://en.wikipedia.org/wiki/WASP_%28Winning_and_Score_Predictor%29

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