[UUUI] 1. laboratorijska vježba - 2020/2021
grga_it_is
Pleteni miš
Predpostavljam da si na krivo mjesto counter postavio, ili negdje u nekom if-u koji se ne izvrši svaki put ili nešto slično.
Ili si pak vraćaš counter preko veličine neke liste pa si se zeznuo i micao nešto iz te liste, recimo iz closed si micao nekad elemente i sl.
Ducky
Kako dohvatiti argumente - -alg ili - -check_optimistic u javi?
tomekbeli420
Ducky pa to su sami po sebi argumenti u onom polju Stringova koje dobiješ u mainu
Odnosno kad ti pokreneš primjerice
java -cp target/classes ui.Solution --ss ai.txt --h ai_pass.txt --check-optimistic
Onda će main program kao argument (String[] args
) primiti polje od 5 Stringova:
["--ss", "ai.txt", "--h", "ai_pass.txt", "--check-optimistic"]
I sad je na tebi da implementiraš logiku koja će skužiti i interpetirati sve podatke iz tog polja.
batman3000
Jel se zna koliko će cca sankcionirati predugu vrtnju 3×3?
Wayk
Ima netko pametniju ideju za check optimistic nego executad naprimjer ucs
algoritam za svaki node?
Razmisljam dijkstru naprimjer ali onda moram pisat dijsktru tj ne mogu reusat ucs
Cini mi se da bi moj ucs
approach trajao pre dugo posto mi jedan execution za 3x3
traje sekundu i pola.
micho
Wayk pa UCS je samo optimizirana varijanta Dijsktre
Retard00
Wayk Nisam siguran dal postoji algoritam takav da pronađe najkraće puteve (tj. njihove cijene) za svako stanje u usmjerenom grafu prema krajnjim stanjima u razumnom vremenu (tj. bez traženja puta za ponovo za svako stanje). Možda bi mogao pamtit već izračunate najkraće puteve i onda ako se određeno stanje već nalazi u određenom putu jednostavno izračunat cijenu za to stanje u linearnom vremenu, al onda opet nisam siguran jel to ispravna solucija.
micho
Retard00 Imate WFI ali to vam je O(V3) algoritam
implementaciju i objašnjenje možete naći u NAISP prezama, možda je netko i za labos stavio na materijale (al ima u prezama pseudokod). Samo morate paziti da nema negativnih ciklusa, ali na to bi vam se i ostale pretrage sjebale pa valjda imate tu garanciju. Problem je što ta stanja vam daju toliko “vrhova” u tom grafu da se vjerojatno ne isplati.
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.
Retard00
Joji A kak bi to onda radilo za usmjerene grafove? 3×3 nije usmjeren, al drugi grafovi koji se mogu pojavit jesu.
Wayk
Tip za autograder:
- za smrtnike (kao ja) kome ne prolazi nesto dosta brzo mozete smanjiti vrijednost varijable
max_time
naautograder.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
Dlaid
Vonj
Kako iz prioritetnog reda open obrisat element koji ima veci f od trenutnog kojeg dodajemo?
Vonj
Peter Jordanson
U javi bi bila lambda tipa
priorityQueue.removeIf((e) -> e.imeStanje.equals(trenutno.imeStanje) && trenutno.f < e.f)
Joji
Retard00 E da to nisam napomenuo. Obrnuo sam sve smjerove na početku.
TheNubKiller
Kad koristim UCS za 3×3 mi izbacuje memory exceeded error… Vrti se par min i onda na heapu ponestane prostora ali neznam kako bih ovo optimirao bolje. Za sve mape koje koristim, koristim hash mapu i koristim priority queue za open. Closed ni nemam za UCS. Savjeti pliz?
micho
Lumpy bez closed možeš koristiti algoritam samo za DAG, što ovo nisu
Ducky
=== UNARCHIVE AND STRUCTURE ===
OK!
=== COMPILE ===
Failed! Error: Compile error: [java]: [WinError 2] The system cannot find the file specified
Jel neko ovo uspio riješit ili smo mi windows useri samo doomed?
Ducky
mornar Ica joj sori, nisam vidio da je netko odgovorio….
nova skripta radi!
Valentino
Koliko dobijete za states visited u slučaju 3×3 za bfs i ucs?
Daeyarn
Valentino 181366 za bfs, ucs mi ne radi za 3×3 još 😅
Haki
Valentino bfs 181366, ucs 181218