{"id":20960241,"url":"https://github.com/instance01/osmnx-mdp","last_synced_at":"2026-04-18T05:02:47.149Z","repository":{"id":68070259,"uuid":"186705957","full_name":"instance01/osmnx-mdp","owner":"instance01","description":"Solving routing with uncertainty using Markov decision processes","archived":false,"fork":false,"pushed_at":"2020-03-04T03:56:10.000Z","size":49473,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-31T22:45:12.384Z","etag":null,"topics":["brtdp","ds-mpi","dstarlite","lpastar","markov-decision-processes","mdp","reinforcement-learning","rtdp","value-iteration"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/instance01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-14T21:53:36.000Z","updated_at":"2023-06-05T03:21:21.000Z","dependencies_parsed_at":"2023-07-07T08:16:48.592Z","dependency_job_id":null,"html_url":"https://github.com/instance01/osmnx-mdp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/instance01/osmnx-mdp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/instance01%2Fosmnx-mdp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/instance01%2Fosmnx-mdp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/instance01%2Fosmnx-mdp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/instance01%2Fosmnx-mdp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/instance01","download_url":"https://codeload.github.com/instance01/osmnx-mdp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/instance01%2Fosmnx-mdp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31957158,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["brtdp","ds-mpi","dstarlite","lpastar","markov-decision-processes","mdp","reinforcement-learning","rtdp","value-iteration"],"created_at":"2024-11-19T01:58:09.217Z","updated_at":"2026-04-18T05:02:47.099Z","avatar_url":"https://github.com/instance01.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Solving routing with uncertainty using Markov decision processes.\n\nA driver follows along a route, but diverges from it. What do? This is\nuncertainty - we don't know when or if this will happen. The repo contains\nproject files to compare different methods of shortest path finding in an\nuncertain environment on different maps such as Bavaria. There is no dynamic\ncosts - the only use case is a driver making a wrong turn. This repo serves as\na good real world application of the algorithms below.\n\nAlgorithms implemented right now:\n* Value iteration\n* BRTDP with DS-MPI\n* D* Lite\n\nDependencies:\n* osmnx (OpenStreetMap + networkx)\n* Google's dense hashmap (sparsehash package)\n\nRunning/Development:\n```\nsudo docker build -t osmnx-mdp -f Dockerfile .\nsudo docker run -v $(pwd):/app -it osmnx-mdp bash\n```\n\nThere's a few custom commands in the image (contrib/bashrc), most notably setup and run2.\n\nTo run the current simulation:\n```\ncd osmnx_mdp\nsetup\nrun2 runner\n```\n\n![States visited by BRTDP](https://raw.githubusercontent.com/instance01/osmnx-mdp/master/.github/brtdp_band2.png)\n\nGoodies for learners and code readers:\n* np.rec.array and numpy indexing: visualize.py, extract_for_pgfplots.py\n* Adding a custom data structure to Cython: dense_hash_map.pxd\n* Cython inheritance: algorithm.pxd/pyx\n* DBL_EPSILON: cpp_brtdp.cpp\n* Very simple min-priority queue with decrease-key operation (no extra class): cpp_queue_util.hpp\n* Design pattern 'Strategy': simulation.pyx, run_simulation function\n* Multiprocessing pool example: simulation.pyx\n* Simple example on how to do the t-test for the means of two samples, using ttest_ind: stat_test/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finstance01%2Fosmnx-mdp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finstance01%2Fosmnx-mdp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finstance01%2Fosmnx-mdp/lists"}