Está en la página 1de 2

Búsqueda de costo uniforme

En ciencia de la computación, la búsqueda de costo uniforme (BCU) es un algoritmo de búsqueda no informada


utilizado para recorrer sobre grafos el camino de costo mínimo entre un nodo raíz y un nodo destino. La búsqueda
comienza por el nodo raíz y continúa visitando el siguiente nodo que tiene menor costo total desde la raíz. Los nodos son
visitados de esta manera hasta que el nodo destino es alcanzado.

Típicamente, el algoritmo implica la expansión de nodos mediante la adición, a una cola con prioridad, de todos los nodos
vecinos no expandidos que están conectados al último nodo analizado. En la cola, cada nodo se asocia con su costo total
desde la raíz, donde se les da mayor prioridad a los caminos de costo mínimo. El nodo en la cabeza de la cola es expandido,
adicionando sus nodos vecinos con el costo total desde la raíz hasta el nodo respectivo. La búsqueda de costo uniforme es
completa y óptima si el costo de cada paso excede algún límite eps positivo.1 El tiempo para el caso peor y la complejidad
espacial es O(b1 + C*/ε), donde C* es el costo de la solución óptima y b es el factor de ramificación. Cuando todos los costos
entre los nodos son iguales, esto se convierte en O(bd + 1).2

Relación con otros algoritmos


El algoritmo de Dijkstra, que es quizás más conocido, puede considerarse como una variante de Búsqueda de Costo
Uniforme, donde no hay un estado meta (goal) y el procesamiento continúa hasta que todos los nodos han sido eliminados
de la cola con prioridad, es decir, hasta que los caminos más cortos a todos los nodos (no sólo un nodo objetivo) se han
determinado. Al igual que en el algoritmo de Dijkstra, BCU garantiza que (si todos los pesos de las aristas son no
negativos) el camino más corto a un nodo particular, se ha encontrado una vez que el nodo se extrae de la cola con
prioridad.

La Búsqueda de Costo Uniforme es un caso particular del algoritmo de búsqueda A* si la heurística de este último es una
función constante (por tanto ya no sería una búqueda informada sino ciega). Si A* se utiliza con una heurística monótona,
entonces se puede convertir en una Búsqueda de Costo Uniforme restando de cada costo de arista a la disminución en el
valor heurístico a lo largo de esa arista. Búsqueda Primero a lo Ancho (BPA o BFS en inglés) es un caso especial de BCU
cuando los costos de las aristas son positivos e idénticos. BPA visita primero el nodo con la longitud del camino más corto
(número de nodos) desde el nodo raíz, en cambio, UCS primero visita el nodo con la ruta más corta en costo (suma de los
pesos de las aristas) desde el nodo raíz.

Búsqueda de Costo Uniforme es una variante del algoritmo Búsqueda Primero el Mejor.

Pseudocode de Búsqueda de Costo Uniforme


procedure UniformCostSearch(Graph, root, goal)
node := root, cost = 0
frontier := priority queue containing node only
explored := empty set
do
if frontier is empty
return failure
node := frontier.pop()
if node is goal
return solution
explored.add(node)
for each of node's neighbors n
if n is not in explored
if n is not in frontier
frontier.add(n)
else if n is in frontier with higher cost
replace existing node with n

Proceso de expansión mostrando el conjunto "explored" y la cola con prioridad "frontier":


root: A
goal: G

Paso “frontier” (nodos y sus costos) Ampliar* “explored”: conjunto de nodos


1 {(A,0)} A ∅

2 {(D,3),(B,5)} D {A}
3 {(B,5),(E,5),(F,5)} B {A,D}
4 {(E,5),(F,5),(C,6)} E {A,D,B}
5 {(F,5),(C,6)}** F {A,D,B,E}
6 {(C,6),(G,8)} C {A,D,B,E,F}
7 {(G,8)} G {A,D,B,E,F,C}
8 ∅

* nodo a expandir en el próximo paso.


* B no se añade a la frontera (frontier) porque se encuentra en el conjunto explorado (explored).
Camino encontrado: A-D-F-G.

Referencias
1. Plantilla:Russell Norvig 2003
2. Stuart Russell; Peter Norvig (2010). Artificial Intelligence: A Modern Approach (3 edición). Prentice Hall. ISBN 978-0-13-
604259-4.

Obtenido de «https://es.wikipedia.org/w/index.php?title=Búsqueda_de_costo_uniforme&oldid=106741375»

Esta página se editó por última vez el 5 abr 2018 a las 23:35.

El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; pueden aplicarse cláusulas
adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.

También podría gustarte