Ramusio
Ramusio
Ramusio
Tesis de
Licenciatura en Ciencias de la Computación
Los sistemas de radio punto a multipunto son conjuntos de antenas de radio que proveen acceso
inalámbrico a redes de comunicación de voz y datos. Este tipo de sistemas debe ser operado utilizando
un cierto espectro de frecuencias de radio, lo cual normalmente produce problemas de capacidad. Por lo
tanto es necesario reutilizar frecuencias, pero este reuso no debe generar interferencia entre las señales.
El problema de determinar las frecuencias para los enlaces se conoce como el problema de asignación de
frecuencias en sistemas de radio punto a multipunto. Este problema es NP-hard, y no existen algoritmos
aproximados polinomiales con una garantı́a de calidad fija para el mismo. Como los métodos de planos
de corte han demostrado ser efectivos para muchos otros problemas de optimización combinatoria, el
objetivo de esta tesis es aplicar este tipo de algoritmos al problema de asignación de frecuencias en
sistemas punto a multipunto.
En esta tesis se describe la implementación de un algoritmo Branch & Cut para este problema,
realizada con el entorno Abacus. Esta implementación toma como base un modelo de programación
lineal entera existente para el problema, y se utilizan en el algoritmo todas las familias de desigualdades
conocidas para esta formulación. Sobre la base de esta implementación, se realizan experimentos compu-
tacionales para evaluar empı́ricamente la calidad de las desigualdades válidas con el fin de definir las
familias más efectivas, y se presentan estos resultados y los obtenidos variando los diferentes parámetros
de la implementación. Estos experimentos se realizaron sobre instancias que intentan representar esce-
narios reales. Los resultados obtenidos con el algoritmo son muy prometedores y permiten resolver en
forma óptima instancias que no podı́an ser resueltas con las herramientas computacionales existentes.
Como parte de la implementación, se proponen dos heurı́sticas primales de redondeo, una de las cuales
está basada en la resolución de un modelo sencillo de programación lineal.
i
Abstract
Point-to-Multipoint systems are a type of radio systems supplying wireless access to voice and data
communication networks. Such systems are intended to be run using a certain frequency spectrum,
which typically causes capacity problems. Hence, the reutilization of frequencies is needed and, simul-
taneously, interference between signals must be avoided. This leads to a combinatorial optimization
problem called the bandwidth allocation problem in point-to-multipoint systems. Such a problem is NP-
hard and, moreover, there is no polynomial time algorithm with a fixed approximation ratio for this
problem. As cutting plane algorithms have shown to be successful for many other combinatorial opti-
mization problems, the main objective of this work is to apply this kind of algorithms to the bandwidth
allocation problem in point-to-multipoint systems.
This thesis describes the implementation of a Branch & Cut algorithm for the problem, achieved
through the Abacus environment. The implementation is based on an integer linear programming mo-
del, in which all known valid inequalities are included. Computational experiments are carried out to
empirically evaluate the valid inequalities quality in order to determine the most effective ones. We
also present computational results in order to assess the impact of the implementation parameters. The
experiments have been performed over instances that attempt to represent real-life scenarios. The co-
llected results provided by the algorithm are promising as it solves many instances to optimality, which
wouldn’t otherwise be solvable by the existing computational tools. The primal heuristic which uses a
simplified linear programming model shows an interesting behavior when applied to certain kinds of
instances.
iii
Índice general
1. Introducción 1
1.1. Optimización combinatoria y programación lineal entera . . . . . . . . . . . . . . . . . . 1
1.2. Los algoritmos Branch & Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Asignación de frecuencias en redes punto a multipunto . . . . . . . . . . . . . . . . . . . 4
1.4. Resumen de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. El problema 7
2.1. Modelo de programación lineal entera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2. Desigualdades válidas conocidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
v
4.1.8. Procedimiento de separación de Clique Doble 2-Extendida . . . . . . . . . . . . . 43
4.1.9. Procedimiento de separación de Clique Doble Cerrada . . . . . . . . . . . . . . . 44
4.1.10. Procedimiento de separación de 4 Ciclo + Clique . . . . . . . . . . . . . . . . . . 44
4.1.11. Procedimiento de separación de Orden de Ciclo . . . . . . . . . . . . . . . . . . . 44
4.1.12. Procedimiento de separación de Ciclo Impar . . . . . . . . . . . . . . . . . . . . . 45
4.2. Heurı́sticas primales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.1. Heurı́stica primal de redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.2. Heurı́stica primal aplicando un modelo de programación lineal . . . . . . . . . . 47
5. Resultados computacionales 49
5.1. Experimentos y ajustes de parámetros relacionados al problema de clique de peso máxima 49
5.2. Contribución de cada familia de desigualdades básicas . . . . . . . . . . . . . . . . . . . 51
5.2.1. Tiempos de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.2. Cotas duales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2.3. Cantidad de nodos en el árbol de enumeración . . . . . . . . . . . . . . . . . . . 58
5.2.4. Cantidad de separaciones efectivas . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.2.5. Determinación de familias convenientes para incluir en el algoritmo . . . . . . . . 60
5.3. Experimentos con las heurı́sticas primales y CPLEX . . . . . . . . . . . . . . . . . . . . 60
5.4. Experimentos con los parámetros del Branch & Cut . . . . . . . . . . . . . . . . . . . . 64
A. Descripción de la implementación 69
A.1. El entorno Abacus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.1.1. Diseño general de Abacus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.2. Descripción general de la implementación . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.2.1. Modelado del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
A.2.2. Extensiones efectuadas al entorno Abacus . . . . . . . . . . . . . . . . . . . . . . 71
Bibliografı́a 87
Índice de algoritmos
Introducción
La investigación operativa es una rama interdisciplinaria de la matemática aplicada que usa métodos
analı́ticos avanzados para conseguir soluciones óptimas o cercanas al óptimo en procesos de toma de
decisiones. La misma tiene su origen en los comienzos de la Segunda Guerra Mundial, con fines militares.
Sus técnicas se desarrollaron de manera tal de ser capaces de abordar y tratar una amplia variedad de
problemas. Sus contribuciones no sólo incluyen la mejora de la productividad de innumerables empresas
comerciales, sino también importantes progresos en la actividad policial, sanitaria y militar [19].
Definición 1.1.1 (Problema de optimización combinatoria) Dado un conjunto discreto (en ge-
neral finito) S de soluciones factibles y una función objetivo f : S −→ R, se desea encontrar un elemento
s∗ ∈ S que satisfaga:
El conjunto S en general está definido por estructuras combinatorias (por ejemplo, caminos en un
grafo, diagramas de Gantt, fixtures para un campeonato deportivo, etc). Pretender escoger la mejor
posibilidad existente en S en un tiempo razonable puede resultar no tan trivial, aún contando con una
forma algorı́tmica para evaluar la función objetivo y una caracterización del conjunto. Es deseable en-
contrar alternativas más prometedoras que simplemente evaluar la función objetivo sobre los elementos
de S de manera exhaustiva.
Cuando las soluciones óptimas son difı́ciles de hallar desde el punto de vista computacional, se
pueden diseñar algoritmos heurı́sticos para producir soluciones cuya función objetivo sea cercana al
valor óptimo. Se cuenta con una amplia variedad de este tipo de algoritmos: genéticos, tabú search, etc.
en donde cada uno de ellos se enfrenta al problema desde una perspectiva distinta. Cuando la heurı́stica
tiene una garantı́a de optimalidad, que garantiza que la solución generada se encuentra a menos de
cierta distancia del valor óptimo, este tipo de procedimientos se denominan algoritmos aproximados.
El enfoque heurı́stico no siempre es útil ya que en ocasiones es necesario contar con la solución
óptima. A pesar de la intratabilidad de estos problemas, ha habido cierto progreso en el área durante
los últimos años. Los algoritmos Branch & Cut son un ejemplo de ello y la principal herramienta en la
que se basa el estudio de este trabajo.
La programación lineal es una técnica que consiste en la optimización de una función objetivo lineal
sujeta a restricciones impuestas por desigualdades lineales. Un problema de programación lineal puede
2 Optimización combinatoria y programación lineal entera
Definición 1.1.2 (Problema de programación lineal) Dada una matriz A ∈ Rm×n y vectores b ∈
Rm , c ∈ Rn , se desea encontrar un vector x∗ ∈ Rn con Ax∗ ≤ b que satisfaga:
cT x = max{cT x : Ax ≤ b}.
Las desigualdades Ax ≤ b son las restricciones que especifican un poliedro convexo sobre el cual la
función objetivo debe ser optimizada.
El popular algoritmo Simplex [7] desarrollado por George
Dantzig, resuelve problemas de programación lineal construyendo
una solución admisible en un vértice del poliedro {x : Ax ≤ b} y
luego moviéndose sucesivamente sobre las aristas del mismo hacia
los vértices que contengan valores más altos de la función objeti-
vo, hasta finalmente encontrar el óptimo. Aunque este algoritmo
tiene un comportamiento pobre en el peor caso, habitualmente
es muy eficiente y es ampliamente utilizado en la práctica. Pos-
teriormente se hallaron otros métodos con peor caso polinomial,
probando que el problema general de programación lineal perte-
nece a la clase P [11, 13]. Figura 1.1: Un sistema de desigualdades
lineales define un poliedro como la región
En caso de existir la restricción adicional de que algunas o factible. El algoritmo Simplex comienza
todas las variables tomen valores enteros, nos encontramos frente por un vértice inicial y se mueve sobre las
al problema general de programación lineal entera mixta: aristas del poliedro hasta alcanzar el vérti-
ce cuya solución es óptima.
Definición 1.1.3 (Problema de programación lineal entera mixta) Dada una matriz A ∈
Rm×n , vectores b ∈ Rm , c ∈ Rn y un subconjunto I ⊆ {1, · · · , n} se desea encontrar un vector x∗ ∈ Rn
con Ax∗ ≤ b y xi entera para i ∈ I que satisfaga:
Cuando todas las variables deben ser enteras (i.e., si I = {1, · · · , n}), este problema se denomina
problema de programación lineal entera. Si las variables de I deben tomar valores entre 0 y 1, el
problema se puede llamar problema (mixto) de optimización 0-1.
En contraste con la programación lineal que puede ser resuelta eficientemente, está demostrado
que los problemas de programación lineal entera mencionados son NP-hard. Esto resulta ser una gran
desventaja dado que la naturaleza de muchos problemas impone restricciones enteras. Mediante el
uso de variables enteras, es posible modelar requerimientos lógicos, costos fijos, cantidades y muchos
otros aspectos. Por ejemplo, si las variables modelaran la cantidad de restaurantes a abrir a modo de
maximizar cierta ganancia neta mensual, no tendrı́a sentido abrir 4.5 restaurantes.
Consideremos un problema de optimización combinatoria representado por medio de un problema
lineal entero, y llamemos S al conjunto de puntos factibles. Podemos asociar a este problema el poliedro
PS = conv(S) determinado por la cápsula convexa de los puntos de S. Los vértices de este poliedro
serán soluciones factibles del problema. No se conoce ningún algoritmo eficiente para calcular dicha
cápsula convexa PS de un conjunto de puntos S. Podemos sin embargo, concluir que un primer paso
para la resolución de un modelo de programación lineal entera es resolver, mediante el método Simplex,
el problema lineal asociado. Se trata de un problema lineal con la misma función objetivo y restricciones
que el modelo original, al que se le ha relajado la condición de que todas o algunas de las variables de
decisión puedan ser enteras. Este problema se denomina relajación lineal. Si la solución ası́ obtenida
es entera, se habrá encontrado entonces la solución del modelo de programación lineal entera. En caso
contrario y, lo más frecuente, la solución ası́ obtenida es un punto de partida que, en el mejor de los
casos, se aproxima a la solución del modelo, pero puede estar arbitrariamente lejos en el peor caso.
Por ejemplo, la Figura 1.2, a pesar de ser un poliedro en R2 , da una intuición del aporte que puede
llegar a dar una relajación lineal a la determinación de la cápsula convexa. Los puntos de interés son
Introducción 3
los que se encuentran dentro de esta región. Las caras del poliedro asociadas con el conjunto mı́nimo
de restricciones necesario para caracterizar la cápsula convexa se denominan facetas del poliedro.
Lamentablemente este punto de partida no admite un simple redondeo de los valores a una solución
real, ya que los nuevos puntos no presentan garantı́a alguna de factibilidad, tampoco de optimalidad
aún si ası́ lo fueran.
Una estrategia posible es hallar una desigualdad que sea cumplida por todos los puntos enteros, y
violada por la actual relajación lineal. Tal desigualdad se denomina corte y de allı́ derivan los métodos
de planos de corte [22], que pueden resultar muy útiles si se cuenta con un problema de optimización
lineal cuyo conjunto de desigualdades es demasiado grande como para ser representado explı́citamente
en una computadora, o manejado por un programa que resuelve problemas lineales. Agregando entonces,
esta desigualdad al conjunto de restricciones, tendremos un conjunto de soluciones más restringido que
continúa incluyendo a las soluciones enteras, pero que ha logrado dejar afuera a la solución dada por
la relajación lineal. Se puede resolver este nuevo problema lineal encontrando un óptimo distinto y
repitiendo el proceso indefinidas veces, idealmente hasta que la solución hallada sea entera. El siguiente
pseudocódigo esclarece este mecanismo básico para la resolución de problemas enteros.
1. Resolver el problema lineal max{cT x : Ax ≤ b}, para obtener el resultado de la relajación lineal x∗ .
2. Si x∗i es entera para todo i ∈ I, entonces x∗ es un óptimo del problema lineal entero original. Fin del algoritmo.
3. Si alguna coordenada x∗i con i ∈ I no es entera, hallar una desigualdad válida αT x ≤ β para todo x ∈ <n con
Ax ≤ β y xi ∈ Z para todo i ∈ I, de modo tal que αT x∗ > β.
Este esquema deja en evidencia el cuello de botella que radica en la generación de una desigualdad
válida cumplida por todos los puntos enteros, y violada en el óptimo actual (corte). Este problema se
conoce como problema de separación.
Tan pronto como P 6= N P , no habrá esperanzas de diseñar algoritmos para problemas NP-hard
que sean asintóticamente mucho mejores que la simple enumeración. Sin embargo, vale la pena estudiar
instancias de problemas que presenten tamaños razonables y que estén presentes en la práctica y hacer
surgir ideas útiles propias del problema en particular.
del valor óptimo [1, 21, 22]. En un problema de minimización, si la cota inferior sobre un nodo A
del árbol de enumeración es mayor que la cota superior de algún otro nodo B, entonces A puede ser
descartada. Este paso se conoce con el nombre de poda. Idealmente, el procedimiento termina cuando
todos los nodos del árbol de enumeración son podados o resueltos.
Aunque este enfoque no proporciona buenos resultados en la práctica, forma parte de uno de los
conceptos básicos que hacen al método Branch & Cut. El mismo surge como un hı́brido de los métodos
Branch & Bound y los métodos de planos de corte. Si luego de resolver la relajación lineal de un
subproblema no se puede cerrar el nodo correspondiente, entonces se busca una desigualdad violada por
el óptimo de la relajación. Si se encuentran desigualdades violadas (cortes), se agregan a la formulación
y se resuelve el problema lineal nuevamente. Si no se encuentra ningún corte, se continúa con el proceso
de branching. El siguiente pseudocódigo muestra las ideas básicas del método para un problema de
maximización:
3. Resolver la relajación lineal del subproblema asociado al nodo. Sea x∗ el óptimo de la relajación (cT x∗ es cota
superior del óptimo del subproblema). Si corresponde, actualizar la cota superior.
a) Si x∗ es solución factible del problema, actualizar la cota inferior (si corresponde). Cerrar el nodo y volver al
paso 2.
b) Si cT x∗ es menor que la cota inferior, ninguna solución factible del subproblema puede ser óptimo del
problema original (bounding). Cerrar el nodo y volver al paso 2.
5. Si las cotas inferior y superior coinciden, entonces la mejor solución factible hasta el momento es el óptimo del
subproblema. En caso contrario, volver al paso 2.
Se han desarrollado algoritmos basados en este método para un gran número de problemas de
optimización combinatoria [3, 12, 15, 22, 27]. Hasta la fecha, este enfoque ha resultado el más efectivo
para la resolución exacta de esta clase de problemas.
En este modelo se consideran dos fuentes de interferencia entre los enlaces. Por una parte, las
frecuencias asignadas a clientes de un mismo sector no se deben superponer debido a que establecen
comunicación con la misma antena de la radiobase correspondiente. Por otra, se tienen identificados
ciertos pares de clientes conflictivos en sectores distintos que, a pesar de comunicarse con antenas
distintas, eventualmente pueden interferir entre sı́.
Esta configuración puede ser representada por un grafo de interferencias con pesos asignados (G, d) =
(V, E, d) en el que el conjunto de nodos V define a los clientes, E a los pares de clientes conflictivos,
y los pesos de los nodos d ∈ Z+ a las demandas particulares. A lo largo de la tesis se denotará como
n = |V | a la cantidad de nodos y m = |E| a la cantidad de aristas.
En las radiobases, los osciladores proveen las diferentes frecuencias con una posible diferencia ∆
respecto de la requerida. En consecuencia, entre los intervalos de frecuencia de pares de clientes con-
flictivos cualesquiera, una distancia de al menos g = 2∆ ha de ser respetada. Durante este trabajo se
asume que ∆ = 0.
Se cuenta, además, con un espectro disponible [0, s], con s ∈ Z+ en el que todos los intervalos de
frecuencias deben ser comprendidos. Ası́, se desea obtener una asignación de un intervalo I(i) = [li , ri ] ∈
[0, s], con li , ri ∈ Z+ a cada cliente i ∈ V tal que ri − li ≥ di y que max {li , lj } − min {ri , rj } ≥ 0
para cada par de clientes conflictivos i y j. En definitiva, los datos de entrada del problema quedan
conformados por la cuádrupla (G, d, s, g)
El problema básico de asignación de frecuencias en sistemas de radio punto a multipunto consiste en
hallar una solución factible (i.e., una asignación adecuada de intervalos a cada cliente), y por lo tanto el
planteo anterior no incluye una función objetivo. Sin embargo, en la práctica suele suceder que se tiene
un conjunto M ⊆ V de clientes importantes, y es deseable asignar a estos clientes el mayor ancho de
banda posible [5, 31, 32]. En este contexto, se introduce la siguiente función objetivo para el problema:
X
máx (ri − li ). (1.1)
i∈M
El problema
Para cada vértice i ∈ V del grafo de interferencias, además de introducir las variables enteras li y ri ,
de modo tal que [li , ri ] represente el intervalo de frecuencias asignado al cliente i, se define la variable
de orden xij para cada arista ij ∈ E del grafo de interferencias, con i < j, de modo tal que xij = 1
si ri ≤ lj y xij = 0 en caso contrario. Con estas definiciones, una asignación de valores a las variables
(l, r, x) ∈ R2|V |+|E| representa una solución factible si y sólo si se cumplen las siguientes restricciones:
di ≤ ri − li ∀i ∈ V (2.1)
0 ≤ li ≤ ri ≤ s ∀i ∈ V (2.2)
ri ≤ lj + s(1 − xij ) ∀ij ∈ E, i < j (2.3)
rj ≤ li + sxij ∀ij ∈ E, i < j (2.4)
xij ∈ {0, 1} ∀ij ∈ E, i < j (2.5)
li , ri ∈ Z ∀i ∈ V (2.6)
Las restricciones de demanda (2.1) y de lı́mites (2.2) afirman que el intervalo I (i) = [li , ri ] debe
satisfacer la demanda di dentro del intervalo de espectro disponible [0, s]. Las desigualdades (2.3) y
(2.4) determinan las restricciones de antiparalelismo, que previenen la superposición de intervalos de
pares de clientes con conflictos. Finalmente, las restricciones (2.5) y (2.6) fuerzan que las variables de
orden sean binarias y los intervalos enteros, respectivamente.
Definición 2.1.1 (Poliedro de planificación cromática) Sea (G, d, s, g) una instancia del proble-
ma de asignación de frecuencias en redes punto a multipunto. Se define al poliedro de planificación
cromática P (G, d, s, g) ⊆ <2n+m como la cápsula convexa de todas las soluciones factibles (l, r, x) que
satisfacen las desigualdades (2.1) - (2.6).
8 Desigualdades válidas conocidas
Las restricciones mencionadas, si bien definen el conjunto de soluciones factibles, no definen faceta
alguna del poliedro, en general. Con lo cual, es necesario valerse de otras que refuercen a éstas. Por este
motivo, en la Sección 2.3 se presentan desigualdades válidas adicionales, con el propósito de estudiar la
efectividad de las mismas.
P
La función objetivo consiste en maximizar i∈M (ri − li ), en donde M ⊆ V representa un conjunto
de clientes principales.
Definición 2.2.1 (Desigualdades Clique) Sea i ∈ V un nodo de G, y sea K ⊆ N (i) una clique,
entonces X
dk xki ≤ li (2.7)
k∈K
Esta desigualdad afirma que si tenemos cierto subconjunto de clientes conflictivos (que forman
una clique en G) con i cuyos intervalos de espectro se ubican previos al de i, entonces la suma de
sus demandas debe ser menor o igual a li . Esto sucede porque los intervalos de los clientes ∈ K (en
particular, los que están ubicados previos al de i) no se pueden superponer. La Figura 2.1 expone un
ejemplo del intervalo asignado a i, resaltado en amarillo, respecto de las otras asignaciones de intervalos
a clientes. En ella, es importante notar a los intervalos señalados en púrpura y celeste, que representan
a aquellos asignados a k ∈ K tales que xki = 0 (previos a i) y xki = 1 (posteriores a i) respectivamente.
Definimos a smı́n (G, d, g) como el mı́nimo valor de s tal que P (G, d, s, g) no es vacı́o (i.e., P (G, d, s, g)
6= ∅ si y sólo si s ≥ smı́n (G, d, g)). Por su parte, dmáx = máxi∈V di es la mayor demanda entre los clientes.
Las desigualdades (2.7) son válidas para P (G, d, s, g) y definen facetas solamente si K es una clique
que cubre a N (i) y s ≥ smı́n (G, d, g) + 3 (dmáx + g) [28, 30].
Definición 2.2.2 (Desigualdades Clique Doble) Sea ij ∈ E una arista de G, y sea K ⊆ N (i) ∩
N (j) una clique, entonces
X
ri + dk (xik − xjk ) ≤ lj + (s − d(K))xji (2.8)
k∈K
P
es la desigualdad Clique Doble asociada a ij y a K, donde d(K) = k∈K dk .
El problema 9
Las desigualdades (2.8) son válidas para P (G, d, s, g) y definen facetas si s ≥ smı́n (G, d, g) +
4 (dmáx + g) [30].
Antes de proseguir con la siguiente familia de desigualdades, es Pmenester introducir la siguiente
definición: si K ⊆ V y j ∈ V \K, se define a cK (j) como máx(0, dj − k∈K\N (j) dk ). Dicho en palabras,
representa el máximo entre 0 y la diferencia que hay entre la demanda del cliente j y la suma de
las demandas de los clientes ∈ K que no son vecinos de j. cK (j) es un término que ajusta a ciertas
desigualdades, ya que en los casos en que no es 0, puede una desigualdad quedar innecesariamente
holgada. En la Figura 2.3 se pueden ver ejemplos en los que cK (j) = 0 y cK (j) > 0.
Las desigualdades Clique pueden obtenerse como un caso particular de estas, considerando K 0 = ∅.
La Figura 2.4 es capaz de aportar claridad mostrando la participación de cada parte de la ecuación.
cK (j) está dado por el último tramo del intervalo de k ∈ K 0 , y los nodos que están en K (los eventuales
que son conflictivos con k no se solapan) con púrpura. Se puede apreciar que, la suma de los intervalos
púrpura y la parte señalada como cK (j) no llega a ir más allá de li , dadas las relaciones establecidas
entre los intervalos al momento de definir la familia de desigualdades Clique Reforzada.
Las desigualdades Clique Reforzada son válidas para el poliedro P (G, d, s, g) y definen facetas si
s ≥ smı́n (G, d, 0) + 3 (dmáx ) [32].
Definición 2.2.4 (Desigualdades Doble Clique Reforzada) Sea ij ∈ E una arista de G, y sea
K 0 ⊆ N (i) ∩ N (j) una clique. Sea K una clique en [N (i) ∩ N (j)]\K 0 , entonces
!
X X X X
ri + dk (xik − xjk ) + cK (k)(xik − xjk ) ≤ lj + s − dk − cK (k) xji (2.10)
k∈K k∈K 0 k∈K k∈K 0
Las desigualdades Doble Clique Reforzada son válidas para el poliedro P (G, d, s, g) y definen facetas
de P (G, d, s, 0) si s ≥ smı́n (G, d, 0) + 4 (dmáx ) [32].
Definición 2.2.5 (Desigualdades Clique Replicada) Sea i ∈ V un nodo de G, y sea K una clique
que cubre N (i). Más aún, dado el subconjunto K 0 = {ki , . . . , kt } ⊆ K y una clique Q = {pk1 , . . . , pkt } ⊆
V \N (i) tal que pk k ∈ E para cada k ∈ K 0 (ver Figura 2.6), entonces
X X
dk xki + cK (pk )(xpk k − xik ) ≤ li (2.11)
k∈K k∈K 0
Al igual que las desigualdades Clique Reforzada, las desigualdades Clique pueden obtenerse como
un caso particular de estas, considerando Q = ∅. La Figura 2.7 es capaz de aportar claridad mostrando
un posible escenario de los términos de la ecuación que se involucran. En este ejemplo, el conjunto K
está dado por los intervalos de color púrpura y verde. En especial, los verdes tienen la correspondencia
establecida en la desigualdad pk1 k1 ∈ E y pk2 k2 ∈ E, con el conjunto Q, dado por los intervalos
de color celeste, y debido a ello, estos pares no pueden superponerse. Se asume que (k6 , pk1 ) ∈ E,
para que cK (pk1 ) corresponda a la longitud señalada en la figura. Según las variables de orden, en
donde xki = 1 para k = {1, 3, 4, 5} y xpk k − xik = 1 solamente para pk1 , la ecuación se reduce a:
dk1 + dk3 + dk4 + dk5 + cK (pk1 ) ≤ li , resultado que puede ser visiblemente comprobado.
Si γ (G, d, g) se define como el mı́nimo valor de s tal que P (G, d, s, g) admite una solución factible
en la que I (k) está ubicado después de I (pk ) para cada k ∈ K 0 , se puede notar que γ (G, d, g) ≥
smı́n (G, d, g). Las desigualdades Clique Replicada son válidas para el poliedro P (G, d, s, g) y definen
facetas del poliedro P (G, d, s, 0) si s ≥ γ (G, d, 0) + 3 (dmáx ) [32].
Definición 2.2.6 (Desigualdades Clique Doble Extendida) Sean i, j ∈ V dos nodos adyacentes
de G, y sea K una clique que cubre N (i) ∩ N (j). Más aún, sea t ∈ N (j)\N (i) un nodo fijado (ver
Figura 2.8), entonces
X
ri + dk (xik − xjk ) ≤ lj + (s − d(K) − cK (t)) xji + cK (t)xjt (2.12)
k∈K
12 Desigualdades válidas conocidas
La Figura 2.8 expone la estructura que soporta la familia de desigualdades Clique Doble Extendida.
Además, la Figura 2.9 ilustra un escenario posible. En el mismo, es posible asumir que k2 , k5 y k7 ∈
/ N (t)
y el resto de los nodos de k son vecinos de t. Luego, cK (t) está señalado correctamente. Se tiene que
xji = 0, xjt = 1 y xik − xjk = 1 solamente para k ∈ {1, 4, 6}, en caso contrario, esta variable toma valor
nulo. De allı́ surge ri + dk1 + dk4 + dk6 ≤ lj + cK (t).
Las desigualdades Clique Doble Extendida son válidas para el poliedro P (G, d, s, g) e inducen facetas
de P (G, d, s, 0) si s ≥ smı́n (G, d, 0) + 4 (dmáx ) [32].
Definición 2.2.7 (Desigualdades Clique Doble 2-Extendida) Sean i, j ∈ V dos nodos adyacen-
tes de G, y sea K una clique que cubre N (i) ∩ N (j). Sean p ∈ N (i)\N (j) y t ∈ N (j)\N (i) dos nodos
fijados, (ver Figura 2.10) entonces
X
ri + dk (xik − xjk ) ≤ lj + ϕxji + cK (t)xpi + cK (p)xjt (2.13)
k∈K
La Figura 2.11, similar a la 2.9, ilustra un escenario posible de este tipo de desigualdades. En el
mismo, se asume que k2 , k5 y k7 ∈ / N (t) y el resto de los nodos ∈ K si, para que cK (t) sea acorde
lo señalado. Análogamente, se puede definir que k3 es el único nodo ∈ K tal que k3 ∈ / N (p). xji =
0, xpi = 1, xjt = 1 y xik − xjk = 1 solamente para k ∈ {1, 4, 6}, en caso contrario, es 0. De allı́ surge
ri + dk1 + dk4 + dk6 ≤ lj + cK (t) + cK (p). Por su parte, debido a la numerosa cantidad de participantes de
esta ecuación, la Figura 2.10 diagrama la estructura que soporta la familia Clique Doble 2-Extendida.
Las desigualdades Clique Doble 2-Extendida, al igual que las Clique Doble Extendida, son válidas
para el poliedro P (G, d, s, g) e inducen facetas de P (G, d, s, 0) si s ≥ smı́n (G, d, 0) + 4 (dmáx ) [32].
Definición 2.2.8 (Desigualdades Clique Doble Cerrada) Sean i, j ∈ V dos nodos adyacentes de
G, y sea K una clique que cubre N (i) ∩ N (j). Sean p ∈ N (i)\N (j) y t ∈ N (j)\N (i) dos nodos tales
que pt ∈ E y pk, tk ∈ E para todo k ∈ K, entonces
X
ri + dk (xik − xjk ) ≤ lj + ϕxji + ϕp xpi + ϕt xjt − ϕpt xpt (2.14)
k∈K
El problema 13
Figura 2.12: Ejemplo de desigualdad Clique Doble Cerrada. xji = 0, xpi = 1, xjt = 1, xpt = 1 y
xik − xjk = 1 solamente para k ∈ {1, 4, 6}, en caso contrario, es 0. De allı́ surge ri + dk1 + dk4 + dk6 ≤
lj + 3 ∗ d p + d t .
Nuevamente, las desigualdades Clique Doble Cerrada, al igual que las familias Clique Doble Extendida
y Clique Doble 2-Extendida, son válidas para el poliedro P (G, d, s, g) e inducen facetas de P (G, d, s, 0)
si s ≥ smı́n (G, d, 0) + 4 (dmáx ) [32].
αt = dt para t 6= t0
β = mı́n {di , dj , dk }
El significado de esta desigualdad puede observarse mediante la Figura 2.14, que ejemplifica uno de
los posibles escenarios. En él, K = {t0 , t1 , t2 , t3 , t4 , t5 }. Como mı́n {di , dj , dk } = dj y lj = 0, ocurre que
li ≥ dt2 + dt3 + dt6 + dt0 + dk + dj .
La familia 4 Ciclo + Clique es válida para el poliedro P (G, d, s, g). Asumiendo que s ≥ smı́n (G, 1, 0)
+5, la desigualdad 4 Ciclo + Clique asociada define una faceta de P (G, 1, s, 0) si y sólo si K es una
clique maximal en N (i) ∩ N (k) y N (i) ∩ N (j) ∩ N (k) = ∅ [31].
Esta desigualdad expresa el hecho de que la naturaleza no circular del espectro de frecuencias obliga
a que exista un primer y un último intervalo asociados a los dos nodos del ciclo. La Figura 2.15 clarifica
este concepto mediante la representación de un ciclo en el espectro, en el que xij = 1 si i < j a excepción
de x17 , concibiendo a 1 como el primer intervalo, y a 7 como el último.
La familia Orden de Ciclo es válida para el poliedro P (G, d, s, g) e induce facetas de P (G, d, s, 0)
si y sólo si el ciclo relacionado no posee cuerdas [31]. Un ciclo sin cuerdas C en un grafo es un ciclo tal
que cada uno de sus nodos es adyacente a exactamente dos nodos de C.
Figura 2.15: Ejemplo de ilustración de desigualdad Orden de Ciclo en el que hay un ciclo C =
{1, 2, 3, 4, 5, 6, 7} ⊆ G.
La intuición de esta desigualdad es que, al ser la longitud del ciclo impar, si se considera un primer
cliente y uno último sin pérdida de generalidad, estos no podrán solaparse. La Figura 2.16 expone un
escenario
Pen donde hay un ciclo de longitud 7. Luego, k = 3. Ası́, l2 , l4 , l6 ≥ 0. l1 , l3 , l5 ≥ 1 y l7 ≥ 2, con
7
lo cual i=1 li ≥ (0 ∗ 3) + (1 ∗ 3) + 2 ≥ 5.
Figura 2.16: Ejemplo de un escenario de la desigualdad Ciclo Impar en el que hay un ciclo C =
{1, 2, 3, 4, 5, 6, 7} ⊆ G.
La familia Ciclo Impar es válida para el poliedro P (G, d, s, g). Sea C2k+1 = (1, . . . , 2k + 1) con
k ≥ 2, asumiendo que s ≥ 3. La desigualdad Ciclo Impar asociada a C2k+1 induce una faceta de
P (G, d, s, 0) si y sólo si 2k + 1 6= 0(mod 3) [31].
16 Desigualdades válidas conocidas
Capı́tulo 3
En primer lugar, este capı́tulo caracteriza a los seis algoritmos usados para generar distintos con-
juntos de instancias. En lı́neas generales, se experimenta variando la distribución de los clientes en cada
sector, asignando demandas aleatorias de diversas maneras, variando las proporciones entre cantidad de
clientes y sectores, ası́ como también buscando formas de distribuir razonablemente a los clientes dentro
de una misma red. El detalle y variación de estos criterios adoptados son detallados a continuación.
Mediante el uso de los generadores, estarı́an surgiendo las instancias con las que se efectúan las pruebas
con el algoritmo Branch & Cut en los capı́tulos subsiguientes. La importancia de los generadores radica
en constituir un conjunto de instancias suficientemente realistas, de modo que los distintos resultados
arrojados a lo largo de este trabajo, también lo sean.
Se torna importante a esta altura, contar con métodos que, dada una instancia, sean capaces de
generar todas las desigualdades de cada familia presentada en el capı́tulo anterior, y de esta manera, el
programa las pueda considerar en su pool inicial de desigualdades. Básicamente se trata de métodos que
iteran a los clientes y a partir de ellos se deducen los términos restantes, como ser, las cliques maximales
y demás clientes implicados. Este capı́tulo cuenta con una descripción de los mismos.
Valiéndose de los algoritmos que generan los distintos conjuntos de instancias y los métodos que
generan todas las desigualdades de cada familia, el capı́tulo concluye con dos pruebas preliminares que
apuntan a determinar el grado de contribución del agregado de cada familia al modelo de programación
lineal entera presentado en el Capı́tulo 2. En el primer grupo de experimentos (Sección 3.3), se analiza
el impacto de cada familia sobre el valor óptimo de la relajación lineal. En el segundo grupo de expe-
rimentos (Sección 3.4), se obtienen los resultados producto de ejecutar a las instancias en un entorno
Branch & Bound agregando cada familia de desigualdades válidas. Se espera que al final del capı́tulo
se pueda contar con una primera intuición acerca de la calidad de las mismas.
Dado que no es fácil contar con instancias reales debido a que los datos de las redes suelen ser de
carácter confidencial, se intentó utilizar un criterio de generación automática de instancias de prueba
con el objeto de simular aspectos que podrı́an estar presentes en instancias reales.
Se experimentó sobre instancias generadas aleatoriamente a partir de seis tipos de generadores
denominados por las letras A a F . A continuación se definen todos los parámetros que se utilizan para
la generación de los grupos, para luego poder especializarse en cada generación en base a ellos. Los
generadores D y F harán uso solamente de algunos de estos parámetros, y los mismos se especificarán
en las secciones relacionadas.
n, el número de clientes
k, el número de sectores
s desde y s hasta, definen la cantidad s hasta−s desde+1 de instancias a generar y, en la i-ésima
instancia el intervalo de espectro disponible [0, s], siendo s = s desde + i
semilla, la semilla del generador de números pseudoaleatorios
area, el área disponible para ubicar a los distintos clientes
Por lo menos un cliente es asignado a cada sector. Si llegara a haber más clientes que sectores, se
les asigna un sector aleatoriamente. El criterio de elección de clientes importantes se basa en tomar el
de mayor demanda perteneciente a cada sector.
Sean c1 . . . cn , los clientes, m la cantidad de pares de clientes conflictivos. La salida de cualquiera de
estos generadores es un archivo de texto con el siguiente formato:
n
k
s
sector de c1 . . . sector de cn
demanda de c1 . . . demanda de cn
m
ci1 cj1 (ci1 y cj1 presentan conflicto, i 6= j)
..
.
cicc cjcc
Para los cálculos que dependan de la longitud del espectro (por ejemplo, uno querrı́a basarse en él
para una asignación de demandas a los clientes coherente, asignándole a cada uno un porcentaje del
mismo, construyendo ası́ una instancia posiblemente factible), con excepción del grupo E se toma el
parámetro s desde y no la longitud particular s ∈ [s desde, s hasta] de la instancia. El propósito de
esto es contar con instancias que van de lo no factible a lo factible ya que son de interés los casos que
se encuentran en el lı́mite de la factibilidad. Los mismos son particularmente difı́ciles de resolver, y es
el propósito entonces determinar en qué grado ciertas desigualdades válidas pueden contribuir a una
eficiente búsqueda de soluciones o determinar que la instancia es no factible.
3.1.1. Grupo A
El primer grupo consiste de una generación aleatoria natural de instancias aproximadamente re-
gulares. Presenta aleatoriedad en las asignaciones de demandas a clientes, áreas a sectores y aristas
∈ Ex .
Se asignan a los clientes demandas al azar en el intervalo [1, 1.7 × s desde × k/n]. La expresión
1.7×s desde×k/n apunta a una asignación de demandas razonable, de modo que la instancia resultante
llegue a ser factible pero tampoco generosa, es decir, con porciones de espectro disponibles, sin asignar.
Además, la misma depende del parámetro s desde intencionalmente como se explicó en el apartado
anterior, con el objeto de variar el nivel de factibilidad dentro de un rango de instancias.
Con el objeto de generar el conjunto Ex , cada cliente se ubica aleatoriamente y de manera uniforme
en un punto ∈ [0, area] × [0, area], es decir, en un área geográfica plana, con distancia a lo sumo 3 de
su estación base. Con esto se apunta a simular el uso de antenas omnidireccionales, es, decir, cubriendo
360◦ de longitud. Es por ello que es posible ubicar a cada cliente teniendo en cuenta no más que la
distancia a la antena.
Si la distancia entre dos clientes cualesquiera de distintos sectores es menor a 2, entonces se los
considera conflictivos, es decir, se agrega una arista entre ellos en el grafo que modela al problema.
Luego a menor área, es mayor la probabilidad de conflictos entre clientes.
El Algoritmo 1 presenta el pseudocódigo de este generador de instancias.
Experimentos a priori con las desigualdades válidas 19
Ejemplo
20
6
100
0 1 2 3 4 5 4 4 1 2 2 0 2 0 2 0 3 0 1 3
2 19 12 20 49 29 46 51 26 23 40 10 36 40 31 35 10 28 4 33
14
1 16
1 19
4 10
4 12
6 10
6 12
7 9
7 10
7 12
7 14
8 16
8 19
16 18
18 19
20 Instancias de prueba
La Figura 3.1 muestra una representación gráfica de una instancia tı́pica de este grupo. Los 20 clientes se
encuentran marcados mediante rombos y un número que describe la demanda. Los cı́rculos representan
a las 6 radiobases (que atienden cada sector) y, a modo ilustrativo se presentan cı́rculos concéntricos
con centro en cada radiobase, que pretenden dar la intuición acerca del alcance de cada antena (es
decir, el sector correspondiente). Los conflictos se diagraman mediante lı́neas que unen a los clientes
involucrados.
Figura 3.1: Ejemplo de instancia de tipo A con 20 clientes, 6 sectores y espectro disponible 100. Los
clientes se ubican en posiciones aleatorias dentro del área geográfica definida, con distancia de a lo sumo
3 de su estación base. Se puede apreciar una intuición del alcance de las antenas omnidireccionales hacia
sus clientes.
3.1.2. Grupo B
El grupo B coloca en cada sector a un cliente importante con demanda distinguiblemente mayor al
resto. El mismo resulta a partir de la motivación de simular estructuras de demandas similares a las que
suelen suceder en la práctica [5], en las que un cliente importante de un sector representa tı́picamente
a un grupo de clientes individuales con condiciones de interferencia similares, y entonces el hecho de
maximizar el intervalo de frecuencias reservado para este grupo, habilita al proveedor a mantener el
mismo plan de frecuencias aún si nuevos clientes se unieran a la compañı́a (siempre que puedan ser
integrados al grupo del cliente importante). Por lo tanto, maximizar la frecuencia reservada para estos
grupos de clientes importantes da, como resultado, un plan de frecuencias, que es en cierto sentido,
robusto ante las posibles extensiones del conjunto de clientes. Esta caracterı́stica es importante para
el proveedor dado que cambiar el plan de frecuencias tı́picamente causa serios problemas. Si no puede
encontrarse un cambio incremental del viejo al nuevo plan, entonces el sistema debe ser reiniciado con
un nuevo plan desde cero, quedándose mientras tanto, sin servicio alguno.
Se implementó este grupo de instancias asignando a los clientes importantes una demanda al azar
contenida en el intervalo [0.8 × s desde, 0.9 × s desde]. Las demandas de los clientes restantes se en-
cuentran en [1, 4] con distribución uniforme.
La manera de generar el conjunto Ex fue idéntica a la implementada en el grupo A. El Algoritmo 2
presenta el pseudocódigo de este generador de instancias.
Experimentos a priori con las desigualdades válidas 21
Ejemplo
La Figura 3.2 muestra una representación gráfica de una instancia tı́pica de este grupo. Los 9
clientes se encuentran marcados mediante rombos y un número que describe la demanda. Los cı́rculos
representan a las 4 radiobases y, a modo ilustrativo se presentan cı́rculos concéntricos con centro en cada
sector, que pretenden dar la intuición acerca del alcance de cada antena. Los conflictos se diagraman
mediante lı́neas que unen a los clientes involucrados.
22 Instancias de prueba
Figura 3.2: Ejemplo de instancia de tipo B con 9 clientes, 4 radiobases y espectro disponible 100.
Los clientes se ubican en posiciones aleatorias dentro del área geográfica definida. Notar los clientes
principales pertenecientes a los sectores 0, 1, 2 y 3 con demandas 81, 89, 87 y 80 respectivamente.
3.1.3. Grupo C
Ejemplo
La Figura 3.3 muestra una representación gráfica de una instancia tı́pica de este grupo. Los 8
clientes se encuentran marcados mediante rombos y un número que describe la demanda. Los cı́rculos
representan a las 4 radiobases y, a modo ilustrativo se presentan cı́rculos concéntricos con centro en cada
sector, que pretenden dar la intuición acerca del alcance de cada antena. Los conflictos se diagraman
mediante lı́neas que unen a los clientes involucrados.
24 Instancias de prueba
Figura 3.3: Ejemplo de instancia de tipo C con 8 clientes, 4 sectores y espectro disponible 100. Los
clientes se ubican en posiciones aleatorias dentro del área geográfica definida. El sector 0 presenta 2
clientes cuyas demandas son 66 y 63.
3.1.4. Grupo D
El grupo D recibe, de entre los parámetros definidos, los siguientes: n, k, s desde, s hasta y semilla.
Si llamamos sec1 . . . seck a los sectores, se fijan dos sectores seci y secj , i 6= j, 1 ≤ i, j ≤ k en los
que el 75 % de los pares de clientes pertenecientes a uno y a otro son conflictivos, induciendo una
quasi-clique en el grafo de interferencias. Solo un 2 % del resto de pares de clientes de distintos sectores
son conflictivos. En la medida en que la quasi-clique sea lo suficientemente grande, entonces podrı́a
ocurrir que la instancia no sea factible debido a que esta estructura representarı́a algo muy similar a
un gran sector, es decir, el que resulta de los dos sectores fijados, abarcando aproximadamente el doble
de los clientes esperados. La motivación detrás de este grupo es suponer el escenario de un área que
abarca una excesiva concentración de clientes, en las que una sola radiobase podrı́a no tener capacidad
como para manejar todo el tráfico de estos clientes, por lo que se colocan dos radiobases cuyas áreas
de cobertura preferentemente coinciden. Se asignan a los clientes demandas al azar en el intervalo
[1, 15 × s desde × k/n]. El Algoritmo 4 presenta el pseudocódigo de este generador de instancias.
Experimentos a priori con las desigualdades válidas 25
Ejemplo
La Figura 3.4 muestra una representación gráfica de una instancia tı́pica de este grupo. Los 20
clientes se encuentran marcados mediante rombos y un número que describe la demanda. Los cı́rculos
representan a las 6 radiobases y, a modo ilustrativo se presentan cı́rculos concéntricos con centro en cada
sector, que pretenden dar la intuición acerca del alcance de cada antena. Los conflictos se diagraman
mediante lı́neas que unen a los clientes involucrados.
26 Instancias de prueba
Figura 3.4: Ejemplo de instancia de tipo D con 20 clientes, 6 sectores y espectro disponible 100. Las
posiciones de los clientes en este caso son ficticias dado que no se hace uso de esta lógica para este tipo
de instancia. Además de algunos conflictos esporádicos, se puede ver que todos los clientes del sector 0
presentan conflicto con los clientes del sector 1.
3.1.5. Grupo E
Ejemplo
La Figura 3.5 muestra una representación gráfica de una instancia tı́pica de este grupo. Los 8
clientes se encuentran marcados mediante rombos y un número que describe la demanda. Los cı́rculos
representan a las 4 radiobases y, a modo ilustrativo se presentan cı́rculos concéntricos con centro en cada
sector, que pretenden dar la intuición acerca del alcance de cada antena. Los conflictos se diagraman
mediante lı́neas que unen a los clientes involucrados.
28 Instancias de prueba
Figura 3.5: Ejemplo de instancia de tipo E con 8 clientes, 4 sectores y espectro disponible 100. Los
clientes se ubican en posiciones aleatorias dentro del área geográfica definida. La suma de las demandas
de cada sector se asemeja, si no es igual, al valor del intervalo de espectro disponible.
3.1.6. Grupo F
El grupo F recibe, de entre los parámetros definidos, los siguientes: n, k, s desde, s hasta y semilla.
Se asignan conflictos entre dos determinados clientes ci y cj con una probabilidad de 0.75 si y sólo si
ci pertenece a un sector impar y cj al sector consecutivo. De esta manera, sólo hay conflictos entre
cada sector impar y el siguiente. Esta noción de agrupar a los sectores de a pares, garantizando una
descomposición del grafo original en k/2 componentes conexas, análogamente permitirı́a descomponer
el problema original en k/2 problemas. El fin con que se considera a este grupo es, por consiguiente,
investigar cómo el algoritmo Branch & Cut podrı́a tomar provecho de esta situación.
Se asignan a los clientes demandas al azar en el intervalo [1, 15 × s desde × k/n] con distribución
uniforme. La expresión 1.5×s desde×k/n apunta, como fue explicado en la sección relacionada al grupo
A, a una asignación de demandas razonable, de modo que la instancia resultante llegue a ser factible
pero tampoco generosa, es decir, con porciones de espectro disponibles, sin asignar. Nuevamente es
importante notar que la misma depende del parámetro s desde intencionalmente, en vez de depender
de s.
El Algoritmo 6 presenta el pseudocódigo de este generador de instancias.
Ejemplo
La Figura 3.6 muestra una representación gráfica de una instancia tı́pica de este grupo. Los 8
clientes se encuentran marcados mediante rombos y un número que describe la demanda. Los cı́rculos
representan a las 4 radiobases y, a modo ilustrativo se presentan cı́rculos concéntricos con centro en cada
sector, que pretenden dar la intuición acerca del alcance de cada antena. Los conflictos se diagraman
mediante lı́neas que unen a los clientes involucrados.
Experimentos a priori con las desigualdades válidas 29
Figura 3.6: Ejemplo de instancia de tipo F con 8 clientes, 4 sectores y espectro disponible 100. Las
posiciones de los clientes son ficticias dado que esta instancia se basa en otros mecanismos para generar
Ex . Notar los conflictos excesivos entre clientes de los sectores 0 y 1 y, por otra parte, los sectores 2 y
3 que determinan, respectivamente, la descomposición de esta instancia en dos subinstancias.
Con el objetivo de determinar en qué grado contribuye el agregado de cada familia al valor óptimo
de la relajación lineal, se generaron 222 instancias aleatorias por medio de los generadores mencionados
en la sección anterior. Las mismas rondaron entre los 20 y 97 clientes, entre 2 y 40 sectores y entre
30 Algoritmos de generación de todas las desigualdades de cada familia
10 y 800 canales disponibles. Se corrió el algoritmo Branch & Bound sobre ellas, agregando todas las
desigualdades de cada familia por vez. El motivo detrás de estos experimentos es poder contar con una
noción a priori de la calidad de las mismas. Vale mencionar que para llevar a cabo el agregado de una
familia en su totalidad, es necesario contar con algoritmos de orden exponencial ya que, por lo general,
se recurrirá a iterar sobre grandes conjuntos como pueden ser las partes de los clientes conflictivos con
algún/os cliente/s determinado/s. A continuación se explican brevemente los algoritmos implementados
para su generación.
Generación de desigualdades de Clique Doble. Para cada par de clientes distintos se buscó el
conjunto de partes de los vecinos comunes de ambos clientes. Se agregó como desigualdad válida
toda clique maximal perteneciente a este conjunto, junto con los clientes asociados. El Algoritmo
8 clarifica esta explicación.
Generación de desigualdades de Clique Replicada. Se optó por trabajar con una simplifica-
ción de esta familia. Recordando la Definición 2.2.5, debido a que Q necesita ser una clique y debe
haber un matching perfecto entre Q y K’ (determinarlo generarı́a un excesivo costo computacio-
nal), entonces esta generación considera desigualdades en las que |Q| = |{pk }| = 1. El Algoritmo
11 provee el detalle necesario para una mayor comprensión acerca de la generación de esta familia.
Experimentos a priori con las desigualdades válidas 31
luego la cola es inicializada con todos los caminos de longitud 0, es decir, todos los vértices. Los
caminos se generan extrayendo los elementos de la cola uno a uno, encolando a la vez los caminos
que se encuentran con la longitud que se maneja en cada iteración.
Generación de desigualdades de Ciclo Impar. Similar a la generación de desigualdades de
Orden de Ciclo, consiste en agregar todas las desigualdades asociadas a todos los ciclos impares
del grafo que modela cada instancia. El algoritmo usado para extraer todos los ciclos impares
de un grafo determinado se basa en [20], al igual que la generación anterior, descartando los de
longitud par.
Generación de desigualdades de 4 Ciclo + Clique. El Algoritmo 15 itera sobre las posibles
combinaciones de tres nodos i, j y k tales que j es adyacente a i y a k pero i no es adyacente a k,
buscando un nodo t0 que pertenezca a una clique maximal K que tenga como vecinos a i y a k.
Cuadro 3.1: Promedio de porcentajes de ajuste, cantidad de instancias con el mayor porcentaje de
ajuste y cantidad de instancias no factibles detectadas al resolver las relajaciones lineales utilizando las
distintas familias de desigualdades válidas.
interés la observación del comportamiento en las instancias no factibles, ya que es muy importante en
la práctica el poder detectar las mismas en etapas tempranas, en el contexto de la ejecución de un
algoritmo Branch & Cut.
En particular, además de observar un comportamiento notable agregando las desigualdades de Clique
Doble, las mismas son capaces de detectar más casos no factibles que cualquier otra desigualdad. Esto
último es considerado de especial relevancia dado que impacta directamente en la rapidez del algoritmo
en general. Las familias Clique, Clique Reforzada, Clique Replicada, Orden de Ciclo, Ciclo Impar y
Orden de Ciclo no logran mejoras en absoluto, con lo cual se muestran agrupadas en una columna
rotulada como resto de las familias. El grupo E resulta ser particularmente diferenciado de los demás.
En el caso del grupo A, agregando las desigualdades de Clique Doble ciertos resultados ajustan
la relajación lineal hasta un 66.91 %. Es notable también el desempeño de Clique Doble Extendida
y Clique Doble 2-Extendida. En ninguna oportunidad estos agregados mejoran el agregado de las
desigualdades de Clique Doble. Se pueden observar en menor grado aportes por parte de Doble Clique
Reforzada y Clique Doble Cerrada. Las desigualdades Clique Doble Extendida son capaces de detectar
casos no factibles, casi tantos como Clique Doble. También es capaz, excepcionalmente, Clique Doble
2-Extendida.
Refiriéndose al grupo B, Doble Clique Reforzada muestra cierta constancia respecto de sus ajustes.
En cuanto a detección de instancias no factibles, Clique Doble Extendida y Clique Doble 2-Extendida
parecen superar a Clique Doble. Doble Clique Reforzada, a pesar de su escaso aporte en general, también
tiene un comportamiento notable en esta detección.
Clique Doble alcanza su máximo ajuste con un 69.7 % en el grupo C. Clique Doble Cerrada percibe
una leve mejora respecto de los grupos anteriores.
Hay ejemplos aislados en los que tanto Clique Doble 2-Extendida como Clique Doble Cerrada ex-
ponen porcentajes de mejora mayores a los de Clique Dobleen el grupo D.
Las instancias del grupo E demuestran ser notablemente diferentes. Recordemos que en estas ins-
tancias, cada cliente posee una demanda fijada como s/p, siendo p la cantidad de clientes del sector al
que pertenece y s el espectro En primer lugar, sólo obtienen mejoras cuatro familias de desigualdades.
Estas son Clique Doble, Doble Clique Reforzada, Clique Doble Extendiday Clique Doble 2-Extendida
. En particular, Clique Doble consigue resultados aún más diferenciados que el resto y uniformes, ya
que los ajustes son siempre mayores a 70 %. El Cuadro B.5 (página 85) exhibe estos resultados, entre
el 72.15 % y el 87.88 %. Moviéndose en otro rango de porcentajes, Doble Clique Reforzada tiene cierto
aporte significativo. Clique Doble Extendida y Clique Doble 2-Extendida no demuestran ser suficiente-
mente uniformes, ajustando solamente (pero alcanzando porcentajes de alrededor del 79 %) en escasos
ejemplos.
La ejecución del algoritmo sobre las instancias del grupo F expone una conducta similar a la que se
observa en los grupos anteriores. Sin embargo, Clique Doble muestra ciertas vulnerabilidades en algunas
instancias. Estas mismas de todas maneras son ajustadas por Clique Doble Cerrada, con lo cual estas
dos familias resultan ser un novedoso complemento.
hasta que terminen de ejecutarse. Si para ese entonces no se logra un resultado garantizado, el programa
arroja el contexto actual, informando entre otras cosas, la mejor cota dual hallada al momento. Por
ende, el correr 90 instancias agregando las 11 familias de desigualdades de a una por vez, cuyos tiempos
de ejecución en el peor caso son 60 minutos, llevó a que este conjunto de pruebas tarde aproximadamente
dos meses en correr.
Recordemos que cada procedimiento de agregación (explicados en la Sección 3.2) es de por sı́ com-
plejo, con lo cual la cantidad arbitraria de desigualdades agregadas para cada familia fue de a lo sumo
(n + 3 ∗ m), siendo n y m la cantidad de nodos y aristas de cada instancia, respectivamente. Por ende,
cuando se incluyeron todas las familias a la vez, fueron (n + 3 ∗ m) ∗ 11 en total.
Otra particularidad fue encontrarse con instancias en las cuales, después de tiempos razonables de
ejecución (20-30 minutos, en donde suelen haber muchos nodos abiertos y por ende, una utilización
llamativa de recursos de memoria), la librerı́a CPLEX arrojaba una excepción al inicializar uno de los
tantos subproblemas, provocando que el programa termine inesperadamente.
Lamentablemente no se puede contar con datos a partir del resultado de la ejecución de un algo-
ritmo Branch & Bound puro, es decir, sin agregar ninguna familia extra de desigualdades, debido a la
dificultad que radica en la magnitud a la que llegan este tipo de corridas, imposibilitando la obtención
de resultados.
Hubiera sido interesante también, conocer en esta sección los tiempos de ejecución, mas con el tope
de tiempo impuesto y las terminaciones del programa debido a errores de la librerı́a CPLEX, este dato
no es capaz de proveer información alguna. Esto también impacta en la imposibilidad de mostrar la
cantidad de nodos en el árbol de enumeración, ya que son relativos a la cantidad de tiempo que el
programa estuviese corriendo.
Como dificultad adicional, debido a la dificultad que existe para hallar soluciones factibles aún si se
agregan todas las desigualdades a la vez, la generación de heurı́sticas primales empieza a adquirir peso,
para ası́ poder generar cotas primales y analizar los gaps de optimalidad. Lamentablemente contando
sólo con el valor dual pero sin la cota primal, una caracterı́stica tan interesante para estudiar como el
gap de optimalidad, pierde el sentido y la definición.
La alternativa que se brinda es exponer resultados estadı́sticos generales (cantidad de instancias
resueltas, cantidad de instancias que terminaron con un resultado garantizado, etc.) en el Cuadro 3.2 y
los valores duales en los Cuadros 3.3 y 3.4 como una medida de cuán bien acotan las desigualdades de
cada familia (siempre que el programa no haya terminado inesperadamente o no se haya quedado sin
memoria). Se optó por partir estos resultados en dos Cuadros de manera tal que en el primero de ellos
se encuentren los resultados relacionados a las familias simples, es decir aquellas que no están asociadas
a dos nodos. Estas son, Clique, Clique Replicada, Clique Reforzada, Orden de Ciclo, Ciclo Impar y
4 Ciclo + Clique. En el segundo de ellos se encuentran detallados los resultados obtenidos a partir
de las desigualdades dobles, que son Clique Doble, Doble Clique Reforzada, Clique Doble Extendida,
Clique Doble 2-Extendida y Clique Doble Cerrada. También la última columna expone los resultados
de aquella ejecución que tiene en cuenta a todas las familias de desigualdades.
Respecto del Cuadro 3.2, se pueden destacar Clique Doble y el agregado de todas las familias a
la vez, ambas filas resaltadas con verde. Estos dos contextos resolvieron con resultado garantizado
prácticamente el doble de instancias que el resto de las familias individualmente. En el otro extremo,
las peores ejecuciones son mediante el uso de las familias Orden de Ciclo y Ciclo Impar, señaladas con
color rojizo.
36 Impacto sobre el Branch & Bound
Respecto de los Cuadros 3.3 y 3.4, se puede apreciar que esta división no es arbitraria, en cuanto
a que las familias dobles parecen conocer la manera de resolver las instancias. Las celdas pintadas con
tono rojo son precisamente instancias que terminaron su ejecución repentinamente debido a la falta
de memoria. Las que se encuentran en tono rosado, son las instancias que terminaron su ejecución
debido al tope de tiempo impuesto. La diferencia más rigurosa es causada por la familia Clique Doble,
la cual no sólo sabe reducir significativamente la cantidad de ejecuciones que terminan por falta de
memoria a diferencia de lo que se ve en el Cuadro 3.3, como cualquier otra familia doble, sino también
encontrar numerosos valores duales garantizados, es decir, los que no están pintados de color. Si bien
Doble Clique Reforzada supera a Clique Reforzada, sus orı́genes similares llevan a comprender sus
resultados, análogamente similares. Esta analogı́a, sin embargo no se ve reflejada entre Clique y Clique
Doble. La inclusión de Clique Doble Cerrada muestra ser la más débil entre las demás de su Cuadro.
Una singularidad es, que ciertas ejecuciones si bien alcanzan la solución óptima, terminan por falta de
tiempo de todas maneras.
En esta circunstancia, se podrı́a concluir que el motivo por el cual la combinación de todas las familias
a la vez, tiene efecto positivo gracias a la utilización de Clique Doble. Más aún, el concepto doble en
general parece contar con un rol que hace la diferencia, y es particularmente eficaz. Además, si bien
es complicado hallar soluciones factibles para las familias que no son Clique Doble, una caracterı́stica
deseable que surge es entonces, al menos el grado de aporte que ellas puedan generar para encontrarlas.
Esto enfatiza la necesidad de la generación de heurı́sticas primales para ası́ contar con cotas inferiores
y, más aún, mediante el gap de optimalidad contar con una medida más clara acerca del ajuste de cada
familia de desigualdades válidas cuando no son capaces de hallar soluciones óptimas.
Experimentos a priori con las desigualdades válidas 37
Grupo n k s Clique Clique Reforzada Clique Replicada Orden de Ciclo Ciclo Impar 4 Ciclo + Clique
A 20 2 156
A 20 3 199
A 20 4 135
A 25 4 128
A 30 10 499
A 30 3 131 347
A 30 3 140 373
A 35 4 113
A 35 4 145
A 40 4 134 481 481 481 481
A 40 4 135 476 476 476
A 40 4 150 533 534 534
A 50 5 148 673 673 673 673 673 673
A 78 40 127 2817 2813 2816 2813 2813 2817
A 80 13 53 437 437 437 437 437 437
B 20 10 519 4136 4136 4136 4136 4136 4136
B 20 4 56
B 20 4 66
B 20 4 80
B 20 4 88
B 30 10 135
B 40 10 270
B 40 10 288
B 41 6 103
B 41 6 120
B 50 10 50
B 50 30 109
B 80 12 44 492 494 494 494 494 494
B 95 11 71 682 683 683 683 682 683
B 97 10 80 770 771 771 771 771 771
C 20 2 121
C 20 2 123
C 20 2 126
C 20 2 131
C 20 2 138
C 20 2 199
C 20 4 175
C 25 4 27
C 42 7 23 105
C 42 7 49 237 236
C 50 10 22 166
C 50 10 26 202
C 50 10 33
C 60 8 47 270 270 270 270 270 270
C 73 12 45 431 431 431 431 431 431
D 20 3 156
D 20 3 162
D 20 3 166
D 20 3 171
D 20 3 172
D 20 3 177
D 25 3 22
D 30 3 186 519 519 518 519
D 30 4 130
D 30 4 198
D 42 5 18 64 66 66
D 42 5 19 69 70 70
D 53 7 65 314 314 314 314 314 314
D 72 10 60 522 522 522 522 522 522
D 78 11 44 369 369 369 369 369 369
E 20 2 110
E 20 2 120
E 20 2 200
E 20 2 697
E 20 3 126
E 25 3 80
E 30 3 182 436
E 42 4 65 224
E 42 5 30 127
E 53 7 415 2458
E 64 9 540 4107
E 73 11 73 657 657
E 80 7 70 412 444 444 444 444 444
E 90 7 74 457 476 476 476 476 476
E 90 7 79 465 509 509 509 509 509
F 20 2 240
F 20 2 322
F 20 2 652
F 24 3 18
F 24 3 26 69
F 24 3 35
F 30 4 238 680 680
F 31 3 152 289 289 289
F 42 6 16 58 60 60 60 60
F 42 6 19 87 87 87
F 42 6 24 92 92 92 92
F 73 11 48 360 360 360 360 360 360
F 73 11 73 562 562 562 562 562 562
F 77 14 98 870 870 870 870 870 870
F 83 10 77 596 596 596 596 596 596
Cuadro 3.3: Cotas duales obtenidas por un algoritmo Branch & Bound con el agregado de las familias Clique,
Clique Reforzada, Clique Replicada, Orden de Ciclo, Ciclo Impar y 4 Ciclo + Clique. Las celdas en tono rojo
terminaron su ejecución debido a la falta de memoria. Las de tono rosado, debido al tope de tiempo.
38 Impacto sobre el Branch & Bound
Grupo n k s Clique D. D. Clique Reforzada Clique D. Ext. Clique D. 2-Ext. Clique D. Cerrada Todas
A 20 2 156 134 134
A 20 3 199 412 479 412
A 20 4 135 309 395 309
A 25 4 128 226 396 226
A 30 10 499 2922 3,150 3,257 2922
A 30 3 131 151 347 337 151
A 30 3 140 195 373 354 195
A 35 4 113 156 390 309 332 156
A 35 4 145 373 527 502 518 373
A 40 4 134 256 481 359 481 256
A 40 4 135 202 476 353 417 202
A 40 4 150 256 534 396 401 256
A 50 5 148 382 673 436 673 382
A 78 40 127 2530 2819 2715 2819 2812 2530
A 80 13 53 362 437 417 428 427 359
B 20 10 519 4136 4136 4136 4136 4136 4136
B 20 4 56 90
B 20 4 66 110
B 20 4 80 138 138
B 20 4 88 154 154
B 30 10 135 1009 1009
B 40 10 270 2097
B 40 10 288 2281 2241
B 41 6 103 537 592 563 575 537
B 41 6 120 639 694 664 678 639
B 50 10 50 414 456 414
B 50 30 109 1,735
B 80 12 44 394 480 454 475 490 394
B 95 11 71 585 668 635 677 683 585
B 97 10 80 623 757 705 721 768 623
C 20 2 121 223 179 120
C 20 2 123 220 131 149 70
C 20 2 126 232 188 232 175
C 20 2 131 132 232 136 132
C 20 2 138 247 155 176 92
C 20 2 199 371 278 379 275
C 20 4 175 305 214
C 25 4 27 64 94 79 63
C 42 7 23 52 105 82 89 52
C 42 7 49 198 235 212 215 198
C 50 10 22 117 161 117
C 50 10 26 157 207 157
C 50 10 33 245 298 245
C 60 8 47 205 269 246 270 265 205
C 73 12 45 352 427 402 430 422 352
D 20 3 156 364 285
D 20 3 162 200 283 200
D 20 3 166 154 154
D 20 3 171 188 188
D 20 3 172 279
D 20 3 177 235
D 25 3 22 41 21
D 30 3 186 456 517 464 511 440 421
D 30 4 130 241 412 241
D 30 4 198 556 369
D 42 5 18 28 66 53 57 65 28
D 42 5 19 38 70 59 60 69 38
D 53 7 65 313 314 313 314 314 313
D 72 10 60 446 522 469 512 522 446
D 78 11 44 305 369 359 364 369 305
E 20 2 110 24 24
E 20 2 120 106 25
E 20 2 200 44 628 44
E 20 2 697 146
E 20 3 126 57 57
E 25 3 80 32 32
E 30 3 182 60 372 60
E 42 4 65 36 226 36
E 42 5 30 35 109 35
E 53 7 415 479 1999 479
E 64 9 540 762 3848 762
E 73 11 73 171 650 633 171
E 80 7 70 73 439 444 444 444 73
E 90 7 74 79 472 476 476 476 79
E 90 7 79 90 505 509 509 509 90
F 20 2 240 234 240 240 240 240 233
F 20 2 322 322 322 322 322 322 322
F 20 2 652 652 652 652 344 344
F 24 3 18 13 13
F 24 3 26 52
F 24 3 35 47
F 30 4 238 541 675 609 607 541 523
F 31 3 152 252 289 289 289 289 251
F 42 6 16 33 60 46 43 55 27
F 42 6 19 40 87 56 57 70 40
F 42 6 24 55 92 70 81 80 55
F 73 11 48 337 360 341 351 316 304
F 73 11 73 513 562 528 539 506 487
F 77 14 98 820 865 854 856 844 815
F 83 10 77 520 596 565 576 548 518
Cuadro 3.4: Cotas duales obtenidas por un algoritmo Branch & Bound con el agregado de las familias Clique
Doble, Doble Clique Reforzada, Clique Doble Extendida, Clique Doble 2-Extendida, Clique Doble Cerrada y
del agregado de todas a la vez. Las celdas con tono rojo terminaron su ejecución debido a la falta de memoria.
Las de tono rosado, debido al tope de tiempo.
Capı́tulo 4
Los algoritmos Branch & Cut se basan en el cálculo simultáneo de cotas inferiores y superiores de la
solución óptima. Las cotas superiores se obtienen por medio de la resolución de las relajaciones lineales
asociadas a cada nodo del árbol de enumeración, eventualmente ajustados por medio de planos de
corte, mientras que las cotas inferiores son halladas por medio de procedimientos heurı́sticos y cuando
la relajación lineal asociada con algún subproblema tiene óptimo entero. Las desigualdades válidas
halladas para el problema, junto con procedimientos de separación adecuados, constituyen el corazón
del algoritmo.
Este capı́tulo se centra en una descripción detallada del algoritmo Branch & Cut implementado.
Esto habla de describir dos aspectos principales: el primero es abordado en la Sección 4.1, en donde se
describen los procedimientos de separación implementados para las familias de desigualdades descritas
en capı́tulos anteriores, que contribuyen a mejorar las cotas superiores. El otro aspecto, analizado en
la Sección 4.2, se basa en presentar heurı́sticas primales que, análogamente contribuyen a encontrar
soluciones factibles y, por lo tanto, proporcionar cotas inferiores del valor óptimo.
Dado que el problema de clique con peso máximo es NP-Completo ([6]), parte de este trabajo
consiste en idear heurı́sticas eficientes en las que no esté garantizado el resultado exacto pero que sin
embargo puedan ser de interés para aplicarlos como subrutinas de los procedimientos de separación.
Se estudiaron dos alternativas para resolver el problema. La primera se llama Best In y consiste en
un enfoque goloso en el cual la clique maximal se construye agregando repetidamente nodos que posean
el máximo peso de entre los nodos candidatos, de a uno por vez. El Algoritmo 16 da a conocer los
lineamientos de esta alternativa.
Dados los comentarios incluidos en el Algoritmo 16, la complejidad temporal resulta ser de O(n4 ),
siendo n la cantidad de nodos del grafo de entrada.
La segunda alternativa explorada apunta a un algoritmo de búsqueda local, basado en el algoritmo
presentado en [25]. La búsqueda local es una técnica común aplicada a problemas de optimización
que sirve para encontrar soluciones cercanas a la óptima en un tiempo razonable. La idea es partir de
40 Procedimientos de separación
una solución factible x y reemplazar repetidamente a x por un x0 mejorado el cual es seleccionado del
vecindario de x, definido como el conjunto de soluciones vecinas que pueden ser alcanzadas efectuando
pequeñas modificaciones a x. A raı́z de que a vecindarios más grandes la complejidad computacional
aumenta, es deseable mantenerla en niveles razonables. Para esto nace el concepto de búsqueda local
variable, una generalización de los métodos de búsqueda local.
El método que se estudia se inspira en este último, definiendo al vecindario como el conjunto de solu-
ciones que pueden ser obtenidas mediante una secuencia de movimientos de agregar y quitar nodos. La
cantidad de movimientos varı́a dinámicamente de iteración a iteración. Cuenta con dos fases principales.
La primera, de agregación, agrega a la solución actual cuanto nodo sea posible, buscado en el conjunto
P A, definido como los nodos que están conectados con todos los vértices de la clique actual. Una vez
terminado ese proceso, se procede a la segunda fase que, análogamente quita de la solución actual cuanto
nodo sea posible, seleccionando iterativamente vértices que, al ser quitados, conducen a maximizar la
suma de los pesos de los nodos que pertenecen a P A. Este proceso que cuenta con dos fases se repite
hasta que no sea posible encontrar una solución mejor. El método recibe como parámetro una solución
factible extraı́da del grafo al que se le desea encontrar la clique máxima. El Algoritmo 17 detalla la
implementación del mismo, que cuenta con una complejidad temporal O(n3 ), sin contar la complejidad
que toma resolver el parámetro. En la Sección 5.1 se investiga qué parámetros son convenientes utilizar.
Es menester definir la notación utilizada para entender el Algoritmo 17. Llamaremos:
PA: el conjunto de nodos que permiten ser agregados, i.e., aquellos nodos conectados a todos los
nodos de CC.
OM: el conjunto de nodos con un eje faltante, i.e., aquellos nodos conectados a |CC| − 1 nodos de
CC, considerando que CC ⊆ OM .
De manera
P muy análoga al procedimiento de separación de Clique, en esta oportunidad es menester
maximizar k∈K dk (xik − xjk ) para cada par de nodos i y j. Nuevamente se toma lo propio de la
implementación de los algoritmos heurı́sticos de clique maximal y de allı́ surge el Algoritmo 19.
El algoritmo Branch & Cut 41
Avanzando Ppor las mismas lı́neas que los procedimientos anteriores, esta familia fuerza la necesidad
0
de maximizar k∈K dk xki para cada nodo i, fijando a K como la diferencia entre N (i) y K. El
Algoritmo 20 detalla este procedimiento.
Tal como ocurre con la generación de las desigualdades de esta familia explicada en la Sección 3.2, el
P de separación simplificado en el cual se considera |Q| = |pk | = 1,
Algoritmo 22 muestra un procedimiento
y fuerza la necesidad de maximizar k∈K dk xki para cada nodo i, fijando a K 0 como la diferencia entre
N (i) y K.
Análogo al procedimiento
P anterior, el Algoritmo 24 basa su criterio de búsqueda de desigualdades a
violar maximizando k∈K dk (xik − xjk ) para cada par de nodos adyacentes i y j, y eligiendo nodos t
y p que minimicen cK (t)(xpi − xji ) + cK (t)(xjt − xji ).
P Este procedimiento es casi idéntico al anterior, en cuanto a que intenta nuevamente maximizar
k∈K dk (xik − xjk ) para cada par de nodos adyacentes i y j, pero elige nodos t y p que hagan mı́nimo
el siguiente extracto de la ecuación original: dp ∗ (xpi − xji ) + dt ∗ (xjt − xji ) + min(dp , dt ) ∗ (xjt − xpt ).
La descripción está dada en el Algoritmo 25.
La desigualdad relacionada dicta que, dados i, j, k ∈ V tres nodos de G tales que ij, jk ∈ E y ik ∈
/ E,
K ⊆ N (i) ∩ N (k) una clique no vacı́a y t0 ∈ K un nodo fijado, entonces:
X
li + lj ≥ αt (xkt − xit ) + mı́n {di , dj , dk }
t∈K
La desigualdad asociada a este procedimiento no comprende estructura de clique alguna, por lo que
se utiliza un mecanismo diferente.
Estas desigualdades se pueden separar en O(nm2 )[31] siendo n la cantidad de nodos y m la de
aristas, haciendo uso de un algoritmo que resuelve el problema de ciclo de media mı́nima [2, 8]. Este
último recibe como parámetro de entrada un grafo dirigido D P con pesos p : ED → R asignados a las
1
aristas, y consiste en encontrar un ciclo dirigido C tal que |C| ij∈E(C) cij es mı́nimo entre todos los
ciclos dirigidos en D. Tal ciclo es llamado un ciclo de media mı́nima en D y puede ser hallado en O(nm).
El procedimiento de separación consiste en construir un digrafo D = (V, ED ) para cada par i, j ∈ V
de nodos adyacentes en el grafo G que modela al problema. Se reemplaza cada arista no dirigida en G
El algoritmo Branch & Cut 45
por dos aristas dirigidas con direcciones opuestas y apuntando a los mismos nodos que la arista original.
La única excepción es ij, la cual es transformada en una arista dirigida en D. La Figura 4.1 muestra
un ejemplo de esta construcción. Los pesos p : ED → R son definidos como los valores negados de las
variables de orden de la solución, acordes a la orientación de la arista dirigida correspondiente:
−(1 + xe ) si ij = e
pe = (4.1)
−xe de otro modo
Está demostrado en [31] que una solución dada viola una desigualdad de Orden de Ciclo tal que,
el ciclo asociado contiene a la arista ij, si y sólo si el grafo dirigido D contiene un ciclo C tal que su
media es menor a -1. El Algoritmo 27 muestra un pseudocódigo con la estructura del procedimiento de
separación asociado.
Considerando el grafo G = (V, E) con la función que define longitudes a las aristas l : E → R+
definida como cij = li + lj − 1 (siempre es ≥ 1 ya que, li y lj ≥ 0 y, al ser i y j dos aristas conflictivas,
P2k+1
además li 6= lj ), la desigualdad de Ciclo Impar es equivalente a i=1 ci,i+1 ≥ 3. Por tanto, se considera
violada una desigualdad Ciclo Impar si y sólo si existe un ciclo impar en G con longitud estrictamente
menor a 3. El problema relacionado a encontrar un ciclo impar mı́nimo en un grafo no dirigido con pesos
en las aristas no negativas puede ser resuelto en tiempo polinomial, efectuando iteraciones sucesivas del
algoritmo de camino más corto [17] como lo indica el Algoritmo 28.
La implementación utilizada para el algoritmo de camino más corto es el algoritmo de Dijkstra [2]
y tiene una complejidad de O(n2 ) para un grafo de n nodos. Con lo cual, dado que el procedimiento de
separación lo aplica n veces, toma O(n3 ).
46 Heurı́sticas primales
Se buscaba generar un mecanismo sencillo para construir soluciones factibles por redondeo, de esta
manera generando cotas inferiores a partir del óptimo (fraccionario) de las relajaciones lineales de cada
nodo del árbol de enumeración de soluciones.
Se implementó un procedimiento para ser aplicado a las soluciones temporales obtenidas a partir de
las relajaciones lineales de los subproblemas. El mismo consta de dos fases. La primera, de redondeo, fija
las variables de orden en 0 ó 1 mediante sucesivas aplicaciones de clausura transitiva a las variables que
aún no son redondeadas. Esto es, para todo par de aristas ij y jk, si existe la arista ik, xij = 1 y xjk = 1,
entonces se fija xik = 1, para que xik sea coherente. Se han de considerar todas las combinaciones, que
son seis (todas las posibilidades que hay de ordenar 3 intervalos conflictivos), por ejemplo, si xij = 0 y
xik = 1, entonces se fija xjk = 1, etc. Si esta clausura no llega a ser posible de aplicar, (por ejemplo,
no hay regla que aplicar dado que ninguna variable está fijada en 0 o 1) se opta por redondear alguna
variable. La candidata a elegir es aquella que se encuentre más cercana a 0 ó a 1. La intuición detrás
de esto es que si una variable está cerca de 0 ó 1, entonces es posible que 0 ó 1 sea un buen valor para
esta variable, respectivamente. Si este redondeo origina posibles aplicaciones de clausura transitiva, se
efectúan. Si no, se selecciona otra variable a redondear con el mismo criterio. Se continúa con este
El algoritmo Branch & Cut 47
Habiendo concluido la primera fase, y contando con un orden parcial definido por las variables de
orden, se procede a recorrer los nodos del grafo del problema mediante un orden topológico [2] de manera
tal que si i se ubica delante de j, entonces i sea recorrido antes que j. A cada nodo entonces se le asigna
el intervalo más a la izquierda posible, que no se superponga a los intervalos ya asignados. Si el nodo no
representa un cliente principal, la longitud de su intervalo se corresponderá con la demanda del mismo.
Si, por el contrario, es un cliente importante,
P llamado por ejemplo v, se procurará asignarle el mayor
rv posible, esto es, máx lv + dv , s − k∈K dk , en donde K contiene a los vecinos de v que aún no han
sido asignados y también a los vecinos de aquel conjunto.
El Algoritmo 30 muestra un pseudocódigo de este procedimiento. El análisis
de la complejidad
computacional plasmado en el mismo, lleva a concluir que se encuentra en O m3 .
Algoritmo 30 Búsqueda de una cota inferior a partir de una solución óptima fraccionaria, aplicando
redondeo
1: Función aplicarHeuristicaPrimalDeRedondeo(Solucion solucion)
2: redondearX(solucion) . O(m3 )
3: Para cada nodo v, siguiendo un orden topológico dado por las variables de orden hacer . O (m)
4: lv ← el menor número posible considerando a los vértices ya visitados vecinos de v
. O(n)
5: Si v es principal entonces . O(n)
6: rv ← lv + dv . O(1)
7: Si no . O(m)
8: K ← (los vecinos de v aún no visitados) ∪ (los vecinos de (los vecinos de v aún no
visitados)) P
9: rv ← máx lv + dv , s − k∈K dk )
10: Fin si
11: Fin para
Devolver si la solución es factible, la cota inferior que equivale a la suma de las longitudes de
los intervalos de los clientes principales según la solución heurı́stica hallada. . O(k)
12: Fin función
Se pensó una segunda heurı́stica embebiendo un modelo de programación lineal, similar al problema
que se intenta resolver, con la sola diferencia de que las variables x estarı́an fijadas de antemano en
48 Heurı́sticas primales
valores 0 ó 1 luego de aplicar el Algoritmo 29, reemplazando a las desigualdades de simetrı́a del problema
original. Al contar con esto, el problema queda reducido a decidir los valores de las variables l y r,
respetando el orden prefijado de los intervalos y maximizando la función objetivo.
Este modesto modelo cuenta con la ventaja de ser resuelto directamente en el primer nodo del árbol
de enumeración, garantizando una resolución muy eficiente. Esto sucede porque la relajación lineal
de este modelo es un poliedro con extremos enteros, con lo cual la solución óptima de la relajación
lineal obtenida por el método Simplex (que siempre retorna un óptimo en un extremo de la región
factible) es entera y no es necesario redondear las variables l y r. Esto efectivamente es ası́, ya que
si hubiera una solución z con un intervalo cuyos extremos fueran fraccionarios, se pueden generar dos
nuevas soluciones z 1 y z 2 cuyos intervalos fraccionarios y sus contiguos son corridos a la izquierda
y a la derecha respectivamente. Tales soluciones existen y son también factibles, pero entonces z se
podrı́a expresar como 12 z 1 + z 2 , es decir, el promedio de éstas, implicando que z, la solución original
fraccionaria, no es un extremo de la relajación lineal de este modelo [29].
El Algoritmo 31 expone la idea de esta heurı́stica, con su complejidad temporal resultando ser
O m3 + n2 + LR , en donde LR representa la complejidad temporal de la librerı́a para resolver el
primer nodo del árbol de enumeración de este problema.
Algoritmo 31 Búsqueda de una cota inferior a partir de una solución óptima fraccionaria, aplicando
un modelo de programación lineal
1: Función aplicarHeuristicaPrimalDeProgramacionLineal(Solucion s)
2: redondearX(solucion) . O(m3 )
3: problemaLP ← Un problema de programación lineal nuevo basado en el problema original
. O(1)
4: Agregar a problemaLP las mismas variables que el problema original (los vectores l, r, x)
. O(n2 )
5: Agregar a problemaLP las mismas desigualdades de antiparalelismo y demanda
. O(n)
6: Agregar a problemaLP restricciones que fijan a las variables x en 0 ó 1
según el redondeo efectuado
. O(m), reemplaza a las restricciones de simetrı́a
7: Optimizar problemaLP , obteniendo solamente la relajación lineal
. Depende de la librerı́a CPLEX
Devolver la cota dual obtenida luego de optimizar problemaLP
. O(1)
8: Fin función
Capı́tulo 5
Resultados computacionales
En este capı́tulo se reportan los resultados de los experimentos computacionales realizados para
obtener la mejor configuración del algoritmo Branch & Cut descripto en el capı́tulo anterior, y para
evaluar la performance del algoritmo con esta configuración. Los primeros experimentos analizan las
distintas alternativas de inicialización al problema de clique de peso máxima mediante el método basado
en [25]. También se lo compara con el algoritmo Best-In.
Seguidamente se dan a conocer los experimentos que resultan de combinar los distintos procedi-
mientos de separación implementados. Las caracterı́sticas valoradas de los mismos son el tiempo de
ejecución, los valores duales obtenidos, la cantidad de nodos en el árbol de enumeración y la cantidad
de separaciones efectivas obtenidos a partir de la ejecución de cada instancia.
Como consecuencia de los experimentos eligiendo distintas combinaciones de métodos de separación,
se determina aquella combinación de familias que es más eficiente para luego pasar a otra etapa de ex-
perimentación, que consiste en aplicar las heurı́sticas primales presentadas en el Capı́tulo 4. Además, se
evalúa el rendimiento de la implementación óptima del Branch & cut con el de los paquetes comerciales.
Se usa a la librerı́a de CPLEX como ejemplo de esta medida comercial.
El último ajuste consiste en determinar los parámetros óptimos que acepta el entorno Abacus. Como
resultado de esta serie de experimentos, se obtiene la manera óptima de resolver las instancias que se
estudian de acuerdo a las herramientas analizadas.
La clique obtenida a partir de la ejecución del algoritmo Best-In revisado en la Sección 4.1.1
Por otro lado, se consideró al algoritmo Best-In a modo de tener una noción de su comportamiento
en relación a las posibilidades mencionadas.
El criterio de elección del parámetro más adecuado se basó en experimentos que hicieron foco en
dos aspectos que veları́an por el compromiso entre el rendimiento y la precisión: tiempo de ejecución y
50 Experimentos y ajustes de parámetros relacionados al problema de clique de peso máxima
pesos de clique obtenidos. Se probó con grafos de entre 10 y 200 nodos con pesos aleatorios, completos
o con densidades que rondaron el 50 %.
Para conocer el tiempo de ejecución en los peores casos, se optó por aplicar el algoritmo a grafos
completos. La Figura 5.1 ilustra estos resultados en escala logarı́tmica y, como es de esperar, la ejecución
del algoritmo de búsqueda local alimentada con la clique obtenida a partir de la ejecución del algoritmo
Best-In es la más costosa, al punto de inutilizarlo. Los mejores tiempos se registran, para todos los
algoritmos que no hacen uso de la heurı́stica Best-In, directa o indirectamente.
Figura 5.1: Tiempos de ejecución (ms) para cliques de 10 a 200 nodos medidos en escala logarı́tmica.
Por otra parte se experimentó con grafos rondando densidades del 50 %, con el objeto de evaluar
instancias similares a las que pueden aparecer en la práctica. Los tiempos de ejecución (ms) expuestos
en la Figura 5.2 son diferentes en relación a la Figura 5.1. Aquı́ se puede apreciar una importante mejora
de Best-In puro respecto del resto de los algoritmos. También, y probablemente a raı́z de ello, el tiempo
de ejecución del algoritmo de búsqueda local alimentado con la clique obtenida a partir de la ejecución
del algoritmo Best-In se encuentra ahora dentro de rangos razonables, pudiendo reconsiderarse como
un candidato.
Hasta ahora se puede concluir, en términos generales, que el algoritmo Best-In , a menor densidad
del grafo de entrada, su tiempo de ejecución disminuye sorpresivamente, que la inicialización con cliques
de tamaño 2, 3 y 4 poseen diferencias de tiempos de ejecución despreciables y que, si bien haciendo uso
del parámetro obtenido a partir de Best-In los tiempos de ejecución son mayores, con instancias no tan
densas, éste también sigue siendo un algoritmo competitivo.
Llegada la hora de experimentar con los resultados, se ilustran cuatro figuras que muestran porcen-
tajes de mejora/empeoramiento vs. tiempos de ejecución del algoritmo de búsqueda local respecto del
algoritmo Best-In, una para cada distinta forma de inicialización. La Figura 5.3 muestra estos resultados.
Los algoritmos que hacen uso de cliques de tamaño 2, 3 y 4 nuevamente muestran un comporta-
miento homogéneo, aunque hay mayorı́a de instancias que no superan los valores retornados por el
algoritmo Best-In. Por su parte, justificando el tiempo de ejecución prolongado previamente observado,
el parámetro Best-In da a lugar varias mejoras por sobre el algoritmo Best-In . Lo interesante de aquella
figura es contar con la garantı́a de que el algoritmo se comportará igual o mejor que el Best-In crudo. En
definitiva, uno podrı́a pensar que por su naturaleza golosa, Best-In no promete resultados de calidad,
sin embargo se observa con cierta sorpresa que se encuentra a la altura de los algoritmos de búsqueda
local presentados.
Resultados computacionales 51
Figura 5.2: Tiempos de ejecución (ms) para grafos con 10 a 200 nodos y aproximadamente 50 % de
densidad
Figura 5.3: Porcentajes de mejora/empeoramiento vs. tiempos de ejecución de las cliques encontradas
para grafos con 10 a 200 nodos y aproximadamente 50 % de densidad respecto del algoritmo Best-In.
20 hasta 97 nodos. La manera de elegir las combinaciones tuvo su desarrollo a partir de una partición
inicial de las mismas:
Clique Doble
Clique, Clique Reforzada, Clique Replicada, Orden de Ciclo, Ciclo Impar y 4 Ciclo + Clique
Doble Clique Reforzada, Clique Doble Extendida, Clique Doble 2-Extendida y Clique Doble Ce-
rrada
A partir de ella, se llegó a una primera observación: era llamativamente notorio el impacto positivo
que tiene la familia de desigualdades de Clique Doble.
Una cualidad interesante (y a priori no obvia) es que si bien la única familia que parecı́a realizar
aportes significativos es Clique Doble, las familias en general dobles (como fueron definidas en la Sección
3.4) si bien no solı́an terminar exitosamente (a excepción de Clique Doble), contribuı́an positivamente
en todos los aspectos que se tienen en cuenta, como ser una reducción en el tiempo de ejecución o en
la cantidad de nodos en el árbol de enumeración, etc. siempre que eran combinadas con Clique Doble.
Con lo cual, el resto de las combinaciones son el resultado de determinar cuál o cuáles familias dobles
acompañan mejor a Clique Doble. En particular, se consideraron como ayudantes de Clique Doble a
aquellas familias que en la Sección 3.4 tuvieron la menor cantidad de instancias terminadas por falta de
memoria, es decir, Doble Clique Reforzada, Clique Doble Extendida y Clique Doble 2-Extendida. La
Figura 5.4 diagrama el razonamiento que fue llevando a armar cada combinación.
Figura 5.4: Diagrama que ilustra las decisiones que llevaron a experimentar cada combinación de
desigualdades elegida.
Como es de esperar, se cuenta con muchos casos en los cuales el programa termina por falta de
memoria o por no poder resolverse dentro de los 45 minutos, convención tomada también en la sección
anterior. En este último caso se registran los valores tal como están por más de que la instancia no
haya concluido. Esto y la terminación por falta de memoria, naturalmente tienen un impacto negativo
en la combinación de familias que lo causan, por consiguiente se han de valorar aquellas instancias que
terminan exitosamente su ejecución.
En esta etapa del trabajo aún no se analiza el comportamiento de las heurı́sticas primales, el cual
está presente en la próxima sección, lo que provoca que la medida de la calidad de las combinaciones
de familias sigan siendo las cotas duales generadas por el algoritmo utilizando dichas familias.
Resultados computacionales 53
Debido a la diversidad de resultados, se optó por exponer una tabla primaria con los resultados
generales, y cuatro tablas adicionales que detallan, para cada combinación e instancia, el tiempo de
ejecución, el valor dual, la cantidad de nodos en el árbol de enumeración y la cantidad de cortes
exitosos respectivamente. Las celdas de color rojo indican que la instancia no se puede resolver por falta
de memoria, y por otra parte, las que están en color rosado indican que la instancia no se pudo resolver
en el tope impuesto de 45 minutos.
El Cuadro 5.1 detalla los resultados generales obtenidos a partir de ejecuciones que incluyen a los
métodos de separación de distintas combinaciones de familias de desigualdades. La primera fila describe
la estadı́stica particular extraı́da, y debe ser leı́da utilizando la referencia colocada justo debajo del
Cuadro.
(1)
Clique (2) (4) (5) (6) (8)
Clique Ref. Doble C. Ref. (3) Clique Doble Clique Doble Clique (7) Doble Clique
Clique Repl. C.Doble Ext. Doble Doble Clique Doble C. Ref. Doble C. Ref. Doble Clique C.Doble Ext.
Orden de Ciclo C.Doble 2-Ext. Clique C. Ref. C.Doble Ext. C.Doble Ext. Doble C. Ref. C.Doble 2-Ext.
Ciclo Impar C.Doble Cerr. C. Repl. C.Doble 2-Ext. C.Doble 2-Ext.
4 Ciclo + C. C.Doble Cerr.
(a) 32.22 11.11 1.11 0 0 0 0 0
(b) 67.78 74.44 33.33 35.56 36.67 33.33 34.44 35.56
(c) 1.11 12.22 65.56 64.44 63.33 66.67 65.56 64.44
(d) 0 3.33 10.00 21.11 15.56 20.00 13.33 15.56
(e) 0 1.11 15.56 20.00 3.33 11.11 10.00 11.11
(f) 0.10 0.18 0.68 2.07 0.36 0.46 0.49 0.53
(a): Porcentaje de instancias no resueltas por falta de memoria
(b): Porcentaje de instancias no resueltas por falta de tiempo
(c): Porcentaje de instancias resueltas en forma óptima
(d): Porcentaje de instancias resueltas con la menor cantidad de nodos
(e): Porcentaje de instancias resueltas con el menor tiempo de ejecución
(f): Promedio de porcentaje de éxito de los métodos de separación
Cuadro 5.1: Resultados generales luego de separar diversas combinaciones de familias al programa.
La diferencia más pronunciada está dada por las dos primeras combinaciones respecto del resto, en
las cuales escasas instancias son resueltas exitosamente, dando lugar también a numerosas ejecuciones
que se descartan por la falta de memoria. Si bien Clique Doble viene siendo la más prometedora, es
de poco fiar si se incluyen solamente sus cortes (combinación (3)), ya que se encontró una instancia
irresoluble por falta de memoria. El resto de las combinaciones ya no cuenta con este problema no menor,
y en cambio merece una observación agudizada. Si se trata del porcentaje de instancias resueltas con
el menor tiempo de ejecución o con la menor cantidad de nodos, (las filas (d) y (e)) las combinaciones
(3), (4), (6), (7) y (8) se encuentran en rangos razonables en todos los casos. Si bien hay porcentajes
diferenciados en los tiempos de ejecución, estos en general difieren por unos pocos segundos. Llamativo
es, sin embargo, el porcentaje de éxito de los métodos de separación para la combinación (4), que supera
holgadamente al resto de las combinaciones. Cierto es, que esta combinación cuenta con caracterı́sticas
ligeramente diferentes a las combinaciones (5), (6), (7) y (8) debido a que de no ser por la inclusión de
Clique Doble, se busca un corte por nodo y no por arista. Esto provoca que el número total de cortes
a buscar sea menor en cada método de separación, provocando una mejor ponderación ante cada corte
exitoso.
Las secciones subsiguientes exploran en detalle los tiempos de ejecución, los valores duales, la can-
tidad de nodos en el árbol de enumeración y la cantidad de separaciones efectivas, respectivamente.
Los tiempos de ejecución de las distintas combinaciones se especifican en el Cuadro 5.2, siempre
y cuando la instancia haya resuelto exitosamente, ya que aún cuando la instancia hubiera terminado
debido al tope de tiempo, significa que tardó alrededor de 45 minutos con lo cual estos datos no aportan
información alguna y están omitidos.
54 Contribución de cada familia de desigualdades básicas
Hay más instancias de tipo E que encuentran la solución óptima más rápido que el resto de los
grupos (si terminan), pudiendo resolverse, por ejemplo, en tan solo 0.28 segundos mediante el uso de
la combinación (4), y sin llegar a superar los 736 segundos, también a través de la misma combinación.
Las instancias de a partir de 40 nodos son en general difı́ciles de resolver en el lı́mite del tiempo, para
todos los grupos. La combinación (1) además tiene dificultades especiales para probar optimalidad, y
es la que más presenta casos que terminan por falta de memoria. Siguiendo con un comportamiento
poco eficaz está la combinación (2), con lo cual es inminente la repercusión que tiene la inclusión de los
cortes de Clique Doble. Aún ası́, la instancia de grupo B que tiene 50 nodos, 30 sectores y un espectro
de 109 sorpresivamente cuenta con problemas de memoria. Si bien es el único caso, es importante notar
que las demás combinaciones no cuentan con este imprevisto en aquella instancia. Se destaca el tiempo
de ejecución obtenido en la combinación (6) para la instancia del grupo D, con 72 nodos, 10 sectores y
un espectro de 60, ya que ninguna otra combinación está siquiera cerca de resolverla. Como se observa
en el Cuadro 5.1, si bien la combinación (4) es la que cuenta con tiempos de ejecución mı́nimos en más
ocasiones, el Cuadro 5.2 homogeneı́za este hecho, comprobando que ocasionalmente, las diferencias entre
las combinaciones son despreciables e igual de útiles. Tal es el caso, por ejemplo, de muchas instancias
pertenecientes al grupo E, que de por sı́ se caracterizan especialmente por su eficiencia en numerosas
combinaciones e instancias.
Resultados computacionales 55
Clique
Clique Ref. Doble C. Ref. Clique Doble Clique Doble Clique Doble Clique
Grupo n k s Clique Repl. C.Doble Ext. Doble Doble Clique Doble C. Ref. Doble C. Ref. Doble Clique C.Doble Ext.
Orden de Ciclo C.Doble 2-Ext. Clique C. Ref. C.Doble Ext. C.Doble Ext. Doble C. Ref. C.Doble 2-Ext.
Ciclo Impar C.Doble Cerr. C. Repl. C.Doble 2-Ext. C.Doble 2-Ext.
4 Ciclo + C. C.Doble Cerr.
A 20 2 156 1.99 1.73 3.42 2.92 2.34 2.48
A 20 3 199 1.28 0.88 9.67 9.14 3.88 46.09
A 20 4 135 2.2 4.48 3.21 3.03 1.01 6.56
A 25 4 128 100.78 32.6 175.07 168.7 72.55 41.88
A 30 10 499 19.39 228.03 516.05 187.95 211.48 132.18
A 30 3 131 45.85 49.93 46.22 42.4 40.91 35.01
A 30 3 140 7.31 7.85 161.62 38.4 9.08 112.09
A 35 4 113 172.65 65.93 2341.42 2195.9 130.78
A 35 4 145 798.01 2155.56 41.53 46.59 101.11 628.71
A 40 4 134 1293.76 331.66 101.23 92.65 872.39 1225.17
A 40 4 135 1719.64 177.46 264.31
A 40 4 150 342.87 207.82 356.24 645.15
A 50 5 148
A 78 40 127
A 80 13 53
B 20 10 519 78.39 2.18 0.67 0.53 1.33 1.45 0.90 3.20
B 20 4 56 79.66 382.25 358.69 130.92 96.75 163.11
B 20 4 66 44.73 1122.68 123.59 90.14 643.97 40.10
B 20 4 80 49.76 581.84 47.88 51.16 9.32 184.90 61.79
B 20 4 88 31.69 8.18 2387.46 176.92 269.33 78.97 6.78
B 30 10 135 16.76 27.79 443.49 148.78 13.53 168.56
B 40 10 270 204.67 705.39 1886.82
B 40 10 288 22.64 88.71 168.98
B 41 6 103 93.18 33.60 200.58 199.85 76.02 597.92
B 41 6 120 122.25 245.22 908.99 892.29 108.9 2018.22
B 50 10 50 6.45 1.15 8.25 7.87 6.78 7.57
B 50 30 109
B 80 12 44
B 95 11 71
B 97 10 80
C 20 2 121 902.73 259.06 245.74 109.31 14.84
C 20 2 123 209.78 21.06 19.28 476.19 25.95
C 20 2 126 140.55 130.11 532.43
C 20 2 131 1989.22 1549.1 710.10 627.09 2205.38 147.93 1937.25
C 20 2 138 116.46 2164.55 41.90 38.18 1752.6 86.12
C 20 2 199 998.20 1040.17 1073.53
C 20 4 175
C 25 4 27 152.09 115.86 33.51 30.84 47.34 15.36
C 42 7 23 2317.14 1728.89
C 42 7 49 279.80 574.9
C 50 10 22 24.85 8.32 20.18 18.96 28.82 10.92
C 50 10 26 100.05 8.75 135.51 127.79 109.82 121.25
C 50 10 33 44.67 16.87 9.45 8.78 43.95 8.92
C 60 8 47
C 73 12 45
D 20 3 156 219.18 79.00 25.05 13.84 343.61 33.06
D 20 3 162 19.68 15.95 126.81 73.53 11.45 36.95
D 20 3 166 42.24 29.67 39.52 30.99 87.25 105.14
D 20 3 171 5.06 234 103.9 57.49 9.85 10.20
D 20 3 172 323.17 247.4 14.49 11.36 10.71 30.16
D 20 3 177 18.89 25.56 42.81 56.05 32.73 30.96
D 25 3 22 65.34 84.84 34.42 54.66 144.37 10.56
D 30 3 186
D 30 4 130 28.07 251.44 14.04 33.27 9.25 24.23
D 30 4 198 68.59 30.98 18.96 347.47 93.9 128.92
D 42 5 18 105.7 228.65 515.63 247.29
D 42 5 19 938.74 1748.34 259.35 962.76 891.18
D 53 7 65
D 72 10 60 753.55
D 78 11 44
E 20 2 110 3.49 0.28 6.12 5.37 4.2 5.08
E 20 2 120
E 20 2 200 10.20 10.33 10.56 8.19 19.59 11.93
E 20 2 697
E 20 3 126 8.11 11.70 1.85 1.86 18.17 1.59
E 25 3 80 4.85 0.81 5.89 5.48 4.64 4.80
E 30 3 182 4.84 2.71 9.73 8.74 5.95 8.29
E 42 4 65 23.17 13.36 49.42 43.02 30.03 36.73
E 42 5 30 8.56 8.97 14.3 13.03 10.02 11.39
E 53 7 415 18.98 22.16 30.56 27.7 21.89 24.97
E 64 9 540 28.24 59.03 42.29 39.24 32.20 35.68
E 73 11 73 35.31 59.42 48.57 45.68 38.56 42.67
E 80 7 70 136.09 492.10 274.40 241.78 170.68 208.00
E 90 7 74 261.62 735.94 534.35 470.75 329.62 402.36
E 90 7 79 275.03 687.46 568.12 499.57 348.50 427.13
F 20 2 240
F 20 2 322
F 20 2 652 2300.67
F 24 3 18 71.03 25.49 13.42 44.69 46.08 8.47
F 24 3 26 60.09 26.39 13.85 23.14 96.99 13.79
F 24 3 35 59.71 666.20 49.23 156.67 72.17 768.91
F 30 4 238
F 31 3 152
F 42 6 16 65.17 1354.04 515.95 154.24 77.24 765.17 60.01
F 42 6 19 205.40 416.04 386.56 1157.92
F 42 6 24 679.2 640.5 347.45 1284.44
F 73 11 48
F 73 11 73
F 77 14 98
F 83 10 77
Cuadro 5.2: Tiempos de ejecución de las distintas combinaciones para las instancias que se pudieron resolver
en forma óptima. Las celdas en tono rojo terminaron su ejecución debido a la falta de memoria. Las de tono
rosado, debido al tope de tiempo.
56 Contribución de cada familia de desigualdades básicas
Se muestran en el Cuadro 5.3 las cotas duales generadas por el algoritmo Branch & Cut utilizando
las distintas combinaciones de familias de desigualdades válidas.
En esta ocasión figuran además las cotas obtenidas aún para las instancias no resueltas dentro del
tope de tiempo. Curiosamente hay repetidas instancias con cotas duales que, si bien están indicadas en
tono rojizo (lo que significa que no terminaron su ejecución) coinciden con el valor óptimo. El algoritmo
no considera a estas instancias terminadas por no contar todavı́a con un resultado garantizado, dado
que las cotas primales son estrictamente menores que la cota dual. Se muestran en color blanco las
instancias que se resolvieron en forma óptima. Esto permite ver que a mayor tamaño de instancia, más
lejos está la cota dual del resultado esperado, siempre y cuando no se tengan en cuenta las cotas duales
desorbitantes que brindan las combinaciones (1) y (2).
De acuerdo con estos experimentos, es posible clasificar a las instancias en las siguientes categorı́as:
Instancias que no se pudieron resolver dentro del lı́mite de tiempo de 45 minutos. Por ejemplo, la
instancia de grupo D con 53 nodos, 7 sectores y un espectro de valor 65.
Aquellas que son difı́ciles de resolver y sólo alguna/s combinación/es las resuelve en forma óptima.
Por ejemplo, la instancia resuelta solamente por la combinación (6), de grupo D con 72 nodos, 10
sectores y un espectro de valor 60.
Aquellas que son resueltas por las combinaciones comprendidas entre (3) y (8) inclusive. Por
ejemplo, la instancia del grupo A con 20 nodos, 3 sectores y un espectro de valor 199.
Es evidente que las instancias de mayor tamaño son las más acordes al primer ı́tem, y por otra
parte, las instancias que son representadas por el segundo ı́tem son de particular importancia dado
que ayudan a realmente entender cuál combinación tiene más éxito, es decir cuál es la que finalmente
resuelve más instancias de este tipo. Lamentablemente, no hay mayores diferencias, y son pocas las
instancias con estas caracterı́sticas, sin embargo la combinación (6) es la que más instancias resuelve
de manera exitosa. Se podrı́a concluir que (3), (6), (7) y (8) son las combinaciones de cortes que mejor
resuelven este tipo de instancias.
Resultados computacionales 57
Clique
Clique Ref. Doble C. Ref. Clique Doble Clique Doble Clique Doble Clique
Grupo n k s Clique Repl. C.Doble Ext. Doble Doble Clique Doble C. Ref. Doble C. Ref. Doble Clique C.Doble Ext.
Orden de Ciclo C.Doble 2-Ext. Clique C. Ref. C.Doble Ext. C.Doble Ext. Doble C. Ref. C.Doble 2-Ext.
Ciclo Impar C.Doble Cerr. C. Repl. C.Doble 2-Ext. C.Doble 2-Ext.
4 Ciclo + C. C.Doble Cerr.
A 20 2 156 246 134 134 134 134 134 134
A 20 3 199 474 412 412 412 412 412 412
A 20 4 135 309 309 309 309 309 309
A 25 4 128 226 226 226 226 226 226
A 30 10 499 3014 2922 2922 2922 2922 2922 2922
A 30 3 131 230 151 151 151 151 151 151
A 30 3 140 369 268 195 195 195 195 195 195
A 35 4 113 390 288 156 156 156 156 156 156
A 35 4 145 527 479 373 373 373 373 373 373
A 40 4 134 481 309 256 256 256 256 256 256
A 40 4 135 476 323 202 202 202 202 202 202
A 40 4 150 531 366 256 256 256 256 256 256
A 50 5 148 673 436 382 382 382 382 382 382
A 78 40 127 2819 2481 2459 2459 2457 2456 2458 2459
A 80 13 53 437 347 347 347 347 347 347 347
B 20 10 519 4136 4136 4136 4136 4136 4136 4136 4136
B 20 4 56 90 90 90 90 90 90 90
B 20 4 66 110 110 110 110 110 110 110
B 20 4 80 138 138 138 138 138 138 138
B 20 4 88 154 154 154 154 154 154 154
B 30 10 135 1059 1043 1039 1039 1039 1039 1039 1039
B 40 10 270 2139 2109 2097 2097 2097 2097 2097 2097
B 40 10 288 2284 2242 2241 2241 2241 2241 2241 2241
B 41 6 103 597 563 537 537 537 537 537 537
B 41 6 120 669 664 639 639 639 639 639 639
B 50 10 50 472 414 414 414 414 414 414
B 50 30 109 1984 1807 1753 1756 1754 1747 1765
B 80 12 44 493 446 394 394 394 394 394 394
B 95 11 71 683 621 585 585 585 585 585 585
B 97 10 80 771 705 623 623 623 623 623 623
C 20 2 121 120 120 120 120 120 120 120
C 20 2 123 218 70 70 70 70 70 70 70
C 20 2 126 227 120 120 120 120 120 120 120
C 20 2 131 132 132 132 132 132 132 132
C 20 2 138 92 92 92 92 92 92 92
C 20 2 199 275 275 275 275 275 275 275
C 20 4 175 337 212 214 214 210 212 210 214
C 25 4 27 94 66 54 54 54 54 54 54
C 42 7 23 105 66 52 52 52 52 52 52
C 42 7 49 237 200 193 193.00 193 193 193 193
C 50 10 22 167 117 117.00 117 117 117 117
C 50 10 26 207 157 157 157 157 157 157
C 50 10 33 297 245 245 245 245 245 245
C 60 8 47 270 217 205 205 205 205 205 205
C 73 12 45 431 375 346 346 346 346 346 346
D 20 3 156 291 285 285 285 285 285 285
D 20 3 162 305 212 200 200 200 200 200 200
D 20 3 166 200 154 154 154 154 154 154
D 20 3 171 213 188 188 188 188 188 188
D 20 3 172 286 266 266 266 266 266 266
D 20 3 177 250 201 201 201 201 201 201
D 25 3 22 40 30 21 21 21 21 21 21
D 30 3 186 512 404 367 367 367 367 367 367
D 30 4 130 436 310 241 241 241 241 241 241
D 30 4 198 556 429 361 361 361 361 361 361
D 42 5 18 64 52 27 27 27 27 27 27
D 42 5 19 69 51 36 36 36 36 36 36
D 53 7 65 314 279 278 278 278 278 278 278
D 72 10 60 522 469 446 446 446 446 446 446
D 78 11 44 310 269 269 269 269 269 269
E 20 2 110 24 24 24 24 24 24
E 20 2 120 25 25 25 25 25 25 25
E 20 2 200 44 44 44 44 44 44
E 20 2 697 146 146 146 146 146 146 146
E 20 3 126 57 57 57 57 57 57
E 25 3 80 32 32 32 32 32 32
E 30 3 182 456 60 60 60 60 60 60
E 42 4 65 223 226 36 36 36 36 36 36
E 42 5 30 126 127 35 35 35 35 35 35
E 53 7 415 2390 2427 479 479 479 479 479 479
E 64 9 540 3955 4017 762 762 762 762 762 762
E 73 11 73 639 633 171 171 171 171 171 171
E 80 7 70 443 444 73 73 73 73 73 73
E 90 7 74 475 476 79 79 79 79 79 79
E 90 7 79 503 509 90 90 90 90 90 90
F 20 2 240 239 158 158 158 158 158 158 158
F 20 2 322 322 198 198 198 198 198 198 198
F 20 2 652 652 308 308 308 308 308 308 308
F 24 3 18 23 13 13 13 13 13 13
F 24 3 26 61 50 50 50 50 50 50
F 24 3 35 68 58 47 47 47 47 47 47
F 30 4 238 679 481 481 481 481 481 481 481
F 31 3 152 283 235 159 159 159 159 159 159
F 42 6 16 59 27 27 27 27 27 27 27
F 42 6 19 86 40 40 40 40 40 40 40
F 42 6 24 92 53 45 45 45 45 45 45
F 73 11 48 360 265 256 256 256 256 256 256
F 73 11 73 562 441 434 434 434 434 434 434
F 77 14 98 870 772 755 755 755 755 755 755
F 83 10 77 596 472 472 472 472 472 472 472
Cuadro 5.3: Cotas duales obtenidas por el algoritmo Branch & Cut utilizando distintas combinaciones
de desigualdades válidas. Las celdas en tono rojo terminaron su ejecución debido a la falta de memoria.
Las de tono rosado, debido al tope de tiempo.
58 Contribución de cada familia de desigualdades básicas
Clique
Clique Ref. Doble C. Ref. Clique Doble Clique Doble Clique Doble Clique
Grupo n k s Clique Repl. C.Doble Ext. Doble Doble Clique Doble C. Ref. Doble C. Ref. Doble Clique C.Doble Ext.
Orden de Ciclo C.Doble 2-Ext. Clique C. Ref. C.Doble Ext. C.Doble Ext. Doble C. Ref. C.Doble 2-Ext.
Ciclo Impar C.Doble Cerr. C. Repl. C.Doble 2-Ext. C.Doble 2-Ext.
4 Ciclo + C. C.Doble Cerr.
A 20 2 156 27335 21 17 21 21 21 21
A 20 3 199 29787 43 15 181 181 115 803
A 20 4 135 87 129 67 67 29 165
A 25 4 128 2133 601 2349 2349 1329 679
A 30 10 499 14389 401 2943 2919 1117 2969 901
A 30 3 131 10763 311 307 163 163 237 155
A 30 3 140 5537 10849 49 49 583 147 49 513
A 35 4 113 3519 8323 913 317 6383 6383 587 9055
A 35 4 145 3873 8167 3983 8943 109 109 421 2111
A 40 4 134 1833 4781 3853 897 155 155 2169 2285
A 40 4 135 1945 5113 4871 7177 4007 4281 457 527
A 40 4 150 1969 4893 1073 603 4031 4305 945 1201
A 50 5 148 639 1973 4413 3719 1653 1713 3369 1993
A 78 40 127 213 345 2869 2319 225 309 2351 207
A 80 13 53 121 269 1307 1205 183 259 1193 275
B 20 10 519 2527 107 67 33 49 49 73 165
B 20 4 56 139 2471 1865 205 161 10695 249
B 20 4 66 187 6713 12315 261 197 3023 77
B 20 4 80 105 3731 249 103 21 937 113
B 20 4 88 57 79 9995 263 339 465 15
B 30 10 135 12633 24867 437 333 3743 1275 287 1609
B 40 10 270 4155 2078 1881 4551 5865 5863 11097 6963
B 40 10 288 4239 6037 227 687 5853 5819 955 6425
B 41 6 103 3423 6857 685 241 593 593 495 1867
B 41 6 120 3335 6779 901 1613 2343 2329 685 5503
B 50 10 50 2629 63 7 63 63 63 63
B 50 30 109 2213 6593 13549 5711 5885 14761 6571
B 80 12 44 197 1677 3819 3487 1399 1383 3075 1507
B 95 11 71 37 153 1155 1011 127 181 833 195
B 97 10 80 43 715 1599 1365 567 575 1261 655
C 20 2 121 2847 4377 8447 327 327 377 33
C 20 2 123 7827 331 12821 11229 41 41 1623 65
C 20 2 126 7361 2761 749 537 2871 2881 1769 3251
C 20 2 131 2103 7209 2537 629 2107 521 2393
C 20 2 138 241 12603 8559 81 75 5455 205
C 20 2 199 1119 4965 3851 2303 2265 7899 2583
C 20 4 175 7431 4747 11893 8261 2427 2423 7265 2959
C 25 4 27 6557 3271 625 349 63 63 113 45
C 42 7 23 1945 3295 7347 7531 3135 2187 6645 3589
C 42 7 49 1875 17445 8097 825 2887 697 5995 3461
C 50 10 22 2217 153 63 119 119 181 71
C 50 10 26 2281 843 63 845 845 845 851
C 50 10 33 2219 405 131 59 59 363 63
C 60 8 47 375 661 2417 2393 619 677 1823 677
C 73 12 45 199 621 1959 1863 521 535 1433 609
D 20 3 156 8281 1165 379 51 33 1077 89
D 20 3 162 9627 7313 145 105 277 189 59 125
D 20 3 166 6655 293 185 111 97 343 377
D 20 3 171 6967 43 1181 247 155 49 35
D 20 3 172 9031 1699 1155 35 29 53 99
D 20 3 177 8333 143 163 105 155 157 105
D 25 3 22 6685 2317 231 319 59 91 299 29
D 30 3 186 2573 267 1215 1177 271 223 963 229
D 30 4 130 6717 6145 211 1271 41 105 51 77
D 30 4 198 5773 6307 433 183 59 939 465 419
D 42 5 18 1629 721 3101 163 137 269 1823 193
D 42 5 19 1417 913 2799 1011 671 153 871 499
D 53 7 65 613 687 1865 1693 447 499 1391 603
D 72 10 60 265 2627 4271 3909 2347 723 3737 2751
D 78 11 44 795 2229 1439 643 655 1669 893
E 20 2 110 53 1 53 53 53 53
E 20 2 120 5631 14111 12561 4865 5135 10133 5871
E 20 2 200 39 1 39 39 39 39
E 20 2 697 4109 11051 9691 3683 3875 7653 4221
E 20 3 126 49 1 49 49 49 49
E 25 3 80 59 1 59 59 59 59
E 30 3 182 14749 29 7 29 29 29 29
E 42 4 65 1873 6087 65 31 65 65 65 65
E 42 5 30 2721 12217 45 43 45 45 45 45
E 53 7 415 1187 9309 69 79 69 69 69 69
E 64 9 540 665 8473 93 145 93 93 93 93
E 73 11 73 401 7827 99 149 99 99 99 99
E 80 7 70 147 1655 115 347 115 115 115 115
E 90 7 74 67 1129 133 353 133 133 133 133
E 90 7 79 75 1155 139 335 139 139 139 139
F 20 2 240 3691 369 1455 1303 563 477 1027 413
F 20 2 322 3361 595 1741 1473 483 439 1353 495
F 20 2 652 4445 389 1555 1307 441 409 1369 401
F 24 3 18 6157 419 165 49 127 209 31
F 24 3 26 7509 385 139 41 81 453 53
F 24 3 35 7071 4859 423 3027 145 411 369 1703
F 30 4 238 2789 699 2229 2129 585 677 1469 659
F 31 3 152 2253 383 1265 1113 373 447 883 553
F 42 6 16 1509 67 2073 803 117 65 835 65
F 42 6 19 1577 141 3275 3155 231 207 2129 783
F 42 6 24 1349 1691 3621 3429 423 447 397 905
F 73 11 48 135 259 843 961 327 369 621 351
F 73 11 73 161 285 1027 921 295 299 793 299
F 77 14 98 119 1025 1179 1201 381 405 861 557
F 83 10 77 49 255 577 517 201 209 419 171
Los mejores resultados se observan con las combinaciones que contienen a Clique Doble, quedando
descartadas por completo las combinaciones (1) y (2).
Adoptando como caracterı́stica más valorada a la cantidad de instancias que se pueden resolver
en forma óptima, se opta por seleccionar a (6) como la mejor combinación y, en consiguiente, la que
formará parte de los experimentos subsiguientes en este capı́tulo. De haber tomado otra caracterı́stica
como la más buscada, como ser, un moderado consumo de memoria por ejemplo, se hubiera elegido otra
combinación dado que las combinaciones (3), (4), (5), (6), (7) y (8) desarrollan desempeños parecidos
sin embargo novedosamente enfocados a diversas caracterı́sticas.
Algoritmo Branch & Cut incluyendo la combinación de cortes, agregando la heurı́stica primal de
redondeo, explicada en la Sección 4.2.1
Algoritmo Branch & Cut incluyendo la combinación de cortes, agregando la heurı́stica primal que
utiliza un modelo de programación lineal, explicada en la Sección 4.2.2
El Cuadro 5.6 resume los hallazgos encontrados. En él se especifican los tiempos de ejecución, los
gaps de optimalidad y la cantidad de nodos en los árboles de enumeración sobre las instancias en
cada escenario. De manera de poder comparar resultados, también se incluyen las columnas que hacen
referencia a los resultados obtenidos a partir de la combinación de cortes sin heurı́sticas. Como es
sabido, estas últimas al no poseer cotas duales presentan gaps de optimalidad con valor indefinido. Las
celdas pintadas en rojizo señalan las ejecuciones que no terminaron exitosamente dentro del tope de 45
minutos. Las celdas pintadas en gris indican que se encontró una solución óptima con una tolerancia en
el gap de optimalidad menor a 0.10 %. Los próximos dos párrafos estudian los resultados obtenidos en
esta Sección.
Resultados computacionales 61
Clique
Clique Ref. Doble C. Ref. Clique Doble Clique Doble Clique Doble Clique
Grupo n k s Clique Repl. C.Doble Ext. Doble Doble Clique Doble C. Ref. Doble C. Ref. Doble Clique C.Doble Ext.
Orden de Ciclo C.Doble 2-Ext. Clique C. Ref. C.Doble Ext. C.Doble Ext. Doble C. Ref. C.Doble 2-Ext.
Ciclo Impar C.Doble Cerr. C. Repl. C.Doble 2-Ext. C.Doble 2-Ext.
4 Ciclo + C. C.Doble Cerr.
A 20 2 156 0 113 122 113 113 113 113
A 20 3 199 369 79 103 174 172 113 267
A 20 4 135 96 146 166 166 108 176
A 25 4 128 159 189 245 245 185 202
A 30 10 499 718 183 366 751 701 284 628
A 30 3 131 408 263 286 343 343 275 300
A 30 3 140 726 366 197 215 380 308 212 333
A 35 4 113 718 372 330 329 613 612 355 534
A 35 4 145 565 401 379 456 320 320 397 528
A 40 4 134 965 572 472 468 488 488 542 715
A 40 4 135 751 456 495 542 854 862 454 519
A 40 4 150 650 501 418 362 880 902 470 693
A 50 5 148 1193 1370 736 907 1795 1849 967 1662
A 78 40 127 438 4142 1110 1511 4684 4500 1408 3706
A 80 13 53 573 4806 1644 1752 4730 4837 1708 4672
B 20 10 519 126 115 40 101 147 147 61 132
B 20 4 56 1219 588 716 1547 1511 924 1690
B 20 4 66 1361 653 970 1557 1432 791 1246
B 20 4 80 1140 631 548 1251 808 716 1363
B 20 4 88 1033 341 1021 1765 1964 631 741
B 30 10 135 846 494 132 233 540 505 171 463
B 40 10 270 678 1134 277 489 1252 1252 443 1115
B 40 10 288 512 1147 229 372 1371 1369 366 1188
B 41 6 103 296 768 250 229 693 693 285 790
B 41 6 120 411 794 266 321 939 939 303 967
B 50 10 50 151 142 130 142 142 142 142
B 50 30 109 293 998 555 1321 1265 449 1200
B 80 12 44 444 1417 729 830 1936 1973 981 1910
B 95 11 71 632 4188 1464 1494 4873 4997 1895 4819
B 97 10 80 684 1498 910 982 2260 2374 1203 2121
C 20 2 121 2054 562 998 1532 1525 667 556
C 20 2 123 1723 1096 592 714 560 560 765 517
C 20 2 126 1645 2072 463 583 2215 2246 769 2066
C 20 2 131 1957 580 832 1956 2358 683 2060
C 20 2 138 869 595 733 644 708 850 853
C 20 2 199 1784 587 827 2380 2435 904 2228
C 20 4 175 2115 2434 643 1068 2785 2592 901 2503
C 25 4 27 1262 1232 633 663 745 744 557 519
C 42 7 23 908 1515 554 732 1622 1510 749 1462
C 42 7 49 1181 1573 649 609 1933 1504 903 1744
C 50 10 22 203 196 195 227 227 199 214
C 50 10 26 146 193 228 235 235 208 220
C 50 10 33 236 158 198 161 161 169 153
C 60 8 47 826 3256 1306 1329 3977 3745 1694 3670
C 73 12 45 718 3483 1451 1508 4154 4138 1953 3804
D 20 3 156 1014 618 624 708 658 888 724
D 20 3 162 1502 1107 433 437 1062 943 456 712
D 20 3 166 1068 482 453 683 678 747 826
D 20 3 171 1101 272 691 1047 908 439 503
D 20 3 172 1016 631 723 611 604 432 701
D 20 3 177 1090 395 456 830 871 604 688
D 25 3 22 1186 2789 794 806 1135 1270 1195 578
D 30 3 186 1855 4757 2918 3215 4611 4684 3246 4850
D 30 4 130 719 1383 331 627 629 816 376 731
D 30 4 198 1022 1445 439 419 645 1339 585 986
D 42 5 18 1047 4129 1844 1052 2455 3121 2529 2275
D 42 5 19 1291 4044 1868 1645 4309 2548 1934 3185
D 53 7 65 786 4418 2266 2454 4967 4789 2703 4862
D 72 10 60 513 816 635 671 1164 987 715 1036
D 78 11 44 2982 1391 1721 3670 3847 1727 3249
E 20 2 110 142 110 142 142 142 142
E 20 2 120 1112 452 514 1403 1365 625 1230
E 20 2 200 140 110 140 140 140 140
E 20 2 697 1463 609 729 1736 1757 887 1602
E 20 3 126 74 100 74 74 74 74
E 25 3 80 137 116 137 137 137 137
E 30 3 182 0 187 225 187 187 187 187
E 42 4 65 295 0 273 271 273 273 273 273
E 42 5 30 278 0 188 180 188 188 188 188
E 53 7 415 181 0 246 210 246 246 246 246
E 64 9 540 104 0 247 289 247 247 247 247
E 73 11 73 214 0 251 327 251 251 251 251
E 80 7 70 383 0 298 664 298 298 298 298
E 90 7 74 577 0 511 695 511 511 511 511
E 90 7 79 404 0 536 697 536 536 536 536
F 20 2 240 2849 4950 3556 3763 4972 4916 4383 4762
F 20 2 322 3245 4990 3282 3812 4601 4659 3879 4921
F 20 2 652 2753 4730 2784 3622 4691 4536 3373 4648
F 24 3 18 1596 547 426 488 911 665 507
F 24 3 26 1543 514 517 654 694 700 588
F 24 3 35 1472 1780 452 772 895 1148 628 1578
F 30 4 238 2014 4047 2133 2186 4967 4540 2834 4792
F 31 3 152 1806 4776 3447 3952 4805 4548 3967 4854
F 42 6 16 776 940 1215 1096 1554 1357 1585 1103
F 42 6 19 699 1515 1428 1441 2186 2258 2062 2295
F 42 6 24 1183 2138 1425 1447 2260 2074 1432 2261
F 73 11 48 1073 4649 3043 2553 4867 4937 3850 4760
F 73 11 73 761 4947 2838 2809 4892 4580 3382 4644
F 77 14 98 1093 2860 2656 2375 4591 4501 3462 3883
F 83 10 77 1238 4477 3203 3341 4978 4985 4240 4728
Cuadro 5.5: Cantidad de cortes agregados dinámicamente con cada combinación de familias de de-
sigualdades válidas. Las celdas en tono rojo terminaron su ejecución debido a la falta de memoria. Las
de tono rosado, debido al tope de tiempo.
62 Experimentos con las heurı́sticas primales y CPLEX
La observación más directa resulta de comprobar que son muy pocas las instancias que terminan
exitosamente o con cierta tolerancia, cuando son corridas mediante CPLEX. En total son 5 y pertenecen
todas al grupo B. Además, la cantidad de nodos en esta circunstancia llega a ser desmesurada, pudiendo
alcanzar con facilidad los 7 millones en el grupo A. Más aún, los gaps de optimalidad que resultan de
esta ejecución son hartamente holgados. El gap más grande encontrado es de 601.64 % para la instancia
del grupo E, con 30 nodos, 3 sectores y valor de espectro de 182, y en general el grupo E presenta
los mayores gaps. Por el contrario, el grupo B cuenta con gaps pequeños. En general, el valor primal
devuelto en estos experimentos resultaba ser el valor óptimo, pero lamentablemente llegados los 45
minutos de ejecución aún no se contaba con tal garantı́a.
En definitiva, queda constatado que el algoritmo Branch & Cut con la combinación de cortes supera
ampliamente a esta ejecución, lo que revela el impacto positivo y la importancia de las desigualdades
válidas utilizadas para tal fin.
El hecho de aplicar heurı́sticas revela un nuevo valor, el primal, el cual facilita el hallazgo de solu-
ciones factibles. En lo que respecta a la utilización de la heurı́stica primal de redondeo, ésta es capaz
de resolver exitosamente una instancia que no habı́a sido resuelta hasta el momento, que es la pertene-
ciente al grupo E, con 20 nodos, 2 sectores y un valor de espectro de 120. Más allá de este ejemplo y
algunas leves disminuciones en la cantidad de nodos del grupo E, no se observan mejoras significativas.
Asimismo, los gaps de optimalidad no resultan buenos en esta ocasión. Por otra parte, los tiempos de
ejecución no difieren mucho de los que no aplican heurı́sticas, indicando que este agregado de lógica
extra prácticamente no modifica el desempeño total del algoritmo.
Los resultados relacionados con la inclusión de la heurı́stica primal que utiliza un modelo de progra-
mación lineal son un tanto ambiguos: se observan dos instancias que si bien suelen terminar exitosamente
antes de los 45 minutos, aplicando esta heurı́stica ya no pueden llegar a una solución óptima. Estas
instancias son, del grupo A, con 35 nodos, 4 sectores y 113 de espectro, y del grupo C, con 42 nodos
y 7 sectores y 23 de espectro. Esto se debe a que, a diferencia de la heurı́stica anterior, ésta se vale
de cotas primales de mejor calidad, logrando gaps que son alrededor de 10 veces menores que los de la
heurı́stica primal de redondeo, pero a cambio consume una porción de tiempo que es relevante en la
ejecución, pudiendo llegar a duplicar el tiempo original. Si la reducción en el árbol de enumeración no
es significativa, entonces esta configuración no es de utilidad. Por el contrario, el grupo E es manejado
brillantemente, ya que encuentra solución en el primer nodo para todos los casos que terminan exito-
samente. Al ser tan eficiente, se nota una mejora en los tiempos de ejecución, pero como se observa,
necesariamente la reducción del árbol tiene que ser significativa para que esto impacte en el tiempo de
ejecución. Como resultado, se podrı́a concluir que esta heurı́stica primal es un arma de doble filo, una
herramienta inestable que puede enlentecer al programa, o bien resolverlo de manera sorprendentemente
veloz.
Resultados computacionales 63
Cuadro 5.6: Tiempos de ejecución, gaps de optimalidad y cantidad de nodos en el árbol de enumeración ejecutando el
algoritmo Branch & Cut con la mejor combinación de desigualdades, sin heurı́sticas (columna Sin H.), con la heurı́stica
primal de redondeo (1), con la heurı́stica primal que utiliza un modelo de programación lineal (2), y en otras lineas, la
ejecución del algoritmo Branch & Bound por medio de CPLEX, respectivamente.
64 Experimentos con los parámetros del Branch & Cut
BranchingStrategy: determina qué variable se selecciona para ramificar. Hay dos opciones:
• CloseHalf, que selecciona la variable cuya fracción esté más próxima a 0.5
• CloseHalfExpensive, que selecciona la variable cercana a 0.5 que tenga el coeficiente de la
función objetivo con el valor absoluto más alto.
SkipFactor: define la frecuencia con que se aplican los cortes en los subproblemas. Acepta cual-
quier número entero positivo. Por ejemplo, si es 1, significa que los cortes son generados en cada
subproblema.
MaxIterations: Limita la cantidad de iteraciones de la fase de generación de cortes de un pro-
blema determinado. El valor válido es cualquier número entero positivo. Si en cambio es -1, indica
que esta cantidad es ilimitada.
A continuación se detallan los resultados obtenidos a partir de la variación de cada uno de estos
parámetros, y el Cuadro 5.5 los ilustra. De manera de no probar con todas las combinaciones, se
fijan los parámetros que no se evalúan. Los valores predeterminados son BestFirst, CloseHalf, 1 y -1
respectivamente. Más aún, estos fueron los valores utilizados para efectuar los experimentos expuestos
en las secciones anteriores. Se seleccionaron 4 instancias de cada grupo, haciendo un total de 24 de las
90 instancias con que se venı́a trabajando.
El Cuadro 5.5a resume los resultados obtenidos variando el parámetro EnumerationStrategy.
DepthFirst y BreadthFirst no demuestran ser buenas estrategias de enumeración de subproblemas,
e indiscutiblemente la mejor es BestFirst, cuya corrida total demoró menos de la mitad de tiempo que
BreadthFirst. Los valores duales fueron equivalentes en todas las corridas, a excepción de DiveAndBest
que ajustó mejor una instancia que terminaba debido al tope de tiempo.
El Cuadro 5.5b muestra los resultados que resultan de variar el parámetro de BranchingStrategy.
Destacan a CloseHalfExpensive por sobre CloseHalf.
El Cuadro 5.5c detalla los resultados obtenidos probando con SkipFactor puesto en 1, 5, 10, 20 y
50. La calidad de los mismos disminuye a medida que este valor aumenta. Con valor 1 se obtienen los
mejores resultados en cuanto a todas las caracterı́sticas que se analizan.
Finalmente, el Cuadro 5.5d refleja los resultados obtenidos del resultado de variar MaxIterations.
Se utilizaron los valores 5, 10, 20, 50 y -1, que representa una cantidad de ilimitada de iteraciones. A
partir de 20, la cantidad de instancias que terminan exitosamente se normaliza y conforman resultados
similares. La ejecución que es producto de usar el valor 5 en este parámetro presenta caracterı́sticas
especiales, aquellas instancias que encuentran la solución óptima son más eficientes que el resto en
tiempo de ejecución y cantidad de nodos, pero son solo 12, menos que las 18 que se resuelven con otros
valores utilizados. Se puede concluir que cualquier valor mayor a 20 significa una ejecución equilibrada
en las caracterı́sticas que se analizan.
Resultados computacionales 65
Habiendo analizado los distintos parámetros que presenta Abacus por separado, se puede inferir que
la configuración más exitosa resulta usando BestFirst como EnumerationStrategy, CloseHalfExpensive
como BranchingStrategy, 1 para SkipFactor y cualquier valor a partir de 20 para MaxIterations.
Es interesante destacar que éstos fueron los valores que se utilizaron en los experimentos de la Sección
5.3.
66 Experimentos con los parámetros del Branch & Cut
Capı́tulo 6
6.1. Conclusiones
El objetivo principal de esta tesis fue la implementación y evaluación de un algoritmo Branch & Cut
para el problema de asignación de frecuencias en sistemas punto a multipunto.
El trabajo comenzó a partir de una formulación de este problema como un modelo de programación
lineal entera. Sobre la base de este modelo se implementó un algoritmo Branch & Bound, utilizando
el entorno Abacus [23, 24]. Contando con estas herramientas, nos dedicamos a generar instancias que
intentasen representar casos reales. Propusimos seis generadores de instancias, que construyen grafos
de interferencia y valores de demanda similares a los encontrados en redes de comunicaciones reales.
Trabajamos con todas las desigualdades válidas conocidas hasta el momento para el modelo de
programación lineal entera mencionado en el párrafo anterior [10, 31, 32]. En primer lugar, evaluamos
sobre las instancias el impacto en la relajación lineal y el algoritmo Branch & Bound que tiene el
agregado de todas las desigualdades de cada familia. La familia Clique Doble mostró una fuerte tendencia
a destacarse por sobre las demás. En otras lı́neas, especialmente las familias Clique Reforzada, Doble
Clique Reforzada, Clique Doble Extendida, Clique Doble 2-Extendida y Clique Doble Cerrada, si bien no
permitieron encontrar soluciones óptimas, contribuyeron a la ejecución del algoritmo Branch & Bound,
generando árboles de enumeración más pequeños.
A partir de los resultados obtenidos mediante este primer enfoque, nos dedicamos a formular un
algoritmo Branch & Cut para el problema en cuestión. Para ello, fue necesario definir algoritmos de
separación para cada familia de desigualdades válidas. Para completar el algoritmo, se crearon dos
heurı́sticas primales para generar cotas primales a partir de soluciones factibles.
Habiendo implementado el algoritmo Branch & Cut, comenzó la etapa de experimentación. Se se-
leccionaron combinaciones de familias de desigualdades válidas a incluir como cortes. Potencialmente,
la inclusión de Clique Doble era prometedora. Esto provocó la primera partición de las familias. Se
llevaron a cabo tres experimentos iniciales incluyendo, por un lado, a las familias Clique, Clique Re-
forzada, Clique Replicada, Orden de Ciclo, Ciclo Impar y 4 Ciclo + Clique, por el otro, a las familias
Doble Clique Reforzada, Clique Doble Extendida, Clique Doble 2-Extendida y Clique Doble Cerrada
y finalmente, a la familia Clique Doble por separado. La ejecución menos performante fue la primera,
descartando ası́ a unas cuantas familias que, aún con sus cortes incluidos en conjunto, producı́an una
cantidad limitante de errores, producto de la falta de memoria en las ejecuciones. Los resultados com-
probaron que las familias del segundo grupo podı́an ser candidatas a acompañantes de Clique Doble,
ya que aunque fueran pocas las instancias resueltas en estos casos, contribuyeron a reducir los tiempos
de ejecución. Más aún, Clique Doble necesitaba algún tipo de refuerzo ya que se halló una instancia que
quedaba sin memoria aplicando sólo esta familia de desigualdades. Evitar estas situaciones es crucial,
dado que inutiliza la efectividad del algoritmo implementado.
En general, las ejecuciones que incluyeron a Clique Doble y a una o más de las familias Doble Clique
Reforzada, Clique Doble Extendida, Clique Doble 2-Extendida y Clique Doble Cerrada, tuvieron una
performance positiva. Sorpresivamente, Clique Doble sumada a Clique, Clique Reforzada y Clique Re-
68 Trabajo a futuro
plicada también presentó caracterı́sticas valoradas, en particular, una notable velocidad en la ejecución
y la mejor reducción de nodos en el árbol de enumeración.
Enfocados a la importancia que radica en obtener la mayor cantidad posible de soluciones óptimas,
elegimos a la combinación Clique Doble, Doble Clique Reforzada, Clique Doble Extendida y Clique
Doble 2-Extendida, que lograba este cometido. Partiendo de esta combinación, se procedió a profundizar
otros experimentos, tales como la inclusión de las heurı́sticas primales, la comparación con el paquete
comercial CPLEX sin cortes, y el ajuste de los parámetros que ofrece el entorno Abacus.
Con relación a las dos heurı́sticas primales propuestas, la heurı́stica de redondeo no tuvo trascenden-
cia alguna. Por otra parte, la heurı́stica primal basada en la resolución de un modelo de programación
lineal embebido muestra dos posibilidades; puede o bien agregar sobrecarga aumentando los tiempos
de ejecución, o encontrar cotas primales que reducen significantemente el árbol de enumeración, dando
lugar a tiempos de ejecución sorprendentes. Esto último se vio en especial para un grupo particular
de instancias. De acuerdo con estos experimentos, esta heurı́stica primal es una herramienta que debe
aplicarse con discreción, pudiendo ser muy efectiva o empeorar los resultados globales.
El paquete comercial CPLEX no pudo resolver más que 5 de 90 instancias en forma óptima, contra las
60 que se resuelven por medio del algoritmo Branch & Cut, lo cual nos permite destacar la importancia de
las desigualdades válidas que se estudiaron, y pensar positivamente en las lı́neas de trabajo que pongan
su énfasis en evolucionar el armado de algoritmos de tipo Branch & Cut para resolver el problema de
asignación de frecuencias en sistemas punto a multipunto.
Descripción de la implementación
Abacus, A Branch-And-CUt System [23, 24], es un sistema desarrollado en C++ que provee un
entorno para la implementación de algoritmos Branch and Bound basado en programación lineal. Los
planos de corte pueden ser generados dinámicamente, para ası́ habilitar también la implementación
de algoritmos Branch and Cut. Cuenta con un esquema de herencia y métodos virtuales, definiendo
ası́ puntos de entrada de los cuales las clases especı́ficas de una aplicación pueden ser derivadas, dado un
problema de optimización combinatoria propio. De esta manera, el desarrollador se concentra meramente
en las partes especı́ficas de su problema, sin necesidad de “reinventar la rueda” manejando el árbol de
enumeración, los subproblemas o el proceso de branching en sı́. Las partes especı́ficas pueden ser, por
ejemplo, los procedimientos de separación para los planos de corte, o la implementación de heurı́sticas
primales, ambos nutridos de conceptos propios del problema que se intenta resolver.
Abacus provee una gran variedad de conceptos algorı́tmicos generales, como ser listas de las diferentes
estrategias de branching y enumeración, posibles recorridos del árbol de enumeración, etc., a partir de
las cuales es posible elegir la alternativa que más encaja (o redefinirla) en una determinada aplicación
en particular. A su vez, el proceso tiene asociado un gran número de parámetros, definidos en el archivo
.abacus, que se lee al comienzo de la ejecución.
La estructura de Abacus puede ser caracterizada por tres grupos principales, delineados en el Cuadro
A.1. Las clases base de la aplicación son las más pertinentes ya que a partir de ellas se derivan las de una
aplicación particular. Las clases pertenecientes al núcleo intentan ser una abstracción para el usuario.
A este grupo pertenecen todas las clases que soportan la implementación del algoritmo Branch and
Bound en sı́, la solución de relajaciones lineales, y el manejo de restricciones y variables. Es importante
mencionar que Abacus no implementa directamente la resolución de los problemas lineales que surgen
durante la optimización, sino que delega esta lógica a programas especializados. Provee interfaces con
Cplex, Soplex y XPress.
ABACUS
Núcleo Aplicación base Herramientas auxiliares
Programa lineal Master Estructuras de datos básicas
Pool Subproblema Herramientas varias
Branch & Bound Restricciones
Variables
Se hará énfasis en la descripción de las clases base de la aplicación ya que tienen que ver directamente
con la implementación de una aplicación nueva y la interacción con el entorno.
ABA MASTER: se instancia en un objeto singleton, y es una de las clases centrales. Controla el
proceso de optimización y almacena estructuras globales que sirven para la optimización. Por
ejemplo, inicializa el árbol de enumeración y genera el primer subproblema. Para cada aplicación
nueva, esta clase debe ser extendida. En particular, el método ABA MASTER::optimize() inicia el
proceso de optimización, comenzando por inicializar las variables y restricciones de la formulación
inicial.
ABA SUB: representa un subproblema de la enumeración implı́cita, es decir, un nodo del árbol de
enumeración. La optimización del subproblema se lleva a cabo mediante la solución de relajaciones
lineales. Por lo general, es aquı́ donde se invierte la mayor cantidad de tiempo de ejecución.
También, esta clase necesita ser extendida, redefiniendo las funciones virtuales que presenta.
ABA CONSTRAINT y ABA VARIABLE: dado que un problema lineal entero se representa por medio de
restricciones junto con la función objetivo, Abacus provee algunos conceptos predeterminados para
la representación de restricciones y variables, que permiten abstraerse del manejo de las mismas
en el contexto de la manipulación del problema. De todas maneras, podrı́a llegar a ser necesario
especializar las clases ABA CONSTRAINT o ABA VARIABLE. A su vez, estos objetos son almacenados
en pools, objetos que forman parte del grupo auxiliar (i.e., la tercera columna de la Tabla A.1), y
proveen un manejo seguro de las mismas.
En todo momento es necesario contar con una clase de la que se puedan extraer datos del problema.
Resulta imprescindible contar con mecanismos para obtener información por ejemplo, de las aristas,
nodos o sectores ası́ como también datos menos triviales que pueden ser la obtención de los vecinos
de un nodo en particular o el poder determinar si un nodo corresponde a un cliente principal. La
clase Problema encapsula esta información. Las estructuras usadas para almacenarla son arreglos. Se
cuenta con tres arreglos de tamaño n que en la posición i-ésima informan la demanda, el sector al que
pertenece, o las aristas del nodo i, respectivamente. Luego, en general las consultas directas acerca de
estos conceptos presentan un tiempo constante. Un objeto Problema, que pretende ser de sólo lectura
ya que, lo que representa son invariantes mantenidos a lo largo de una ejecución, se construye mediante
un archivo que contiene los datos del problema. Un ejemplo del mismo puede ser revisto en el siguiente
esquema, presentado en el Capı́tulo 3, en donde, n representa a la cantidad de nodos, m a la cantidad
de aristas, k a la cantidad de sectores y cc a la cantidad de clientes conflictivos de distintos sectores.
n
k
s
sector de c1 . . . sector de cn
demanda de c1 . . . demanda de cn
cc
ci1 cj1 (ci1 y cj1 presentan conflicto, i 6= j)
..
.
cicc cjcc
Figura A.1: Interfaz de la clase Problema. La parte superior muestra la estructura interna, mientras
que la superior expone los principales métodos provistos.
Variables
Restricciones y desigualdades
Las restricciones del modelo lineal, las desigualdades válidas y las restricciones que surgen durante el
proceso de branching se representan mediante especializaciones de la clase ABA CONSTRAINT. La Figura
A.3 detalla la jerarquı́a existente a partir de ABA CONSTRAINT. Notar la distinción entre las restricciones
del modelo lineal, que son Demanda, Antiparalelismo y Simetrı́a, con el resto de las restricciones.
Cada restricción es creada a partir de los datos variables que la identifican. Por ejemplo, la Definición
2.2.1 que alude a una desigualdad Clique, puede representarse como un nodo i y una clique K. La reim-
plementación del método ABA CONSTRAINT::coeff(ABA VARIABLE *v) permite distinguir el coeficiente
adecuado que acompaña a determinada variable. El Diagrama de Secuencia A.4 exhibe la forma de re-
solver el coeficiente de una variable que pertenece a la desigualdad Clique. Notar que la representación
interna de la restricción se vale
Pdel signo menor o igual y las variables están ubicadas a la izquierda de
la ecuación, conformando ası́ k∈K dk xki − li ≤ 0.
72 Descripción general de la implementación
Figura A.5: Interfaz relevante y jerarquı́a de la clase Master. En particular, ABA MASTER almacena datos
pertinentes que hacen al total del programa, como ser los tiempos de ejecución, la cantidad de nodos
en el árbol de enumeración, etc.
Se efectuaron principalmente dos redefiniciones de métodos de ABA SUB. Uno corresponde al método
Sub::improve(double & valorPrimal) que implementa la heurı́stica primal de redondeo definida en
la Sección 4.2. El otro, Sub::separate(), se encarga de construir un objeto Solucion temporario con el
valor actual de las variables de ese subproblema en particular. Probablemente no se trata de una solución
válida, por lo que, de acuerdo a los parámetros definidos, se implementan los distintos procedimientos
de separación, para averiguar las desigualdades que son violadas por la misma. El diagrama de secuencia
que está en la Figura A.8 detalla este método.
78 Descripción general de la implementación
Figura A.8: Ejecución aproximada del método Sub::separate(). La condición marcada como Si se
requieren está dada por los distintos parámetros de entrada definidos para cada familia de desigualdades.
Por su parte, los procedimientos de separación propios de cada familia de desigualdades definida fueron
ampliados en detalle mediante pseudocódigos en la Sección 4.1.
Apéndice B
Este apartado muestra en detalle los porcentajes de ajustes a las relajaciones lineales de todos los
grupos de instancias. Está provisto de 6 cuadros, que son B.1, B.2, B.3, B.4, B.5 y B.6 que ilustran los
grupos de instancias A, B, C, D, E y F respectivamente.
Las columnas informan, para cada instancia, la cantidad de clientes (n), la cantidad de sectores (k),
la longitud del espectro disponible (s), el resultado de la relajación lineal y el resultado de la relajación
lineal reforzada con todas las desigualdades de cada familia de desigualdades, representando en cada
fila el porcentaje de ajuste del agregado de las mismas para una instancia dada. El mismo se calcula
como (LR − DU AL) ∗ 100/LR, siendo LR el resultado de la relajación lineal y DU AL el resultado
de la relajación lineal considerando el agregado de la familia relacionada a dicha columna. El hecho de
mostrar porcentajes en vez de resultados permite obtener una idea general del comportamiento respecto
de la relajación lineal. Por ejemplo, es sencillo mostrar un promedio de los comportamientos de cada
familia. Los mismos pueden observarse en la última fila de cada cuadro en esta sección. En caso de
encontrarse vacı́o un casillero, significa que agregando aquella familia de desigualdades se detectó que la
instancia no era factible (es decir, la relajación lineal resultante resultó vacı́a). Es importante diferenciar
un casillero vacı́o de uno que contiene el valor 0, ya que en este último caso la intención es expresar que
el agregado de la familia relacionada no mejora el valor óptimo de la relajación lineal.
80
Cuadro B.1: Porcentajes de ajustes a la relajación lineal sobre instancias del grupo A, para cada familia
de desigualdades.
Detalles acerca de las relajaciones lineales utilizando cada familia de desigualdades 81
Cuadro B.2: Porcentajes de ajustes a la relajación lineal sobre instancias del grupo B, para cada familia
de desigualdades.
82
Cuadro B.3: Porcentajes de ajustes a la relajación lineal sobre instancias del grupo C, para cada familia
de desigualdades.
Detalles acerca de las relajaciones lineales utilizando cada familia de desigualdades 83
Cuadro B.4: Porcentajes de ajustes a la relajación lineal sobre instancias del grupo D, para cada familia
de desigualdades.
84
Cuadro B.5: Porcentajes de ajustes a la relajación lineal sobre instancias del grupo E, para cada familia
de desigualdades.
Detalles acerca de las relajaciones lineales utilizando cada familia de desigualdades 85
Cuadro B.6: Porcentajes de ajustes a la relajación lineal sobre instancias del grupo F, para cada familia
de desigualdades.
86
Bibliografı́a
[1] Aardal K. y van Hoesel S., Polyhedral Techniques in Combinatorial Optimization. Tilburg and
Limburg University, The Netherlands, 1995.
[2] Ahuja R.; Magnanti T. y Orlin J., Network flows: Theory, algorithms and applications. Prentice
Hall, 1993.
[3] Ascheuer N.; Jünger M. y Reinelt G., A Branch & Cut Algorithm for the Asymmetric Hamil-
tonian Path Problem with Precedence Constraints. Konrad Zuse Zentrum für Informationstechnik,
Berlin. Preprint SC (1997) 97-70.
[4] Bixby R.; Fenelon M.; Gu Z.; Rothberg E. y Wunderling R. , Mixed-Integer Programming:
A Progress Report. En M. Grötschel (Ed.), The Sharpest Cut: The Impact of Manfred
Padberg and His Work. Philadelphia: SIAM/MPS Series on Optimization 4, 2004.
[5] Bley A.; Eisenblätter A.; Grötschel M.; Wagler A. y Wessäly R., Frequenzplanung für
Punlt- zu Mehrpunkt-Funksysteme. Abschlußberich eines Projekts der BOSCH Telecom GmbH und
des Konrad-Zuse-Zentrums für Informationstechnik Berlin, 1999.
[6] Bomze I.; Budinich M.; Pardalos P. y Pelillo M., The Maximum Clique Problem. Handbook
of Combinatorial Optimization, 1999
[7] Dantzig G. y Thapa M., Linear Programming. Springer Verlag, New York, 1997.
[8] Dasdan A., An experimental study of minimum mean cycle algorithms. UCI-ICS Technical Report
(1998) 98-32.
[9] de Werra D. y Hertz A. , Consecutive Colorings of Graphs. ZOR, 32, (1998) 1-8.
[10] de Werra D. y Gay Y., Chromatic Scheduling and Frequency Assignment. Discrete Appl. Math.,
49, (1994) 165-174.
[11] Faure R.; Boss J. y Le Garff A., La investigación operativa. Eudeba, Buenos Aires, 1972.
[12] Ferreira C.; Martin A. y Weismantel R., A Cutting Plane Based Algorithm for the Multiple
Knapsack Problem. Konrad Zuse Zentrum für Informationstechnik, Berlin. Preprint SC (1993) 93-7.
[13] Garey M. y Johnson D., Computers and intractability: A guide to the theory of NP-completeness.
W.H. Freeman and Company, 1979.
[14] Golumbic M., Algorithmic Graph Theory and Perfect Graphs. Academic Press, 1980.
[15] Grötschel M.; Monma C.L. y Stoer M., Design of Survivable Networks. Konrad-Zuse-
Zentrum für Informationstechnik, Berlin, Preprint SC (1993) 93-3.
[17] Grötschel M.; Lovász L. y Schrijver A., Geometric algorithms and combinatorial optimiza-
tion. Springer Verlag, 1988.
[19] Hillier F. y Lieberman G., Introduction to Operations Research. Sexta edición, McGraw Hill
International Editions, 1995.
[20] Hongbo L. y Jiaxin W., A new way to enumerate cycles in graph. Department of Computer
Science and Technology, Tsinghua University, Beijing, China, 2006.
[21] Johnson E.; Nemhauser G. y Savelsbergh M., Progress in Linear Programming Based Branch
and Bound Algorithms: An Exposition. Technical Report, Georgia Institute of Technology, 1998.
[22] Jünger M.; Reinelt G. y Thienel S., Practical Problem Solving with Cutting Plane Algorithms
in Combinatorial Optimization. Zentrum für Wissenschaftliches Rechnen, Universität Heidelberg.
Preprint 94/24 (1994).
[23] Jünger M. y Thienel S., Introduction to ABACUS - A Branch and Cut System. Universität zu
Köln. Technical Report 97.263 (1997).
[24] Jünger M. y Thienel S., The Design of the Branch and Cut System ABACUS. Universität zu
Köln. Technical Report 97.260 (1997).
[25] Kengo K.; Akihiro H. y Hiroyuki N., An Effective Local Search for the Maximum Clique
Problem. Department of Information and Computer Engineering, Okayama University of Science,
1-1 Ridai-cho, Okayama, 700-0005, Japan.
[26] Kubale M., Inverval Vertex-Coloring of a Graph With Forbidden Colors. Discrete Math, 74,
(1989) 125-136.
[27] Magalhaes E. y de Souza C., The Edge Weighted Clique Problem: valid inequalities, facets and
polyhedral computations. UNICAMP, Reporte técnico IC (1997) 97-14.
[28] Marenco J., Chromatic scheduling polytopes coming from the bandwidth allocation problem in
point-to-multipoint radio access systems. Tesis de Doctorado, Universidad de Buenos Aires, 2005.
[29] Marenco J. y Wagler A., On the combinatorial structure of chromatic scheduling polytopes.
Discrete Applied Mathematics 154 (2006) 1865-1876
[30] Marenco J. y Wagler A., Chromatic scheduling polytopes coming from the bandwidth allocation
problem in point-to-multipoint radio access systems. Annals of Operations Research 150-1 (2007)
159-175.
[31] Marenco J. y Wagler A., Cycle-based facets of chromatic scheduling polytopes. Discrete Opti-
mization 6 (2009) 51-63.
[32] Marenco J. y Wagler A., Facet-inducing inequalities for chromatic scheduling polytopes based
on covering cliques. Discrete Optimization 6 (2009) 64-78.
[33] Nemhauser G. y L. Wolsey, Integer Programming and Combinatorial Optimization. John Wiley
& Sons, 1988.
[34] Pedregal P., Introduction to optimization. Springer, New York, 2004.
[35] Wolsey L., Integer Programming. John Wiley & Sons, 1998.