Solucion de Problemas en I.A.

Page 1

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


Resoluci贸n de problemas de IA


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.


El primer paso para dise帽ar un programa que resuelva un problema es crear una descripci贸n formal y manejable del propio problema. Contar con programas que produzcan descripciones formales a partir de descripciones informales, proceso denominado operacionalizaci贸n. Dado que por ahora no se conoce la forma de construir estos programas este proceso debe hacerse manualmente.


Existen problemas que por ser artificiales y estructurados son f谩ciles de especificar. Ejemplo: el ajedrez, el problema de las jarras de agua, etc. Otros problemas naturales, no son tan sencillos de especificar. Ejemplo: la comprensi贸n del lenguaje hablado o escrito.


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. 


 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.


 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.


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.


Nota: Dado que escribir exhaustivamente todas las reglas es imposible prácticamente, (en el ejemplo, escribir todas las posiciones de tablero), las reglas deben escribirse de la manera más general posible. La representación como espacio de estados forma parte de la mayoría de los métodos de IA. Su estructura se corresponde con la resolución de problemas porque: permite definir formalmente el problema, mediante la necesidad de convertir una situación dada en una situación deseada mediante un conjunto de operaciones permitidas; permite definir el proceso de resolución de un problema como una combinación de técnicas conocidas y búsqueda (la técnica general de exploración del espacio intenta encontrar alguna ruta desde el estado actual hasta un estado objetivo).


  

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.


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)


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)


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


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


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)


Estas reglas no añaden más potencia al sistema ya que las operaciones que describen las proporcionan otras reglas más generales. En el ejemplo, la primera regla agregada es equivalente a la aplicación de las reglas generales 3 y 8; y la segunda regla agregada es equivalente a la aplicación de la regla general 4. Dependiendo de la estrategia de control que se utilice para seleccionar reglas durante la resolución del problema se puede mejorar el rendimiento si se les da preferencia a las reglas de casos especiales.


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. 


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.


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. 


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?


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?


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.


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.


No Recuperables: En un punto dado no es posible deshacer ningún paso realizado. Por ej. en una partida de ajedrez no se puede volver atrás una vez movidas las piezas. En estos problemas el sistema debe esforzarse en la toma de decisiones pues éstas son irrevocables. Algunos usan una planificación en la que se analiza por adelantado una secuencia de pasos antes de realizar el primer paso para descubrir a donde conduce.

Ignorables: En un punto dado es posible ignorar los pasos realizados hasta el momento y comenzar de nuevo con una nueva solución. Por ej. un demostrador de teoremas puede abandonar una demostración basada en un lema dado y comenzar nuevamente. Estos problemas se resuelven con estrategias de control sencillas que nunca vuelven hacia atrás.


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.


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.


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.


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.


Con respecto a la relación programa-usuario, existen dos tipos de programas que solucionan el problema:  Solitarios: Reciben como entrada el problema y dan como salida la solución. No importa el razonamiento que haya seguido la máquina para encontrar la solución. Por ej. problema de las jarras de agua.  Conversacionales: Existe una comunicación hombremáquina de manera que el usuario puede ayudar a la máquina o la máquina puede informar al usuario durante la búsqueda de la solución. Para que esta comunicación sea posible debe existir una correspondencia entre el razonamiento seguido por la máquina y la forma de razonamiento humano. Por ej. en un sistema experto de diagnóstico médico, el usuario no aceptaría el veredicto de una máquina si no puede comprender el razonamiento que la llevó a él.


Gracias por su atencion


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.