Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Programare dinamica  (Citit de 1189 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
ucc_5
Client obisnuit
**

Karma: -11
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« : Martie 20, 2011, 23:31:17 »

Am o nelamurire in privinta programarii dinamice. Eu de obicei rezolv problemele de dinamica gandind "unde pot sa ajung din pozitia data" nu " de unde pot sa ajung ".
Spre exemplu la problema suma in triunghi solutia e sa calculam bestul intr-un tablou t(i,j), unde solutia se va gasi in t[1][1] si  t(i,j)=max(t[i+1][stanga],t[i+1][dreapta])+a(i,j) (a(i,j) elementul din triunghi).
Ei bine eu gandesc in felul urmator,  t(i,j)=max(t[i-1][stanga],t[i-1][dreapta])+a(i,j) (cu limitele de rigoare pentru stanga si dreapta), si valorile se modifica daca se gaseste o solutie mai buna.
Solutia o gasesc iterand peste ultimul rand.
Stiu ca solutia mea are ceva pasi in plus, dar mi se pare mai intuitiva, adica efectiv "merge" in ordinea descrisa de problema adica de la varf la baza.
Am vazut ca mai exista probleme de dinamica care se rezolva doar cu metoda asta (de la oji, sudest de exemplu), dar acolo e putin mai altfel treaba.
Vroiam sa intreb daca e bun rationamentul meu si daca as putea avea probleme cu el, sau daca e un alt mod de a aborda o problema de dinamica (la dinamice din cate am vazut in functie de problema pot exista mai multe interpretari corecte).
Memorat
dornescuvlad
Nu mai tace
*****

Karma: -138
Deconectat Deconectat

Mesaje: 234



Vezi Profilul
« Răspunde #1 : Martie 21, 2011, 14:17:42 »

Din cate stiu eu, nu conteaza daca o gandesti inapoi -> acum, sau acum -> mai departe.
Orice problema de dinamica, cred ca se poate rezolva in ambele moduri, la fel.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines