martes, 22 de septiembre de 2015

UNIDAD 2. TÉCNICAS DE BÚSQUEDA EN INTELIGENCIA ARTIFICIAL


2.1. Solución de problemas en Inteligencia Artificial.

En general, podemos afirmar que un problema consiste en:

 Una descripción de la situación de la que se parte;
 Una descripción de la situación a la que se quiere llegar;
• Una descripción de los medios de que disponemos para alcanzar nuestro objetivo.

En el contexto de la Informática, a partir de un problema, se intenta construir un sistema que lo resuelva. Las acciones para construir un sistema que resuelva un problema serían:

Definir el problema con precisión (especificación del problema):

  De qué se parte;
  Cuál es el objetivo.
  Analizar el problema: información para elegir las técnicas.
  Aislar y representar el conocimiento necesario para resolver el problema.
•   Elegir la mejor técnica que resuelva el problema y aplicarla al problema particular.

Trasladar estas acciones al contexto de la Inteligencia Artificial consiste en elegir las técnicas de resolución entre aquellas que son utilizadas en esta disciplina.

Utilizaremos como ejemplos para ilustrar las nociones teóricas algunos problemas que no son aplicaciones reales de la Inteligencia Artificial. Se trata más bien de ejemplos que han sido elegidos porque son suficientemente manejables, tanto en cuanto a la facilidad de su enunciado como en cuanto al volumen de datos que es necesario explorar para obtener una solución.

He aquí algunos de ellos:

1) El 8-puzzle.

Entrada: Un tablero 3x3 donde aparecen distribuidos los dígitos 1, 2, 3, 4, 5, 6, 7 y 8, quedando por tanto una de las casillas del tablero en blanco. Por ejemplo, un tablero tal y como aparece en la Figura 1.
 
  Figura 1

Salida: Alcanzar una disposición distinta de los dígitos en el tablero.


Habitualmente se toma como configuración de llegada el tablero que tiene el dígito 1 en la primera casilla de la primera línea (esquina superior izquierda) y los dígitos 2, 3, … , 8 se distribuyen uno a continuación de otro en el sentido de las agujas del reloj, quedando la posición central del tablero sin ocupar (ver Figura 2).


Figura 2

Medios: si una casilla del tablero está al lado de la casilla vacía se puede desplazar sobre ella. (En particular, está prohibido usar un destornillador para sacar las piezas y resituarlas como a uno le parezca … )

Revisa el siguiente enlace:


2) El problema de las garrafas de vino.

Entrada: dos garrafas vacías, una de cuatro litros y otra de tres.

Salida: la garrafa de cuatro litros contiene exactamente dos litros de vino.

Medios: se dispone de un depósito con mucho vino (más de 100 litros … ) y las únicas operaciones permitidas son llenar cada garrafa en el depósito, vaciarlas en el depósito y pasar contenido de una garrafa a la otra, hasta que la primera se vacíe o la segunda se llene. (En particular, no es lícito suponer que se dispone de otra garrafa que puede contener exactamente dos litros … )

3) El problema del granjero, el lobo, el carnero y la lechuga.

Entrada: un granjero, un lobo, un carnero y una lechuga se encuentran en la orilla derecha de un río.

Salida: todos ellos han pasado a la orilla izquierda del río.

Medios y restricciones: se dispone de una barca que debe ser conducida por el granjero y que sólo tiene capacidad para uno de los otros elementos; el lobo se comerá al carnero si los deja juntos sin compañía en uno de los lados; el carnero se comerá la lechuga si los deja solos.

Ejercicios. A partir de los siguientes  problemas, detallar con mayor precisión la entrada, la salida y los medios de resolución.

1) El problema del viajante. Un representante de comercio tiene que visitar una serie de ciudades viajando entre ellas por carretera. Dispone de un plano de la región con la información de las distancias entre las ciudades. Desea partir de la ciudad en la que está para volver a ella tras haber visitado el resto de ciudades, pero habiendo hecho el mínimo número de kilómetros posible.

2) Las n reinas. Se trata de situar n reinas del ajedrez en un tablero n x n (siendo n un número entero positivo mayor que 3 y el tablero normal tiene 8 x 8 casillas) de modo que las reinas no se "coman" entre sí.

______________________________________________________________________________________________________

  

2.2  ESPACIOS DE ESTADOS.


Estado: Situación de algo o alguien junto con las características que lo describen en un momento determinado. Puede cambiar.

Espacios de Estados

Es la representación de un problema que abarca todas las posibles situaciones que se pueden presentar en la solución de un problema. Utiliza una estructura definida implícitamente (Se genera conforme a la situación) por los operadores o reglas. (Ver Figura 3)




 Figura 3

Para entender lo referente a Espacios de Estado Determinísticos y Espacios de Estado No Deterministicos:





REPRESENTACIÓN DE PROBLEMAS

Una vez decidido que el problema planteado va a ser resuelto por medio de un sistema de producción/búsqueda en el espacio de estados, debemos elegir una representación adecuada para el problema. Esto debe ser resuelto en tres niveles:

•Conceptual.
•Lógico.
•Físico.

y en cada uno de ellos deberemos elegir representaciones para dos cosas:

•Estados.
•Operadores.

El nivel conceptual hace referencia a qué consideramos como estado del problema y qué como regla u operador válido, pero independientemente de cualquier estructura de datos o descripción de algoritmos que vayamos a usar.

En el nivel lógico se elige una estructura de datos para los estados y se determina el formato de codificación de los operadores (puede ser también una estructura de datos o se puede hacer proceduralmente).

Por último en el nivel físico se concreta para el lenguaje de programación elegido la implementación de estados y operadores determinada en el nivel lógico. Los niveles lógico y físico están confundidos en ocasiones y, además, la fase clave para un procesamiento eficiente está en el nivel conceptual.


Por ejemplo, para el problema del 8-puzzle:



En cuanto a los estados.


Nivel conceptual.
localización de cada casilla (numeradas del 1 al 8) y el hueco;
• nada más.

Opciones en el nivel lógico:

•matriz 3 x 3;  que puede tomar los valores de (x,y)
•vector de longitud 9;
•conjunto de hechos: {(superior-izda = 2), (superior-centro = 1), … }.

Nivel físico.
Dependiendo de las estructuras permitidas en un lenguaje de programación concreto, para cada una de ellas son posibles diferentes elecciones.

En cualquier caso, la elección de la representación para los estados está muy ligada a la que se haga para los operadores, puesto que ambos elementos deben "cooperar" para la resolución del problema.

En cuanto a los operadores, deben ser tan generales como sea posible para así reducir el número de reglas distintas.     En el caso del 8-puzzle:

Nivel conceptual.
•4 x 9! operadores para pasar de un estado cualquiera a sus, como máximo 4, estados sucesores;

•4 x 8 operadores que mueven cualquier ficha arriba, abajo, derecha o izquierda;

4 operadores que mueven el hueco arriba, abajo, derecha o izquierda.

Nota: Evidentemente, la última representación es la más adecuada.

Nivel Lógico.
• El procedimiento inferencial para mover una pieza según su situación actual.

Nivel Físico.

La definición conceptual, lógica y física de los estados y los operadores están relacionados entre sí, por lo que la elección del lenguaje de programación para implementar las reglas operacionales depende del elegido para los estados.

La elección de una representación para los estados y los operadores define implícitamente una relación de adyacencia en el conjunto de estados factibles para el problema. A este conjunto con la estructura de adyacencia definida se le denomina espacio de estados

El espacio de estados es una noción clave en los sistemas de producción, puesto que es el lugar en el que se va a desarrollar la búsqueda. Un fragmento del espacio de estados para el 8-puzzle, donde se ha elegido como representación para los operadores, los 4 operadores citados antes. Ver figura 4.



Figura 4





En conclusión, el espacio de estados es el conjunto de estados factibles para un problema junto a la estructura de adyacencia definida implícitamente por los operadores o reglas.

Como estructuras, las posibilidades relevantes son:

a)      Árbol
b)      Grafo dirigido o acíclico
c)      Grafo dirigido no acíclico
d)      Grafo no dirigido

 Tarea: Por equipo traer un ejemplo de cada uno de los anteriores para el día 25 de Febrero (Actividad individual).


¿Qué significa encontrar una solución?

La solución consiste en una secuencia de operadores que transforman el estado inicial en el estado objetivo.

Tenemos dos problemas distintos:

• El problema de decisión: consiste simplemente en decir si sí o no se puede  alcanzar el objetivo desde el estado inicial.
• El problema de explicación: en este caso se debe indicar cómo se ha llegado desde el estado inicial hasta el objetivo.

En este último caso, el sistema de producción debe disponer de un modo de almacenamiento de los caminos que van siendo explorados.

Opciones de solución en un espacio de estados:

  1.  Encontrar la secuencia más corta.
  2. Encontrar la secuencia menos costosa (en este caso se supondrá que los disparos de las reglas tienen asociado un coste o, equivalentemente, que el espacio de estados tiene pesos en las aristas).
  3. Encontrar cualquier secuencia lo más rápido posible.
  4. Una última variante para todos los problemas de búsqueda requiere no sólo que se encuentre un camino de solución, sino todos los que existan.

BÚSQUEDAS EN ESTRUCTURAS DE ÁRBOLES

Primero revisa el siguiente material:
                        Búsqueda en profundidad y anchura 

O bien, copia el siguiente enlace en un navegador:
  
                       
                       O bien, copia los enlaces en un navegador
                       https://www.youtube.com/watch?v=6B662SE0Zz

  
Actividad: Una vez revisado el material indicado, analiza los siguientes grafos y explica los dos posibles recorridos realizados para el puzzle 8. Escribe tu análisis y entrégalo a la profesora en la misma clase.





Búsqueda en anchura.




Figura 5



Búsqueda en profundidad.



Figura 6


Actividad por equipo:
a) Investiga sobre los diferentes métodos de búsqueda y elige uno. Representa un ejemplo claro aplicable a algún tema de la vida cotidiana.
b) El método elegido será expuesto en clase dejando muy claro el proceso de búsqueda. 


MATERIAL PARA PROYECTO:
a) Revisa en qué consisten las Torres de Hanoi aquí.
b) Revisa este material a detalle para que realices el proyecto de la Unidad
c) Representa el problema para los estados y los operadores a nivel conceptual, lógico y físico.
d) El valor de entrada es: el número de piezas para trabajar con las Torres y el valor de salida será: La torre 3 con todas las piezas en orden. Por lo tanto, de acuerdo a los enlaces indicados previamente, define las posibles  reglas a aplicar.
e) Realiza el proyecto en un lenguaje de programación elegido, muestra gráficamente la solución sin que el usuario tenga que mover las piezas. 

Nota: debe aceptar de 3 a 15 piezas, sin restricciones.