infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Alin Ilici din Martie 02, 2013, 22:11:05



Titlul: Problema ciudata algoritm Dijkstra
Scris de: Alin Ilici din Martie 02, 2013, 22:11:05
Salut!
M-am apucat de implementat algoritmul Djikstra. Am reusit destul de repede, apoi am inceput sa-l testez pe diferite exemple, si am ajuns la unul care nu vrea deloc.
Sa zicem ca am graful neorientat, cu 8 noduri, dat prin urmatoarea lista de vecini:
1: 2, 4, 7
2: 1, 5, 6
3: 4, 6, 8
4: 1, 3, 6, 7
5: 2, 7
6: 2, 3, 4
7: 1, 4, 5
8: 3
Acum fiecare muchie are un cost, dupa cum urmeaza:
[1,2]=20
[1,4]=80
[1,7]=90
[2,5]=50
[2,6]=10
[3,6]=50
[3,4]=10
[3,8]=20
[4,6]=40
[4,7]=20
[5,7]=30
Practic este graful din acest video, considerat ca un graf neorientat, din care am eliminat unele muchii.
http://www.youtube.com/watch?v=8Ls1RqHCOPw
Problema este ca distanta de la nodul 1 la nodul 8 imi spune ca este infinit, adica ca nu poate ajunge la acel nod. Algoritmul este 100% corect, acelasi exemplu l-am testat si pe alti algoritmi facuti de alte persoane si tot prost afiseaza. Daca mai poate sa testeze cineva acest exemplu si sa-mi spuna cum se comporta la el as fi foarte fericit. De asemenea, daca nu intelegeti exact cum arata graful, pot sa-i fac o poza la mine pe foaie si sa v-o arat, vreau doar sa stiu ce are acest exemplu de pune probleme algoritmului.


Titlul: Răspuns: Problema ciudata algoritm Dijkstra
Scris de: George Marcus din Martie 02, 2013, 22:56:16
Daca ar fi fost 100% corect, ti-ar fi dat solutia corecta, adica 100. Pentru a vedea cum se implementeaza corect, poti intra aici http://infoarena.ro/problema/dijkstra.


Titlul: Răspuns: Problema ciudata algoritm Dijkstra
Scris de: Stanescu Mihai din Martie 02, 2013, 22:59:08
solutia corecta ar trebui sa fie 100 ( dar este pentru graf neorientat ). pt cel orientat cu muchiile acelea nu are solutie.


Titlul: Răspuns: Problema ciudata algoritm Dijkstra
Scris de: Alin Ilici din Martie 02, 2013, 23:04:51
@George Marcus: Testeaza primii 5 algoritmi ce au obtinut un punctaj de 100 (de fapt sunt ultimii 5 daca e sa-i ordonam dupa data trimiterii) trimisi la acea problema spre care mi-ai dat link, si ai sa vezi ca pe acest exemplu ruleaza prost.
@Stanescu Mihai, la graf neorientat ma refer. Practic daca atunci cand citesti graful ii scrii ca exista muchie de la x la y si muchie de la y la x, chiar daca algoritmul este implementat sa ruleze doar pe grafuri orientate, ar trebui sa mearga si pe neorientate.

LE: Am dat acum un restart la PC, si vad ca afiseaza corect atat algoritmul meu, cat si ceilalti cu care am mai testat. Nu stiu ce a avut mai devreme, scuze de deranj.