30/03/2012
1
Planeacin y bsqueda
Programacin de Sistemas AdaptativosUnidad 3: Sistemas inteligentes
Contenidos
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
2
Formulacin de problemas
Repaso DFS y BFS
Bsqueda
Bsqueda sin informacin
Bsqueda con informacin
Planeacin
30/03/2012
2
Motivacional
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
3
Juego: misioneros y canbales
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
4
Se tienen tres misioneros y tres canbales; se desea
cruzarlos al otro lado del ro.
M M M
C C C
30/03/2012
3
Juego: misioneros y canbales
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
5
Se cuenta con un bote que soporta dos personas
mximo.
Si los canbales superan en nmero a los misioneros, se los
comen (!). Por tanto, movimientos que propicien esta
situacin son invlidos.
Considera que el bote no se maneja solo.
http://www.matematicasbachiller.com/juegos/misioneros.html
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
6
Resuelve el juego.
Reflexin:
Qu estrategia seguiste?
Cmo haras un programa que solucione automticamente el
juego?
30/03/2012
4
Problema de las n-reinas
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
7
Se trata de acomodar n reinas en un tablero de ajedrez
de n x n.
SIN que se ataquen.
Por ejemplo, la instancia de 4 reinas considera poner 4 reinas
en un tablero de 4 x 4.
R
R
R R
R
R
R
R
Formulacin de problemas
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
8
Se trata de encontrar una configuracin meta que resuelva el problema.
O la serie de pasos que llevan a ella.
Componentes
Estado inicial configuracin de inicio
Espacio de estados estados (configuraciones) + funcin de sucesin
Meta estado deseado
Costo de seguir una ruta de estados
30/03/2012
5
Tipos de formulacin
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
9
Incremental
Se comienza con un estado vaco
Se van agregando elementos a los estados en cada nivel.
Ejemplo con n-reinas:
Estado inicial: tablero vaco
Se va agregando una reina por nivel
Completa
Cada estado contiene todos los elementos posibles.
Ejemplo con n-reinas:
N-reinas en el tablero
Cada nivel explora algn movimiento especfico
Bsqueda sin informacin
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
10
Representamos el espacio de estados como un rbol.
Aplicamos bsqueda en anchura o profundidad.
Este tipo de bsqueda es el ms genrico.
Por tanto, puede ser ineficiente.
30/03/2012
6
x
a
q
y b
w
m
tn
z e
s v u
f o
x
a
q
y b
w
m tn
z e
s v u
f o
30/03/2012
7
x
a
q
y b
w
x
a
q
y b
w
m tn s v u
z e
30/03/2012
8
Formulacin incremental para n-reinas
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
15
Estado inicial
Tablero vaco
Estados
Configuraciones de 0 a n reinas en el tablero
Funcin de sucesin
Agregar una reina al tablero
Meta
N reinas en el tablero que no se atacan
4-reinas (fs: poner en rengln diferente)
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
16
[ ]
[ (1, 1) ] [ (1, 2) ] [ (1, 3) ] [ (1, 4) ] [ (2, 1) ] [ (2, 2) ]
[ (2, 1) ] [ (2, 2) ] [ (2, 3) ]
30/03/2012
9
Canbales y misioneros
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
17
({MMMCCC (B)}, {})
({MMMCC},
{C (B)})
({MMMC},
{CC (B)})
({MMCCC},
{M (B)})
({MMCC},
{MC (B)})
({MCCC},
{MM (B)})
({MMMCC
(B)}, {C})
({MMMCCC
(B)}, {})
Estado vlido
Estado invlido
Estado repetido
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
18
Busquemos soluciones con
N-reinas
Canbales y misioneros
30/03/2012
10
Bsqueda con informacin
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
19
Se obtiene informacin del contexto.
Se utilizan heursticas.
Un tipo es la bsqueda avariciosa (greedy best first search)
Expande primero los nodos que aparecen ms cercanos a la
meta.
Otros tipos: best-first, A*
Ejemplo (AIMA p. 63)
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
20
Neamt
Iasi
Vaslui
Urziceni
Hirsova
Eforie
Oradea
Zerind
Arad
SibiuFagaras
RimnicuVilcea
Pitesti
Bucarest
Giurgiu
Timisoara
Lugoj
Mehadia
Dobreta Craiova
30/03/2012
11
Tabla de distancias hacia Bucarest
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
21
Arad 366 Mehadia 241
Bucarest 0 Neamt 234
Craiova 160 Oradea 380
Dobreta 242 Pitesti 100
Eforie 161 RimnicuV. 193
Fagaras 176 Sibiu 253
Giurgiu 77 Timisoara 329
Hirsova 151 Urziceni 80
Iasi 226 Vaslui 199
Lugoj 244 Zerind 374
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
22
Arad
Zerind Sibiu Timisoara
FagarasArad
Rimnicu
V.
Sibiu Bucarest
366
374
253 329
176 193
Oradea
366380
30/03/2012
12
Planeacin
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
23
Obtener una secuencia de acciones para alcanzar una meta.
Planeacin clsica
Ambientes completamente observables, determinsticos, finitos y estticos.
Formas de bsqueda
Hacia adelante (progresin)
Se aplican las acciones posibles hasta llegar a la meta.
Hacia atrs (regresin)
Se parte desde la meta hasta el estado inicial.
Lenguaje STRIPS
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
24
STanford Research Institute Problem Solver
Utilizado para describir problemas de planeacin.
Describe lo siguiente:
Estados
Meta
Acciones
Cada accin va acompaada de precondiciones y
efectos.
Se hace uso de la lgica para describir el problema.
30/03/2012
13
Ejemplo zapatos
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
25
Una persona desea ponerse los zapatos. Se sabe que para
ello debe primero ponerse los calcetines.
Descripcin con STRIPS
Init()
Goal(ZapatoIzqPuesto ZapatoDerPuesto)
Ejemplo zapatos
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
26
Action(ZapatoIzq, PRECOND: CalcetinIzqPuesto,
EFECTO: ZapatoIzqPuesto )
Action(CalcetinIzq, EFECTO: CalcetinIzqPuesto)
Action(ZapatoDer, PRECOND: CalcetinDerPuesto,
EFECTO: ZapatoDerPuesto )
Action(CalcetinDer, EFECTO: CalcetinDerPuesto)
30/03/2012
14
Ejemplo zapatos
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
27
Plan: [CalcetinIzq, CalcetinDer, ZapatoIzq, ZapatoDer]
Otro plan: [CalcetinIzq, ZapatoIzq, CalcetinDer,
ZapatoDer]
Toma, chango, tu banana
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
28
Se tiene en un laboratorio a:
un mono (en un punto A)
un racimo de pltanos que cuelga del techo (en un punto B)
una caja que permitira al mono alcanzar los pltanos si se sube
en ella (en un punto C)
El mono y la caja tienen altura Baja, pero si el mono sube
a la caja, su altura cambia a Alta.
30/03/2012
15
Toma, chango, tu banana
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
29
Acciones:
Ir de un lugar a otro
Empujar un objeto de un lugar a otro
Subir a un objeto
Bajar de un objeto
Tomar un objeto
Mono con STRIPS
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
30
Init(En(A, Mono), En(B, Bananas), En(C, Caja), SinBananas)
Goal(ConBananas)
Action( Ir(x,y)
PRECOND: En(x, Mono)
EFFECT: En(x, Mono) En(y, Mono) )
30/03/2012
16
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
31
Action( EmpujarCaja(x, y)
PRECOND: En(x, Mono) En(x, Caja)
EFFECT: En(x, Mono) En(x, Caja) En(y, Mono) En(y, Caja) )
Action( SubirACaja
PRECOND: En(x, Mono) En(x, Caja)
EFECTO: MonoBajo MonoAlto )
Action( TomarBananas
PRECOND: MonoAlto En(B, Mono)
EFECTO: SinBananas ConBananas
Resumen
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
32
Componentes de un problema?
Bsqueda sin informacin?
Bsqueda con informacin?
Planeacin?
30/03/2012
17
Referencias
Programacin de Sistemas Adaptativos:
Planeacin y bsqueda
33
Neapolitan, Richard y Kumarss Naimipour . Foundations
of Algorithms Using C++ Pseudocode. Jones and Bartlett
Publishers, Massachusetts, 1998. 2da. edicin.
Russell, Stuart y Peter Norvig. Artificial Intelligence: A
Modern Approach. Prentice Hall, New Jersey, 2003, 2 ed.