Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[UUUI] 1. laboratorijska vježba - 2020/2021

Lusy

Kako najlakse sortirati po cijeni pa abecedno (Java) ?


Haki

MGJ Napravis komparator (ili nek ti Node implementira Comparable) koji će usporediti cijene sa Double.compare() i to vratiti, a ako su cijene jednake onda vraća vrijednost usporedbe imena stanja


Haki

Valentino bfs 181366, ucs 181218


bjunolulz

Kako bi nasao path ako nisam koristio nikakvu strukturu za cvor u pythonu. Prijelaze citam iz dictionarya i nemam roditelje.


dobro

bjunolulz Mislim da moraš imat barem pointer na parent da bi mogao ispisat path


bjunolulz

dobro da i mislio sam da sam sjebao


nnn

Kako ste u Pythonu 3×3 za bfs i ucs smanjili vrijeme izvođenja?
Za open/queue koristim collections.deque a za visited koristim set al opet mi je vrijeme cca 2 min


Diego

dinoo ucs s heapq za open radi u par sekundi


Uchenikowitz

dinoo koristi priorityQueue za opened da ne sortas i dictionarye za opened/closed skupove, mozes radit {“node.name”: “node”}, a mozes i {“node”: “node”} ako overridas hash funkciju, inace ti nece znat hesirat klasu Node ako ju imas. Znaci za opened odrzavas dvije strukture (priorityQueue i dict)


gladiator

Diego Kako koristiš heap u A* algoritmu? Ne postoji efektivni način za mijenjanje vrijednosti elementa u heap-u, a da se ne poziva funkcija heapify()


Diego

gladiator ne trebaš mijenjati, samo sva stanja trpaš u heap i onda kad pop() sljedeće stanje na heapu trebaš imati while petlju koja će ti pop() stanja dok ne naiđe na stanje koje nije u visited
tako ako imaš više istih stanja uvijek će ti na heapu prvo pop() s najmanjim putem moraš se sam pobrinut da ostala ista stanja s većim putem zanemariš


Uchenikowitz

Imam sljedeci problem:
=== EVALUATION ===

== A-STAR ==
Passed 5 / 5 tests.

== BFS ==
Passed 2 / 3 tests.

  • Failed test: BFS
  • Command run: python solution.py –ss 3×3_puzzle.txt –alg bfs
    Mismatch with field: PATH
    -> Obtained output:
    876_543_21x => 876_54x_213 => 876_5×4_213 => 8×6_574_213 => x86_574_213 => 586_x74_213 => 586_274_x13 => 586_274_1×3 => 586_2×4_173 => 586_24x_173 => 586_243_17x => 586_243_1×7 => 586_2×3_147 => 5×6_283_147 => 56x_283_147 => 563_28x_147 => 563_2×8_147 => 5×3_268_147 => x53_268_147 => 253_x68_147 => 253_168_x47 => 253_168_4×7 => 253_168_47x => 253_16x_478 => 253_1×6_478 => 2×3_156_478 => x23_156_478 => 123_x56_478 => 123_456_x78 => 123_456_7×8 => 123_456_78x
    -> Expected output:
    876_543_21x => 876_543_2×1 => 876_543_x21 => 876_x43_521 => x76_843_521 => 7×6_843_521 => 746_8×3_521 => 746_83x_521 => 746_831_52x => 746_831_5×2 => 746_831_x52 => 746_x31_852 => x46_731_852 => 4×6_731_852 => 436_7×1_852 => 436_71x_852 => 43x_716_852 => 4×3_716_852 => 413_7×6_852 => 413_756_8×2 => 413_756_82x => 413_75x_826 => 413_7×5_826 => 413_725_8×6 => 413_725_x86 => 413_x25_786 => x13_425_786 => 1×3_425_786 => 123_4×5_786 => 123_45x_786 => 123_456_78x

Sve je isto samo se path razlikuje, napisali su u obavijest da nece gledat path kod UCS i A*, nisu nista spomenuli za BFS. Ima li netko da mu se isto ovo dogada?


Me1

Učečuču jesi mozda saznao u cemu je problem?


Sulejman

Ducky kak si to na kraju rijesio?


Wayk

Tip za autograder:

  • za smrtnike (kao ja) kome ne prolazi nesto dosta brzo mozete smanjiti vrijednost varijable max_time na autograder.py:363 da ne čekate svaki put 2 min da vam izvrti to a zanimaju vas ostali testovi

Sulejman Za optimiranje sam za svaki node prvo izracunao pravu udaljenost sa UCS.
Traje dugo (predugo cini se) ali cini se kao najbezbolnije a i kažu da neće skidat bodove ako ne radi za 3×3 (piše u obavijesti nekoj)

@Joji inače ima odličnu ideju kako to bolje implementirati

Joji Prošle godine sam optimističnost riješio tako što sam za svako ciljno stanje pokrenuo Dijkstrin algoritam koji računa udaljenosti od ciljnog stanja do svih ostalih i onda sam na temelju tih udaljenosti radio provjere optimističnosti za svako stanje. U Pythonu mi se izvrtilo za cca 4 sekunde na 3×3 zadatku.

S ovim ima malo zafrkancije jer treba obrnuti relaciju roditelj - dijete između nodova da možes traversat usmjereni graf unazad


ErnestHemingway

Ima li netko da je koristio pathmax korekciju?


Retard00

Treba li komentirat kod ili je “uredno pisat” dovoljno?


KingGeedorah

Za ove što su radili u pythonu, kako uklanjate element iz heapq-a? Vidim da heapq nema svoju metodu za to, jedino da se koristi remove kao nad listom pa da se opet poziva heapify, što opet uzme puno vremena


nnn

King Geedorah
ja koristim queue.PriorityQueue, on interno koristi heapq (source) i meni je bio laksi (razumljiviji)

za heapq: heapq.heappop(heap) https://docs.python.org/3/library/heapq.html


KingGeedorah

dinoo heappop uklanja najmanji tj. prvi element, ja sam mislio na općenito brisanje elementa bilo gdje u strukturi


mariak


Jel iko imao problem da izvodenje zaglavi kad se racuna optimisticnost za 3×3? Smanjila sam vrijeme max_time u kodu autogradera na 10 sekundi i svejedno ovdje zaglavi
(a ako stavim da se optimisitcnost uopce ne racuna za 3×3, sve mi normalno radi)


Gocc

kaiak ista stvar, javi ako skuzis


lucylu

kaiak takoder isti problem


lovro

Jel postoje negdje upute za pokretanje autogradera, koje argumente moramo predati?


Me1

l123 imas u README


« Prethodna stranica Sljedeća stranica »