Resolución de Problemas



Documentos relacionados
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Satisfacción de Restricciones

ALGORITMO HILL CLIMBING

1.0 Juegos en Forma Extensiva

Métodos Heurísticos en Inteligencia Artificial

UNIDAD DE APRENDIZAJE IV

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

MODELOS DE RECUPERACION

Descripción inicial del sistema. Descripción final del sistema. Estado 1 Estado 2 Estado n

GUÍA BÁSICA DE USO DEL SISTEMA RED

Módulo 8: Ofimática básica. Unidad didáctica 2: Conceptos fundamentales en un gestor de base de datos. Access

Teoría del Juego - Juegos Combinatoriales Imparciales

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

REGLAMENTO DEL AJEDREZ. Tablero cuadrado 8x8 de 64 casillas con colores alternados (típicamente blanco y negro).

Los estados financieros proporcionan a sus usuarios información útil para la toma de decisiones

no descompone no descompone no descompone

Búsqueda heurística Prof. Constantino Malagón

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

PARA COMERCIANTES Y AUTÓNOMOS. INFORMACIÓN SOBRE TARJETAS DE CRÉDITO.

D).- APORTACIONES DE RAMA DE ACTIVIDAD. 1.- APORTACIONES DE RAMA DE ACTIVIDAD: NIIF-3.

Ingeniería Técnica en Informática de Gestión

Estimado usuario. Tabla de Contenidos

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

La nueva criba de Eratóstenes Efraín Soto Apolinar 1 F.I.M.E. U.A.N.L. San Nicolás, N.L. México. efrain@yalma.fime.uanl.mx

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Tema : ELECTRÓNICA DIGITAL

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Inteligencia Artificial Búsqueda entre adversarios

Matrices Invertibles y Elementos de Álgebra Matricial

Herramienta Solver. Activar Excel Solver

Base de datos en Excel

Estructuras de Datos y Algoritmos. Árboles de Expresión

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

Instructivo: Alumnos WEB

Capitulo V Administración de memoria

El modelo EOQ básico (Economic Order Quantity) es el más simple y fundamental de todos los modelos de inventarios.

Ejercicios de Programación Lineal

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

1. INVERSA DE UNA MATRIZ REGULAR

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Algorítmica y Lenguajes de Programación. Ordenación (i)

Unidad 5 Utilización de Excel para la solución de problemas de programación lineal

UNIDAD 6. Programación no lineal

Práctica 2 de Microsoft Access

Centro de Capacitación en Informática

POR QUÉ EL VALOR PRESENTE NETO CONDUCE A MEJORES DECISIONES DE INVERSIÓN QUE OTROS CRITERIOS? ( Brealey & Myers )

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Ampliación de Estructuras de Datos

CAPÍTULO II MARCO TEÓRICO ADMNISTRACIÓN DE PROYECTOS CON CPM

A practicar: Interactivos de matemáticas para niños

Uso del programa CALC

INSTRUCCIONES AJEDREZ

Lección 24: Lenguaje algebraico y sustituciones

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

El palacio de la Alhambra: La primera expansión. El favor de los visires

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Q-flow Patrones básicos de Workflow

JOSE VICENTE CONTRERAS JULIO CALCULO INTEGRAL LA ANTIDERIVADA

Métodos generales de generación de variables aleatorias

Contabilidad Orientada a los Negocios

Operaciones con polinomios

Algoritmos sobre Grafos

Liderazgo se genera en el lenguaje

Interoperabilidad de Fieldbus

Teclado sobre una PDA para Personas con Parálisis Cerebral

PROGRAMA DE EDUCACIÓN FINANCIERA

Tema 2 Límites de Funciones

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Representación del conocimiento. Diferencia entre información y conocimiento (1) Diferencia entre información y conocimiento (2) Notas

Educar a los hijos. La estrategia principal: economía de fichas

Análisis de los datos

Contabilidad de Costos

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Reconocimiento de Créditos Automatizado. Módulo de Gestión

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

DISEÑO DEL SOFTWARE TRAFFIC ANALYZER. Analyzer. En este capítulo se reporta el desarrollo que se llevó a cabo para realizar el software

Bioética y toma de decisiones en políticas públicas

ANEXO (NÓMINA DE CANDIDATOS EN SOPORTE INFORMÁTICO

5.1. Organizar los roles

SUPERMERCADO EL LEÓN

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

Ecuaciones de primer grado con dos incógnitas

Cómo gestionar menús en Drupal 7

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Estrategias en Juegos

ARREGLOS DEFINICION GENERAL DE ARREGLO

Tema 1: Fundamentos de lógica, teoría de conjuntos y estructuras algebraicas: Apéndice

Unidad 2: Gestión de Procesos

Informática Aplicada a la Gestión de Empresas (IAGE) Parte III Excel e Internet Tema 2

Una nueva visión de la capacidad jurídica: algunas reflexiones con ocasión del Día Mundial de Concienciación sobre el Autismo.

Para poder acceder al sistema sólo deberá ingresar la siguiente liga desde el navegador de su preferencia:

Uso del Programa Gantt Project

Informática I Notas del curso

Transacciones y bloqueos en SQL-Server

FUNCIONES DE PROPORCIONALIDAD

Transcripción:

Introducción Resolución de Problemas La resolución de problemas es una capacidad que consideramos inteligente Somos capaces de resolver problemas muy diferentes Encontrar el camino en un laberinto Resolver un crucigrama Jugar a un juego Diagnosticar una enfermedad Decidir si invertir en bolsa... El objetivo es que un programa también sea capaz de resolverlos cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 1 / 28

Resolución de Problemas Introducción Deseamos definir cualquier tipo de problema de manera que se pueda resolver automáticamente Necesitamos: Una representación común para todos los problemas Algoritmos que usen alguna estrategia para resolver problemas definidos en esa representación común cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 2 / 28

Definición de un Problema Introducción Si abstraemos los elementos de un problema podemos identificar: Un punto de partida Un objetivo a alcanzar Acciones a nuestra disposición para resolver el problema Restricciones sobre el objetivo Elementos que son relevantes en el problema definidos por el tipo de dominio cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 3 / 28

Representación de problemas Introducción 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 subproblemas: un problema se puede descomponer en una jerarquía de subproblemas Representaciones para problemas específicos Resolución de juegos Satisfacción de restricciones cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 4 / 28

Introducción Representación de problemas: Estados Podemos 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 Denominaremos Estado a la representación de los elementos que describen el problema en un momento Distinguiremos dos estado especiales el Estado Inicial (punto de partida) y el Estado Final (objetivo del problema) Que incluir en el estado? cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 5 / 28

Introducción Modificación del estado: operadores Para poder movernos entre los diferentes estados necesitamos operadores de transformación Operador: Función de transformación sobre la representación de un estado que lo convierte en otro estado Los operadores definen una relación de accesibilidad entre estados Representación de un operador: Condiciones de aplicabilidad Función de transformación Que operadores? Cuantos? Que granularidad? cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 6 / 28

Espacio de estados Espacio de estados Los estados y su relación de accesibilidad conforman lo que se denomina espacio de estados Representa todos los caminos que hay entre todos los estados posibles de un problema Podría asimilarse con un mapa de carreteras de un problema La solución de nuestro problema esta dentro de ese mapa cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 7 / 28

Espacio de estados Solución de un problema en 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 Coste 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 que tipo de solución busquemos cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 8 / 28

Espacio de estados Descripción de un problema en Espacio de Estados Definir el conjunto de estados del problema (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 coste),... cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 9 / 28

Ejemplo: 8 puzzle Resolución de problemas Espacio de estados 1 2 3 4 5 6 7 8 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 10 / 28

Espacio de estados 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 Operadores: Mover hueco Condiciones: El movimiento está dentro del tablero Transformación: Intercambio entre el hueco y la ficha en la posición del movimiento Solución: Qué pasos + El menor número cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 11 / 28

Ejemplo: N reinas Resolución de problemas Espacio de estados cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 12 / 28

Espacio de estados 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 si Operadores: Colocar una reina en una fila y columna Condiciones: La reina no es matada por ninguna ya colocada Transformación: Colocar una reina mas en el tablero en una fila y columna determinada Solución: Una solución, pero no nos importan los pasos cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 13 / 28

Búsqueda en el espacio de estados Búsqueda en el espacio de estados La resolución de un problema con esta representación pasa por explorar el espacio de estados Partimos del estado inicial evaluando cada paso hasta encontrar un estado final En el caso peor exploraremos todos los posibles caminos entre el estado inicial del problema hasta llegar al estado final cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 14 / 28

Estructura del espacio de estados Búsqueda en el espacio de estados Primero definiremos una representación del espacio de estados para poder implementar algoritmos que busquen soluciones Estructuras de datos: Árboles y Grafos Estados = Nodos Operadores = Arcos entre nodos (dirigidos) Árboles: Solo un camino lleva a un nodo Grafos: Varios caminos pueden llevar a un nodo cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 15 / 28

Búsqueda en el espacio de estados Algoritmo Básico El espacio de estados puede ser infinito Es necesaria una aproximación diferente par buscar y recorrer árboles y grafos (no podemos tener la estructura en memoria) La estructura la construimos a medida que hacemos la búsqueda cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 16 / 28

Búsqueda en el espacio de estados Algoritmo Básico Función: Búsqueda en espacio de estados() Datos: El estado inicial Resultado: Una solución Seleccionar el primer estado como el estado actual mientras estado actual estado final hacer Generar y guardar sucesores del estado actual (expansión) Escoger el siguiente estado entre los pendientes (selección) fin 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) cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 17 / 28

Búsqueda en el espacio de estados Algoritmo Básico Nodos abiertos: Estados generados pero aún no visitados Nodos cerrados: Estados visitados y que ya se han expandido Tendremos una estructura para almacenar los nodos abiertos Las diferentes políticas de inserción en la estructura determinarán el tipo de búsqueda Si exploramos un grafo puede ser necesario tener en cuenta los estados repetidos (esto significa tener una estructura para los nodos cerrados). Merece la pena si el número de nodos diferentes es pequeño respecto al número de caminos cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 18 / 28

Características de los algoritmos Búsqueda en el espacio de estados Características: Completitud: Encontrará una solución? Complejidad temporal: Cuanto tardará? Complejidad espacial: Cuanta memoria gastará? Optimalidad: Encontrará la solución óptima? cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 19 / 28

Búsqueda en el espacio de estados Algoritmo General de Búsqueda Algoritmo: Busqueda General Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_final?(actual) y no Est_abiertos.vacia?() hacer Est_abiertos.borrar_primero() Est_cerrados.insertar(Actual) Hijos generar_sucesores(actual) Hijos tratar_repetidos(hijos, Est_cerrados, Est_abiertos) Est_abiertos.insertar(Hijos) Actual Est_abiertos.primero() fin Variando la estructura de abiertos variamos el comportamiento del algoritmo (orden de visita de los nodos) La función generar_sucesores seguirá el orden de generación de sucesores definido en el problema El tratamiento de repetidos dependerá de cómo se visiten los nodos cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 20 / 28

Tipos de algoritmos Resolución de problemas Búsqueda en el espacio de estados Algoritmos de búsqueda ciega 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 Anchura prioritaria, Profundidad prioritaria, Profundidad iterativa Algoritmos de búsqueda heurística Utilizan una estimación del coste de la solución para guiar la búsqueda No siempre garantizan el óptimo, ni una solución Hill-climbing, Branch and Bound, A, IDA cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 21 / 28

Búsqueda ciega Búsqueda en anchura y profundidad Búsqueda en Anchura Prioritaria 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 al factor de ramificación y la profundidad de la solución O(r p ) Complejidad espacial: Exponencial respecto al factor de ramificación y la profundidad de la solución O(r p ) Optimalidad: La solución que se encuentra es óptima en número de niveles desde la raíz cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 22 / 28

Búsqueda ciega Búsqueda en anchura y profundidad Búsqueda en Profundidad Prioritaria 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 acaba debe imponerse un límite en la profundidad de exploración Características Completitud: El algoritmo encuentra una solución si se impone un límite de profundidad y existe una solución dentro de ese límite Complejidad temporal: Exponencial respecto al factor de ramificación y la profundidad del límite de exploración O(r p ) 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(rp). Si tratamos repetidos el coste es igual que en anchura. Si la implementación es recursiva el coste es O(p) Optimalidad: No se garantiza que la solución sea óptima cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 23 / 28

Búsqueda ciega Búsqueda en anchura y profundidad Búsqueda en Profundidad Limitada Procedimiento: Busqueda en profundidad limitada (limite: entero) Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_final?(actual) y no Est_abiertos.vacia?() 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) Est_abiertos.insertar(Hijos) fin Actual Est_abiertos.primero() fin 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 tratamos repetidos el ahorro en espacio es nulo cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 24 / 28

Búsqueda ciega Búsqueda en profundidad iterativa ID (iterative deepening): profundidad iterativa Intenta combinar el comportamiento espacial del DFS con la optimalidad del BFS 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 BFS pero sin su coste espacial, ya que la exploración es en profundidad, y además los nodos se regeneran a cada iteración Además esto permite evitar los casos en que DFS 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 acaba si no hay solución, se puede definir una cota máxima de profundidad en la exploración cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 25 / 28

ID (iterative deepening) Búsqueda ciega Búsqueda en profundidad iterativa 1,2,6 Iteracion 1: 1 Iteracion 2: 2,3,4,5 Iteracion 3: 6,7,8,9,...21 3,7 4,12 5,17 8 9 10 11 13 14 15 16 18 19 20 21 cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 26 / 28

Búsqueda ciega Búsqueda en profundidad iterativa Búsqueda en profundidad iterativa Procedimiento: Búsqueda en profundidad iterativa (limite: entero) prof 1 Actual Estado inicial mientras no es_final?(actual) y prof<limite hacer Est_abiertos.inicializar() Est_abiertos.insertar(Estado inicial) Actual Est_abiertos.primero() mientras no es_final?(actual) y no Est_abiertos.vacia?() 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) Est_abiertos.insertar(Hijos) fin Actual Est_abiertos.primero() fin prof prof+1 fin cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 27 / 28

Búsqueda ciega Búsqueda en profundidad iterativa 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 ) Complejidad espacial: Igual que en la búsqueda en profundidad Optimalidad: La solución es óptima igual que en la búsqueda en anchura cbea (LSI-FIB-UPC) Introducción a la Inteligencia Artificial Curso 2011/2012 28 / 28