buscando automatas
DESCRIPTION
inteligencia artificialTRANSCRIPT
-
Resolviendo Problemas Buscando Soluciones
Toms Arredondo Vidal16/6/2010
-
Resolviendo Problemas Buscando Soluciones
Contenidos Agentes que resuelven problemas Tipos de problemas Formulacin de problemas Ejemplos de problemas Algoritmos bsicos de bsqueda
-
Agentes que resuelven problemas
-
Resolviendo Problemas Buscando Soluciones
Contenidos Agentes que resuelven problemas Tipos de problemas Formulacin de problemas Ejemplos de problemas Algoritmos bsicos de bsqueda
-
Tipos de problemas Deterministico, completamente observable problema
con un estado (single-state) Agente sabe exactamente en que estado esta; solucin es una
secuencia No-observable problema sin sensores (conformant
problem) Agente puede no saber donde esta; solucin es una secuencia
No deterministico y/o parcialmente observable problema de contingencia Percepciones proveen nueva informacin sobre el estado actual Muchas veces se intercala: bsqueda, ejecucin
Espacio de estados desconocido problema de exploracin
-
Ejemplo: Rumania En vacaciones en Rumania; actualmente en
Arad. El vuelo sale maana desde Bucharest Formular objetivo:
Estar en Bucharest Formular problema:
Estados: las ciudades Zcciones : manejar entre ciudades
Encontrar solucin: Secuencia de ciudades, e.g., Arad, Sibiu, Fagaras,
Bucharest
-
Ejemplo: Rumania
-
Resolviendo Problemas Buscando Soluciones
Contenidos Agentes que resuelven problemas Tipos de problemas Formulacin de problemas Ejemplos de problemas Algoritmos bsicos de bsqueda
-
Formulacin de problemasUn problema se define por cuatro tems:
1. Estado inicial e.g ., en Arad"2. Funcin de acciones o sucesor S(x) = set de pares accin-estado
e.g., S(Arad) = {, }3. Test de objetivo, puede ser
explicito, e.g., x = en Bucharest" implcito, e.g., Jaquemate(x)
4. Costo de ruta (aditivo) e.g., suma de distancias, numero de acciones ejecutadas, etc. c(x,a,y) es el costo de paso, se asume 0
Una solucin es una secuencia de acciones que llevan de estado inicial al estado objetivo
-
Seleccionando un espacio de estados
El mundo real es demasiado complejoespacio de estados debe ser abstrado (i.e.
simplificado) para resolver problemase.g., "Arad Zerind" representa un complejo
conjunto de rutas, desvos, paradas, etc Para que sea realizable, cualquier estado real
en Arad debe llevar a un estado real en Zerind"
Solucin (abstracta) = set de rutas reales que son soluciones en la vida real
Cada accin abstracta debera ser mas simple que el problema original
-
Resolviendo Problemas Buscando Soluciones
Contenidos Agentes que resuelven problemas Tipos de problemas Formulacin de problemas Ejemplos de problemas Algoritmos bsicos de bsqueda
-
Ejemplo: vacuum world Un estado, parte en #5.Solucin?
-
Ejemplo: vacuum world Un estado, parte en #5. Solucin? [Derecha, Aspirar]
Sin sensores, parte en {1,2,3,4,5,6,7,8}e.g., Derecha va a {2,4,6,8}
Solucin?
-
Ejemplo: vacuum world Sin sensores, parte en
{1,2,3,4,5,6,7,8} e.g., Derecha va a {2,4,6,8} Solucin?[Derecha,Aspirar,Izq.,Aspirar]
Contingencia No deterministico: Aspirar puede
ensuciar una alfombra limpia Parcialmente observable: ubicacin, mugre en ubicacin actual. Percepcin: [Izq., Limpio], i.e., parte en #5 o #7
Solucin?
-
Ejemplo: vacuum world Sin sensores, parte en
{1,2,3,4,5,6,7,8} e.g., Derecha va a {2,4,6,8} Solucin?[Derecha,Aspirar,Isq.,Aspirar]
Contingencia No deterministico: Aspirar puede
ensuciar una alfombra limpia Parcialmente observable: ubicacin, mugre en ubicacin actual. Percepcin: [Izq., Limpio], i.e., parte en #5 o #7
Solucin? [Der., if Sucio then Aspirar]
-
Grafo de espacio de estados en Vacuum world
estados? acciones? test objetivo? costo ruta ?
-
Grafo de espacio de estados en Vacuum world
estados? entero con ubicacin de polvo y robot acciones? Izquierda, Derecha, Aspirar test objetivo? no hay polvo en ninguna ubicacin costo ruta? 1 por accin
-
Ejemplo: ensamblador robtico
estados?: coordenadas flotantes de los segmentos robticos a las partes siendo ensambladas
acciones? : movimientos continuos de los segmentos test objetivo?: completar ensamblaje costo ruta?: tiempo de ejecucin
-
Resolviendo Problemas Buscando Soluciones
Contenidos Agentes que resuelven problemas Tipos de problemas Formulacin de problemas Ejemplos de problemas Algoritmos bsicos de bsqueda
-
Algoritmos basados en rboles Idea bsica:
offline, exploracin simulada del espacio de estados al generar sucesores de estados ya explorados (i.e.~expandiendo estados )
-
Ejemplo de algoritmo basado en rboles
-
Ejemplo de algoritmo basado en rboles
-
Ejemplo de algoritmo basado en rboles
-
Implementacin: bsqueda genrica basada en rbol
Un estado es una representacin de una configuracin fsica
Un nodo es una estructura de datos que constituye parte de una bsqueda va rboles incluyendo estado, nodo padre, accin, costo de ruta g(x), profundidad
Fringe es una cola que tiene nodos sucesores no explorados
Una funcin Expand crea nuevos nodos, llenando los varios campos y usando la funcin SuccessorFn del problema para crear los estados correspondientes.
-
Implementacin: bsqueda genrica basada en rbol (cont)
-
Estrategias de bsqueda Una estrategia de bsqueda se define al seleccionar un
orden de expansin de nodos Las estrategias se evalan de acuerdo a :
completitud: siempre encuentra una solucin si alguna existe? complejidad temporal: numero de nodos generados complejidad espacial: numero mximo de nodos en memoria optimalidad : siempre encuentra una solucin de mnimo costo?
Complejidad de tiempo y espacio se mide en termino de b: mximo factor del numero de ramas del rbol de bsqueda d: profundidad de solucin de mnimo costo m: profundidad mxima del espacio de estados (puede ser )
-
Estrategias de bsqueda no informadas
Estrategias de bsqueda no informadas usan solo la informacin disponible en la
definicin del problema Bsqueda al ancho primero (i.e. Breadth-
first ) Bsqueda de costo uniforme Bsqueda en profundidad primero Bsqueda en profundidad limitada Bsqueda iterativa en profundidad
-
Bsqueda al ancho primero Expandir nodo no expandido menos
profundo Implementacin:
fringe es cola FIFO, i.e., nuevos sucesores van al final
-
Bsqueda al ancho primero Expandir nodo no expandido menos
profundo Implementacin:
fringe es cola FIFO, i.e., nuevos sucesores van al final
-
Bsqueda al ancho primero Expandir nodo no expandido menos
profundo Implementacin:
fringe es cola FIFO, i.e., nuevos sucesores van al final
-
Bsqueda al ancho primero Expandir nodo no expandido menos
profundo Implementacin:
fringe es cola FIFO, i.e., nuevos sucesores van al final
-
Propiedades de bsqueda al ancho primero
Completo? Si (si b es finito) Tiempo? 1+b+b2+b3+ +bd + b(bd-1) = O(bd+1 ) Espacio? O(bd+1) (mantiene cada nodo en
memoria) Optimo? Si (si costo = 1 por paso)
Espacio es el mayor problema (mas que tiempo) Ejemplo: b=10, 10000 nodos/sec, 1000 bytes/nodo D=2 : Nodos=1100 , Tiempo=.11secs, Mem=1 MB D=6 : Nodos=107 , Tiempo=19 min, Mem=10 GB D=10: Nodos=1011 , Tiempo=129 dias, Mem=101 TB
-
Bsqueda de costo uniforme Bsqueda al ancho es optimo si todos los costos son iguales porque expande
siempre el nodo menos profundo. Por simple extensin encontramos este algoritmo para rboles con costos no
iguales: Expandir nodo no expandido de mnimo costo
Implementacin: fringe = cola ordenada por costo de ruta
Equivalente a bsqueda al ancho si todos los costos son iguales Completo? Si, si costo de paso Tiempo? # nodos con g costo de solucin optima, O(bceiling(C*/ )) en el cual C*
es el costo de la solucin optima Espacio? # nodos con g costo de solucin optima, O(bceiling(C*/ )) Optimo? Si nodos expandidos en orden incremental de g(n)
Esta bsqueda en el pero caso puede ser mucho peor que bd porque al buscar grandes rboles de pasos de costo g pequeo pierde explorar rutas de pasos largos (y posiblemente tiles).
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Bsqueda en profundidad
Expandir nodo mas profundo Implementacin:
fringe es cola LIFO, i.e., poner sucesores al frente
-
Propiedades de bsqueda en profundidad
Completo? No: falla en espacios de profundidad infinita, espacios con loops Modificar para evitar espacios repetidos en el camino
completo en espacios finitos
Tiempo? O(bm): terrible si m mas grande que d Pero si las soluciones son densas puede ser mucho
mas rpido que bsqueda al ancho Espacio? O(bm), i.e., lineal en espacio! Optimo? No
-
Bsqueda limitada en profundidad Igual a bsqueda en profundidad con un limite li.e., nodos en profundidad l no tienen sucesores
Implementacin recursiva:
-
Bsqueda iterada en profundidad
-
Bsqueda iterada en profundidadl =0
-
Bsqueda iterada en profundidadl =1
-
Bsqueda iterada en profundidadl =2
-
Bsqueda iterada en profundidadl =3
-
Bsqueda iterada en profundidad Numero de nodos generados en una bsqueda limitada en
profundidad (DLS) hasta profundidad d con un branching factor b: NDLS = b0 + b1 + b2 + + bd-2 + bd-1 + bd
Numero de nodos generado en una bsqueda iterada en profundidad hasta profundidad d con un branching factor b:
NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + + 3bd-2 +2bd-1 + 1bd
For b = 10, d = 5 , NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456
Saldo adicional = (123,456 - 111,111)/111,111 = 11%
-
Propiedades de bsqueda iterada en profundidad
Completo? Si Tiempo? (d+1)b0 + d b1 + (d-1)b2 + + bd
= O(bd) Espacio? O(bd) Optimo? Si, si costo de paso = 1
-
Resumen de algoritmos
-
Estados repetidos
No se detectar estados repetidos causa que un problema lineal se puede tornar exponencial!
-
Bsqueda con memoria de estados visitados
Para recordar los nodos ya expandidos se almacenan en la closed list
-
Resumen La formulacin del problema requiere generalmente
abstraer detalles del mundo real para definir un estado de espacios que puede ser factiblemente explorado
Hay una variedad de estrategias de bsqueda no informadas (i.e. uninformed search strategies )
Bsqueda iterativa en profundidad utiliza espacio lineal y no mucho mas tiempo que otros algoritmos no informados
-
Resolviendo Problemas Buscando Soluciones
Referencias:[1] S. Russell, P. Norvig, "Artificial Intelligence A Modern
Approach", Prentice Hall, 2003