Buscando automatas

59
Resolviendo Problemas Buscando Soluciones Tomás Arredondo Vidal 16/6/2010

description

inteligencia artificial

Transcript of Buscando automatas

  • 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