Inteligencia Artificial
Inteligencia Artificial
Inteligencia Artificial
colinas
• Ascensión de colinas (AdC) simple:
– Se busca una cualquier operación que
suponga una mejora respecto al estado
actual.
• Ascensión de colinas por máxima
pendiente (steepest-ascent hill
climbing, gradient search):
– Se selecciona el mejor movimiento (no el
primero de ellos) que suponga mejora
respecto al estado actual.
Ascensión de colinas: algoritmo
informal
1. Set L to be a list of the initial nodes in the problem,
sorted by their expected distance to the goal. Nodes
expected to be close to the goal should precede those
that are farther from it.
2. Let n be the first node on L. If L is empty, fail.
3. If n is a goal node, stop and return it and the path from
the initial node to n.
4. Otherwise, remove n from L. Sort n's children by their
expected distance to the goal, label each child with its
path from the initial node, and add the children to the
front of L. Return to step 2.
Ascensión de colinas: algoritmo
formal
Algoritmo Hill Climbing
Actual= Estado_inicial
fin = falso
Mientras ¬fin hacer
Hijos= generar_sucesores(Actual)
Hijos= ordenar_y_eliminar_peores(Hijos, Actual)
si ¬vacio?(hijos) entonces Actual= Escoger_mejor(Hijos)
si no fin=cierto
fMientras
fAlgoritmo
9
El problema de las 8-reinas
• Los algoritmos de BL típicamente usan
una formulación de estados completa.
– Cada estado tiene a ocho reinas sobre el
tablero, una por columna.
• La función sucesor devuelve todos los
estados posibles generados moviendo
una reina a otro cuadrado en la misma
columna.
– Cada estado tiene 8 x 7 = 56 sucesores.
10
El problema de las 8-reinas
• La función de costo heurística h es el
número de pares de reinas que se atacan
la una a la otra, directa o indirectamente.
– Problema de minimización
• El mínimo global de esta función es cero.
– Ocurre sólo en soluciones perfectas.
• Estado inicial: cualquiera.
11