La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Inteligencia Artificial Gonzalo Villarreal Farah

Presentaciones similares


Presentación del tema: "Inteligencia Artificial Gonzalo Villarreal Farah"— Transcripción de la presentación:

1 Inteligencia Artificial Gonzalo Villarreal Farah
Búsqueda Inteligencia Artificial Gonzalo Villarreal Farah

2 Contenidos Método de resolución de problemas Búsqueda DEPTH FIRST
Método Top Down Método Bottom Up Búsqueda DEPTH FIRST Búsqueda BREADTH FIRST Búsqueda Heurística

3 Método de resolución de problemas
Sistemas de resolución de problemas en IA, están basados en búsqueda. Se comienza en un estado inicial y la meta es llegar a un estado final u objetivo El proceso de evaluación de las alternativas para llegar desde el estado inicial al objetivo se designa como búsqueda El conjunto de pasos posibles para llegar desde un estado inicial al objetivo, es llamado el espacio de búsqueda.

4 Método de resolución de problemas...
Las principales diferencias que pueden aparecer en las diferentes técnicas de búsqueda, son: La dirección en la cual se conduce la búsqueda (hacia adelante o hacia atrás). La estrategia de control, o forma de seleccionar las reglas que pueden ser aplicables. Los principales requerimientos de una buena estrategia de control son: que cause desplazamiento en el espacio de estado; y, que sea sistemático. La forma de representar cada nodo del proceso de búsqueda (representación del conocimiento).

5 Método de resolución de problemas...
Muchas veces, tratar el proceso como búsqueda en un grafo en lugar de una búsqueda en un árbol, puede reducir el esfuerzo que se gasta en explorar senderos, esencialmente iguales, varias veces. Sin embargo, los requisitos asociados, son: Cada vez que se genere un nodo se debe chequear para ver si ha sido generado antes. Se deben introducir procedimientos especiales para que la búsqueda no quede atrapada en algún lazo.

6 Método Top Down Se comienza tomando la cláusula objetivo o conclusión y se razona de tal forma de ir a través de las aserciones e implicaciones, derivando nuevos objetivos a partir de los objetivos anteriores hasta que todos los objetivos derivados, son resueltos por las aserciones originales. El encadenamiento hacia atrás "Top Down", tiene la particularidad de ir generando con las cláusulas que va tomando, una estructura de árbol. Una refutación es un camino en el espacio de búsqueda, en este caso una rama del árbol, que comienza con el objetivo y termina con la cláusula vacía.

7 Método Bottom Up El encadenamiento hacia adelante "Bottom Up", se comienza con las cláusulas que son aserciones o hipótesis. Para ello se usan las aserciones e implicaciones que permitan derivar nuevas aserciones, se termina cuando eventualmente la cláusula original o hipótesis es resultado de las aserciones derivadas. Una refutación en este método comienza con las aserciones de las cláusulas originales, se utilizan las aserciones para obtener nuevas aserciones a partir de las ya generadas, se termina cuando se deriva una que explícitamente contradiga el objetivo. Este método de resolución genera una estructura más compleja que la generada por "Top Down", por lo cual la búsqueda es más difícil.

8 Búsqueda DEPTH FIRST En la búsqueda "primero en profundidad" o "Depth First" se selecciona un nodo del primer nivel, descendiendo por alguna de las ramas que nacen de este nivel y que nos llevan al siguiente nivel, así sucesivamente hasta llegar a un nodo terminal. Si se llega a un estado terminal sin satisfacer nuestro objetivo, se vuelve al estado inicial y se elige otro camino hasta llegar a un nuevo nodo terminal. Este tipo de búsqueda es más eficiente que la búsqueda en anchura, si el espacio de búsqueda tiene muchos niveles.

9 Búsqueda DEPTH FIRST... Este árbol es recorrido de la siguiente forma:
A,B,D,G,C,F,E

10

11 Database Vuelo(symbol,symbol,integer) Clauses vuelo(santiago,la_serena,474). vuelo(santiago,antofagasta,1361). vuelo(santiago,arica,2062). vuelo(santiago,calama,1574). vuelo(santiago,copiapó,801). vuelo(la_serena,copiapó,333). vuelo(la_serena,chañaral,497). vuelo(chañaral,copiapó,167). vuelo(copiapó,el_salvador,282). vuelo(antofagasta,tocopilla,188). vuelo(arica,iquique,316). vuelo(arica,calama,614). vuelo(arica,copiapó1261).

12 %Ejemplo de Búsqueda en Profundidad
Clauses encuentra_ruta:- write(" Desde : "),readln(A), write(" con Destino a: "), readln(B),hay_vuelo(A,B,D), write("La distancia es: ",D),nl,not(muestra_ruta). % Ver si hay conexión entre dos ciudades  con ruta directa hay_vuelo(C1,C2,D):-vuelo(C1,C2,D),agrega_a_ruta(C1). % Búsqueda en Profundidad     hay_vuelo(C1,C2,D):- vuelo(C1,X,D2), agrega_a_ruta(C1), hay_vuelo(X,C2,D3), D=D2+D3. % Indica si llegó a punto sin destino     hay_vuelo(C1,_,D):-write(" Punto muerto en ",C1),nl,D=0,fail.     agrega_a_ruta(C):-not(visitada(C)),assert(visitada(C)),!.     agrega_a_ruta(_).     muestra_ruta:- write(" La ruta es "),nl, visitada(A),write(A),nl,fail,!.

13 Búsqueda BREADTH FIRST
En la búsqueda "primero en anchura" o "Breadth First" se evalúa cada nodo en un determinado nivel antes de pasar al siguiente. Si en alguno de los niveles se satisface el objetivo final la búsqueda se da por finalizada. Este tipo de búsqueda no resulta ser práctica cuando para alcanzar el estado final se deben recorrer muchos niveles.

14 Búsqueda BREADTH FIRST
Este árbol es recorrido de la siguiente forma: A,B,C,D,G,F,E

15 % Ejemplo de Búsqueda en Anchura
% Ruta directa hay_vuelo(C1,C2,D):-vuelo(C1,C2,D), agrega_a_ruta(C1). % hacer primero en anchura hay_vuelo(C,C2,D):-vuelo(C,X,D2), vuelo(X,C2,D3), agrega_a_ruta(C),                         agrega_a_ruta(X), D=D2+D3. hay_vuelo(C,C2,D):- vuelo(C,X,D2), X<>C2, agrega_a_ruta(C), hay_vuelo(X,C2,D3), D=D2+D3. hay_vuelo(C1,_,D):- write("Punto muerto en ",C1), nl,D=0,fail.

16 Búsqueda Heurística Las técnicas de búsqueda descritas anteriormente no reflejan ningún tipo de conducta inteligente, son búsquedas ciegas. Para espacios de búsquedas más grandes y complejos, se requiere utilizar técnicas de búsquedas inteligentes, que sean capaces de reducir en forma eficiente el espacio de búsqueda. Estas técnicas están basadas en la utilización de la heurística, es decir, utilizan la experiencia humana que ante determinadas situaciones es capaz de intuir caminos de solución, alternativas prometedoras, rechazar vías de exploración, reduciendo así el espacio de búsqueda.

17 Búsqueda Heurística... "Una heurística es un tipo de estrategia que limita en forma drástica la búsqueda de soluciones. La heurística no garantiza soluciones óptimas; de hecho, no garantiza el que haya una solución; todo lo que se puede decir para que una heurística sea útil es que ofrece soluciones que son suficientemente buenas la mayoría de las veces." (Feigenbaum y Feldman, citado en Mishkoff, 1988)

18 hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T).
% Ejemplo de Búsqueda Heurística Remonte de Colina hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T). % hacer primero en anchura hay_vuelo(T,T2,D):-encontrar_mas_grande(T,X), agrega_a_ruta(T),vuelo(T,X,D2), hay_vuelo(X,T2,D3), D=D2+D3. hay_vuelo(T,T2,D):- vuelo(T,X,D2), X<>T2, agrega_a_ruta(T),hay_vuelo(X,T2,D3), D=D2+D3. hay_vuelo(C1,_,D):- write(" Punto muerto en ",C1), nl,D=0,fail. encontrar_mas_grande(A,B):- vuelo(A,X,D), vuelo(A,Y,D2),X<>Y, D2>D, B=Y.

19 % Ejemplo de Búsqueda Heurística Menor Coste
hay_vuelo(T,T2,D):-vuelo(T,T2,D),agrega_a_ruta(T). % hacer primero en anchura hay_vuelo(T,T2,D):- encontrar_mas_corta(T,X), agrega_a_ruta(T),vuelo(T,X,D2), hay_vuelo(X,T2,D3), D=D2+D3. hay_vuelo(T,T2,D):- vuelo(T,X,D2), X<>T2, agrega_a_ruta(T),hay_vuelo(X,T2,D3), D=D2+D3. hay_vuelo(C1,_,D):- write(" Punto muerto en",C1),  nl,D=0,fail. encontrar_mas_corta(A,B):-vuelo(A,X,D), vuelo(A,Y,D2), X<>Y, D>D2, B=Y.


Descargar ppt "Inteligencia Artificial Gonzalo Villarreal Farah"

Presentaciones similares


Anuncios Google