Busqueda Profundidad

7
UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGIA Cochabamba Bolivia Estudiantes : Céspedes Cáceres Damaris Choque Choquecallata Lourdes Selen Jancko Camacho Jhannet Materia : Vaca Suarez Jesús Piero Inteligencia Artificial Docente : Carmen R. Garcia Perez Fecha : 02 de abril del 2014

description

busqueda heuristica

Transcript of Busqueda Profundidad

  • UNIVERSIDAD MAYOR DE SAN SIMN

    FACULTAD DE CIENCIAS Y TECNOLOGIA

    Cochabamba Bolivia

    Estudiantes : Cspedes Cceres Damaris

    Choque Choquecallata Lourdes Selen

    Jancko Camacho Jhannet

    Materia

    :

    Vaca Suarez Jess Piero

    Inteligencia Artificial

    Docente : Carmen R. Garcia Perez

    Fecha : 02 de abril del 2014

  • BSQUEDA EN PROFUNDIDAD

    1. INTRODUCCIN

    La bsqueda en profundidad es un algoritmo usado para buscar elementos en un rbol o en un grafo.

    Como toda estructura de datos, los rboles tienen tres operaciones bsicas:

    Insercin de nuevos elementos. Eliminacin de elementos existentes. Bsqueda de un elemento en la estructura.

    Nos interesa la bsqueda de un elemento en la estructura de datos (rbol).

    Una bsqueda es una secuencia de acciones en un orden determinado, Segn la informacin utilizada para avanzar hacia una meta.

    Los tipos de bsquedas se pueden clasificar:

    Bsqueda ciega o no informada.- En esta estrategia se generan estados para luego

    comprobar si estas cumplen con los objetivos para ser meta, sino son meta, se siguen

    generando estados.

    No informada: No tiene informacin acerca de los estados ms all de la que proporciona

    la definicin del problema. Todo lo que este tipo de bsquedas pueden hacer es generar

    un estado objetivo de uno que no lo es.

    Bsqueda heurstica o informada.- La estrategia de control utiliza conocimiento del

    dominio para estimar cual es el siguiente mejor estado.

    Heurstica: Es el criterio mtodo, o principio para decidir cul entre varias acciones

    promete ser la mejor para alcanzar una determinada meta.

    Dentro de la bsqueda no informada tenemos:

    Bsqueda en profundidad:

    Siempre expande el nodo ms profundo, en la frontera actual del rbol de bsqueda. La

    bsqueda procede inmediatamente al nivel ms profundo del rbol de bsqueda, donde los

    nodos no tienen ningn sucesor. Cuando esos nodos se expanden, son quitados de la frontera,

    as entonces la bsqueda al siguiente nodo ms superficial que todava tenga ms

    sucesores inexplorados.

  • Esta estrategia puede implementarse por la BUSQUEDA-ARBOLES (LIFO ltimo en entrar primero

    en salir). La bsqueda en profundidad tiene unos modestos requisitos de memoria, ya que esta

    bsqueda es recursiva y toda implementacin recursiva tiende a ocupar grandes cantidades de

    memoria.

    Necesita almacenar solo un camino desde la raz a un nodo hoja, junto con los nodos hermanos

    restantes no expandidos por cada nodo del camino. Una vez que un nodo se ha expandido, se

    puede quitar de la memoria tan pronto como sus descendientes han sido explorados.

    Entonces esta bsqueda expande el nodo no expandido ms profundo, para su implementacin

    se usa una estructura LIFO es decir los sucesores se ponen delante.

    Se debe saber que:

    -Expandir un nodo: Es obtener los posibles hijos de un nodo a partir de la aplicacin de los distintos operadores sobre l. -Nodo cerrado: Se han aplicado todos los posibles operadores sobre l, obtenindose todos sus posibles hijos. -Nodo Abierto: No han actuado todos los posibles operadores, con los que podran obtenerse nuevos hijos aplicando los operadores restantes. -Nodo: Uno de los elementos del conjunto de estados.

    - Nodo raz: Estado inicial.

    - Hijos de un nodo: Posibles sucesores (nodos correspondientes a estados

    resultantes de la aplicacin de un operador al nodo padre).

    -Arco (operador): En la expansin de un estado n, denota cada uno de los operadores

    aplicados a n.

    -Expansin de un nodo: Dado un estado n, consiste en generar todos los posibles nodos

    sucesores de este, por aplicacin de todas los operadores posibles y en todas sus formas

    de aplicacin.

    -Nodo meta: Es un nodo terminal u hoja que cumple los objetivos del problema.

    -Nodo frontera: Nodo que est en espera de ser expandido.

    -Frontera Actual: conjunto de nodos que estn en proceso de expansin

    -Frontera de expansin: conjunto de nodos frontera.

    -Profundidad del rbol: Longitud (nmero de niveles del rbol) desde el nodo inicial hasta

    el nodo meta, o lo que es lo mismo, nmero de operadores (nmero de arcos) aplicados

    a la solucin desde el estado inicial al estado meta. La profundidad del estado inicial (nodo

    raz) es 0 y la profundidad de cualquier otro nodo ser la de su antecesor menos profundo

    ms uno.

  • 2. ALGORITMO PARA BSQUEDA EN PROFUNDIDAD

    Para programar el comportamiento de la bsqueda en profundidad necesitaremos una

    estructura llamada PILA, estructura de datos LIFO (Last In, First Out), de la que slo disponemos

    dos operaciones: apilar y desapilar. Apilar aade el elemento en la cabeza y desapilar lo extrae y

    elimina, por lo que el primer elemento que entre se quedar en el fondo y ser el ltimo en

    visitarse.

    Funcin Busqueda_Profundidad devuelve una solucin o fallo

    Pila Insertar (raz, Pila)

    REPETIR

    SI esVacia? (Pila) entonces devolver fallo

    Nodo Borrar_Primero (Pila)

    SI esNodoMeta (Nodo)

    Entonces devolver Solucin (Nodo)

    listaSucesores Expandir (Nodo)

    Pila Insertar_Todo (listaSucesores, Pila)

    FIN REPETIR

    FIN FUNCION

    El procedimiento es:

    - Insertamos la raz en la pila.

    - Si existe algo en la pila, desapilamos la cabeza y comprobamos si es el elemento que

    buscamos, si lo es devuelve la solucin. Si no lo es, cogemos todos los hijos del nodo y los

    apilamos.

    - Repetimos hasta que encontremos el elemento buscado o la pila est vaca, en cuyo caso

    nos devolver un fallo.

    - Finalizamos

  • EJEMPLOS:

    PROBLEMA DE LAS 8 FICHAS

    Estado Inicial Estado Meta

  • 3. EVALUACIN DE LA ESTRATEGIA DE BSQUEDA POR PROFUNDIDAD

    Eficacia.- Cumple con su funcin.

    Se puede evaluar:

    Completitud: Est garantizado que el algoritmo encuentre una solucin cuando esta exista? Este tipo de algoritmo de bsqueda no es completo, porque se puede meter por una rama infinita para hacer el recorrido y puede que no termine nunca. Para evitar este error se define el algoritmo de profundidad limitada, en el cual se le dar un lmite de profundidad hasta el cual se podr hacer la bsqueda y podr dar una respuesta ya sea satisfactoria o no. Optimizacin: Encuentra la estrategia una solucin ptima? Es decir que de las soluciones que es capaz de encontrar siempre encuentra la de menor coste. Esta bsqueda no es ptima, porque puede encontrar la solucin pero haciendo un recorrido ms de lo necesario y devuelve la primera solucin que encuentra, que no tiene por qu ser la ptima.

    Eficiencia.- Cumple con su funcin y optimiza la cantidad de recursos que utiliza para realizar la bsqueda. Las dos complejidades (temporal y espacial) se miden usando:

    b - factor de ramificacin del rbol de bsqueda. d - profundidad de la solucin de mnimo costo. m - mxima profundidad del espacio de bsqueda.

  • Complejidad en tiempo: Cunto tarda en encontrar una solucin? Esta bsqueda depende del factor de ramificaciones como de la solucin. Entonces la complejidad temporal es de O(), por lo tanto es expresado en un coste exponencial, terrible si m es mucho mayor que d. Complejidad en espacio: Cunta memoria se necesita para realizar la bsqueda? El peor caso ser cuando tengamos en cada nivel que se expande, un estado sin eliminar ninguno de sus hijos. Asi O(bm) orden lineal, si para cada nodo expandimos todos sus descendientes. Una de las ventajas de este algoritmo es que en comparacin a la complejidad en espacio de la bsqueda por anchura es de menor costo debido a que se va eliminando las ramas de los nodos expandidos en la que no se encontr el nodo objetivo.

    M = nodo meta b = 2 m = 3

    4. CONCLUSIN No es la mejor solucin, ya que el recorrido en profundidad es una bsqueda ciega-no informada

    recorrer el rbol exhaustivamente para hallar el nodo meta si la haya no se asegura que sea con

    el recorrido ms ptimo, todo depender de la posicin donde se encuentra la solucin. Entonces

    no hay una bsqueda no informada mejor o peor, la mejor opcin ser realizar bsquedas

    heursticas-informadas.