[NAISP] 6. laboratorijska vježba - 2021/2022
bodilyfluids
viliml možeš kolegi asistentu
viliml
Mauricius u pravu si, ali svejedno probaj koristiti bolji izvor od samo googla.
Mauricius
viliml Ma provjerio sam na više izvora naravno, to tako kažem samo.
Ardura
Matt Je li to nova verzija u edgaru ili? Ispadao mi je tocno zad s prvom, a ovako baca error.
matt
Maddy Valjda ovisi o tome kako si implementirala metodu solve
. Oni su ju zadali kao def solve(W: AdjMatrix, start: int) -> List[BellmanFordNode]
što znači da vraća listu BellmanFordNode
-ova. Kad pošaljem takvu listu revPath
-u dobijem TypeError: list indices must be integers or slices, not BellmanFordNode
error…
…zato što prilikom curr = node.prev
bude tipa BellmanFordNode
i u sljedećoj iteraciji node = solution[curr]
više nema smisla.
# njihov revPath
def revPath(solution: List[BellmanFordNode], to_node: int) -> List[int]:
curr = to_node
path = []
while curr is not None:
path.append(curr)
node = solution[curr]
curr = node.prev
return path
Možda nešto krivo gledam…Kolega je napisao istu napomenu DrEtva
edit: ako će sutra na Edgaru padati testovi onda ću returnati indexe umjesto Node-ova pa bi sve trebalo biti ok
Baksuz
Matt kako su ovi labosi iz naspa predobri. Likovi napišu u komentaru da prev mora biti BellmanFordNode, a onda se kao očekuje da to ipak bude int hahahahaha.
sekiro
Blic danas u 10
steker
Jesu isti zadatci
sekiro
steker ja sam bellman-ford imao
matt
WFI zadatak. Zaboravio sam kopirati text zadataka ali ugl. treba izračunati matricu W
, Pi
i preko Pi
završnu path listu. Vodite se po slajdovima iz prezentacije i po ovom videu
Input je W
a output treba biti ono što je u printu
from copy import deepcopy
from sys import maxsize
def WFI(W: dict, s: chr, d: chr) -> (dict, list):
# inicijaliziraj W
# fixaj vrijednosti na beskonacno ako treba
# inicijaliziraj Pi
# po algoritmu iz prezentacija iteriraj len(W.keys) puta i updateaj W i Pi
# napravi listu za path
# dodaj zadnji element `d` u path
# pomocu Pi koristi algoritam za path unazad iz predavanja i dodavaj imena u listu
# okreni listu
# vrati matricu i listu
pass
W = {"a": {"a": 0, "b": 2, "c": 0, "d": 0}, "b": {"a": 0, "b": 0, "c": 3, "d": -1}, "c": {"a": -1, "b": 0, "c": 0, "d": 7}, "d": {"a": 3, "b": 0, "c": 0, "d": 0}}
WFI(W, "a", "d")
print(({"a": {"a": 0, "b": 2, "c": 5, "d": 1}, "b": {"a": 2, "b": 0, "c": 3, "d": -1}, "c": {"a": -1, "b": 1, "c": 0, "d": 0}, "d": {"a": 3, "b": 5, "c": 8, "d": 0}}, ["a", "b", "d"]))
reygrep
Matt imas mozda kako treba izgledati pi na kraju
matt
Blic pitanja
Gocc
jel WFI uvijek ima samo 4 vrha, a,b,c,d u ovom zadatku na labosu
Ducky
So_Done
madoxx
Pitalice se ponovile + jedno pitanje o jednostavnim i multigrafovima
pingvinka
matt
reygrep
Ovo je moj završni PI
{'a': {'a': None, 'b': 'a', 'c': 'b', 'd': 'b'}, 'b': {'a': 'c', 'b': None, 'c': 'b', 'd': 'b'}, 'c': {'a': 'c', 'b': 'a', 'c': None, 'd': 'b'}, 'd': {'a': 'd', 'b': 'a', 'c': 'b', 'd': None}}
FERonja
Ako netko dobije WFI pošaljite priloženi kod.
Spuk
FERonja Nema prilozenog koda uz taj zadatak.
AnamarijaM
FERonja ja sam samo prebacila dict u array, onda radi kod iz skripte, i nazad u dict finalni rezultat.