Quelle est la différence entre les uniformes coût de la recherche et de l'algorithme de Dijkstra?
Je me demandais quelle est la différence entre uniforme, le coût de la recherche et de l'algorithme de Dijkstra. Ils semblent être le même algorithme.
Vous devez vous connecter pour publier un commentaire.
http://en.wikipedia.org/wiki/Uniform-cost_search#Relationship_to_other_algorithms
De l'algorithme de Dijkstra recherches pour plus courts chemins de racine de tous les autres noeuds dans un graphe, alors que l'uniforme, le coût des recherches pour chemins les plus courts en termes de coûts pour un objectif nœud.
Également, coût uniforme a moins d'exigences en matière d'espace, alors que la priorité de la file d'attente est remplie "paresseusement" opposé à Dijkstra, qui ajoute tous les nœuds de la file d'attente au démarrage avec un coût infini.
Compilation d'autres réponses par NotAUser, dreaMone et Bruno Calza
De l'Algorithme de Dijkstra trouve le chemin le plus court à partir du nœud racine de tous les autres noeuds. coût uniforme des recherches pour les chemins les plus courts en termes de coût du nœud racine vers un but nœud. Coût uniforme de Recherche est l'Algorithme de Dijkstra, qui est axée sur la découverte d'un unique plus court chemin vers un seul point d'arrivée plutôt que le chemin le plus court pour chaque point.
UCS le fait en s'arrêtant dès que le point d'arrivée est trouvé. Pour Dijkstra, il n'est pas un objectif de l'état et le traitement se poursuit jusqu'à ce que tous les nœuds ont été retirés de la file d'attente de priorité, c'est à dire jusqu'à ce que les plus courts chemins d'accès à tous les nœuds (et pas seulement un objectif nœud) ont été déterminés.
UCS a moins d'exigences en matière d'espace, où la file d'attente de priorité est rempli progressivement plutôt que de Dijkstra, qui ajoute tous les nœuds de la file d'attente au démarrage avec un coût infini.
Comme un résultat des points ci-dessus, Dijkstra est plus de temps que d'UCS
UCS est généralement formulés sur les arbres alors que Dijkstra est utilisé sur général des graphiques
Djikstra est seulement applicable dans des graphiques explicites où l'ensemble graphique est donnée en entrée. UCS commence avec la source de vertex et progressivement traverse les pièces nécessaires de la graphique. Par conséquent, il est valable pour les deux graphiques explicites et implicites des graphes (où les états/noeuds).
Il y a un article qui en parle sur les similitudes et les différences sur les deux.
http://www.aaai.org/ocs/index.php/SOCS/SOCS11/paper/view/4017/4357