CLASE: INTELIGENCIA ARTIFICIAL




SOLUCION DE PROBLEMAS MEDIANTE LA                     BÚSQUEDA
Solución de problemas co...
.           .          .
          .           .          .
Comenzando de donde se quiera, trazar cuatro líneas rectas que...
ELEMENTOS IMPORTANTES DE LA BÚSQUEDA

•   Estado Inicial: Donde se encuentra el agente en el momento de empezar la búsqued...
Este problema a pesar de parecer simple tiene 9! = 362880 diferentes ordenamientos de los
números en blanco, por lo que el...
también de izquierda a derecha y así sucesivamente. De ejercicio realice un algoritmo para
esta estrategia.


DEPTH-FIRST ...
R1

                       a,b


Pero “a” es dato, luego expandimos “b” por R5 a “a,e”

                        e
        ...
2) Utilicemos Breadth-Backward

Objetivo:                 e            Como es Breadth-First expandimos los hijos de “e”
 ...
4) Utilicemos ahora BREADTH-FORWARD

                    a,f

               R4         R6
                               ...
OBJETIVO: ANS = True

Si tenemos una máquina de inferencia que trabaje con Depth-Backward, la respuesta será:
YES

 R2-´´
...
Paso 3.       Salir con fallo si no se encuentra solución.

2. Depth First

   Paso 1. Formar una pila de un elemento que ...
Búsqueda limitada en profundidad: Esta búsqueda impone un corte a una profundidad
dada del árbol, en el caso de un grafo h...
de diferencias que describe cuando es apropiado cada operador. Una diferencia puede ser
resuelta por mas de un operador y ...
Upcoming SlideShare
Loading in...5
×

Clase5 Ia

1,510

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,510
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
38
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Clase5 Ia"

  1. 1. CLASE: INTELIGENCIA ARTIFICIAL SOLUCION DE PROBLEMAS MEDIANTE LA BÚSQUEDA Solución de problemas como una forma de razonamiento: Es la actividad mental de encontrar una solución a un problema. FORMULACION DEL PROBLEMA---PASOS---SOLUCION DEL PROBLEMA Métodos de solución de problemas. Las diferentes situaciones que se nos presentan en la vida diaria, laboral, académico o científica pueden ser resueltas por los siguientes métodos de resolver problemas: 1. La aplicación de una fórmula explícita. Cuando tenemos un problema y este puede ser resuelto a través de una ecuación. Ejemplo: solucionar una ecuación de 2º grado. 1 FORMA EXPLICITA 2 RECURSIVIDAD 2. El uso de una definición recursiva. Hay problemas en los cuales el uso de una definición recursiva hace posible generar los valores que se desean, como es le caso de la generación de los números de Fibonacci. 3. El uso de un algoritmo que converge a la solución. Hay problemas que no se pueden resolver por ecuaciones o fórmulas explícitas, mas sin embargo la construcción de un algoritmo hace posible resolver la dificultad. Un ejemplo es la elaboración de una nómina, la cual puede ser resuelta por ciclos, condiciones y acciones mediante un algoritmo que converge a la solución. 4. La aplicación de otro proceso, en particular el de Prueba y Error. De esta clase de problemas es de los que se ocupa los métodos de solución de problemas de I.A. LA EXPECTATIVA: Cuando tenemos en frente de nosotros un problema y este no es muy explícito o queda abierta la posibilidad de diferentes interpretaciones, se crean expectativas que aumentan el grado de dificultad del problema. Los detalles y las explicaciones en la formulación de los problemas es fundamental en la búsqueda de una buena solución. Veamos algunos ejemplos: 1. Considere la siguiente Matriz de 9 puntos: . . .
  2. 2. . . . . . . Comenzando de donde se quiera, trazar cuatro líneas rectas que pasen por los puntos hasta una sola vez y sin levantar el lápiz. 2. Se tienen tres fósforos organizados en tres filas y en tres columnas A una persona le dan otros tres fósforos mas y le piden que los coloque de manera que haya cuatro fósforos en cada fila y cuatro en cada columna. 3. Con 6 de los 12 fósforos anteriores construya 4 triángulos equiláteros únicamente. La Búsqueda como fundamento de la I.A. La búsqueda es la técnica fundamental para solucionar problemas que no se pueden resolver por los métodos computacionales convencionales. En la búsqueda hay un punto de partida y una meta y los pasos para llegar al objetivo forman una estructura de datos. Para buscar la solución a un problema existen tres alternativas: • Búsqueda Aleatoria: es aquella que utiliza cualquier ruta o camino y que la única ventaja es que el camino escogido se encuentre muy cerca de la meta. • Búsqueda a ciegas: Tomar un camino hasta llegar al objetivo, teniendo en cuenta no pasar dos veces por la misma parte. • Búsqueda dirigida: Es la base de la I.A. y toma como soporte información o datos sobre el objetivo a encontrar o problema a solucionar. LA BÚSQUEDA DIRIGIDA puede ser: • Dirigida POR DATOS ( FORWARD ). Parte de hechos o información dada hasta llegar al objetivo. • Dirigida POR OBJETIVO ( BACKWARD ). Parte de tratar de probar el objetivo, buscando soporte para ello. DEFINICION formal de la solución de problemas en la I.A. En los problemas de I.A. tenemos lo siguiente: AGENTE (Resolvedor de problemas)-------------PROBLEMA (Colección de Información)-----------------QUE HACER (La Búsqueda).
  3. 3. ELEMENTOS IMPORTANTES DE LA BÚSQUEDA • Estado Inicial: Donde se encuentra el agente en el momento de empezar la búsqueda. • Acciones: Es el conjunto de operadores aplicables a disposición del agente. Por operador se entiende la descripción de una acción para alcanzar un estado en particular. • Espacio de estado: Es el conjunto de estados alcanzables a partir del estado inicial mediante una secuencia de acciones cualquiera. • Un Camino: es una secuencia de acciones que conduce a un estado cualquiera. • El Criterio Objetivo: Es el criterio que aplica el agente para saber si se encuentra en el estado objetivo o no. • Estado Objetivo. Lo que se desea obtener. • Costo de un Camino: Es una función que asigna un costo a un camino. • Una Solución: Es un camino desde un estado inicial a un estado que satisface el criterio objetivo. • Costo de la Búsqueda: tiene que ver con el gasto de tiempo y memoria requisitos para encontrar la solución. • El Costo Total: Es la suma del costo del camino y el costo de la búsqueda. EJEMPLO. El rompecabezas de 8 fichas. Consiste en un tablero de 9 casillas con 8 de ellas numeradas y una en blanco. Una casilla numerada puede ser desplazada a la que está en blanco quedando la que estaba numerada en blanco y la que estaba en blanco numerada. La esencia del rompecabezas es dada cualquier numeración de las casillas obtener una con un orden específico, por ejemplo. 5 4 1 2 3 6 1 8 8 4 7 3 2 7 6 5 La formulación del problemas es: Estados: La descripción de un estado especifica la localización de cada número y la del espacio en blanco. Operadores: El blanco se mueve a la izquierda, derecha, arriba o abajo. Costo del Camino: Cada paso cuesta una unidad.
  4. 4. Este problema a pesar de parecer simple tiene 9! = 362880 diferentes ordenamientos de los números en blanco, por lo que el método de simplemente generar estados y probar si cumplen el criterio objetivo lleva una explosión combinatorial. PROCEDIMIENTO GENERAL DE BÚSQUEDA De acuerdo a la estrategia escogida para resolver el problema o buscar el objetivo, se va generando el espacio de búsqueda, que hay que diferenciarlo del espacio de estado. Por ejemplo en el problema del “vendedor viajero” con 20 ciudades, el espacio de estado está formado por 20 estados uno por cada ciudad, mientras que hay un número grande de caminos en el espacio de estado, dando lugar a un gran número de nodos en el espacio de búsqueda. La estrategia de búsqueda define el criterio para seleccionar el siguiente nodo a expandir. La estrategia escogida se evalúa atendiendo a cuatro aspectos. 1. Completitud. ¿Garantiza la estrategia encontrar una solución cuando esta exista? 2. Complejidad del tiempo. ¿Cuánto requiere encontrar una solución? 3. Complejidad del espacio. ¿Cuánta memoria se necesita para realizar la búsqueda? 4. Optimalidad. ¿Encuentra la estrategia la solución de mayor calidad cuando haya varias soluciones diferentes? Veamos dos grandes estrategias: BÚSQUEDA A CIEGAS: • Breadth-First Search ( Búsqueda primero a lo ancho ) • Depth-First Search ( Búsqueda primero en profundidad ) BÚSQUEDA INFORMADA • La Heuristica. BREADTH-FIRST SEARCH Empezamos generando el nodo inicial y apartir de este expandimos todos los nodos hijos del nodo inicial de izquierda a derecha. Después expandimos todos los nietos del nodo inicial
  5. 5. también de izquierda a derecha y así sucesivamente. De ejercicio realice un algoritmo para esta estrategia. DEPTH-FIRST SEARCH A partir del nodo inicial empezamos generando su primer hijo de izquierda a derecha hasta generar todos sus descendientes más izquierdos. Al generar el nodo más profundo, se genera el hermano de ese nodo más profundo si lo hay, con un procedimiento parecido al anteriormente descrito, si no tiene hermanos se regresa (BACKTRACKING) Y procede análogamente hasta expandir otros hijos del nodo inicial si los hay, y así sucesivamente. EJEMPLO: El siguiente ejemplo ilustra las dos estrategias con las dos direcciones Información conocida (datos) : a,f Objetivo: e Acciones R1: a,b c R2: c,d e R3: c,f e R4: a,f d R5: a,e b R6: f c 1) Utilicemos Depth-Backward Objetivo: e Ahora expandimos “e” a “c,d” por R2 R2 c,d Ahora “c” y “d” son nuestros nuevos objetivos. Como es Depth-First entonces expandimos “c” por R1 a “a,b” e R2 c,d
  6. 6. R1 a,b Pero “a” es dato, luego expandimos “b” por R5 a “a,e” e R2 c,d R1 “a” es dato y “e” es el objetivo, no podemos probar “e” por este camino, a “e” se le llama en este momento Nodo muerto. a,b a,e Ahora observemos si “b” se puede expandir mas. Vemos que no, hacemos Backtracking a “c” y expandimos a “c” hacia “f” por R6 . Pero “f” es dato. e R2 c,d R1 Ahora expandimos “d” para terminar de demostrar “e”. Por R4 R6 Tenemos a “a,f” , los cuales son datos. a,b f R5 e R2 a,e c,d R R1 4 R6 a,f a,b f R5 a,e Tenemos probados a “c” y “d” luego “e” está probado. SOLUCION: R2 , R6 ,R4 Obseve que “c” está siendo probada a través de R6 y “d” está siendo probada por R4 . Por medio de R1 no podemos probar ya que conduce a un nodo muerto.
  7. 7. 2) Utilicemos Breadth-Backward Objetivo: e Como es Breadth-First expandimos los hijos de “e” e R2 R3 Como “e” no tiene mas hijos expandimos “c” y “d” c,d c,f e R2 R3 c,d c,f R1 R6 R4 a,b f a,f Vemos que c queda probado por R6 ya que “f” es dato y “d” queda probado por R4 , ya que “a” también es dato. SOLUCION: R2,R6,R4 3) Utilicemos DEPTH-FORWARD “a” es dato y sólo no me conduce a nada, “a,f” si me conduce a “d” por R4 a,f R4 Tenemos ahora que la nueva información es: “a,f,d” como vamos Primero en profundidad tenemos que : a,f,d ya vimos que “a” no conduce a nada , “a,f” ya lo expandimos, “a,f,d” tampoco conduce, vemos que “f” conduce a “c” por R6. a,f R4 a,f,d La nueva información es ahora “a,f,d,c”, expandimos “a” : nada; “a,f” : ya; “a,f,d” : nada; “a,f,d,c” : nada; R6 “f” : ya; “f,d” : nada; “f,c” : Si a “e” por R3. a,f,d,c R3 a,f,d,c,e “e” es el objetivo buscado. SOLUCION: R4,R6,R3
  8. 8. 4) Utilicemos ahora BREADTH-FORWARD a,f R4 R6 Analice la respuesta: R6,R3 a,f,d a,f,c R3 a,f,c,e NOTA: Observó que: a) p Podemos probar “p” por “q“ OR “r” q r b) p Debemos probar a “q” AND “r” para probar a “p” q,r APLICACION ACCIONES O REGLAS REGLA 1 : if T = 20 and P = 15 then S = 2 REGLA 2 : if S = 2 and H=6 then ANS = True REGLA 3 : if S = 2 and L=4 then ANS = True REGLA 4 : if T = 20 and L = 4 then H = 6 REGLA 5 : if T = 20 and ANS = True then P = 15 REGLA 6 : if L = 4 then S = 2 INFORMACION DATO 1 : T = 20 DATO 2 : L = 4
  9. 9. OBJETIVO: ANS = True Si tenemos una máquina de inferencia que trabaje con Depth-Backward, la respuesta será: YES R2-´´ R6 Observe que por R4,D1 y D2 obtenemos C1 : H = 6 R4 por R6 y D2 obtenemos C2 : S = 2 D1 por R2, C1 y C2 obtenemos C3 : ANS = True D2 El objetivo C1 : H = 6 C2 : S = 2 C3 : ANS = True Compruebe que si utiliza de Bread-Backward, Depth-Forward y Breadth-Forward, la respuesta es también afirmativa. *************************************************************************** Veamos algunos datos acerca de la búsqueda Breadth First. Profundidad Nodos Tiempo Memoria 0 1 1 milisegundo 100 bytes 2 111 0.111 segundo 11 Kilobytes 4 11.111 11.1 segundos 1 Megabyte 6 106 16.7 minutos 111 Megabytes 8 108 27.8 horas 11 Gigabytes 10 1010 115.7 días 1 Terabytes 12 1012 31.7 años 111 Terabytes 14 1014 3170 años 11.111 Terabytes Algunos algoritmos 1. Breadth First Paso 1. Formar una cola de un elemento que contiene el nodo raiz Paso 2. Iterar a través de a) a c) hasta que la cola esté vacía. a) Chequear si el primer elemento de la cola es una solución. b) Salir con éxito si el elemento chequeado es una solución. c) Si no es solución añadir sus hijos al final de la cola.
  10. 10. Paso 3. Salir con fallo si no se encuentra solución. 2. Depth First Paso 1. Formar una pila de un elemento que contiene el nodo raiz. Paso 2. Iterar a través de a) a c) hasta que la cola esté vacía. a) Chequear si el primer elemento de la cola es una solución. b) Salir con éxito si el elemento chequeado es una solución. c) Si no es solución añadir sus hijos al tope de la pila. Paso 3. Salir con fallo si no se encuentra solución. NOTA: Analice cada uno de los algoritmos anteriores y verifique que si realmente pertenecen a cada uno de las estrategias. ALGUNAS MODIFICACIONES PARA BREADTH FIRST Y DEPTH FIRST Búsqueda con costo Uniforme: Esta búsqueda es una modificación del Beadth First la cual después de expandir todos los nodos del primer nivel, no expande el menos profundo, sino el de menos costo, y así sucesivamente. Si por ese lado no está la solución , entonces Backtracking y se escoge el nodo de menos costo después del anterior escogido. Ejemplo. 5 8 5 8 2 3 2 3 6 5 1 Paso 1 5 8 Paso 2 2 3 6 5 1 Paso 3 7 9 4 5
  11. 11. Búsqueda limitada en profundidad: Esta búsqueda impone un corte a una profundidad dada del árbol, en el caso de un grafo habrá quue añadir un detector de ciclos. Si la profundidad de corte seleccionada es menor que la profundidad de la solución nunca se hallará esta, mientras que si es mayor se paga un precio alto en memoria y tiempo. Hay problemas donde resulta claro cual debe ser la profundidad del corte, lo cual hace pensar que debe tomarse otro camino. Evitar nodos repetidos: Los nodos que ya han sido expandidos o visitados anteriormente no deben tomarse otra vez si se encuentran en la búsqueda pues en muchos casos nos hacen perder tiempo. La formulación eficiente del problema de las ocho reinas es eficiente en gran parte por eso. Lo mismo pasa para el problema de los caníbales y los misioneros. Los arboles de búsqueda de estos problemas pueden ser infinitos si no se tiene encuentra en no expandir los nodos ya visitados. Hay tres alternativas para atacar los estados repetidos, en orden creciente de efectividad y costo computacional, estos son: • No retornar al estado de donde se viene, es decir, no generar ningún sucesor que sea el mismo estado que el nodo padre. • No crear caminos con ciclos. No generar ningún sucesor de un nodo que coincida con alguno de sus antecesores. • No generar ningún estado que halla sido generado antes. Esto requiere mantener en memoria todo estado generado, resultando en una complejidad potencial del espacio de O(bd). Búsqueda de soluciones múltiples: Buscar todas las soluciones posibles para analizar cual es la mejor necesita de una búsqueda exhautiva, lo que se puede hacer es buscar algunas y escoger la mejor. • Remover el camino de búsqueda: 1)Se calcula una solución paor algún método de búsqueda, 2)Se eliminan del arbol de búsqueda todos los nodos que forman parte de la solución encontrada en 1) y 3) repetir desde 1). • Remover el último nodo del camino: La única diferencia respecto al anterior es que en 2) sólo se elimina del árbol de búsqueda el último nodo del camino de la solución encontrada en 1). Búsqueda por diferencias: El proceso de análisis por reducción por diferencias consiste en detectar diferencias entre el estado actual y el estado meta, de tal manera que al pasar el tiempo el nuevo estado este mas cerca del estado objetivo. Para esto es necesario aplicar operadores en cada instancia para la reducción de diferencias. Cuando un operador indicado y efectivo es escogido para realizar una acción que conduzca a reducir la diferencia, entonces el estado meta será mas fácil de alcanzar. El primer programa de I.A. que explotó el análisis de diferencias fue el solucionador general de problemas Newell y Simon en 1963. Para desarrollar la búsqueda es necesario un conjunto de reglas que puedan transformar un estado del problema en otro. En la condición de las reglas se establecen las condiciones que deben verificarse para poder aplicar la regla, en el consecuente de la regla se definen aquellos aspectos del estado del problema que cambiarán al aplicar la regla. Además, se usa una tabla
  12. 12. de diferencias que describe cuando es apropiado cada operador. Una diferencia puede ser resuelta por mas de un operador y un operador puede reducir mas de una diferencia. La Robótica tiene las bases en este tipo de búsqueda. ALGORITMO BEST-FIRST (Primero el mejor). La búsqueda Best-First busca expandir el nodo más prometedor en cada nivel, teniendo encuentra que este sea el mejor comparado con todos los ya visistados, en otras palabras el nodo a expandir en cada paso debe ser preferentemente mejor que sus compañeros y todos los anteriores, si no es así se continua con el mejor esté donde esté. Una de las estrategias más sencillas es reducir al mínimo el costo estimaado para lograr una meta, o sea el nodo cuyo estado se considere mas cercano a la meta. El problema consiste en poder estimar la distancia a la que se encuentra un nodo en un estado determinado de la meta, el estimado o la distancia estimada se puede tener a través de una función heurística. h(n) = costo estimado de la ruta mas barata que une el estado del nodo n con un estado meta. Ejemplo: Ir desde Arad hasta Bucharest según el mapa de Rumania. BÚSQUEDA HEURISTICA BÚSQUEDA A*

×