Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Drum de suma minima/maxima in matrice [PD]  (Citit de 5776 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
costi_.-.
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« : Martie 17, 2012, 20:05:19 »

Salut.Sunt intr-un impas.
"Dandu-se o matrice cu nxn numere intregi, sa se calculeze drumul de suma minima/maxima de la coordonatele :1,1 la n,n ."
Cam asta ar fi enuntul generic pentru astfel de probleme  Ok.
Problema sunt directiile de deplasare : sus, jos ,stanga, dreapta . Deci , poti ajunge la un element din orice directe.Aici ma incurc  Brick wall.Nu-mi dau seama care este relatia de recurenta.Help ?
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #1 : Martie 17, 2012, 22:39:10 »

In forma in care ai expus-o tu, aceasta problema nu admite rezolvare polinomiala.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Prostu
Nu mai tace
*****

Karma: 134
Deconectat Deconectat

Mesaje: 323



Vezi Profilul
« Răspunde #2 : Martie 18, 2012, 01:40:46 »

In forma in care ai expus-o tu, aceasta problema nu admite rezolvare polinomiala.

Nu a spus ca drumul trebuie sa fie simplu, deci cred ca Bellman-Ford ar trebui sa fie ok.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #3 : Martie 18, 2012, 04:21:12 »

In forma in care ai expus-o tu, aceasta problema nu admite rezolvare polinomiala.

Nu a spus ca drumul trebuie sa fie simplu, deci cred ca Bellman-Ford ar trebui sa fie ok.

Mai gandeste-te.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
gcosmin
Nu mai tace
*****

Karma: 205
Deconectat Deconectat

Mesaje: 307



Vezi Profilul
« Răspunde #4 : Martie 18, 2012, 06:07:38 »

In forma in care ai expus-o tu, aceasta problema nu admite rezolvare polinomiala.

Nu a spus ca drumul trebuie sa fie simplu, deci cred ca Bellman-Ford ar trebui sa fie ok.

Mai gandeste-te.

Sigur nu mai trebuie sa te gandesti tu Wefgef? Prostu zice ca daca drumu nu e simplu atunci merge Bellman-Ford.
« Ultima modificare: Martie 18, 2012, 06:13:28 de către Gheorghe Cosmin » Memorat
maritim
Vorbaret
****

Karma: 59
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #5 : Martie 18, 2012, 11:30:08 »

Citat
Salut.Sunt intr-un impas.
"Dandu-se o matrice cu nxn numere intregi, sa se calculeze drumul de suma minima/maxima de la coordonatele :1,1 la n,n ."
Cam asta ar fi enuntul generic pentru astfel de probleme .
Problema sunt directiile de deplasare : sus, jos ,stanga, dreapta . Deci , poti ajunge la un element din orice directe.Aici ma incurc  .Nu-mi dau seama care este relatia de recurenta.Help ?

Nu este chiar o relatie de recurenta. Este un algoritm de grafuri translatat pe matrice, numit BellmanFord.

Aceasta problema este asemanatoare cu Taxe2 de la OJI 2003.

P.S. : Algoritmul functioneaza atata timp cat matricea contine doar numere pozitive, sau numere negative care sa nu aiba in jurul lor numere pozitive mai mici in modul ca cele negative.
« Ultima modificare: Martie 18, 2012, 11:40:00 de către Lambru Andrei Cristian » Memorat
Prostu
Nu mai tace
*****

Karma: 134
Deconectat Deconectat

Mesaje: 323



Vezi Profilul
« Răspunde #6 : Martie 18, 2012, 12:03:23 »

P.S. : Algoritmul functioneaza atata timp cat matricea contine doar numere pozitive, sau numere negative care sa nu aiba in jurul lor numere pozitive mai mici in modul ca cele negative.

Putin cam specific pentru cum a fost data problema. In primul rand afirmatia ta este adevarata in cazul problemei de minim si in al doilea rand algoritmul Bellman-Ford detecteaza acest caz pentru ca ceea ce tu descrii este un ciclu de cost negativ, care conduce la un cost infinit.
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #7 : Martie 18, 2012, 12:23:05 »

In forma in care ai expus-o tu, aceasta problema nu admite rezolvare polinomiala.

Nu a spus ca drumul trebuie sa fie simplu, deci cred ca Bellman-Ford ar trebui sa fie ok.

Mai gandeste-te.

Sigur nu mai trebuie sa te gandesti tu Wefgef? Prostu zice ca daca drumu nu e simplu atunci merge Bellman-Ford.

Daca drumul nu e simplu costul e infinit/-infinit.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
Prostu
Nu mai tace
*****

Karma: 134
Deconectat Deconectat

Mesaje: 323



Vezi Profilul
« Răspunde #8 : Martie 18, 2012, 12:30:25 »

In forma in care ai expus-o tu, aceasta problema nu admite rezolvare polinomiala.

Nu a spus ca drumul trebuie sa fie simplu, deci cred ca Bellman-Ford ar trebui sa fie ok.

Mai gandeste-te.

Sigur nu mai trebuie sa te gandesti tu Wefgef? Prostu zice ca daca drumu nu e simplu atunci merge Bellman-Ford.

Daca drumul nu e simplu costul e infinit/-infinit.

Intr-o matrice umpluta cu 0, costul minim este 0 si costul maxim este 0.
Intr-o matrice umpluta cu 1, costul minim este 2n si costul maxim este infinit.
Intr-o matrice umpluta cu -1, costul minim este -infinit si costul maxim este -2n.
Memorat
maritim
Vorbaret
****

Karma: 59
Deconectat Deconectat

Mesaje: 176



Vezi Profilul
« Răspunde #9 : Martie 18, 2012, 12:49:24 »

Citat
Putin cam specific pentru cum a fost data problema. In primul rand afirmatia ta este adevarata in cazul problemei de minim si in al doilea rand algoritmul Bellman-Ford detecteaza acest caz pentru ca ceea ce tu descrii este un ciclu de cost negativ, care conduce la un cost infinit.

Stiu, nu am vrut sa intru in detalii deoarece presupun ca cel care a pus intrebarea nu are cunostinte de grafuri.
Intradevar, afirmatia mea este valida doar pentru cazul in care se calculeaza minimul. Pentru a se calcula maximul : A[ i ][ j ] = - A[ i ][ j ] si se normalizeaza putin pentru a nu mai avea valori negative. In acest mod nu mai trebuie sa ne facem griji nici de valorile negative initiale. Dupa ce am facut Bellman-Ford pentru drum minim, normalizam la loc aceasta valoare.

De asemenea si problema ciclului infinit se poate rezolva cu algoritmul Bellman-Ford!
Memorat
costi_.-.
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« Răspunde #10 : Martie 18, 2012, 15:11:51 »

@maritim Am cunostinte despre grafuri si stiu despre algoritmul BellmanFord.Daca matricea ar avea numai elemente pozitive, Dijkstra se descurca mai bine .Asadar, directiile impun algoritmul de rezolvare.
Daca acestea erau mai restrictive , se poate folosi PD, nu ? Dar algoritmii grafurilor?
Memorat
klamathix
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« Răspunde #11 : Martie 18, 2012, 15:18:31 »

Trebuie sa privesti chestiunea putin mai abstract. Tu nu stiai sa rezolvi problema cu programare dinamica fiinca starile dinamicii sunt ciclice (Calculul casutei A depinde de calculul casutei B, dar si invers). La versiunea clasica "jos si dreapta" nu aveai impedimentul asta. Ideea in sine e tot de programare dinamica, doar ca gasesti un mod sa tratezi ciclicitatea. Dijkstra si Bellman-Ford, daca stai sa te gandesti, sunt bazati de fapt pe principiul programarii dinamice(pentru a calcula drumul minim pana la un anumit nod, ai nevoie de drumurile minime pana la toate nodurile intermediare).

La faza cu ciclurile, Dijkstra se foloseste de faptul ca tot timpul gasesti un nod care sigur nu va mai fi actualizat (cel cu costul minim) si astfel toti vecinii depind de el, dar el nu mai depinde de nimeni.  Bellman-Ford-ul reexpandeaza nodurile cand este nevoie, iar daca exista solutie, numarul de reexpandari este finit.
« Ultima modificare: Martie 18, 2012, 15:26:20 de către Mihai Calancea » Memorat
costi_.-.
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 30



Vezi Profilul
« Răspunde #12 : Martie 19, 2012, 18:30:23 »

Ok, am inteles  Ok
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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