Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 250 Drumuri2  (Citit de 4064 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« : Iunie 04, 2006, 14:37:02 »

Aici puteţi discuta despre problema Drumuri2.
« Ultima modificare: Iunie 04, 2006, 20:31:10 de către ditzone » Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #1 : Iunie 06, 2006, 11:35:30 »

Totusi, fisierele de intrare si de iesire nu ar trebui sa fie drumuri2.in si drumuri2.out ? Confused
Memorat

Am zis Mr. Green
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #2 : Iunie 08, 2006, 16:47:10 »

Am vrut sa las enuntul asa cum era el initial la lot. Numele fisierelor nu trebuie sa fie neaparat identic cu IDul problemei. Am pus drumuri2 pentru ca mai era o problema cu IDul "drumuri" in arhiva.
Memorat
pauldb
Nu mai tace
*****

Karma: 821
Deconectat Deconectat

Mesaje: 1.901



Vezi Profilul
« Răspunde #3 : Iunie 08, 2006, 21:54:37 »

Oricum nu cred ca conteaza atat de mult numele fisierelor de intrare si iesire...doar ca mi se parea mai bine sa fie identice cu numele problemei...That's it  Smile
Memorat

Am zis Mr. Green
Tabara Mihai
Vizitator
« Răspunde #4 : Octombrie 02, 2006, 18:57:37 »

Imi da cineva va rog o idee ?  Brick wall
Memorat
u-92
Vizitator
« Răspunde #5 : Octombrie 02, 2006, 19:22:57 »

hint: flux
Memorat
Tabara Mihai
Vizitator
« Răspunde #6 : Octombrie 02, 2006, 19:26:39 »

hint: flux

 Ok
Memorat
gabor_oliviu1991
Nu mai tace
*****

Karma: 28
Deconectat Deconectat

Mesaje: 200



Vezi Profilul
« Răspunde #7 : Martie 27, 2009, 10:29:32 »

Imi spune si mie careva un hint un pic mai complet decat ideea de flux. Ma gandeam ca trebuie sa fac fluxul intre nodurie care au grad interior 0 si cele care au grad exterior 0. Si daca am toate nodurile vizitate afisez numarul de drumuri de ameliorare. Momentan nu prea merge ideea, deci am nevoie de un pic ajutor. Multumesc!
Memorat
Mishu91
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« Răspunde #8 : Ianuarie 29, 2010, 18:18:44 »

Am o nelămurire. Am citit soluția, dar nu mă prea prind cum "pompez" mai exact fluxul între destinație și sursă, poate cineva să povestească puțin mai mult despre această soluție? Smile
Memorat
dornescuvlad
Nu mai tace
*****

Karma: -138
Deconectat Deconectat

Mesaje: 234



Vezi Profilul
« Răspunde #9 : Decembrie 20, 2010, 16:15:52 »

Salut.As dori sa stiu daca urmatoarea idee este corecta pentru problema aceasta :

1.Reprezentam graful sub urmatoarea forma :
      - pentru fiecare nod {1,2,...,n} 'stergem muchiile care ies din acesta' (ex 1->4 1->6 sterse pt nodul 1) DAR adaugam un nod v' pentru fiecare nod v astfel incat v' -> 4 si v' -> 6.Muchiile care intra in v le lasam cum sunt initial.Facem legatura v -> v'.
2.Adaugam o sursa virtuala si o destinatie virtuala.Facem legatura sursa -> orice nod v, legatura orice nod v' -> destinatie virtuala.
3.Pornim algoritmul de flux maxim, numarul de pasi in care BFS() == true (adica gasim drum de la sursa la destinatie virtuala) este solutia pt. problema.

Am incercat cateva exemple pe foaie si vad ca da bine..astept si alte pareri de la voi.  Smile

In cazul in care nu e buna solutia asta, m-am mai gandit la ceva in care folosesc si cautare binara? Are cineva vreo solutie cu cautare binara?
Memorat
cosmin79
Strain
*

Karma: 36
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #10 : Aprilie 28, 2016, 14:34:28 »

Mentionez pentru cine e interesat ca problema se poate reduce la min path cover cu noduri disjuncte intr-un DAG, care poate fi rezolvata cu cuplaj maxim (https://en.wikipedia.org/wiki/Maximum_flow_problem#Minimum_path_cover_in_directed_acyclic_graph).

Reducerea consta in inlocuirea grafului initial cu un graf cu aceleasi noduri, dar muchii orientate x -> y in cazul in care exista un drum de la nodul x la nodul y in graful initial. Pentru a demonstra ca cele 2 probleme sunt echivalente e suficient sa aratam ca orice solutie pe graful initial e o solutie pe graful nou si viceversa.

Daca exista o solutie cu un set de drumuri pe graful initial, poate fi transformat intr-o solutie pe graful nou (fara noduri duplicate) sarind nodurile care au fost vizitate deja (muchiile necesare pt "sarituri" exista din constructie). Pe exemplul problemei:
1 -> 2 -> 3 -> 5 ar ramane tot 1 -> 2 -> 3 -> 5 in graful nou
7 -> 2 -> 4 -> 6, ar deveni:7 -> 4 -> 6 (am sarit nodul 2 fiindca a fost deja vizitat + muchia 7 -> 4 exista din constructie)

Invers, daca exista o acoperire in graful nou, poate fi transformat intr-o solutie pt graful initial inlocuind fiecare muchie x -> y, cu toate nodurile coresp drumului de la x la y.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

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