Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phyks/dijkstra
Dijkstra implementation in C.
https://github.com/phyks/dijkstra
Last synced: about 1 month ago
JSON representation
Dijkstra implementation in C.
- Host: GitHub
- URL: https://github.com/phyks/dijkstra
- Owner: Phyks
- Created: 2014-11-30T15:26:52.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2015-01-08T15:27:04.000Z (almost 10 years ago)
- Last Synced: 2024-06-12T17:59:30.806Z (5 months ago)
- Language: C
- Size: 7.54 MB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
# Algorithme de Dijkstra #
Nous avons implémenté l'algorithme de Dijkstra utilisant les tas de
Fibonacci.## Compilation des sources ##
Il faut utiliser l'outils `make` pour compiler toutes les sources. Les
cibles disponibles sont :1. `dijkstra_fib`, un utilitaire C qui lit un graphe, fait tourner
l'algorithe à partir du point 0 dessus et renvoie le résultat en
utilisant les tas de Fibonacci ;
2. `dijkstra_queue`, un utilitaire C qui lit un graphe, fait tourner
l'algorithe à partir du point 0 dessus et renvoie le résultat en
utilisant une queue naïve ;
3. `pyfib` qui génère un wrapper Python3 pour l'algorithme avec les
tas ;
4. `pyqueue` qui génère un wrapper Python3 pour l'algorithme avec les
queues ;
5. `test_fib`, `test_queue` teste toutes les entrées du dossier tests/ et compare à
la sortie attendue dans le dossier tests_outputs/ ;## Utilisation des binaires ##
Les binaires `dijkstra_*` prennent en entrée un graphe (depuis un
fichier ou depuis `stdin`). Ils donnent en sortie les distances et les
prédecesseurs de tous les nœuds.## Utilisation des scripts python ##
Un script python appelé `path_find.py` qui prend en entrée une carte
OSM ainsi qu'une adresse de départ (par exemple : "45 rue d'Ulm,
Paris"). Il est de plus possible de spécifier un `dump_file` dans
lequel sont stockés quelques méta-données sur les transports publiques
les plus proches de l'adresse.