Forumi
Home Pravila i pomoć Članovi Kalendar Današnji postovi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 09.11.2010., 23:24   #1
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
Arrow Dijkstra algoritam ("Dijkstra's Shortest Path Algorithm")

Ima li negdje kvalitetno hrvatsko objašnjenje (neka knjiga ili nešto) ili se moram osloniti na (za ovu tematiku težu) englesku literaturu?

hvala

Zadnje izmijenjeno od: svebee. 09.11.2010. u 23:40. Razlog: opširniji naslov
svebee je offline   Reply With Quote
Staro 09.11.2010., 23:32   #2
Bubba
E Pluribus UNIX
Moj komp
 
Bubba's Avatar
 
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,734
Covjek je imao vise "algoritama", sto onih u teoriji grafova, pa do onih za prebacivanje u postfix notacije... Koji algoritam tebe tocno zanima?
__________________
https://2.71828182845904523536028747...966967627.com/

Programer
Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest.
Bubba je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 09.11.2010., 23:35   #3
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
Citiraj:
Autor Bubba Pregled postova
Covjek je imao vise "algoritama", sto onih u teoriji grafova, pa do onih za prebacivanje u postfix notacije... Koji algoritam tebe tocno zanima?
zaboravio dodati - "Dijkstra's Shortest Path Algorithm" - najkraći put između dvije točke.
svebee je offline   Reply With Quote
Staro 09.11.2010., 23:38   #4
Milentije
Adrenaline junkie
Moj komp
 
Milentije's Avatar
 
Datum registracije: Apr 2006
Lokacija: Doboj - Banja Luka
Postovi: 3,593
http://www.megaupload.com/?d=GWVT44TR

Slajdovi 73-78. Ako budes imao kakvih pitanja javi mi se na MSN.

EDIT: Uglavnom. Posjetiš prvi čvor, poslije njega posjetiš njemu najbliži čvor. Zatim provjeravaš koji ti je nabliži čvor dostižan direktno preko prvog čvora ili preko prvog i drugo. Onda posjetiš taj najbliži čvor, pa opet gledaš koji ti je najbliži čvor koji možeš posjetiti preko dosad posjećenih čvorova. I tako dok ne obiđeš čitav graf.

Nije dozvoljeno ponavljanje iste grane u jednom prolazu kroz graf.
__________________
Lenovo ThinkPad W530 - Core i7 3840QM, 32 GB RAM, SSD Samsung 512 GB, nVidia Quadro K1000M 2 GB, 15.6" 1920x1080 IPS, baterija 9 ćelija

Zadnje izmijenjeno od: Milentije. 09.11.2010. u 23:45.
Milentije je offline   Reply With Quote
Staro 09.11.2010., 23:44   #5
Bubba
E Pluribus UNIX
Moj komp
 
Bubba's Avatar
 
Datum registracije: Oct 2002
Lokacija: M82
Postovi: 6,734
Citiraj:
Autor svebee Pregled postova
zaboravio dodati - "Dijkstra's Shortest Path Algorithm" - najkraći put između dvije točke.
Skokni do knjiznice po Veljanovu Diskretnu matematiku i kombinatoriku, pa pogledaj sto se nudi pod teorijom grafova. Takodjer, baci oko i na Nakicevu skriptu, u kojoj doduse imas Kruskalov/Primov algoritam, ali se oni vrlo malo razlikuju od Dijkstre.

HTH.
__________________
https://2.71828182845904523536028747...966967627.com/

Programer
Rok od dva mjeseca u stvari znači četiri, ali nikako ispod šest.
Bubba je offline   Reply With Quote
Staro 10.11.2010., 21:13   #6
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
Sutra ću probati nešto skužiti s mentorom (inače sam program prijavio kao maturalni rad) ima gotov kod u PHPu, C/C++ itd. tako da to nije problem, ali moram razumijeti algoritam kako bih ga mogao prilagoditi svojim potrebama.

ali koliko sam čitao okolo, vidim da se može prilagoditi za javni prijevoz tj. rutiranje od stanice A do stanice B (ili modifikacije istog algoritma).

ja sam to zamislio da "težine" između svake točke bude neki broj proračunat iz (npr)
1) udaljenosti između stanica
2) ista linija ili ne
3) presjedanje na istoj stanici ili hodanje "preko ceste"
4) vrijeme polaska iduće linije u slučaju presjedanja
5) approx. vrijeme između navedene dvije točke/stanice
6) vrsta prijevoznog sredstva (autobus/tramvaj/metro/vlak...)
7) ...

jel bi to...klimalo?
svebee je offline   Reply With Quote
Staro 11.11.2010., 00:48   #7
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
Citiraj:
Autor svebee Pregled postova

ja sam to zamislio da "težine" između svake točke bude neki broj proračunat iz (npr)
1) udaljenosti između stanica
2) ista linija ili ne
3) presjedanje na istoj stanici ili hodanje "preko ceste"
4) vrijeme polaska iduće linije u slučaju presjedanja
5) approx. vrijeme između navedene dvije točke/stanice
6) vrsta prijevoznog sredstva (autobus/tramvaj/metro/vlak...)
7) ...

jel bi to...klimalo?
po meni, jedina bitna stavka za javni prijevoz je vrijeme puta iz cvora a u cvor b.. nebitno je kojim putem ili prijevoznim sredstvom ides, pa neces ic busom zato sto bus ide blizim putem, ako npr. tramvajem stignes pola sata brze. znaci za tezinsku fj-u uzmes vrijeme, a za shvatit algoritam, nadji pseudokod, i pjeske nadji put na par grafova, i razumjet ces kako sto i zasto.
__________________
"I intend to live forever. So far, so good."

job security - example
rodney je offline   Reply With Quote
Staro 11.11.2010., 09:46   #8
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
Citiraj:
Autor rodney Pregled postova
po meni, jedina bitna stavka za javni prijevoz je vrijeme puta iz cvora a u cvor b.. nebitno je kojim putem ili prijevoznim sredstvom ides, pa neces ic busom zato sto bus ide blizim putem, ako npr. tramvajem stignes pola sata brze.
ali moram uključiti presjedanja u tu priču jer npr. trebam doći od STANICE 1 do STANICE 10. Na pola puta od STANICE 5 - STANICE 6 imam 3min. vožnje istom linijom (istim prijevoznim sredstvom, npr. busom), ali imam i od STANICE 5 - STANICE 6 opciju 1min. tramvajem. Nakon toga opet moram nastaviti prvotnom linijom (jer ona samo vozi dalje). Ako bi se orijentirao na vrijeme (uzmimo da idealno kada izađem iz autobusa kreće tramvaj), tada bih trebao uzeti tramvaj (1<3min.), međutim, nije li praktičnije i dalje biti na autobusnoj liniji unatoč te 2 min.?
svebee je offline   Reply With Quote
Staro 12.11.2010., 00:37   #9
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
Citiraj:
Autor svebee Pregled postova
...
pa ako od stanice 5 do stanice 6 mozes ic i busem i tramvajem, to bi se se reklo da ima dvije veze izmedju cvorova 5 i 6, s tim da je vrijeme tj tezina za bus 3min, a za tramvaj 1 + koliko moras cekat, a algoritam bira najkraci put, pa bi trebao izabrat bus. u biti sve one stavke sto si nabrojao (ista linija, presjedanje, hodanje preko ceste) se mogu izraziti pomocu vremena koje je potrebno za te radnje, i pozbrajas ih.
__________________
"I intend to live forever. So far, so good."

job security - example
rodney je offline   Reply With Quote
Staro 14.11.2010., 19:54   #10
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
Citiraj:
Autor rodney Pregled postova
u biti sve one stavke sto si nabrojao (ista linija, presjedanje, hodanje preko ceste) se mogu izraziti pomocu vremena koje je potrebno za te radnje, i pozbrajas ih.
istina

Citiraj:
Autor rodney Pregled postova
...a za tramvaj 1 + koliko moras cekat...
samo ovaj dio, to bi značilo da bi svaki put pri računanju rute od točke A do točke B trebao za svako moguće presjedanje (te općenito računanje vremena) morao dinamički računati vrijeme tj. težinu puta (izuzev onih puteva gdje nema promjena tipa stanica 1 do stanice 2 uvijek ide samo tramvaj - to bi vrijeme bilo statično (approx. naravno, ali se nebi mijenjalo)) jer bi ono naravno ovisilo o polasku autobusa/tramvaja te dolasku istoga na stanicu.

probat ću složiti pa javim rezultate/brzine
svebee je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 14.11.2010., 21:49   #11
Milentije
Adrenaline junkie
Moj komp
 
Milentije's Avatar
 
Datum registracije: Apr 2006
Lokacija: Doboj - Banja Luka
Postovi: 3,593
Da, za svaku granu računaš nezavisnu težinu (težinu koja nema veze sa ostalim granama). Inače, za optimizaciju protoka imaš neke druge algoritme (možeš ih naći u onom PPP što sam ti poslao).
__________________
Lenovo ThinkPad W530 - Core i7 3840QM, 32 GB RAM, SSD Samsung 512 GB, nVidia Quadro K1000M 2 GB, 15.6" 1920x1080 IPS, baterija 9 ćelija
Milentije je offline   Reply With Quote
Staro 16.11.2010., 14:31   #12
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
Citiraj:
Autor svebee Pregled postova
samo ovaj dio, to bi značilo da bi svaki put pri računanju rute od točke A do točke B trebao za svako moguće presjedanje (te općenito računanje vremena) morao dinamički računati vrijeme tj. težinu puta (izuzev onih puteva gdje nema promjena tipa stanica 1 do stanice 2 uvijek ide samo tramvaj - to bi vrijeme bilo statično (approx. naravno, ali se nebi mijenjalo)) jer bi ono naravno ovisilo o polasku autobusa/tramvaja te dolasku istoga na stanicu.
takva funkcija se naziva "heuristicka evaluacijska funkcija", a jedan od jednostavnijih algoritama koji bi bio dobar za ovaj problem je A*. iako mozes gledat i druge algoritme za usmjereno pretrazivanje (neznam koji se spominju o ppp sto je milentije poslao..).
__________________
"I intend to live forever. So far, so good."

job security - example
rodney je offline   Reply With Quote
Staro 16.11.2010., 22:02   #13
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
tnx. vidim da A* ima dio Dijkstrinog algoritma + heuristicki pristup (EDIT: ili on može koristiti i dinamičke težine?)

no, imam jedan problem - koliko sam shvatio, oba algoritma zahtijevaju unaprijed definirane težine između svih vrhova.

ako ja imam 3 rute, ovisno s koje prethodne točke/vrha dolazim ovisit će mi težina između slijedeća dva vrha. što želim reći? ako imam ovu situaciju



zamislimo da linija br. 2 ide ravno do kraja - tada će težina od "središta" do slijedećeg vrha prema kraju biti najmanja (nema presjedanja), ako će pak ispitivati s linije 1 ili 3 - postoji presjedanje i automatski je težina veća, no međutim može li se definirati više težina za isti put (osim naravno smjera tamo/natrag)?

Zadnje izmijenjeno od: svebee. 16.11.2010. u 22:22.
svebee je offline   Reply With Quote
Staro 17.11.2010., 17:34   #14
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
Citiraj:
Autor svebee Pregled postova
... no međutim može li se definirati više težina za isti put (osim naravno smjera tamo/natrag)?
ne mozes bas imat vise tezina za isti put, ali, ono sto mozes je imat vise puteva izmedju ista dva cvora. nesto kao:



(ja sam crtao usmjereni graf, mozes isto to i sa neusmjerenim).

vec sam rekao malo vise gore da mozes imat vise veza..

edit:

malo sam razmisljao, i mozda bi ti bilo jednostavnije poigrat se sa grafom, recimo nesto ovako:
.

ako bi tako prezentirao mrezu, onda nemas problema sa dinamickim tezinama ni sa icim drugim, samo pises sve tezine (na ove crvene crte, jelte) i pustis algoritam da se snalazi..
__________________
"I intend to live forever. So far, so good."

job security - example

Zadnje izmijenjeno od: rodney. 17.11.2010. u 17:47.
rodney je offline   Reply With Quote
Staro 17.11.2010., 20:31   #15
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
Citiraj:
Autor rodney Pregled postova
ako bi tako prezentirao mrezu, onda nemas problema sa dinamickim tezinama ni sa icim drugim, samo pises sve tezine (na ove crvene crte, jelte) i pustis algoritam da se snalazi..
ali problem je što su te težine varijabilne (ovisi s kojom se linijom dolazi na početnu stanicu jednog "ruba"). npr. imamo ovu sitauaciju (napomena: stanica na kojoj se križaju je ista, ista strana ceste, sve isto)



kako da ja algoritmu kažem da ako "dolazi" s donje strane, s plave linije uzima vrijednost 150, a ako "dolazi" s lijeva (s crne linije) uzima vrijednost 10.

to me muči...
svebee je offline   Reply With Quote
Staro 17.11.2010., 22:43   #16
rodney
only fool, not a horse
Moj komp
 
rodney's Avatar
 
Datum registracije: Apr 2008
Lokacija: near zgb
Postovi: 1,280
Citiraj:
Autor svebee Pregled postova
ali problem je što su te težine varijabilne (ovisi s kojom se linijom dolazi na početnu stanicu jednog "ruba").
to bi rjesio da uvedes heuristicku funkcijuju koja racuna do sad prijedjeni put. tezina brida u grafu mora bit jedinstvena. ali....

Citiraj:
Autor svebee Pregled postova
kako da ja algoritmu kažem da ako "dolazi" s donje strane, s plave linije uzima vrijednost 150, a ako "dolazi" s lijeva (s crne linije) uzima vrijednost 10.

to me muči...
mozes napravit bolju reprezentaciju rjesenja (citaj bolji graf).
hint:


sad tek vidio, fali mi jos jedna crta, di plavi bus odlazi na iducu stanicu...
__________________
"I intend to live forever. So far, so good."

job security - example
rodney je offline   Reply With Quote
Staro 17.11.2010., 23:00   #17
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
nadasve zanimljivo rjesenje neznam zašto sam se ja (nesvjesno) ograničio na to da taj "imagnirani" graf mora odgovarati fizičkom obliku u stvarnosti... uglavnom, shvatio ideju, tnx.

javim se za par dana

Citiraj:
Autor Bubba Pregled postova
Skokni do knjiznice po Veljanovu Diskretnu matematiku i kombinatoriku, pa pogledaj sto se nudi pod teorijom grafova.
neznam, ali ono tamo je (po)prilično komplicirano štivo, dok tek nešto skužim trebam ogromnu pomoć...probat ću "easy-way" - bez mat. uvjeta, funkcija i ko zna čega sve ne ako neće ići, e onda ću se baciti na to.
svebee je offline   Reply With Quote
Staro 26.11.2010., 00:34   #18
svebee
/
 
Datum registracije: Oct 2006
Lokacija: /
Postovi: 2,053
ima li netko ideju kako "unaprijed" izračunati težine rubova?

jer ako imam stanice A,B i C i ako idem direktno A -> C, rubovi (vremena polaska busa na stanicu) će biti drugačiji nego ako se ide A -> B -> C. Kako mogu odrediti rubove "unaprijed" jer ovisno kako se Dijkstra širi - tako se proračunavaju i rubovi tj. ovisno o ruti koju on pospoji - na taj način će se generirati i rubovi.

Kako to izvesti?
svebee je offline   Reply With Quote
Staro 28.11.2010., 15:44   #19
Milentije
Adrenaline junkie
Moj komp
 
Milentije's Avatar
 
Datum registracije: Apr 2006
Lokacija: Doboj - Banja Luka
Postovi: 3,593
Nisam najbolje shvatio. Mozes li skicirati konkretan slucaj?
__________________
Lenovo ThinkPad W530 - Core i7 3840QM, 32 GB RAM, SSD Samsung 512 GB, nVidia Quadro K1000M 2 GB, 15.6" 1920x1080 IPS, baterija 9 ćelija
Milentije je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na