Posts tagged LPP
minibusi update :)
Morda se še spomnite te predstavitve in sličic mojega projekta z minibusi, ki je nekakšno nadaljevanje projekta z LPP busi po Ljubljani. Trenutno Delam na širši okolici Kranja, za graf pa uporabljam OpenStreetMap mapo(ki je mimogrede precej neuporabna zaradi dvoumne klasifikacije), ki ima poleg standardnih napak opensource projekta še druge kot naprimer:
<tag k=”highway” v=”steps”> tukaj sta 2 zadevi ki mene osebno precej motita(ker se moram jst potem ubijat pri parsanju):
1. zakaj ne napišejo normalno po XML “načelu” highway=”steps”
2. OMG kje maš stopnice na avtocesti??? – To zgleda, da je globlji problem, saj so “vse” prehodne površine označene kot “highway”, razen križišč, krožišč in še parih stvari. Kar spet naredi stvar precej utrujajočo, ker ne moremo preprosto pobrati “vseh” cest v graf tako, da preberemo vse, kar vsebuje “highway”, temveč moramo pobrskati čez celotno mapo, da vidimo, na koliko različnih načinov so poimenovana in označena križišča. sicer dobimo nepovezan graf. Jeeej.
Trenutno se projekt bliža koncu testiranja algoritmov in začetku dokončevanja končne aplikacije. Nove sličice pridejo v kratkem, še bolje pa je, če me pocukate za rokav, saj poanta grafičnega vmesnika ni v “lepoti(ker nikoli nisem znal preveč lepo risat)” temveč v funkcionalnosti(pošiljanje busov, premiki za korake, dogodke itd … premikanje in zoomiranje po mapi …), tako, da vam pokažem stvar v živo.
P.S.: Če ima kdo kako boljšo idejo, kje dobit kako normalno mapo s slovenskimi cestami, se priporočam!
LpM
Začetek počitnic in formatiranje diskov
Počitnice so tu in čeprav niso tako sladke kot lani(manjka še 1 izpit do pogojev), so vseeno zelo zaželjene. In končno je tu čas za poletne projekte. Ideje so padale skozi celo leto, sedaj pa je dejansko prišel čas, da jih uresničimo.
Trenutni projekti za uresničit v tem tednu:
- SimpleUploader(prirejen CMS za nalaganje, zbiranje in klasificiranje not za zasebno uporabo)
- LPP rewrite(dejansko že nanovo spisan kot servlet, manjka še design – lahko se kdo javi!)
- Firewall
- mogoče kak nov Blog/cms za zasebno uporabo(namesto WordPressa
)
Sicer pa je morje toplo in sonce žge, tako da bo treba spet kej na morje(ta vikend je blo divje
). Če še koga mika, naj me pokliče ali pošlje mail.
V kratkem pridejo gor slikce od novih možnosti LPPja, upam pa, da se bo tudi kdo našel za design. Jst sm enostavno prelen za to(Photoshop pa take fore
).
Druga stvar je formatiranje diskov, ki vedno pride prav. Naj opomnim ob tej priložnosti vse “normalne” uporabnike računalnikov, še posebno tiste, ki uporabljajo operacijski sistem windows, da je potrebno računalnik na vsake toliko(več, kot je v uporabi, večja je frekvenca čiščenja) sformatirati disk, saj to najbolje odpravi “počasnost” sistema, ki se jo kar sčasoma navadimo, pri konstantni uporabi računalnika. Formatiranje je enostavno, samo ne pozabite prej zbackupat vseh pomembnih datotek!
LPP rewrite
Po doglem času(med izpiti seveda) sem se končno spravil spisat nanovo svojo aplikacijo za iskanje najkrajših poti po omrežju LPP. Prejšnja verzija je online in še zelo buggy, da pa se jo videti na http://poisci.si:81. Vsi predlogi in dopolnitve so seveda dobrodošli!
Slikice poisci.si:
Začetna stran na kateri si uporabnik izbere
začetno postajo, na kateri želi vstopiti in končno postajo, na kateri želi izstopiti.
Iskanje
O nas
V kratkem pride gor še par sličic nove aplikacije.
LPP nadaljevanje …
Že konec januarja sem oddal seminarsko nalogo pri APS. Slikice ste lahko videli par postov nazaj. Ker pa mi gospodje iz LPP niso nič odgovorili, sem se odločil, da zadevo malo še naprej razvijam sam.
Trenutni plani:
v0.11: {DEVELOPMENT}
a) Iskanje
-sprememba pri Dijkstri glede iskanja najkrajše poti – preverja že izračunane poti {done}
-preverjanje, če je trenutna skupna pot na vozlišču krajša od že podane {done}
b) Gui
-Izpis imen postaj ob prestopanjih
-Alfabetično urejanje postaj v menujih za izbiro začetne in končne postaje {done}
-Drug look and feel
APS naloga končana: LPP – iskanje najkrajših poti
Kot vas veliko že ve, sem se v prvem semestru ubadal z seminarsko nalogo za algoritme in podatkovne strukture, kjer sem preračunaval najkrajše poti po LPP omrežju. Nastala je aplikacija, ki zmore izpis najkrajših poti po:
-najmanj prestopanjih
-najmanj kilometrih
-najkrajšem času
Zadeva je bila prav zanimiva, čeprav je prihajalo do raznih problemov. tukaj je par slikic:
1. Navodila za uporabo
Za uporabo potrebujete povprečno zmogljiv računalnik (Athlon 64 ali močnejši, najmanj 1GB RAM za windows vista), operacijski sistem, ki podpira Java virtual machine in Java virtual machine(z implementacij Java 1.6 ali novejše).
Program ne potrebuje nobene zunanje povezave, potrebuje pa dodane txt datoteke, ki se nahajajo v direktoriju programa. Brez sledečih program ne bo deloval.
Vmesnik
Pri zagonu programa se najprej odpre osnovno okno.
Slika 2: osnovno okno programa.
Na sliki so v levem stolpcu vidni trije načini iskanja po grafu LPP. Prvi izpiše pot, katera vsebuje najmanj prestopanj, druga izpiše pot, ki jo avtobus prevozi od začetne do končne postaje, tretja pa izračuna pot, pri kateri potrebujemo najmanj časa za prihod na cilj ob določeni uri.
Na sredini so trije prostori za vpis začetnega in končnega postajališča ter časa prihoda na postajo. V polje za prihod na postajo lahko vpišemo poljuben čas v formatu, kjer so ure in minute prihoda ločene z dvopičjem(»:«). Polji za začetno in končno postajo sta namenjeni le izpisu ID številke začetnega oz. končnega postajališča, med tem ko lahko izbiramo proge po imenih na oknu, ki se odpre, ko kliknemo na gumb »izberi začetno postajo« oz. »izberi končno postajo«.
Slika 3: izbira začetne in končne postaje.
Ko imamo izbrano začetno in končno postajo lahko začnemo z uporabo prvih dveh načinov iskanja. Za tretji način vpišemo še uro – če polja ne spreminjamo, bo program preračunaval s časom »9:00«.
Iskanje z najmanj prestopanji
To iskanje je namenjeno najhitrejšemu prihodu na cilj, pri tem, da čim manjkrat prestopimo. Ko izberemo začetno in končno postajo, se prikaže graf, ki izriše pot, na desni strani pa se v posebnem oknu izpiše pot, katero lahko skopiramo v opomnik, na mobitel ali drugam.
Slika 4: Zemljevid Ljubljane – Pomanjšana karta, original v merilu 1 : 50000. Modre pike na zemljevidu so postajališča, z rumeno pa so napisane njihove ID številke. Z velikimi zelenimi krogi so označene postaje, čez katere potujemo.
Slabost tega sistema je neke vrste napaka v mojem algoritmu, ki ne izbira poti po vseh postajah, temveč vzame prvo progo, ki gre čez začetno postajališče in se pelje kolikor dolgo se lahko, nato prestopi na naslednje, ki ga prvega najde in tako dalje.
Iskanje z najmanj kilometri
Podobno kot pri prejšnjemu iskanju, tudi pri tem izberemo začetno in končno postajo. Prednost pri tej izbiri je, da so razdalje med postajami najkrajše možne. Torej naredimo najkrajšo(relativno – z evklidsko razdaljo med postajališči) pot.
Slabosti: Ta algoritem izriše pot ki je večinoma identična prvemu iskanju – kar je popolnoma logično, saj so proge v relativno majhnem mestu razpršene v različne smeri. Edini do sedaj znani primeri se dogajajo v središču, kjer je preplet prog daleč največji.
Spodnji primer pojasnjuje situacijo:
Sliki 5 in 6: Iz razlike na slikah je evidentno, da zgornja slika opisuje iskanje po najmanj kilometrih, med tem ko spodnja opisuje prvi način iskanja(manj prestopanj). Postajališče pri Metalki je tako bližje kakor pri glavni pošti.
Časovno iskanje
Pri časovnem iskanju je najpomembnejši faktor čas prihodov avtobusov na postajališča. Na podlagi tega izračunamo najkrajšo pot in tudi sam čas vožnje. Prednost je v večji natančnosti rezultata.
Izpis je sledeč:
Slika 7: izpis potovanja in časa potovanja pri tretjem načinu.
Seminarska naloga pri predmetu Algoritmi in Podatkovne strukture
Zadnji mesec delam seminarsko nalogo za APS, ki opisuje Ljubljanski Potniški Promet in preračunava najkrajše poti med dvema poljubnima postajališčema. Trenutno se ubadam z samo grafično podobo, prvi screenshoti pa so tukaj:
Potem pa pride na vrsto še malo debugginga in pregleda raznih corner case-ov.
Na koncu pa po možnosti še pravilna transformacija iz sferičnega v navadn koordinatni sistem.












