Busqueda por profundizacion iterativa y amplitud iterativa Inteligencia Artificial

taller
1) Para el grafo usted deberá llegar de A a H aplicando los algoritmos:
A) Interactive Debending (I D) Búsqueda profundización iterativa.
B) Amplitud iterativa.

2) Explicar:
A) El pseudocodigo de los algoritmos anteriores.
B) Su complejidad exponencial y temporal (mejor caso, peor caso, caso medio).
C) Completo? Justifique su respuesta.
D) Óptimo? Justifique su respuesta.

solución
profundización iterativa:
es un algoritmo que crea un limite de profundidad que nos permite recorrer el árbol y encontrar la solución, este algoritmo comienza desde la raíz que es el nivel 1 hasta N niveles de profundidad donde este la respuesta.
    
Árbol correspondiente al grafo 


basandonos en el árbol podemos notar que de A a K  hay 7 niveles de profundidad.
Es necesario recordar que el algoritmo se desarrolla nivel por nivel ejecutandose varias veces desde la raíz hasta el nodo que es la solución.

ahora realizamos la prueba de escritorio:
Profundidad               L             N      Sucesores
1                               A             A           CB
2                               CB          C            E
3                               EB           E            G
4                               GB          G            HF
5                               HFB         H     SOLUCION

el recorrido fue: A,C,E,G,H.





Pseudocodigo Interactive Debending (ID) Búsqueda profundización iterativa.

 1) Se define la profundidad.
 2) Se desarrolla el árbol realizando una búsqueda en profundidad hasta el limite definido en el punto anterior.
 3) Si se encuentra la solución termina.
 4) Sino se establece un nuevo limite y volvemos al segundo paso.

Su complejidad exponencial y temporal
d= profundidad b= nodos hijos
Tiempo: exponencial O(b^d)
(d)*b+(d-1)*b^2+....+(2)*b^d-1+(1)*b^d
Espacio: lineal O(b*d), O(d), O(1).

Completo? 
Si, porque se va ampliando por niveles y esto lo que hace es que se lleve una búsqueda limitada que permite tener varias búsquedas al tiempo y así lograr encontrar el resultado deseado.

Óptimo? 
Si porque a medida que se va haciendo la búsqueda por niveles va a encontrar la solución mas cercana a la raíz.

Amplitud iterativa.

Es un algoritmo que combina la búsqueda por anchura y las iteraciones por cada nivel aumentando el ancho del árbol en cada ciclo para así llegar a la solución. Es necesario especificar que este algoritmo puede caer en una rama infinita y no encontrar soluciones.

como podemos ver en el árbol que corresponde al grafo comenzamos a desarrollar el algoritmo de amplitud iterativa para encontrar la solución.

Extendiendo solo un hijo
Nivel                                         SUCESORES
1            A                      A                       B
2            B                      B                       C
3            C                      C                  NO TIENE SUCESORES

Extendiendo dos hijos por nodo
               L                      N                   SUCESORES   
              A                      A                      CB
              CB                    C                      E
              EB                     E                     G
              GB                    G                      HF
              HFB                  H                 NO TIENE SUCESORES Y ES SOLUCIÓN
              FB                     F                      H
              HB                    H                  NO TIENE SUCESORES Y ES SOLUCIÓN
              B                       B                      D
              D                       D                      E
              E                        E                      G
              G                       G                      HF
              HF                     H                 NO TIENE SUCESORES Y ES SOLUCIÓN
              F                        F                       H

              H                       H                 NO TIENE SUCESORES Y ES SOLUCIÓN     

 recorrido es: A,C,E,G,H. 
pseudocodigo Amplitud iterativa.



                           
         







Su complejidad exponencial y temporal
b=nodos hijos
d=profundidad
Tiempo: O(b^d)
Espacio: O(bd)

Completo? 
Si, porque se va ampliando por niveles y el ancho del árbol, si existe una solución la encontrara. cabe aclarar que puede caer en ciclos infinitos y no encontrar la solución.

Óptimo? 
Si el coste de paso es 1.

Comentarios

Entradas más populares de este blog

Proyecto Perceptron Simple (Código C++)

IDA* Algoritmo Inteligencia Artificial

Proyecto Minimax-Scout (Código C++)