Je projette un algorithme pour trouver un chemin dans un réseau de transport public, mais je ne sais pas comment le rendre simple, je pense à cela depuis hier. Mon objectif est de trouver un chemin qui minimise les changements de bus, et un autre chemin qui ne dérange pas les changements de bus, mais ils doivent être courts dans le temps). Ce second algorithme est un algorithme de k-plus court chemin (probablement k = 3 ou 4), pour lequel je ne connais aucune implémentation efficace. Je voudrais implémenter les deux algorithmes en C# et l'appliquer à un vrai réseau de transport public. Un conseil? Excusez-moi pour mon très mauvais anglais, mais je suis d'Italie :)Algorithme de routage dans un réseau de transport public
Répondre
Un algorithme de pathfinding très commun est le A* search algorithm.
De nombreuses implémentations dans C# peuvent être trouvées, par exemple ici sur Codeguru ou ici sur msdn.
Vous pouvez trouver d'autres idées sur this stackoverflow thread. Peut-être que vous devriez utiliser cela et modifier les changements de bus ou quelque chose comme ça.
Vous pouvez utiliser l'algorithme de Dijkstra. Essayez ici comme un début.
http://www.codeproject.com/Articles/19919/Shortest-Path-Problem-Dijkstra-s-Algorithm
Je connaissais déjà l'algorithme de Dijkstra mais comment puis-je le modifier pour réduire les changements de bus? Il "facilement" trouve le plus court chemin, sans vérifier les changements de bus. – litiales
- 1. Comment concevoir une base de données d'horaires de transport public?
- 2. définissent le routage des objets de transport de données complexes
- 3. Firesheep - Réseau public sécurisé
- 4. Sécurité: transfert FTP sur un réseau public
- 5. Algorithme de routage différent de Dijkstra-concept
- 6. Fichiers sinatra dans le dossier public en cours de routage?
- 7. Comment savoir si un sous-réseau AWS VPC est un "sous-réseau public"?
- 8. Est-il sécuritaire d'utiliser wxTCPConnection dans un réseau public?
- 9. VB.net Réseau Code/algorithme de graphe
- 10. Algorithme de mappage des périphériques réseau
- 11. Entrées de sous-réseau dans la table de routage
- 12. Sécurité de transport dans WCF
- 13. Routage vers une page html statique dans/public
- 14. Marche, vélo et les directions de transport public avec le temps requis dans chaque mode, iPhone
- 15. erreur de niveau de transport
- 16. Algorithme de schéma de construction de réseau par snmp
- 17. AWS Connexion à l'instance sous-réseau public dans
- 18. Basé sur la géolocalisation, algorithme de routage de maillage sans fil: utile?
- 19. Communication entre la couche de transport et la couche réseau dans le noyau
- 20. vue de transport MapKit
- 21. Algorithme de propagation arrière du réseau neuronal: formation XOR
- 22. Comment puis-je créer un cluster dans le même réseau privé/public dans Softlayer?
- 23. Url de routage dans Elgg
- 24. Sécurité de transport WCF
- 25. Transport de modèles backbone.js?
- 26. Mise en réseau - Routage RIP Connexion WAN dans Packet Tracer
- 27. Sessions de transport à un sous-domaine
- 28. Remplacer le transport d'appel de référence de service Web bas niveau par un transport personnalisé
- 29. VB.NET ÉCHANGE DE TRANSPORT AGENT
- 30. Transport Client dans ES
Comme haut, je savais déjà un algorithme *, mais comment puis-je le modifier pour donner un poids aux changements de bus? – litiales
Il devrait être possible en définissant l'heuristique d'être plus élevé lors du changement de bus, qu'en pensez-vous? – Bgi
@litiales Définir chaque chemin avec deux segments: 1) longueur du chemin (distance ou temps), et 2) un chemin de connecteur qui représente la transition sur ce chemin où aucun transfert n'aurait un poids de 0, mais un transfert aurait un poids . Donc, le poids total du trajet serait la somme des deux. – Tergiver