{"id":21201748,"url":"https://github.com/oleander/dijkstras","last_synced_at":"2025-03-14T22:26:09.155Z","repository":{"id":66260548,"uuid":"1114860","full_name":"oleander/Dijkstras","owner":"oleander","description":null,"archived":false,"fork":false,"pushed_at":"2010-12-14T15:12:56.000Z","size":2180,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T14:47:44.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oleander.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-11-26T15:29:49.000Z","updated_at":"2014-02-02T08:07:21.000Z","dependencies_parsed_at":"2023-02-20T01:15:29.724Z","dependency_job_id":null,"html_url":"https://github.com/oleander/Dijkstras","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleander%2FDijkstras","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleander%2FDijkstras/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleander%2FDijkstras/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oleander%2FDijkstras/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oleander","download_url":"https://codeload.github.com/oleander/Dijkstras/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243654405,"owners_count":20325896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T20:10:50.961Z","updated_at":"2025-03-14T22:26:09.134Z","avatar_url":"https://github.com/oleander.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Laboration 3\n****************\n* Jesper Josefsson\n* Linus Oleander\n****************\n\nHOW TO:\n********\nStart the program by executing Main.java\nThe program will ask you to specify files containing stops and lines\n********\n\nProgrammet startas med klassen Main.java\n\nMain bygger upp GUI:t och instansierar DijkPath, som implementerar interfacet Path.\nMain använder hjälpklasserna från Lab3Help för GUI:t samt för att parsa inputfiler.\nMain bygger kartan med hjälp av grafen i DijkPath samt ritar ut kortaste vägen.\nMain skriver även ut ruttinformation i textfönstret. I fönstret ges även information om exekveringstid.\n\nDijkPath bygger en graf med klassen Graph med konstruktorns argument.\nDijkPath räknar ut kortaste avståndet mellan två noder i sin graf med hjälp av Dijkstras algoritm. \nVid uträkning inkapslas varje GraphNode i en nod av klassen Node så att vi ska kunna spara undan extra information som bara används under uträkningen.\n\nEn Graph är en graf som innehåller noder av klassen GraphNode. Sökning efter hållplats på basis av namn (en sträng) i grafen är O(1) med hjälp av en HashMap.\nGraph innehåller en nodlista. Grannlistor för varje nod fås snabbt genom att ta fram båglistan för given nod, eftersom bågarna innehåller pekare till sina destinationer. \n\nEn GraphNode innehåller en hållplats i form av en BStop samt en lista på utgående bågar av klassen Edge.\n\nEn Edge är en båge som representerar en linje mellan två GraphNodes. Den innehåller information om ruttens längd och utgångs- och målnoder.\n\nPriorityQueue är en uppdaterarbar prioritetskö som bygger på en GenAHeap.\n\nGenAHeap är en uppdaterbar heap. Beskrivs i föregående labb.\n\nNode innehåller en GraphNode samt information om rutten som användes för att nå GraphNoden. Vi sparar undan föregående nod i rutten samt hur länge det tog att ta sig från den föregående noden. Därmed kan man gå bakåt från destinationen för att finna den slutgiltiga vägen.\n\nGeneralException är en undantagsklass för icke-specificerade undantag. \n\nFör vidare information, se JavaDoc-filer i mappen Doc.\n\nMappen Input files innehåller exempelfiler med hållplatser och linjer.\n\n\nKOMPLEXITET\n***********\n\nKomplexiteten för vår implementation av Dijsktras algoritm bör vara O((m+n)log n) eftersom prioritetskön är snabbt uppdaterbar.\n\nTESTER\n******\n\nPrioritetskön samt heapen är testade under utveckling av labb2.\n\nDijkPath har testats för hand (flyglinjerna), samt med testing.jar-paketet som fanns tillgängligt för labben.\nHela Lab3FileTest utfördes med stops-bvs.txt och lines-bvs.txt utan fel. Se utskrift längre ner.\nDessutom utfördes \u003e300 000 lyckade tester med Lab3GenTest.\n\nVi har dessutom testat med broken-lines-filerna i Input files-mappen. Dessa ser till att algoritmen kan hantera sträckor mellan icke-anknutna noder.\n\n\n\nResultat av Lab3FileTest med stops-bvs.txt och lines-bvs.txt:\n\n\njava -jar testing.jar lab3test.Lab3FileTest \"DijkPath stops-bvs.txt lines-bvs.txt\"\nPress any key to stop testing..\n\n573/418609 tests done so far. successes: 573, failures: 0.\n1249/418609 tests done so far. successes: 1249, failures: 0.\n.....\n.....\n418000/418609 tests done so far. successes: 418000, failures: 0.\n\u003cterminated since done with testing\u003e\ntests: 418609/418609, successes: 418609, failures: 0\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleander%2Fdijkstras","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foleander%2Fdijkstras","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foleander%2Fdijkstras/lists"}