Você está na página 1de 65

Curso 2012-2013

Jos ngel Baares


17/10/2013. Dpto. Informtica e Ingeniera de Sistemas.
Inteligencia
Artificial (30223)
Problemas resueltos
ndice
Problema del laberinto
Puzzle de dos dimensiones
Misioneros y canbales
A* en grafo
Minimax y poda alfa-beta
Problema del laberinto
principio f in


Una bsqueda informada puede resolver este laberinto, encontrando un
camino desde la localizacin inicial hasta la final. Las posibles acciones son:
arriba, abajo, izquierda, derecha, que son slo vlidas si hay una lnea de
puntos entre las celdas del laberinto. Considerar que la heurstica utilizada es
la distancia en lnea recta entre la posicin actual y la final del laberinto.

1. La heurstica propuesta es admisible?es consistente?, y La distancia al
cuadrado?
2. Muestra que la bsqueda en escalada (ascenso de la colina) no podr
encontrar una solucin ptima con la heurstica de la distancia en lnea
recta.
3. Qu algoritmo de bsqueda garantizara encontrar una solucin ptima
con estas heursticas heursticas (distancia y cuadrado distancia)?
4. Indica los cuadrados buscados en el laberinto utilizando A
*
con la
heurstica dada y un coste unitario por cada movimiento.
Problema del laberinto (heurstica)
y
6 7,62 6,71 5,83 5 4,24 3,61 3,16
5 7,28 6,32 5,39 4,47 3,61 2,83 2,24
4 7,07 6,08 5,1 4,12 3,16 2,24 1,41
3 ini 7 6 5 4 3 2 1 fin
2 7,07 6,08 5,1 4,12 3,16 2,24 1,41
1 7,28 6,32 5,39 4,47 3,61 2,83 2,24
1 2 3 4 5 6 7 8 9 x
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
heurstica: distancia en lnea recta hasta el objetivo.

Es admisible (subestima) y consistente (por la desigualdad triangular)

Problema del laberinto (heurstica)
y
6 7,62 6,71 5,83 5 4,24 3,61 3,16
5 7,28 6,32 5,39 4,47 3,61 2,83 2,24
4 7,07 6,08 5,1 4,12 3,16 2,24 1,41
3 ini 7 6 5 4 3 2 1 fin
2 7,07 6,08 5,1 4,12 3,16 2,24 1,41
1 7,28 6,32 5,39 4,47 3,61 2,83 2,24
1 2 3 4 5 6 7 8 9 x
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
heurstica: distancia en lnea recta hasta el objetivo.

Es admisible (subestima) y consistente (por la desigualdad triangular)

7 <= 1,41+6,08
Problema del laberinto (heurstica)
y
6 58 45 34 25 18 13 10
5 53 40 29 20 13 8 5
4 50 37 26 17 10 5 2
3 ini 49 36 25 16 9 4 1 fin
2 50 37 26 17 10 5 2
1 53 40 29 20 13 8 5
1 2 3 4 5 6 7 8 9 x
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
heurstica: cuadrado de la distancia en lnea recta hasta el objetivo.
Ni admisible (sobreestima) ni consistente
Problema del laberinto (escalada)
y
6 58 45 34 25 18 13 10
5 53 40 29 20 13 8 5
4 50 37 26 17 10 5 2
3 ini 49 36 25 16 9 4 1 fin
2 50 37 26 17 10 5 2
1 53 40 29 20 13 8 5
1 2 3 4 5 6 7 8 9 x
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
heurstica: cuadrado de la distancia en lnea recta hasta el objetivo.
Ni admisible (sobreestima) ni consistente
49 > 2 + 37!
Problema del laberinto (escalada)
y
6 7,62 6,71 5,83 5 4,24 3,61 3,16
5 7,28 6,32 5,39 4,47 3,61 2,83 2,24
4 7,07 6,08 5,1 4,12 3,16 2,24 1,41
3 ini 7 6 5 4 3 2 1 fin
2 7,07 6,08 5,1 4,12 3,16 2,24 1,41
1 7,28 6,32 5,39 4,47 3,61 2,83 2,24
1 2 3 4 5 6 7 8 9 x
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
heurstica: distancia en lnea recta hasta el objetivo. El laberinto
tiene dos soluciones.
f (estado) = h(estado)
1
2 3
4
5
6
7
8
9
10 11
12
13
14
15
16
17
18
19
20 21
22
23
24
1
3
4 5 6 7 8 9 10
11
12
13
2
Problema laberinto (A*)
Laberinto con dos soluciones
y
6 4 5 6 7 8 9 10
5 3 4 5 6 15 16 11
4 2 3 4 7 14 17 12
3 ini 1 2 3 8 13 18 13 fin
2 12 11 10 9 12 19 22
1 13 12 11 10 11 20 21
1 2 3 4 5 6 7 8 9 x
Coste del camino ptimo
desde el estado inicial ( g )
Algoritmo A* ( f = g + h)
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
2 2
) ( ) ( ) , (
obj obj
y y x x y x h
ENCUENTRA EL PTIMO!
No encuentra el ptimo
y
6 62 50 40 32 26 22 20
5 56 44 34 26 28 24 16
y 52 40 30 24 24 22 14
3 ini 50 38 28 24 22 22 14 fin
2 62 48 36 26 22 24 24
1 66 52 40 30 24 28 26
1 2 3 4 5 6 7 8 9 x
y
6 11,6 11,7 11,8 12 12,2 12,6 13,2
5 10,3 10,3 10,4 10,5 18,6 18,8 13,2
4 9,07 9,08 9,1 11,1 17,2 19,2 13,4
3 ini 8 8 8 12 16 20 14 fin
2 19,1 17,1 15,1 13,1 15,2 21,2 23,4
1 20,3 18,3 16,4 14,5 14,6 22,8 23,2
1 2 3 4 5 6 7 8 9 x
Puzzle de dos dimensiones
Las figuras a) y b) muestran los estados inicial y final respectivamente de
un puzzle de dos dimensiones con tres piezas (A, B y C) que pueden
moverse en las cuatro direcciones, siempre y cuando los lmites del
tablero, las casillas negras (obstculos que no se mueven) y las otras dos
piezas no se lo impidan.
Se pide:
1. Establecer las acciones y encontrar una heurstica admisible

2. Dibujar el espacio de estados que se genera al aplicar el algoritmo A*
explorando en un grafo. Pngase especial inters en indicar claramente los
distintos valores que forman la informacin que permite valorar cada nodo.


Estado
Inicial
Estado
Objetivo
C
A
B
0
C
A
B
5: f'=10, g=1, h'=9
C
A
B
4: f'=8, g=1, h'=7
C
A
B
3: f'=8, g=1, h'=7
C
A
B
2: f'=10, g=1, h'=9
C
A
B
1: f'=9, g=1, h'=8
1
C
A
B
8: f'=10, g=2, h'=8
C
A
B
7: f'=8, g=2, h'=6
C
A
B
6: f'=8, g=2, h'=6
2
C
A
B
12: f'=10, g=3, h'=7
C
A
B
11: f'=8, g=3, h'=5
C
A
B
10: f'=8, g=3, h'=5
C
A
B
9: f'=10, g=3, h'=7
3
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
0: f =8 , g=0, h=8
1: f =8 , g=1, h=7
C
A
B
0
C
A
B
5: f'=10, g=1, h'=9
C
A
B
4: f'=8, g=1, h'=7
C
A
B
3: f'=8, g=1, h'=7
C
A
B
2: f'=10, g=1, h'=9
C
A
B
1: f'=9, g=1, h'=8
1
C
A
B
8: f'=10, g=2, h'=8
C
A
B
7: f'=8, g=2, h'=6
C
A
B
6: f'=8, g=2, h'=6
2
C
A
B
12: f'=10, g=3, h'=7
C
A
B
11: f'=8, g=3, h'=5
C
A
B
10: f'=8, g=3, h'=5
C
A
B
9: f'=10, g=3, h'=7
3
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
C
A
B
0
C
A
B
5: f'=10, g=1, h'=9
C
A
B
4: f'=8, g=1, h'=7
C
A
B
3: f'=8, g=1, h'=7
C
A
B
2: f'=10, g=1, h'=9
C
A B
1: f'=9, g=1, h'=8 1
C
A B
8: f'=10, g=2, h'=8
C
A B
7: f'=8, g=2, h'=6
C
A
B
6: f'=8, g=2, h'=6
2
C
A
B
12: f'=10, g=3, h'=7
C
A
B
11: f'=8, g=3, h'=5
C
A
B
10: f'=8, g=3, h'=5
C
A
B
9: f'=10, g=3, h'=7
3
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
8 10 8 8
10
8
8 8
10
10 8 8 10
10
8
10

C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
C
A
B
18: f'=8, g=5, h'=3
C
A
B
17: f'=8, g=5, h'=3
C
A
B
16: f'=10, g=5, h'=5 5
C
A
B
22: f'=8, g=6, h'=2
C
A
B
21: f'=8, g=6, h'=2
C
A
B
20: f'=10, g=6, h'=4
C
A
B
19: f'=10, g=6, h'=4
6
C
A
B
24: f'=8, g=7, h'=1
C A
B
23: f'=10, g=7, h'=3 7
C A
B
27: f'=8, g=8, h'=0
C
A
B
26: f'=10, g=8, h'=2
C A
B
25: f'=10, g=8, h'=2 8
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
C
A
B
18: f'=8, g=5, h'=3
C
A
B
17: f'=8, g=5, h'=3
C
A
B
16: f'=10, g=5, h'=5
5
C
A
B
22: f'=8, g=6, h'=2
C
A
B
21: f'=8, g=6, h'=2
C
A
B
20: f'=10, g=6, h'=4
C
A
B
19: f'=10, g=6, h'=4
6
C
A
B
24: f'=8, g=7, h'=1
C
A
B
23: f'=10, g=7, h'=3
7
C A
B
27: f'=8, g=8, h'=0
C
A
B
26: f'=10, g=8, h'=2
C A
B
25: f'=10, g=8, h'=2 8
8 10 8 8
10
8
8 8
10

10 8 8 10
10
8
10
C
A
B
0
C
A
B
5: f'=10, g=1, h'=9
C
A
B
4: f'=8, g=1, h'=7
C
A
B
3: f'=8, g=1, h'=7
C
A
B
2: f'=10, g=1, h'=9
C
A B
1: f'=9, g=1, h'=8 1
C
A B
8: f'=10, g=2, h'=8
C
A B
7: f'=8, g=2, h'=6
C
A
B
6: f'=8, g=2, h'=6
2
C
A
B
12: f'=10, g=3, h'=7
C
A
B
11: f'=8, g=3, h'=5
C
A
B
10: f'=8, g=3, h'=5
C
A
B
9: f'=10, g=3, h'=7
3
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
10
8 8
10 10 8
8

C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
C
A
B
18: f'=8, g=5, h'=3
C
A
B
17: f'=8, g=5, h'=3
C
A
B
16: f'=10, g=5, h'=5 5
C
A
B
22: f'=8, g=6, h'=2
C
A
B
21: f'=8, g=6, h'=2
C
A
B
20: f'=10, g=6, h'=4
C
A
B
19: f'=10, g=6, h'=4
6
C
A
B
24: f'=8, g=7, h'=1
C A
B
23: f'=10, g=7, h'=3 7
C A
B
27: f'=8, g=8, h'=0
C
A
B
26: f'=10, g=8, h'=2
C A
B
25: f'=10, g=8, h'=2 8
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
C
A
B
18: f'=8, g=5, h'=3
C
A
B
17: f'=8, g=5, h'=3
C
A
B
16: f'=10, g=5, h'=5
5
C
A
B
22: f'=8, g=6, h'=2
C
A
B
21: f'=8, g=6, h'=2
C
A
B
20: f'=10, g=6, h'=4
C
A
B
19: f'=10, g=6, h'=4
6
C
A
B
24: f'=8, g=7, h'=1
C
A
B
23: f'=10, g=7, h'=3
7
C A
B
27: f'=8, g=8, h'=0
C
A
B
26: f'=10, g=8, h'=2
C A
B
25: f'=10, g=8, h'=2 8
8 10 8 8
10
8
8 8
10

10 8 8 10
10
8
10
C
A
B
0
C
A
B
5: f'=10, g=1, h'=9
C
A
B
4: f'=8, g=1, h'=7
C
A
B
3: f'=8, g=1, h'=7
C
A
B
2: f'=10, g=1, h'=9
C
A B
1: f'=9, g=1, h'=8 1
C
A B
8: f'=10, g=2, h'=8
C
A B
7: f'=8, g=2, h'=6
C
A
B
6: f'=8, g=2, h'=6
2
C
A
B
12: f'=10, g=3, h'=7
C
A
B
11: f'=8, g=3, h'=5
C
A
B
10: f'=8, g=3, h'=5
C
A
B
9: f'=10, g=3, h'=7
3
C
A
B
15: f'=10, g=4, h'=6
C
A
B
14: f'=8, g=4, h'=4
C
A
B
13: f'=10, g=4, h'=6
4
10
8 8
10 10 8
8
10 8
10 10 8
Problema misionero
y canbales
En la orilla de un ro hay 3 misioneros y 3 canbales y todos ellos
pretenden cruzar al otro lado. La barca que se utiliza para cruzarlo
solo tiene capacidad para dos personas, con lo que alguien ha de
estar volviendo siempre a la orilla inicial mientras quede gente sin
cruzar. Adems, si en alguna ocasin y en cualquiera de las orillas se
encuentran un nmero mayor de canbales que de misioneros, los
primeros se comern a los segundos.
1. Cmo representaras los estados?
2. Cules serian los operadores?
3. Qu heursticas existen para
este
problema? Son admisibles?

Problema misioneros - ESTADO
ESTADO: Se podra indicar la posicin de la barca, junto con el
nmero de misioneros y canbales que hay en cada lado.
Se podra pensar que, dado que el nmero de personas en el extremo nal
puede calcularse a partir de los que hay en el inicial, basta con indicar la
posicin de la barca y los misioneros y canbales que quedan en el extremo
inicial. Sin embargo, la primera aproximacin permite describir ms
fcilmente las precondiciones y efectos de los operadores, por lo que
mantenemos la representacin inicial. Adems, el espacio de estados tiene
el mismo tamao e idntica semntica con ambas representaciones.
Formalmente, un estado ser representado por una terna (M
i
, C
i
,
B, M
f
,C
f
) en la que:
B [i, f] indica la posicin de la barca, por lo que toma el valor i si est
en el extremo inicial, o f si est en el nal
Mi, Ci, Mf, Cf [0,..., 3] indican el nmero de misioneros y canbales que
quedan en el extremo inicial y nal del ro, respectivamente
De esta manera, el estado inicial se representa como (3, 3, i, 0, 0) y
el estado nal como (0, 0, f, 3, 3)

Problema misioneros - ACCIONES
Se dispone de 5 acciones que transportan personas de la orilla
x a la orilla y:
Mover1C(x, y) transporta 1 canbal desde la orilla x hasta la orilla y
Mover2C(x, y) transporta 2 canbales desde la orilla x hasta la orilla y
Mover1M(x,y) transporta 1 misionero desde la orilla x hasta la orilla y
Mover2M(x,y) transporta 2 misioneros desde la orilla x hasta la orilla y
Mover1M1C(x,y) transporta 1 misionero y un cabinal desde x hasta y
El modelo de transiciones debe representar las precondiciones
de cada accin y sus efectos.
Modelo transiciones
La persona debe estar en la orilla para moverse
La barca debe estar en la orilla
Evitamos movimientos que llevan a que haya
Mas canbales que misioneros en una orilla.
1
2
3
3 grupos de precondiciones
Misioneros y canbales (heursticas)
Vamos a obtener las heursticas por relajacin del problema original.
Para dicha relajacin, partimos de las precondiciones expuestas.
Eliminar primer grupo de precondiciones. Si eliminamos ese primer grupo de
condiciones, se obtiene un problema relajado que no parece ser mucho
ms fcil de resolver que el problema original, por lo que no tiene mucho
sentido.
Eliminar segundo grupo de precondiciones. Se puede asumir que hay infinitas
barcas tanto en un lado como en otro. Este problema tiene una solucin muy
sencilla, que es asumir que siempre viajan un canbal y un misionero juntos,
con la accin Mover1M1C(i,f). Por tanto, la heurstica resultante de este
problema relajado es:



asumiendo que en el estado n se cumplen los requisitos definidos por el grupo
de precondiciones 3.

?
h
1
(n) =
C
i
+ M
i
2
Misioneros y canbales (heursticas)
Vamos a obtener las heursticas por relajacin del problema original. Para
dicha relajacin, partimos de las precondiciones expuestas.
Al eliminar el tercer grupo de condiciones, obtenemos un problema relajado en el
que los canbales nunca se comen a los misioneros. Entonces, en cada viaje de
ida y vuelta, podemos transportar a una persona (dado que la otra tendr que
volver para llevar la barca). Por tanto, la heurstica resultante es:


donde orilla(n) = 1 si en el estado n la barca est en la orilla i (B = i), y orilla(n) = 0 si la
barca la orilla final (B = f).
Si eliminamos el grupo de precondiciones 2 y 3 a la vez es equivalente a
eliminar solo la precondicin 2.

h
2
(n) = 2(C
i
+M
i
) orilla(n)
Misioneros y canbales (heursticas)
Las dos heursticas son admisibles, puesto que son resultado de
relajar el problema original.
Para decidir qu heurstica elegir, h1 o h2, estudiamos cul es la
ms informada, puesto que ser la que, siendo admisible,
tendr un valor ms cercano a h

. Se observa fcilmente que


la ms informada es h
2
, puesto que h
1
(n) h
2
(n), sea cual sea el
valor de C
i
y de M
i
para el estado n. Por tanto, elegimos h
2
(n).

h
1
(n) =
C
i
+ M
i
2
h
2
(n) = 2(C
i
+M
i
) orilla(n)
Misioneros y canbales (exploracin)
Aplicar el algoritmo de bsqueda A* sobre la representacin
del problema de los misioneros y los canbales. Especifica
cundo un nodo del rbol de bsqueda es expandido y
cundo es slo generado. Utiliza la heurstica resultante de
relajar el tercer grupo de precondiciones.


A* en grafo
Aplicar el algoritmo de
bsqueda A* en grafo al
siguiente grafo de estados. El
nodo inicial es A y hay un solo
nodo objetivo, que en este caso
es Z. A cada arco se le ha
asociado un coste y a cada
nodo la estimacin de la menor
distancia de ese nodo al nodo
objetivo (hay que asumir que se
trata de una heurstica
admisible). Se pide el orden en
que los nodos son expandidos y
el orden de la solucin. Justifica
tu solucin dibujando en la
siguiente pgina el rbol que se
genera en la bsqueda
indicando: f, g y h, as como el
n de orden en que los nodos
son visitados
80
A
27 B 60
C
70
E
65
D
50
F
50
H
50
G
0
Z
15
10 10
5
3
30
4
30
35
2
5 10
80 A
27 B 60 C 70 E 65 D
50 F
50 H
50 G
0
Z
15
10 10
5
3
30
4
30
35
2
5 10
A
80
0
80
1
B
27
4
31
2
C
60
10
70
4
D
65
10
75
5
E
70
15
85
6
F
50
9
59
3
G
50
44
94
F
50
15
65
F
50
20
70
F
50
18
68
H
50
45
95
H
50
39
89
7
Z
0
41
41
8
Sera correcto si
aadiramos la
restriccin de que slo
Se pueden aplicar
acciones para ir hacia
abajo y no volver
Hacia arriba.
80 A
27 B 60 C 70 E 65 D
50 F
50 H
50 G
0
Z
15
10 10
5
3
30
4
30
35
2
5 10
A
80
0
80
1
B
27
4
31
2
C
60
10
70
4
D
65
10
75
5
E
70
15
85
F
50
9
59
3
G
50
44
94
F
50
15
65
F
50
20
70
F* 50
15
65
H
50
42
92
H
50
39
89
7
Z
0
41
41
8
A* 80
8
88
A* 80
10
98
A* 80
20
100
B* 27
14
41
C
60
14
74
D
60
19
84
E
70
12
82
6
A* 80
30
100
F* 50
69
119
*Nodos expandidos previamente,
no hara falta calcular coste
Minimax / Poda alfa-beta
8 7 3
8 4 10
5 7 2
max
min
8 7 3
8 4 10
5 7 2
max
min
Bsqueda en juegos [7 mi]
Considerar el rbol de juego mostrado abajo. Asumir que el nodo de arriba es un nodo max.
Las etiquetas de los arcos son los movimientos. Los nmeros en el nivel de abajo son los valores
heursticos de esas posiciones.
Completa el rbol de juego utilizando una bsqueda mini-max
Indica las ramas podadas con una poda alfa-beta con una bsqueda de izquierda a
derecha. Indica los valores que van tomando alfa y beta en cada nodo
Reordena las hojas de los nodos de forma que resultara en el mximo nmero de nodos
podados en una poda alfa-beta de izquierda a derecha (indica tambin las ramas
podadas). Reordena los hijos pero preserva las relaciones padre-hijo.

Minimax /Poda Alfa-beta
8 7 3
8 4 10
5 7 2
max
min
4
8 7 3
<=2
4
3
8 4 10
5 7 2
max
min
4
8 4 10
<=2
<=3
4
8 7 3
5 7 2
max
min
4
8 7 3
2
4
3
8 4 10
5 7 2
max
min
Minimax y Poda alfa-beta
Dado el rbol de la figura
1. Seala las estrategia ganadoras, si las hubiera, para un jugador
MAX y para un jugador MIN. Se considera que un nodo terminal es
ganador para MAX si su valor es superior o igual a 6.
Contrariamente, es ganador para MIN si es inferior a 6.
MAX
4 6 7 6 8 9 5 1 6 7 8 6 8 4
Minimax y Poda alfa-beta
Dado el rbol de la figura
Seala las estrategia ganadora, si las hubiera, para un jugador MAX
y para un jugador MIN. Se considera que un nodo terminal es
ganador para MAX si su valor es superior o igual a 6.
Contrariamente, es ganador para MIN si es inferior a 6.
MAX
4 6 7 6 8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX 6
4
6
6
8
1
8
7 8
7
8
4
4
7
MAX tiene dos estrategias
ganadoras => MIN no.
Minimax y Poda alfa-beta
Dado el rbol de la figura
Seala las estrategia ganadora, si el nodo inicial fuera MIN. Se
considera que un nodo terminal es ganador para MAX si su valor es
superior o igual a 6. Contrariamente, es ganador para MIN si es
inferior a 6.
MIN
4 6 7 6 8 9 5 1 6 7 8 6 8 4
MAX
MIN
MAX
MAX
MIN
6 7 9
5
6
5
6
6
8 4
6 8 6
6
MIN no tiene estrategia
ganadora
Minimax y Poda alfa-beta
Dado el rbol de la figura
2. Recorre el rbol de izquierda a derecha, siguiendo el mtodo de
poda alfa-beta, indicando claramente (tachando con una x) los
nodo en que se produce poda. Encuadra /marca los nodos
terminales que no ha sido necesario recorrer. Seala el valor de la
decisin ms acertada para MAX.
MAX
4 6 7 6 8 9 5 1 6 7 8 6 8 4
Marcado de una Poda alfa-beta
Datos a marcar
Los valores de alfa y beta con los que se hace cada llamada recursiva
desde cada nodo. Convenio
Si las llamadas se hacen desde un nodo MAX, alfa (a) ser un valor
que puede ir aumentando, hasta igualar o superar a beta (b), en
cuyo caso se producir una poda alfa. Estas llamadas las
marcaremos con (a=valor
1
, valor
2
), para reslatar que es el cambio
de a el que determina el que haya poda o no.
Si las llamadas se hacen desde un nodo MIN, beta(b) ser un valor
que puede ir disminuyendo, hasta igualar o quedar por debajo de
alfa (a), en cuyo caso se producir una poda beta. Estas llamadas
las marcaremos con (valor
1
, b=valor
2
).
EL segundo dato relacionado con el nodo a marcar, es el resultado que
se devuelve al nodo padre.
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-, b= )
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4 6
(-, b= )
(-,b= 4)
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4 6
(-, b= )
(-,b= 4)
4
(a=4, )
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4 6
(-, b= )
(-,b= 4)
4
(a=4, )
(4, b=)
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4 6
(-, b= )
(-,b= 4)
4
(a=4, )
(4, b=)
7
6
(4, b=7)
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
8
8
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
8
8
(7,b= 8)
(a=7, 8)
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
8
8
(7,b= 8)
(a=7, 8)
4
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
8
8
(7,b= 8)
(a=7, 8)
4
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
8
8
(7,b= 8)
(a=7, 8)
4
7
7
7
7
Marcado de una Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MIN
MAX
4
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
(a=-, )
(-,b= )
(a=-, )
4
(-,b= 4)
6
(a=4, )
(4, b=)
7
(4, b=7)
6
(-, b= )
6
6
(-, b= 6)
(a=-, 6)
(-, b=6)
8
(-, b=6)
9
6
x
Poda
a:
a(=6)=6
6
6
(a=6, )
(6, b=)
(a=6, )
6
(a=6, )
7
7
(6, b=7)
(a=6, 7)
8
Poda
a:
a(=8)>7
x
7
7
(a=7, )
(7,b= )
(a=7, )
8
8
(7,b= 8)
(a=7, 8)
4
7
7
7
7
Cuidado!
Valor con Poda alfa-beta
MAX
4 6
7 6
8 9 5 1 6 7 8 6 8 4
MIN
MAX
MIN
MAX
(a=valor
1
, valor
2
) , alfa puede crecer y marca poda cuando se cruza con b
(valor
1
, b=valor
2
) , beta puede decrecer y marca poda cuando se cruza con a
x
Poda
a:
a(=6)=6
Poda
a:
a(=8)>7
x
7
Cuidado!
MIN
4
6
8
6 8
6
7 8
7
8 4
4
Marcado de una Poda alfa-beta
Poda del rbol comenzando por MIN
MIN
4 6 7 6 8 9 5 1 6 7 8 6 8 4
MAX
MIN
MAX
MAX
MIN
Marcado de una Poda alfa-beta
MIN
4 6
7 6
8 9 5 1
6 7 8 6 8 4
MAX
MIN
MAX
MAX
MIN
6
Poda del rbol comenzando por MIN
(-,b= )
(a=-, )
(-, b= )
4
(a=4,b= )
6
(-, b=6)
(a=-, 6)
7
(a=-, )
6
6
(a=6, )
(6,b= )
(a=6,)
8
(a=8,)
9
9
6
6
(-,b= 6)
(a=-, 6)
(a=6, 9)
6
(-, b=6)
7
6
(-, b=6)
Poda a:
a(=6)=6
6
(-,b= 6)
(a=-,6)
8
6
6
7
7
Poda a:
a(=7)>6
x
(6,b= 9)
(a=6, 9)
5
1
6
(-,b= 6)
Poda a:
a(=6)=6
x x
Valor con Poda alfa-beta
MIN
4 6
7 6
8 9 5 1
6 7 8 6 8 4
MAX
MIN
MAX
MAX
MIN
Poda del rbol comenzando por MIN
Poda a:
a(=6)=6
Poda a:
a(=7)>6
x
Poda a:
a(=6)=6
x x
6
7
6
9
5
5
6
6
6
8
8
6
Inteligencia
Artificial
(30223) Grado en Ingeniera Informtica
.

Você também pode gostar