Sei sulla pagina 1di 17

MTODOS HEURSTICOS

1. INTRODUCCIN
La palabra heurstica procede del trmino griego ,1 que significa
hallar, inventar (etimologa que comparte con eureka2 ). La palabra
heurstica aparece en ms de una categora gramatical. Cuando se usa como
sustantivo, identifica el arte o la ciencia del descubrimiento, una disciplina
susceptible de ser investigada formalmente. Cuando aparece como adjetivo, se
refiere a cosas ms concretas, como estrategias heursticas, reglas heursticas
o silogismos y conclusiones heursticas. Claro est que estos dos usos estn
ntimamente relacionados ya que la heurstica usualmente propone estrategias
heursticas que guan el descubrimiento. El trmino fue utilizado por Albert
Einstein en la publicacin sobre efecto fotoelectrico (1905), con el cual obtuvo
el premio Nobel en Fsica en el ao 1921 y cuyo ttulo traducido al idioma
espaol es: Heurstica de la generacin y conversin de la luz

2. FUNCIONES DE COMPORTAMIENTO
Los mtodos heursticos son estrategias generales de resolucin y reglas de
decisin utilizadas por los solucionadores de problemas, basadas en la
experiencia previa con problemas similares. Estas estrategia sindican las vas o
posibles enfoques a seguir para alcanzar una solucin De acuerdo con Monero
y otros (1995) los procedimientos heursticos son acciones que comportan un
cierto grado de variabilidad y su ejecucin no garantiza la consecucin de un
resultado ptimo como, por ejemplo, reducir el espacio de un problema
complejo a la identificacin de sus principales elementos (p.20).Mientras que
Duhalde y Gonzlez (1997) sealan que un heurstico es un procedimiento que
ofrece la posibilidad de seleccionar estrategias que nos acercan a una solucin
(p. 106).Diversos investigadores han estudiado el tipo de conocimiento
involucrado en la resolucin de un problema, encontrndose que los resultados
apoyan la nocin de que la eficiencia en la resolucin de problemas est
relacionada con el conocimiento especfico del rea en cuestin (Mayer, 1992;
Stenberg,1987). En este sentido, estos autores coinciden en sealar que los
tipos de conocimiento necesarios para resolver problemas incluyen:
Conocimiento declarativo: por ejemplo, saber que un kilmetro tiene mil
metros. Conocimiento lingstico: conocimiento de palabras, frases,
oraciones. Conocimiento semntico: dominio del rea relevante al problema,
por ejemplo, saber que si Alvaro tiene5 bolvares ms que Javier, sto implica
que Javier tiene menos bolvares que Alvaro. Conocimiento esquemtico:
conocimiento de los tipos de problema. Conocimiento procedimental:
conocimiento del o de los algoritmos necesarios para resolver

3. ECUACIONES DIFERENCIALES Y REGIONES DE


COMPORTAMIENTO
El anlisis numrico tambin puede calcular soluciones aproximadas de
ecuaciones diferenciales, bien ecuaciones diferenciales ordinarias, bien

ecuaciones en derivadas parciales. Los mtodos utilizados suelen basarse en


discretizar la ecuacin correspondiente.

4. MTODOS
Mtodos de Descomposicin
El problema original se descompone en subproblemasmas sencillos de resolver,
teniendo en cuenta, aunque sea de manera general, que ambos pertenecen al
mismo problema.

Mtodos Inductivos
La idea de estos mtodos es generalizar de versiones pequeas o ms sencillas
al caso completo. Propiedades o tcnicas identificadas en estos casos ms
fciles de analizar pueden ser aplicadas al problema completo.

Mtodos de Reduccin
Consiste en identificar propiedades que se cumplen mayoritariamente por las
buenas soluciones e introducirlas como restricciones del problema. El objeto es
restringir el espacio de soluciones simplificando el problema. El riesgo obvio es
dejar fuera las soluciones ptimas del problema original.

Mtodos Constructivos
Consisten en construir literalmente paso a paso una solucin del
problema. Usualmente son mtodos deterministas y suelen estar basados
en la mejor eleccin en cada iteracin. Estos mtodos han sido muy utilizados
en problemas clsicos como el del viajante.

Mtodos de Bsqueda Local


A diferencia de los mtodos anteriores, los procedimientos de bsqueda o
mejora local comienzan con una solucin del problema y la mejoran
progresivamente. El procedimiento realiza en cada paso un movimiento de una
solucin a otra con mejor valor. El mtodo finaliza cuando, para una solucin,
no existe ninguna solucin accesible que la mejore.

Si bien todos estos mtodos han contribuido a ampliar nuestro conocimiento


para la resolucin de problemas reales, los mtodos constructivos y los de
bsqueda local constituyen la base de los procedimientos metaheursticos. Por
ello, estudiaremos en el captulo segundo los mtodos constructivos en el
problema del viajante y en el captulo tercero los mtodos de bsqueda local

en este mismo problema. El lector podr encontrar alusiones a lo largo del


texto a cualquiera de los mtodos de descomposicin, inductivos o de
reduccin, pero no dedicaremos una seccin especfica a su estudio.
Alternativamente, prestaremos especial atencin a los mtodos resultantes de
combinar la construccin con la bsqueda local y sus diferentes variantes en el
captulo tercero, puesto que puede considerarse un punto de inicio en el
desarrollo de mtodo metaheursticos.

En los ltimos aos han aparecido una serie de mtodos bajo el nombre de
Metaheursticos con el propsito de obtener mejores resultados que los
alcanzados por los heursticos tradicionales. El trmino metaheurstico fue
introducido por Fred Glover en 1986. En este libro utilizaremos la acepcin de
heursticos para referirnos a los mtodos clsicos en contraposicin a la de
metaheursticos que reservamos para los ms recientes y complejos. En
algunos textos podemos encontrar la expresin heursticos modernos
refirindose a los meta-heursticos (Reeves, 1995) tal y como se menciona:
"Themodern-coin comes from ... thewaytheyattempttosimulatesomenaturallyoccurringprocess.".. Los profesores Osman y Kelly (1995) introducen la
siguiente definicin:

Los procedimientos Metaheursticos son una clase de mtodos aproximados


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

Los procedimientos Meta-Heursticos se sitan conceptualmente por encima


de los heursticos en el sentido que guan el diseo de stos. As, al
enfrentarnos a un problema de optimizacin, podemos escoger cualquiera de
estos mtodos para disear un algoritmo especfico que lo resuelva
aproximadamente. En Glover (1986) se introduce dicha idea segn:

A metaheuristic refers to a master strategy that guides and modifies


other heuristics to produce solutions beyond those that are normally
generated in a quest for local optimality. The heuristics guided by such a metastrategy may be high level procedures or may embody nothing more than a
description of available moves for transforming one solution into another,
together with an associated evaluation rule.

Otras definiciones ms recientes son:

En estos momentos existe un gran desarrollo y crecimiento de estos mtodos.


En este libro vamos a limitarnos a aquellos procedimientos relativamente
consolidados y que han probado su eficacia sobre una coleccin significativa de
problemas. Especficamente consideraremos en el captulo quinto la Bsqueda
Tab, en el sexto el Templado Simulado y en el sptimo los diferentes Mtodos
Evolutivos, incluyendo los Algoritmos Genticos y la Bsqueda Dispersa
(ScatterSearch). Los mtodos GRASP junto con los Multi-Arranque han sido
incluidos en el captulo cuarto de Mtodos Combinados que sirve de
puente entre los mtodos heursticos y los metaheursticos.

Es importante notar que para la correcta compresin y asimilacin de


los mtodos descritos, resulta indispensable su puesta en prctica, para lo
cual el lector deber programar en un ordenador los algoritmos descritos y
resolver algn problema de optimizacin combinatoria. Recomendamos utilizar
algn lenguaje de programacin de relativo bajo nivel como el C que permita
controlar los detalles de implementacin. La siguiente seccin incluye una
coleccin de problemas de entre los que el lector puede escoger alguno e ir
trabajando con l, aplicando los mtodos descritos a lo largo de todo el texto.

Al resolver un problema de forma heurstica debemos de medir la calidad de


los resultados puesto que, como ya hemos mencionado, la optimalidad no est
garantizada. En la seccin tercera de este captulo se recogen los principales
mtodos para medir la calidad y eficiencia de un algoritmo y poder determinar
su vala frente a otros.

1.1 Problemas Estructurados

El objeto de esta seccin no es nicamente dar una coleccin de ejemplos


reales, sino el de establecer modelos que han sido muy estudiados. As, al
enfrentarse el lector a un problema dado, tratar de reconocer las estructuras
especiales que aparecen en estos modelos y de esta forma se podr
aprovechar la extensa literatura y experiencia computacional al respecto.
Adems, no debemos olvidar la limitada, pero significativa, importancia
prctica de estos modelos.

Problema del Empaquetado de Conjuntos

A este problema tambin se le conoce como Set Packing. Como en el problema


anterior se tienen los conjuntos S y H, pero ahora cada Hi tiene un valor
asociado. El objetivo es empaquetar tantos elementos de S como sea posible
de forma que el beneficio obtenido sea mximo y no haya solapamientos
(ningn elemento de S puede aparecer mas de una vez).

En cierto modo, la relajacin lineal del Set Covering y la del Set Packing son
problemas duales. Sin embargo esto no sirve para establecer una relacin
entre los problemas enteros originales.

Uno de los ejemplos/aplicaciones es el problema del Acoplamiento Mximo o


Matching. Un acoplamiento es un subconjunto de las aristas de un grafo de
manera que cualquier vrtice no sea incidente con ms de una de esas aristas.
El problema del acoplamiento mximo consiste en encontrar un acoplamiento
de mximo cardinal.

Problema de la Particin de Conjuntos

Este problema tambin es conocido como Set Partitioning y, al igual que en los
dos anteriores, se tienen los conjuntos S y H. As como en el Set Covering cada
elemento de S tiene que aparecer al menos en uno de H, en este problema
cada elemento de S tiene que aparecer exactamente en uno de H, por lo tanto
la solucin representa una particin del conjunto S. La funcin objetivo puede
ser maximizar o minimizar, segn la aplicacin.

Aplicaciones:
Asignacin de tripulaciones en una versin ms restringida que la
anteriormente mencionada.
Creacin de distritos Electorales: Asignacin de electores a un colegio
electoral.
Los tres problemas vistos pueden ser muy tiles para mostrar la
transformacin y relaciones entre problemas.
As podemos ver que el Set Packing y el Set Partitioning son equivalentes. Para
pasar del primero al segundo basta con aadir variables de holgura. La
transformacin inversa se realiza mediante variables artificiales. Estos dos

problemas son ms fciles de resolver de forma exacta que el Set Covering


ya que en ellos las restricciones lineales estn ms ajustadas respecto al
conjunto de soluciones enteras posibles, por lo que los ptimos de las
relajaciones lineales estn ms cerca de las soluciones enteras.

Problema del Viajante

Este problema, tambin conocido como TravelingSalesmanProblem (TSP), ha


sido uno de los mas estudiados en Investigacin Operativa, por lo que merece
una atencin especial. Cuando la teora de la Complejidad Algortmica se
desarroll, el TSP fue uno de los primeros problemas en estudiarse, probando
Karp en 1972 que pertenece a la clase de los problemas difciles (NP-hard).

Desde los mtodos de Ramificacin y Acotacin hasta los basados en la


Combinatoria Polidrica, pasando por los procedimientos Metaheursticos,
todos han sido inicialmente probados en el TSP, convirtindose ste en una
prueba obligada para validar cualquier tcnica de resolucin de problemas
enteros o combinatorios. La

librera TSPLIB (Reinelt, 1991) de domino pblico contiene un conjunto de


ejemplos del TSP con la mejor solucin obtenida hasta la fecha y, en algunos
casos, con la solucin ptima. A efectos de medir empricamente la bondad de
los algoritmos que se describen en los captulos segundo y tercero,
consideraremos un conjunto de
30 ejemplos de la TSPLIB basados en problemas reales con ptimos conocidos.

El Problema del Viajante puede enunciarse del siguiente modo:

Un viajante de comercio ha de visitar n ciudades, comenzando y finalizando


en su propia ciudad. Conociendo el coste de ir de cada ciudad a otra,
determinar el recorrido de coste mnimo.

Para enunciar el problema formalmente introducimos la siguiente terminologa:


Sea un grafo G=(V,A,C) donde V es el conjunto de vrtices, A es el de aristas y
C=(cij) es la matriz de costes. Esto es, cij es el coste o distancia de la arista (i,
j).
Un camino (o cadena) es una sucesin de aristas (e1, e2, , ek) en donde
el vrtice final de cada arista coincide con el inicial de la siguiente. Tambin
puede representarse por la sucesin de vrtices utilizados.
Un camino es simple o elemental si no utiliza el mismo vrtice mas de una
vez.
Un ciclo es un camino (e1, e2, , ek) en el que el vrtice final de ek
coincide con el inicial de e1.

Un ciclo es simple si lo es el camino que lo define.

Un subtour es un ciclo simple que no pasa por todos los vrtices del grafo.

Un tour o ciclo hamiltoniano es un ciclo simple que pasa por todos los
vrtices del grafo.
El Problema del Viajante consiste en determinar un tour de coste mnimo. La
figura 2 muestra un grafo de 8
vrtices en el que aparece destacado un ciclo hamiltoniano.

Consideraremos, sin prdida de generalidad, que el grafo es completo; es


decir, que para cada par de vrtices existe una arista que los une. Notar que,
de no ser as, siempre podemos aadir una arista ficticia entre dos vrtices con
el coste del camino ms corto que los une. As por ejemplo, en el grafo de la
figura 2 podemos aadir una arista entre los vrtices 1 y 6 con coste 9
correspondiente al camino 1-3-6.

Entre las aplicaciones ms importantes del TSP podemos destacar:

Fabricacin de circuitos integrados

Rutas de vehculos

Recogida (robotizada) de material en almacenes

Instalacin de componentes en ordenadores

Aparece como subproblema en otras aplicaciones

Este problema puede ser formulado mediante un modelo de programacin


lineal entera con variables binarias.
Para ello basta considerar las variables xij que valen 1 si el viajante va de la
ciudad i a la j y 0 en otro caso y llamar cij al coste de ir de la ciudad i a la j:

Donde (S) representa el conjunto de aristas incidentes con exactamente un


vrtice de S.
Las restricciones que aparecen en segundo lugar (vinculadas a todos los
subconjuntos de vrtices S) reciben el
nombre de restricciones de eliminacin de subtours y garantizan que la
solucin sea un tour. El problema es que al haber una por cada subconjunto
del conjunto de vrtices, aparecen en una cantidad del orden de 2n, lo cual
hace inmanejable tal formulacin. Se han encontrado restricciones
alternativas para evitar la formacin de subtours que suponen la incorporacin
de una cantidad polinmica de restricciones (Miller, Tucker y Zemlin,
1960).
An as, la resolucin ptima del problema ha resultado poco
eficiente, salvo para ejemplos relativamente pequeos, dado el elevado
tiempo de computacin requerido por cualquier mtodo exacto.

Problema de la Asignacin Cuadrtica

Introduciremos el problema mediante el siguiente ejemplo: Se tienen n


mdulos electrnicos y n posiciones en donde situarlos sobre una placa. Sea
tik el nmero de cables que conectan los mdulos i y k, y sea djl la distancia
entre las posiciones j y l de la placa.
El problema consiste en
determinar la ubicacin de los mdulos minimizando la longitud total del
cable utilizado

Al igual que en los otros modelos de asignacin vistos, se introducen variables


xij que valen 1 si el mdulo i se asigna a la posicin j y 0 en otro caso.

El problema se llama cuadrtico por la funcin objetivo ya que el coste viene


dado por parejas de variables que aparecen como producto. As pues la
funcin objetivo es no lineal, aunque se puede transformar en un problema
lineal entero introduciendo variables que representen a los productos. Notar
que esta transformacin obligara a reformular las restricciones.

Este problema tiene numerosas aplicaciones ya que podemos encontrar en


mbitos muy diversos situaciones como la descrita. As, por ejemplo, el
problema de ubicar determinados servicios (como laboratorios, rayos X,.

.etc.) en un hospital en donde se conoce el flujo previsto de personal entre


tales servicios. Anlogamente el guardar determinados productos en un
almacn.

El objeto de introducir este problema es doble: por una parte mostrar un


problema no lineal, con un gran nmero de aplicaciones prcticas, que puede
transformarse en un PLE y, por otra, presentar uno de los problemas ms
difciles (sino el que ms) dentro de los ya de por s difciles problemas enteros.

Problema de Asignacin Generalizada

Se tiene un conjunto J={1,2,..,n} de ndices de los trabajos a realizar y otro


conjunto I={1,2,..,m} de personas para realizarlos. El coste (o valor) de
asignar la persona i al trabajo j viene dado por cij. Adems se tiene una
disponibilidad bi de recursos de la persona i (como por ejemplo horas de
trabajo) y una cantidad aij de recursos de la persona i necesarias para realizar
el trabajo j. Con todo esto, el problema consiste en asignar las personas a los
trabajos con el mnimo coste (o el mximo valor).

Al igual que en los otros modelos de asignacin vistos, se introducen variables


xij que valen 1 si la persona i se asigna al trabajo j y 0 en otro caso.

En este modelo de asignacin se puede asignar una persona a ms de un


trabajo, respetando obviamente las limitaciones en los recursos.

Algunas de las aplicaciones mas relevantes son:

Asignacin de clientes a camiones (de reparto o recogida) de mercancas.

Asignacin de tareas a programadores.

Asignacin de trabajos a una red de ordenadores.

Problema de la Ordenacin Lineal

Este problema consiste en determinar una permutacin p de las filas y


columnas de una matriz cuadrada dada, de manera que la suma de los
elementos por encima de la diagonal sea mxima. Notar que la permutacin p
proporciona el orden tanto de las filas como de las columnas.

En trminos econmicos este problema es equivalente al de triangulacin de


matrices input-output, que puede describirse del siguiente modo: La economa
de una regin se divide en m sectores, se construye una matriz m*m donde la
entrada aij denota la cantidad de mercancas (en valor monetario) que el
sector i sirve al j en un ao dado. El problema de triangulacin consiste en
permutar las filas y columnas de la matriz simultneamente de manera que la
suma de elementos por encima de la diagonal sea lo mayor posible. Una
solucin ptima presenta una ordenacin de sectores de modo que los
proveedores (sectores que producen para otros) van en primer lugar seguidos
de los consumidores.

Este problema tambin puede enunciarse en trminos de grafos, lo cual ayuda


a formularlo del siguiente modo:

1.2 Medidas de Calidad de un Algoritmo

Un buen algoritmo heurstico debe de tener las siguientes propiedades:

1. Eficiente. Un esfuerzo computacional realista para obtener la solucin.


2. Bueno. La solucin debe de estar, en promedio, cerca del ptimo.
3. Robusto. La probabilidad de obtener una mala solucin (lejos del ptimo)
debe ser baja.

Para medir la calidad de un heurstico existen diversos procedimientos,


entre los que se encuentran los siguientes:

Comparacin con la solucin ptima


Aunque normalmente se recurre al algoritmo aproximado por no existir un
mtodo exacto para obtener el ptimo, o por ser ste computacionalmente
muy costoso, en ocasiones puede que dispongamos de un procedimiento que
proporcione el ptimo para un conjunto limitado de ejemplos (usualmente de
tamao reducido). Este conjunto de ejemplos puede servir para medir la
calidad del mtodo heurstico.

Normalmente se mide, para cada uno de los ejemplos, la desviacin porcentual


de la solucin heurstica frente a la ptima, calculando posteriormente el
promedio de dichas desviaciones. Si llamamos ch al coste de la solucin del

algoritmo heurstico y copt al coste de la solucin ptima de un


ejemplo dado, en un problema de
minimizacin la desviacin porcentual viene dada por la expresin: ch
copt100 .
copt

Comparacin con una cota


En ocasiones el ptimo del problema no est disponible ni siquiera para un
conjunto limitado de ejemplos. Un mtodo alternativo de evaluacin consiste
en comparar el valor de la solucin que proporciona el heurstico con una cota
del problema (inferior si es un problema de minimizacin y superior si
es de maximizacin). Obviamente la bondad de esta medida depender de la
bondad de la cota (cercana de sta al ptimo), por lo que, de alguna manera,
tendremos que tener informacin de lo buena que es dicha cota. En caso
contrario la comparacin propuesta no tiene demasiado inters.

Comparacin con un mtodo exacto truncado


Un mtodo enumerativo como el de Ramificacin y Acotacin explora una gran
cantidad de soluciones, aunque sea nicamente una fraccin del total, por lo
que los problemas de grandes dimensiones pueden resultar
computacionalmente inabordables con estos mtodos. Sin embargo, podemos
establecer un lmite de iteraciones (o de tiempo) mximo de ejecucin para el
algoritmo exacto. Tambin podemos saturar un nodo en un problema de
maximizacin cuando su cota inferior sea menor o igual que la cota superior
global ms un cierto (anlogamente para el caso de minimizar). De esta
forma se garantiza que el valor de la mejor solucin proporcionada por el
procedimiento no dista mas de del valor ptimo del problema. En cualquier
caso, la mejor solucin encontrada con estos procedimientos truncados
proporciona una cota con la que contrastar el heurstico.

Comparacin con otros heursticos


Este es uno de los mtodos ms empleados en problemas difciles (NP-duros)
sobre los que se ha trabajado durante tiempo y para los que se conocen
algunos buenos heursticos. Al igual que ocurre con la comparacin con las
cotas, la conclusin de dicha comparacin est en funcin de la bondad del
heurstico escogido.

Anlisis del peor caso

Uno de los mtodos que durante un tiempo tuvo bastante aceptacin es


analizar el comportamiento en el peor caso del algoritmo heurstico; esto es,
considerar los ejemplos que sean mas desfavorables para el algoritmo y acotar
analticamente la mxima desviacin respecto del ptimo del problema. Lo
mejor de este mtodo es que acota el resultado del algoritmo para cualquier
ejemplo; sin embargo, por esto mismo, los resultados no suelen ser
representativos del comportamiento medio del algoritmo. Adems, el anlisis
puede ser muy complicado para los heursticos ms sofisticados.
Aquellos algoritmos que, para cualquier ejemplo, producen soluciones cuyo
coste no se aleja de un porcentaje
del coste de la solucin ptima, se llaman Algoritmos -Aproximados. Esto es;
en un problema de minimizacin
se tiene que cumplir para un > 0 que:

ch (1+) copt

2. Mtodos Constructivos en el Problema del Viajante

Los mtodos constructivos son procedimientos iterativos que, en cada paso,


aaden un elemento hasta completar una solucin. Usualmente son mtodos
deterministas y estn basados en seleccionar, en cada iteracin, el elemento
con mejor evaluacin. Estos mtodos son muy dependientes del problema que
resuelven, por lo que utilizaremos el problema del viajante para describirlos.
En este captulo se describen cuatro de los mtodos ms conocidos para el TSP
tal y como aparecen en la revisin realizada por Jnger, Reinelt y Rinaldi
(1995).

2.1 Heursticos del Vecino mas Prximo

Uno de los heursticos mas sencillos para el TSP es el llamado del vecino mas
cercano, que trata de construir un ciclo Hamiltoniano de bajo coste basndose
en el vrtice cercano a uno dado. Este algoritmo es debido a Rosenkrantz,
Stearns y Lewis (1977) y su cdigo, en una versin standard, es el siguiente:

Algoritmo del Vecino ms Prximo


Inicializacin
Seleccionar un vrtice j al azar. Hacer t = j y W = V \ {j}.
Mientras ( W )
Tomar j de W / ctj = min {cti / i en W}

Conectar t a j
Hacer W = W \ {j} y t =j.

Este procedimiento realiza un nmero de operaciones de orden O(n2). Si


seguimos la evolucin del algoritmo al construir la solucin de un ejemplo
dado, veremos que comienza muy bien, seleccionando aristas de bajo coste.
Sin embargo, al final del proceso probablemente quedarn vrtices cuya
conexin obligar a introducir aristas de coste elevado. Esto es lo que se
conoce como miopa del procedimiento, ya que, en una iteracin escoge la
mejor opcin disponible sin ver que esto puede obligar a realizar malas
elecciones en iteraciones posteriores.

El algoritmo tal y como aparece puede ser programado en unas pocas lneas de
cdigo. Sin embargo una implementacin directa ser muy lenta al ejecutarse
sobre ejemplos de gran tamao (10000 vrtices). As pues, incluso para un
heurstico tan sencillo como ste, es importante pensar en la eficiencia y
velocidad de su cdigo.

Para reducir la miopa del algoritmo y aumentar su velocidad se introduce el


concepto de subgrafo candidato, junto con algunas modificaciones en la
exploracin. Un subgrafo candidato es un subgrafo del grafo completo con los
n vrtices y nicamente las aristas consideradas atractivas para aparecer en
un ciclo Hamiltoniano de bajo coste. Una posibilidad es tomar, por ejemplo, el
subgrafo de los k vecinos ms cercanos; esto es, el subgrafo con los n vrtices
y para cada uno de ellos las aristas que lo unen con los k vrtices ms
cercanos. Este subgrafo tambin ser usado en otros procedimientos.

El algoritmo puede mejorarse en los siguientes aspectos:


Para seleccionar el vrtice j que se va a unir a t (y por lo tanto al tour
parcial en construccin), en lugar de
examinar todos los vrtices, se examinan nicamente los adyacentes a t en el
subgrafo candidato. Si todos
ellos estn ya en el tour parcial, entonces s que se examinan todos los
posibles.
Cuando un vrtice queda conectado (con grado 2) al tour en construccin,
se eliminan del subgrafo candidato
las aristas incidentes con l.

Se especifica un nmero s < k de modo que cuando un vrtice que no est


en el tour est conectado
nicamente a s o menos aristas del subgrafo candidato se considera que se
est quedando aislado. Por ello se
inserta inmediatamente en el tour. Como punto de insercin se toma el mejor
de entre los k vrtices mas cercanos presentes en el tour.

Considerando el estudio emprico sobre las 30 ejemplos utilizados, la versin


inicial del algoritmo presenta un porcentaje de desviacin en promedio
respecto del ptimo de 24.2%, mientras que la mejorada con k=10 y s=4 de
18.6%. La primera tiene un tiempo de ejecucin medio de 15.3 segundos
mientras que la segunda lo tiene de
0.3 segundos.
2.2 Heursticos de Insercin
Otra aproximacin intuitiva a la resolucin del TSP consiste en comenzar
construyendo ciclos que visiten nicamente unos cuantos vrtices, para
posteriormente extenderlos insertando los vrtices restantes. En cada paso se
inserta un nuevo vrtice en el ciclo hasta obtener un ciclo Hamiltoniano. Este
procedimiento es debido a los mismos autores que el anterior y su esquema es
el siguiente:

Algoritmo de Insercin
Inicializacin
Seleccionar un ciclo inicial (subtour) con k vrtices. Hacer W = V \ {vrtices
seleccionados}.
Mientras ( W )
Tomar j de W de acuerdo con algn criterio preestablecido
Insertar j donde menos incremente la longitud del ciclo
Hacer W = W \ {j}.

Existen varias posibilidades para implementar el esquema anterior de acuerdo


con el criterio de seleccin del vrtice j de W a insertar en el ciclo. Se define la
distancia de un vrtice v al ciclo como el mnimo de las distancias de v a todos
los vrtices del ciclo:
dmin (v) = min { civ / i V \ W }
Los criterios ms utilizados son:

Insercin ms cercana:

Seleccionar el vrtice j ms cercano al ciclo.

dmin (j) = min { dmin (v) / v W }


Insercin ms lejana:

Seleccionar el vrtice j ms lejano al ciclo.

dmin (j) = max { dmin (v) / v W }


Insercin ms barata:

Seleccionar el vrtice j que ser insertado

con el menor incremento del coste.

Insercin aleatoria:Seleccionar el vrtice j al azar.

La figura 2 muestra la diferencia entre estos criterios en un caso dado. El ciclo


actual est formado por 4 vrtices y hay que determinar el prximo a insertar.
La insercin ms cercana escoger el vrtice i, la ms lejana el s y la ms
barata el k.

Todos los mtodos presentan un tiempo de ejecucin de O(n2) excepto la


insercin ms cercana que es de O(n2log n). Respecto al estudio emprico
sobre los 30 grafos de la TSPLIB los porcentajes de desviacin del ptimo son
de 20%, 9.9% 16.8% y 11.1% para el ms cercano, mas lejano, mas barato y
aleatorio, respectivamente, aunque el tiempo de ejecucin del ms barato es
mucho mayor. Respecto al ciclo inicial se hatomado k=3 vrtices y se
comprueba experimentalmente que el procedimiento no depende mucho del
ciclo inicial (aproximadamente un 6% de variacin).
2.3 Heursticos Basados en rboles Generadores

Los heursticos considerados anteriormente construyen un ciclo Hamiltoniano


basndose nicamente en los costes de las aristas. Los heursticos de este
apartado se basan en el rbol generador de coste mnimo, lo que aporta una
informacin adicional sobre la estructura del grafo. Comenzaremos por ver
algunos conceptos de teora de grafos.

Un grafo es conexo si todo par de vrtices est unido por un camino.

Un rbol es un grafo conexo que no contiene ciclos. El nmero de aristas


de un rbol es igual al nmero de
vrtices menos uno.

Un rbol generador de un grafo G=(V,A,C) es un rbol sobre todos los


vrtices y tiene, por tanto, |V| - 1
aristas de G.
Un rbol generador de mnimo peso (o de coste mnimo) es aquel
que de entre todos los rboles
generadores de un grafo dado, presenta la menor suma de los costes de sus
aristas.
Un acoplamiento de un grafo G=(V,A,C) es un subconjunto M del conjunto A
de aristas cumpliendo que
cada vrtice del grafo es a lo sumo incidente con una arista de M.
Un acoplamiento sobre un grafo G=(V,A,C) es perfecto si es de cardinalidad
mxima e igual a V/ 2.
Las figuras siguientes ilustran los conceptos vistos sobre un grafo completo de
8 vrtices. En la figura 3
tenemos un rbol generador. Notar que contiene a todos los vrtices y no hay
ningn ciclo. La figura 4 muestra un acoplamiento perfecto en el que podemos
ver cmo cada vrtice es incidente con una, y solo una, de las aristas. Al ser
un grafo de 8 vrtices el nmero mximo de aristas en un acoplamiento es de
4, por lo que el de la figura es perfecto.

El algoritmo debido a Prim (1957) obtiene un rbol generador de mnimo peso


de un grafo G completo. El algoritmo comienza por definir el conjunto T de
aristas del rbol (inicialmente vaco) y, el conjunto U de vrtices del rbol
(inicialmente formado por uno elegido al azar). En cada paso se calcula la
arista de menor coste que une U con V\U, aadindola a T y pasando su vrtice
adyacente de V\U a U. El procedimiento finaliza cuando U es igual a V; en
cuyo caso el conjunto T proporciona la solucin.

Dado un ciclo vi0, vi1,, vik que pasa por todos los vrtices de G (no
necesariamente simple), el siguiente procedimiento obtiene un ciclo
Hamiltoniano comenzando en vi0 y terminando en vik (vi0= vik). En el caso
de grafos con costes cumpliendo la desigualdad triangular (como es el
caso de grafos eucldeos), este procedimiento obtiene un ciclo de longitud
menor o igual que la del ciclo de partida.

Algoritmo de Obtencin de Tour


Inicializacin

Hacer T = { vi0 }, v = vi0 y s=1.

Mientras ( |T| < |V| )


Si vi s no est en T, hacer:
T = T { vi s }
Conectar v a vi s yhacer v = vi s
Hacer s = s+1
Conectar v a vi0 y formar el ciclo Hamiltoniano

A partir de los elementos descritos se puede disear un algoritmo para obtener


un ciclo Hamiltoniano. Basta con construir un rbol generador de mnimo peso
(figura 5), considerar el ciclo en el que todas las aristas del rbol son recorridas
dos veces, cada vez en un sentido (figura 6), y aplicar el algoritmo de
obtencin de tour a dicho ciclo (figura 7). El ejemplo de las figuras
mencionadas ilustra dicho procedimiento sobre un grafo completo con 10
vrtices.
La figura 5 muestra un rbol generador de mnimo peso e igual a 156. En la
figura 6 se han duplicado las aristas y se seala mediante flechas la
direccin del ciclo resultante. Su coste obviamente ser de 156x2=312.
Aplicando el procedimiento de obtencin de tour al ciclo de la figura 6, se
obtiene el ciclo Hamiltoniano de la figura 7 con un coste de 258.
El proceso de duplicacin de las aristas (recorrerlas todas en ambos sentidos)
para obtener un tour aumenta en gran medida el coste de la solucin.
Podemos ver que es posible obtener un ciclo que pase por todos los vrtices de
G a partir de un rbol generador sin necesidad de duplicar todas las aristas.
De hecho, basta con aadir aristas al rbol de modo que todos los vrtices
tengan grado par.El siguiente procedimiento, debido a Christofides (1976),
calcula un acoplamiento perfecto de mnimo peso sobre los vrtices de grado
impar del rbol generador. Aadiendo al rbol las aristas del acoplamiento se
obtiene un grafo con todos los vrtices pares, y por lo tanto, un ciclo del grafo
original, a partir del cual ya hemos visto cmo obtener un tour.