» »

[C++] Pomoč pri nalogi razveji in omeji

[C++] Pomoč pri nalogi razveji in omeji

hurlimannxt ::

Pozdrav,

prosil bi, če bi se našel nekdo, ki bi mi pomagal pri naslednji nalogi...nikakor ne najdem prave rešitve (

http://pastebin.com/wg9zYfG2

na zgornjem linku je tudi možno videti kodo

navodila:
Za predstavitev grafa bomo tudi tukaj uporabili matriko sosednosti C.
Psevdokod samega algoritma je naslednji:
function RAZVEJI_IN_OMEJI(G, s, g, R, cena_resitve)
begin
   pot.vozlisca := 〈s〉
   pot.dolzina := 0
R := ∅
cena_resitve := ∞
VSTAVI_V_VRSTO(Q, pot)
while not(PRAZNA(Q))
     begin
       p := VZAMI_IZ_VRSTE(Q)
u := zadnje vozlišče v poti p
for each vozlišče v ∈ G.Sosedi(u) do
         if not(v ∈ p.vozlisca) then
           begin
             p1 := DODAJ_VOZLISCE(p, v)
             p1.dolzina := p.dolzina + C[u,v]
            if v = g then
             begin
               if p1.dolzina < cena_resitve then
                 VSTAVI_NOVO_RESITEV(R, p1)
               else if p1.dolzina = cena_resitve then
                 DODAJ_RESITEV(R, p1)
             end
             else if p.dolzina < cena_resitve then
               VSTAVI_V_VRSTO(Q, p1)
           end
     end
end


Izpis 1: Psevdokod funkcije RAZVEJI_IN_OMEJI
Algoritem v izpisu 1 ima pet parametrov, tri vhodne in sicer G predstavlja podatke o
grafu, s izhodiščno vozlišče, g pa ciljno vozlišče. Zadnja dva parametra sta izhodna
parametra. V spremenljivki R vrnemo najdeno najkrajšo pot, v spremenljivki
cena_resitve pa ceno te najkrajše poti. Predstavljeni algoritem
RAZVEJI_IN_OMEJI najde vse poti z isto ceno. V ta namen služi funkcija
DODAJ_RESITEV, ki k trenutno poti doda novo pot z isto ceno. Funkcija
VSTAVI_NOVO_RESITEV počisti vrsto z rešitvijo in vstavi novo pot. Funkcija
DODAJ_VOZLISCE zadnjemu vozlišču v poti doda novo vozlišče. Pot hranimo v
statičnem polju. Če določenih povezav v grafu ni, to označimo z vrednostjo 9999.

Če bi kdo želel videti še graf, ga imate na spodnji povezavi

http://pastebin.com/krpJxsv5

jutri imam zagovor, delam že kar nekaj časa in sem se odločil, da se obrnem za kakršnokoli možno pomoc na vas


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Iskalno Drevo

Oddelek: Programiranje
132126 (1692) Ciklamen
»

DIJKSTROV_ALGORITEM

Oddelek: Programiranje
142237 (1471) krneki0001
»

[C++] Iskalno drevo implementacija

Oddelek: Programiranje
52329 (1887) eXoo
»

Ciklično routanje po grafu ali nekaj podobnega

Oddelek: Programiranje
81211 (1052) Sergio
»

pomoc pri skladu

Oddelek: Programiranje
51347 (1272) NoUse4AName

Več podobnih tem