You are on page 1of 41

INGENIERA DEL CONOCIMIENTO

Msc. Jorge Espinosa


jeespinosa@elpoli.edu.co
Horas y correo de contacto Mircoles de 9 a 11 a.m. y Jueves de 8 a 9 a.m. P19 211 C Ext 492

Medelln 2013

Power 7

Brain Chip

Sistema informtico de inteligencia artificial que es capaz de responder a preguntas formuladas en lenguaje natural. (Ganador de Jeopardy-2011)

Algunos Datos: Dos unidades con 5 bastidores de nodos controladores, con noventa servidores IBM POWER 750 Cada servidor utilizando un procesador de 3.5 GHz con 8 ncleos, donde cada ncleo soporta por hardware 4 hilos de ejecucin El sistema cuenta con un total de 2,880 ncleos de procesamiento POWER7, y un total de 16 Terabytes de RAM POWER7 es capaz de procesar de manera masivamente paralela lo convierte en un complemento ideal para el software DeepQA integrado en Watson por IBM

Mtodos bsicos de Bsqueda


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

Un ejemplo:
3 S 4 A 4 B 5 2 E 4 F 3 4 C G

5
D

Red implcita

Dos tareas posibles: 1. ENCONTRAR un (el) camino. = costo computacional

2. RECORRER el camino. = costo de recorrido


Encontrar caminos ptimos (prximo captulo).

El rbol asociado de caminos parciales


3 S 4 A 5 D 3 2 E
S

B 5 4

C G F 4 3
D

4
4
C B

5
D A

5
2 4

2
E

4
F

2
D

4
F

5
B

4
F

4
C

5
E

4
A

3
G

3
G

4
C

3
G

4
F

3
6

Comentarios:
Por el momento no estamos interesados en caminos ptimos, entonces podemos omitir los costos.
Significa: SA
B C D E F G B C S

A
D E

Significa: SDA
B F G C

D
A B E F G A C E F G

Signif.: SDEBA

Los nodos representan el camino parcial desde la raz a ellos!!


7

Terminologa:
S A B C D E F G B C D E F G C B E F G A A B C D E F G

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

Lets Play Again


http://www.mazeworks.com/mazegen/

Bsqueda primero en profundidad (DFS Deep First Search)


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 D E 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.

Algoritmo bsqueda primero en profundidad:


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

2. WHILE

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 al frente de COLA los nuevos caminos; 3. IF objetivo alcanzado THEN xito; ELSE falla;

DO

3 S 4

A 5 D

B 5

G
4 F 3

2 E

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;

Traza de depth-first para el ejemplo (Cola-FIFO)


(S) (SA, SD) S removido, (SA,SD) computados y agregados SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SAB,SAD,SD) SAB removido, (SABA,SABC,SABE) computado, (SABC,SABE) agregados (SABC,SABE,SAD,SD) SABC removido, (SABCB) computados, nada agragado (SABE,SAD,SD) SABE removido, (SABEB,SABED,SABEF) computados, (SABED,SABEF)agregados (SABED,SABEF,SAD,SD) SABED removido, (SABEDS,SABEDA.SABEDE) computados, nada agregado (SABEF,SAD,SD) SABEF removido, (SABEFE,SABEFG) computados, (SABEFG) agregado (SABEFG,SAD,SD) objetivo alcanzado: reportar xito

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

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 !!

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 necesariamente. encuentra el camino ms corto.

3 S 4

A 5 D 3 5
D

C G F 3

5
2 E
S

4 5
A
D

4 4
C

2
E

5 2
D E

2 4
F

4 4
F

5 5
E

4
F

5
B

4
C

4
A

3
G

3
G

4
C

3
G

4
F G

En el peor caso:

Velocidad (depth-first)

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 Luego: O(bd)

Memoria (depth-first)
El nmero mximo de nodos en COLA se alcanza en el nodo del extremo izquierdo inferior. Ejemplo: d = 3, b = 3 :

...

COLA contiene nodos . Es decir: 7. En General: ((b-1) * d) + 1 Orden: O(d*b)

Maze Example

Real Mouse Example


O (3)

N (4)

E (1)

S (2)

Other Example

Bsqueda primero en amplitud BFS Breath First Search


Expande el rbol capa por capa, avanzando en profundidad.

Breadth-first search:
S

A
B D E D F G B C E F G C A

D E

B
E F G A

B
C

F
G

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

24

Algoritmo prim. en amplitud:


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 caminos nuevos con ciclos; agregar los nuevos caminos al final de COLA;
UNICA DIFERENCIA!

3. SI objetivo alcanzado THEN xito; ELSE falla;

Traza de breadth-first en el ejemplo(Pila-LIFO):


(S) (SA, SD) S removido, (SA,SD) computados y agregados SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SD,SAB,SAD) SD removido, (SDA,SDE,SDS) computados, (SDA,SDE) agregados (SAB,SAD,SDA,SDE) SAB removido, (SABA,SABE,SABC) computados, (SABE,SABC) agregados (SAD,SDA,SDE,SABE,SABC)SAD removido, (SADS,SADA, SADE) computados, (SADE) agregados etc, hasta que COLA contiene:

(SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG) el objetivo es alcanzado: reportar xito

Completitud (breadth-first)
COMPLETA
an para REDES implcitamente infinitas!

Permanecera completa an sin nuestro loopchecking. Nota: SIEMPRE encuentra el camino ms corto.

Velocidad (breadth-first)
Si un nodo objetivo es encontrado a profundidad m del rbol, todos los nodos hasta esa profundidad son creados.

Luego: O(bm) nota: depth-first podra haber visitado nodos ms profundos.

Memoria (breadth-first)
El mayor nmero de nodos en COLA se alcanza en el nivel m del nodo objetivo.

m b
G

COLA contiene nodos y G . (Es decir: 4) . En General: bm Esto es generalm. MUCHO peor que depth-first !!

Requerimientos de Memoria BFS

Evaluacin prctica:
Depth-first:
SI el espacio de bsqueda contiene ramas muy profundas sin solucin, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas.

Breadth-first:
Demanda MUCHA memoria !

Soluciones ?
Bsqueda No-determinstica Profundizacin iterativa

Bsqueda NO Determinstica
Combina BFS y DFS

Bsqueda No-determinstica:
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 los nuevos cam. en lug. al azar en COLA;

3. IF objetivo alcanzado THEN exito; ELSE falla;

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.

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

2. WHILE

COLA no vaca AND objetivo no alcanzado

DO

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;

35

Algoritmo de profundizacin iterativa:


1. DEPTH <-- 1 2. WHILE DO objetivo no alcanzado

ejecutar Depth-limited search; incrementar en 1 DEPTH;

Profundizacin iterativa: la mejor bsqueda a ciegas.


Completa: si - incluso encuentra el camino ms corto
(como primero en amplitud) .

Memoria: b*m Velocidad:

(combina ventajas de depth- y breadth-first)

Si se halla el camino a Depth = m, cunto tiempo se desperdici en la construcc.de los rboles ms pequeos?

bm-1 + bm-2 + + 1 = bm -1 = O(bm-1) b-1 El trabajo realizado en DEPTH = m is O(bm) En general: MUY buen trade-off

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

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

Bsqueda bi-direccional

Inicio

Objet.

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;

Propiedades (Bi-direccional):
Completa: Si

Velocidad: Si la verificacin de estado comn se puede realizar en tiempo constante (hashing): 2 * O(bm/2) = O(bm/2)

Memoria: similar: O(bm/2)

You might also like