2. Resolución de problemas
Se quiere:
Resolver automáticamente un problema
Se necesita:
Una representación del problema
Algoritmos que usen alguna estrategia para
resolver el problema definido en esa
representación
3. Definición de un problema
Si se abstraen los elementos de un problema
se pueden identificar:
Un punto de partida
Un objetivo a alcanzar
Acciones a disposición para resolver el
problema
Restricciones sobre el objetivo (p.e., que se
quire)
Elementos del dominio que son relevantes en
el problema (p.e., conocimiento incompleto
del punto de partida)
4. 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 sub-problemas. Un problema se
descompone en una jerarquía de sub-
problemas.
Representaciones para problemas
específicos:
Resolución de juegos
Satisfacción de restricciones
5. Representación de
problemas: estados
Se puede 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.
Se denomina estado a la representación de los
elementos que describen el problema en un
momento dado.
Se distinguen dos estados especiales: el
estado inicial (punto de partida) y el estado
final (en general, el objetivo del problema).
¿Qué descriptores incluir en el estado? (Ej.: la
localización)
6. Modificación del estado:
función sucesor
Para poder moverse entre los diferentes
estados se necesita una función sucesor
(descripción de las posibles acciones).
• Función sucesor (o conjunto de
operadores): función de transformación
sobre la representación de un estado que
lo convierte en otro estado
La función sucesor define una relación de
accesibilidad entre estados.
Representación de la función sucesor:
Condiciones de aplicabilidad
Función de transformación
7. Espacio de estados
El conjunto de todos los estados
alcanzables desde el estado inicial
conforma lo que se denomina espacio de
estados.
Representa todos los caminos que hay
entre todos los estados posibles de un
problema.
El espacio de estados forma un grafo (o
mapa) en el cual los nodos son estados y
los arcos son acciones.
La solución del problema está dentro de
ese mapa.
8. Solución de un problema en
el espacio de estados
• Solución: Secuencia de pasos que
llevan del estado inicial al final
(secuencia de operadores) o
también el estado final
• Tipos de solución: una
cualquiera, la mejor, todas
• Costo 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 qué tipo de solución busquemos
9. Descripción de un problema
en el espacio de estados
Definir el espacio de estados (explícita 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:
La secuencia de operadores o el estado final
Una solución cualquiera, la mejor (definición
de costo), todas …
10. Ejemplos: puzzle
Espacio de estados:
configuraciones de 8 fichas en el tablero
Estado inicial:
cualquier configuración 1 2 3
Estado final:
fichas en orden específico 4 5 6
Acción:
“mover hueco”
Condiciones:
7 8
el movimiento está dentro del tablero
Transformación:
“mover el hueco” a la Izquierda, Derecha, Arriba y
Abajo
Solución: Qué pasos + El menor número
12. Ejemplo: n reinas
Estado inicial:
configuración sin reinas en el tablero
Espacio de estados:
configuraciones de 0 a n reinas en el tablero con sólo
una por fila y columna
Estado final:
configuración en la que ninguna reina se mata entre sí
Operadores:
colocar una reina en una fila y columna
Condiciones:
la reina no es matada por ninguna ya colocada
Transformación:
colocar una reina más en el tablero en una fila y columna
determinada
Solución:
Las reinas ubicadas, pero no importan los pasos
13. Problema de las jarras de
agua
Se tienen dos jarras de agua, una de 4litros y
otra de 3litros sin escala de medición. Se
desea tener 2 litros de agua en la jarra de 4
litros. Las siguientes operaciones son válidas:
llenar las jarras, tirar agua de las jarras, pasar
agua de una jarra a otra.
13
14. El espacio de estados se define como:
{ (X,Y)/ X son los litros en la jarra de 4l con 0<=X<=4 AND
Y son los litros de la jarra de 3l con 0<=Y<=3 }
14
16. Problema de los
Caníbales y Monjes
Se tienen 3 monjes y 3 caníbales en el margen
Oeste de un río. Existe una canoa con capacidad
para dos personas como máximo. Se desea que
los seis pasen al margen Este del río, pero hay
que considerar que no debe haber más caníbales
que monjes en ningún sitio porque entonces los
caníbales se comen a los monjes. Además, la
canoa siempre debe ser conducida por alguien.
Realice la misma construcción de acuerdo a la
solución de las tres jarras.
16
17. Búsqueda en el espacio de
estados
Se define una representación del espacio
de estados para poder implementar
algoritmos que busquen soluciones.
La resolución de un problema con esta
representación pasa por explorar el
espacio de estados.
Se empieza del estado inicial y se evalúa
cada paso hasta encontrar un estado final.
En el caso peor se exploran todos los
posibles caminos entre el estado inicial del
problema y el estado final.
18. Estructura del espacio de
estados
Estructuras de datos: árboles y grafos
Estados = nodos
Operadores = arcos entre nodos (dirigidos)
Árboles: sólo un camino lleva a un nodo
Grafos: varios caminos pueden llevar a un
nodo
19. 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.
19
20. 1. Definición formal del problema.
El primer paso para diseñar un programa que resuelva un problema es crear
una descripción formal y manejable del propio problema. Sería adecuado
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.
Hay problemas que por ser artificiales y estructurados son fáciles de
especificar (por ej. el ajedrez, el problema de las jarras de agua, etc. ). Otros
problemas naturales, como por ej. la comprensión del lenguaje, no son tan
sencillos de especificar.
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.
20
21. 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.
21
22. 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).
22
23. 2. Estrategia de control: Métodos
de búsqueda
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.
23
24. 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.
24
25. Algunos ejemplos de estrategias de
control sistemáticas
Los siguientes 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.
Búsqueda Breadth-First Search (primero
en ancho)
Búsqueda Depth-First Search (primero en
profundidad)
25
26. 3. Análisis del problema
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 apropiado 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? 26