Está en la página 1de 16

UNIVERSIDAD TECNOLOGICA DE MEXICO

Departamento: Ingeniería en Sistemas Computacionales


Materia: Inteligencia Artificial
Profesor: M. en C. Silvestre Ascención García Sánchez e – mail: silvestregarcia@hotmail.com

UNIDAD 2. SOLUCION DE PROBLEMAS Y BUSQUEDA

2.1. Componentes de un sistema de búsqueda

La solución de problemas está asociada a la inteligencia. El proceso “normal” de solución de problemas


involucra:

 Identificación y definición del problema


 Identificación del criterio de evaluación
 Generación de alternativas
 Búsqueda de una solución y evaluación
 Selección de opción y recomendación
 Implementación

En IA la solución es principalmente búsqueda y evaluación. La búsqueda es necesaria en la solución de


problemas y normalmente involucra introducir heurísticas.

Las heurísticas son criterios, métodos, ó principios para decidir cuál de varias alternativas de acción
promete ser la más efectiva para cumplir con una meta.

Representan un compromiso entre: (i) simplicidad y (ii) poder discriminatorio entre opciones buenas y
malas.

Las heurísticas no garantizan la acción más efectiva, pero muchas veces lo hacen.

En problemas complejos, las heurísticas juegan un papel fundamental para reducir el número de
evaluaciones y para obtener soluciones dentro de restricciones de tiempo razonables.

Ejemplo 2.1. Ejemplos e Ideas

El problema de las 8 reinas: El problema consiste en colocar 8 reinas en un tablero de ajedrez (8× 8) sin
que se ataquen.

Posibles candidatos de heurísticas:

1. Preferir colocar reinas que dejen el mayor número de celdas sin atacar. En la figura 2.1 se
muestran tres puntos en el tablero (A, B, C). Por inspección, es posible verificar que heu1 (A) = 8
(ver figura 1.2), heu1 (B) = 9, heu1(C) = 10.
2. Ver cuál es el menor número de celdas no atacadas en cada renglón y escoger la que su número sea
menor. En este caso, también por inspección, es posible verificar que heu2 (A) = 1, heu2 (B) = 1,
heu2(C) = 2.

Figura 2.1. El problema de las 8 reinas

El problema del 8 – puzle: consiste en pasar de una configuración inicial a una final deslizando cuadros
aprovechando el espacio vacío.

Algunas heurísticas que se han usado para esto son:

1. Contar el número de cuadros que no corresponden a la meta (sin contar el blanco). En la figura 2.2,
se verifica por inspección que heu1 (A) = 2, heu1 (B) = 3, heu1 (C) = 4.
2. La suma de la distancia Manhattan de los cuadros que no corresponden a su lugar. Por inspección
de la figura 2.2, se verifica que heu2 (A) = 2, heu2 (B) = 4, heu2 (C) = 4.
3. Distancia del cuadro blanco al primer cuadro fuera de su lugar. En este caso, heu3 (A) = 1, heu3
(B) = 1, heu3 (C) = 3.
4. Distancia entre la posición final del blanco y su posición actual. En este caso, heu4 (A) = 2, heu4
(B) = 0, heu4 (C) = 2.
Figura 2.2. El problema del 8 puzzle

En toda disciplina, la optimización juega un papel importante en el diseño de las actividades a seguir; tales
disciplinas no se restringen a la ingeniería. Desde simples actividades rutinarias, en la vida se presentan
diversas situaciones que implican la optimización, incluso de manera intuitiva. Elegir la mejor ruta de la
casa la trabajo, o la mejor en el proceso de producción de artículos en una fábrica, a fin de minimizar
gastos de manufactura y mantener la calidad de tal producto. Frecuentemente la optimización se asocia
con el diseño, sea de un producto, servicio o estrategia; por ejemplo, en aeronáutica, el ahorro de
combustible mediante la planeación de trayectorias óptimas y altitudes de navegación es un problema que
sugiere por sí mismo la optimización de recursos.

La optimización puede verse como el proceso de obtener la mejor solución a un problema. En términos
generales, las características y requerimientos del problema determinan si la mejor solución de todas
(óptimo global) puede ser encontrado. Hay que ajustar las entradas del sistema o modelo matemático, para
encontrar el valor máximo o mínimo de la salida como resultado. La entrada consiste en variables, el
proceso o función se denomina función de evaluación. La salida es el costo o aptitud.

Elementos básicos en un problema de optimización

1. La función de evaluación, que representa la cantidad a optimizar, sea maximizar o minimizar,


denotada como f.
2. Un conjunto de variables, el cual afecta el valor de la función de evaluación. Si x representa una
variable (independiente), entonces f(x) representa la calidad de la solución del candidato x.
3. Un conjunto de restricciones, que limitan o restringen los valores a los que pueden asignarse las
variables.

Ejemplo 2.2. El problema del agente viajero (TSP). Es un problema NP – duro (del acrónimo en inglés
de Polinómico No Determinista, o sea Non – Deterministic Polinomial time), y es de los más utilizados
en la literatura. Este problema trata de un agente viajero que debe visitar n ciudades y su objetivo es
encontrar el circuito hamiltoniano, es decir, que visite todas las ciudades una sola vez y regresar a casa;
pero con el mínimo costo posible (el viaje más corto). En la figura 2.3 se muestra se muestra un grafo
completo de 5 nodos (fully – connected) con pesos en cada arista. Dicho grafo es la representación
simplificada del mapa carretero entre 5 ciudades, donde el peso en cada arista representa la distancia en
km entre cada par de ciudades.

41 41
35 35
1 2 1 2
24 22 24 22
5 5
22 36 22 36

45 32 45 32
4 3 4 3
38 38
19 19

Figura 2.3. Problema del TSP para n = 5 nodos. El grafo completo a la izquierda, muestra la distancia que
existe entre cada pareja de nodos (pesos en las aristas). El grafo dirigido a la derecha, un circuito cuyo
nodo origen es el nodo 4. Las líneas punteadas en él, representan las aristas que son descartadas en el
recorrido.

Las componentes en este problema de optimización son las siguientes:

Restricción. Las trayectorias deben ser circuitos (esto es nodo inicial = nodo final).
Variables. Pueden representarse de manera vectorial, donde cada componente represente la posición de
un nodo en el circuito, esto es,

C=C1,C2,…,Ci,…,C(n), (2.1)

donde i = 1,2,…,n representa la posición de la ciudad C(i) en el circuito.

Función de evaluación. Representa el costo de cada circuito, esto es,

fC=dC1,C2+…+dCi,Ci+1+…+dCn-1,Cn+dCn,C1, (2.2)

donde d(C(i), C(i + 1)) representa la distancia (en km) entre los nodos que ocupan la posición i – 1 e i en
el recorrido.

De manera más compacta, la ecuación (2.2) puede escribirse como:


fC=i=1n-1dCi,Ci+1+dCn,C1, (2.3)

Ejercicio 2.1.
(a) Para el problema del TSP con n = 5 nodos del ejemplo 2.2., determine el costo o aptitud de los ciclos
C1 = [1, 2, 3, 4, 5] y C2 = [2, 4, 3, 1, 5].
(b) Diseñe una función en Matlab que se llame Eval_TSP.m que evalúe el costo de un circuito (ecuación
2.3).
(c) Invoque dicha función en el archivo de prueba (llámelo prueba_2_1.m) y compare con los resultados
del inciso (a).

% prueba 2_1
clear all
clc
%% declare e inicialice matriz de distancias (llame a esta variable d) %%
%% declare e inicialice los circuitos del inciso (a) (llámelos C1 y C2 respectivamente) %%
f1 = Eval_TSP(C1,d); % Costo para circuito 1
f2 = Eval_TSP(C2,d); % Costo del circuito 2
% Fin del programa prueba 2_1

2.2. Representación espacio – estado

Los algoritmos de optimización son métodos (heurísticas) de búsqueda, donde el objetivo es encontrar la
solución a un problema de optimización, tal que una cantidad dada sea optimizada, probablemente sujeta a
un conjunto de restricciones.

El espacio – estado (ó espacio de búsqueda) representa todos los posibles soluciones en un problema de
optimización, por lo general, esto representa un problema combinatorio. Las soluciones que arroja un
algoritmo de optimización pueden clasificarse de acuerdo a la calidad de la solución. Asumiendo que se
trata de un problema de minimización, se define formalmente el mínimo global (óptimo global para este
caso):

Mínimo global. La solución x*  F es un óptimo global de la función de evaluación, f, si:

fx*<fx, ∀x ∈F (2.4)

donde F es un espacio de búsqueda viable, S es el espacio de búsqueda completo sin restricciones y F ⊆ S.


Entonces el óptimo global es la mejor solución de un conjunto de soluciones candidato.

Mínimo local estricto. La solución x* ∈ N ⊆ F, es un mínimo local estricto de f si:

fx*<fx, ∀x ∈N (2.5)

donde N  F es un conjunto de puntos factibles en la vecindad de x*.


Mínimo local débil. La solución x* ∈ N ⊆ F, es un mínimo local débil de f si

fx*≤ fx, ∀x ∈N (2.6)

donde N ⊆ F es un conjunto de puntos factibles en la vecindad de x*. La figura 2.4 muestra los tipos de
óptimos en problemas sin restricciones.

Figura 2.4. Tipos de óptimos para problemas sin restricciones.

Búsqueda exhaustiva. Es el método más simple dentro de la optimización discreta. Evalúa una solución
óptima para todas las combinaciones de las variables discretas. La mejor solución se obtiene a partir de la
búsqueda del valor mínimo dentro de la lista de soluciones factibles. Si el número de soluciones factibles
es muy grande, la búsqueda se vuelve un trabajo excesivo y engorroso. Presenta un crecimiento
exponencial en los cálculos con el número de variables discretas.

Ejercicio 2.2. Determine el número de configuraciones que existen en el espacio – estado del problema
del TSP

Práctica 1. Búsqueda Exhaustiva.

Objetivo: Aplicar el método de búsqueda exhaustiva para resolver el problema del TSP con n = 5 nodos.
Para llevar a cabo tal efecto, complete las tareas que se indican en el siguiente fragmento de código.
% Practica_1_Busqueda exhaustiva
clear all
clc
clf
%% declare e inicialice matriz de distancias (llámela d) %%
N = length(d);
CF = perms(1:N); % almacena en una matriz de tamaño N! x N las soluciones factibles
%% Evalúe cada circuito en CF mediante la función Eval_TSP.m y almacene los costos de cada uno en %
% un vector (llámelo EF) %%
plot(EF); % Grafica el costo de cada configuración factible
title(‘Espacio – Estado’);
xlabel(‘Configuracion’);
ylabel(‘Costo’);
%% Obtenga el mínimo del vector EF (a ésta variable llámela Eopt) %%
%% Obtenga la primer configuración de la matriz CF cuyo costo sea Eopt y llámela Copt %%
% Fin del programa

2.3. Búsqueda Local (Local Search)

Búsqueda local consiste en un proceso iterativo que comienza en una solución y la mejora realizando
modificaciones locales. Básicamente empieza en una solución inicial y busca en su vecindad una mejor
solución y continúa con el proceso, hasta que no se pueda mejorar la solución actual. (el algoritmo de LS
de propósito general se muestra en la figura 2.5)

Algoritmo de Búsqueda Local {


C0 = genera una solución inicial
while C0 no es óptimo local {
C1 ∈ N(C0) con f(C1) < f(C0)
(solución mejor dentro de la vecindad de C0)
C0  C1
}
return C0
}
Figura 2.5. Algoritmo de Búsqueda Local

2.3.1. Meta – heurística de LS (Local Search)

Se entiende por meta – heurística un conjunto de conceptos algorítmicos que pueden ser utilizados para
definir métodos heurísticos que se aplican a una amplia gama de problemas. Puede verse a una meta –
heurística como un algoritmo de propósito general, mientras que las heurísticas que se basan en ella son
algoritmos de propósito específico. A continuación se muestran las heurísticas más utilizadas y se
menciona una breve descripción de ellos.

• Best Improvement Rule. Selecciona el mejor vecino en N(C0)


• First Improvement Rule. Selecciona el primer vecino en N(C0) que mejore la solución

2.3.2. Vecindad

En cuanto al esquema de vecindad (y mejora), la mayoría se basa en movimientos k – Opt, donde se


intercambian k nodos en el circuito actual C0, lo que produce un nuevo circuito C1. Las heurísticas en
búsqueda local más utilizadas son: 2 – Opt, 3 – Opt y Lin Kernighan (LK).

2.3.2.1. Movimientos 2 – Opt

Dada una solución inicial C0, se obtiene una nueva solución posible C1 al intercambiar dos nodos de la
solución inicial C0. El número máximo de vecinos que pueden obtenerse mediante esta heurística está
dado por la fórmula combinatoria,

No.Vecinos=NN-12 (2.7)

Lo anterior indica, que después de N(N – 1)/2 movimientos, si la solución C0 no es reemplazada (no
existe una mejor solución en su vecindad), el algoritmo de búsqueda local habrá terminado.
VECINDAD

5 4 1 2 3

1 5 4 2 3

2 5 1 4 3

3 5 1 2 4
C0 = SOLUCION INICIAL
4 1 5 2 3
4 5 1 2 3
4 2 1 5 3

4 3 1 2 5

4 5 2 1 3

4 5 3 2 1

4 5 1 3 2

Ejemplo 2.1. Dado el circuito C0 = [4, 5, 1, 2, 3], encuentre sus 10 vecinos correspondientes.

Figura 2.6. Vecindad correspondiente al circuito C0 = [4, 5, 1, 2, 3]. En la tabla a la izquierda, el número
marcado en azul se denomina pivote, observe como éste se mantiene fijo hasta que intercambia posición
con todos los nodos a su derecha. Una vez que esto ocurre, el pivote se mueve al siguiente nodo a la
derecha.

En la figura 2.7.se muestra el grafo dirigido correspondiente a cada circuito en la vecindad C0. Observe
que el efecto de intercambiar dos nodos en la solución inicial (ver figura 2.1), equivale a reemplazar dos
aristas en el grafo dirigido por dos nuevas rutas
41 41 41
35 35 35
1 2 1 2 1 2
24 22 24 22 24 22
5 5 5
22 36 22 36 22 36

45 32 45 32 45 32
4 3 4 3 4 3
38 38 38
19 19 19

41 41 41
35 35 35
1 2 1 2 1 2
24 22 24 22 24 22
5 5 5
22 36 22 36 22 36

45 32 45 32 45 32
4 3 4 3 4 3
38 38 38
19 19 19

C = [4,5,1,3,2]
41 41 41
35 35 35
1 2 1 2 1 2
24 22 24 22 24 22
5 5 5
22 36 22 36 22 36

45 32 45 32 45 32
4 3 4 3 4 3
38 38 38
19 19 19

41
35
1 2
24 22
5
22 36

45 32
4 3
38
19

Figura 2.7. Gráficas dirigidas de cada circuito en la vecindad de C0.


2.3.3. Solución del problema del TSP con Búsqueda Local

Ejercicio 2.3. Determine la mejor solución que arroja el algoritmo de búsqueda local mediante la
heurística First Improvement Rule, si la solución inicial se propone como C0 = [4, 5, 1, 2, 3]. Apoye su
resultado mediante la realización de un programa en Matlab (llámelo prueba_2_2.m)

Ejemplo 2.2. Determine la mejor solución que arroja el algoritmo de búsqueda local mediante la
heurística best – improvement – rule, si la solución inicial está dada por C0 = [4, 5, 1, 2, 3].

La solución se muestra en la figura 2.8, se observa que la mejor solución encontrada por este algoritmo es
el vector [3, 5, 1, 4, 2] con una longitud total de su recorrido de 133. El número de vecindades visitadas
fue de 3, donde se revisaron un total de 30 configuraciones (esto es, 30 iteraciones).

C0 = Solución
Inicial C0 = Solución final

4 5 1 2 3 178 5 4 1 2 3 170 5 2 1 4 3 149 5 3 1 4 2 136


1 5 4 2 3 165 1 5 2 4 3 144 1 5 3 4 2 148
2 5 1 4 3 142 4 5 1 2 3 178 4 5 1 3 2 165
3 5 1 2 4 148 3 5 1 4 2 133 2 5 1 4 3 142
4 1 5 2 3 142 2 1 5 4 3 178 3 1 5 4 2 165
4 2 1 5 3 148 2 4 1 5 3 133 3 4 1 5 2 142
4 3 1 2 5 181 2 3 1 4 5 166 3 2 1 4 5 170
4 5 2 1 3 181 2 5 4 1 3 148 3 5 4 1 2 170
4 5 3 2 1 170 2 5 3 4 1 149 3 5 2 4 1 136
4 5 1 3 2 165 2 5 1 3 4 144 3 5 1 2 4 148

Figura 2.8. Algoritmo de búsqueda local con heurística best – imporvement – rule. Las configuraciones
marcadas en rojo representan el mejor vecino de cada localidad (mínimo local). Observe que en la última
vecindad visitada no existe ningún vecino que mejora la solución anterior, por lo que la búsqueda termina
arrojando el resultado [3, 5, 1, 4, 2].

Práctica 2. Búsqueda local con heurística best – improvement – rule.

Objetivo. Implementar la heurística best – improvement – rule para el problema del TSP con N = 5 nodos
y matriz de distancias correspondiente al grafo a la izquierda de la figura 2.3. Envíe sus resultados a un
archivo de texto llamado BIR.txt.

2.4. Algoritmo de Recocido Simulado (Simulated Annealing)

Los algoritmos de búsqueda local generalmente iteran partiendo de una solución aleatoria, generando un
vecino que sea mejor hasta que se llegue a una solución que no tiene mejores vecinos.
Desafortunadamente dichos algoritmos quedan atrapados en mínimos locales (soluciones sub – óptimas).

En cambio, recocido simulado se basa en aceptar en forma limitada transiciones que no mejoren la función
de evaluación, utilizando para ello un mecanismo no determinista (aleatorio).
Recocido simulado se llama así por su analogía con el proceso físico de recocido en sólidos, en el que:

 Se incrementa la temperatura de un sólido cristalino a una temperatura alta


 Se decrementa la temperatura muy lentamente hasta alcanzar un estado base de mínima energía,
con una estructura cristalina lo más regular posible.

Lo que hace recorrido simulado es establecer una conexión entre ese tipo de proceso termodinámico y la
búsqueda de un mínimo global (solución óptima)

Otro proceso relacionado es el de quenching (apagado) en el que la temperatura se baja inmediatamente.


El núcleo de recorrido simulado lo constituye lo que se conoce como el algoritmo de Metrópolis.

2.4.1. Algoritmo de Metrópolis

La idea principal puede verse en la figura 2.9, donde T denota la temperatura y kB la constante de
Boltzmann.

Algoritmo Metropolis {

Ci = genera solución inicial de manera aleatoria


Ei = calcula la energía de Ci
Genera Cj ∈ Si. (pequeña distorsión del estado Ci)
Calcula su energía Ej
Si Ej < Ei {
Ci = Cj
Ei = Ej
Si no {
Si (expEj-EikBT>random[0,1)) {
Ci = Cj
Ei = Ej
}
}
}
}

Figura 2.9. Algoritmo de Metrópolis

Lo que hace el algoritmo de Metrópolis es generar un vecino, calcularle su energía (función de evaluación
en problemas de optimización) y aceptar ese vecino si tiene menor energía o aceptarlo con mayor energía
pero con cierta probabilidad que depende de la temperatura (T).

Si el proceso se realiza durante muchas transiciones se puede llegar a lo que se conoce como un equilibrio
térmico. El equilibrio térmico está caracterizado por la distribución de Boltzmann.
La distribución de probabilidad de que el sólido se encuentre en el estado Ci con energía Ei a temperatura
T está dada por:

PTX=Ci=1ZTexp-EikBT (2.8)

donde X es la variable aleatoria estocástica que denota el estado actual del sólido, y Z(T) es la función de
partición definida como:

ZT=jexp-EjkBT (2.9)

La probabilidad de aceptar un estado Cj, dado que el sistema se encuentra en el estado Ci, está dada por la
regla no determinista:

Piacepta j=1 si Ej≤EiexpEi-EjT si Ej>Ei


(2.10)

Ejercicio 2.4. Suponga que, para cierto problema existen solo 3 configuraciones con energías E1 = 1, E5 =
5 y E10 = 10.

a. Determine la probabilidad de que el sistema se encuentre en cada configuración para el intervalo de


temperatura 0.01 < T ≤ 200. Grafique (tome 10000 puntos) ¿Qué configuración tiene mayor probabilidad
en T = 0.01? Indique su valor ¿En T = 200 a qué valor convergen todas las probabilidades? Indique este
valor.

b. Determine la probabilidad de transición de los estados de mayor energía a los de menor energía, esto es,
P1{acepta 5}, P1{acepta 10} y P5{acepta 10} En T = 0.01 ¿Qué valor presentan las probabilidades de
transición? Indique su valor. En T = 200 ¿A qué valor convergen todas las probabilidades de transición?
Indique este valor

Solución: Deberá observar a la salida el par de gráficas que se muestra en la figura 2.10
1
E
1
Propabilidad [PT]

2/3 E
5
E
10
1/3

0
0 50 100 150 200
Temperatura [T]

1
P
15
2/3 P
110
P
Pij

510
1/3

0
0 50 100 150 200
Temperatura [T]

Figura 2.10

2.4.3. Recorrido Simulado

La analogía es la siguiente:

 Las soluciones corresponden a estados del sistema físico


 El costo de la solución corresponde a la energía del estado
 Se introduce un parámetro de control que corresponde a la temperatura.

El algoritmo de recorrido simulado se puede ver como una iteración de algoritmos de Metrópolis (ver
figura 4.2). Si se baja la temperatura suficientemente lento se puede alcanzar el equilibrio térmico en cada
temperatura. Esto se hace mediante la generación de varias transiciones en cada temperatura.

Algoritmo de Recorrido Simulado {


k=0
T0 = valor inicial del parámetro de control T
T = T0 (inicializa el parámetro de control T)
Ci = solución inicial generada de manera aleatoria
Ei = energía del estado Ci
repite {
for l = 1 to Lk {
Genera Cj ∈ N(Ci) (pequeña perturbación del estado Ci)
Calcula su energía Ej
Si Ej < Ei {
Ci = Cj
Ei = Ej
Si no {
Si (expEj-EikBT>random[0,1)) {
Ci = Cj
Ei = Ej
}
}
}
}
k=k+1
Actualiza Lk y T
Hasta criterio de terminación
}
Imprime Ei, Ci
}

Se puede mostrar que bajando suficientemente lento el parámetro asociado a la temperatura y generando
suficientes transiciones en cada una de ellas, se puede alcanzar la configuración óptima.

Inicialmente valores grandes de T aceptan cualquier estado. Al tender T a cero, se dejan de aceptar
estados. La velocidad de convergencia del algoritmo está determinada por Lk y T.

2.4.3.1. Aproximaciones

Puede mostrarse que, si Lk  ∞, conforme Tk → 0 se llega a la configuración óptima. En la práctica, no es


posible garantizar llegar a la solución óptima, por lo que se hacen aproximaciones con longitud de
transiciones finitas y número de descensos del parámetro de control (temperatura) finito, que arrojan
soluciones sub – óptimas.

Se requiere definir un mecanismo de enfriamiento que especifique lo siguiente:

• Una secuencia finita de valores para el parámetro de control (T): (i) un valor inicial T0, (ii) una
función de decremento, y (iii) un valor final (condición de paro).
• Un número finito de transiciones para cada valor del parámetro de control (longitud finita de cada
cadena de Markov).
Mecanismo de enfriamiento propuesto por Kirpatrick:

• Valor inicial del parámetro de control: empezar con un entero positivo pequeño e irlo
multiplicando por un factor mayor a 1 hasta que las transiciones generadas sean casi todas
aceptadas.
• Decremento del parámetro de control T: Tk+1 = αTk, donde α es una constante cercana a 1 [0.8,
0.99].
• Valor final del parámetro de control (T): terminar cuando loa solución obtenida permanece igual
en un número determinado de cadenas de Markov consecutivas.
• Longitud de las cadenas de Markov: hacer longitud (L) fija (de otra forma Lk  ∞, conforme Tk →
0)

También podría gustarte