+ All Categories
Home > Documents > Introduccion a la Inteligencia Artificial´ Curso 2010–2011Introduccion a la Inteligencia...

Introduccion a la Inteligencia Artificial´ Curso 2010–2011Introduccion a la Inteligencia...

Date post: 05-Feb-2021
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
24
Introducci ´ on a la Inteligencia Artificial Curso 2010–2011 Tema 7: B´ usqueda con informaci´on Miguel A. Guti´ errez Naranjo Dpto. de Ciencias de la Computaci´on e Inteligencia Artificial Universidad de Sevilla IIA 2010–11 usqueda con informaci´ on 1
Transcript
  • Introducción a la Inteligencia Artificial Curso 2010–2011

    Tema 7: Búsqueda con información

    Miguel A. Gutiérrez Naranjo

    Dpto. de Ciencias de la Computación e Inteligencia Artificial

    Universidad de Sevilla

    IIA 2010–11 Búsqueda con información 1

  • Búsqueda en el árbol

    frontier

    explored nodes

    unexplored nodes

    startnode

    IIA 2010–11 Búsqueda con información 2

  • Un algoritmo de búsqueda (informal)

    ⊲ Selecciono un nodo de la frontera (al principio, la frontera sólocontiene al nodo inicial).

    ⊲ Si el nodo seleccionado es el que busco, entonces se termina labúsquda.

    ⊲ Si no es el objetivo, entonces considero los nodos siguientes alnodo seleccionado.

    ⊲ Añado estos nuevos nodos a la frontera

    ⊲ Vuelvo al principio

    ⊲ Las estrategias se definen por el orden de expansión de los nodos.

    IIA 2010–11 Búsqueda con información 3

  • Concepto de heuŕıstica

    ⊲ Heuŕıstica:

    Del griego heuriskein, descubrir: ¡Eureka!

    Segun el DRAE: Técnica de la indagacion y del descubri-miento.

    Otro signicado: metodo para resolver problemas que no ga-rantiza la solucion, pero que en general funciona bien.

    En nuestro caso, una heuŕıstica será una función numéricasobre los estados.

    IIA 2010–11 Búsqueda con información 4

  • Concepto de heuŕıstica

    ⊲ Función de evaluación heuŕıstica, heurstica(estado):

    Estima la distancia al objetivo.

    Siempre mayor o igual que 0.

    Valor en los estados finales: 0.

    Admitimos valor ∞.

    IIA 2010–11 Búsqueda con información 5

  • Ejemplos de heuŕıstica

    ⊲ Problema del paseante:

    Consideremos que damos un paseo por la recta real em-pezando por un entero. Nuestros pasos miden una unidady podemos ir a la izquierda y a la derecha.

    ⊲ Implementación:

    sucesor(X,Y) :- Y is X - 1. estado_inicial(0).

    sucesor(X,Y) :- Y is X + 1. estado_final(8).

    ⊲ Heuŕıstica:heuristica(estado) = | estado - estado final |

    IIA 2010–11 Búsqueda con información 6

  • Ejemplos de heuŕıstica

    ⊲ Problema del paseante:

    Consideremos que damos un paseo por la recta real em-pezando por un entero. Nuestros pasos miden una unidady podemos ir a la izquierda y a la derecha.

    ⊲ Implementación:

    sucesor(X,Y) :- Y is X - 1. estado_inicial(0).

    sucesor(X,Y) :- Y is X + 1. estado_final(8).

    ⊲ Heuŕıstica:heuristica(estado) = | estado - estado final |

    IIA 2010–11 Búsqueda con información 7

  • Ejemplos de heuŕıstica

    ⊲ Viaje por Andalućıa

    HU

    SE

    JACO

    CA

    GR

    AL

    MA

    ⊲ Coordenadas: Almerı́a: (409.5, 93) ; Granada: (309, 127.5) ;Málaga: (232.5, 75) ; Cádiz: (63, 57) ;

    Huelva : (3, 139.5) ; Sevilla: (90, 153) ;

    Córdoba: (198, 207 ) ; Jaen: (295.5, 192)

    ⊲ Funcion de evaluación heuŕıstica (distancia en ĺınea recta):heuristica(estado) =

    distancia(coordenadas(estado),coordenadas(almeria))

    IIA 2010–11 Búsqueda con información 8

  • Ejemplos de heuŕıstica

    ⊲ Viaje por Andalućıa

    HU

    SE

    JACO

    CA

    GR

    AL

    MA

    ⊲ Coordenadas: Almerı́a: (409.5, 93) ; Granada: (309, 127.5) ;Málaga: (232.5, 75) ; Cádiz: (63, 57) ;

    Huelva : (3, 139.5) ; Sevilla: (90, 153) ;

    Córdoba: (198, 207 ) ; Jaen: (295.5, 192)

    ⊲ Funcion de evaluación heuŕıstica (distancia en ĺınea recta):heuristica(estado) =

    distancia(coordenadas(estado),coordenadas(almeria))

    IIA 2010–11 Búsqueda con información 9

  • Ejemplos de heuŕıstica

    ⊲ Problema del 8-puzzle:

    ⊲ Primera heuŕıstica: Número de piezas descolocadas respecto suposición en el estado final.

    ⊲ Ejemplo:

    H = 0

    7 5

    2 8 3

    1 6 4 4

    1 2 3

    567

    8

    H = 4

    IIA 2010–11 Búsqueda con información 10

  • Ejemplos de heuŕıstica

    ⊲ Problema del 8-puzzle:

    ⊲ Segunda heuŕıstica: Suma de las distancias Manhattan de cadapieza a donde debeŕıa estar en el estado final.

    ⊲ Ejemplo:

    7 5

    2 8 3

    1 6 4 4

    1 2 3

    567

    8

    H = 0H = 5

    IIA 2010–11 Búsqueda con información 11

  • Búsqueda voraz greedy

    ⊲ Expandir los nodos con heuŕıstica más baja preferentemente.

    ⊲ Ordenar la frontera por heuŕıstica, de menor a mayor.

    ⊲ Siempre elige expandir lo que estima que esta más cerca delobjetivo.

    ⊲ Su rendimiento dependerá de la bondad de la heuŕıstica usada.

    IIA 2010–11 Búsqueda con información 12

  • Búsqueda voraz para el problema del paseante

    ⊲ Ejemplo con estado final(-3).

    1

    01

    H = 4

    2−1

    −23

    −34

    H = 3

    H = 2

    H = 1

    H = 0

    IIA 2010–11 Búsqueda con información 13

  • Búsqueda voraz para el problema del viaje

    Cádiz Córdoba Huelva Málaga2

    1SevillaH = 325.08

    H = 348.37 H = 240.27 H = 409.15 H = 177.91

    Granada

    Almería Jaén4

    3

    H = 106.26

    H = 150.99H = 0

    IIA 2010–11 Búsqueda con información 14

  • Búsquedavorazdel8-puzzle(primeraheuŕıstica)

    1

    75

    28

    3

    16

    4

    H =

    4

    2

    5

    28

    3

    16

    4

    7

    H =

    5

    75

    28

    3

    14

    6

    H =

    3

    728

    3

    16

    4

    5

    H =

    5

    5

    28

    3 4

    761

    H =

    3

    75

    23

    14

    6

    H =

    3

    8

    728

    3

    1

    65

    4

    H =

    4

    3

    53 4

    768

    21

    H =

    3

    5

    2

    4

    6

    H =

    4

    83

    71

    53

    14

    7682

    H =

    2

    75

    2 14

    63 8

    H =

    4

    4

    753 4

    6

    12

    8

    H =

    0

    3 4 5

    H =

    2

    12

    78 6

    753

    6

    12 8

    4

    H =

    1

    5 6

    7

    IIA2010–11Búsquedaconinformación15

  • Búsquedavorazdel8-puzzle(segundaheuŕıstica)

    1 2

    75

    23

    14

    6

    H =

    3

    8

    75

    28

    3

    16

    4

    H =

    5

    5

    28

    3

    16

    4

    7

    H =

    6

    75

    28

    3

    14

    6

    H =

    4

    728

    3

    16

    4

    5

    H =

    6

    5

    28

    3 4

    761

    H =

    5

    728

    3

    1

    65

    4

    H =

    5

    3

    53

    14

    7682

    H =

    2

    75

    2 14

    63 8

    H =

    4

    753 4

    6

    12

    8

    H =

    0

    3 4 5

    H =

    2

    12

    78 6

    753

    6

    12 8

    4

    H =

    1

    6

    54

    IIA2010–11Búsquedaconinformación16

  • Implementación

    busqueda_voraz(Camino):-

    estado_inicial(E),

    heuristica(E,H),

    aux_heuristica([H-[E]],Camino).

    aux_heuristica(F,C) :-

    write(’Frontera: ’), write(F), nl,

    selecciona(_-[N|Caux],F,_),

    estado_final(N),

    reverse([N|Caux],C),

    nl,

    write(’Estado final encontrado: ’), write(N), nl,

    write(’Camino encontrado: ’), write(C).

    IIA 2010–11 Búsqueda con información 17

  • Implementación

    aux_heuristica(F,C) :-

    selecciona(N,F,F1),

    sucesores_4(N,NN),

    nueva_frontera(NN,F1,F2),

    aux_heuristica(F2,C).

    sucesores_4(_-[N|C],M):-

    findall(H-[Nuevo_nodo,N|C],

    ((sucesor(N,Nuevo_nodo),

    not(member(Nuevo_nodo,[N|C])),

    heuristica(Nuevo_nodo,H))), M).

    nueva_frontera(NN,F1,F3):- !, append(NN,F1,F2), sort(F2,F3).

    selecciona(N,[N|F],F).

    IIA 2010–11 Búsqueda con información 18

  • Búsqueda A∗

    ⊲ Objetivo de la busqueda A∗: Conseguir buenas soluciones (ópti-mas).

    ⊲ Idea: asignar a cada nodo n un valor f (n) = g(n) + h(n),

    g(n): coste del camino hasta n.

    h(n): heuŕıstica del nodo, estimación del coste de un caminoóptimo desde n hasta un estado final.

    f (n): estimacion del coste total de una solucion óptima quepasa por n.

    ⊲ Seleccionar siempre el nodo con menor valor de f .

    ⊲ Ordenar la cola frontera en orden creciente respecto a f .

    IIA 2010–11 Búsqueda con información 19

  • Búsqueda A∗ para el problema del viaje

    Cádiz Córdoba Huelva Málaga

    1Sevilla

    Granada

    Almería

    C+H = 361.01 C+H = 497.19 C+H = 340.36C+H = 448.09

    C+H = 361.49

    C+H = 361.49

    C+H = 325.08

    JaénC+H = 370.38

    23

    4

    5

    IIA 2010–11 Búsqueda con información 20

  • Propiedades de A∗

    ⊲ Sea h∗ el coste de un camino óptimo desde n hasta un estadofinalu f ∗(n) = g(n) + h∗(n) coste total de una solución óptima que pasa por n.

    ⊲ En la práctica no conocemos h∗ y usamos una función heuŕısticah que estima h∗.

    ⊲ Posibilidades:

    h = 0, no hay reducción del árbol de búsqueda

    h = h∗, estima ción perfecta, no hay búsqueda

    0 ≤ h ≤ h∗, heuŕıstica admisible.

    ⊲ Usando una heuŕıstica admisible la búsqueda es completa y en-cuentra siempre una solución óptima.

    IIA 2010–11 Búsqueda con información 21

  • Implementación

    ⊲ Los valores se guardan como v(F,H,C) donde C es el coste delcamino recorrido, H es el valor de la heuŕıstica y F la suma deesos dos valoresa_estrella(Camino):-

    estado_inicial(E),

    heuristica(E,H),

    aux_a_estrella([v(H,H,0)-[E]],Camino).

    aux_a_estrella(F,C) :-

    write(’Frontera: ’), write(F), nl,

    selecciona(v(_,_,Coste)-[N|Caux],F,_),

    estado_final(N), reverse([N|Caux],C), nl,

    write(’Estado final encontrado: ’), write(N), nl,

    write(’Camino encontrado: ’), write(C), nl,

    write(’Coste: ’), write(Coste).

    IIA 2010–11 Búsqueda con información 22

  • Implementación

    aux_a_estrella(F,C) :- selecciona(N,F,F1),

    sucesores_5(N,NN),

    nueva_frontera(NN,F1,F2),

    aux_a_estrella(F2,C).

    sucesores_5(v(_,_,Coste1)-[N|C],M):-

    findall(v(F,H,Nuevo_coste)-[Nuevo_nodo,N|C],

    ((sucesor(N,Nuevo_nodo,Coste_suc),

    not(member(Nuevo_nodo,[N|C])),

    heuristica(Nuevo_nodo,H),

    Nuevo_coste is Coste_suc + Coste1,

    F is Nuevo_coste + H)), M).

    nueva_frontera(NN,F1,F3):- !, append(NN,F1,F2), sort(F2,F3).

    selecciona(N,[N|F],F).

    IIA 2010–11 Búsqueda con información 23

  • Bibliograf́ıa

    ⊲ Borrajo, D. y otros. Inteligencia artificial: Métodos y técnicas(Centro de estudios Ramon Areces, 1993).

    ⊲ Cortés, U., Béjar, J. y Moreno, A. Inteligencia articial(Ediciones UPC, 1994).

    ⊲ Fernández, S.; González, J. y Mira, J. Problemas resueltos deInteligencia Articial Aplicada (Busqueda y representacion)(Addison Wesley, 1998).

    IIA 2010–11 Búsqueda con información 24


Recommended