INSTITUTO TECNOLOGICO DE TEPIC

INTELIGENCIA ARTIFICIAL UNIDAD 4. BUSQUEDAS Y SATISFACCIÓN DE RESTRICCIONES

PROFESOR: ING. CHAVEZ ARCEGA MARCO ANTONIO

ALUMNO: JOSÉ LUIS RODRÍGUEZ GONZÁLEZ 09400543

20 / NOVIEMBRE / 2012

siendo no acotada la sucesión de valores g. cuando se expande el primer nodo meta. cuando se obtiene el camino más corto desde el vértice origen. Algoritmo: 1. seleccionar el nodo con el costo más bajo acumulado En el algoritmo se almacena cada nodo con su valor g y se insertan los nuevos nodos expandidos en una estructura dinámica (una cola con prioridad) en orden ascendente según su valor de g.Cola (Camino que solo contiene la raíz) 2. y óptima. Rechazar los nuevos caminos con ciclos.. Agregar los nuevos caminos y ordenar toda la cola (Por costo acumulado) } 3. por lo que si el nodo meta existe en el espacio de estados.Búsqueda de Costo Uniforme La idea del algoritmo consiste en ir explorando todos los caminos más cortos que parten del vértice origen y que llevan a todos los demás vértices. el algoritmo se detiene. enumerando todos los nodos del espacio de estados por costes (valores de g) crecientes. la búsqueda de coste uniforme es completa al ser los costes números enteros positivos. éste será el nodo meta de menor valor de g. será expandido alguna vez. . puesto que al expandir todos los nodos del espacio de estados por valores crecientes de g. En cada paso. Crear nuevos caminos.If Objetivo Alcanzado then éxito else falla.While ( Cola no Vacía AND Objetivo no alcanzado ) Do { Remover el primer camino de la cola.. a la estación destino objetivo de la búsqueda..

al no encontrarse informado sobre la estación “final”. al encontrarse éste desinformado sobre la estación destino. de comunicación no tan directa. realizará una evaluación de recorrido mínimo desde la estación origen a todos las estaciones contenidas en la Red. para estaciones origen y destino muy distanciadas entre sí y algo aisladas. . provocando que. el problema es que. lo cual provoca que no resulte eficiente. deteniéndose su ejecución al llegar a la estación destino seleccionada. tal como una búsqueda en amplitud hace. pues su uso implica de un gran esfuerzo computacional.El análisis de la búsqueda de coste uniforme se basa en que en el hecho de que la sucesión de costes (valores de g) nunca disminuye. y con un uso exhaustivo de las prestaciones del equipo (memoria RAM) sobre el cual se esté utilizando la aplicación. calcula rutas mínimas de recorrido desde la estación origen a todas sus adyacentes que nosotros consideramos candidatas de formar parte del camino mínimo a la estación destino. el uso del mismo resulte muy pesado. en ocasiones no permitiendo incluso la obtención de una solución. ya que. y por tanto no guiado hacia el destino. con tiempos de ejecución elevados.

k) mientras ( no vacio(P) ) x(k) = extraer(P) if esFactible(x. esta definirá una estructura deárbol cuyos nodos serán subconjuntos de S. devuelve dos o más conjuntos más pequeños . La recursión para cuando el conjunto candidato S es reducido a un solo elemento.  esSolución es la función que comprueba si se satisface el objetivo.…. Un procedimiento de ramificación y poda requiere dos herramientas. . Cualquier nodo cuyo nodo hijo es mayor que m puede ser descartado. Nótese que el mínimo de f(x) sobre S es min{ . cualquier elemento de S va a ser el mínimo de una función dentro de S. La técnica de Ramificación y poda se suele interpretar como un árbol de soluciones. … } donde cada es el mínimo de f(x) sin . que dado un conjunto fijo S de candidatos. Pseudocódigo Funcion RyP { P = Hijos(x. Nuestra meta será encontrar el valor mínimo de una función f(x) (un ejemplo puede ser el coste de manufacturación de un determinado producto) donde fijamos x rangos sobre un determinado conjunto S de posibles soluciones. o también cuando el nodo padre para el conjunto S coincide con el nodo hijo.  esFactible es la función que considera si la propuesta es válida. Este paso es llamado poda. donde cada rama nos lleva a una posible solución posterior a la actual. La primera es la de un procedimiento de expansión.  óptimo es el valor de la función a optimizar evaluado sobre la mejor solución encontrada hasta el momento. para «podar» esa rama del árbol y no continuar malgastando recursos y procesos en casos que se alejan de la solución óptima.k) < optimo si esSolucion(x) Almacenar(x) else RyP(x.Branch and Bound El método de diseño de algoritmos Ramificación y poda (también llamado Ramificación y Acotación) es una variante del Backtracking mejorado sustancialmente. y usualmente es implementado manteniendo una variable global m que graba el mínimo nodo padre visto entre todas las subregiones examinadas hasta entonces. La idea clave del algoritmo de ramificación y poda es: si la menor rama para algún árbol nodo(conjunto de candidatos) A es mayor que la rama padre para otro nodo B.k) y G(x. De cualquier forma. como su aplicación es recursiva. Branch and Bound) se aplica mayoritariamente para resolver cuestiones o problemas de optimización. La característica de esta técnica con respecto a otras anteriores (y a la que debe su nombre) es que el algoritmo se encarga de detectar en qué ramificación las soluciones dadas ya no están siendo óptimas. Este paso es llamado ramificación. .k+1) } Donde:  G(x) es la función de estimación del algoritmo. cuya unión cubre S. . entonces A debe ser descartada con seguridad de la búsqueda. El término (del inglés.  P es la pila de posibles soluciones.

Cola  Camino que sólo contiene la raíz. (Por f = costo + h) } 3. Rechazar los nuevos caminos con ciclos. Con la misma condición en los costos de arcos y el factor de ramificación: If para todo T: h(T) es una Subestimación del costo restante al nodo objetivo Then Costo Uniforme Extendido Estimado es óptimo End if Intuición: . 2. While ( cola no esté vacía AND el primer camino no alcance el objetivo ) do{ Remover el primer camino de la cola.NOTA: Usamos un menor que (<) para los problemas de minimización y un mayor que (>) Introducción de Subestimaciones para problemas de maximización Algoritmo: 1. Crear nuevos caminos (a todos los hijos). Agregar los nuevos caminos y ordenar la cola. else falla. If Objetivo alcanzado then éxito.

dist. Principio:  La mínima distancia de S a G via I = (min. costo costo_Q costo_P >= costo_Q Then borrar P . con costo costo_P Un camino Q conteninedo I. desde I a G) Más precisamente: Algoritmo: If La cola contiene: Un camino P que termina en I.Borrado de Camino Consiste en descartar caminos redundantes. desde S a I) + (min. dist.

Diagramas. que “Branch and Bound”. ya que pudo reducir 5 expansiones. (Ejemplo) Nota: Se puede observar que éste método es más eficaz. .