• No se han encontrado resultados

Universidad Carlos III de Madrid

N/A
N/A
Protected

Academic year: 2019

Share "Universidad Carlos III de Madrid"

Copied!
94
0
0

Texto completo

(1)

Inteligencia Artificial

Grupo PLG

Universidad Carlos III de Madrid

(2)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud B´usqueda en profundidad B´usqueda hacia atr´as B´usqueda bidireccional

B´usqueda con costes no uniformes Otros algoritmos de b´usqueda An´alisis de complejidad

3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada T´ecnicas de mejor-primero Otros algoritmos

4 B´usqueda con m´ultiples agentes

(3)

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud

B´usqueda en profundidad

B´usqueda hacia atr´as

B´usqueda bidireccional

B´usqueda con costes no uniformes

Otros algoritmos de b´usqueda

An´alisis de complejidad

3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada T´ecnicas de mejor-primero Otros algoritmos

(4)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud

B´usqueda en profundidad

B´usqueda hacia atr´as

B´usqueda bidireccional

B´usqueda con costes no uniformes

Otros algoritmos de b´usqueda

An´alisis de complejidad

3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada

T´ecnicas de mejor-primero

Otros algoritmos

4 B´usqueda con m´ultiples agentes

(5)

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud

B´usqueda en profundidad

B´usqueda hacia atr´as

B´usqueda bidireccional

B´usqueda con costes no uniformes

Otros algoritmos de b´usqueda

An´alisis de complejidad

3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada

T´ecnicas de mejor-primero

Otros algoritmos

(6)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud B´usqueda en profundidad B´usqueda hacia atr´as B´usqueda bidireccional

B´usqueda con costes no uniformes Otros algoritmos de b´usqueda An´alisis de complejidad 3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada T´ecnicas de mejor-primero Otros algoritmos

4 B´usqueda con m´ultiples agentes

(7)

Introducci´

on

Espacio de problemas

Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s)

Representable por un grafo

Resoluci´on de problemas = b´usqueda en el grafo Normalmente, la b´usqueda genera un ´arbol

Par´ametros importantes

Factor de ramificaci´on

Profundidad del ´arbol de b´usqueda

(8)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Introducci´

on

Espacio de problemas

Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s)

Representable por un grafo

Resoluci´on de problemas = b´usqueda en el grafo Normalmente, la b´usqueda genera un ´arbol

Par´ametros importantes

Factor de ramificaci´on

Profundidad del ´arbol de b´usqueda

(9)

Introducci´

on

Espacio de problemas

Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s)

Representable por un grafo

Resoluci´on de problemas = b´usqueda en el grafo

Normalmente, la b´usqueda genera un ´arbol

Par´ametros importantes

Factor de ramificaci´on

Profundidad del ´arbol de b´usqueda

(10)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Introducci´

on

Espacio de problemas

Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s)

Representable por un grafo

Resoluci´on de problemas = b´usqueda en el grafo

Normalmente, la b´usqueda genera un ´arbol

Par´ametros importantes

Factor de ramificaci´on

Profundidad del ´arbol de b´usqueda

(11)

Introducci´

on

Espacio de problemas

Conjunto de estados Conjunto de operadores Estado(s) inicial(es) Meta(s)

Representable por un grafo

Resoluci´on de problemas = b´usqueda en el grafo

Normalmente, la b´usqueda genera un ´arbol

Par´ametros importantes

Factor de ramificaci´on

Profundidad del ´arbol de b´usqueda

(12)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Ejemplo: 8-Puzzle

1 2 3 5 6 4 7 8

1 2 3 6 4 7 8 5

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

3 5 6 4 7 8 1 2

(13)
(14)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Ejemplo: Las torres de Hanoi (3,2)

Elfactor de ramificaci´on

(15)

Ejemplo: Las torres de Hanoi (3,2)

Laprofundidad

(16)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Ejemplo: Las jarras

Se tienen dos jarras de agua: una de cinco litros de capacidad y

otra de tres. Ninguna de ellas tiene marcas de medici´on. Se tiene

una bomba que permite llenar las jarras de agua, vaciarlas, y traspasar contenido de una jarra a otra.

¿C´omo se puede tener exactamente cuatro litros de agua en la

(17)

Ejemplo: Las jarras

Espacio de Estados:

conjunto de pares ordenados de enteros (x,y), de forma que

x= 0, . . . ,5,y = 0, . . . ,3

x representa el n´umero de litros de agua que hay en la jarra de 5 litros de capacidad

y representa el n´umero de litros de agua que hay en la jarra de 3 litros de capacidad

Estado inicial: (0,0)

Estado meta:

(18)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Ejemplo: Las jarras

Operadores

Llenar jarra grande : Si (x<5)→(5,y) Llenar jarra peque˜na : Si (y<3)→(x,3) Vaciar jarra grande : Si (x>0)→(0,y) Vaciar jarra peque˜na : Si (y>0)→(x,0)

(19)

Explosi´

on combinatoria

Dominio N´umero de estados Tiempo (107 nodos/s)

8-puzzle “N2!

2

”˛ ˛ ˛

N=3

= 181,440 0.01 segundos

15-puzzle “N2!

2

”˛ ˛ ˛

N=4

= 1013 11,5 d´ıas

24-puzzle “N2!

2

”˛ ˛ ˛

N=5

= 1025 31,7×109a˜nos

Hanoi (3,2) (3n)|

n=2= 9 9×10

−7

segundos

Hanoi (3,4) (3n)|

n=4= 81 8,1×10

−6

(20)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud

B´usqueda en profundidad

B´usqueda hacia atr´as

B´usqueda bidireccional

B´usqueda con costes no uniformes

Otros algoritmos de b´usqueda

An´alisis de complejidad

3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada T´ecnicas de mejor-primero Otros algoritmos

4 B´usqueda con m´ultiples agentes

(21)

8-Puzzle – Amplitud

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

4 1

(22)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en Amplitud

8-Puzzle – Amplitud

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

1 2 3 5 6 7 8 4

(23)

8-Puzzle – Amplitud

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

3 5 6 4 7 8 1 2 1 2 3

5 6 7 8 4

1 2 3 5 6 8 4 7 2 3 5 6 4 7 8 1

5 6 7 8

4 1

2 3

(24)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en Amplitud

8-Puzzle – Amplitud

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

1 2 3 6 4 8 5 7 3

5 6 4 7 8 1 2 1 2 3

5 6 7 8 4

1 2 3 5 6 8 4 7 1 3 6 4 7 8 5 2

1 2 3

4 7 8 5 6 2 3

5 6 4 7 8

1 1 2 3

6 4 7 8 5

5 6 7 8 10 11 12

4 1

2

9 3

(25)

8-Puzzle – Amplitud

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

1 2 3 6 4 8 5 7 3

5 6 4 7 8 1 2 1 2 3

5 6 7 8 4

1 2 3 5 6 8 4 7 1 3 6 4 7 8 5 2

1 2 3

4 7 8 5 6 2 3

5 6 4 7 8 1

1 2 3 6 8 4 7 5

1 2 3 6 4 7 8 5

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

5 6 7 8 10 11 12

4 1 2 13 14 9 3 15

x x x

(26)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en Amplitud

usqueda en amplitud

Procedimiento Amplitud (Estado-inicial Estado-Final)

1 Crear lista ABIERTA con el nodo inicial, I, (estado-inicial)

2 EXITO=Falso

3 Hasta que ABIERTA est´e vac´ıa O EXITO

Quitar de ABIERTA el primer nodo, N Si N tiene sucesores

Entonces Generar los sucesores de N

Crear punteros desde los sucesores hacia N Si alg´un sucesor es nodo meta

Entonces EXITO=Verdadero

Si no A˜nadir los sucesores al final de ABIERTA

4 Si EXITO

(27)

Caracter´ısticas

Completo: encuentra soluci´on si existe y el factor de

ramificaci´on es finito en cada nodo

Optimalidad: si todos los operadores tienen el mismo coste, encontrar´a la soluci´on ´optima

Eficiencia: buena si las metas est´an cercanas

(28)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en profundidad

8-Puzzle – Profundidad

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

4 1

(29)

8-Puzzle – Profundidad

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

1 2 3 5 6 7 8 4

(30)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en profundidad

8-Puzzle – Profundidad

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4

2 3 5 6 4 7 8 1

1 2 3 6 4 7 8 5

1 2 3 5 6 7 8 4

1 2 3 5 6 8 4 7

1 2 3 6 8 4 7 5

1 2 3 5 6 4 7 8

1 2 3 5 6 7 8 4 5 6 4 1 2 3

7 8 9

x

(31)

usqueda en profundidad

Procedimiento Profundidad (Estado-inicial,Estado-Final,Profundidad-m´axima)

1 Crear lista ABIERTA con el nodo inicial, I, y su profundidad=0

2 EXITO=Falso

3 Hasta que ABIERTA est´e vac´ıa O EXITO

Quitar de ABIERTA el primer nodo. Lo llamaremos N y a su profundidad P

Si P<Profundidad-m´axima Y N tiene sucesores Entonces Generar los sucesores de N

Crear punteros desde los sucesores hacia N Si alg´un sucesor es el Estado-Final Entonces EXITO=Verdadero

Si no, A˜nadir los sucesores al principio de ABIERTA Asignarles profundidad P+1

4 Si EXITO

(32)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en profundidad

Caracter´ısticas

Requiere t´ecnica de retroceso (“backtracking”)

Razones para retroceso:

Se ha llegado al l´ımite de profundidad

Se han estudiado todos los sucesores de un nodo y no se ha llegado a la soluci´on

Se sabe que el estado no conduce a la soluci´on Se genera un estado repetido

Completitud: no asegura encontrar la soluci´on

Optimalidad: no asegura encontrar la soluci´on ´optima

Eficiencia: bueno cuando metas alejadas de estado inicial, o problemas de memoria

(33)

Caracter´ısticas

Requiere t´ecnica de retroceso (“backtracking”)

Razones para retroceso:

Se ha llegado al l´ımite de profundidad

Se han estudiado todos los sucesores de un nodo y no se ha llegado a la soluci´on

Se sabe que el estado no conduce a la soluci´on Se genera un estado repetido

Completitud: no asegura encontrar la soluci´on

Optimalidad: no asegura encontrar la soluci´on ´optima

Eficiencia: bueno cuando metas alejadas de estado inicial, o problemas de memoria

(34)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

B´usqueda en profundidad

Caracter´ısticas

Requiere t´ecnica de retroceso (“backtracking”)

Razones para retroceso:

Se ha llegado al l´ımite de profundidad

Se han estudiado todos los sucesores de un nodo y no se ha llegado a la soluci´on

Se sabe que el estado no conduce a la soluci´on Se genera un estado repetido

Completitud: no asegura encontrar la soluci´on

Optimalidad: no asegura encontrar la soluci´on ´optima

Eficiencia: bueno cuando metas alejadas de estado inicial, o problemas de memoria

(35)

usqueda no informada con costes

Dijkstra: amplitud, pero eligiendo aquel nodo que tenga menor coste desde el nodo ra´ız

Branch and bound, B&B

b´usqueda (normalmente en profundidad)

cuando encuentra una soluci´on, su coste se convierte en un l´ımite (superior o inferior) para los siguientes nodos si un nodo posterior tiene un coste desde el nodo ra´ız mayor/menor (o igual) que el l´ımite, se termina la b´usqueda por ´el

(36)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

An´alisis de complejidad

An´

alisis de complejidad

Si se dispone de:

factor de ramificaci´on mediofr

profundidad del ´arbol de b´usqueda p

¿Cu´al ser´ıa, en el peor de los casos, el n´umero de nodos que

examinar´ıa cada t´ecnica?

Unidireccional

Pista:

sup´ongase quefr=3, y vaya increment´andose lap

(37)

An´

alisis de complejidad

T´ecnica de B´usqueda N´umero m´aximo de nodos

Unidireccional Pp

i=0fr

(38)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

An´alisis de complejidad

An´

alisis de complejidad

Complejidad

T´ecnica de B´usqueda Temporal Espacial

Amplitud O(frp) O(frp)

Profundidad O(frp) O(p)

(39)

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud B´usqueda en profundidad B´usqueda hacia atr´as B´usqueda bidireccional

B´usqueda con costes no uniformes Otros algoritmos de b´usqueda An´alisis de complejidad

3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada

T´ecnicas de mejor-primero

Otros algoritmos

(40)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Heur´ıstica

Heur´ıstica

Si se tiene conocimiento perfecto −→ algoritmo exacto

Si no se tiene conocimiento −→ b´usqueda sin informaci´on

En la mayor parte de los problemas que resuelven los humanos, se est´a en posiciones intermedias

Heur´ıstica:(del griego “heurisko” (ευρισκω´ ): “yo

encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese

problema/dominio

Representaci´on de las heur´ısticas funcionesh(n)

metareglas

(41)

Heur´ıstica

Si se tiene conocimiento perfecto −→ algoritmo exacto

Si no se tiene conocimiento −→ b´usqueda sin informaci´on

En la mayor parte de los problemas que resuelven los

humanos, se est´a en posiciones intermedias

Heur´ıstica:(del griego “heurisko” (ευρισκω´ ): “yo

encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese

problema/dominio

Representaci´on de las heur´ısticas funcionesh(n)

metareglas

(42)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Heur´ıstica

Heur´ıstica

Si se tiene conocimiento perfecto −→ algoritmo exacto

Si no se tiene conocimiento −→ b´usqueda sin informaci´on

En la mayor parte de los problemas que resuelven los

humanos, se est´a en posiciones intermedias

Heur´ıstica:(del griego “heurisko” (ευρισκω´ ): “yo

encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese

problema/dominio

Representaci´on de las heur´ısticas

funcionesh(n) metareglas

Las funciones heur´ısticas se descubrenresolviendo modelos

(43)

Heur´ıstica

Si se tiene conocimiento perfecto −→ algoritmo exacto

Si no se tiene conocimiento −→ b´usqueda sin informaci´on

En la mayor parte de los problemas que resuelven los

humanos, se est´a en posiciones intermedias

Heur´ıstica:(del griego “heurisko” (ευρισκω´ ): “yo

encuentro”) conocimiento parcial sobre un problema/dominio que permite resolver problemas eficientemente en ese

problema/dominio

Representaci´on de las heur´ısticas

funcionesh(n) metareglas

(44)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Heur´ıstica

Problemas relajados. 8-puzzle

Restricciones:

s´olo se puede mover el blanco

el movimiento s´olo se puede hacer a casillas adyacentes horizontal o vertical

en cada paso, se intercambian los contenidos de dos casillas

Relajaciones:

si quitamos las dos primeras restricciones, generamos la heur´ıstica de n´umero de casillas mal colocadas

(45)

Problemas relajados. 8-puzzle

Restricciones:

s´olo se puede mover el blanco

el movimiento s´olo se puede hacer a casillas adyacentes horizontal o vertical

en cada paso, se intercambian los contenidos de dos casillas

Relajaciones:

si quitamos las dos primeras restricciones, generamos la heur´ıstica de n´umero de casillas mal colocadas

(46)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnica de escalada

Algoritmo de escalada

Procedimiento escalada (Estado-inicial Estado-final)

N=Estado-inicial; EXITO=Falso

Hasta que Camino-Sin-Salida(N) O EXITO Generar los sucesores de N

SI alg´un sucesor es Estado-final

ENTONCES EXITO=Verdadero

SI NO, Evaluar cada nodo con la funci´on de evaluaci´on, f(n)

N=mejor sucesor Si EXITO

Entonces Soluci´on=camino desde nodo del Estado-inicial

al nodo N por los punteros

(47)

8-Puzzle – B´

usqueda en escalada

1 2 3 5 6 7 8 4

1 2 3 6 4 7 8 5 1 2 3

5 6 4 7 8

2 3 5 6 4 7 8 1 1

(48)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnica de escalada

8-Puzzle – B´

usqueda en escalada

1 2 3 5 6 7 8 4

1 2 3 6 4 7 8 5 1 2 3

5 6 4 7 8

2 3 5 6 4 7 8 1 1

2 3 4

5

(49)

8-Puzzle – B´

usqueda en escalada

1 2 3 5 6 7 8 4

1 2 3 5 6 7 8 4

1 2 3 6 4 7 8 5

1 2 3 5 6 8 4 7 1 2 3

5 6 4 7 8

2 3 5 6 4 7 8 1 1

2 3 4

5 6

5

6 4 4

7

(50)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnica de escalada

8-Puzzle – B´

usqueda en escalada

1 2 3 5 6 8 4

7 1 2 3

5 6 4 7 8 1 2 3 4 7

6 8 5 1 2 3

5 6 7 8 4

1 2 3 5 6 7 8 4

1 2 3 6 4 7 8 5

1 2 3 5 6 8 4 7 1 2 3

5 6 4 7 8

2 3 5 6 4 7 8 1 1

2 3 4

5 6

7 8 9

5

6 4 4

7

6 9 6

(51)

Caracter´ısticas

Problemas de los m´etodosavariciosos

M´aximos (o m´ınimos) locales: pico que es m´as alto que cada uno de sus estados vecinos, pero m´as bajo que el m´aximo global

Mesetas: zona del espacio de estados con funci´on de evaluaci´on plana

Crestas: zona del espacio de estados con varios m´aximos (m´ınimos) locales

Función Objetivo

Estados Terraza

Meseta Crestas Máximo Local Máximo global

(52)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnica de escalada

Caracter´ısticas

Soluciones

Retroceso

Dar m´as de un paso Reinicio aleatorio

M´etodo local

Completitud: no tiene porqu´e encontrar la soluci´on

Admisibilidad: no siendo completo, a´un menos ser´a admisible Eficiencia: r´apido y ´util si la funci´on es mon´otona

(53)

ecnicas de mejor primero

Procedimiento Mejor-primero (Estado-inicial Estado-final)

Crear grafo de b´usquedaG, con el nodo inicial,I (Estado-inicial) ABIERTA=I, CERRADA=Vac´ıo, EXITO=Falso

Hasta que ABIERTA est´e vac´ıa O EXITO

Quitar el primer nodo de ABIERTA,Ny meterlo en CERRADA SIN es Estado-final ENTONCES EXITO=Verdadero

SI NO ExpandirN, generando el conjuntoSde sucesores deN, que no son antecesores deNen el grafo Generar un nodo enG por cadasdeS

Establecer un puntero aNdesde aquellossdeS que no estuvieran ya enG

A˜nadirlos a ABIERTA

Para cadasdeS que estuviera ya en ABIERTA o CERRADA decidir si redirigir o no sus punteros haciaN

Para cadasdeS que estuviera ya en CERRADA

decidir si redirigir o no los punteros de los nodos en sus sub´arboles Reordenar ABIERTA seg´unf(n)

Si EXITO Entonces Soluci´on=camino desdeIaN a trav´es de los punteros deG

(54)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnicas de mejor-primero

A

(Hart, Nilsson y Rafael, 1968)

Funci´on de ordenaci´on de nodos:f(n) =g(n) +h(n)

f(n): funci´on de evaluaci´on

g(n): funci´on de coste de ir desde el nodo inicial al nodon h(n): funci´on heur´ıstica que mide la distancia estimada desde

na alg´un nodo meta

g(n) se calcula como la suma de los costes de los arcos

recorridos, k(ni,nj)

Los valores reales s´olo se pueden conocer al final de la

b´usqueda

f∗(n): coste real para ir desde el nodo inicial a alg´un nodo

meta a trav´es den

(55)

Definici´

on de t´

erminos

4

5

2 6

1 k(1,2)=200

g(2)=200 k(2,6)=40 g(6)=200+40=240

k(1,4)=40

h(2)=30

h(4)=35

h(6)=40

(56)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnicas de mejor-primero

Ejemplo A

4 3 1

5

2 6

10

35 30

40

0 200

40

50

200 5

200 150

40 60

(57)

Ejemplo A

2 3 4

1

200

40 60

200

30

230 70 10

60

35 75

(58)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnicas de mejor-primero

Ejemplo A

2 3 4

1

5 200

40 60

200

150

30

230 70 10

60

35 75

40

260 0

(59)

Ejemplo A

3 1

5

2 4

40 60

200

150

30 10 75 35

40

200

0

200 5

225

240

240

45

(60)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnicas de mejor-primero

Ejemplo A

3 1 5 4 6 2 40 60 200 150

30 10 75 35

(61)

Caracter´ısticas

Completitud: si existe soluci´on, la encuentra

Admisibilidad: si hay una soluci´on ´optima, la encuentra si

el n´umero de sucesores es finito para cada nodo,

k(ni,nj)> >0 en cada arco, y

(62)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnicas de mejor-primero

Consideraciones sobre la heur´ıstica

Si h1(n)<=h2(n)∀n,h2(n) est´a m´as informada que h1(n) y

servir´a para expandir menos nodos

Ejemplo: distancia de Manhattan est´a m´as informada que n´umero de casillas mal colocadas (problema de Manhattan es menos relajado que el del n´umero de casillas)

Extremos

h(n) = 0 para cada nodo: no se tiene informaci´on (Dijkstra)

h(n) =h∗(n) para cada nodo: se tiene informaci´on perfecta

No tiene sentido dedicar m´as coste computacional a calcular

una buenah(n) que a realizar la b´usqueda equivalente:

(63)

ecnicas mejor-primero

No informadas:

B´usqueda en amplitud:f(n) = profundidad(n) Dijkstra:f(n) =g(n)

Informadas (heur´ısticas):

A, A∗, IDA∗, . . . : f(n) =g(n) +h(n) Ponderadas:f(n) =g(n) +ωh(n), ω >1

Es completo, pero no es admisible

(64)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

T´ecnicas de mejor-primero

IDA

(Korf, 1985)

Procedimiento IDA∗ (Estado-inicial Estado-final)

EXITO=Falso

η=h(s)

Mientras que EXITO=Falso

EXITO=Profundidad (Estado-inicial,η)

η= m´ın

i=1,n{f(i)}= m´ıni=1,n{g(i) +h(i)}

Soluci´on=camino desde nodo del Estado-inicial

al Estado-final por los punteros

Profundidad (Estado-inicial,η)

(65)

Caracter´ısticas

Completitud: es completo

Admisibilidad: es admisible

Eficiencia: la complejidad de tiempo es exponencial, pero la

complejidad de espacio es lineal en la profundidad del ´arbol de

b´usqueda

Aunque pudiera parecer lo contrario, el n´umero de

re-expansiones es s´olo mayor en un peque˜no factor que el

n´umero de expansiones de los algoritmos de el mejor primero

Fue el primer algoritmo que resolvi´o ´optimamente 100 casos

(66)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes

Indice

1 Introducci´on

2 B´usqueda sin informaci´on

B´usqueda en Amplitud B´usqueda en profundidad B´usqueda hacia atr´as B´usqueda bidireccional

B´usqueda con costes no uniformes Otros algoritmos de b´usqueda An´alisis de complejidad 3 usqueda heur´ıstica

Heur´ıstica

T´ecnica de escalada T´ecnicas de mejor-primero Otros algoritmos

4 B´usqueda con m´ultiples agentes

(67)

Caracter´ısticas de los problemas

Suma nula: lo que gana uno, lo pierde el otro

Dos agentes (se puede generalizar, Maxn)

Informaci´on completa: se conoce en cada momento el estado completo del juego

Deterministas o deinformaci´on perfecta: no entra en juego el azar (se puede generalizar)

(68)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

Funci´on de evaluaci´on perfecta

2

7

8

f*(n)=

(69)

Algoritmo Minimax

Funci´on de evaluaci´on perfecta

2

7

8

f*(n)=

(70)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

B´usqueda completa

0 m M

Nodos hojas: ganamos (M=∞), perdemos (m=−∞) o

empatamos (0)

(71)

Algoritmo Minimax

B´usqueda completa

0 m M

Nodos hojas: ganamos (M=∞), perdemos (m=−∞) o

empatamos (0)

(72)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

M

p =3

max

10 12 3 m

4 3

f(n)= -3 5 20 -4 -2

4 10 12 -3 20 -2

MAX

4 -3 -2

MIN

(73)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

M

p =3

max 10 12 3

m 4 3

f(n)= -3 5 20 -4 -2

4 10 12 -3 20 -2

MAX

4 -3 -2

(74)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

M

p =3

max 10 12 3

m 4 3

f(n)= -3 5 20 -4 -2

4 10 12 -3 20 -2

MAX

4 -3 -2

MIN

(75)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

M

p =3

max 10 12 3

m 4 3

f(n)= -3 5 20 -4 -2

4 10 12 -3 20 -2

MAX

4 -3 -2

(76)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Algoritmo Minimax

M

p =3

max 10 12 3

m 4 3

f(n)= -3 5 20 -4 -2

4 10 12 -3 20 -2

MAX

4 -3 -2

MIN

(77)

Procedimiento Minimax

Procedimiento Minimax (Situaci´on Profundidad)

SI Profundidad =pmax

ENTONCES devolver evaluaci´on (Situaci´on) SI NO SI ganadora (Situaci´on)

ENTONCES devolver +∞ SI NO SI perdedora (Situaci´on)

ENTONCES devolver -∞ SI NO SI empate (Situaci´on)

ENTONCES devolver 0 SI NO

S = sucesores (Situaci´on)

L = lista de llamadas al MINIMAX (Si ∈S, Profundidad + 1) SI nivel-max (Profundidad)

(78)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

alculo del valor de cada nodo

f(n) = 8 > > > > > > < > > > > > > :

+∞ si n es una situaci´on ganadora para computadora −∞ si n es una situaci´on perdedora para computadora 0 si n es una situaci´on de empate

fev(n) si p = Profundidad m´axima m´axSi∈S(n)f(Si) si n es nodo max y p<pmax

m´ınSi∈S(n)f(Si) si n es nodo min y p<pmax

Negamax

f(n) = 

fev(n) sid= 0

(79)

Ejemplo en el tic-tac-toe

X

X

X X

X X

X

X X

X X

X X

X X

X X

X X

(80)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Algoritmo Minimax

Ejemplo en el tic-tac-toe

X X

X

X

X X

X

X

X X X X X X X X X X X

1 0

(81)

Ejemplo en el tic-tac-toe

X

X X

X

X X

X

X X

X X

X X

X X

X X

X X

(82)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda Alfa-beta

Nodos max: se utiliza el par´ametroα para guardar el valor

m´aximo de los sucesores encontrado hasta el momento.

α0=−∞

Nodos min: se utiliza el par´ametroβ para guardar el valor

m´ınimo de los sucesores encontrado hasta el momento.

β0= +∞

Poda en los nodos MAX:

αp ≥βp−1

Poda en los nodos MIN:

(83)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda en los nodos MIN

MIN 6

4 α= MAX

MAX

β=

3

/ 3 αpadre

hijo<=

(84)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda en los nodos MIN

MIN 6

4 α= MAX

MAX

β=

3

/ 3 αpadre

hijo<=

β <=3

(85)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda en los nodos MIN

MIN 6

4 α= MAX

MAX

β=

3

/ 3 αpadre

hijo<=

β

(86)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda en los nodos MIN

MIN 6

4 α= MAX

MAX

β=

3

/ 3 αpadre

hijo<=

β

<=3

(87)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda en los nodos MIN

MIN 6

4 α= MAX

MAX

β=

3

/ 3 αpadre

hijo<=

(88)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Poda en los nodos MIN

MIN 6

4 α= MAX

MAX

β=

3

/ 3 αpadre

hijo<=

β <=3

(89)

Algoritmo Alfa-beta

Procedimiento Alfa-Beta (Situaci´on Alfa Beta Profundidad)

SI Situaci´on est´a considerada como empate, Devolver 0 SI Situaci´on es ganadora, Devolver mayor-numero SI Situaci´on es perdedora, Devolver menor-numero

SI Profundidad = Profundidad-maxima, Devolver evaluacion (Situaci´on) SI nivel-max-p

para todosi sucesor de Situaci´on y Alfa<Beta

Alfa-beta = ALFA-BETA(si,Alfa,Beta,Profundidad+1) Alfa = max(Alfa,Alfa-beta)

Devolver Alfa SI NO

para todosi sucesor de Situaci´on y Beta>Alfa

Alfa-beta = ALFA-BETA(si,Alfa,Beta,Profundidad+1) Beta = min(Beta,Alfa-beta)

(90)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Ejemplo del alfa-beta

3 5 4 6 9 6 7 4 20 1 −3 10 8 5 10 1 −5

1

2 3 4

5 7 8 9 10 11

12 14 15 16 17 19 20 21 22 23 24 25 26 28

6

(91)

Ejemplo del alfa-beta

a= b=m5 a=

b= a=

b= a=

b=mM

a= b=Mm / 3 / 5 a=

b=mM a=

b=mM a=b=mM / 5

a=

b= a=b= a=

b=mM 1 a=b=

2 3 4

5

13 Poda

a >= b6

15 14

12 M M

3 5

6

6

m

(92)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Ejemplo del alfa-beta

7 a= 8

b= 5 7 a= b= a= b=M 5 a= b=M 5 a= b= a= b= 5 7 a= b= a= b=M 5 a= b= m M a= b=M

m / 5

1

2 3

1

2 3 44

19 18

b <= a3 1

Poda 5 / 6 / 7

M 6 7 17 6 7 M 6 4 4 5

M / 7 / 5 5 5

5

(93)

Ejemplo del alfa-beta

10 11 a= b=M 5 a= b=M 5 a= b= a=

b= a=b=

5 8 a= b= 5

8 a=b= a= b=M 5 a= b= a= b= a= b= m M 1 2 3 1

2 3 44

1

2 3 4

24 25 26

8

5 / 8 M

8

M a >= b

10

5 / 10 8 8

8

5 M / 8 m / 5 / 8

M

5

5

(94)

Introducci´on B´usqueda sin informaci´on B´usqueda heur´ıstica B´usqueda con m´ultiples agentes Poda Alfa-beta

Estado de la cuesti´

on en juegos de dos jugadores

Ajedrez: HiTech, Deep Thought-Blue, Fritz

Backgammon: NeuroGammon

Damas: Chinook

Othello: Logistello

Juegos resueltos: Tic-Tac-Toe, Cuatro en Raya, Qubic,

Go-Moku, Damas (oficialmente desde 2007), . . .

Referencias

Documento similar

• Cuando la b´ usqueda en el ´ arboles de soluciones crece r´ apidamente es necesario utilizar algoritmos aproximados o heur´ısticas que no garantizan una soluci´ on ´ optima

Dado un problema de espacio de estados, supongamos que definimos una heur´ıstica h que a cada estado le asigna el coste del camino encontrado por una b´ usqueda ´optima que tiene

b) Siguiendo una topología en árbol en la que se conectan únicamente acopladores (su acoplador caracterizado) entre sí, es decir, no existen tramos intermedios

El principal inconveniente de la práctica ha sido la falta de recursos reales sobre los cuales realizar tanto una recogida de datos para obtener los requisitos finales como de

B´ usqueda de Comunidades (3): Llegados a este punto con los datos ya procesados, se aplican diferentes algoritmos de b´ usqueda de comunidades (para comparar los

Es posible la adaptaci´on de un Algoritmo Gen´etico dentro de un algoritmo comple- to de b´ usqueda como heur´ıstica de tipo din´amico para atacar el problema de orden de selecci´on

Ahora bien, puede que s´ı se cumpla la conclusi´ on en dicho intervalo, seg´ un los valores

En Septiembre de 2.004 se publicó una nueva edición, puesta al día, de la “Guía de Servicios Informáticos para los alumnos”, que fue difundida tanto en las sesiones