4 - busqueda y espacio de estado

8
UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico Pag 4-1 Gustavo León 2009 UNIDAD IV BUSQUEDA Y ESPACIO DE ESTADO 4.1 Problemas Después de una breve introducción en las aplicaciones de la IA, no es difícil observar que el objetivo de la IA se concentra en la solución de problemas, y sobre este particular se centrará nuestra próxima unidad. Sin embargo antes de abordar los métodos y técnicas para la solución de problemas, es útil conocer algunos conceptos sobre los cuales la IA se soporta. Inicialmente definiremos lo que es un problema y las características asociados a este. Podemos definir un problema como una situación (Estado inicial), cuyos efectos no corresponden con lo esperado por el observador del problema. Para resolver el problema, debemos cambiar las circunstancias iniciales a una situación final deseable (Estado final), lo cual se constituye en la solución del mismo. Exploraremos las tres etapas requeridas para construir un sistema enfocado a la solución de un problema en particular. 1. Definir el problema de manera precisa . Esta definición debe incluir especificaciones precisas de la situación inicial así como la situación final, es decir lo que se considera es una solución aceptable para el problema. 2. Analizar el problema. Algunas características importantes que puedan tener impacto en la selección de la técnica para la solución del problema. 3. Seleccionar la mejor técnica Aplicarla al problema en particular. 4.2 Espacio de estado Supongamos que partimos de un problema denominado “Juega Ajedrez”. Para construir un programa que pudiera “jugar ajedrez”, sería necesario especificar la posición inicial del tablero junto con las reglas que definen cuales son los movimientos legales, así como las posiciones que representan el triunfo para cada uno de los contendientes. Además debemos de alguna manera explícita indicar que solamente estamos dispuestos a hacer movimientos legales, así como de ganar, en caso de ser posible. Para el problema “juega ajedrez”, es relativamente simple proveer una descripción completa y formal para el mismo. La posición inicial

Upload: ibrahim-pimentel-aguilar

Post on 02-Dec-2015

27 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-1 Gustavo León 2009

UNIDAD

IV

BUSQUEDA Y ESPACIO DE ESTADO

4.1 Problemas Después de una breve

introducción en las aplicaciones de la IA, no es difícil observar que el objetivo de la IA se concentra en la solución de problemas, y sobre este particular se centrará nuestra próxima unidad. Sin embargo antes de abordar los métodos y técnicas para la solución de problemas, es útil conocer algunos conceptos sobre los cuales la IA se soporta. Inicialmente definiremos lo que es un problema y las características asociados a este.

Podemos definir un problema

como una situación (Estado inicial), cuyos efectos no corresponden con lo esperado por el observador del problema. Para resolver el problema, debemos cambiar las circunstancias iniciales a una situación final deseable

(Estado final), lo cual se constituye en la solución del mismo.

Exploraremos las tres etapas requeridas para construir un sistema enfocado a la solución de un problema en particular. 1. Definir el problema de manera

precisa. Esta definición debe incluir especificaciones precisas de la situación inicial así como la situación final, es decir lo que se considera es una solución aceptable para el problema.

2. Analizar el problema. Algunas características importantes que puedan tener impacto en la selección de la técnica para la solución del problema.

3. Seleccionar la mejor técnica Aplicarla al problema en particular.

4.2 Espacio de estado

Supongamos que partimos de

un problema denominado “Juega Ajedrez”. Para construir un programa que pudiera “jugar ajedrez”, sería necesario especificar la posición inicial del tablero junto con las reglas que definen cuales son los movimientos legales, así como las posiciones que representan el triunfo para cada uno de

los contendientes. Además debemos de alguna manera explícita indicar que solamente estamos dispuestos a hacer movimientos legales, así como de ganar, en caso de ser posible.

Para el problema “juega ajedrez”, es relativamente simple proveer una descripción completa y formal para el mismo. La posición inicial

Page 2: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-2 Gustavo León 2009

puede ser escrita como un arreglo de 8 por 8, donde cada posición contiene un símbolo colocado en el lugar que oficialmente se designa como válido para la posición de apertura. Podemos definir como nuestra meta, cualquier posición en la cual el oponente no tiene oportunidad de hacer un movimiento legal mientras su rey es atacado. Los movimientos legales proporcionan los medios para desplazarse desde el estado inicial hasta el estado meta. Ellos pueden ser descritos fácilmente como un conjunto de reglas consistente de dos partes: La parte izquierda sirve como un patrón que debe coincidir con la posición actual del tablero, y la parte derecha, que describe el cambio o la posición final después de que se efectúe el movimiento. Existen diversas maneras en las cuales estas reglas pueden ser escritas. Por ejemplo , pudiéramos escribir una regla tal como se muestra en la figura 4.1, sin embargo, si lo hacemos de esta manera, necesitaríamos un numero muy grande de ellas, dado que será necesario tener una regla separada para las aproximadamente 10120

posibles posiciones del tablero. La utilización de tantas reglas deriva en dos serias dificultades prácticas: * Ninguna persona podría suministrar un conjunto completo de

reglas. Tomaría demasiado tiempo y no estaría exento de errores. * Ningún programa podría manejar todas estas reglas, aún cuando pudiera diseñarse un esquema para determinar un subconjunto de reglas relevantes para cada regla, el sólo hecho de tener que almacenarlas ya representa una dificultad.

Para eliminar tales problemas, se debe buscar una manera para escribir las reglas de la manera más general posible. Para hacer esto, resulta útil introducir alguna notación conveniente para describir patrones y substituciones. Por ejemplo, la regla descrita para pasar de la posición en la figura 4.1 para la posición en la figura 4.2, también podría escribirse de la siguiente manera:

Textualmente esta

representación literal se interpretaría de la siguiente manera:

Si el peón blanco en la posición e2

del tablero y además se encuentra un vacío en la posición e3 y hay un vacío en la posición e4, entonces peón blanco a la posición e4.

En general, entre más sintética

sea la forma en que describimos las

Fig 4.1 Fig 4.2

Page 3: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-3 Gustavo León 2009

reglas necesarias, menor será el trabajo que tendremos que hacer y más eficiente el programa que las utilice.

En el problema que acabamos de describir podemos observar un movimiento alrededor de un espacio de estado, donde cada estado corresponde a cada una de las posiciones legales del tablero. Podemos jugar ajedrez entonces, a partir de un estado inicial, utilizando un conjunto de reglas para desplazarse de un estado a otro, e intentar finalizarlo e uno de los estados finales. Esta representación de espacio de estado parece natural para el ajedrez debido a que los estados son propiamente las posiciones a través del desarrollo del juego, lo cual provee de una estructura ordenada naturalmente. Sin embargo para otro tipo de problemas en los cuales no se tenga una bien definida estructura será necesario el establecimiento de estructura más complejas que definan los estados individuales.

La representación de espacio de estado forma las bases de prácticamente todos los métodos de IA que se tratarán aquí posteriormente. Su estructura corresponde a las estructuras de la solución de problemas en dos importantes maneras: * Permite una definición formal de un problema como una necesidad de convertir una situación dada en una situación deseada, utilizando un conjunto de operaciones permisibles. * Nos permite definir el proceso de solución a un problema en particular, como una combinación de técnicas conocidas (cada una representada como una regla que define cada paso en el espacio) y una búsqueda, así como la técnica de exploración del espacio, con el fin de encontrar algún camino desde el estado actual hasta el estado meta.

Como síntesis podríamos definir el espacio, como el universo cerrado en

el cual el problema tiene su campo de acción y el estado, todas y cada una de las circunstancias en los cuales se encuentra el problema en un momento determinado. Cuando queremos definir el universo, dentro del cual se desarrolla la búsqueda de la solución de un problema específico, definimos esta área como el espacio de estado de nuestro problema. El primer paso hacia el diseño de una solución, debe ser la creación de una descripción formal y manipulable del problema en sí, de alguna manera, esto organizará las variables y creará una estructura que facilitará el uso de algoritmos o métodos recursivos (recurrentes) se repite ó está en ciclo. Se puede decir que los pasos hacia la descripción formal del problema son: 1. - Definir un espacio de estado que

contiene todas las configuraciones y algunas imposibles. Es probable, por supuesto, que este espacio de estado, sea planteado sin enumerar explícitamente todos los estados que contiene.

2. - Especificar uno o más estados, dentro del espacio descrito, para aquellos en que el proceso de solución del problema, podría comenzar. Estos estados, son denominados ‘estados iniciales’.

3. - Especificar uno o más estados que serían aceptables como solución del problema. Estos estados son llamados estados meta.

4. - Especificar un conjunto de reglas que describan las acciones. (Operadores disponibles).

El problema puede ser resuelto

entonces usando las reglas, en combinación con una apropiada estrategia de control, para mover el problema a través del espacio desde le estado inicial hasta que se llegue al estado meta. De esta manera el proceso de búsqueda es fundamental

Page 4: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-4 Gustavo León 2009

para el proceso de solución de problemas. El hecho de que la búsqueda provea las bases para el proceso de la solución de problemas, no significa sin embargo, que otras

técnicas más directas no deban ser exploradas. Cuando sea posible, estos pueden ser incluidos como pasos en la búsqueda codificándolos como reglas.

4.3.1. Reglas A continuación expondremos algunos ejemplos de situaciones y reglas

asociadas: Regla tipo deductiva

Asumir que estamos conduciendo un vehículo Regla: Si la lámpara roja, a la izquierda del tablero se ha encendido.

Si la temperatura del agua pasa de 90 grados.

El vehículo no tiene aceite Regla deductiva-operativa

Supongamos que estamos preparando el reporte financiero de alguna empresa Regla Si la proporción de rentabilidad neta con el movimiento de caja es bajo.

Si el reporte de balance de la empresa muestra números rojos.

Solicitar una auditoría contable Regla de validación

Asumir que se está programando un robot Regla Para colocar la pieza A sobre la B.

Comprobar que B esté presente y no hay nada sobre B

Regla situación-acción

De acuerdo al reporte meteorológico Regla Depresión tropical en el Golfo de México

Vientos dirección NW

Llevar el impermeable Todas estas reglas guardan

algo en común; la parte superior define las condiciones que deben quedar satisfechas, llamadas

precondiciones. Si dado un estado base de datos se satisface la precondición, entonces la regla es potencialmente aplicable; cuando es

Page 5: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-5 Gustavo León 2009

efectivamente aplicada su conclusión es válida: por tanto llamamos conclusión a la parte inferior de la regla.

La conclusión de la regla modifica la base de datos. En las reglas deductivas, la aplicación de la

regla conduce en general, a añadir un nuevo dato a la base de datos. Sin embargo se pueden imaginar otras posibilidades, supresión de un hecho o la combinación de la supresión de un dato seguida de la adición de nuevos hechos.

Ejercicio 4.a Cite ejemplos de reglas en cada una de las categorías anteriormente

descritas, utilizando el siguiente formato: Regla tipo: ____________

Regla:

4.3 Sistemas de producción

Dado que las formas de búsqueda son el alma de un proceso inteligente, es útil estructurar los programas de inteligencia artificial de tal manera que se facilite el proceso de búsqueda. Los sistemas de producción nos proveen de dichas estructuras. La definición de lo que es un sistema de producción se da a continuación. No confundir la palabra producción con el significado que este tiene en los procesos industriales. Un sistema de producción consiste de : 1. Un conjunto de reglas, cada una

consistiendo de dos partes; la primera determina la aplicabilidad de la regla. La segunda describe la acción que habrá de aplicarse si la regla es aplicada.

2. Una o mas bases de datos que contiene la información apropiada para la tarea en particular, algunas partes de la base de datos pueden ser permanentes, mientras otras partes de ella pueden pertenecer solamente a la solución del problema actual. La información de estas bases puede estructurarse de tal forma que resulten útiles para la solución del problema en un momento dado.

3. Una estrategia de control que especifica el orden en el cual las reglas serán comparadas con las bases de datos, para que de alguna manera se resuelvan los conflictos que pudieran presentarse en alguno casos en

Page 6: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-6 Gustavo León 2009

que aplique mas de una regla a la vez.

Esta definición de un sistema

de producción es muy general. Adicionalmente podemos

agregar que independientemente de su utilidad para describir la búsqueda, existen algunas otras ventajas que podemos anotar * Es una buena manera de modelar sistemas con un fuerte manejo de datos. Tan pronto como se meten más datos al sistema, éste cambia su comportamiento. * Nuevas reglas son fácilmente integradas para contar con nuevas situaciones sin perturbar el resto del sistema. Esto es importante dado que en teoría, no existe programa de IA que esté completamente terminado. Algunas veces puede existir cierta confusión debido a la interacción entre reglas, sin embargo esto es menos severo que el hecho de modificar líneas directas de código.

Para resolver un problema será necesario reducirlo a un planteamiento preciso. Esto puede llevarse a cabo definiendo el espacio de estado del problema y un conjunto de operadores para moverlo dentro del espacio buscando la trayectoria entre el estado inicial y el estado meta. El proceso de solución del problema puede ser prácticamente moldeado como un sistema de producción. Posteriormente habremos de seleccionar la estrategia de control apropiada para el sistema de producción, de tal forma que la búsqueda sea lo más eficiente posible. Para dar una mejor idea de lo anteriormente descrito, utilicemos un

problema diferente al problema del ajedrez.

El problema de la botella con agua:

Se tienen dos botellas, una de

cuatro litros y otra de tres. Ninguna de las dos presenta marcas de capacidad. Existe una bomba que puede ser utilizada para llenar las botellas con agua. ¿ Cómo se pueden obtener dos litros exactamente en la botella de cuatro ?

El espacio de estado para este problema puede ser descrito como un conjunto de pares ordenados de enteros (x,y), de tal forma que x=0,1,2,3, ó 4 y y=0,1,2, ó 3; x representa el número de galones de agua en la botella de cuatro litros; y representa la cantidad de agua en la botella de tres litros. El estado inicial es (0,0). El estado meta es (2,n) para cualquier valor de n (dado que problema no especifica cuantos litros se necesitan en la botella de tres litros).

Los operadores que se van a utilizar para resolver el problema, son descritos en la figura 4.4.

34

Fig 4.3

Page 7: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-7 Gustavo León 2009

Fig 4.4. Reglas de producción para el problema de la botella 1 (x,y | x<4)→ (4,y) Llenar la botella de cuatro litros 2 (x,y | y<3)→ (x,3) Llenar la botella de tres litros 3 (x,y | x>0)→ (x-d,y) Derramar agua de la botella de cuatro

litros 4 (x,y | y>0)→ (x,y-d) Derramar agua de la botella de tres

litros 5 (x,y | x>0)→ (0,y) Vaciar la botella de cuatro litros 6 (x,y | y>0)→ (x,0) Vaciar la botella de tres litros 7 (x,y | x+y>=4 ∧ y>0)→ (4,y-(4-x)) Derramar agua de la

botella de 3 litros en la botella de 4 litros hasta llenar la botella de 4 litros

8 (x,y | x+y>=3 ∧ x>0)→ (x-(3-y),3) Derramar agua de la botella de 4 litros en la botella de 3 litros hasta llenar la botella de 3 litros

9 (x,y | x+y<=4 ∧ y>0)→ (x+y,0) Derramar toda el agua de la botella de 3 litros en la botella de 4 litros

10 (x,y | x+y<=3 ∧ x>0)→ (0,x+y) Derramar toda el agua de la botella de 4 litros en la botella de 3 litros

Como puede observarse, el problema es descrito en una tabla cuya parte izquierda representa el estado actual y la parte derecha describe el nuevo estado que resulta de la aplicación de la regla. Advierta que para describir los operadores completamente, fue necesario ser más explícito en ciertas suposiciones no mencionadas en el enunciado del problema. Hemos asumido que podemos llenar una botella con la bomba, y que podemos derramar un contenido en la “tierra”, que podemos vaciar el líquido desde una botella hasta otra y que no existe ningún medio de medición disponible.

Para resolver el problema de la botella, todo lo que necesitamos en adición a la descripción del problema que se plantea, es una estructura de control que se cicla a través de un simple lazo en el cual alguna regla que pertenece al estado actual es seleccionada; se hacen los cambios

apropiados de acuerdo a lo que describe la parte derecha, y el estado resultante se verifica para ver si corresponde con el estado meta. Tan pronto como se determina que aún no, el ciclo continúa. Claramente, la velocidad con la cual el problema se resuelve depende del mecanismo que se utilice para seleccionar la siguiente operación a ejecutarse. Para este problema en particular, existen varias secuencias de operación, una de las cuales se muestra a continuación. Fig 4.5. Una solución al problema de la botella Litros en la botella de 4 litros

Litros en la botella de 3 litros

Regla aplicada

0 0 2 0 3 9 3 0 2 3 3 7 4 2 5 0 2 9 2 0

Page 8: 4 - Busqueda y Espacio de Estado

UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS UNIDAD ACADÉMICA MULTIDISCIPLINARIA REYNOSA-RODHE INTELIGENCIA ARTIFICIAL: Un enfoque práctico

Pag 4-8 Gustavo León 2009

Ejercicio 4.b Existe un campesino (c) que intenta cruzar en una embarcación al otro lado del

río. Debido a limitaciones de su bote, sólo puede transportarse a si mismo y a solamente alguno de los siguientes elementos que están con él: una zorra(z), un ganso (g)y un costal de maíz(m). Existe una limitación adicional consistente en que no puede dejar a la zorra y al ganso solos pues la zorra se comería al ganso. Tampoco puede dejar solos al ganso y el maíz, pues el ganso se comería el maíz.

Determine un sistema de producción (reglas y estrategia) que produzca una solución aceptable para que el campesino cruce seguro con todas sus pertenencias de un lado al otro del río.

Solución

c,z,g,m representan valores binarios de presencia en el lado destino del río posición inicial Ei(0,0,0,0) posición final Ef(1,1,1,1) Estados no permitidos (0,1,1,m) Zorra con Ganso sin Campesino en lado final (1,0,0,m) Zorra con Ganso sin Campesino en lado inicial (0,z,1,1) Ganso con Maíz sin Campesino en lado final (1,z,0,0) Ganso con Maíz sin Campesino en lado inicial

Reglas de producción para el problema 4b

1 (c,z,g,m | c=0^z=0^g⊕m)→ (1,1,g,m) Cruzar zorra al otro lado 2 (c,z,g,m | c=1^z=1^g⊕m)→ (0,0,g,m) Regresar zorra del otro lado 3 (c,z,g,m | c=0^g=0)→ (1,z,1,m) Cruzar ganso al otro lado 4 (c,z,g,m | c=1^g=1)→ (0,z,0,m) Regresar ganso del otro lado 5 (c,z,g,m | c=0^m=0^z⊕g)→ (1,z,g,1) Cruzar maíz al otro lado 6 (c,z,g,m | c=1^m=1^z⊕g)→ (0,z,g,0) Regresar maíz del otro lado 7 (c,z,g,m | c=0^g⊕m^z⊕g)→ (1,z,g,m) Cruza campesino solo al otro lado 8 (c,z,g,m | c=1^g⊕m^z⊕g)→ (0,z,g,m) Regresa campesino solo del otro lado Estrategia de Control Una solución al problema del campesino Regla Aplicada

Estado antes de la regla

Estado después de la regla

3 (0,0,0,0) (1,0,1,0) 8 (1,0,1,0) (0,0,1,0) 5 (0,0,1,0) (1,0,1,1) 4 (1,0,1,1) (0,0,0,1) 1 (0,0,0,1) (1,1,0,1) 8 (1,1,0,1) (0,1,0,1) 3 (0,1,0,1) (1,1,1,1)