Está en la página 1de 25

Universidad Nacional

Federico Villarreal
Escuela Profesional de Ingeniera de Sistemas

TEMA: METODOS DE BUSQUEDA A CIEGAS

Mag. Guissella Romero Horna


1

Mtodos bsicos de Bsqueda


Cmo resolver el problema de control en sistemas de
reglas de produccin?
Tcnicas bsicas para encontrar caminos en
redes de estados.
Por el momento:
- no se intenta encontrar la solucin ptima
- desarrollo de rbol de bsqueda

Un ejemplo:
3
S
4

A
5
D

5
E
2

G
4

Red implcita
Dos tareas posibles:
1. ENCONTRAR un (el) camino.
2. RECORRER el camino.

= costo computacional
= costo de recorrido

2. Encontrar caminos ptimos (prximo captulo).


3

El rbol asociado de
caminos parciales -sin ciclos3
S
4
A

4
4
C

E
2
4
D

A
5

E
5
4

3
D

D 2 E
5

4
C

2
5

Comentarios:

Por el momento no estamos interesados en caminos


ptimos, entonces podemos omitir los costos.
Significa:
S
SA
A
D
Significa:
B

SDA

E
D

B
E
F
G

F
G

Signif.:
SDEBA

Los nodos representan el camino parcial desde la raz a


ellos!!

Terminologa:
S

A
B

E
D

A
E

B
E

F
G

Nodo, rama
Progenitor, hijo, ancestro, descendiente
Nodo raiz, nodo objetivo
Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificacin
6

Mtodos de bsqueda a ciegas


Mtodos que no usan ningn conocimiento especfico
acerca del problema:
Primero en profundidad
Primero en amplitud
Bsqueda No-determinstica
Profundizacin Iterativa
Bsqueda Bi-direccional

Bsqueda primero en
profundidad
Expandir el rbol tan profundamente como
sea posible,
retornando a niveles superiores cuando sea
necesario.

Bsqueda primero en
profundidad

= seguim. Cronolg.hacia atrs


S
A
B
C

E
D

F
G

Seleccionar un hijo

convencin: izq.-aderecha

Repetidamente ir al hijo
siguiente, tanto como sea
posible.
Volver a las alternativas
no visitadas (nivel ms
alto) solo cuando fuere
necesario.
9

Algoritmo bsqueda primero


en profundidad:

1. COLA <-- camino que solo contiene la raiz;


2. WHILE

COLA no vaca
AND objetivo no alcanzado

DO

remover el primer camino de la COLA;


crear nuevos caminos (a todos los hijos);
rechazar los nuevos caminos con ciclos;
agregar al frente de COLA los nuevos
caminos;
3. IF objetivo alcanzado
THEN xito;
ELSE falla;
10

Criterios de evaluacin:
Completitud:

El algoritmo siempre encuentra un camino?


(para toda RED en que al menos un camino exista)

Velocidad (complejidad de tiempo en las peores cond.) :


Cul es el mximo nmero de nodos que puede ser
necesario que sean creados?

Memoria (complejidad de espacio en las peores cond.) :


Cul es la mxima cantidad de nodos que puede ser
necesario almacenar?

Expresado en trminos de:

d = profundidad del rbol


b = factor de ramific. (promedio) del rbol
m = profundidad de la solucin menos profunda

11

Nota: aproximaciones !!
En nuestro anlisis de complejidad, no tenemos en
cuenta la deteccin de ciclos .
Los resultados solo se aplican formalmente a las
variantes de nuestros algoritmos SIN verificacin
de ciclos.
Estudiar el efecto de la deteccin de ciclos en la
complejidad es dificultoso:

la recarga que implica esta verificacin PUEDE o NO


ser compensada por la reduccin de tamao del rbol.

Adems: nuestro anlisis NO toma en cuenta la


longitud (espacio) de representacin de caminos !!

12

Completitud (depth-first)
Completo para REDES FINITAS.

(= REDES con nmero finito de nodos)

IMPORTANTE:

Esto is debido a la integracin de LOOP-checking en


esta versin de Depth-First (y en todos los otros
algoritmos que se presentarn) !
SI no removemos caminos con ciclos, entonces
Depth-First no es completo (puede quedar
atrapado en loops de una red finita)

Nota: NO necesar. encuentra el camino ms corto.


13

Velocidad (depth-first)
En el peor caso:

el (nico) nodo objet. puede estar en la rama del


extremo derecho,

b
G

Complej. de tiempo == bd + bd-1 + + 1 = bd+1 -1


b-1
d
Luego: O(b )

14

Bsqueda primero en amplitud


Expande el rbol capa por capa,
Avanzando en profundidad.

Breadth-first search:
S
D

A
B
C

E
D

E
B
E

F
C

Moverse
hacia abajo,
nivel por
nivel, hasta
que el
objetivo sea
alcanzado.

F
G

16

Algoritmo prim.en amplitud:


1. COLA <-- camino que solo contiene la raiz;
2. WHILE
DO

COLA;

COLA no vaca
AND objetivo no alcanzado

remover el primer camino de la COLA;


crear nuevos caminos (a todos los hijos);
rechazar los caminos nuevos con ciclos;
agregar los nuevos caminos al final de

3. SI objetivo alcanzado
THEN xito;
ELSE falla;

UNICA
DIFERENCIA!
17

Completitud (breadth-first)
COMPLETA

an para REDES implcitamente infinitas!

Permanecera completa an sin nuestro loopchecking.


Nota: SIEMPRE encuentra el camino ms corto.

18

Bsqueda No-determinstica:
1. COLA <-- camino que solo contiene la raiz;
2. WHILE
DO

COLA no vaca
AND objetivo no alcanzado

remover el primer camino de la COLA;


crear nuevos caminos (a todos los hijos);
rechazar los nuevos caminos con ciclos;
agregar los nuevos cam. en lug. al azar en COLA;

3. IF objetivo alcanzado
THEN exito;
ELSE falla;
19

Bsqueda por profundizacin


iterativa
Restringe una bsqueda depth-first a una
profundidad fija.
Si no se encontr ningn camino, incrementar la
profundidad y recomenzar la bsqueda.

20

Depth-limited search:
1. DEPTH <-- <algun nmero natural>
COLA <-- camino que solo contiene la raiz;
2. WHILE
DO

COLA no vaca
AND objetivo no alcanzado

remover el primer camino de la COLA;


IF el camino tiene long.menor que DEPTH
crear nuevos caminos(a todos los hijos);
rechazar los nuevos caminos con ciclos;
agregar los nuevos caminos al frente de COLA;

3. IF objetivo alcanzado
THEN exito;
ELSE falla;

21

Algoritmo de profundizacin
iterativa:
1. DEPTH <-- 1
2. WHILE
DO

objetivo no alcanzado

ejecutar Depth-limited search;


incrementar en 1 DEPTH;

22

Bsqueda bi-direccional
Computa el rbol tanto desde el nodo de comienzo
como desde el nodo objetivo, hasta que estos
rboles se encuentran.

23

Bsqueda bi-direccional
SI podemos describir EXPLCITAMENTE el estado
OBJETIVO, Y
Contamos con reglas para razonamiento HACIA
ADELANTE Y HACIA ATRAS:

Inicio

Objet.

24

Algoritmo bi-direccional:
1. COLA1 <-- camino que solo contiene la raiz;
COLA2 <-- camino que solo contiene el objetivo;
2. WHILE ambas COLAi no estn vacas
AND COLA1 y COLA2 NO compartan un estado
DO

remover sus primeros caminos;


crear sus nuevos caminos (a todos los hijos);
rechazar sus nuevos caminos con ciclos;
agregar sus nuevos caminos al final;

3. IF COLA1 y COLA2 comparten un estado


THEN xito;
ELSE falla;

25

También podría gustarte