Vous êtes sur la page 1sur 133

Inteligencia Artificial

Bsqueda Informada

Agenda


Parte 1



Introduccin a la Bsqueda
Informada o Heurstica
Best-First Search





Parte 2


Proceso de Bsqueda




Bsqueda Golosa (Greedy)


Algoritmo A*
Algoritmo IDA* (Iterative
Deepning A*)
Algoritmo SMA*







Heurstica y su aplicacin
Funcin de evaluacin
Admisibilidad
Consistencia
Dominancia
Calidad
Estrategias de Definicin de
Heursticas
Anlisis de Performance

Algoritmos de Bsqueda Local





Trepada de Colinas (Hill


Climbing)
Simulated Annealing (Recocido
Simulado)

Bsqueda Heurstica - Informada




Estrategias de Bsqueda Exhaustiva (Ciega)




encuentran soluciones para problemas por la generacin sistemtica


de nuevos estados, que son comparados con el objetivo;

son ineficientes en la mayora de los casos:

son capaces de calcular slo el costo del camino del nodo actual al nodo
inicial para decidir cual es el prximo nodo de la frontera a ser expandido.

esta medida no gua eficientemente en la direccin del objetivo.

Estos mtodos deben ser exhaustivos porque son mtodos generales,


esto es, son independientes del problema.

Por esto se llaman de Bsqueda Ciega, o desinformados o dbiles.

Como encontrar un barco perdido?





no podemos bscar en el ocano entero...


observamos las corrientes martimas, o viento, etc...

Bsqueda Heurstica - Informada




Para obtener resultados prcticos se


propone
considerar
una
estructura
particular del espacio de bsqueda para
una clase particular de problemas, esto es,
se propone utilizar caractersticas propias
del problema particular para ayudar en el
proceso de bsqueda.

Esto es llamado Bsqueda Heurstica o


Informada.

Bsqueda Heurstica Informada




Estrategias de Bsqueda Heurstica





utilizan conocimiento especfico del problema en la eleccin del


prximo nodo a ser expandido
barco perdido


corrientes martimas, viento, etc...

Introducen una mtrica que permite al agente de


bsqueda estimar la distancia desde el estado actual
hasta un objetivo.
La mtrica puede expresar distancia, costo o una
medida abstracta.

La utilizacin de esta mtrica permitir escoger el


prximo nodo de la frontera a ser expandido.

La funcin que calcula este tipo de mtricas se


denomina funcin heurstica

Heurstica


Una heurstica es una tcnica que permite


mejorar la eficiencia de la bsqueda.

La palabra Heurstica
viene del griego
Heuriskein que significa Descubrir y es
tambin el origen de Eureka que proviene de la
expresin
heurika que es famosa por
Arqumedes.

Heurstica


Una heurstica ser entonces una estimacin


adecuada del costo o longitud del camino (en el
espacio de bsqueda) desde un estado hasta
un objetivo.

Diremos que subestima, si su estimacin de la


distancia hasta el objetivo es menor o igual a la
distancia real.

Es siempre posible calcular una funcin


heurstica, pero es necesario mantener un
equilibrio entre eficiencia en la bsqueda y el
costo computacional de calcular la heurstica.

Ejemplo
Distancia

2 4 8
7 3 5

2 3 4
1
5

1 6

8 7 6
Estado Final

Estado Actual

h1

2 4 8
7 3 5
1 6

)=

Estimando la distancia

Ejemplo
Distancia

2 4 8
7 3 5

2 3 4
1
5

1 6

8 7 6
Estado Final

Estado Actual

h1

2 4 8
7 3 5
1 6

)=

La cantidad de piezas
fuera de lugar

=7

Ejemplo
2 4 8
7 3 5
1 6

h1

2 4 8
7 3 5
1 6

) =7

Estado 1

2 3 4
1
5
8 7 6

2 4 8
7 3 5
1
6

Estado Final

Estado 2

h1

2 4 8
7 3 5
1 6

) =6

Ejemplo
Distancia

2 4 8
7 3 5

2 3 4
1
5

1 6

8 7 6
Estado Final

Estado Actual

h2

2 4 8
7 3 5
1 6

)=

?
Otra heurstica?

Ejemplo
Distancia

2 4 8
7 3 5

2 3 4
1
5

1 6

8 7 6
Estado Final

Estado Actual

h2

2 4 8
7 3 5
1 6

)=

Nmero de movimentos
necesarios para colocar cada
pieza en el su lugar

= 10

Ejemplo
2 4 8
7 3 5
1 6

h2

248
735
16

) = 10

Estado 1

2 3 4
1
5
8 7 6

2 4 8
7 3 5
1
6

Estado Final

Estado 2

h2

248
735
1 6

) =9

Con que criterios evaluamos:


En la semana anterior vimos estos criterios:
 Completitud:


Complejidad de tiempo:


Demora mucho tiempo en encontrar una solucin para un


dado problema;

Complejidad de espacio:


Ser que todas las bsquedas encontrarn una solucin,


en caso de existir;

Consumir mucha memoria para efectuar una bsqueda;

ptima:


Encontrar la mejor solucin cuando esta exista.

Notacin


Dado un nodo n
g(n) = costo desde el nodo inicial hasta n.
 h(n) = funcin heurstica aplicada al nodo n.
Esto es, el costo estimado desde n hasta una
solucin.
 h*(n) = costo real de un camino ptimo desde
n hasta una solucin.
 f(n) = g(n) + h(n) costo estimado de una
solucin que pasa por el nodo n.


Bsqueda por escoger primero


la Mejor (Best-First Search)


Bsqueda genrica donde el nodo de


menor costo aparente en la frontera del
espacio de estados es expandido primero.

Dos enfoques bsicos:


1. Bsqueda Golosa (Greedy search)
2. Algoritmo A*

Bsqueda Golosa



Semejante a bsqueda en profundidad con


backtracking.
Su objetivo es:



Minimizar el costo estimado para alcanzar un nodo.


Expandir el nodo cuyo estado es previsto como el
ms cercano al nodo objetivo, con base en la
estimacin hecha por la funcin heurstica h.

Tiene que existir un conocimiento previo de


esas funciones.

h(n) = Costo estimado del camino ms barato


desde el estado correspondiente al nodo n hasta
un estado objetivo (final).

Bsqueda Golosa


Algoritmo:
funcin Bsqueda-Golosa (problema, h)
retorna una solucin o falla
Bsqueda-Mejor-Escogida (problema, h)

Bsqueda Golosa


Debemos siempre escoger una funcin heurstica que


sea admisible, esto es, que no sobreestime el costo real
de la solucin.

Distancia directa (hSLD) es admisible porque el camino


ms corto entre dos puntos es siempre una lnea recta.

h(n) debe ser cero cuando el nodo n tenga asociado un


estado correspondiente al estado final (Objetivo), ver en
el ejemplo.

Intenta siempre ser rpido en la su bsqueda.

Un ejemplo de Bsqueda Golosa:




Veremos como esto funciona en la bsqueda de rutas


en Madeira, usando a distancia heurstica straight-line
(Lnea recta), que vamos llamar de hSLD.

Si el objetivo es ir a Cancela, entonces tenemos que


saber cuales son las distancias straight-line hasta a la
Cancela.

Por ejemplo, hSLD (Ponta de Sol) = 366.


Veamos el progreso de la bsqueda golosa best-first
usando hSLD para a bsqueda de la Ponta de Sol hasta
Cancela.

Madeira con distancias en lnea recta (km)

Partida  Ponta de Sol

La distancia en lnea recta hasta el nodo objetivo (Cancela) es de 366 km

Ponta
de Sol
366

Madeira con distancias en lnea recta (km)

En este caso el camino ms cercano ser

Madeira con distancias en lnea recta (km)

Aqu ser

Madeira con distancias en lnea recta (km)

Llegamos al nodo objetivo

Propiedades/Caractersticas de la bsqueda
Golosa:


No es Completa


Nodos repetidos pueden originar caminos infinitos (loop)


Ej. Canial  Machico  Canial 

Partida  Machico

Propiedades/Caractersticas de la bsqueda
Golosa:


No es ptima: escoge el camino que es ms


econmico a primera vista.
 Partiendo de Madalena del Mar
 Llegando a Monte

Cual el camino a
escoger?

Propiedades/Caractersticas de la bsqueda
Golosa:



Costos de bsqueda mnimos.


Complejidad Temporal : O(bn) (b es el factor de
ramificacin, y n el nivel de la solucin).



Porque?
Puede ocurrir en el peor caso, que todos los nodos
tengan que de ser expandidos o visitados.

Complejidad Espacial : O(bn) (b es el factor de


ramificacin, y n el nivel de la solucin).



Porque?
Mantener todos los nodos en memoria.

Miremos estos mtodos:




Costo Uniforme:




Bsqueda Golosa




Ordena a partir de g
Completo y ptimo
Caro

Ordena a partir de h
No es completo ni es ptimo
Pero es mejor en trminos computacionales

Ser posible combinarlos?

Algoritmo A*
En la bsqueda A* la evaluacin de cada
nodo es una combinacin:
f(n) = g(n) + h(n)
 g(n) Costo del camino desde el nodo
inicial hasta n.
 h(n) Estima el costo desde n hasta al
nodo objetivo.


Algoritmo A*


f(n) costo estimado de una solucin que


pasa por n.

Objetivo:
Minimizar f(n)  Solucin menor costo total


Nodo de menor valor f(n) es expandido.

Algoritmo A*

Algoritmo A*
A
366=0+366

393 =140 +253


447=118+129
A

449=75+374

R
413=220+193

415=239+176 671 =291 +380

646=280+366

591=338+253

450=450+0

417 =317 +100


526 =366 +160

553=300+253

- Objetivo
418 =418 +0

615=455+160

607=414+193

- Solucin

f(n) = g(n) + h(n)  funcin de evaluacin en cada nodo

Algoritmo A*: Funcin Admisible




Es posible probar que una bsqueda A*


es completa y ptima, con una restriccin:


escoger una funcin heurstica ADMISIBLE

Nunca sobrestima el costo real del camino


que pasa por n, o sea:

h(n) h*(n)

Algoritmo A*
Se puede demostrar lo siguiente:
 Sean h1 y h2 , dos heursticas admisibles
tales que para todo nodo n:


h1(n) h2(n) h*(n)


Entonces el algoritmo A* utilizando h2 expandir
menos nodos que utilizando h1.

Algoritmo A*


Complejidad de tiempo:
 Exponencial en la profundidad de la solucin,
sin embargo buenas funciones heursticas
disminuyen significativamente ese coste.
Costo de espacio: O(bd)



Guarda todos los nodos expandidos en la memoria.


Posibilita el backtracking.

Eficiencia ptima


Entre las varias soluciones posibles encuentra


siempre primero la mejor.

Memoria limitada (Memory-bounded)

Los recursos computacionales no son


infinitos.
 Necesidad
de hacer una bsqueda
parametrizando el lmite de la memoria
disponible, manteniendo la completitud y
la optimalidad.


Algoritmo IDA*


Modificaciones al Algoritmo A* :






Lmite para la profundidad dado por el valor de f.


El lmite es incrementado para el menor valor de la
iteracin (repeticin) anterior.

El corte es hecho por el menor valor de f(n) de


la iteracin actual, que excede el lmite.
Expande todos los nodos dentro de un
determinado contorno, o lmite de f(n).

IDA*


Expande todos los


nodos dentro de un
contorno, el lmite
de f(n).

Algoritmo IDA*


Completo: si el camino ms corto, cabe en la


memoria disponible.

ptimo: si el camino ptimo ms corto, cabe en


la memoria disponible.

Complejidad de Espacio: O(b * d)

Complejidad de Tiempo: O(b2d)

SMA*
Es una versin (simplificada) de A*.
 Hace uso de toda la memoria disponible.
 Estrategia:


Ir expandiendo el mejor nodo-hoja hasta


colmar la memoria.
 Para expandir el prximo nodo, descarta el
nodo con peor valor de f.
 Ese valor es guardado en el antecesor del
nodo descartado.


SMA*
Lmite de memoria: 8 nodos
A
366=0+366

393=140+253

447 =118 +129


A

R
413=220+193

415=239+176

646 =280+366

671=291 +380

- Nodo descartado
- Objetivo
- Soluin

f(n) = g(n) + h(n)  funcin de evaluacin en cada nodo


447

Peor valor de f para el nodo descendiente descartado


-

Z
449=75+374

SMA*
Lmite de memoria: 8 nodos
A
366=0+366

671
T

393=140+253

447 =118 +129


A

R
413=220+193

646 =280+366

415=239+176

671=291 +380

Nodo
descartado

Objetivo

526=366+160

Soluin

f(n) = g(n) + h(n)  funcin de evaluacin en cada nodo


447

-Peor valor de f para el nodo descendiente descartado

Z
449=75+374

SMA*

SMA*

SMA*
SMA* es completo si la menor profundidad
de la solucin es menor que el espacio en
memoria.
 SMA* es ptimo si consigue alcanzar la
solucin ptima, dentro de la memoria,
sino retorna la mejor posible.
 Complejidad de Espacio / Tiempo :
Exponencial


FIN PARTE 1

Inteligencia Artificial

Bsqueda Informada

Agenda


Parte 1



Introduccin a la Bsqueda
Informada o Heurstica
Best-First Search





Parte 2


Proceso de Bsqueda




Bsqueda Golosa (Greedy)


Algoritmo A*
Algoritmo IDA* (Iterative
Deepning A*)
Algoritmo SMA*







Heurstica y su aplicacin
Funcin de evaluacin
Admisibilidad
Consistencia
Dominancia
Calidad
Estrategias de Definicin de
Heursticas
Anlisis de Performance

Algoritmos de Bsqueda Local





Trepada de Colinas (Hill


Climbing)
Simulated Annealing (Recocido
Simulado)

Heurstica y su Aplicacin


La heurstica es utilizada:
Como tcnica de bsqueda para la obtencin
de metas en problemas donde el algortmico
bsico generan explosin combinatoria.
 Como un mtodo aproximado de resolucin de
problemas utilizando funciones de evaluacin
de tipo heurstico.
 Como un mtodo de poda (corte) para
estrategias de programas de juegos.


Heurstica y su Aplicacin


En una bsqueda, podemos aplicar dos tipos de


heurstica, sobre la decisin de cual nodo ser
expandido y la decisin sobre cuales nodos
deben ser descartados.
En una bsqueda podemos definir dos
situaciones:
 El universo es totalmente conocido, por lo que
la heurstica se realizar a travs de la
asignacin de nmeros.
 El universo no es totalmente conocido, en cuyo
caso la heurstica se aplicar a travs de la
aplicacin de reglas.

Heurstica y su Aplicacin


Las funciones heursticas son especficas para


cada problema. Estas funciones pueden ser poco
certeras o pueden encontrar la mejor respuesta,
en tanto su utilizacin permite liberarnos del uso
de anlisis combinatorio.
Por otro lado, la implementacin de una funcin
heurstica es difcil, ya que es difcil medir con
precisin la distancia a una determinada solucin
y, ms an, es difcil medir sus efectos en el
proceso de bsqueda.

Caractersticas de las Heursticas


Admisibilidad
 Consistencia
 Dominancia
 Calidad
 Anlisis de Performance


Admisibilidad


Una buena funcin heurstica debe ser


admisible, esto es, nunca sobreestimar el costo
real de la solucin, en el ejemplo anterior la
distancia es admisible pus el camino ms corto
entre dos puntos es siempre una lnea recta.

En la eleccin de una funcin h(n), que sea


admisible, es siempre mejor utilizar una funcin
heurstica con valores altos.

Consistencia


La propiedad de consistencia puede ser definida


como: una heurstica h(n) es consistente si, para
cada nodo n y para cada sucesor n de n,
generado por cualquier accin a, el costo
estimado de alcanzar el objetivo a partir de n es
inferior al costo de cualquier paso para llegar a
n ms el costo estimado de alcanzar el objetivo
a partir de n.
h(n) c(n,n) + h(n)

Dominancia






En algunos problemas es posible definir ms de una


funcin heurstica, por lo que debemos utilizar la funcin
que domine a todas las otras funciones posibles.
Una funcin hi domina otra funcin hk se hi(n)hk(n) para
cualquier n en el espacio de estados.
Esta propiedad se refleja directamente en el nmero de
nodos expandidos con cada heurstica.
En caso que existan muchas funciones heursticas para
en mismo problema, y ninguna domine a las otras,
podemos definir la funcin h para cada nodo, de la
siguiente forma:

h(n) = max(h1(n), h2(n),, hm(n))

Calidad


La calidad de una funcin heurstica es medida a travs de effective


branch factor (b*), que describe cuanto un proceso de bsqueda est
concentrado en alcanzar su objetivo.
Es calculado a travs de la frmula:
N = 1 + b* + (b*)2 + + (b*)d
Una buena funcin h tendr un valor de b* muy prximo de 1

Calidad: Aplicada al 8-puzzle


Distancia

2 4 8
7 3 5

2 3 4
1
5

1 6

8 7 6
Estado Final

Estado Actual

h1

2 4 8
7 3 5
1 6

)=

La cantidad de piezas
fuera de lugar

=7

Calidad: Aplicada 8-puzzle


Distancia

2 4 8
7 3 5
1 6

2 3 4
1
5
8 7 6

Estado Actual

Estado Final

h2

2 4 8
7 3 5
1 6

)=

Nmero de movimentos
necesrios para colocar cada
pieza en el seu lugar

= 10

Calidad


La funcin h1 representa un limite inferior de h(n), pero


no suministra una estimacin de la dificultad, en
trminos de nmeros de pasos para alcanzar la
configuracin objetivo.
La tabla que compara la calidad de las funciones
definidas:

Estrategias de Definicin


Existen tres estrategias genricas para


definir heursticas.
1.

2.
3.

Relajacin de las restricciones del


problema a travs de la elaboracin de
modelos relajados.
Uso de informacin estadstica.
Identificar los atributos ms relevantes
del problema.

Relajacin de las restricciones del


problema


Consiste en la disminucin de la complejidad de las


condiciones que implican la bsqueda y excluir cualquier
consideracin que pueda ser considerada irrelevante
para la resolucin del problema.
Cuanto menos relajado fuera un problema, mejor ser la
funcin heurstica correspondiente, siendo aumentada la
eficiencia de la bsqueda al usar la funcin h.
Puesto que las soluciones en un modelo relajado nunca
son superiores, en trminos de costo al problema
original, las funciones heursticas determinadas a travs
de estos modelos son admisibles y consistentes.

Relajacin de las restricciones del


problema
Ejercicio de 5
 En el 8-puzzle
Qu fue relajado en h1?
 Qu fue relajado en h2?


Relaxacin de las restriciones del


problema


En el 8puzzle el problema puede ser relajado,


permitiendo mover directamente la pieza a su ubicacin
correcta. En este caso, el nmero de pasos necesarios
para alcanzar el objetivo es simplemente la suma del
nmero de piezas fuera del lugar (h1(n)).

Un modelo menos relajado sera, permitir que las piezas


pudiesen ser movidas a un cuadrado adyacente. El
nmero de pasos necesarios para alcanzar su ubicacin
correcta sera la suma de las distancias que cada pieza
est de su destino (h2(n)).

Uso de informacin estadstica




Consiste en la mejora de las funciones heursticas a travs del uso


de datos estadsticos recogidos a travs de los resultados obtenidos
en otra situacin.
Por ejemplo, en el caso del 8puzzle, se puede comenzar por
ejecutar una bsqueda usando una base de 100 configuraciones
distintas, despus de efectuada la computacin de los resultados si
en 90% de los casos la funcin h retorna el mismo valor entonces a
la h(n) ser atribuido el respectivo valor.
Esta estrategia posee la ventaja de expandir menos nodos, aunque
por otro lado, elimina a admisibilidad, toda vez que en el restante
10% de los casos del problema referido, sea posible que la funcin
sobrestime el costo de la solucin.

Identificar los atributos


ms relevantes del problema





Consiste en aprender en base a la experiencia. En el ejemplo


anterior, este abordaje consiste en resolver con decenas de
configuraciones del puzzle.
Cada ejemplo resuelto esta constituido por una secuencia de
estado del camino a la solucin y el costo actual a la solucin a ser
alcanzada a partir de ese cada punto.
A partir de estos ejemplos, puede ser utilizado un algoritmo de
aprendizaje inductivo para construir una funcin h(n).
Los mtodos de aprendizaje inductivos son ms eficaces cuando
son alimentados con ejemplos con caractersticas de estados que
son relevantes para a su validacin.
La caracterstica nmero de piezas mal colocadas en el puzzle
(x1(n)) puede resultar til para prever la distancia actual de un
estado a partir de un objetivo.

Identificar los atributos


ms relevantes del problema


A partir de las estadsticas relativas al costo de las soluciones


obtenidas en la utilizacin de 100 configuraciones del puzzle. Se
puede determinar, por ejemplo, que cuando x1(n) = 5, el costo de
solucin medio esta cerca de 14.
Una segunda caracterstica x2(n) puede ser el nmero de pares de
piezas adyacentes que tambin son adyacentes en el estado
objetivo.
Una forma de generar h(n), es utilizar una combinacin linear de
forma a combinar x1(n) y x2(n) , a travs de la siguiente frmula:

h(n) = c1x1(n) + c2x2(n)


las constantes c1 y c2 son definidas como valores positivos o
negativos acordes a la necesidad de adecuar los datos actuales en
relacin a los costos de la solucin.

Anlisis de Performance


La performance en la resolucin de un problema basado en el


paradigma de la bsqueda de estados puede ser aumentado en
trminos de tiempo y espacio recurriendo a dos abordajes:



Hacer ms precisa la funcin heurstica.


Modificar el espacio de estados de modo de simplificar el
proceso.

Los algoritmos que modifican el espacio de estados durante el


proceso de bsqueda recurren esencialmente al corte de caminos
en el espacio o seleccionan caminos analizando los prximos nodos
a ser expandidos.
Estos algoritmos realizan retrocesos inteligentes y algunos de ellos
se basan en la seleccin de operadores que a la larga tienen mayor
probabilidad de generar estados con buenos valores heursticos.

Algoritmos de Bsqueda Local




En muchos problemas de Optimizacin, el


camino para la solucin es irrelevante;

El Estado Solucin es la propia Solucin

Queremos: tratar de encontrar el Mejor Estado


de acuerdo con una Funcin Objetivo.

Algoritmos de Bsqueda Local





Espacio
de
Estados
=
conjunto
de
configuraciones completas;
Encontrar configuraciones que respeten las
restricciones.
Ej.: 8-reinas
En estos casos, podemos usar Algoritmos de
Bsqueda Local.

Algoritmos de Bsqueda Local




Utilizan un nico estado, el estado actual, y


buscan mejorarlo.


Los caminos
guardados.

seguidos

por

el

Algoritmo

son

Dos Ventajas:



Usan muy poca memoria normalmente una


cantidad constante.
Consiguen encontrar buenas soluciones en espacios
de estados infinitos (continuos) para los cuales los
Algoritmos Sistemticos son inadecuados.

Ejemplo: n-reinas



Colocando n reinas en un tablero n n, tal que no haya


dos reinas en una misma lnea, columna o diagonal.
Veamos para el caso en que n=4

Trepada de Colinas (Hill


Climbing)


Como subir al Pico Aconcagua en un da con niebla


intensa y sufriendo de amnesia?


Un ciclo en que el movimiento es hecho


continuamente en la direccin que corresponde a un
aumento de altitud.
El ciclo termina cuando alcanzamos un pico, o sea,
una localizacin tal que ninguno de los puntos
vecinos posee mayor altitud.
No mira ms all de los vecinos inmediatos al estado
(localizacin) actual.

Trepada de Colinas

Mximo Global

Mximo
Local

Trepada de Colinas:
Circunstancias Indeseables


Existen 3 circunstancias indeseables en las cuales el


Algoritmo de Hill Climbing puede quedar preso :




Mximos Locales
Planicies
Laderas y Riscos

Mximos locales


El algoritmo para en el mximo local.




Puede slo moverse con tasa creciente de variacin.




Restriccin del algoritmo

Ej.: juego 8-puzzle: mover una pieza fuera de la su


posicin correcta para dar paso a otra pieza que est
fuera del lugar tiene tasa de variacin negativa!!!

Planicies


Una regin del espacio de estados donde a funcin da el mismo resultado.




Todos os movimientos locales son iguales (tasa de variacin cero).




El algoritmo para despus de algunas tentativas.




f(n) = f (hijos(n))
Restriccin del algoritmo

Ex.: juego 8-puzzle: ningn movimiento posible va a influenciar en el


valor de f, pues ningn nmero va a llegar a su local objetivo.

Laderas y Riscos


Las laderas de algunos riscos tienen pendientes muy


pronunciadas, por lo cual es fcil alcanzar su cima, pero
puede suceder que la pendiente de tal cima se aproxime
muy gradualmente al pico.


Los movimientos posibles al pico tienen tasa de variacin cero o


negativa.


Restriccin del problema y del algoritmo

Ej.: rutas: cuando es necesario permutar entre dos puntos y el


camino resultante no est conectado.

Algoritmo Trepada de Colinas:


Problema de las 8 reinas
Formulacin de Estado - Completo


Estados: configuraciones de n reinas (0 <= n <= 8), una


por columna, sin que existan pares de reinas que se
ataquen.

Funcin Sucesor: Retorna todos los posibles estados


generados por el movimiento de una nica reina para
otra posicin en la misma columna (8 x 7 = 56
sucesores).

Algoritmo Trepada de Colinas :


Problema de las 8 reinas


Funcin Heurstica de Costo






h = nmero de pares de reinas que se estn


atacando mutuamente.
Mnimo Global  (h) = 0.
Si existe ms del que un sucesor, escoja el mejor
sucesor aleatoriamente de entre el conjunto de
mejores sucesores.

Es tambin denominada Bsqueda Local Golosa porque no mira ms all de los estados sucesores
inmediatos.

Problema 8 reinas


Nombrando a cada reina a, b, c, d, e, f,


g, h, a partir de la columna ms a la
izquierda
Posibles ataques:
 Diagonal Derecha:
 (a, b), (a, c), (b, c), (d, e), (d, f),
 (d, g), (e, f), (e, g), (f, g)
 Diagonal Izquierda:
 (b, d), (c, e), (g, h)
 Ataques Horizontales:
 (a, e), (b, f), (b, h), (f, h), (c, g)
Nmero de Ataques por cada reina:
 a 3, b 5, c 4, d 4, e 5, f 5,

g 5, h 3.

Problema 8 reinas

En este caso tenemos un mximo local con h = 1

Trepada de Colinas



En los casos presentados, el algoritmo llega a un


punto de donde no tiene ms progreso.
Solucin: reinicio aleatorio (random restart)


Cada bsqueda es ejecutada





El algoritmo realiza una serie de bsquedas a partir de


estados iniciales generados aleatoriamente.
Hasta que un nmero mximo estipulado de iteraciones sea
alcanzado, o
Hasta que los resultados encontrados no presenten mejora
significativa.

El algoritmo escoge el mejor resultado obtenido con


as diferentes bsquedas.


Objetivo!!!

Trepada de Colinas : anlise




El algoritmo es completo?


SI, para problemas de optimizacin




NO, para problemas donde los nodos no son estados completos





Toda vez que cada nodo tratado por el algoritmo sea siempre un
estado completo (una solucin).
Ex.: juego del 8-puzzle
Semejante a bsqueda en profundidad

El algoritmo es ptimo?


TALVEZ, para problemas de optimizacin




Cuando iteraciones (repeticiones) suficientes fueron permitidas...

NO, para problemas donde los nodos no son estados completos

Trepada de Colinas: anlisis




El xito de este mtodo depende mucho de la forma de


la superficie del espacio de estados:



Si hay pocos mximos locales, el reinicio aleatorio


encuentra una buena solucin rpidamente
Caso contrario, el costo de tiempo es exponencial.

Recocido Simulado


Este algoritmo es semejante a Trepada de Colinas, pero


se escapa de mximos locales.







Cuando la bsqueda queda presa en un mximo local, el


algoritmo no reinicia a bsqueda aleatoriamente;
El retrocede para escapar de ese mximo local;
Esos retrocesos son llamados de pasos indirectos;

A pesar de aumentar el tiempo de bsqueda, esta


estrategia consigue escapar de los mximos locales.
Analoga con cocido de vidrios o metales:


Proceso de enfriar un lquido gradualmente hasta solidificar;

Recocido Simulado


El algoritmo utiliza un mapeo de enfriamento de


instantes de tiempo (t) en temperaturas (T).

En las iteraciones iniciales, no escoge necesariamente


el mejor paso, y sino un movimiento aleatorio:



Si la situacin mejorar, ese movimiento ser siempre escogido


posteriormente;
Caso contrario, asocia a ese movimiento una probabilidad de
eleccin menor que 1.

Esa probabilidad depende de dos parmetros, y decrece


exponencialmente con el agravamiento causado por el
movimiento, e-E/T, donde:
E = Valor[prximo-nodo] - Valor[nodo-actual]
T = Temperatura

Recocida Simulado


Con el tiempo (disminucin de la temperatura), este algoritmo pasa


a funcionar como Trepada de Colinas .

El algoritmo es ptimo y completo si el mapeo de enfriamiento tiene


muchas entradas con variaciones suaves.


Esto es, si el mapeo disminuye T suficientemente despacio en el


tiempo, el algoritmo encontrar un mximo global ptimo.

Simulated Annealing


Fundamento terico.


Variantes de SA.





Aplicacin (Dial-A-Ride)
TA (Threshold accepting)
GDA (Great deluge algorithm)
RRT (Record-to-Record Travel)
Aplicacion. (TSP)

Concluciones.

Fundamento Terico


Definir vecindad.

Estrategia de exploracin en la
vecindad.

Estrategia de enfriado.

Condicin de parada.

Fundamento Terico


Definir vecindad: Una estructura de


vecindad es una funcin :2, el cual
define para cada S, un conjunto (S)
de soluciones llamadas vecinas de S.
El conjunto (S) se llama vecindad de S
y cada elemento S (S) es una solucin
vecina de S.

Fundamento Terico


Estrategia de exploracin en la vecindad.


Para cierto t
Seleccionar aleatoriamente una sol. j en vecindad(i).
Sea = f(j) f(i)
Si > 0 entonces i = j
Sino generar aleatoriamente q U(0,1)
Si qgenerar
< exp(/t)
entoncesqi= U(0,1)
j
Sino
aleatoriamente
Si q < exp(/t) entonces i = j

Fundamento Terico
P = exp(x/t)

Fundamento Terico
Estrategia de enfriado :
Se elije una temperatura inicial (To).
Funcin de enfriamiento g(t)
(actualizacin: de t)
Funcin de equilibrio.

Fundamento Terico


Condiciones de parada.
Temperatura mnima del sistema.
 Cantidad de iteraciones.
 No se obtiene una solucin mejor despus de
varias iteraciones.


Fundamento Terico
Repetir
Repetir (para cierto t)
Selecciona aleatoriamente una sol. j en vecindad(i).
Sea = f(j) f(i)
Si > 0 entonces i = j
Sino generar aleatoriamente q U(0,1)
Si q < exp(/t) entonces i = j
Hasta llegar a equilibrio.
Actualizo la temperatura (t = g(t)).
Hasta condicin de parada.

Simulated Annealing

Fundamento terico.
Aplicacin (Dial-A-Ride)

Variantes de SA.

TA (Threshold accepting)
GDA (Great deluge algorithm)
RRT (Record-to-Record Travel)
Aplicacion. (TSP)

Concluciones.

Aplicacin SA
Dial-A-Ride


Definicin del probema DaR.





Conjunto de nodos r R con distancias dij entre


los nodos i,j = 1,...,r
Conjunto de clientes n N tal para cada cliente k
(k=1,...,n) definimos:




El nodo ik pick-up y 1k el tiempo mas temprano de


pick-up.
El nodo jk de entrega y 2k el tiempo mas tardo de
entrega.
Opcionalmente k numero de pasajeros.

Flota de servicio M de m vehculos con capacidad


qL y nodo de deposito iL (L= 1,...,m).

Aplicacin SA
Dial-A-Ride


Funcin objetivo:


F(a maximizar) = calidad de servicio


medido por el promedio de la calidad de
servicio aceptado por los clientes.

Que es la calidad de servicio:




Una medida razonable de calidad de


servicio para el cliente k es la relacin
entre la suma del tiempo de espera y viaje
entre el tiempo de viaje terico desde el
nodo i hasta el j.

Aplicacin SA
Dial-A-Ride
Ejemplo:
 Cliente K solicita pedido a las 8hs (1k
=8)
 El vehculo m recoge la carga a las
13hs (ik=13) y la deja a las 16hs
(jk=16).
 El tiempo terico de ir del nodo i a j es
de 2 hs (ik,jk=2)
 losk= ( jk - 1k ) / ik,jk = (16-8) / 2 = 4


Aplicacin SA
Dial-A-Ride


Rango de los losk:


1 <= losk <= GLOS

k = 1,...,n

GLOS es un cota superior que representa un nivel de


calidad mnima garantizada a los clientes.

Finalmente podemos expresar nuestra


funcin objetivo como :
1 h
LOS = los k
h k =1

Aplicacin SA
Dial-A-Ride


Restricciones a cumplir en el modelo.






Nodo de pick-up ik debe preceder al de entrega jk


para cada cliente k.
Cliente k es aceptado si hay un vehculo l que
permite losk <= GLOS.
Para un vehculo l los tiempos ik e jk cumplen:





1k <= ik <= jk - ik,jk <= 2k - ik,jk

La capacidad de un vehculo l siempre es satisfecha


Solo se considera el tiempo de servicio durante 1 da.

Aplicacin SA
Dial-A-Ride
Al llegar una nueva llamada k:
A) Asigno la llamada al mejor vehculo (fase de
asignacin)
B) la nueva ruta de ese vehculo es
seleccionada (fase de ruteo)

Dial-A-Ride
solucion
aleatoria
ii ==mejor
solucion
para el cliente (k-1)
Repetir

1 h
f ( j ) = losk ( j )
h k =1
1 h
f (i ) = los k (i )
h k =1

=TRUE ; l=i;
Repetir
For h = 1(para
to 10cierto t)
aleatoriamente
jSelecciona
= Cambio pareja
de nodos deuna
i sol. j en vecindad(i).
Si f(j) < f(l) entonces l=j
Sea = f(j) f(i)
Si<<0 0entonces
entonces
j
Si
i = ij;==FALSE
Sino generar aleatoriamente q U(0,1)
Siqq<<exp(-/t)
exp(/t) entonces
entonces
Si
i =i j=; j=FALSE
Hasta llegar a equilibrio
endfor
tActualizo
= 0.95*t la temperatura (t = g(t)).
Hasta condicin de parada.
Hasta

Simulated Annealing

Fundamento terico.
Aplicacin (Dial-A-Ride)

Variantes de SA.

TA (Threshold accepting)
GDA (Great deluge algorithm)
RRT (Record-to-Record Travel)
Aplicacion. (TSP)

Concluciones.

Variantes de Simulated
Annealing


Variantes de S.A.


TA (Threshold accepting)

GDA (Great deluge algorithm)

RRT (Record-to-Record Travel)

Threshold accepting


Estrategia de exploracin en la vecindad.


Para cierto threshold T
Seleccionar aleatoriamente una sol. j en vecindad(i).
Sea = f(j) f(i)
Si > -T entonces i = j

Threshold accepting
Acepta nuevas soluciones que no son
mucho peores que la vieja solucin.
 No se precisa temperatura inicial ni
esquema de enfriamiento.
 Solo utiliza un parmetro inicial Threshold.


Threshold accepting
Elijo solucin inicial (i) y threshold inicial (T).
Repetir
Repetir
Seleccionar aleatoriamente una sol. j En vecindad(i).
Sea = f(j) f(i)
Si > -T entonces i = j
Hasta equilibrio
disminuyo T
Hasta condicion de parada.

Variantes de Simulated
Annealing
Variantes de S.A.
TA (Threshold accepting)
GDA (Great deluge algorithm)
RRT (Record-to-Record Travel)

Great Delugue Algorithm




Estrategia de exploracin en la vecindad.


Para cierto nivel_de_agua
Seleccionar aleatoriamente una sol. j en
vecindad(i).
Si f(j) > nivel_de_agua entonces
i=j
nivel_de_agua := nivel_de_agua +
velocidad_lluvia

Great Delugue Algorithm


Solo se precisa determinar el parmetro
de velocidad_lluvia.
 Fcil de implementar.
 Slo acepta la nueva solucin si se
encuentra sobre el nivel_del_agua.


Great Delugue Algorithm


Elijo solucin inicial (i)
Elijo velocidad_lluvia (v_l) > 0 y nivel_de_agua > 0
Repetir
Repetir (para cierto nivel_de_agua)
Seleccionar aleatoriamente una sol. j en vecindad(i).
Si f(j) > nivel_de_agua entonces
i=j
nivel_de_agua := nivel_de_agua +v_l
Hasta llegar a equilibrio
Hasta condicin de parada.

Variantes de Simulated Annealing


Variantes de S.A.
TA (Threshold accepting)
GDA (Great deluge algorithm)
RRT (Record-to-Record Travel)

Record-to-Record Travel (RRT)




Estrategia de exploracin en la vecindad.


record = mejor solucin
Seleccionar aleatoriamente una sol. j En vecindad(i).
Si f(j) > (record desviacin) entonces
i=j
Si f(j) > record entonces record = f(j)

Record-to-Record Travel (RRT)


Solo se precisa determinar el parmetro de
desviacin.
Fcil de implementar.
Recuerda la mejor solucin (record) en todo
momento.
Slo acepta la nueva solucin si est por
encima de (record desviacin).

Record-to-Record Travel (RRT)


Elijo solucin inicial (i), elijo desviacin > 0.
Seteo la mejor solucin (record = i).
Repetir
Repetir
Seleccionar aleatoriamente una sol. j en vecindad(i).
Si f(j) > (record - desviacin) entonces
i=j
Si f(j) > record entonces
record = f(j)
Hasta llegar a equilibrio.
Hasta condicin de parada.

Aplicaciones
Grotschels 442 ciudades (TSP Euclidiano)
 Problema: Dada las coordenadas de N
ciudades, busco un recorrido que visite
todas las ciudades minimizando el costo.


Aplicaciones


Como modelar el problema?


5

4
2

1
(1, 5, 4, 3, 2)

Aplicaciones


Como defino una vecindad?


5
4
0 (1, 5, 4, 3, 2)
2
1

Corrida: i = 1
j=4
31 (1, 3, 4, 5, 2)

LIN-2-OPT
 Elijo i, j C, i < j


Elimino las aristas { (


(i),
(i+1)), (
(j), (j+1)) }

Inserto las aristas { (


(i), (j)), (
(i+1), (j+1)) }

Ejemplo (aplicado a TA)


Seleccionar un conjunto de nb ciudades cercanas para cada ciudad
inicial (i)
Elijo solucin
un inicial
Threshold inicial (T).
For T = 0.099 to 0 step -0.001
Repetir
Repetir
Para
cada ciudad c1
Seleccionar
aleatoriamente
una
sol. c1
j en vecindad(i).
Para cada ciudad
c2 cercana a la
ciudad
j = lin-2-op (i, c1, c2) )
Sea = f(j) f(i)
= largo(j) largo (i)
Si < T entonces i = j
Hasta equilibrio

T
Enddisminuyo
para cada ciudad
c1
Hasta condicion de parada
End para cada Threshold

Resultados para 442 ciudades con


largo del recorrido inferior a 52.00
TA Improved Form

100

# recorridos

# recorridos

TA

50
0
4

10

12

14

16

18

20

nb

100
50
0
4

10

12

14

16

nb

# recorridos

RRT
100

El largo de la
solucin optima es: 50.80

50
0
4

10

12
nb

14

16

18

20

18

20

Resultados para 532 ciudades con


largo del recorrido inferior a 28.500
TA Improved From

100

# recorridos

# recorrido

GDA

50
0
4

10

12

14

16

18

20

nb

100
50
0
4

10

12

14

16

nb

# rec orridos

RRT
100

El largo de la
solucin optima es: 27.686

50
0
4

10

12
nb

14

16

18

20

18

20

Conclusiones
Heursticas fciles de aplicar e
implementar.
 Los resultados obtenidos con estas
heursticas son buenos.
 SA es muy sensible a la eleccin del
esquema de enfriamiento.
 TA, GDA y RRT son mejores y slo
dependen de un nico parmetro.


Crticas a Bsqueda Heurstica




Solucin de problemas, usando tcnicas de bsqueda


heurstica:



Funcin de evaluacin: compromiso (conflicto) entre





Dificultades en definir y usar una funcin de evaluacin;


No consideran conocimiento genrico del mundo (o sentido
comn);
Tiempo gastado en la seleccin de un nodo y
Reduccin del espacio de bsqueda

Alcanzar el mejor nodo a ser expandido en cada paso


puede ser tan difcil como el problema de la bsqueda
en general.

Fuentes Consultadas







Rusel, Norvig, Artificial Intelligence: La Modern


Approach, Cap. 4.
Costa,
Simes,
Inteligencia
Artificial.
Fundamentos y Aplicaes. Cap 3.3., 3.4
Slices Prof. Guillermo Simari. Universidad
Nacional del Sur, Argentina
Slices Alunos IILa semestre 2004/2005 y
2005/2006
Slices Prof. Geber Ramalho. CIN. Universidad
Federal de Pernambuco, Brasil.
Slices Profs. Rafael Fernndez y Fernando
Garca de UROU, Uruguay.

Lecturas
LIBROS
 Rusel, Norvig, Artificial Intelligence: La
Modern Approach, Cap. 4.
 Costa,
Simes, Inteligencia Artificial.
Fundamentos y Aplicaes. Cap 3.3. 3.4

FIN

Vous aimerez peut-être aussi