35
Solución de problemas por búsqueda inteligente Ana Lilia Laureano Cruces UAM - A

Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Solución de problemas

por búsqueda

inteligente

Ana Lilia Laureano Cruces

UAM-A

Page 2: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La solución de problemas

requiere dos consideraciones…

Representación del problema en un espacio organizado.

La capacidad de probar la existencia del estado objetivo en dicho espacio.

Las anteriores premisas se traducen en: la determinación del estado objetivo y la determinación del camino óptimo guiado por este objetivo a través de una o más transiciones dado un estado inicial.

Page 3: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

El sentido común…

Qué

La llave

Dónde

El espacio de búsqueda

La búsqueda

Page 4: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

El espacio de búsqueda

Se le conoce como una colección de estados.

En general los espacios de búsqueda en los

problemas de IA no son completamente

conocidos de forma apriori.

De lo anterior ‘resolver un problema de IA’

cuenta con dos fases: 1) la generación del

espacio de estados y la búsqueda del estado

deseado en ese espacio.

Page 5: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Debido a que ‘todo el espacio de

búsqueda’ de un problema es muy

grande, puede causar un bloqueo de

memoria, dejando muy poco espacio para

el proceso de búsqueda.

Para solucionar esto, se expande el

espacio paso a paso, hasta encontrar el

estado objetivo.

Page 6: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Propiedades de los métodos

de Búsqueda Complejidad:sirve para discutir que tan eficiente es un

método en el tiempo y el espacio. En el primer caso

depende del tiempo que tarda en encontrar un estado

meta.

El segundo caso esta realcionado con la cantidad de

memoria que el método necesita utilizar.

Es usual utilizar la notación O (bd), donde b es el factor

de ramas, y d es la profundidad del nodo objetivo.

Page 7: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La búsqueda en profundidad es muy

eficiente en espacio, ya que solamente

necesita almacenar la información del

caminio en curso examinado. Pero no es

eficiente en tiempo; ya puede examinar

ramas muy profundas.

La complejidad debe ser comparada con

la solución generada por el método.

Page 8: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Completes

Un método es completo cuando grantiza

encontrar la meta objetivo si al menos

existe una.

La búsqueda a lo ancho es completa no

así la búsqueda en profundidad (puede

encontrarse una rama infinita o muy larga)

La completes es una propiedad deseable

ya que en nada ayuda un método que

nunca encuentra solución.

Page 9: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Optimalidad

Un método de búsqueda es óptimo si

garantiza encontrar la mejor solución que

existe. En otras palabras encontrará el

camino al objetivo que involucre el menor

número de pasos. Lo anterior no significa

que sea eficiente ya que puede tomar

mucho tiempo para encontrar la solución

óptima. Pero una vez que la encuentra

grantiza que es la mejor.

Page 10: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Dependiendo de…

la metodología de expansión del espacio

de estados.

la forma de visita de ese espacio.

Espacios en forma de árboles:

• A lo ancho (visita los nodos a lo ancho)

• En profundidad (visita los nodos en profundidad)

Dichas búsquedas se conocen como

búsquedas determinísticas.

Page 11: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Existen otras…

Que nodo será visitado sin calcular los detalles en el algoritmo.

Es más se pueden tener varias opciones de transición con las mismas condiciones, en un instante dado.

A tales búsquedas se les conoce como no determinisiticas.

La mayoría de las búsquedas en IA son no detrminísticas.

Page 12: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Método de genera-prueba

Es el más simple:

BEGIN

REPEAT

• Genera un nuevo estado y lo llama estado en

curso;

UNTIL estado en curso = estado objetivo;

END

Page 13: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La parte más interesante en este algoritmo es la

que se refiere a la generación de nuevos

estados.

Esta parte no queda incluida en este algoritmo

pero con el fin de formalizarla necesitamos

definir la siguiente tupla:

Nodos

Arcos

Objetivo

curso

Page 14: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Nodos: representa el conjunto de estados en el

espacio de búsqueda.

Arcos: representa un operador que aplicado a

un estado permite la transición a otro.

Objetivo: denota el estado deseado a ser

identificado en los nodos y …

En curso: representa el estado generado y

comparado con el estado objetivo.

Page 15: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Grafo vs. árbol

La diferencia básica entre estas dos estructuras

de datos consiste en el número de padres de un

determinado nodo:

En el caso de un grafo, éste puede ser cualquier

entero positivo.

Para un árbol el máximo valor de éste es uno.

A continuación se presentan dos algoritmos

típicos para generar el espacio de búsqueda.

Page 16: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Búsqueda a lo ancho

1

23

4

8765

9 10 11 12

Profundidad

0

1

2

3

Page 17: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Procedure BusquALoAncho

BEGIN Elem = Obten (nodo) {del arbol}

InserCola (elem, COLA)

REPEAT• elem = ExtraeElem (COLA)

• IF elem = objetivo

Exito = Verdad (para)

• ELSE

BEGIN

• Elem = Obten (nodo) {hijos del nodo en curso del arbol}

• InsertaElem (elem, COLA)

END

UNTIL (ColaVacia OR Exito)

END;

Page 18: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Principio del algoritmo…

Si el nodo en curso no es el estado

objetivo, inserte en la COLA, las hojas del

nodo en curso en cualquier orden y

redefina el elemento del frente de la

COLA. El algoritmo termina cuando se

encuentra el estado objetivo.

Page 19: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Elementos en la COLA …

n1

n2 n3 n4

n4n3

n6n5n4

n8n7n6n5

Page 20: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La búsqueda a lo ancho no es buen método en

situaciones donde el árbol puede tener caminos

muy profundos y particularmente si el el nodo

objetivo se encuentra en la parte menos

profunda del árbol desafortunadamente no

cuenta con un buen desarrollo cuando el factor

de ramificación es extremadamente alto como

en el caso de los árboles de juego (ajedrez, go)

Page 21: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Complejidad del algoritmo

Supongamos que contamos con un árbol

balanceado, esto es de cada nodo = b (cuenta

con el mismo factor de ramificación) y se recorre

la misma profundidad d.

Si el estado objetivo no esta en d-1. Entonces

las búsquedas falsas quedan representadas

por:

1 + b + b2 + b3 + … + b d-1 = (bd - 1) / (b - 1),

b>>1

Page 22: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Así que con el fin …

El estado objetivo puede encontrarse en el primer nodo, o

En el último nodo, visitado del árbol

Así el promedio de nodos visitados es: (1+bd ) / 2

En consecuencia el total de nodos visitados en un caso promedio se convierte en: (bd - 1) / (b-1) + (1 + bd) / 2

bd (b + 1) / 2 (b - 1).

Debido a que la complejidad del algoritmo (tiempo) es proporcional al número de nodos visitados, la expresión anterior nos da una medida de esta complejidad.

Page 23: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La complejidad del espacio…

El número máximo de nodos es colocado en la COLA.

Cuando el nodo más izquierdo de la rama con profundidad d en el árbol es colocado en la COLA. La longitud de la COLA se convierte en bd.

Así la longitud en este caso se convierte en bd.

Y la complejidad del algoritmo (tiempo) depende de la longitud de la COLA, en el peor de los casos; siendo del orden bd.

Con el fin de reducir el performance del espacio de búsqueda se presenta el siguiente algoritmo.

Page 24: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Búsqueda en profundidad

1

23

8

10954

6 7 11 12

Profundidad

0

1

2

3

Page 25: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Procedure

BusqEnProfundidad BEGIN

Elem = Obten (nodo) {del arbol}

PushElem (elem, PILA)

WHILE ~ (PilaVacia) OR (éxito) DO• elem = PopPila (PILA)

• IF elem = objetivo

Exito = Verdad (para)

• ELSE

BEGIN

• Elem = Obten (nodo) {hijos del nodo en curso del arbol}

• PushElem (elem, PILA)

END

END_WHILE

END;

Page 26: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Principio del algoritmo

El nodo raíz es colocado en en la PILA,

para examinarlo se saca, si es el estado

objetivo el algoritmo para, en caso

contrario sus hijos son metidos en la PILA.

El proceso continúa hasta que la PILA

esta vacía o se tiene éxito.

Page 27: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Elementos en la PILA…

n1 n8

n3

n2

n8

n3

n8

n5

n4

n8

n5

n8

n7

n6

Page 28: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La complejidad del espacio…

Se utiliza el máximo de memoria cuando se vista la máxima longitud la primera vez.

Asumiendo que cada nodo cuenta con un factor de profundidad: cuando el nodo en la profundidad d es examinado, el número de nodos guardado en memoria son todos los nodos de esa profundidad que no han sido visitados (d), mas el nodo que esta examinándose.

Debido a que en cada nivel existen b-1 nodos sin vistar, el número total de memoria requerida es d (b-1) + 1.

Page 29: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Así en este caso la complejidad del

algoritmo (espacio) es una función lineal

de b, mientras que en el caso del

algoritmos de búsqueda a lo ancho es una

función exponencial de b. De aquí que

este sea un aspecto interesante en el

caso del algoritmo de busqueda en

profundidad.

Page 30: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Tiempo de complejidad

Si se encuentra el estado objetivo en la posición d más izq. El número de nodos examinados es d+ 1.

Y si encontramos el estado objetivo en el nodo mas a la der. El número de nodos examinados incluye todos los nodos del árbol.

En consecuencia el total de números visitados en un caso promedio se convierte en: (d + 1) / 2 + (bd+1 - 1 / 2 (b - 1).

b(bd + d) / 2 (b - 1).

Page 31: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Debido a que el tiempo requerido de corrida depende de la profundida del árbol.

Un camino alterno es reslover el problema controlando la prfundidad del árbol.

El control de esta profundidad dada por el usario da origen a la búsqueda iterativa dependiente.

Page 32: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Si la profundidad de corte es 1, se genera solo el nodo raíz y lo examina.

En caso de que el nodo raíz no sea el objetivo, se incrmenta el limte del nivel de profundidad a 2 utilizando el algoritmo de busqueda en profundidad.

De esta forma se desarrolla una búsqueda en la que se incrementa la profundidad dejando en cada iteración fuera a los hijos de nodo en curso.

Page 33: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

La búsqueda iterativa

dependiente... Esta búsqueda no toma tanto tiempo

como en el caso de el algoritmo general

de búsqueda en profundidad. Es una

búsqueda exhaustiva que combina la

técnica de búsqueda a lo ancho y en

profundidad. La profundidad de búsqueda

se va incrementando de uno en uno hasta

encontrar el nodo objetivo.

Page 34: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

Algoritmo de búsqueda

iterativa dependiente BEGIN

ProfCor = 1; Permitido = N; { lo da usuario} exito = False

REPEAT

Elem = Obten (nodo); {del arbol}

PushElem (elem, PILA)

WHILE (~ (PilaVacia) AND (ProfCor < Permitido)) DO

• BEGIN

elem = PopPila (PILA)

IF elem = objetivo

• exito = Verdad (para)

ELSE

BEGIN

• Elem = Obten (nodo) {hijos del nodo en curso del arbol}

• PushElem (elem, PILA)

END

END_IF

ProfCor = ProfCor + 1;

• END

UNTIL éxito OR ProfCor > Permitido

END

Page 35: Solución de problemas por búsqueda inteligentekali.azc.uam.mx/clc/03_docencia/posgrado/i_artificial/6_ProbBusquInte.pdfEl espacio de búsqueda Se le conoce como una colección de

fin