Búsqueda de costo uniforme En ciencia de la computación, la búsqueda de costo uniforme (BCU) es un algoritmo de búsqueda sobre grafos utilizado para hallar 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. 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 Típicamente, el algoritmo implica la expansión de nodos nodo se extrae de la cola con prioridad. mediante la adición, a una cola con prioridad, de todos los La Búsqueda de Costo Uniforme es un caso particular nodos vecinos no expandidos que están conectados al úl- del algoritmo de búsqueda A* si la heurística de este último nodo analizado. En la cola, cada nodo se asocia con timo es una función constante. Si A* se utiliza con una su costo total desde la raíz, donde se les da mayor priori- heurística monótona, entonces se puede convertir en una dad a los caminos de costo mínimo. El nodo en la cabeza Búsqueda de Costo Uniforme restando de cada costo de de la cola es expandido, adicionando sus nodos vecinos arista a la disminución en el valor heurístico a lo largo de con el costo total desde la raíz hasta el nodo respectivo. esa arista. Búsqueda Primero a lo Ancho (BPA o BFS en La búsqueda de costo uniforme es completa y óptima si inglés) es un caso especial de BCU cuando los costos de el costo de cada paso excede algún límite eps positivo.[1] las aristas son positivos e idénticos. BPA visita primero El tiempo para el caso peor y la complejidad espacial es el nodo con la longitud del camino más corto (número de O(b1 + C*/ε ), donde C* es el costo de la solución óptima y nodos) desde el nodo raíz, en cambio, UCS primero visita b es el factor de ramificación. Cuando todos los costos en- el nodo con la ruta más corta en costo (suma de los pesos tre los nodos son iguales, esto se convierte en O(bd + 1 ).[2] de las aristas) desde el nodo raíz. 1 Búsqueda de Costo Uniforme es una variante del algoritmo Búsqueda Primero el Mejor. Pseudocode 3 Referencias 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 [1] Plantilla:Russell Norvig 2003 [2] Stuart Russell; Peter Norvig (2010). Artificial Intelligence: A Modern Approach (3 edición). Prentice Hall. ISBN 9780-13-604259-4. Proceso de expansión mostrando el conjunto “explored” y la cola con prioridad “frontier": root: A goal: G * 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. 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 1 2 4 ORIGEN DEL TEXTO Y LAS IMÁGENES, COLABORADORES Y LICENCIAS 4 Origen del texto y las imágenes, colaboradores y licencias 4.1 Texto • Búsqueda de costo uniforme Fuente: https://es.wikipedia.org/wiki/B%C3%BAsqueda_de_costo_uniforme?oldid=93472824 Colaboradores: Alelapenya, Grillitus, Invadibot, Egis57 y Carlosbesadapadron 4.2 Imágenes 4.3 Licencia del contenido • Creative Commons Attribution-Share Alike 3.0