You are on page 1of 18

INTELIGENCIA ARTIFICIAL

Artificial Intelligence

Ing. Iván García S., PhD


idgarcia@utn.edu.ec

Octubre 2018 - Febrero 2019


1
Contenido general
• Unidad 1. Introducción a la IA
• Unidad 2. Estrategias de búsquedas
• Unidad 3. Visión por computador
• Unidad 4. Aprendizaje automático
• Unidad 4.1. Minería de datos
• Unidad 5. Proyecto final

2
UNIDAD 2
Estrategias de búsquedas

22
Estrategias de búsqueda:
a. Búsqueda no informada (exhaustiva): independiente del problema.
• Búsqueda en anchura (amplitud): se construye nivel a nivel (horizontal)
• Búsqueda en profundidad: explota las rutas con mayor profundidad (vertical).

b. Búsqueda informada (heurística): usa información específica del


problema (heurístico → valor cuantitativo: distancia de Manhattan;
distancia de Hamming). Explota las rutas más prometedoras (menor
coste) con mayor profundidad (vertical).
• Búsqueda 𝐴∗: se selecciona el nodo que se estima más cerca de una solución
óptima.

23
Búsqueda no informada

Nomenclatura:

Llamaremos nodo a cada uno de los estados.


El nodo superior es el nodo raíz.
Los nodos hijos de un mismo padre se denominan
hermanos.
A un nodo que no tiene hijos lo llamamos hoja.
Un nodo que tenga padre, y al menos, un hijo lo
llamaremos rama.
En el gráfico, al aplicar una operación a un nodo
tenemos 2 hijos. Decimos que el árbol tiene un factor
de ramificación de 2.

24
Ejemplo: Puzle (rompecabezas) de 8 piezas
(3×3)
Estado Inicial Estado Final (Objetivo)

Antes de abordar la solución,


definir el problema:
• ¿Cuál es el espacio de
estados (posibles
soluciones) del problema?
• ¿Cuál es el estado inicial y
final (objetivo)? Un estado puede ser cualquier ordenación posible
de las 9 piezas.
• ¿Qué operaciones nos
Espacio de estados = 9! = 362.880 posibles estados
permite pasar de un Una operación básica es mover (intercambiar) la
estado a otro? pieza vacía. Tendríamos 4 operaciones posibles:
izquierda, derecha, arriba, abajo.
25
Búsqueda en
Anchura (breadth)
• Recorre el árbol por niveles
• En este caso, es necesario analizar 15
nodos en el árbol.
• La búsqueda es de todas las
posibilidades.
• Los nodos han sido numerados por
orden de procesamiento, pudiendo
apreciar que este tipo de ramificación
por nodo es finito y ha sido capaz de
encontrar la solución (camino más
corto en cantidad de arcos).
• Este tipo de búsqueda solo es eficiente
si la misma es reducida, si la búsqueda
fuese más extensa ya no lo sería dado
que consume memoria de manera
exponencial.
• Su implementación sugiere una Cola
FIFO. 26
Propiedades de los algoritmos:
• Completo.- El algoritmo siempre encontrará una solución si se le deja el tiempo necesario.
• Óptimo.- Si la solución que encontramos es la mejor posible (menor coste por ejemplo).
• Complejidad Temporal.- tiempo de ejecución necesario para resolver el problema.
• Complejidad Espacial.- cantidad de memoria requerida para resolver el problema (nodos
expandidos).
• A la hora de decidirnos por un algoritmo, es conveniente conocer su comportamiento en cuanto a
su complejidad. Para expresar su complejidad se utiliza la cota superior asintótica mas
comúnmente conocida como notación O.

• La búsqueda en amplitud es completa, y su optimalidad depende del problema que estemos


tratando y del objetivo que estamos buscando.
• La complejidad temporal y espacial de BFS (Breadth First Search) depende directamente del
número de nodos generados. Este a su vez depende del factor de ramificación y de la profundidad
del árbol donde se encuentre el objetivo.

27
Búsqueda en
Profundidad (depth)
• Explora en profundidad un camino, en el
caso de no encontrar la solución volvería
atrás (Pila LIFO) a seguir explotando los
otros nodos no explotados.
• En este caso la solución se ha podido
encontrar en la explotación del primer nodo
y como se puede apreciar para este estado
inicial ha sido peor (27 nodos) que la
búsqueda en amplitud (15 nodos).
• Esta búsqueda es más compleja porque
requiere realizar el retroceso
(backtracking), teniendo que hacerlo en
los siguientes casos:
• Se ha llegado al final y no hay
solución a buscar
• Hemos llegado a un límite de
explotación en profundidad o corte.
• No necesariamente encuentra la ruta
más óptima. Como en este ejemplo la
solución se fue por el nodo 9, no por el 8
(óptima).
• Para algunos casos la búsqueda por
anchura resulta más eficiente que la
búsqueda por profundidad, y en otros 28
casos es lo contrario.
• La búsqueda en profundidad puede ser completa si mantiene una
lista de los nodos visitados.
• En general, la complejidad temporal del DFS (Depth First Search) será,
para la mayoría de los casos, mayor que BFS, o en el mejor de los
casos igual.
• La complejidad espacial del DFS puede ser ventajosa al BFS si se omite
la lista de nodos visitados o si la solución está entre las primeras
ramas exploradas.
• Por las características propias del DFS, es posible una implementación
alternativa usando recursividad.
29
Búsqueda Informada: función heurística
• Para el problema del Puzle, el heurístico más eficaz es la distancia de
Manhattan (se explica más adelante).
• Resuelve con el menor consumo de memoria al utilizar menos nodos.
• La diferencia de “inteligencia” entre los algoritmos mencionados:
tanto el de anchura como el de profundidad recorren todas las
posibles expansiones hasta dar con el estado final o resultado. Sin
embargo, el algoritmo que aplica heurística de Manhattan introduce
un elemento diferenciador porque aporta conocimiento del problema
ayudando a la resolución del mismo.

30
Heurístico:
• Intenta medir la “distancia” que hay entre un estado y el objetivo más
próximo (coste previsto o estimado).
• Entre varios estados se elige el que tenga el valor heurístico más bajo.
Este estado representará la dirección que debemos explotar.
• Debe ser una estimación razonable de la cantidad de trabajo restante
en la solución y fácil de calcular.
Ejemplos:
• Distancia de Hamming: el número de fichas que no están en su lugar.
• Distancia Manhattan: la suma de las distancias desde la posición
actual de cada ficha hasta su posición original. Definida como sigue:
(x, y) representa las coordenadas actuales de
la ficha
(x’, y’) representa las coordenadas originales
(objetivo) de la ficha 31
Árbol completo con heurísticos (Manhattan)
asociados a cada estado

Heurístico = 0+1+1+0+1+0+2+2 = 7
(el blanco no se considera en el cálculo)

Tarea:
Implemente las distancias de Hamming y
Manhattan, dado un estado actual como
parámetro de entrada (número o string) 32
Algoritmo A* (A estrella)
Trata de apaliar la complejidad de los algoritmos BFS y DFS intentando que la
convergencia hasta la solución sea más rápida. Para ello usa la función f(n) como
función de evaluación.

g(N) es la profundidad del


nodo
h(N) es la distancia de
Manhattan

33
La función heurística h(n) es una estimación, basándose en la información
que disponemos del problema. La elección de una buena h(n) es muy
importante para que el algoritmo llegue a una solución rápidamente.
La función heurística h(n) debe cumplir las siguientes condiciones:
• h(n)≥0 para todo n
• h(n)=0 si n es el nodo objetivo
• h(n) ha de ser admisible, es decir, la estimación que haga h(n) siempre ha
de estar por debajo del coste real para llegar de n al nodo objetivo. Por
ejemplo: para la distancia entre 2 ciudades, podemos estimar h(n) como la
distancia en línea recta. No habrá camino más corto que este.

34
Taller
• Implemente los algoritmos de búsqueda estudiados (BFS, DFS, A*) para la resolución
del Puzle-8.
Código fuente disponible en:
Java
http://aci710.blogspot.com/2013/05/trabajo-catedra-1-resolucion-puzzle-8.html

Matlab
https://github.com/jae-lee/matlab-8-puzzle

Nota: Se deben hacer ciertos cambios para mejorar el rendimiento de los algoritmos y
corregir cierto error en el algoritmo A*.
35
Tarea
• Ejecute los algoritmos A* y BFS para el estado inicial: 123458679
(12 movimientos)
• Dibuje el árbol generado por cada algoritmo.
• Compare el número de nodos creados (complejidad espacial) y el
tiempo de ejecución (complejidad temporal).

36
Deber:
Utilizando alguna estrategia de búsqueda heurística:

• Descargue de Internet y muestre la funcionalidad de una aplicación


informática de interés. Informe de 2 páginas.
• Resuma y explique un artículo científico. Ensayo de 1 página. Año ≥
2016.

En grupos de hasta 4 estudiantes: 10 min/grupo + 5 min de preguntas

37