Anda di halaman 1dari 62

1

jeffersson sal reyes lasso


Uso e Implementacin de Mtodos Meta heursticos de tipo TABU para
resolucin de problemas de optimizacin Duros

Captulo 1
Introduccin

La ciencia y la tecnologa han crecido de una manera muy significativa


en las ltimas dcadas, con lo cual el ser humano ha obtenido as respuesta
a una gran diversidad de problemas. Todos estos avances que se han
logrado nos han ayudado a conocer y comprender de una manera ms
eficiente el entorno que nos rodea. Adems, dentro de estos pasos
gigantescos en la evolucin del ser humano, se han descubierto productos
sustitutos como la luz, energa como el combustible, as como otras
invenciones y descubrimientos que han ayudado a satisfacer de alguna
manera las necesidades que tenemos. Con este afn, se han constituido
miles de empresas alrededor del mundo, las cuales ofrecen productos y
servicios varios de acuerdo a los requerimientos de su mercado objetivo, que
cambia constantemente, por lo que siempre debe estar en continuo
mejoramiento para la elaboracin de nuevos productos y/o servicios de mejor
calidad.

Enfoqumonos en una empresa que produce cierto producto,


cualquiera que sea este, a lo largo de varios aos la principal preocupacin
era cumplir una meta fijada, que generalmente tena que ver con incrementar
sus ventas de cualquier manera, para obtener as una utilidad mayor y en la
mayora de las ocasiones lo lograban, pero sin saber si utilizaban sus
recursos de la mejor manera. Como cumplan sus metas se poda decir que
eran eficaces en la venta y elaboracin de su producto. Al pasar el tiempo
notaron que podan de mejorar el uso de la materia prima, debido que en
muchos casos no la aprovechaban de mejor manera, entonces comenz a
surgir en la empresa las preguntas Cmo utilizar ptimamente sus recursos
humanos, financieros, de capital?, Cuntos productos tenan que elaborar
de cada tipo para maximizar sus utilidades?. Con estas preguntas claramente
podemos considerar a la situacin que tienen las empresas, como un
problema de toma de decisiones, que para poder llegar a una solucin se
requiere la identificacin de tres componentes principales:

Las alternativas

Las Restricciones

Un criterio objetivo para la evaluacin de las alternativas

Estos componentes, son los principales en la estructura que servirn para


formar un modelo tpico de investigacin de operaciones (IO), donde el

resultado final es un modelo matemtico que relaciona las variables, las


restricciones y la funcin objetivo. La solucin del modelo produce entonces
los valores de las variables de la decisin que optimizan (maximizan o
minimizan) el valor de la funcin objetivo y al mismo tiempo satisfacen las
restricciones. A la solucin resultante se la conoce como solucin factible
ptima. Estos modelos regularmente se organizan as:

Maximizar o minimizar Funcin Objetivo

Sujeto a restricciones

Una de las tcnicas ms simples es la programacin lineal, donde todas


las funciones objetivo y las restricciones son lineales, adems todas las
variables son continuas, de hecho estos supuestos difcilmente son
satisfechos en la realidad. Otras tcnicas conocidas son: programacin
dinmica, programacin entera, programacin no lineal, programacin de
metas, programacin de redes, optimizacin combinatoria, etc.

La tcnica de la programacin Lineales bastante til y a la vez bsica,


por lo que para poder utilizarla debe existir una relacin lineal entre las
variables y estas debern tener un carcter continuo. Esto significa que el
cambio de una variable estar acompaada por un cambio proporcional en
otra. Entonces conociendo esto la pregunta en las empresas fue replanteada

as: Cmo minimizar los costos y a la vez maximizar las utilidades?; o


simplemente: Cmo optimizar un proceso?. Aqu la palabra optimizar tom
un significado importante, debido a cuando es utilizada estamos refirindonos
a un valor ptimo describimos un valor en el cual se cumplen todas las
restricciones y Maximiza o Minimiza el objetivo. Con esto las empresas no
slo podran contentarse con ser eficaces sino tambin eficientes en la
produccin de sus productos.

Algunos modelos matemticos de optimizacin son tan complejos


como la elaboracin de horarios de clase, recoleccin de basura, ruteo de
vehculos, entre otros; que es imposible resolverlos mediante cualquiera de
los mtodos exactos de optimizacin disponibles. Enfrentando el desafo de
resolver problemas de ese tipo, que abundan en el mundo real, los mtodos
clsicos encuentran a menudo gran dificultad, por lo que

es necesario

abandonar la bsqueda de la solucin ptima exacta y slo buscar una


buena solucin, utilizando los denominados mtodos heursticos. Estos
mtodos no garantizan la optimalidad de la solucin que ha sido encontrada.
En los ltimos aos ha habido un crecimiento espectacular en el desarrollo
de procedimientos heursticos, y esto es, debido a la necesidad de ofrecer
rpidas y buenas soluciones a los problemas reales.

Se los denomina heursticos tambin, debido a que estaban


desarrollados para resolver slo un tipo de problemas y para ningn otro
ms. A estos tipos de problemas se los conoce como NP-duros o NP-difciles
(de las siglas Non Polinomal), donde cualquier procedimiento para hallar la
solucin ptima exacta tiene complejidad exponencial. Existen diversos
mtodos heursticos tales como: Mtodos constructivos, de descomposicin,
de reduccin, de manipulacin del modelo y de bsqueda local. Estos
mtodos

son

utilizados

para

resolver

problemas

de

optimizacin

combinatoria.

En la actualidad, el objetivo principal de los investigadores en esta


rea es la de disear mtodos generales para poder resolver clases o
categoras de problemas. A estos nuevos mtodos se los denomina Metaheursticos.

Los procedimientos Meta-heursticos son una clase de mtodos


aproximados que estn diseados para resolver problemas difciles de
optimizacin combinatoria, en los que los heursticos clsicos no son ni
efectivos ni eficientes. Los Meta-heursticos proporcionan un marco general
para crear nuevos algoritmos hbridos combinando diferentes conceptos
derivados de: inteligencia artificial, evolucin biolgica y mecanismos
estadsticos.

Entre los procedimientos Meta-Heursticos tenemos:

Bsqueda Tab

Recocido Simulado

Algoritmos Genticos

GRASP
En el captulo III conoceremos ms sobre los mtodos anteriormente

mencionados, pero intimaremos principalmente con el Mtodo de Bsqueda


Tab.

Los orgenes del Mtodo de Bsqueda Tab (MT) puede situarse en


diversos trabajos publicados hace alrededor de 20 aos por Glover. Este
mtodo cambia nuestra habilidad de resolver problemas de importancia en la
prctica. La aplicacin en la actualidad puede ser diversas ramas, tales
como: las telecomunicaciones, anlisis financiero, ingeniera molecular,
exploracin mineral, anlisis biomdico, conservacin ambiental, entre otros.
El MT es una tcnica para resolver problemas combinatorios de gran
dificultad que est basada en principios generales de la Inteligencia Artificial.
En esencia es un procedimiento meta-heursticos que puede ser utilizado
para guiar cualquier procedimiento de bsqueda local.

Una de las principales caractersticas del MT es la de poseer una


memoria flexible de bsqueda. Bsicamente, el empleo de dicha memoria

flexible consiste en modificar (restringir y expandir) sobre la marcha el criterio


de vecindad, de acuerdo a observaciones realizadas durante el proceso de
bsqueda.

En el captulo IV de la presente tesis se conocer mucho ms sobre el


mtodo Tab, comprenderemos ms sobre la resolucin de una gran
diversidad de problemas de tipo NP-duros, con el que obtendremos buenas
soluciones y adems se implementar el algoritmo de ste mtodo con lo
que se podr demostrar su aplicabilidad.

Captulo 2
METODOS

DE

OPTIMIZACION

EXACTA EN

NUMEROS

ENTEROS
2.1 Programacin Lineal
En los siglos XVII y XVIII, grandes matemticos como Newton,
Leibnitz, Bernouilli y, sobre todo, Lagrange, que tanto haban contribuido al
desarrollo del clculo infinitesimal, se ocuparon de obtener mximos y
mnimos condicionados de determinadas funciones.
Posteriormente el matemtico frnces Jean Baptiste-Joseph Fourier
(1768-1830) fue el primero en intuir, aunque de forma imprecisa, los mtodos
de lo que actualmente llamamos programacin lineal y la potencialidad que
de ellos se deriva.
Si exceptuamos al matemtico Gaspar Monge (1746-1818), quien en
1776 se interes por problemas de este gnero, debemos remontarnos al
ao 1939 para encontrar nuevos estudios relacionados con los mtodos de la
actual programacin lineal. En este ao, el matemtico ruso Leonodas
Vitalyevich Kantarovitch publica una extensa monografa titulada Mtodos
matemticos de organizacin y planificacin de la produccin en la que por
primera vez se hace corresponder a una extensa gama de problemas una

teora matemtica precisa y bien definida llamada, hoy en da, programacin


lineal .
En 1941-1942 se formula por primera vez el problema de transporte,
estudiado independientemente por Koopmans y Kantarovitch, razn por la
cual se suele conocer con el nombre de problema de KoopmansKantarovitch.
Tres aos ms tarde, G. Stigler plantea otro problema particular
conocido con el nombre de rgimen alimenticio optimal.
En estos aos posteriores a la Segunda Guerra Mundial, en Estados
Unidos se asumi que la eficaz coordinacin de todas las energas y
recursos de la nacin era un problema de tal complejidad, que su resolucin
y simplificacin pasaba necesariamente por los modelos de optimizacin que
resuelve la programacin lineal.
Paralelamente a los hechos descritos se desarrollan las tcnicas de
computacin y los ordenadores, instrumentos que haran posible la
resolucin y simplificacin de los problemas que se estaban gestando.
En 1947, G.B. Dantzig formula, en trminos matemticos muy
precisos, el enunciado estndar al que cabe reducir todo problema de
programacin lineal. Dantzig, junto con una serie de investigadores del

10

United States Departament of Air Force, formaran el grupo que dio en


denominarse SCOOP (Scientific Computation of Optimum Programs).
Una de las primeras aplicaciones de los estudios del grupo SCOOP
fue el puente areo de Berln.
En 1946 comienza el largo perodo de la guerra fra entre la antigua
Unin Sovitica (URSS) y las potencias aliadas (principalmente , Inglaterra y
Estados Unidos). Uno de los episodios ms llamativos de esa guerra fra se
produjo a mediados de 1948, cuando la URSS bloque las comunicaciones
terrestres desde las zonas alemanas en poder de los aliados con la ciudad
de Berln, iniciando el bloqueo de Berln. A los aliados se les plantearon dos
posibilidades: o romper el bloqueo terrestre por la fuerza, o llegar a Berln por
el aire. Se adopt la decisin de programar una demostracin tcnica del
poder areo norteamericano; a tal efecto, se organiz un gigantesco puente
areo para abastecer la ciudad: en diciembre de 1948 se estaban
transportando 4500 toneladas diarias; en marzo de 1949, se lleg a las 8000
toneladas, tanto como se transportaba por carretera y ferrocarril antes del
corte de las comunicaciones. En la planificacin de los suministros se utiliz
la programacin lineal. (El 12 de mayo de 1949, los soviticos levantaron el
bloqueo)
Luego de este acontecimiento se continu con infinidad de
aplicaciones de tipo preferentemente militar.

11

Hacia 1950 se constituyen, fundamentalmente en Estados Unidos,


distintos grupos de estudio para ir desarrollando las diferentes ramificaciones
de la programacin lineal. Cabe citar, entre otros, Rand Corporation, con
Dantzig, Orchard-Hays, Ford, Fulkerson y Gale, el departamento de
Matemticas de la Universidad de Princenton, con Tucker y Kuhn, as como
la Escuela Graduada de Administracin Industrial, dependiente del Carnegie
Institute of Technology , con Charnes y Cooper.
Los fundamentos matemticos de la programacin lineal se deben al
matemtico norteamericano de origen hngaro Janos von Neuman (19031957), quien en 1928 public su famoso trabajo Teora de Juegos. En 1947
conjetura la equivalencia de los problemas de programacin lineal y la teora
de matrices desarrollada en sus trabajos. La influencia de este respetado
matemtico, discpulo de David Hilbert en Gotinga y, desde 1930, catedrtico
de la Universidad de Princeton de Estados Unidos, hace que otros
investigadores se interesaran paulatinamente por el desarrollo riguroso de
esta disciplina.
Se ha estimado, de una manera general, que si un pas
subdesarrollado utilizase los mtodos de la programacin lineal, su producto
interior bruto (PIB) aumentara entre un 10 y un 15% en tan slo un ao.

12

La programacin lineal (PL), que trata exclusivamente con funciones


objetivos y restricciones lineales, es una parte de la programacin
matemtica, y una de las reas ms importantes de la matemtica aplicada.
Se utiliza en campos como la ingeniera, la economa, la gestin, y muchas
otras reas de la ciencia, la tcnica y la industria.
El propsito de la programacin lineal es el de MAXIMIZAR o
MINIMIZAR funciones lineales de la forma :
Max / Min. f ( x ) C1 X 1 C 2 X 2 ... C n X n C T X
s.a.r
a in X 1 a i 2 X 2 a i 3 X 3 ... a in X n 0
X 1 0, X 2 0... X n 0

Escrito de manera matricial:

Max / Min.C T X ; X n
s.a.r
Ax b; A mxn
x 0; C m

La solucin que satisface todas las restricciones del modelo es una


solucin factible pero lo que en realidad nos interesa es la solucin factible
ptima que produce, la cual cumple con todas las restricciones y es el mejor
resultado de los obtenidos.

13

2.2 Programacin Lineal Entera.


Dentro de las muchas aplicaciones de la programacin lineal nos
podemos dar cuenta que una de las grandes limitaciones que impiden su
empleo es la suposicin de divisibilidad. Esta dice que las variables de
decisin solo tienen un sentido real si su valor es entero. Por ejemplo, con
frecuencia es necesario asignar personas, mquinas, objetos, animales o
vehculos a las actividades en cantidades enteras. Si el hecho de exigir
valores enteros es la nica diferencia que tiene un problema con la
formulacin de programacin lineal, entonces estamos hablando de un
problema de programacin entera (PE) (su nombre completo: programacin
lineal entera).
El

modelo

matemtico

para

programacin

lineal

entera

es

sencillamente el modelo de programacin lineal con la restriccin adicional


de que las variables deben tener valores enteros (y la suposicin de
divisibilidad se cumple para el resto), el modelo se conoce como de
programacin entera mixta (PEM). cuando se hace la distincin entre un
problema con todas las variables enteras y el mixto, en el primer caso se
llama de programacin entera pura.
Se han desarrollado numerosas aplicaciones de programacin entera
que involucran una extensin directa de programacin lineal en la que se
debe eliminar la suposicin de divisibilidad. Sin embargo, existe otra rea de

14

aplicacin que puede ser mucho mas importante, como el problema que
incluye cierto nmero de "decisiones si o no" interrelacionadas. En las
decisiones de este tipo, las nicas dos elecciones posibles son si y no. Por
ejemplo, debe emprenderse un proyecto especfico?, debe hacerse una
inversin fija especfica?, se debe localizar una instalacin en un sitio en
particular?.
Con solo dos posibilidades, este tipo de decisiones se puede
representar mediante variables de decisin restringidas a solo dos valores,
por ejemplo 0 y 1. As, la j - sima decisin si o no se puede representar por
xj, tal que
1, si la decisin j es si
xj =
0, si la decisin j es no

Las variables de ste tipo se llaman variables binarias (o variables 01). De esta manera se pretende mostrar que los problemas de programacin
entera que contienen solo variables binarias son conocidos como de
programacin entera binaria (PEB) (o problemas 0 1de programacin
entera).

15

El principal algoritmo para resolver un problema de programacin entera es


el algoritmo de Branch & Bound.
Branch & Bound (B&B)
Uno de los mtodos de Programacin Entera ms usados es sin duda
el mtodo de Branch & Bound (B&B), al que se refieren a veces en espaol
como mtodo de Ramificacin y Acotamiento. B&B es un mtodo de
optimizacin exacto el cual utiliza la programacin lineal como herramienta
para obtener una solucin del problema sin tomar en cuenta la restriccin de
que las variables deben tomar solamente valores enteros. Aqu describiremos
B&B brevemente para problemas de maximizacin (para minimizacin el
proceso es similar).
El enfoque de B&B es resolver el problema como si se tratara de un
problema de programacin lineal, sin tomar en cuenta que las variables
deben ser enteras. B&B empieza entonces utilizando alguna rutina de
Programacin Lineal (que llamaremos aqu PL). A esta iteracin le
llamaremos la iteracin inicial. Si en la iteracin inicial, la solucin es entera,
el problema se ha resuelto, de modo que la solucin obtenida con PL es la
solucin ptima del problema entero. De otra manera, habr que continuar
buscando la solucin del problema entero.
Si en la iteracin inicial, la solucin obtenida no es entera, se procede
a seleccionar una variable no entera Xi. Se encuentran los dos enteros ms

16

prximos de Xi. Sean estos enteros Xmenor y Xmayor los enteros ms


pequeo y ms grande que Xi, respectivamente. B&B forma entonces dos
nuevas restricciones que agrega una a una al problema original, de modo
que se obtienen dos nuevos problemas. A la obtencin de nuevos problemas
se le llama ramificacin. Acto seguido se procede a buscar una solucin
entera en cada uno de estos problemas, para lo cual se procede (para cada
uno de ellos) como en la iteracin inicial, usando PL para resolver los
problemas de programacin lineal correspondientes.
B&B utiliza para su anlisis una cota inferior (para problemas de
maximizacin), que denominaremos aqu CI. B&B solo examina aquellos
problemas cuya solucin proporcionada por PL estn por arriba de CI. De
esta forma es necesario que el algoritmo de B&B determine una CI lo ms
pronto posible. Una forma comn es empezar con una CI para los valores de
las X's iguales a su cota inferior. No obstante existen rutinas de B&B que
esperan a obtener una CI igual a la primera solucin que solo tenga valores
enteros. Ntese que en el caso de la iteracin inicial el proceso termina si la
solucin tiene solo valores enteros. B&B cambia su CI cuando detecta que
existe un problema con una solucin entera cuyo valor de la funcin objetivo
es mayor que la CI actual.
Una vez que B&B ha determinado una CI, si esta no corresponde a la
iteracin inicial, procede a obtener nuevos problemas mediante el proceso de

17

particin. Solamente se analizan aquellos problemas que tengan como


solucin un valor de la funcin objetivo mayor que la ltima CI determinada.
B&B termina cuando no existen ms problemas por analizar.
El

modelo

matemtico

para

programacin

lineal

entera

es

sencillamente el modelo de programacin lineal con la restriccin adicional


de que las variables deben tener valores enteros (y la suposicin de
divisibilidad se cumple para el resto), el modelo se conoce como de
programacin entera mixta (PEM).
La forma general del problema que se va a estudiar es:
Paso inicial: se establece Z* = - infinito. Se aplica el paso de acotamiento,
el paso de sondeo y la prueba de optimalidad que se describen despus del
problema completo.

Si no queda sondeado, se clasifica este problema

como el nico subproblema restante para realizar la primera iteracin


completa.
Pasos para cada iteracin:
1.

Ramificacin: entre los subproblemas restantes (no sondeados), se

selecciona el de ms reciente creacin. (Los empates se rompen con la cota


ms grande). Entre las variables restringidas a enteros, que tienen valores
no enteros en la solucin ptima de la soltura de PL del subproblema, se
elige la primera en el orden natural, como la variable de ramificacin. Sea xl,

18

esta variable y xl*, su valor en esta solucin. Se ramifica desde el nodo del
subproblema

para

crear

dos

nuevos

subproblemas

agregando

las

restricciones respectivas xl <= [xl*] y xl >= [xl*] + 1.


2.

Acotamiento: para cada subproblema se obtiene su cota aplicando el

mtodo simplex (o el mtodo simplex dual si se reoptimiza) a su soltura de


PL y utilizando el valor de Z para la solucin ptima resultante.
3.

Sondeo:

para cada nuevo subproblema se aplican las pruebas de

sondeo que se dan en seguida y se descartan aquellos subproblemas que


quedan sondeados por cualquiera de las pruebas.
prueba 1: su cota <= Z*, donde Z* es el valor de Z en la solucin de apoyo
actual.
prueba 2: su soltura de PL no tiene soluciones factibles.
prueba 3: la solucin ptima para su soltura de PL tiene valores enteros
para todas sus variables restringidas a enteros. (Siesta solucin es mejor que
la de apoyo, se convierte en la nueva solucin de apoyo y se vuelve a aplicar
la prueba 1 con la nueva Z* a todos los subproblemas no sondeados.)
Prueba de optimalidad:

el proceso se detiene cuando no hay

subproblemas restantes; la solucin incumbente actual es ptima. De otra


manera, se realiza otra iteracin.

19

Ejemplo:
Max Z=5X1+4X2
X1+X25
10X1+6X245
X1,X2 0

Desarrollo:

X1=3.75, X2=1.25, Z=23.75


X1 3

X1 4

X1=3, X2=2, Z=23

X1=4, X2=0.83, Z=23.33


X2 0

X2 1

X1=4.5, X2=0, Z=22.5


X1 4

X1 5

X1=4, X2=0, Z=20

Sin Solucin

Sin Solucin

Podemos observar que en dos ramas de la resolucin no se puede


llegar a una solucin pero luego al realizar otra iteracin, por la otra rama
obtuvimos una solucin mejor.

20

Captulo 3
TCNICAS DE OPTIMIZACION METAHEURISTICA
3.1 Resea de tcnicas de optimizacin meta heurstica
El problema de encontrar el valor ptimo (mximo o mnimo) de una
funcin definida sobre un conjunto finito (sea este muy grande o no) de
puntos se conoce como problema de optimizacin combinatoria. Si tenemos
una funcin f definida sobre un conjunto discreto S; la siguiente formulacin:
max/min f (x)
s.a.r
xS
describe el problema de optimizacin combinatoria de minimizar f sobre S.
Por lo general la notacin ms usada, f se conoce como funcin objetivo, y a
S se le denomina espacio de bsqueda. A los elementos del espacio de
bsqueda se les llama soluciones factibles.
En la mayora de los casos, la forma de f y la estructura discreta de S
impiden la aplicacin de mecanismos de solucin analtica comunes. La

21

conocida tcnica bsica de programacin lineal, el algoritmo simplex, tendra


el obstculo de la falta de linealidad de f y la estructura no continua de S.
Al encontrarse en un caso como este, lo que se podra realizar es
evaluar f en cada punto de S

y buscar el ptimo. Este mecanismo de

solucin se le llama exploracin exhaustiva, conduce a soluciones buenas en


el caso del que el tamao de S sea pequeo, teniendo en cuenta el beneficio
de tener la tecnologa de computadoras.
Pero para problemas de mayor tamao, o cierto tipo de problemas
donde la cardinalidad de S depende exponencialmente de uno ms
parmetros

determinados

(problemas

NP-completos),

la

exploracin

exhaustiva no tiene aplicabilidad prctica debido al gran esfuerzo


computacional que hara, lo que tomara un tiempo de ejecucin demasiado
largo tanto as como siglos o incluso milenios. Aqu es donde las heursticas
de bsqueda local toman fuerza.
3.1.1 Mtodos de Bsqueda local
Como se dijo anteriormente los mtodos de bsqueda local

son

heursticas para resolver problemas de optimizacin combinatoria en los


cuales los espacios de bsqueda son demasiados grandes para utilizar la
exploracin exhaustiva. Debido a que son heursticos, estos mtodos no

22

siempre conducirn a una solucin ptima, pero producen soluciones buenas


en un tiempo razonable.

Todo mtodo de bsqueda local parte de una solucin factible inicial y


obtiene, con esta soluciones que al evaluarlas en la funcin objetivo nos den
un mejor valor. Cada solucin tiene un conjunto de soluciones asociadas, que
denominaremos entorno o vecindad de x. Cada solucin del entorno, puede
alcanzarse directamente a partir de x mediante un movimiento.
La definicin de entorno / movimiento, depende en gran medida de la
estructura del problema a resolver as como de la funcin objetivo. Tambin
se pueden definir diferentes criterios para seleccionar una nueva solucin del
entorno. Uno de los criterios ms simples consiste en tomar la solucin con
mejor evaluacin de la funcin objetivo, siempre que la nueva solucin sea
mejor que la actual; este criterio es conocido como Glotn. El algoritmo se
detiene cuando la solucin no puede ser mejorada en su vecindad, por lo que
es un ptimo local del problema con respecto al entorno definido. Es bien
probable que la solucin encontrada no sea el ptimo global debido al
mtodo utilizado.
Esta limitacin de los algoritmo glotones es el punto de inicio de
muchas de las tcnicas meta heursticas basadas en la bsqueda local:

23

evitar quedar atrapadas en un ptimo local lejano del global. Por lo que se
permite que se realicen movimientos que empeoren la funcin objetivo. Esto
plantea dos problemas. El primero, al permitir movimientos de mejora y de no
mejora, el procedimiento se puede ciclar, revisando y volviendo a soluciones
ya vistas. Segundo, hay que establecer un criterio de parada ya que podra
iterar indefinidamente debido a las caractersticas del procedimiento.
Dado un X0 S fijo , el conjunto de todas las soluciones factibles que
pueden obtenerse a partir del mismo se conoce como la vecindad X 0 y se
denotar de aqu en adelante como V(X 0 ).
Algoritmo de bsqueda local
Generar una solucin inicial X0 S

Hacer
Generar V(X0 )
Elegir X0 V(X0 )

X0 : = X
Mientras X0 no satisfaga un criterio de parada.

24

La diferencia entre cada uno de los mtodos radica principalmente en


la forma de seleccionar el elemento x de la vecindad.

3.1.2 Recocido Simulado


Este mtodo es uno de los ms conocidos de la familia de los de
Monte Carlo en los cuales la aceptacin de tales movimientos e hace
dependiente de alguna distribucin de probabilidad.
Este procedimiento se basa en una analoga con el comportamiento
de un sistema fsico al someterlo a un bao de agua caliente. S. Kirkpatrick y
otros se inspiraron en una tcnica experimental empleada en la metalurgia
para obtener slidos en estados bien ordenados, la misma que se conoce
como recocido: en esta tcnica el material es llevado al estado lquido y
luego se enfra muy lentamente con posibles aumentos temporales de
temperatura hasta solidificarlo. De esta manera se obtienen estructuras muy
uniformes, con caractersticas de niveles energticos globales bajos. La
simulacin produjo buenos resultados y este fue el punto de partida para el
planteamiento de un mtodo general para la solucin de problemas de
optimizacin combinatoria. El recocido simulado ha sido probado con xito

25

en numerosos problemas de optimizacin, mostrando gran habilidad para


evitar quedar atrapado en ptimos locales.
3.2 Tcnica de Bsqueda de Hormigas
Para explicar de una mejor manera esta tcnica nos valdremos de la
siguiente analoga de las hormigas guerreras:
Era una vez en el reino de los insectos, que por desgracia se
encontraban en guerra dos grupos de hormigas, las hormigas negras contra
las hormigas rojas.
A poco tiempo de iniciar la guerra en el tnel principal del hormiguero
de las hormigas rojas se sucita la siguiente situacin: se encuentran de frente
un par de hormigas, una sale hacia la guerra, la otra viene de ella; por la
situacin blica en que viven en ese momento las hormigas rojas no han
tenido tiempo de hacer el tnel de tal forma que puedan transitar las
hormigas de manera adecuada y, en estos momentos en dicho tnel slo
cabe a lo ancho una hormiga a la vez, por lo que para que puedan pasar una
hormiga es necesario que salte por encima de ella; adems cuando se
alcanzan a ver las dos hormigas slo hay entre ellas un espacio para que
quepa una de ellas, adems para que se salten tienen que ponerse de
acuerdo por lo que tienen que estar de frente a frente la hormiga que va a
saltar como la hormiga que va a esperar que la salten, pues de lo contrario

26

no sabran quin salta a quin. Como la organizacin de las hormigas es muy


buena siempre los grupos que salen y llegan a combatir son del mismo
nmero, por lo que con un par de hormigas no hay problema son pocos los
movimientos que se tienen que hacer, pero cuando se encuentran frente a
frente dos pares de hormigas frente a frente el nmero de movimientos
crece, cuando son tres pares crece an ms, y as sucesivamente.
La reina observa esto e imposibilitada en estos momentos para
mandar ensanchar el tnel por causa de la guerra, y viendo que es
importante que cuando tienen que entrar las hormigas que vienen de la
guerra en el mismo tnel con las hormigas que van a la guerra, orden a sus
sabios que le dijeran la forma ms rpida de que los grupos que se
encuentren de frente sigan su camino unos hacia la guerra y otros a
descansar de la guerra.
Entonces los sabios se pusieron a estudiar el problema y vieron que el
menor nmero de hormigas que se podan encontrar en la situacin
planteada, era un par, o sea dos hormigas y para ese caso eran 3
movimientos (que la hormiga que sale avance hasta donde esta la hormiga
que entra, la hormiga que sale le dice a la hormiga que entra "sltame!" y
despus de esto ella puede avanzar hacia donde estaba la hormiga que
entra y puede salir a la guerra), partiendo de esa base pensaron que la
hormiga que va hasta delante del grupo de hormigas que sale deba

27

determinar el nmero de movimientos que deban hacer, para eso ella


contaba con todo el apoyo de su grupo (digamos que era un general y no
quera trabajar mucho), entonces como el nico valor que se conoce es el de
un par, al nmero de elementos del grupo le resto una unidad y a la hormiga
que estaba atrs de ella le dijo que le preguntara ese nmero menos uno a la
hormiga que estaba atrs de ella, y as sucesivamente hasta llegar a la ltima
hormiga y que cuando ella les dijera el resultado le sumaran el producto de
dos ( pues son pares) por el nmero que se iban transmitiendo de una a otra
hormiga y le sumara uno pues existe un hueco para realizar movimientos, de
esta manera determinara el nmero total de movimientos cuando se
encontrarn de frente los dos grupos de hormigas en el tnel principal del
hormiguero.
Despus de saber el nmero de movimientos que tendran que realizar los
grupos que se encuentran en el tnel (pensaron los sabios), era determinar la
forma en que se iban a realizar dichos movimientos.
Para eso vieron lo siguiente :
1. Se tienen que determinar los siguientes movimientos mover una
hormiga determinada, en un sentido (izquierda o derecha), de un
grupo especfico (el que entra o el que sale).
2. Enumerar las hormigas de cada uno de los grupos de 1, hasta el
ltimo y del ltimo hasta 1.

28

Tambin

tras

mltiples

ejercicios

observaciones

vieron

que

el

comportamiento era el siguiente :


1. Desde la primera hormiga del grupo hasta la ltima hormiga del grupo
(a la hormiga que actualmente nos refiramos le llamaremos Ana) se
tienen que hacer la siguiente pregunta :
2. Ana se tiene que preguntar: soy un elemento par?, s es as el
sentido para el movimiento ser a la derecha, y un individuo de mi
grupo ser el que se mover, y el individuo que saltar ser del grupo
contrario al mo; en caso contrario el sentido para el movimiento ser a
la izquierda, un individuo del grupo contrario ser el que se mover y
un individuo de mi grupo ser el que saltar.
3. A continuacin se llevar a cabo el movimiento en el sentido que se
determin anteriormente, por un individuo del grupo que tambin se
determin que saltar, el elemento ser igual al nmero total de
elementos del grupo - el nmero que le corresponda a Ana.
4. Despus desde la primera hormiga hasta Ana (a esta hormiga la
llamaremos Claudia) las hormigas debern hacer lo siguiente : Saltar
la hormiga que le corresponda el nmero total de hormigas en el grupo
menos el nmero de hormiga que sea Claudia, esta hormiga deber
ser del grupo de salto que se determin dos pasos antes, saltar a la
hormiga cuyo nmero sea igual al nmero total de hormigas en el

29

grupo menos el nmero de hormiga que sea Ana ms el nmero de


hormiga que sea Claudia, esta hormiga ser del grupo contrario al que
saltar.
5. Despus de que se Ana sea igual al nmero total de hormigas en el
grupo, se deber hacer un movimiento en el sentido que se determin
la ltima vez en el paso 2; el individuo que se mover ser igual al
nmero de hormigas en el grupo, y el grupo al que pertenece dicha
hormiga ser de igual forma el que se determin la ltima vez en el
paso 2.
6. Ahora desde la penltima hormiga hasta la primera (a quin
llamaremos una vez Ana) se debern realizar la pregunta de la
siguiente forma :
7. Ana se tiene que preguntar: soy un elemento par?, s es as el
sentido para el movimiento ser a la izquierda, y un individuo del
grupo contrario ser el que se mover, y el individuo que saltar ser
de mi grupo; en caso contrario el sentido para el movimiento ser a la
derecha, un individuo de mi grupo ser el que se mover y un
individuo del grupo contrario ser el que saltar.
8. Despus desde la primera hormiga hasta Ana (a esta hormiga la
llamaremos Claudia) las hormigas debern hacer lo siguiente : Saltar

30

la hormiga que le corresponda el nmero de hormiga que sea Ana


menos el nmero de hormiga que sea Claudia, esta hormiga deber
ser del grupo de salto que se determin dos pasos antes, saltar a la
hormiga cuyo nmero sea igual al nmero de hormiga que sea Claudia
ms uno , esta hormiga ser del grupo contrario al que saltar.
9. A continuacin se llevar a cabo el movimiento en el sentido que se
determin en el paso 7, por un individuo del grupo que tambin se
determin que saltar en dicho paso , el elemento ser igual al
nmero de hormiga que sea Ana.
3.3 Tcnica de Algoritmos Genticos
Los Algoritmos Genticos (AG) fueron introducidos por John Holland
en 1970 inspirndose en el proceso observado en la evolucin natural de los
seres vivos.
Los bilogos han estudiado

en profundidad los mecanismos de la

evolucin, y aunque quedan parcelas por entender, muchos aspectos estn


bastantes explicados. De forma muy general podemos decir que en la
evolucin de los seres vivos el problema al que cada individuo se enfrenta
cada da es la supervivencia. Para ello cuenta con las habilidades innatas
provistas en su material gentico. A nivel de los genes, el problema es el de
buscar aquellas adaptaciones beneficiosas en un medio hostil y cambiante.

31

Debido en parte a la seleccin natural, cada especie gana cierta cantidad de


conocimiento, el cual es incorporado a la informacin de sus cromosomas.
En otras palabras, la evolucin tiene lugar en los cromosomas, en
donde est codificada la informacin del ser vivo. La informacin almacenada
en el cromosoma vara de unas generaciones a otras. En el proceso de
formacin de un nuevo individuo, se combina la informacin cromosmica de
los progenitores aunque la forma exacta en que se realiza es an
desconocida.
Lo ms sorprendente y til de los AG es que no es necesario disponer
de un conocimiento profundo del problema a resolver, sino que se parte de
estructuras simples que interactan, dejando que sea la evolucin quien
haga el trabajo. Un AG es un mtodo de programacin opuesto al habitual:
en vez de descomponer un problema en sub-problemas, creamos los subproblemas ms sencillos que podamos imaginar y dejamos que se combinen
entre s.
Otra gran ventaja de los AG es que son adaptativos: son capaces de
solucionar problemas que cambian en el tiempo.
La gran sencillez de los AG los hace muy atractivos para los
programadores, pero existen casos en los que puede ser difcil, imposible o
poco prctico aplicarlos. Se podra hablar del problema de la variedad, el

32

problema de la reproduccin y el problema de la seleccin, para los que se


van a proponer algunas soluciones.
Pasos de un Algoritmo Gentico :
1.-Se genera un conjunto de 1-N soluciones al problema. Normalmente,
estas entidades se generan al azar.
2.-Se evalan las soluciones existentes, de manera que se eliminan unas y
se mantienen otras (o se limita el tiempo de ejecucin).
3.-Se permite la reproduccin o combinacin de genes (normalmente por
parejas) de las entidades existentes.
4.-Se efectan mutaciones (cambios al azar) de los nuevos patrones, segn
una tasa determinada.
5.-Se contina en el paso 2
Los algoritmos genticos tienen la ventaja de ofrecer un mecanismo
adaptativo de resolucin de problemas, de forma que aunque el problema
cambie, ste se pueda seguir resolviendo. "Resolver un problema
cambiante", llevado al lmite, es igual a "Resolver cualquier problema". Segn
este planteamiento podramos pensar en disear un esquema comn que
facilite a los agentes aprender en cualquier entorno de problema.

33

Captulo 4
Resea del Mtodo Tab
Los orgenes de la bsqueda tab se extienden hasta la dcada de los
70. En 1986, Fred Glover lo desarroll en su forma actual. Las ideas bsicas
fueron esbozadas tambin por Hansen . Muchas pruebas experimentales han
mostrado que la bsqueda tab puede ser considerada como una tcnica de
optimizacin imprescindible para el estudio de gran variedad de problemas.
Gracias a su flexibilidad puede derrotar a muchas de las tcnicas clsicas.
Hasta ahora no hay una explicacin formal de su buen comportamiento.
La bsqueda tab intenta solventar el problema de que el algoritmo
quede atrapado en un ptimo local. Se basa en la utilizacin de estructuras
de memoria flexibles, junto con restricciones estratgicas y niveles de
aspiracin, como medios para explorar el espacio de soluciones posibles. Se
llama solucin a una configuracin de las variables independientes que den
un resultado. Para una correcta utilizacin se requiere un buen modelado del
problema en el que se desea aplicar.
El Mtodo Tab (MT) pertenece a una familia de heursticas de
optimizacin local. Su memoria flexible permite que las decisiones tomadas
en cada iteracin se vean afectadas por aquellas que se tomaron en
iteraciones anteriores. Ha sido calificado a menudo como una meta -

34

heurstica o heurstica de alto nivel, debido a que es independiente de un


problema dado.
Este mtodo toma

de la Inteligencia Artificial (IA) el concepto de

memoria y lo implementa mediante estructuras simples con el objetivo de


dirigir la bsqueda teniendo en cuenta la historia de sta. Es decir, el
procedimiento trata de extraer informacin de lo sucedido y actuar en
consecuencia. En este sentido puede decirse que hay un cierto aprendizaje y
que la bsqueda es inteligente. El principio del MT podra resumirse como:
Es mejor una mala decisin basada en informacin que una buena
decisin al azar, ya que, en un sistema que emplea memoria, una mala
eleccin basada en una estrategia proporcionar claves tiles para continuar
la bsqueda. Una buena eleccin fruto del azar no proporcionar ninguna
informacin para posteriores acciones.
La idea bsica consiste en permitir el paso de una solucin a otra, que
denominaremos movimiento, an cuando esta ltima empeore el resultado.
Para evitar el posible ciclado se introduce la lista tab. En ella se guarda
durante cierto tiempo, un atributo que permita identificar la solucin o el
movimiento realizado. As, todo movimiento que tenga un atributo en la lista
tab se considera prohibido, y no se permite su realizacin.

35

Al estar constituida la lista tab por atributos y no por el movimiento o


solucin, se puede prohibir pasar a soluciones ptimas. Para evitar esto, se
utilizan los niveles de aspiracin o promocin de un movimiento. Si un
movimiento es tab, y por tanto prohibido, y supera los criterios de
aspiracin, entonces se libera de su condicin tab y se permite su
ejecucin.
Restricciones Tab
Controla lo que entra en la lista tab. Con ella se crea la lista tab, cuya
nica funcin es impedir que se repita la bsqueda en una solucin de
prueba que ya se ha explorado. Un movimiento puede tener atributos
mltiples. Es importante la eleccin correcta de stos. Si el atributo elegido
es muy general puede que permita pocos movimientos; si es muy especfico,
puede impedir la salida de una regin con un mnimo local. En cuanto al
tamao de la lista tab, si es demasiado pequea, la probabilidad de la
entrada en una bsqueda cclica es grande. En cambio, si la longitud es
demasiado grande, entonces la bsqueda puede alejarse de posibles buenas
soluciones antes de que esas regiones sean exploradas. La lista tab
funciona con el procedimiento FIFO, el primero en entrar en la lista, es el
primero en abandonarla. La principales estrategias son las siguientes:
Recency-based: Consiste en una lista formada por los atributos de las
ltimas soluciones visitadas.

36

Reglas estticas: La longitud de la lista se mantiene


constante.

Reglas dinmicas: La longitud vara.

Frequency-based: Consiste en medir la frecuencia con que ocurren


ciertos atributos, como por ejemplo, el nmero de veces que una
variable ha tomado cierto valor.
Estrategias de aprendizaje a medio y largo plazo
Se implementan mediante funciones de memoria de medio y largo
plazo. La funcin a medio plazo proporciona un elemento de intensificacin.
Opera guardando las mejores caractersticas de un nmero de movimientos
generados durante la ejecucin del algoritmo. Puede ser considerado una
estrategia de aprendizaje que busca nuevas soluciones que presentan
caractersticas

parecidas

aquellas

guardadas.

Esto

se

consigue

restringiendo aquellos movimientos que no poseen caractersticas favorables.


Estrategia a corto plazo (short term)
Dirige la interaccin entre las estrategias anteriores. Aparte de estas
estrategias, puede haber tambin una estrategia de aprendizaje que consiste
en el uso de funciones de memoria a medio y largo plazo. Esta estrategia
recoge informacin durante la ejecucin de la bsqueda tab que ser usada
para dirigirla en siguientes ejecuciones.

37

Estrategia de intensificacin
Despus de haber visitado varias soluciones, en ocasiones puede
observarse que las mejores soluciones tienen alguna propiedad en comn.
Conviene entonces guardar en memoria estas soluciones para someterlas a
un anlisis ms intenso, por ejemplo, cuando la bsqueda no produzca
mejora.
Estrategia de diversificacin
Es el procedimiento contrario a la intensificacin. Es necesaria para
permitir una bsqueda ms efectiva en todo el espacio de soluciones. Con
ellas se pretende permitir el paso a soluciones que estn alejadas de la
actual, es decir, que permita una adecuada exploracin. Un mtodo sencillo
para hacerlo consiste en modificar la funcin objetivo f, de modo que para
soluciones alejadas de la actual decrezca y crezca para las ms cercanas.
MT comienza de la misma forma que cualquier procedimiento de
bsqueda local, procediendo iterativamente de una solucin x a otra y en la
vecindad de la primera: N(x). Sin embargo, en lugar de considerar todo la
vecindad de una solucin, MT define la vecindad reducida N*(x) como
aquellas soluciones disponibles de la vecindad de x. As se considera que a
partir de x, slo las soluciones de la vecindad reducida son alcanzables.

38

Existen muchas maneras de definir la vecindad reducida de una


solucin. La ms sencilla consiste en etiquetar como tab las soluciones
previamente visitadas en un pasado cercano. Esta forma es la conocida a
corto plazo (short term memory) y est basada en guardar en una lista tab
T las soluciones visitadas recientemente (Recency-based). As en una
iteracin determinada, el entorno reducido de una solucin se obtendra
como el entorno usual eliminando las soluciones etiquetadas como tab.
El objetivo principal de etiquetar las soluciones visitadas como tab es
el de evitar que la bsqueda se cicle. Por ello se considera que tras un cierto
nmero de iteraciones la bsqueda est en una regin distinta y puede
liberarse del estatus tab (pertenencia a T) a las soluciones antiguas. De
esta forma se reduce el esfuerzo computacional de calcular la vecindad
reducida en cada iteracin. En los orgenes de MT se sugeran listas de
tamao pequeo, actualmente se considera que las listas pueden ajustarse
dinmicamente segn la estrategia que se est utilizando.
Se define un criterio de aspiracin como aquellas condiciones que,
de satisfacerse, permitiran alcanzar una solucin aunque tenga estatus tab.
Una implementacin sencilla consiste en permitir alcanzar una solucin
siempre que mejore a la mejor almacenada, aunque est etiquetada tab. De
esta forma se introduce cierta flexibilidad en la bsqueda y se mantiene su
carcter agresivo.

39

Es importante considerar que los mtodos basados en bsqueda local


requieren de la exploracin de un gran nmero de soluciones en poco
tiempo, por ello es crtico el reducir al mnimo el esfuerzo computacional de
las operaciones que se realizan a menudo. En ese sentido, la memoria a
corto plazo de MT est basada en atributos en lugar de ser explcita; esto es,
en lugar de almacenar las soluciones completas (como ocurre en los
procedimientos de bsqueda exhaustiva) se almacenan nicamente algunas
caractersticas de stas.
Los principales criterios de aspiracin son:
Aspiracin por defecto
Si todos los movimientos posibles estn clasificados como tab y no
aparece como admisible por otro criterio de aspiracin, entonces se acepta el
movimiento a la solucin menos tab. Esta puede ser una solucin que
pierde su condicin tab por ser la que lleve ms tiempo en la lista.
Aspiracin por objetivo global
Una solucin de prueba es eliminada de la lista tab cuando muestra
el mejor resultado de todos los encontrados hasta entonces.

40

Aspiracin por objetivo regional


Una solucin de prueba es eliminada de la lista tab cuando muestra
el mejor resultado encontrado en la regin en la que se encuentra.
Aspiracin por direccin de bsqueda
Un atributo puede ser aadido o eliminado de una solucin (sin
importar su condicin tab), si la direccin de bsqueda no ha cambiado
(mejore o no los resultados).
Aspiracin por influencia
El estado tab de un movimiento poco influyente puede ser revocado
en el caso que se haya efectuado un movimiento de alta influencia desde el
momento en que se estableci la condicin tab de dicho movimiento poco
influyente.
La memoria mediante atributos produce un efecto ms sutil y
beneficioso en la bsqueda, ya que un atributo o grupo de atributos identifica
a un conjunto de soluciones, del mismo modo que los hiperplanos utilizados
en los algoritmos Genticos. As, un atributo que fue etiquetado como tab
por pertenecer a una solucin visitada hace n iteraciones, puede impedir en
la iteracin actual, el alcanzar una solucin por contenerlo, aunque sta sea
muy diferente de la que provoc el que el atributo fuese etiquetado. Esto

41

provoca, a largo plazo, el que se identifiquen y mantengan aquellos atributos


que inducen una cierta estructura beneficiosa en las soluciones visitadas.
Con los elementos descritos puede disearse un algoritmo bsico de
MT para un problema de Optimizacin dado. Sin embargo, MT ofrece
muchos ms elementos para construir algoritmos realmente potentes y
eficaces. A menudo, dichos elementos han sido ignorados en muchas
aplicaciones y actualmente la introduccin de estos en la comunidad
cientfica constituye un reto para los investigadores del rea.
Un algoritmo MT est basado en la interaccin entre la memoria a
corto y la memoria a largo plazo. Ambos tipos de memoria llevan asociadas
sus propias estrategias y atributos, y actan en mbitos diferentes. Como ya
hemos mencionado la memoria a corto plazo suele almacenar atributos de
soluciones recientemente visitadas, y su objetivo es explorar a fondo una
regin dada del espacio de soluciones. En ocasiones se utilizan estrategias
de listas de candidatos para restringir el nmero de soluciones examinadas
en una iteracin dada o para mantener un carcter agresivo en la bsqueda.
La memoria a largo plazo almacena las frecuencias u ocurrencias de
atributos en las soluciones visitadas tratando de identificar o diferenciar
regiones. La memoria a largo plazo tiene dos estrategias asociadas:
Intensificar y Diversificar la bsqueda. La intensificacin consiste en regresar
a regiones ya exploradas para estudiarlas ms a fondo. Para ello se favorece

42

la aparicin de aquellos atributos asociados a buenas soluciones


encontradas. La Diversificacin consiste en visitar nuevas reas no
exploradas del espacio de soluciones. Para ello se modifican las reglas de
eleccin para incorporar a las soluciones atributos que no han sido usados
frecuentemente.
Existen otros elementos ms sofisticados dentro de MT que, aunque
poco probados, han dado muy buenos resultados en algunos problemas.
Entre ellos se pueden destacar:
Movimientos de Influencia
Son aquellos movimientos que producen un cambio importante en la
estructura de las soluciones. Usualmente, en un procedimiento de bsqueda
local, la bsqueda es dirigida mediante la evaluacin de la funcin objetivo.
Sin embargo, puede ser muy til el encontrar o disear otros evaluadores
que guen a sta en determinadas ocasiones. Los movimientos de influencia
proporcionan una evaluacin alternativa de la bondad de los movimientos al
margen de la funcin objetivo. Su utilidad principal es la determinacin de
estructuras subyacentes en las soluciones. Esto permite que sean la base
para procesos de Intensificacin y Diversificacin a largo plazo.

43

Oscilacin Estratgica
La Oscilacin Estratgica opera orientando los movimientos en
relacin a una cierta frontera en donde el mtodo se detendra normalmente.
Sin embargo, en vez de detenerse, las reglas para la eleccin de los
movimientos se modifican para permitir que la regin al otro lado de la
frontera sea alcanzada. Posteriormente se fuerza al procedimiento a regresar
a la zona inicial. El proceso de aproximarse, traspasar y volver sobre una
determinada frontera crea un patrn de oscilacin que da nombre a esta
tcnica. Una implementacin sencilla consiste en considerar la barrera de la
factibilidad / infactibilidad de un problema dado. Implementaciones ms
complejas pueden crearse identificando determinadas estructuras de
soluciones que no son visitadas por el algoritmo y considerando procesos de
construccin / destruccin asociados a stas. La oscilacin estratgica
proporciona un medio adicional para lograr una interaccin muy efectiva
entre intensificacin y diversificacin.
Elecciones Probabilsticas
Normalmente MT se basa en reglas sistemticas en lugar de
decisiones al azar. Sin embargo, en ocasiones se recomienda aleatorizar
algunos procesos para facilitar la eleccin de buenos candidatos o cuando no
est clara la estrategia a seguir (quiz por tener criterios de seleccin
enfrentados). La seleccin aleatoria puede ser uniforme o seguir una

44

distribucin de probabilidad construida empricamente a partir de la


evaluacin asociada a cada movimiento.
Umbrales Tab
El procedimiento conocido como Tab Thresholding (TT) se propone
aunar ideas que provienen de la Oscilacin Estratgica y de las Estrategias
de Listas de Candidatos en un marco sencillo que facilite su implementacin.
El uso de la memoria es implcito en el sentido que no hay una lista tab en
donde anotar el status de los movimientos, pero la estrategia de eleccin de
los mismos previene el ciclado. TT utiliza elecciones probabilsticas y
umbrales en las listas de candidatos para implementar los principios de MT.
Reencadenamiento de Trayectorias
Este mtodo trata de volver a unir dos buenas soluciones mediante un
nuevo camino. As, si en el proceso de bsqueda hemos encontrado dos
soluciones x e y con un buen valor de la funcin objetivo, podemos
considerar el tomar x como solucin inicial e y como solucin final e iniciar un
nuevo camino desde x hasta y. Para seleccionar los movimientos no
consideraremos la funcin objetivo o el criterio que hayamos estado
utilizando sino que iremos incorporando a x los atributos de y hasta llegar a
sta. Por eso esperamos que alguna de las soluciones intermedias que se
visitan en este proceso de Entorno Constructivo sea muy buena. En algunas
implementaciones se ha considerado el explorar el entorno de las soluciones

45

intermedias para dar mas posibilidad al descubrimiento de buenas


soluciones.
Es importante destacar el hecho de que muchas de las aplicaciones
basadas en MT no utilizan los ltimos elementos descritos, por lo que son
susceptibles de ser mejoradas. Al mismo tiempo, los xitos de las numerosas
implementaciones del procedimiento han promovido la investigacin hacia
formas de explotar con mayor intensidad sus ideas subyacentes. En este
territorio

podemos

destacar

los

ltimos

trabajos

de

Modelos

entrenamiento y aprendizaje tab, Maquinas tab y Diseo tab.


Algoritmo Mtodo Tab
Paso 0: Inicializacin.
X := solucin inicial factible
tmax := mximo nmero de iteraciones
Mejor solucin:= X
nmero de soluciones = t := 0
lista tab := vaca
Paso 1: Parada
Si cualquier movimiento posible de la solucin actual es tab o si
t = tmax
entonces parar. Entregar Mejor solucin.

de

46

Paso 2: Mover
Elegir el mejor movimiento no-tab factible x(t+1)
Paso 3: Iteracin.
Modificar X(t+1) := X(t) + x(t+1)
Paso 4: Reemplazar el mejor.
Si el valor de la funcin objetivo de X(t+1) es superior
a Mejor solucin entonces a Mejor solucin := X(t+1)
Paso 5: Actualizar Lista Tabu.
Eliminar desde la lista tabu cualquier movimiento que ha permanecido
un suficiente nmero de iteraciones en la lista.
Agregar

un

conjunto

de

inmediato desde X(t+1) a X(t)


Paso 6: Incrementar
t := t+1, Volver a Paso 1.

movimientos

que

involucran

un

retorno

47

Captulo 5
DISEO E IMPLEMENTACIN DEL MODELO
5.1 Diseo del Modelo Meta-heurstico para el problema de ruteo de
vehculos (VRP por sus siglas en ingls)
En el problema de ruteo de vehculos bajo restricciones de capacidad
y distancia, el diseo, reduce el costo por ruta que cada uno de los vehculos
debe recorrer para satisfacer a cierto nmero de clientes. En este problema
todas las rutas inician y terminando en un depsito central o terminal, la cual
brinda algn tipo de prestacin a ciertos consumidores. Cada cliente es
cubierto exactamente por una ruta de vehculo. La demanda de cada
vehculo no debe exceder de la capacidad del vehculo.

2
6

1
0
8
Depsito terminal

Cliente

48

Para el problema se utilizar la siguiente notacin:


n = Nmero de clientes
N = Conjunto de Clientes, N= {1,...,n}
qi = La demanda del cliente i N (i=0 denota la terminal, q0=0)

cij = El tiempo de viaje (distancia) entre los clientes i y j, c ij = cji i,j N (cii =
, i N)

v = el numero de vehculos, la cual es la variable de decisin de nuestro


problema
V= Conjunto de vehculos, V={1,...,v}
Q= capacidad del vehculo
Rp= Conjunto de cliente servido por el vehculo p.
C(Rp)= El costo (distancia) del viaje ptimo.
L= El lmite superior est predeterminado sobre longitud mxima del
recorrido.
S= La solucin factible est definida como S= {R 1,..., Rv}
C(S)= La suma total de cada distancia recorrida, C(R p) para todo p V

49

Nuestra meta es encontrar una solucin ptima que minimice la distancia


total del viaje y satisfaga:
v

R p R q , p q V

p 1

C(Rp )

iR p

(c

iR p {0}

i (i )

)L

p V

C ( s)

C(R
pV

p V

donde ={1,..., P,..., V} es un ptimo del problema del agente viajero (TSP
por sus siglas en ingls) que minimiza la distancia del recorrido para cada p
V.

5.1.1 Estrategia prohibida


Esta estrategia de bsqueda clasifica ciertos movimientos como
prohibidos (o tab) basado en condiciones tab las cuales estn identificadas
por atributos de un movimiento. Para evitar que se cicle, el proceso revisa
que soluciones que han sido visitadas anteriormente, no sean nuevamente
visitadas, pero para poder realizar esta operacin, se requiere un gran uso de
memoria y esfuerzo computacional.

50

La estructura de datos de la lista tab, TABL, toma la forma de una


matriz de (n+1) x v (n filas para los clientes, una para el cliente null que est
involucrado en el proceso (0,1) o (1,0) y v columnas una por cada ruta R p. Un
movimiento consiste en dos pares (i, Rp) y (j,Rq) la cual identifica que el
cliente i del conjunto de Rp de los clientes de la ruta p ha sido cambiada con
un cliente j de un conjunto Rq, y viceversa. Los atributos (i,Rp) y (j,Rp) luego
del movimiento pasan a ser parte de las restricciones tab, es decir que son
movimientos prohibidos de realizar. Un movimiento es juzgado de tipo tab,
si i retorna a Rp y j retorna a Rq. Esta es una aproximacin para movimientos
prohibidos y las ventajas es que las soluciones pueden ser representadas y
revisadas rpidamente. TABL (i,p) guarda el nmero de iteraciones en las
cual un cliente i es removido de la ruta del conjunto R p. Inicialmente, la matriz
TABL es inicializada con valores negativos altos para evitar falsa
identificacin de clientes como tab durante las iteraciones iniciales.
5.1.2 Estrategia de Liberacin
Cuando mencionamos la estrategia de liberacin no referimos al
manejo de los valores que salen de la lista tab despus de las TS
iteraciones; donde TS es conocido como el tamao de la lista tab. El valor
TS es determinado por una funcin que depende de las caractersticas del
problema y de los movimientos estratgicos seleccionados.

51

El conjunto de movimientos prohibidos es gravado en la lista tab por un


periodo de TS iteraciones. Una simple y rpida validacin del estado del tab
es de gran importancia, especialmente cuando el problema y el tamao de la
lista del tab incrementa. En una iteracin K un movimiento es clasificado
como tab sin ningn i debe retornar a R P ni j debe retornar a R Q durante las
siguientes TS iteraciones. Esto es,
k-TABL(i, p)<|Ts|

k-TABL(j, q)<|Ts|
En la lista denominada TABL, se guarda el nmero de iteracin. El estado
tab de un movimiento potencial puede ser revisado usando las dos simples
operaciones que vimos anteriormente. Con TABL el estatus tab de los
movimientos anteriores son actualizados automticamente opuesta a la
clsica lista circular tab la cual necesita ms controles de ingreso desde la
estrategia de liberacin.
5.1.3 Estrategia a corto plazo
La forma de estrategia a corto plazo es el centro del Tab. Esta est
diseada para la bsqueda del mejor movimiento admitido en la vecindad
basada en las restricciones tab y criterios de aspiracin. Un movimiento es
considerado admisible si este no es un movimiento tab o un movimiento
tab el cual a pasado un nivel de criterio de aspiracin. Las restricciones tab

52

y los criterios de aspiracin juegan un rol contrario obligando y guiando el


proceso de bsqueda. En la lista tab nosotros almacenamos algunos
atributos de los movimientos que representan soluciones. As, algunas
soluciones no tab pueden ser prevenidas por las restricciones tab
cumplidas para esta aproximacin y criterios de aspiracin son probadas
para corregir tal prevencin. La siguiente funcin de espiracin puede ser
usada para permitir una bsqueda en una nueva direccin y garantiza que no
existan ciclos. Dado un Sb sea una de las mejores soluciones encontradas
durante la bsqueda. Dado un S N1 (S) sea una solucin tab y =C(S)C(S). La nueva solucin S es admitida si C(S)<C(S b).
Dos estrategias de seleccin pueden ser seleccionadas como movimientos
admitidos de una lista de movimientos: la estrategia del mejor admitido (BA) y
la estrategia del primer mejor admitido (FBA). La primera estrategia
selecciona el movimiento mejor admitido de una vecindad, la cual mejora o
no la funcin objetivo. El algoritmo tab el cual usa el mejor admitido es
denotado por TS+BA. La estrategia FBA combina la aproximacin de glotn
con la estrategia BA. Esta selecciona el primer movimiento admitido el cual
provee una mejora en el valor objetivo sobre una solucin actual, si todos los
movimientos en la lista de los candidatos son probados sin ninguna mejora
entonces FBA selecciona el mejor movimiento de no mejora gravado. El
algoritmo tab el cual utiliza la estrategia de seleccin FBA es denotado
TS+FBA. La lista de candidatos para el algoritmo TS+FBA es toda la

53

vecindad de N1 (S) y su tamao es dinmico y determinado automticamente


por la bsqueda de si mismo. Esta muestra dinmica es una va deseada
para buscar una vecindad grande. De cualquier forma la lista de candidatos
de movimientos para la estrategia BA es toda la vecindad N 1 (S) y si tamao
es fijo. Esta lista es bien demasiado costosa para la computadora para
problemas de tamao grande, debido a que N 1 (S) debe ser reevaluada para
seleccionar el mejor movimiento despus de cada iteracin. As nosotros
proponemos una estructura de datos la cual solo nos permite un pequeo
nmero de reevaluaciones en orden de identificar un nuevo mejor
movimiento de una iteracin a otra.
5.2 Solucin de Problemas de prueba para tab
A continuacin est la mejor solucin encontrada para 2 problemas
usando el mtodo Tab.
N.- representar el nmero de clientes.
C(S).- Representa la solucin.

Q.- Capacidad restante.

L.- Lmite de la longitud del recorrido.

.- Lmite del tiempo de servicio.

1) N=30

i =90

Q=100

L=520

Solucin Inicial C(S)= 2495.5

54

Rp

Ruta

10

12

0-1-2-3-4-5-6-7-8-9-10-11-12-0

0-13-14-15-16-17-18-19-20-0

10

0-21-22-23-24-25-26-27-28-29-0

70

0-30-0

Al graficar la coordenadas de los clientes luego de obtener la solucin


inicial, las rutas quedan de la siguiente manera:

Recorrido del Vehculo 1

Coordena de cleinte en y

70
60
50
40
30
20
10
0
0

10

20

30

40

Coordenada de cliente en x

50

60

55

Coordenada de cliente en y

Recorrido del Vehculo 2


70
60
50
40
30
20
10
0
0

10

20

30

40

50

60

Coordenada de cliente en x

Coordenada del cliente en y

Recorrido del Vehculo 3


70
60
50
40
30
20
10
0
0

10

20

30

40

50

Coordenada del cliente en x

60

70

56

Coordenada del cliente en y

Recorrido del Vehculo 4


70
60
50
40
30
20
10
0
34

35

36

37

38

39

40

41

Coordenada del cliente en x

Solucin Encontrada: 1308.11

Rp

Ruta

13

0-30-5-3-7-8-11-26-9-6-4-2-1-16-0

0-27-25-24-22-20-13-17-18-0

10

0-29-15-21-23-14-12-10-28-19-0

Las nuevas rutas que se obtuvieron luego de utilizar el mtodo tab,


resultan de la siguiente manera:

Coordenada cliente en y

Recorrido Vehculo 1
70
60
50
40
30
20
10
0
0

10

20

30

40

50

Coordenada cliente en x

60

70

57

Coordenadas del cliente de


x

Recorrido del Vehculo 2


70
60
50
40
30
20
10
0
0

10

20

30

40

50

60

70

Coordenadas del cliente de x

Coordena de cliente en y

Recorrido de Vehculo 3
70
60
50
40
30
20
10
0
0

10

20

30

40

50

60

Coordena de cliente en x

Como se ha podido observar luego de la ejecucin del mtodo tab


con la solucin inicial del cuadro anterior, se redujo de 4 rutas a 3 rutas, es
decir, se disminuy un vehculo, pero hay que observar que la solucin

58

objetivo se ha reducido de 2495,5 a 1308,11 estos valores representan el


costo que tiene el recorrer todas las rutas que se han encontrado. Vemos que
el mtodo ha funcionado de una manera satisfactoria encontrando una buena
solucin.

59

Captulo 6
Conclusiones
1. El mtodo de bsqueda tab que se ha implementado en la presente
tesis para resolver el problema de ruteo de vehculos (V.R.P) ha
resultado efectivo obteniendo buenas soluciones para los problemas
de prueba que se han propuesto.

2.

El problema del ruteo de transportes presenta complejidad de orden


exponencial. El tamao de este est dado por el nmero de clientes y
el nmero de vehculos que se utilizarn. Esta generar varias
posibles soluciones. Con la implementacin de la bsqueda Tab
encontramos una de las soluciones que mejora la solucin objetivo.

3. En la implementacin realizada de la bsqueda Tab ha utilizado la


estrategia FBA el mejor accesible, con esto se reduce el esfuerzo
computacional, debido a que abandona la bsqueda en cada vecindad
luego de encontrar un solucin que mejore la funcin objetivo.

60

4. Existen algunos mtodos que se emplean para obtener soluciones


para el tipo de problemas de transportes. Una de las ventajas de la
bsqueda Tab es el carcter agresivo de la bsqueda. Con esto este
mtodo puede tomar las soluciones de otras algoritmos y partir de ah
su bsqueda para obtener una mejor solucin.

Recomendaciones
1. Sera bueno que en un futuro en el programa se realicen ciertos
cambios en las estrategias de bsqueda, con las que se tendra una
bsqueda ms profunda y exhaustiva. Esto favorecera al usuario,
debido a que se puede obtener una solucin de mayor calidad al
ejecutar el programa y en un tiempo prudencial.

2. El Mtodo de bsqueda Tab puede ser una gran herramienta para la


ayuda en la toma de decisiones, y teniendo el conocimiento de que es
muy difcil encontrar un solucin ptima a estos tipos de problemas, la
buena solucin que obtendremos es lo suficientemente confiable para
la utilizacin de esta en los problemas cotidianos.

61

3. El Mtodo sera de gran utilidad en nuestra sociedad, debido a que en


nuestro pas muchas decisiones se toman sin tener algn respaldo de
alguna tcnica o estudio previo, para que los resultados posteriores
sean un poco ms previsibles y manejables.

62

Bibliografa
1. Glover, F., Tabu Search: A Tutorial,1990.
2. Glover, F., & Laguna Tabu Search,1993.
3. Ibrahim

Hassan

Osman,

Meta-strategy

Simulated

and

Annealing and Tabu Search Algorithms for the Vehicle Routing


Problem, 1991
4. Manuel

de

la

Herrn

Gascn,Algoritmos

Genticos

Centeno,

El

hormigas

Avanzados,1997
5. Jos

Luis

Ordua

guerreras,2000

Dilema

de

las

Anda mungkin juga menyukai