Je me demande comment je peux attribuer une valeur de coût maximum pour le problème du chemin le plus court. Dans mon problème, j'ai des risques associés aux nœuds. Donc je voudrais minimiser le risque, mais alors que je veux qu'il trouve une solution avec un nombre limité de nœuds (par exemple trouver le minimum de risque du nœud A au nœud B, tout en veillant à ce que la solution n'excède pas n nombre de nœuds) beaucoup.Comment restreindre l'algorithme du plus court chemin - dijkstra avec un coût maximum?
Répondre
Dijkstra est la meilleure première recherche, c'est-à-dire que nous devrions être sûrs, que la distance au meilleur nœud ne deviendra jamais meilleure. Cela fonctionne pour le minimum-Dijkstra avec des bords non négatifs. Dans le cas général, vous pouvez utiliser Ford-Bellman. Si vous ne voulez pas utiliser plus de n sommets, je peux vous suggérer une programmation dynamique dp [vertex] [used_vertex_count] avec des états de complexité O (| V | * n) et de mémoire et O (| E | * n) temps. Ou créez une matrice d'adjacence du graphe avec des zéros sur la diagonale principale et l'infini sur le bord absent et calc n est l'exposant. a_ {ij} sera min path de i à j n'utilisant pas plus de n vertexes.
Je pense qu'un algorithme impliquant des heuristiques serait le mieux adapté ici, l'heuristique étant une notion de la «proximité» du but à chaque étape et du nœud qui vous rapproche du but. Sans cela, je pense que nous aurions besoin d'exécuter un algorithme exponentiel dans le pire des cas (ce qui serait lorsque l'objectif ne peut être atteint en utilisant seulement n
nœuds.) Dans ce cas, nous examinerons tous les chemins qui utilisent n
nœuds avant de conclure que le problème ne peut pas être résolu). Voici un exemple d'utilisation d'un algorithme non heuristique: Exécuter Dijkstra de manière régulière en sélectionnant le nœud avec un risque min. En cours de route, gardez une trace du nombre de nœuds que vous avez visités. Si le nombre de nœuds dépasse n
, abandonnez votre itinéraire actuel et revenez en arrière sur un nœud précédent et utilisez le nœud présentant le risque le plus faible suivant. Naturellement, vous ne pouvez pas faire marche arrière d'un seul niveau au-dessus de n
, car si le but était au niveau suivant, il aurait été choisi. Par conséquent, vous revenez au niveau n-2
et continuez. Cela aussi sera exponentiel car il n'y a pas de véritable moyen de déterminer la non-existence sans vérifier tous les chemins.
Il se pourrait aussi qu'il me manque quelque chose.
Vous souhaitez utiliser l'algorithme de Prim car il trouve tout l'arbre couvrant minimal dans le graphe donné. Ensuite, il est facile de sélectionner le mst avec la contrainte désirée.
- 1. L'algorithme de plus court chemin de Dijkstra ne fonctionnera pas
- 2. Algorithme de plus court chemin de Dijkstra Lars Vogel
- 3. Recherche du chemin le plus court entre les nœuds en utilisant Dijkstra et min heap C++
- 4. Programme du plus court chemin
- 5. Comment trouver le chemin avec le coût maximum
- 6. plus court chemin avec plus de 2 points, mais fixer
- 7. Comment minimiser le coût total de l'arborescence du plus court chemin
- 8. Récursivité de l'algorithme du plus court chemin
- 9. Dijkstra: Recherche du chemin le plus court dans le graphe orienté
- 10. chemin le plus court à travers un labyrinthe
- 11. Boost dijkstra shortest_path - comment obtenir le chemin le plus court et pas seulement la distance?
- 12. Dijkstra plus court chemin avec VertexList = ListS dans le graphique boost
- 13. Performance de l'algorithme du plus court chemin de Bellman-Ford
- 14. Ajustement à un algorithme de chemin le plus court
- 15. Performance de l'algorithme du plus court chemin dans l'API JUNG
- 16. Chemin le plus court (nombre de nœuds le plus court) pour un graphique non pondéré
- 17. algorithme du plus court chemin pour les URL
- 18. chemin Dijkstra poids
- 19. Le plus court chemin avec un réservoir de carburant
- 20. Algorithme de chemin le plus court passant par certains fronts
- 21. Chemin partiel le plus court dans un graphique
- 22. Problèmes de portée possibles avec ma mise en œuvre de l'algorithme de plus court chemin de Dijkstra dans OpenMP?
- 23. Problème de chemin le plus court dijsktra avec des drapeaux d'arc
- 24. Algorithme de programmation dynamique chemin le plus court entre deux
- 25. Le plus court chemin pour inverser Propriétés
- 26. L'algorithme de Dijkstra avec un tableau 2d
- 27. Plus court chemin de validation POSTs?
- 28. Carte personnalisée Chemin le plus court
- 29. R, déterminer le plus court chemin
- 30. Chemin total le plus court parmi l'ensemble des Latitude/Longitudes