Problemass de Búsqueda en IA Problema Univer Universidad sidad del Magdalena Ingeniería de Sistemas 218-I
¿Qué es un Problema de Búsqueda? •
Búsqueda: es el proceso de hallar una secuencia de acciones que conduzcan a la solución de un problema (objetivo). Es una exploración de alternativas.
•
Para resolver un problema automáticamente necesitamos una representación del problema y un algoritmo que utilice alguna estrategia.
Representación del Problema •
Estado inicial
•
Una descripción de las posibles acciones
•
Estado objetivo Espacio de estados
•
Función de costo
•
•
Solución: camino desde un estado inicial hasta un estado objetivo
Ejemplo: 8-puzzle
1
2
3
4
5
6
7
8
Ejemplo: 8-puzzle •
• •
•
Estados: configuración configuración de las ocho casillas del tablero (9!/2 = 181.440 estados alcanzables). configuración Estado inicial: cualquier configuración Estado orden objetivo: las casillas en un especifico Operadores Operador es o acciones ac ciones: “mover al blanco” –
–
•
Condición: el movimiento debe hacerse dentro del tablero Transf ransformación: ormación: movimientos izquierda, derecha, arriba, o abajo
Solución: secuencia optima de operadores
Ejemplo: n reinas (n = 4, n = 8)
Ejemplo: n reinas (n = 4, n = 8) •
• •
Estados: configuraciones de 0 a n reinas en un tablero con solamente una reina por columna y fila (64x63x...x57 ~ 3x10^14 estados). Estado inicial: configuración sin reinas en el tablero Estado objetivo: configuración con n reinas tal que ninguna reina ataque a ninguna otra
• •
•
Operadores o acciones colocar un reina el tablero Condición: la nueva reina:no sea atacada poren ninguna otra ya colocada Transformación: colocar una nueva reina en una casilla del tablero Solución: ? (no se considera costo)
El mun mundo do de la la aspi aspirrad ador ora a
El Mundo de la Aspiradora •
Estados: el agente esta en una de dos localizaciones, cada una de las cuales puede est estar ar o no sucia. Hay 2 x 2^2 = 8 posibles estados.
•
Estado inicial: cualquier estado
•
Estado final: todos los cuadros limpios
•
•
Acciones: moverse a la izquierda, derecha y aspirar. Solución: numero de pasos que la conformarían.
El Mundo de la Aspiradora •
Espacio de estados
Estrategias de Búsqueda •
Búsqueda basadas en arboles
Estrategias de Búsqueda sin Información
•
Solamente utiliza la información disponible en la definición del problema
Algoritmos: •
•
Primero en anchura
•
Primero en profundidad Búsqueda de costo uniforme
•
Búsqueda con profundidad limitada
•
Búsqueda con profundidad iterativa
Ejemplo: viajando en Rumania
Primero en Anchura •
•
Idea: expandir los nodos de un mismo nivel que no han sido expandidos antes. Utilizar un cola FIFO los sucesores ingresan al final de la cola. ‘b’
3
12
3
‘a’
‘c’
Firs Firstt In Firs Firstt Out Out
31 ‘s’
Algoritmo Primero en Anchura
Primero en Anchura
Primero en Anchura
Primero en Anchura
Primero en Anchura
Primero en Anchura •
¿Cómo quedaría el problema de Rumania?
•
Hacer el ejercicio ej ercicio completo completo con el problema de las jarras de agua y el problema del granjero.
Viajando en Rumania Primero en anchura:
Viajando en Rumania Primero en anchura:
Medida del Rendimiento de la Solución de un Problema existe. Completitud: siempre encuentra la solución cuando esta existe. expandidos/generados. Tiempo requerido: numero de nodos expandidos/generados. Memoria requerida: espacio en memoria requerido. Optimalidad: encuentra la solución optima?
La complejidad en términos de tiempo y memoria se mide en términos de:
b: máximo factor de ramificación del árbol de búsqueda d: profundidad de la solución con mínima distancia desde la raíz. m: máxima longitud de cualquier camino en el espacio de estados.
Evaluación del Primero en Anchura Completitud: si, si b es finito. Tiempo: b + b^2 + b^3 + … b^d + (b^(d+1) - b) ϵ O(b^(d +1)) +1)) i.e. exponencial in d. Espacio: O(b^d +1). +1). Memoria: cada nodo generado se guarda en memoria. Optimo: depende, es optimo si el costo de cada paso es 1. Desventaja: la capacidad de memoria requerida
(e.g 5MB/ 5MB/sec sec so 24 24hrs hrs = 430G 430GB) B)
Primero en Profundidad Principio: Expande el nodo mas profundo que no ha sido expandido antes. Implementación: Con una pila (ultimo en entrar, primero en salir) LIFO. Nota: Necesita solo almacenar un camino desde la raíz a un nodo hoja y los nodos hermanos no expandidos para
cada nodo en el camino.
Algoritmo Primero en Profundidad
Ejemplo: primero en profundidad
Ejemplo: primero en profundidad
Ejemplo: primero en profundidad
Ejemplo: primero en profundidad
Ejemplo: primero en profundidad
Ejemplo: primero en profundidad
Ejemplo: primero en profundidad
Viajando por Rumania: primero en profundidad •
Como quedaría el árbol de búsqueda primero en profundidad en este caso?
Viajando por Rumania: primero en profundidad Si no se evitan los nodos repetidos
Propiedades del Primero en Profundidad Completitud: Si, si el espacio de estados es infinito. No, si el estado contiene caminos infinitos o loops. Optimalidad: No Tiempo: O(b^m) Memoria: O(bm) (i.e. lineal) Desventaja: costoso en tiempo si m es mucho mas grande
que d .
Viajando por Rumania con Función de Costo
Búsqueda con Costo Uniforme Principio: Expande el nodo no-expandido con mínimo costo. (el costo es sumado desde la l a raíz a las hojas) Implementación: Con una cola ordenada ascendentemente de acuerdo al costo del camino. Nota: Es equivalente al algoritmo primero en anchura si todos los pasos tienen igual costo.
Viajando por Rumania con Costo Uniforme 1 140
Arad 75 118
Sibiu
Timisoara
Zerind
150
Arad
2
146
Oradea
1
Arad
140
75 118
3
Sibiu
Timisoara 236
229
Zerind
2
150
146
Lugoj Arad
Arad
Oradea
1 Arad
140
75
4
Sibiu
280
Arad
239 Fagaras
118
3
291 Oradea
Zerind
Timisoara 229
236
150
220 R. Vilcea
2
Arad
Lugoj
Arad
146
Oradea
1 Arad
140
75
4
Sibiu
280
Arad
239 Fagaras
118
3
291 Oradea
Zerind
Timisoara
2
229
236 220
150 R. Vilcea
146 5
Arad
Lugoj
Oradea
Arad 297 Sibiu
217 Zerind
1 Arad
140
75
4
118
3
Sibiu
280
Arad
239 Fagaras
Zerind
Timisoara
291 Oradea
366 Craiova
6
2
229
236
150
220
5
R. Vilcea
317 Pitesti
146
Arad 300
Lugoj
Oradea
Arad 297
Sibiu
Sibiu
217 Zerind
1 Arad
140
75
4
Sibiu
280
Arad
239 Fagaras
118
3
291
6
Craiova
2
229
236
150
220
317 Pitesti
146
7
R. Vilcea
Oradea
366
Zerind
Timisoara
Lugoj
Arad 340
300 Sibiu
5
Mehadia
Oradea
Arad 299
297
Timisoara
Sibiu
217 Zerind
1 Arad
140 75 4
118
3
Sibiu
280
239
Zerind
Timisoara 6
291
2
229
236
150
220
146 5
7 Arad
Fagaras
Oradea
R. Vilcea
Lugoj
Arad
Oradea
Arad
8 366 450
Bucharest
317
300
338
340
Sibiu
Craiova
Pitesti
Sibiu
Mehadia
299
297
Timisoara
Sibiu
217 Zerind
1 Arad
140 75 4
118
3
Sibiu
280
239
Zerind
Timisoara 6
291
2
229
236
150
220
146
7 Arad
Fagaras
R. Vilcea
Oradea
5
Lugoj
Arad
Oradea
Arad
8 366 450
Bucharest
300
317
338
340
9
Sibiu
Craiova
Pitesti 418
Bucharest
455
Sibiu 414
Craiova
R. Vilcea
Mehadia
299
297
Timisoara
Sibiu
217 Zerind
1 Arad
140 75 4
118
3
Sibiu
280
239
Zerind
Timisoara 6
291
2
229
236
150
220
146 5
7 Arad
Fagaras
Oradea
R. Vilcea
Lugoj
Arad
Oradea
Arad
8
300 450
Bucharest
366
338
Sibiu
317
Craiova 418 Bucharest
Pitesti 455
340
9
Sibiu
Craiova
R. Vilcea
Dobreta
297
Timisoara
Mehadia 374
414
299
10
369 Lugoj
Sibiu
217 Zerind
1 Arad
140 75 4
118
3
Sibiu
280
239
291
Zerind
Timisoara 6
2
229
236
150
220
146
7 Arad
Fagaras
R. Vilcea
Oradea
5
Lugoj
Arad
Oradea
Arad
8
300 450
Bucharest 486 Dobreta
366
338
Sibiu 504
Pitesti
11
Craiova 512 R. Vilcea
317
Pitesti 418 Bucharest
340
9
455
Sibiu
299
297
Timisoara
Mehadia 374
414 Craiova
10
R. Vilcea
Dobreta
Sibiu 369 Lugoj
217 Zerind
1 Arad
140
75
4
118
3
Sibiu
280
239
291
Zerind
Timisoara 6
2
229
236
150
220
146
7 Arad
Fagaras
R. Vilcea
Oradea
5
Lugoj
Arad
Oradea
Arad
8 450
Bucharest 486 Dobreta
366
338
Sibiu 504
Pitesti
11
Craiova 512 R. Vilcea
317
9
300
Pitesti 418 Bucharest
340
Craiova
374
414
297
Timisoara
Mehadia
Sibiu
455
299
10
R. Vilcea
12
369 Lugoj
Dobreta
449
Mehadia
Sibiu
494
Craiova
217 Zerind
Propiedades del Costo Uniforme Completitud: si (si los costos de cada paso son positivos) Optimalidad: si. Time: O (b^d). Memoria: O(b^d).
Búsqueda Primero en Profundidad con limite de profundidad Búsqueda con profundidad limitada constante. Búsqueda con un limite de profundidad
iterativo.
Algoritmo Primero En Profundidad con Limite Limite Iterativo
Primero en Profundidad con Profundidad Itera Iterativa tiva
Primero en Profundidad con Profundidad Itera Iterativa tiva
Primero en Profundidad con Profundidad Itera Iterativa tiva
Viajando por Rumania con Profundidad Limitada •
Como quedaría el árbol con profundidad 2?
Profundidad Limitada Iterativa: propiedades Complete: si Tiempo: (d +1) +1)b^0 + db^1 + (d -1) -1)b^2 + …. Memoria: O(bd ) Optimaliadad: si (si todos los pasos vale 1)
+
b^d ϵ O(b^d )
Comparando Propiedades
Criterio
Completitud
Primero en Anchura
Costo Uniforme
Primero Primer o en Profundidad Profundidad Iterativa
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.