Inteligencia Artificial Resolución de Problemas Mediante Búsquedas Víctor Saquicela G.
Universidad de Cuenca Facultad de Ingeniería Cuenca, Ecuador
Definición del Problema
La Inteligencia Artificial ha tenido siempre como objetivo, a más o menos largo plazo, la resolución de problemas, mediante la utilización de procedimientos de búsqueda, primero más directos y luego con técnicas heurísticas mas avanzadas. La resolución de problemas mediante búsqueda ha sido una de las primeras aplicaciones de la IA a problemas reales, no de juguete. juguete . La orientación de la IA siempre fue mas hacia un mejor entendimiento de como resolver los problemas y no tanto a la consecución del resultado final. En muchos casos no existe realmente un conocimiento sistemático del problema de forma que se pueda plantear una solución analítica del mismo mediante un sistema de ecuaciones, por ejemplo. En estas circunstancias, los procedimientos de búsqueda si se pueden aplicar para resolverlos y se han demostrado muy eficientes para abordar este tipo de tareas.
Definición del Problema
En general, el planteamiento de un problema de búsqueda consiste en encontrar o conseguir un objetivo. La resolución del mismo puede estructurarse en los siguientes pasos: 1. Determinar una serie de objetivos o metas que se deseen alcanzar. Estos objetivos pueden ser múltiples (restricciones de tiempo, de coste, etc) o simples (alcanzar un estado final). 2. Disponer de un conjunto de acciones que conduzcan a la obtención de los objetivos o metas. Estas acciones son denominadas operaciones. 3. Definir un procedimiento de selección entre las diferentes formas de alcanzar las metas. Cada una de estas soluciones constituye una secuencia de acciones determinada y posible. Se llama solucionador al módulo encargado de construir dicha solución.
Abordaremos la definición de un problema en un espacio de estados y su resolución mediante estrategias de búsqueda que vendrán limitadas por el tipo de conocimiento que tengamos del problema en cuestión.
Definición y resolución del Problema
Aunque los métodos de búsqueda se reduzcan en muchos casos a meros algoritmos matemáticos, lo que se persigue desde el punto de vista de la IA es entender el problema que se trata de resolver, analizar sus posibles soluciones y las consecuencias de buscar una solución por un camino u otro. No se trata de encontrar una solución final optima o al menos convincente como de haber ganado en el conocimiento de un problema que se puede aplicar a una situación real. 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, etc. El objetivo es que un programa también sea capaz de resolverlos. Deseamos definir cualquier tipo de problema de manera que se pueda resolver automáticamente. Necesitamos una representación común para todos los problemas y algoritmos que usen alguna estrategia para resolver problemas definidos en esa representación común.
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 subproblemas: un problema se puede descomponer en una jerarquía de subproblemas.
Representación para problemas específicos
Resolución de juegos
Satisfacción de restricciones
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 estados especiales el Estado Inicial (punto de partida) y el Estado Final (objetivo del problema)
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 y función de transformación
Que operadores? Cuantos?
Criterios para elegir operadores
Depende de la representación de los estados
Preferencia por representaciones con menor numero de operadores
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.
Procedimientos generales de búsqueda de soluciones
Independientes del problema
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 al estado final. Tipo 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.
Descripción de un problema en Espacio de Estados
Definir el conjunto de estados del problema (explicita 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: a) La secuencia de operadores o el estado final; b) Una solución cualquiera, la mejor (definición de coste)
Ejemplo: 8 puzzle
Ejemplo: 8 puzzle
Un tablero cuadrado (3x3) en el que hay situados 8 bloques cuadrados numerados (con lo cual se deja un hueco del tamaño de un bloque). Un bloque adyacente al hueco puede deslizarse hacia él. El juego consiste en transformar una posición inicial en la posición final mediante el deslizamiento de los bloques.
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 esta dentro del tablero Transformación: Intercambio entre el hueco y la ficha en la posición del movimiento
Solución: Que pasos + El menor número
Ejemplo: 8 puzzle
Representación del estado
Descripción exacta de cada uno de los bloques
Representación vs. Implementación
Número de estados: 9!=362.880
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.
Estructura del espacio de estados
Primero se definen una representación del espacio de estados para pode implementar algoritmos que busquen soluciones
Estructura de datos: Arboles y Grafos
Estados= Nodos
Operadores = arco entre nodos (dirigidos)
Arboles: solo un camino lleva a un nodo
Grafos: Varios caminos pueden llevar a un nodo
Espacio de estados como un grafo
Un espacio de estados se puede ver como un grafo dirigido
Los vértices de dicho grafo son los estados Sucesores de un estado: aquellos obtenidos a partir del estado aplicando un operador aplicable
Algoritmo Básico
El espacio de estados puede ser infinito Es necesaria una aproximación diferente para buscar y recorrer árboles y grafos (no podemos tener la estructura en memoria) La estructura se construye a medida que se realiza 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)
Algoritmo Básico
Nodos abiertos: Estados generados pero aun no visitados
Nodos cerrados: Estados visitados y que ya se han expandido
Se tiene 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 (significa tener una estructura para los nodos cerrados).
Características de los algoritmos
Completitud: Encontrará una solución?
Complejidad temporal: Cuanto tardará?
Complejidad espacial: Cuanta memoria gastará?
Optimalidad: Encontrara la solución optima?
Algoritmo General de Búsqueda
Ejemplos con espacio de estados
Problema del granjero
Problema de las jarras
Problema del viaje
Problemas de la vida real
Problemas de la vida real que se pueden plantear y resolver como espacios de estados:
Búsqueda de rutas en redes informáticas
Rutas aéreas para viajar
Problema del viajante
Diseño de microchips
Ensamblaje de componentes
Desplazamiento de robots
Tipos de Algoritmos
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ísticas
Utilizan una estimación del coste de la solución para guiar a la búsqueda
No siempre garantizan el optimo, ni una solución
Hill-clibing, Branch and Bound, A*, IDA*
Búsqueda a Ciegas (fuerza bruta)
Bibliografía
Russell, S. y Norvig, P. Artificial Intelligence (A Modern Approach) (Prentice–Hall, 2010). Third Edition Nilsson, N.J. Inteligencia artificial (Una nueva síntesis) (McGraw–Hill, 2001)] Gonzalo Pajares Martinez, Matilde Santos Peñas. Inteligencia Aritificial e Ingenieria del Conocimiento