Inteligencia Artificial Resolver problemas mediante búsqueda

Documentos relacionados
Inteligencia Artificial Búsqueda informada y exploración

Semana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco.

ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

RESOLUCIÓN DE PROBLEMAS, BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

Resolución de Problemas

Búsqueda en espacio de estados

Búsqueda Heurística I

Búsqueda Heurística. Branch and Bound, Best First Search A, A IDA Búsqueda local (Hill climbing, Simulated annealing, Alg.

Inteligencia Artificial Búsqueda informada y exploración

Búsqueda en espacio de estados

25/09/2014 BÚSQUEDA NO INFORMADA / BÚSQUEDA CIEGA INTRODUCCIÓN BÚSQUEDA SUPOSICIONES DEL ENTORNO FORMULAR-BUSCAR-EJECUTAR

Inteligencia Artificial

Inteligencia Artificial Búsqueda informada y exploración

Tema 3: Técnicas básicas de búsqueda para la resolución de problemas

Intel.ligència Artificial APUNTS D INTEL.LIGÈNCIA ARTIFICIAL. Enginyeria en Informàtica. Departament de Llenguatges i Sistemes Informàtics

Algoritmos. Diseño de algoritmos por inducción. Alberto Valderruten. Dept. de Computación, Universidade da Coruña

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

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

Intel.ligència Artificial APUNTS DE RESOLUCIÓ DE PROBLEMES. Grau en Informàtica. Departament de Llenguatges i Sistemes Informàtics CURS 2011/2012 1Q

3. Métodos clásicos de optimización lineal

Apellidos:... Nombre:...

Inteligencia Artificial

Búsqueda Informada. Algoritmos primero el mejor Algoritmos de búsqueda local

Conjuntos disjuntos (Relaciones de equivalencia)

Tema 07: Backtraking. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

PROGRAMACIÓN LINEAL ENTERA

Lic. Carmen Rosa Garcia Perez. Cruz Urrelo Teofilo. Hilari Orozco Sonia Nidia. Tonore Cholima Luis Miguel

Introducción a la Robótica

Tema: Búsqueda a Ciegas (No Informada).

Tarea 0. Fecha de entrega: 10 de octubre de de octubre de La tarea se entrega en una única exhibición.

FUNCIONES. Definición de función. Ejemplos.

Algoritmos: Algoritmos voraces

INGENIERÍA EN SISTEMAS Y COMUNICACIONES

Hoja de Problemas Tema 2 Búsqueda no-informada

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Práctica 2 Métodos de búsqueda para funciones de una variable

Complementos de Matemáticas, ITT Telemática

Planteamiento General

Agentes que resuelven problemas

PROGRAMACIÓN LINEAL. 1. Introducción

4. Método Simplex de Programación Lineal

Dirección de Operaciones. SESIÓN # 5: El método simplex. Segunda parte.

Conceptos Básicos de Funciones

Curso /09/12. Inteligencia Artificial (30223) Lección 3. Resolución de Problemas y Búsqueda. Índice. Resolución de problemas

Ejemplo Traza la gráfica de los puntos: ( 5, 4), (3, 2), ( 2, 0), ( 1, 3), (0, 4) y (5, 1) en el plano cartesiano.

Algoritmos de búsqueda con espacio de memoria limitado

Algoritmos y Diagramas de flujo

ALGORITMO DE OPTIMIZACIÓN BASADO EN EL APAREAMIENTO DE LAS ABEJAS(HBMO). UN NUEVO ENFOQUE HEURÍSTICO DE OPTIMIZACIÓN.

REPRESENTACIÓN GRÁFICA DE SISTEMAS DE INFORMACIÓN: EL FLUJOGRAMA.

Pasos en el Método Simplex

La programación lineal hace referencia al uso eficiente o distribución de recursos limitados, para alcanzar unos objetivos determinados.

Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales

Complejidad de Algoritmos

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

1. Conocimientos previos. 1 Funciones exponenciales y logarítmicas.

Tema 3: Técnicas básicas de

UNIDAD I. ALGORITMOS

UNIDAD DIDÁCTICA 2: SISTEMAS DE ECUACIONES LINEALES

REGLAS DE CODD DEL MODELO RELACIONAL

TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES 1

Sistemas Inteligentes. 3 o Ingeniería Informática

SISTEMAS INTELIGENTES

Por Sustitución: y= 2x+6 x + 3 (2x+6) = 4 x + 6x + 18 = 4 7x = -14 x= -2 y=2 (-2)+6 y=2. Por Igualación: 6x+18=4-x 7x=-14 x= -2 y=2 (-2)+6 y=2

METODO SIMPLEX ANALISIS DE SENSIBILIDAD Y DUALIDAD

P. A. U. LAS PALMAS 2005

CAPÍTULO 1 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

PROBLEMA DEL TRANSPORTE VRP (VEHICLE ROUTING PROBLEM)

PRÁCTICA 4. EL ENTORNO DE UN ROBOT EN C++

Programa de teoría. Algoritmos y Estructuras de Datos II. 3. Algoritmos voraces. 1. Análisis de algoritmos 2. Divide y vencerás

Apellidos:... Nombre:... Ejercicio 1 (Cuestiones) [2 puntos] Responder a las siguientes cuestiones de manera clara y concisa:

Ejemplo : PROGRAMACIÓN LINEAL

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES. Unidad didáctica 4. Números reales y números complejos

Búsqueda Heurística II

Ejemplo. Ejemplo. 8-puzzle. Formulación de un Problema de Búsqueda. Inteligencia Artificial 2º cuatrimestre de Algoritmos de Búsqueda

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

TEMA 2: CICLO DE VIDA DEL SOFTWARE. Profesora: Elisa Herrmann

25/09/2014 BÚSQUEDA INFORMADA BÚSQUEDA VORAZ PRIMERO EL MEJOR (BÚSQUEDA ÁVARA / BÚSQUEDA PRIMERO EL MEJOR) EJEMPLO BÚSQUEDA VORAZ

PERIODO 2 SOFTWARE MANEJADOR DE BASE DE DATOS CONCEPTOS BASICOS DE MICROSOFT ACCESS

Instituto tecnológico de Minatitlán. Investigación de operaciones Ing. Erika Lissette Minaya mortera Unidad 3: programación no lineal

Tema 4: Búsqueda informada mediante técnicas heurísticas

Información técnica Disyuntor

Inteligencia Artificial Inferencia en lógica

Teoría de Colas. Investigación Operativa II. Javier Alarcón Rafael Cáceres Jenny Martínez Pamela Quijada Grupo N 9

1.4 SISTEMAS HOMOGÉNEOS DE ECUACIONES. 36 CAPÍTULO 1 Sistemas de ecuaciones lineales y matrices

DEFINICIÓN DE LOS PROBLEMAS; IDENTIFICACIÓN DE LOS FACTORES Y LOS OBJETIVOS. UNIVERSIDAD EL BOSQUE. HÉCTOR IVÁN HURTATIS ESPINOSA.

4.2. Relaciones de equivalencia

PASO 1: Poner el problema en forma estandar.

Problemas de Recursividad

Métodos de Inteligencia Artificial

Estructuras de datos: Conjuntos disjuntos

Sistemas de Ecuaciones Lineales

Polinomios. 1.- Funciones cuadráticas

PARTE II: ALGORÍTMICA

Estructuras de control

Definición de problemas de programación lineal. Método gráfico. Método del SIMPLEX. Método de las dos fases. Análisis de sensibilidad y problema dual

Tablas Hash y árboles binarios

TEMA 5: INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE. Definición de Ingeniería del Software

Inteligencia Artificial e Ingeniería del Conocimiento. 4 o Ingeniería Informática

2.2. CREAR Y MODIFICAR CAMPOS.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Transcripción:

Inteligencia Artificial Resolver problemas mediante búsqueda Primavera 2007 profesor: Luigi Ceccaroni

Resolución de problemas Se quiere: Resolver automáticamente un problema Se necesita: Una representación del problema Algoritmos que usen alguna estrategia para resolver el problema definido en esa representación 2

Definición de un problema Si se abstraen los elementos de un problema se pueden identificar: Un punto de partida Un objetivo a alcanzar Acciones a disposición para resolver el problema Restricciones sobre el objetivo (p.e., de costo) Elementos del dominio que son relevantes en el problema (p.e., conocimiento incompleto del punto de partida) 3

Representación de problemas Existen diferentes formas de representar problemas para resolverlos de manera automática Representaciones generales: Espacio de estados. Un problema se divide en un conjunto de pasos de resolución desde el inicio hasta el objetivo. Reducción a sub-problemas. Un problema se descompone en una jerarquía de sub-problemas. Representaciones para problemas específicos: Resolución de juegos Satisfacción de restricciones 4

Representación de problemas: estados Se puede definir un problema por los elementos que intervienen y sus relaciones. En cada instante de la resolución de un problema esos elementos tendrán unas características y relaciones específicas. Se denomina estado a la representación de los elementos que describen el problema en un momento dado. Se distinguen dos estados especiales: el estado inicial (punto de partida) y el estado final (en general, el objetivo del problema). Qué descriptores incluir en el estado? Ej.: la localización 5

Modificación del estado: función sucesor Para poder moverse entre los diferentes estados se necesita una función sucesor (descripción de las posibles acciones). Función sucesor (o conjunto de operadores): función de transformación sobre la representación de un estado que lo convierte en otro estado La función sucesor define una relación de accesibilidad entre estados. Representación de la función sucesor: Condiciones de aplicabilidad Función de transformación 6

Espacio de estados El conjunto de todos los estados alcanzables desde el estado inicial conforma lo que se denomina espacio de estados. Representa todos los caminos que hay entre todos los estados posibles de un problema. El espacio de estados forma un grafo (o mapa) en el cual los nodos son estados y los arcos son acciones. La solución del problema está dentro de ese mapa. 7

Solución de un problema en el espacio de estados Solución: Secuencia de pasos que llevan del estado inicial al final (secuencia de operadores) o también el estado final Tipos de solución: una cualquiera, la mejor, todas Costo de una solución: gasto en recursos de la aplicación de los operadores a los estados; puede ser importante o no según el problema y qué tipo de solución busquemos 8

Descripción de un problema en el espacio de estados Definir el espacio de estados (explícita o implícitamente) Especificar el estado inicial Especificar el estado final o las condiciones que cumple Especificar los operadores de cambio de estado (condiciones de aplicabilidad y función de transformación) Especificar el tipo de solución: La secuencia de operadores o el estado final Una solución cualquiera, la mejor (definición de costo), todas 9

Ejemplo: 8 puzzle Espacio de estados: configuraciones de 8 fichas en el tablero Estado inicial: cualquier configuración Estado final: fichas en orden específico Acción: mover hueco Condiciones: el movimiento está dentro del tablero Transformación: mover el hueco a la Izquierda, Derecha, Arriba y Abajo Solución: Qué pasos + El menor número 1 4 7 2 3 5 6 8 10

Ejemplo: n reinas (n = 4, n = 8) 11

Ejemplo: n reinas Espacio de estados: configuraciones de 0 a n reinas en el tablero con sólo una por fila y columna Estado inicial: configuración sin reinas en el tablero Estado final: configuración en la que ninguna reina se mata entre sí Operadores: colocar una reina en una fila y columna Condiciones: la reina no es matada por ninguna ya colocada Transformación: colocar una reina más en el tablero en una fila y columna determinada Solución: una solución, pero no importan los pasos 12

Ejercicios en grupos Ejercicio en grupos (15 m) Los alumnos se reúnen en los grupos base de 4. Cada grupo se divide en dos parejas. Cada pareja resuelve el problema usando un algoritmo de los dos propuestos. (entregable #2.1) Reunión de expertos (10 m) Explicación a los compañeros del grupo (10 m) Conclusión, resumen y planificación actividades fuera de clase (5 m) El profesor explica en detalle en que consisten las actividades fuera de clase a llevar a cabo. (entregable #2.2) 13

Búsqueda en el espacio de estados Se define una representación del espacio de estados para poder implementar algoritmos que busquen soluciones. La resolución de un problema con esta representación pasa por explorar el espacio de estados. Se empieza del estado inicial y se evalúa cada paso hasta encontrar un estado final. En el caso peor se exploran todos los posibles caminos entre el estado inicial del problema y el estado final. 14

Estructura del espacio de estados Estructuras de datos: árboles y grafos Estados = nodos Operadores = arcos entre nodos (dirigidos) Árboles: sólo un camino lleva a un nodo Grafos: varios caminos pueden llevar a un nodo 15

Algoritmo general de búsqueda en árboles (descripción informal) función Búsqueda-Árboles(problema,estrategia) devuelve una solución o fallo inicializa el árbol de búsqueda usando el estado inicial del problema bucle hacer si no hay candidatos para expandir entonces devolver fallo escoger, de acuerdo a la estrategia, un nodo hoja para expandir [selección] si el nodo contiene un estado objetivo entonces devolver la correspondiente solución en otro caso expandir el nodo y añadir los nodos resultado al árbol de búsqueda Para grafos el algoritmo es equivalente. La estructura se construye a medida que se hace la búsqueda. La selección del siguiente nodo determinará el tipo de búsqueda (orden de selección o expansión). Es necesario definir un orden entre los sucesores de un nodo (orden de generación). 16

Algoritmo general: nodos Nodos abiertos: Estados generados pero aún no visitados (o explorados) Estados visitados pero aún no expandidos Nodos cerrados: estados visitados y que ya se han expandido Habrá una estructura para almacenar los nodos abiertos. Las diferentes políticas de orden de expansión y de inserción de los nodos generados en la estructura determinan el tipo de búsqueda. Si se explora un grafo puede ser necesario tener en cuenta los estados repetidos (esto significa tener una estructura para los nodos cerrados). 17

Características de los algoritmos Completitud: encontrará una solución? Complejidad temporal: cuánto tardará? Complejidad espacial: cuánta memoria gastará? Optimización: encontrará la solución óptima? 18

Algoritmo general de búsqueda (descripción formal) función Búsqueda-Grafos(problema,frontera) devuelve una solución, o fallo cerrado conjunto vacío frontera Insertar(Hacer-Nodo(Estado-Inicial[problema]),frontera) bucle hacer si Vacia?(frontera) entonces devolver fallo nodo Borrar-Primero(frontera) si Test-Objetivo[problema](Estado[nodo]) entonces devolver Solución(nodo) si Estado[nodo] no está en cerrado entonces añadir Estado[nodo] a cerrado frontera Insertar-Todo(Expandir(nodo,problema),frontera) Variando la estructura de abiertos varía el comportamiento del algoritmo (orden de visita de los nodos). La función Expandir sigue el orden de generación de sucesores definido en el problema (si está definido). 19

Tipos de algoritmos Algoritmos de búsqueda ciega (o no informada) No tienen en cuenta el coste de la solución en la búsqueda Su funcionamiento es sistemático, siguen un orden de visitas y generación de nodos establecido por la estructura del espacio de búsqueda Ejemplos: primero en anchura primero en profundidad primero en profundidad con profundidad iterativa 20

Tipos de algoritmos Algoritmos de búsqueda heurística (o informada) Utilizan una estimación del coste de la solución para guiar la búsqueda No siempre garantizan el óptimo, ni una solución Ejemplos: ascensión de colinas, primero el mejor, A*, A*PI 21

Búsqueda primero en anchura No expandir nodos de nivel n hasta que todos los nodos de nivel n-1 han sido expandidos Los nodos se visitan y generan por niveles. La estructura para los nodos abiertos es una cola (FIFO). Un nodo es visitado cuando todos los nodos de los niveles superiores y sus hermanos precedentes han sido visitados. Características: Completitud: el algoritmo siempre encuentra una solución. Complejidad temporal: exponencial respecto a la profundidad de la solución O(r p+1 ). Complejidad espacial: exponencial respecto a la profundidad de la solución O(r p+1 ). Optimización: la solución que se encuentra es óptima en número de niveles desde la raíz. 22

Búsqueda primero en profundidad No expandir nodos de nivel n si hay todavía algún nodo de nivel > n pendiente de considerar Los nodos se visitan y generan buscando los nodos a mayor profundidad y retrocediendo cuando no se encuentran nodos sucesores. La estructura para los nodos abiertos es una pila (LIFO). Para garantizar que el algoritmo acabe debe (posiblemente) imponerse un límite en la profundidad de exploración. Características Completitud: si se impone un límite de profundidad, el algoritmo encuentra una solución sólo si ésta existe dentro de ese límite. Complejidad temporal: exponencial respecto a la profundidad del límite de exploración O(r m ). Complejidad espacial: en el caso de no controlar los nodos repetidos el coste es lineal respecto al factor de ramificación y el límite de profundidad O(r m). Si la implementación es recursiva el coste es O(m). Optimización: no se garantiza que la solución sea óptima. 23

Búsqueda primero en profundidad Algoritmo Búsqueda en profundidad limitada (límite: entero) Est_abiertos.insertar(Estado inicial) Actual= Est_abiertos.primero() Mientras no es_final?(actual) y no Est_abiertos.vacía?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) si profundidad(actual) limite entonces Hijos= generar_sucesores(actual) Hijos= tratar_repetidos(hijos, Est_cerrados, Est_abiertos) fsi Est_abiertos.insertar(Hijos) Actual= Est_abiertos.primero() fmientras falgoritmo La estructura de abiertos es ahora una pila. Se dejan de generar sucesores cuando se llega al límite de profundidad. Esta modificación garantiza que el algoritmo acaba. Si se tratan repetidos el ahorro en espacio es nulo. 24

Tratamiento de nodos repetidos En anchura Si el repetido está en la estructura de nodos cerrados, el camino actual tendrá una profundidad igual o mayor al repetido cerrado y se puede olvidar. Si el repetido está en la estructura de nodos abiertos, el camino actual tendrá una profundidad igual o mayor al repetido abierto y se puede olvidar. En profundidad Si el repetido está en la estructura de nodos cerrados, se guarda el camino actual si tiene una profundidad menor. Si el repetido está en la estructura de nodos abiertos, se puede olvidar el camino actual; seguro que tiene una profundidad mayor. 25

Profundidad iterativa (PI) PI combina la complejidad espacial de la búsqueda primero en profundidad con la optimización de la búsqueda primero en anchura. El algoritmo consiste en realizar búsquedas en profundidad sucesivas con un nivel de profundidad máximo acotado y creciente en cada iteración. Así se consigue el comportamiento de la búsqueda primero en anchura pero sin su coste espacial, ya que la exploración es en profundidad. Los nodos se regeneran a cada iteración. PI permite evitar los casos en que la búsqueda primero en profundidad no acaba (existen ramas infinitas). En la primera iteración la profundidad máxima será 1 y este valor irá aumentando en sucesivas iteraciones hasta llegar a la solución. Para garantizar que el algoritmo acabe si no hay solución, se puede definir una cota máxima de profundidad en la exploración. 26

Profundidad iterativa (PI) A B C D E F G H I J K L M N O P Q R S T U 27

Profundidad iterativa (PI) 1,2,7 3,8 4,13 5,18 6,23 Iteración nodos 1 1 2 2,3,4,5,6 3 7, 27 9 10 11 12 14 15 16 17 19 20 21 22 24 25 26 27 28

Búsqueda en profundidad iterativa Algoritmo Búsqueda en profundidad iterativa (límite: entero) prof=1; Est_abiertos.inicializar() Mientras no es_final?(actual) y prof<limite hacer Est_abiertos.insertar(Estado inicial) Actual= Est_abiertos.primero() Mientras no es_final?(actual) y no Est_abiertos.vacía?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) si profundidad(actual) prof entonces Hijos= generar_sucesores(actual) Hijos= tratar_repetidos(hijos, Est_cerrados, Est_abiertos) fsi Est_abiertos.insertar(Hijos) Actual= Est_abiertos.primero() fmientras prof=prof+1 Est_abiertos.inicializar() fmientras falgoritmo 29

Profundidad Iterativa Completitud: el algoritmo siempre encontrará la solución. Complejidad temporal: la misma que la búsqueda en anchura. El regenerar el árbol en cada iteración solo añade un factor constante a la función de coste - O(r p+1 ). Complejidad espacial: igual que en la búsqueda en profundidad - O(r m). Optimización: la solución es óptima igual que en la búsqueda en anchura. 30