You are on page 1of 6

Bsquedas no informadas o ciegas

La inteligencia artificial recurre a las bsquedas para que a partir de un estado inicial de un problema (condicin inicial del entorno), encontrar una secuencia de transformaciones al entorno para llegar al estado final o condicin ideal del entorno. La secuencia de transformaciones es el resultado ms til, cuando el algoritmo de inteligencia artificial tiene xito en encontrar dicha solucin. Las bsquedas no informadas no son mtodos propios de la inteligencia artificial, pero si establecen los conceptos fundamentales previos a la incorporacin de tcnicas propias de IA. Existen dos mtodos de bsqueda no informadas: La bsqueda en Profundidad. La bsqueda en Amplitud.

Estas bsquedas son algortmicas triviales en el rea de algortmica, ya que son dos formas distintas de navegar estructuras de datos no necesariamente lineales. (Arboles y Grafos). (Concepto de examen!!!) Las bsquedas no informadas funcionan bien para rboles o grafos que expresen la evolucin (Los cambios = Aristas) de los cambios que sufre el entorno en cada paso (vrtices).

Algoritmo de Bsqueda de Profundidad ( DEEP SEARCH) : Este algoritmo es simple, en el caso recursivo, pero en donde no puede aplicarse la recurrencia ser necesario utilizar estructuras de datos adicionales, a los datos de entrada.

Pseudocodigo de la busqueda en profundidad (Recurrente) [Funcin Heurstica]. bool BusquedaProfundidad(Grafo G, Vertice vInicial, Vertice vFinal, lista<Vertice>&Trayectoria) { If(FueVisitado(vInicial)) return False; if(vInicial==vFinal) //Ya encontr la solucin. { Trayectoria.push_back(vFinal); return True; } else

MarcarComoVisitado(vInicial); Expansion=Exp(vInicial); //Cuantos boots y a donde los envi a buscar. Foreach v in Expansion if(BusquedaProfundidad(G,v,vFinal,Trayectoria)) Trayectoria.Push_back(vInicial) //Por que dicho vrtice es parte de la solucin y debe guardarse funciona con divide y vencers. Return True; } //si llego aqu no hay solucin a partir de esa trayectoria. return False; }

Completa : Si la solucin existe, la encontrar. -Optima: No. -Suboptima: No. NOTA: Solo es una solucin.

Algoritmo de Bsqueda de Amplitud (Breath Search) No se puede resolver por recursividad, ya que no busca alternativas este primero verifica si sus vecinos son la solucin en una sola pasada, analiza en el siguiente paso cual de sus vecinos es la solucin sino lo es, inicia otra bsqueda con los dems. (Este mtodo utiliza ms memoria) Del mismo Algoritmo Anterior: 7 1 2 6

3 4 5

SOLUCION: 1

Encuentra la ruta/trayectoria solucin ms corta o rpida.

Pseudocodigo de la busqueda en Amplitud. Bool BusquedaAmplitud (Grafo G, Vertice vInicial, Vertice vFinal, lista<Vertice>&Trayectoria){ Lista<vrtices> Abiertos; Lista <vrtices> Cerrados; Abiertos.push_back(vInicial); While (!Abierto.isempty()){ v=Abiertos.pop_back(); If(v==vFinal) { While (v.parent!=vInicial) { Trayectoria.push_back(v); //Insertar en el tope v=v.parent; //v es el padre de v. } Return True; } Cerrados. Push_back(v) //sino lo guardo y cambio de abierto a cerrado para no volver a visitarlo en futuras expansiones. //S encontramos la Solucion. //Si an queda esperanza xDD //Nuevo vrtice de V.

Foreach w in Exp(v) if(w is not in Cerrados) { w.parent=v; Abiertos.push_back(w); } } return False; }

// v es papa de w. //si w no es cerrado debe ir en abiertos

Revisin da Jueves 06 de Octubre del 2011 Tarea: Implementar la bsqueda no informada en profundidad y la bsqueda en Amplitud. Crear Funciones de Adyacencia, Expansin, etc Se recomienda usar todos los set para cuando creamos las relaciones tambin de una vez creamos el mapa de adyacencias de salida en un mapa. un rbol.