Solucion de Problemas en I.A.

31
Facilitador: Ing. Msc. Edecio R. Freitez R.

description

Este docuemento contiene informacion relacionadas con aspectos inherentes a la solucion de problemas en inteligencia artificial.

Transcript of Solucion de Problemas en I.A.

Page 1: Solucion de Problemas en I.A.

Facilitador: Ing. Msc. Edecio R. Freitez R.

Page 2: Solucion de Problemas en I.A.

Resolución de

problemas de IA

Page 3: Solucion de Problemas en I.A.

Para construir un sistema que resuelva un sistema específico, es necesario:

1- Definir el problema formalmente con precisión.

2- Analizar el problema.

3- Representar el conocimiento necesario para resolver el problema.

4- Elegir la mejor técnica que resuelva el problema y aplicarla.

Page 4: Solucion de Problemas en I.A.

El primer paso para diseñar un programa queresuelva un problema es crear una descripciónformal y manejable del propio problema.

Contar con programas que produzcandescripciones formales a partir de descripcionesinformales, proceso denominadooperacionalización.

Dado que por ahora no se conoce la forma deconstruir estos programas este proceso debehacerse manualmente.

Page 5: Solucion de Problemas en I.A.

Existen problemas que por ser artificiales yestructurados son fáciles de especificar.Ejemplo: el ajedrez, el problema de las jarras

de agua, etc.

Otros problemas naturales, no son tansencillos de especificar.Ejemplo: la comprensión del lenguaje hablado

o escrito.

Page 6: Solucion de Problemas en I.A.

Para producir una especificación formal de un

problema se deben definir:

Espacio de estados válidos.

Estado inicial del problema.

Estado objetivo o final.

Reglas que se pueden aplicar para pasar de un estado a

otro.

Page 7: Solucion de Problemas en I.A.

Un estado es la representación de un problema en un instante dado.

Para definir el espacio de estados no es necesario hacer una enumeración exhaustiva de todos los estado válidos, sino que es posible definirlo de manera más general.

El estado inicial consiste en uno o varios estados en los que puede comenzar el problema.

El estado objetivo consiste en uno o varios estados finales que se consideran solución aceptable.

Page 8: Solucion de Problemas en I.A.

Las reglas describen las acciones u operadores que posibilitan un pasaje de estados.

Una regla tiene una parte izquierda y una parte derecha. La parte izquierda determina la aplicabilidad de la regla, es decir, describe los estados a los que puede aplicarse la regla.

La parte derecha describe la operación que se lleva a cabo si se aplica la regla, es decir, como obtener el estado sucesor.

Page 9: Solucion de Problemas en I.A.

Ejemplo: (En el Problema del Juego de ajedrez)

- El espacio de Estados: son la totalidad de tableros que se puede generar en un juego de ajedrez.- El estado Inicial: es el tablero de 8 x 8 donde cada celda contiene un símbolo de acuerdo a las piezas situadas. - El Objetivo o Estado Final: se define como cualquier posición de tablero en la que el contrario no puede realizar ningún movimiento legal y su rey esté amenazado.- Las Reglas: son los movimientos legales, que pueden describirse mediante una parte patrón para ser contrastado con la posición actual de tablero y otra parte que describe el cambio que debe producirse en el tablero.

Page 10: Solucion de Problemas en I.A.

Nota: Dado que escribir exhaustivamente todas lasreglas es imposible prácticamente, (en el ejemplo,escribir todas las posiciones de tablero), las reglasdeben escribirse de la manera más general posible.

La representación como espacio de estadosforma parte de la mayoría de los métodos de IA. Suestructura se corresponde con la resolución deproblemas porque:

permite definir formalmente el problema, mediantela necesidad de convertir una situación dada en unasituación deseada mediante un conjunto deoperaciones permitidas;

permite definir el proceso de resolución de unproblema como una combinación de técnicasconocidas y búsqueda (la técnica general deexploración del espacio intenta encontrar alguna rutadesde el estado actual hasta un estado objetivo).

Page 11: Solucion de Problemas en I.A.

Se tienen dos jarras de agua, una de 4Lts, y otra de 3Lts sin escala de medición. Se desea tener 2Lts de agua en la jarra de 4Lts. Las siguientes operaciones son válidas: llenar las jarras, tirar agua de las jarras, pasar agua de una jarra a otra. Solución:

El espacio de estados se define como

{ (X, Y)/ X son los litros en la jarra de 4Lts con 0<=X<=4 AND Y son los litros de la jarra de 3Lts con 0<=Y<=3 }

El estado inicial es (0,0)

El estado final es (2,0). El estado final podría ser (2,N) en caso de que no importen los litros de la segunda jarra.

Page 12: Solucion de Problemas en I.A.

1. Llenar la jarra de 4L: Si (X,Y)

AND X<4 => (4,Y) 2. Llenar la jarra de 3l:

Si (X,Y) AND Y<3 => (X,3)

2. Llenar la jarra de 3L: Si (X,Y) AND

Y<3 => (X,3)

3. Vaciar la jarra de 4L: Si (X,Y) AND

X>0 => (0, Y)

4. Vaciar la jarra de 3L: Si (X,Y) AND

Y>0 => (X, 0)

Page 13: Solucion de Problemas en I.A.

5. Pasar agua de la jarra de 4L a la jarra de 3L hasta llenarla: Si (X,Y) AND X>0 AND X+Y>=3 => (X-(3-Y),3) 6. Pasar agua de la jarra de 3L a la jarra

de 4L hasta llenarla: Si (X,Y) AND Y>0 AND X+Y>=4 => (4, Y-(4-X)) 7. Pasar toda el agua de la jarra de 4L a

la jarra de 3L: Si (X,Y) AND X>0 AND X+Y<3 => (0,X+Y) 8. Pasar toda el agua de la jarra de 3L a

la jarra de 4L: Si (X,Y) AND Y>0 AND X+Y<4 => (X+Y,0)

Page 14: Solucion de Problemas en I.A.

Nota: El programa debería encontrar un pasaje de estados

para ir del estado (0,0) al estado (2,0). Puede existir más de

un pasaje de estados hacia la solución, por ejemplo:

(0,0) => (0,3) => (3,0) => (3,3) => (4,2) => (0,2) => (2,0)

en la cual, a partir del estado inicial, se aplicaron las reglas

2, 8, 2, 6, 3 y 8, hasta conseguir el estado objetivo.

Otro pasaje de estados hacia la solución es la siguiente

(0,0) => (4,0) => (1,3) => (1,0) => (0,1) => (4,1) => (2,3) =>

(2,0)

en la cual se aplicaron las reglas 1, 5, 4, 7, 1, 5 y 4

Page 15: Solucion de Problemas en I.A.

Con respecto a las reglas se puede concluir que:

Las condiciones que se establecen en la parte izquierda a veces no son altamente necesarias pero restringen la aplicación de la regla a estados más adecuados. Esto incrementa la eficiencia del programa que utiliza las reglas. En el ejemplo anterior, la regla 1. Llenar la jarra de 4L: Si (X,Y) AND X<4 => (4,Y) contiene la condición (X<4), especificando que la jarra no se encuentra llena. Si esta condición no se incluye, se puede aplicar la regla aún cuando la jarra está llena. Dado que en este caso el estado del problema no cambia la aplicación de la regla se considera inútil

Las reglas no sólo deben describir el problema sino también algún tipo de conocimiento sobre su solución. Si en el ejemplo anterior se considera la siguiente nueva regla: Vaciar "un poco" la jarra de 4L: Si (X,Y) AND X>0 => (X-Q, Y) es decir, tirar agua sin cuantificar, intuitivamente se concluye que la aplicación de esta regla nunca nos acercará a la solución del problema

Page 16: Solucion de Problemas en I.A.

A veces, cuando se alcanzan algunos estados resulta

obvio cómo se debe continuar hacia la solución. Es

posible agregar reglas de propósito especial que

capturen el conocimiento sobre casos especiales

que conducen a la resolución del problema. En el

ejemplo anterior, se pueden agregar las siguientes

reglas de propósito especial:

Si (X,2) => (2,0)

Si (2,Y) AND Y>0 => (2,0)

Page 17: Solucion de Problemas en I.A.

Estas reglas no añaden más potencia alsistema ya que las operaciones que describen lasproporcionan otras reglas más generales. En elejemplo, la primera regla agregada esequivalente a la aplicación de las reglasgenerales 3 y 8; y la segunda regla agregada esequivalente a la aplicación de la regla general 4.Dependiendo de la estrategia de control que seutilice para seleccionar reglas durante laresolución del problema se puede mejorar elrendimiento si se les da preferencia a las reglasde casos especiales.

Page 18: Solucion de Problemas en I.A.

El problema puede resolverse con el uso de reglas en combinación con una estrategia de control para trasladarse a través del espacio de estados hasta encontrar un camino desde el estado inicial hasta el estado final.

Se elige una regla entre aquellas cuya parte izquierda concuerda con el estado actual.

Se aplica la regla elegida realizando el cambio de estado tal como se describe en la parte derecha de la regla.

Si el nuevo estado es estado objetivo o final se ha encontrado la solución.

En caso contrario se continúa con la aplicación de reglas al nuevo estado.

Page 19: Solucion de Problemas en I.A.

Una estrategia de control especifica el orden en el que se deben aplicar las reglas, así como también la forma de resolver conflictos cuando es posible aplicar más de una regla. Para que una estrategia de control sea válida debe cumplir con dos requisitos:

Causar cambios:las estrategias de control que no causan cambios de estado nunca alcanzan la solución. Un ejemplo de estrategia de control que no causa cambios es seleccionar siempre la primera regla aplicable de la lista de reglas definidas. En el ejemplo de las jarras de agua, se continuaría indefinidamente aplicando las reglas 1 y 3 sin posibilidad de arribar a la solución.

Page 20: Solucion de Problemas en I.A.

Ser sistemática: las estrategias de control que no son sistemáticas pueden utilizar secuencias de operaciones no apropiadas varias veces hasta alcanzar la solución. Un ejemplo de estrategia de control no sistemática es seleccionar la regla a aplicar al azar. Esta estrategia puede encontrar la solución eventualmente, pero luego de haber realizado varios pasos innecesarios e incluso haber vuelto varias veces al mismo estado.

En caso de no contar con una aproximación directa al problema, el proceso de búsqueda resulta fundamental en la resolución del mismo. Los algoritmos de búsqueda detallados a continuación son ejemplos de estrategias de control sistemáticas. Todos se basan en considerar un árbol de estados cuya raíz es el estado inicial, y en cada nivel se hallan los estados sucesores correspondientes.

Page 21: Solucion de Problemas en I.A.

Luego de definir el problema formalmente, el segundo paso en la resolución del problema es el análisis del mismo. A fin de poder elegir el método más apropiados para resolver un problema particular, es necesario analizar distintas cuestiones que afectan a al definición del mismo y a las características de la solución deseada. Existen varias preguntas a responder acerca del problema:

1. ¿Puede descomponerse el problema en subproblemas más pequeños?

2. ¿Pueden deshacerse pasos inadecuados hacia la solución?

Page 22: Solucion de Problemas en I.A.

3. ¿Es predecible el universo del problema? 4. ¿Una solución es buena de manera absoluta o relativa? 5. ¿La solución deseada es un estado o la ruta hacia un estado? 6. ¿El conocimiento se necesita para resolver el problema o para restringir la búsqueda de la solución? 7. El programa que soluciona el problema ¿busca la solución solo o necesita interactuar con una persona?

Page 23: Solucion de Problemas en I.A.

Algunos problemas pueden descomponerse en

subproblemas independientes, de manera que encontrar

una solución global es la composición de soluciones

particulares. Por ej. en la resolución de integrales, una

integral puede descomponerse por partes, y resolver las

partes simples directamente o descomponerlas

recursivamente.

Por otra partes, existen otros problemas que no

pueden descomponerse y componer la solución a partir

de las soluciones parciales de sus partes. Por el

contrario, una solución necesita considerar globalmente

el problema. Por ej. el problema del mundo de los

bloques.

Page 24: Solucion de Problemas en I.A.

Algunos problemas permiten deshacer uno o

varios pasos hacia una solución una vez

realizados. En este aspecto, existen tres

categorías en las que puede dividirse un

problema:

Recuperables: En un punto dado es posible

deshacer todos los pasos inadecuados hacia la

solución. Por ej. en el juego 8-puzzle. La

estructura de control se implementa con una pila

push-down en la que se almacenan las decisiones

para poder volver atrás.

Page 25: Solucion de Problemas en I.A.

No Recuperables: En un punto dado no es posibledeshacer ningún paso realizado. Por ej. en unapartida de ajedrez no se puede volver atrás una vezmovidas las piezas. En estos problemas el sistemadebe esforzarse en la toma de decisiones pues éstasson irrevocables. Algunos usan una planificación en laque se analiza por adelantado una secuencia de pasosantes de realizar el primer paso para descubrir adonde conduce.

Ignorables: En un punto dado es posible ignorar lospasos realizados hasta el momento y comenzar denuevo con una nueva solución. Por ej. undemostrador de teoremas puede abandonar unademostración basada en un lema dado y comenzarnuevamente. Estos problemas se resuelven conestrategias de control sencillas que nunca vuelvenhacia atrás.

Page 26: Solucion de Problemas en I.A.

Los problemas pueden se de: Consecuencia cierta:

es posible planificar una secuencia de movimientos estando seguros del resultado a obtener. Se puede realizar una planificación para generar operadores que garanticen llegar a la solución.

Consecuencia incierta:no es posible planificar con certeza pues no se sabe que ocurrirá luego del siguiente movimiento. Sin embargo, se puede realizar una planificación para generar operadores que tengan una buena probabilidad de llegar a la solución.

Los problemas más difíciles de resolver son los no recuperables de consecuencia incierta. Por ej. el control del brazo de un robot: es de consecuencia incierta pues alguien puede interponer un objeto en la ruta del brazo, se puede atascar, etc.

Page 27: Solucion de Problemas en I.A.

La solución de un problema puede consistir en encontrar:

Algún camino:sólo importa encontrar una solución sin importar si existen otros caminos que conducen a la solución. Generalmente se resuelven con heurísticas. Por ej. programa de respuestas a preguntas.

El mejor camino:importa encontrar la ruta más corta hacia la solución. Son problemas más complicados de computar. Algunos requieren una búsqueda más exhaustiva que usando heurísticas. Por ej. en el problema del viajante importa encontrar la ruta más corta entre las ciudades a visitar.

Page 28: Solucion de Problemas en I.A.

La solución de un problema puede consistir en encontrar:

un estado final: no es necesario el registro del proceso seguido, sólo importa arribar a la solución final. Por ej. interpretar texto.

una ruta hacia un estado final:se necesita dar el camino seguido desde el estado inicial al estado final. Por ej. problema de las jarras de agua.

Page 29: Solucion de Problemas en I.A.

El conocimiento puede emplearse para: Reconocer la solución: Se necesita gran

cantidad de conocimiento acerca del problema para poder encontrar una solución. Por ej. comprensión de texto.

Acotar la búsqueda: La solución básica puede encontrarse con poco conocimiento, pero para restringir el árbol de búsqueda y encontrar la solución de manera más eficiente es necesario contar más conocimiento. Por ej. en el ajedrez se necesita básicamente poco conocimiento para conocer los movimientos legales y un mecanismo sencillo de búsqueda. Pero dado que para aumentar la eficiencia de la búsqueda ésta debe restringirse, se necesita conocimiento de heurísticas de buenas estrategias y tácticas para jugar.

Page 30: Solucion de Problemas en I.A.

Con respecto a la relación programa-usuario, existen dos tipos de programas que solucionan el problema:

Solitarios: Reciben como entrada el problema y dancomo salida la solución. No importa el razonamientoque haya seguido la máquina para encontrar lasolución. Por ej. problema de las jarras de agua.

Conversacionales: Existe una comunicación hombre-máquina de manera que el usuario puede ayudar a lamáquina o la máquina puede informar al usuariodurante la búsqueda de la solución. Para que estacomunicación sea posible debe existir unacorrespondencia entre el razonamiento seguido por lamáquina y la forma de razonamiento humano. Por ej.en un sistema experto de diagnóstico médico, elusuario no aceptaría el veredicto de una máquina sino puede comprender el razonamiento que la llevó aél.

Page 31: Solucion de Problemas en I.A.

Gracias por su atencion