You are on page 1of 37

Inteligencia Artificial

Problemas Espacios Problema Bsquedas

Pasos para construir un programa en IA


1.Definir el problema con precisin 2.Analizar el problema 3.Aislar y representar el conocimiento necesario 4.Elegir la(s) tcnica(s) y aplicarla(s)

1- Definir el problema
En algunos problemas como el ajedrez, ocurre lo siguiente:

Nadie puede suministrar un conjunto completo de reglas (todos los posibles movimiento legales de todas las piezas en el tablero). Ningn programa puede manipular todas esas reglas. Se podra usar un metodo de hashing, para encontrar ms rpido la regla a aplicar, pero an as las reglas crean muchas dificultades.

Representacin de espacio de estados


Surge de manera natural del ajedrez, donde cada estado representa una posicin legal en el tablero. Es adecuado para problemas menos estructurados. Forma la base para la mayora de los mtodos de IA.

Representacin de espacio de estados


Corresponde con la estructura de resolucin de problemas, por 2 razones importantes: 0.Permite definir formalmente el problema, ante la necesidad de convertir alguna situacin dada en la situacin deseada, usando un conjunto de operaciones permitidas. 1.Permite definir el proceso de resolucin como una combinacin de tcnicas conocidas y bsqueda. Intenta encontrar alguna ruta desde el estado actual al estado objetivo.

La bsqueda es un proceso de gran importancia en la resolucin de problemas difciles para los que no se dispone de tcnicas ms directas.

El problema de las jarras de agua


Se tienen dos jarras, una de 4 litros de capacidad y otra de 3. Ninguna de ellas tiene marcas de medicin. Se tiene una bomba que permite llenar las jarras de agua. Cme se puede lograr tener exactamente 2 litros de agua en la jarra de 4 litros de capacidad?
Definir las reglas para resolver el problema.

Sistemas de Produccin
La bsqueda es el ncleo de muchos procesos inteligentes. Los sistemas de produccin proporcionan la forma de estructurar los programas de IA de manera que se facilite describir y desarrollar el proceso de bsqueda

Sistemas de Produccin
Est compuesto de:

Conjunto de reglas, compuestas por una parte izquierda que determina la aplicabilidad de la regla y una parte derecha que describe la operacin que se lleva a cabo si se aplica la regla. Una o ms bases de datos /conocimiento. Estrategia de control, para determinar la regla a aplicar. Un aplicador de reglas.

Estrategia de control

El primer requisito que debe cumplir una buena estrategia de control es que cause algn cambio. El segundo requisito que debe cumplir una buena estrategia de control es que sea sistemtica.

Bsqueda Primero en Anchura


i. Se construye un rbol cuya raz sea el estado inicial. ii.Todas las ramificaciones de la raz se generan al aplicar cada una de las reglas aplicables al estado inicial. iii.Para cada nodo se generan todas las posibles situaciones resultantes de la aplicacin de todas las reglas adecuadas. iv.Se contina con este proceso hasta que alguna regla produce un estado objetivo.

Bsqueda Primero en Profundidad


i. Se construye un rbol cuya raz sea el estado inicial. ii.Se contina por una sola rama del rbol hasta encontrar una solucin o hasta que se tome la decisin de terminar la bsqueda por esa direccin. Termina la bsqueda por una ruta (produciendo un backtracking), al llegar a un callejn sin salida, se produce un estado ya alcanzado o la ruta se alarga ms de lo especificado.

Ventajas de la Bsqueda Primero en Anchura

No queda atrapada buscando callejones sin salida. Si existe una solucin, la bsqueda primero en anchura garantiza que se logre encontrarla. Adems, si existen mltiples soluciones, se encuentra la solucin mnima.

Ventajas de la Bsqueda Primero en Profundidad


Necesita menos memoria. Si se tiene suerte, la bsqueda primero en profundidad puede encontrar una solucin sin tener que examinar gran parte del espacio de estados.

El problema del agente viajero


Un vendedor tiene una lista de ciudades, cada una de las cuales debe visitar exactamente una vez. Existen carreteras directas entre cada pareja de ciudades de la lista. Encontrar la ruta ms corta posible que debe seguir el vendedor que empiece y termine en alguna de estas ciudades. Considera 10 ciudades Considera N ciudades

Bsqueda Heurstica

Normalmente no se necesita una solucin ptima, con frecuencia una buena aproximacin es adecuada. Si bien las aproximaciones que se logran con una heurstica pueden no ser muy buenas en los peores casos, estos peores casos raramente ocurren en el mundo real. Intentar comprender por qu funciona una heurstica, o por qu no lo hace, normalmente sirve para profundizar en la comprensin del problema.

Bsqueda Heurstica

Puede descomponerse el problema? Pueden deshacerse pasos o ignorarse pasos hacia una solucin? Es predecible el universo? Una solucin adecuada es absoluta o relativa? La solucin es un estado o una ruta? Cul es el papel del conocimiento? Necesita la tarea interaccionar con una persona?

Criptoaritmtica
Considere un problema aritmtico representado por letras. Asigne un dgito decimal a cada una de las letras de forma que el problema sea correcto. Si una letra aparece ms de una vez, se le asigna siempre el mismo dgito. No puede asignarse el mismo dgito a dos letras diferentes.
SEND +MORE MONEY

Tcnicas de Bsqueda Heurstica


Generacin y prueba (generate and text) Escalada (hill climbing)


Escalada simple Escalada por la mxima pendiente Enfriamiento Simulado Grafos O Algoritmo A* Agendas

Bsqueda el primero mejor (best first search)


Tcnicas de Bsqueda Heurstica

Reduccin del problema (problem reduction)


Grafos Y-O Algoritmo AO*

Verificacin de restricciones (constraint satisfaction) Anlisis de medios y fines (means ends analysis)

Verificacin de restricciones
Consiste en descubrir algn estado del problema que satisfaga un conjunto de restricciones. Descripcin:

Se descubren las restricciones y se propagan tan lejos como sea posible a travs del sistema. Si an no hay una solucin, la bsqueda comienza. Se hace una suposicin sobre algo y se aade como una nueva restriccin. Entonces, la propagacin contina con esta nueva restriccin y as sucesivamente.

Verificacin de restricciones Algoritmo


1. Propagar las restricciones disponibles. Para lograrlo primero hacer que ABIERTOS sea el conjunto de todos los objetos que deben tener un valor asignado para completar una solucin. Hacer lo siguiente hasta que se detecte una inconsistencia o hasta que ABIERTOS est vaco:

Verificacin de restricciones Algoritmo


a)Seleccionar un objeto OB de ABIERTOS . Fortalecer al mximo el conjunto de restricciones que afecten OB b)Si este conjunto es diferente del conjunto que le fue asignado a OB la ltima vez que fue examinado, o si es la primera vez que examinan OB, entonces aadir a ABIERTOS todos los objetos que compartan alguna restriccin con OB. c)Borrar OB de ABIERTOS.

Verificacin de restricciones Algoritmo


2. Si la unin de las restricciones descubiertas arriba definen una solucin, terminar y presentar la solucin. 3. Si la unin de las restricciones descubiertas arriba definen una contradiccin, entonces devolver un error.

Verificacin de restricciones Algoritmo


4. Si no ocurre ninguno de los casos anteriores, entonces es necesario hacer una suposicin sobre algo con el fin de continuar. Para hacerlo, repetir hasta que se encuentre una solucin o hasta que todas las posibles soluciones hayan sido eliminadas:

Verificacin de restricciones Algoritmo


a)Seleccionar un objeto del que no se haya determinado su valor, y seleccionar una forma de fortalecer las restricciones sobre ese objeto. b)Invocar recursivamente la verificacin de restricciones con el actual conjunto de restricciones aumentado por el fortalecimiento de las restricciones seleccionado.

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Se pueden utilizar pocas y tiles heursticas para las suposiciones iniciales. Ejemplo:

Si existe una letra que solo tiene dos posibles valores y otra con seis, es mejor elegir la primera. Si existe una letra que forma parte de muchas restricciones, es mejor elegirla. Esto conducir a una rpida contradiccin o a la generacin de restricciones adicionales.

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Abiertos {S,E,N,D,M,O,R,Y}

Restricciones

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Abiertos
{S,E,N,D,O,R,Y}

Restricciones

M=1 (la suma de dos nmeros ms un acarreo no puede ser mayor que 19)

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Abiertos
{E,N,D,O,R,Y}

Restricciones

M=1 S=8 S=9 (S+1 S+2, si hay acarreo, debe ser mayor igual a 10)

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Abiertos
{E,N,D,R,Y}

Restricciones

M=1 S=8 S=9 O=0 O=1 O=0

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Abiertos
{D,R,Y}

Restricciones

M=1 S=8 S=9 O=0 O=1 O=0 N=E N=E+1 N=E+1 Acarreo2 =1

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Abiertos
{D,Y}
Dado que acarreo2 = 1 N+R+1=10+E R=8 N+R=10+E R=9

Restricciones

M=1 S=8 S=9 O=0 O=1 O=0 N=E N=E+1 N=E+1 Acarreo2 =1 R=8 R=9

Verificacin de restricciones Ejemplo: Criptoaritmtica


SEND +MORE MONEY

Restricciones

M=1 S=8 S=9 O=0 O=1 O=0 N=E N=E+1 N=E+1 Acarreo2 =1

R=8 R=9 D+E=Y D+E=10+Y S <> E <> N <> D <> M <> O <> R <> Y

Ejercicio
Haga una traza del procedimiento de verificacin de restricciones para resolver el siguiente problema criptoaritmtico.
CROSS +ROADS DANGER

You might also like