Sunteți pe pagina 1din 11

Utilizaci on de Metaheursticas para la Resoluci on

del Set Covering Problem


Domingo De Abreu y Jos e G. Pi nero
Departamento de Computaci on y Tecnologa de la Informaci on
Universidad Sim on Bolvar
Caracas, Venezuela
dabreu@ldc.usb.ve y jpinero@ldc.usb.ve
ResumenEl Set Covering Problem (SCP) busca una familia
de conjuntos de costo mnimo de n subconjuntos dados que,
unidos, cubren el universo de elementos. En este artculo,
estuadiamos el comportamiento de dos algoritmos que resuelven
SCP a trav es de metaheursticas. El primero de ellos es un
algoritmo de b usqueda local que es modicado para utilizar la
vecindad de 1-ip, que es el conjunto de soluciones obtenibles
de la actual soluci on tal que dieren en a lo sumo una variable.
Adem as nuestro algoritmo utiliza la informaci on de la relajaci on
Lagrangiana de SCP, para reducir el tama no problema y poder
manejar instancias a gran escala. Por otra parte, est a un
algoritmo gen etico el cual se limita al espacio factible de la
soluci on. El desempe no de ambos algoritmos fue evaluado por
un n umero de instancias de distinta magnitud. De acorde a
los resultados obtenidos, el algoritmo gen etico mostr o capacidad
de generar buenas soluciones en poco tiempo mientras que la
b usqueda local se estanca en mnimos locales para instancias de
mediano y gran tama no.
I. INTRODUCCI ON
El Set Covering Problem (SCP) es uno de los problemas
m as representativos de optimizaci on combinatoria cuya de-
nici on es la siguiente: Dado un conjunto de m elementos
i M, n subconjuntos S
j
N, j N = {1,...,n} y costos
c
j
(> 0) para cada subconjunto S
j
, se quiere encontrar una
familia de subconjuntos S
j
con el mnimo costo total bajo la
restricci on de que cada elemento i M, es cubierto al menos
una vez por alg un subconjunto en dicha familia. El SCP se
puede representar de la siguiente manera:
SCP : minimizar costo(x) =

jN
c
j
x
j
sujeto a:

jN
a
ij
x
j
1, i M
x
j
{0, 1}, j N
donde:
a
ij
=
_
1 si i S
j
0 en caso contrario
El Set Covering Problem tienes muchas aplicaciones en la
vida real como la planicaci on de los horarios de buses, trenes
y aeronaves [1][3], localizaci on de instalaciones [4], an alisis
l ogico de datos [5], balanceo de lneas de ensamblaje [6] y
simplicacion de expresiones booleanas [7].
Existe un n umero importante de algoritmos exactos y
heursticos que han sido planteados para la resoluci on de
este problema. Entre los algoritmos exactos, Fisher y Keida
[8] presentaron una soluci on empleando un algoritmo exacto
basado en una heurstica dual, pudiendo resolver instacias de
hasta 200 las y 2,000 columnas. Beasley [9] combin o una
heurstica Lagrangiana, restricciones de exclusi on de solu-
ciones factibles, Cortes-F de Gomory y una estrategia de
ramicaci on modicada para mejorar su algoritmo previo [10]
y poder resolver instacias de 400 las y 4,000 columnas.
Entre los algoritmos aproximados, Jacobs y Bruscos [12]
desarrollaron un algoritmo de Simulated Annealing, Rahoual
et al [11] proponen un algoritmo de Ant Colony Optimization
y Ceria, Nobili y Sassano [2] presentaron un heurstica Lagran-
giana para la resoluci on de instacias de gran escala. Por otra
parte, Caprara, Fischetti y Toth [13] combinaron un heurtisca
Lagrangiana y un algoritmo greedy, y obtuvieron sorpredentes
resultados para instancias de 5,000 las y 1,000,000 columnas.
En el siguiente artculo, mostraremos un algoritmo basado
en la B usqueda Local Iterativa (ILS) planteado por Yagiu-
ra,Kishida e Ibaraki [14] y un Algoritmo Gen etico basado en
el algoritmo propuesto por Beasley y Chu [15]. El artculo
se organiza de la siguiente manera. En la secci on 2 se
describir a el algoritmo ILS. En la secci on 3 se detallar a el
algoritmos gen etico mencionado. En la secci on 4 se dar an
los resultados experimentales. Finalmente, en la secci on 5, se
har an algunas conclusiones sobre los resultados obtenidos de
cada algoritmo estudiado.
II. ALGORITMO ILS
II-A. Ideas Generales del Algoritmo
En toda b usqueda local, la denici on adecuada de la vecin-
dad es crucial. Para un entero positivo r, denamos la vecindad
r-ip de una soluci on x = (x
1
, x
2
, ...., x
n
) como el conjunto
de soluciones que se pueden obtener al inventir el valor de
a lo sumo r variables en x. En el artculo de Yagiura et al.
[14] se propone el uso de una vecindad 3-ip. Sin embargo,
en este artculo se quiere modicar dicho algoritmo para que
use la vecindad 1-ip la cual es m as com un en la literatura.
Por otra parte, aunque que el tama no de la vecindad 1-ip es
O(n), utilizaremos la propuesta dada por Yagiura de reducir
el espacio de b usqueda en la vecindad sin la necesidad de
sacricar la calidad de la soluci on obtenida.
Adem as, se incorporar a al algoritmo un mecanismo de osci-
laci on estrat egica [16,17], de tal forma que guie la b usqueda
entre las regiones factibles e infactibles de forma alternada
(i.e., para intensicar la b usqueda en la frontera de la regi on
factible). Llamaremos a una soluci on factible x minimal si,
al invertir cualquier variable x
j
con x
j
= 1 deja de ser
factible. Entonces, podemos decir que cualquier soluci on para
una instancia de SCP siempre ser a minimal, y la oscilaci on es-
trat egica es simplemente una herramienta para la b usqueda de
soluciones minimales en menor tiempo. En nuestro algoritmo,
la b usqueda en la regi on infactible es guada por una medida
de infactibilidad evaluada por una funci on objetivo penalizada,
la cual es denida como la suma de costo(x) y la suma de
los pesos p
i
(> 0) para aquellos i M no cubiertos por la
soluci on x. Las penalizaciones p
i
son luego adaptadas para
intensicar la b usqueda alrededor de la frontera entre ambas
regiones.
Por ultimo, para poder manejar instancias grandes, se reduce
el problema al jar algunas variables x
j
en 0 o 1 en base a
la informaci on suministrada por la relajaci on Lagrangiana de
SCP, donde el conjunto de variables jas es ajustado de forma
heurstica durante el algoritmo.
II-B. Bosquejo del Algortimo
Nuestro algoritmo consiste en dos fases, la fase de b usqueda
local y la fase de jaci on de variables. Para ambas fases, la
informaci on de la relajaci on Lagrangiana del problema es usa-
da, por lo que es necesario resolver el problema Lagrangiano
dual. Para ello, se usar a el m etodo de subgradiente, el cual
ser a explicado junto a la relajaci on en la subsecci on 2.C.
La fase de b usqueda local siempre es aplicada para las ins-
tancias cuyo tama no ha sido reducido en la fase de jaci on de
variables. Como fue mencionada anteriormente, las soluciones
encontradas en la b usqueda son evaluadas por una funci on
objetivo penalizada. Cuando la b usqueda local se detiene es
porque el valor objetivo penalizado no puede ser mejorado,
entonces los pesos son actualizados y la b usqueda local se
reanuda desde la ultima soluci on encontrada, logrando as la
oscilaci on estrat egica. Esta fase es terminada si un n umero de
iteraciones de la b usqueda local han sido completadas, lo cual
ser a explicado con mayor detalle m as adelante.
La fase de jaci on de variables posee dos etapas, la etapa
de jaci on inicial de variables y la etapa de modicaci on.
En la etapa inicial, se procede a utilizar el m etodo del
subgradiente para obtener la informaci on del dual Lagrangiano
para jas algunas variables x
j
en 0. Luego, cuando la fase de
b usqueda local se detiene, el conjunto de variables es ajustado
heursticamente al jar algunas variables x
j
, j N
1
en 1 y
luego se utiliza la informaci on del dual Lagrangiano de la
ultima soluci on para jar otro conjunto de variables x
j
en 0.
II-C. Relajaci on Lagrangiana y M etodo del Subgradiente
Como se dijo anteriormente, se utiliza la relajaci on La-
grangiana para reducir el tama no del problema. La relajaci on
Lagrangiana de SCP, para un vector u R
m
+
dado, se dene
de la siguiente manera:
LR-SCP(u): L(u) = mn
x{0,1}
m

jN
c
j
(u)x
j
+

iM
u
i
donde:
c
j
(u) = c
j


iM
a
ij
u
i
es el costo Lagrangiano asociado a cada j N. Claramente,
una soluci on optima para esta funci on es cuando x
j
(u) = 1
si c
j
(u) < 0, x
j
(u) = 0 si c
j
(u) > 0 y x
j
(u) {0, 1} si
c
j
(u) = 0. Por lo que podemos simplicar L(u) como:
L(u) =

jN
mn{c
j
(u), 0} +

iM
u
i
El problema Lagrangiano dual LD-SCP pide encontrar un vec-
tor de multiplicadores Lagrangianos u

R
m
+
que maximice
L(u) y est a denido como
LD-SCP: max{L(u)|u R
m
+
}
Como el problema LR-SCP(u) posee la propiedad de inte-
gralidad (i.e., su relajaci on en programaci on linear tiene una
soluci on entera optima), cualquier soluci on optima u

al dual
de la relajaci on LP de SCP
LPD-SCP: maximizar

iM
u
i
sujeto a

iM
u
i
a
ij
c
j
, j N
u
i
0, i M
es tambi en una soluci on optima para el problema Lagrangiano
dual [18]. Entonces, si un buen vector de multiplicadores
Lagrangianos u

es encontrado, el costo relativo c


j
(u) nos
da una informaci on conable sobre lo bueno que es hacer
x
j
= 1, porque cada j con x
j
= 1 en una soluci on optima de
SCP tiende a tener un valor c
j
(u) bajo. Sin embargo, computar
un u

optimo de forma directa es muy costoso para instancias


a gran escala. Para ello, una soluci on com un es computar un
aproximado a u

a trav es del m etodo del subgradiente. Este


usa un vector subgradiente s(u) R
m
, asociado a un u dado,
denido por
s
i
(u) = 1

jN
a
ij
x
j
(u) , i M
Este m etodo genera un secuencia u(0), u(1), ..., donde u(0)
es un vector inicial dado, y u(k + 1) es actualizado de u(k)
por la siguiente f ormula:
u
(k+1)
i
= max
_
u
(k)
i
+
CSL(u
(k)
)
||s(u
(k)
)||
2
s
i
(u
(k)
) , 0
_
i M
donde CS es una cota superior de costo(x), y 0
es un par ametro. Varias implementaciones del m etodo del
subgradiente son posibles, sin embargo, cuando se resuelven
instancias grandes, el tiempo computacional que se utiliza
en este m etodo se vuelve muy largo si se implementa de
forma inocente. Por ello se decidi o usar la implementaci on
m as sosticada propuesta en [13].
Denotemos el m etodo del subgradiente usando una cota
superior CS y empezando de un vector inicial u
(0)
como
SUBGRADIENTE(CS,u
(0)
), el cual retorna el mejor vector
de multiplicadores Lagrangianos que consigui o. En nuestro
algoritmo, dicho procedimiento es llamado varias veces. En
la primera llamada,jamos u
(0)
i
= mn{c
j
/|S
j
||i S
j
}(i
M), y en otras llamadas, u
(0)
i
= u
+
, donde u
+
es el vector de
multiplicadores Lagrangianos obtenido en la primera llamada
a SUBGRADIENTE(CS,u
(0)
).
Aunque CS es usualmente jado al valor actual (i.e., el
costo de la mejor soluci on factible encontrada en la b usqueda
hasta ahora), CS es desconocido en la primera llamada a
SUBGRADIENTE(CS,u
(0)
). Entonces, inicializamos CS co-
mo costo(x) para una soluci on factible x obtenida por el
siguiente algoritmo greedy.
Algoritmo GREEDY:
Paso 1 Sea x := 0
Paso 2 Elegir j que minimice
c
j
/|{i S
j
|

N
a
ij
x
j
= 0}|, de los j que satisfagan
{i S
j
|

N
a
ij
x
j
} = y hacer x
j
= 1
Paso 3 Si {i S
j
|

jN
a
ij
x
j
= 0} = , retornar x, sino ir
al Paso 2
II-D. B usqueda Local en la vecindad 1-ip
La b usqueda local empieza desde una soluci on inicial x
y reemplaza x con una mejor soluci on en la vecindad NB(x)
hasta que no encuentre mejor soluci on en NB(x). Una soluci on
x es llamada localmente optima si no existe mejor soluci on
en NB(x). En el algoritmo, dejamos que la b usqueda visite la
regi on infactible. En este caso, la funci on objetivo en s misma
no es apropiada para medir la calidad de las soluciones, en
cambio, usamos la siguiente funci on de costo penalizada. Sea
p
i
(> 0) el peso de cada i M, una soluci on x es evaluada
por:
pcosto(x) =

jN
c
j
x
j
+

iM
p
i
max
_
1

jN
a
ij
x
j
, 0
_
Los pesos p
i
son controlados din amicamente, y ser a explicado
m as adelante. Por ahora, basta saber que pcosto(x) y costo(x)
son ambos usados en nuestro algoritmo.
Para un entero positvo r, la vencidad r-ip NB
r
(x) es
denido como el conjunto de soluciones que pueden ser
obtenidas desde x a trav es de invertir a lo sumo r variables.
En nuestro algoritmo, el valor de r es jado a 1.
Para un vector x {0, 1}
n
y un subconjunto J N,
denimos x J como
x J = (x

1
, ..., x

n
) x

j
=
_
1 x
j
si j J
x
j
en caso contrario
que es el vector que se obtiene de invertir las variables en J.
Denotamos el incremento en el pcosto(x) como
pcosto(x, J) = pcosto(x J) pcosto(x)
Tambi en denimos

(k)
i
(x) =
_
1 si

jN
a
ij
x
j
= k
0 en caso contrario
Para i M, que es la funci on que representa si un elemento
i es cubierto por k subconjuntos en la soluci on x.
En la implementaci on, se computa
i
(x)
(k)
y
pcosto(x, {j}) en O(1) para cada j N, i M.
Para esto, todos los valores

jN
a
ij
x
j
y pcosto(x, {j})
son almacenados en memoria. Sea
i
y
j
los valores que
denotan

jN
a
ij
x
j
y pcosto(x, {j}) almacenados para la
soluci on actual x respectivamente.
Dada una soluci on inicial x, inicializar los valores de
i
para todo i M es posible in O
_
m +

jN
|S
j
|x
j
_
, primero
inicializando
i
:= 0 para todo i M y luego ejecutando

i
:=
i
+1 para cada i S
j
y j N con x
j
= 1. Cuando x
es modicado a x J, los valores de
i
son actualizados en
O
_
jJ
|S
j
|
_
en una manera similar.
Dada una soluci on x y pesos p
i
para todo i M,
j
es
inicializado por

j
:=
_
c
j
+

iSj
p
i

(1)
i
(x) si x
j
= 1
c
j

iSj
p
i

(0)
i
(x) en caso contrario
para todo j N. El tiempo requirido para todo j N
es O
_
jJ
|S
j
|
_
. El tiempo para esta inicializaci on es
despreciable, dado que es necesario solamente si x es
inicializado o lo pesos p
i
son cambiados, lo que no pasa
a menudo. Los valores de
j
, j N, son actualizados si
x es cambiado a x J. N otese que el valor de
j
no es
cambiado si una de las siguientes dos condiciones se cumple
para j N \ J:
(1) x
j
= 1 y
(1)
i
(x) =
(1)
i
(x J) para todo i S
j
(2) x
j
= 0 y
(0)
i
(x) =
(0)
i
(x J) para todo i S
j
El algoritmo para actualizar
j
es el siguiente:
Algoritmo UPDATE(x,J):
Paso 1 Sea
j
:= c
j
+

iSj
p
i

(1)
i
(x J), para todo
j J y x
j
= 0
Paso 2 Sea
j
:= c
j

iSj
p
i

(0)
i
(x J), para todo j J
y x
j
= 1
Paso 3 Sea
j
=
j
+p
i
para todo i M con
(0)
i
(x) = 1 y

(0)
i
(x J) = 0, y para todo j N \ J con x
j
= 0 e
i S
j
Paso 4 Sea
j
=
j
p
i
para todo i M con
(0)
i
(x) = 0 y

(0)
i
(x J) = 1, y para todo j N \ J con x
j
= 0 e
i S
j
Paso 5 Sea
j
=
j
p
i
para todo i M con
(1)
i
(x) = 1 y

(1)
i
(x J) = 0, y para todo j N \ J con x
j
= 1 e
i S
j
Paso 6 Sea
j
=
j
+p
i
para todo i M con
(1)
i
(x) = 0 y

(1)
i
(x J) = 1, y para todo j N \ J con x
j
= 1 e
i S
j
Como |J| r = 1, la complejidad de los pasos 1 y 2 es
O
_
jJ
|S
j
|
_
. |{i M|
(0)
i
(x) = 1y
(0)
i
(x J)}| = O(t)
1
en el paso 3 dado que dichos i
jJ
S
j
. Adem as, |{j
N \J|x
j
= 0yi S
j
}| = O(l)
2
, por lo que el paso 3 es O(tl).
De la misma manera, pasos 4,5 y 6 son computados en O(tl).
Por lo tanto, el algoritmo UPDATE(x,J) es O(tl).
II-E. Buscando en la vecindad 1-ip
Para el algoritmo, usamos la informaci on que provee la
relajaci on Lagrangiana LR-SCP(u). Se sabe que si un subcon-
junto S
j
pertenece a una soluci on optima tiende a tener un
valor c
j
(u) peque no si se tiene un buen vector Lagrangiano
u. Un algoritmo para encontrar dicho u ya fue explicado en
la secci on 2.C. El algoritmo para buscar en NB
1
(x) es el
siguiente.
Algoritmo 1-FLIP(x):
Entrada: Una soluci on x.
Salida: Una soluci on x

NB
1
(x) con pcosto(x

) < pcosto(x)
si dicha soluci on existe; x en caso contrario.
Paso 1 Si {j N|x
j
= 0,
j
< 0} = , proceder al Paso
2. Sino, elegir un j

{j N|x
j
= 0,
j
< 0}
con el mnimo c
j
(u) y proceder al Paso 3.
Paso 2 Si {j N|x
j
= 1,
j
< 0} = , retornar x.
Sino, elegir un j

{j N|x
j
= 1,
j
< 0} al
azar.
Paso 3 Actualizar
j
llamando UPDATE(x,{j

}), actualizar

i
y x
j
= 1 x
j
. Retornar x
Como el tama no de NB
1
(x) = O(n), la complejidad del Paso 1
y 2 es O(n). Si una soluci on es encontroda,
j
es actualizado
llamando a UPDATE(x,{j

}) en O(tl) en el Paso 3. Por lo


tanto, el algoritmo 1-FLIP(x) es O(n + tl).
II-F. Control Din amico de los Pesos
Sea x
prev
la soluci on en donde la b usqueda local anterior
se detuvo. En nuestro algoritmo, cuando la b uqueda local se
detiene en la soluci on x
prev
, se reanuda desde x
prev
despu es
de actualizar los pesos p
i
(para poder as realizar la oscilaci on
estrat egica). Empezando por los siguientes valores iniciales:
p
i
= mn{c
j
|i S
j
}, i M
Luego, los valores p
i
son actualizados de la siguiente forma:
Si costo(x
prev
) < CS y {x NB
1
(x
prev
)|pcosto(x) <
pcosto(x
prev
) y costo(x) CS} = (2)
se cumple, p
i
se actualiza por:
p
i
= p
i
(1 +
(0)
i
(x
prev
) max{
+
(x
prev
),
+
} ), i M
en caso contrario se actualiza por:
p
i
= p
i
(1 max{

(x
prev
),

} ), i M
Aqu
+
(> 0) y

(> 0) son par ametros del programa y

+
(x
prev
) y

(x
prev
) son el tama no del ajuste. Sea
1
t: M aximo n umero de elementos que cubre un subconjunto
2
l: M aximo n umero de subconjuntos cubriendo un mismo elemento

+
NB1
(x
prev
) = mn
_
pcosto(x
prev
,{j})

iS
j
pi
(0)
i
(x
prev
)

x
prev
j
= 0,

iSj
p
i

(0)
i
(x
prev
) > 0
_
y
+
(x
prev
) se dene como

+
(x
prev
) := (1 +
+
)
+
NB1
(x
prev
)
donde
+
(> 0) es par ametro del programa. Sea j
k
N sea
aquellos ndices con x
prev
j
k
= 1. Luego sea

k
(x
prev
) :=
_
pcosto(x
prev
,{j})

iS
j
pi
(0)
i
(x
prev
)
_
donde j
k
estan ordenados tal que

1
(x
prev
)

2
(x
prev
) ...

n
(x
prev
)
se cumple. Entonces

(x
prev
) se dene como

(x
prev
) = mn{(1 +

(x
prev
), 1

}
k

= mn{, n

}
donde

(> 0) y (un entero positivo) son par ametros del


programa y n

es el n umero de x
prev
j
= 1.
En nuestro experimento, jamos los valores de los par ame-
tros como

+
= 0,05 ,

= 0,01
+
= 0,1 ,

= 0,1 y = 10
para que hubiese sucientes cambios en los pesos.
Evaluamos con la condici on (2) si los pesos actuales son
lo sucientemente grande para obtener una soluci on factible o
no. Si (2) se cumple, incremetamos p
i
para todos los i M
que no son cubiertos, porque hay una posibilidad de encontrar
una soluci on factible que mejore la CS. Sino, incluso si los
pesos son incrementados, la mayora de las soluciones x con
mejor pcosto(x
prev
) no van a satisfacer costo(x) < CS. En este
sentido, la soluciones alrededor de x
prev
no son prometedoras.
Por lo tanto, decrecemos los p
i
para todos los i M de
manera brusca para forzar la b usqueda lejos de x
prev
.
II-G. Reducci on Heurstica del Tama no del Problema
En esta secci on, describimos c omo reducir el tama no de las
instacias del problema jando algunas variables x
j
en 0 o 1.
Esta reducci on del tama no es aplicada varias veces, antes del
comienzo de la b usqueda local y durante las iteraciones de
la misma. Es decir, el conjunto de variables jas es modi-
cado din amicamente usando la informaci on de la relajaci on
Lagrangiana.
Denimos un conjunto de ndices N
1
N como aquellas
variables x
j
, j N
1
, tal que estan jas en 1. De forma
similar, denimos N
0
N como las variables x
j
, j N
0
que son jadas en 0, de tal forma que N
1
N
0
= , y sea
N
free
= N\(N
0
N
1
) el conjunto de variables libres. Dados
(N
1
,N
0
,N
free
), denimos el siguiente problema:
SCP(N
1
,N
0
,N
free
): minimizar costo(x) =

jN
free
c
j
x
j
sujeto a :

jN
free
a
ij
x
j
1, i M tal que

jN1
a
ij
x
j
= 0
El problema SCP(N
1
,N
0
,N
free
) tambi en es un SCP, con
variables x
j
, j N
free
, cuyo tama no es menor que la
instancia original. Las restricciones redundantes i M con

jN1
a
ij
1 tambi en son eliminadas en el problema
reducido.
En el caso de la jaci on de variables antes de la b usque-
da local, escogemos una partici on (N
1
,N
0
,N
free
). La es-
cogencia de la variables a ser jadas es basada en los
costos relativos c
j
(u
+
), donde u
+
es el vector de multi-
plicadores Lagrangianos obtenido en la primera llamada de
SUBGRADIENTE(CS,u
(0)
). Sabemos que cada subconjunto
S
j
que es una soluci on optima a SCP tiende a tener un c
j
(u)
peque no si un buen vector u es usado. Por lo tanto, en nuestro
algoritmo, escogemos N
free
como el conjunto de ndices con
c
j
(u
+
) peque no, y luego jamos N
1
= y N
0
= N \ N
free
. El algoritmo es el siguiente, donde ( 1) y min free
(un entero positivo) par ametros del programa usados para
determinar el tama no de N
free
.
Algoritmo Primera-Partici on(u
+
):
Paso 1 Sea x :=Greedy y
K := mn[max{

jN
x
j
, min free} n].
Paso 2 Sea N
free
( N) el conjunto de los K c
j
(u
+
) m as
peque nos.
Paso 3 Para cada i M, si i /
jN
free
S
j
, escoger un
j con el menor c
j
(u
+
) tal que i S
j
y a nadirlo a
N
free
Paso 4 Sea N
1
:= y N
0
:= N \ N
free
. Retornar
(N
1
,N
0
,N
free
).
En nuestros experimentos, jamos = 3 y min free = 100
A medida de que se realicen algunas iteraciones de la
b usqueda local, modicamos (N
1
,N
0
,N
free
). En primera ins-
tancia, elegimos al azar un nuevo conjunto N
1
y luego
usamos la informaci on resultante de la relajaci on Lagrangiana
del problema SCP(N
1
,N
0
,N
free
). El nuevo conjunto N
1
es
escogido al azar de aquellos ndices y la soluci on ascendente
(i.e., la mejor soluci on factible obtenida durante la b usqueda
local hasta ahora) y la soluci on actual. Dado que pueden
existir mejores soluciones alrededor de la soluci on ascendente,
elegimos N
1
de los ndices includos en la misma. En esta fase
de modicaci on, algunos elementos de N
0
son liberados (i.e.,
N
0
decrece de forma mon otona durante el algoritmo).
Sea x

la soluci on ascendente, x la soluci on actual, y u


+
el vector de multiplicadores Lagrangianos obtenidos por la
primera llamada a de SUBGRADIENTE(CS,u
(0)
). El proce-
dimiento de modicar (N
1
,N
0
,N
free
) se describe a continua-
ci on, donde (> 0) es un par ametro del programa usado para
determina el tama no de N
1
, el cual en nuestro experimento
toma el valor de = 0,5.
Algoritmo Modicar-Partici on(x

,x,u
+
,N
1
,N
0
,N
free
):
Paso 1 Sea V := {j N|x

j
= x
j
= 1}, N
1
:= y
c
max
= max
jV
{c
j
(u
+
)}
Paso 2 Si V := o |
jN1
S
j
|/m , ir al Paso 4
Paso 3 Escoger al azar j V , donde la probabilidad de
escoger a j es:
f
j
(u
+
) =
cmaxcj(u
+
)

V
cmaxc
j
(u
+
)
(Distribuci on uniforme si

j

V
c
max
c
j
(u
+
) = 0)
Luego N
1
= N
1
{j} y V := V \ {j}, ir al Paso 2
Paso 4 Sea u = SUBGRADIENTE(CS,u
+
) (aplicado a la
relajaci on Lagrangiana SCP(N
1
,,N \ N
1
)). Sea
u

i
=
_
u
i
si i /
jN1
S
j
0 en caso contrario
y computar c
j
(u

) para todo j N \ N
1
Paso 5 Sea N
0
:= N
0
\ {j N|c
j
(u

) 0} y
N
free
:= N \ (N
1
N
0
). Retornar (N
1
,N
0
,N
free
)
La frequencia de llamar a Modicar-Partici on tiene una gran
inuencia en el desempe no de nuestro algoritmo. Las llamadas
a Modicar-Partici on consumen mucho tiempo computacional,
pero pocas llamadas pueden resultar en poca diversicaci on de
la b usqueda- Nosotros ejecutamos el algoritmo cuando ambas
de estas condiciones se cumple:
(1) Los pesos son decrementados por la actualizaci on de los
pesos
(2) La b usqueda local es iterada al menos minitr ls veces
despu es de la ultima llamada o despu es de que el valor x

es
mejorado.
En nuestro experimento utilizamos minitr ls = 100 basado
en las recomendaciones de Yagiura et al. [14]
II-H. Estructura del Algoritmo
Algoritmo FNLS(x):
Entrada: Una instancia de SCP.
Salida: Una soluci on aproximada x

Paso 1 Sea x

= Greedy, CS = costo(x

),
u
(0)
i
= mn{c
j
/|S
j
||i S
j
} para todo i M y u
+
=
SUBGRADIENTE(CS,u
(0)
).
Paso 2 Sea (N
1
,N
0
,N
free
) = Primera-Particion(u
+
),
contador := 0, x := 0.Inicializar p
i
.
Paso 3 Si el tiempo excede time lim, retornar x

.
Paso 4 Sea x = 1-FLIP(x), si x = x, x := x e ir al Paso 4 .
Paso 5 Sea contador := contador + 1.Si se encontraron
soluciones factibles en el Paso 4, sea x
+
aquella sol.
con costo(x) mnimo. Si costo(x
+
) < CS, entonces
x

:= x
+
, CS := costo(x

) y contador := 0
Paso 6 Actualizar los pesos p
i
. Si los pesos fueron
incrementados, o contador < minitr ls, ir al Paso 3
Paso 7 Modicar (N
1
,N
0
,N
free
) llamando Modicar-
Partici on(x

,x,u
+
,N
1
,N
0
,N
free
), counter := 0 e ir al Paso
3
III. ALGORITMO GEN ETICO
III-A. Ideas Generales del Algoritmo
Un algoritmo gen etico (AG) es una b usqueda probabilstica
basada en la evoluci on biol ogica de los organismos en la
naturaleza. Este tipo de algoritmos fue propuesto por John
Henry Holland por los a nos 1970 y b asicamente se fundamenta
en los principios de la selecci on natural y de la sobrevivencia
del mas apto.
La manera en que el AG simula este proceso es tomando
una poblaci on de individuos inicial y aplic andole una serie de
operadores gen eticos en cada reproducci on [15]. Cada indivi-
dio posee una representaci on en crosomosas que representan
una posible soluci on al problema y se tiene una funci on de
evaluaci on que permite medir el tnessde un individuo (que
tan bueno o malo es). Por otro lado tambi en est a el operador
de cruce, aplicado a dos individuos para obtener nuevas
soluciones hijasque van a formar parte de la poblaci on,
reemplazando a toda la poblaci on anterior (generacional) o
a algunos seleccionados de la poblaci on (estacionaria). La
manera de seleccionar los padres a cruzar y los individuos
a ser reemplazados se puede hacer de varias formas, un
criterio puede ser, por ejemplo, cruzar a los mejores de la
poblaci on y reemplazar a los peores. Finalmente se tiene el
operador de mutaci on que va a aplicarsele a un individuo
con cierta probabilidad, alterando algunos genes del mismo.
A continuaci on se muestra en lneas generales como luce un
AG.
Generar poblaci on inicial;
Evaluar Fitness de los individuos en la poblaci on;
repetir
Seleccionar padres de la poblaci on;
Cruzar padres para generar hijos;
Seleccionar individuos y reemplazarlos en la poblaci on;
hasta Soluci on satisfactoria sea encontrada;
El AG realizado y explicado es una reproducci on del que
fue realizado por J. E. Beasley y P.C. Chu [15]. Durante las
siguientes subsecciones se explicar a brevemente la estructura
del AG, adem as de las decisiones tomadas en cuanto a
operadores gen eticos y criterios de selecci on.
III-B. Sobre el AG en general
El algoritmo gen etico recreado es una modicaci on del
AG b asico, agreg andole conocimientos especcos sobre el
problema. Adem as de ahora en adelante, se asumir a, sin
perdida de generalidad, que las columnas estan ordenadas de
forma creciente seg un el costo, y aquellas que tengan igual
costo estar an ordenadas en forma decreciente seg un la cantidad
de elementos que contenga.
III-C. Representaci on de los individuos
Hay diversas maneras de representar a un individuo para el
problema de SCP, la m as directa es tener una secuencia de bits
del tama no de la cantidad de columnas en el problema, donde
cada posici on tiene un 1 o un 0 dependiendo de si la columna
pertenece a la soluci on o no respectivamente. Ver gura 1.
Usando esta representaci on, la funci on de tness f
i
de un
individuo i queda:
f
i
=
N

j=1
c
j
s
ij
Otra posible forma de representar a un individuo es usando
una secuencia del tama no de las las, donde cada posici on
posee la columna que lo cubre en la soluci on. Ver gura 2.
Esta representaci on trae varios detalles a la hora de calcular
el tness, ya que hay que sumar s olo el costo de aquellas
columnas distintas que aparezcan en la soluci on. Adem as
la evaluaci on del tness puede volverse ambigua ya que
una soluci on puede ser representada de m ultiples maneras y,
dependiendo de como se represente la secuencia, dar diferentes
resultados.
En cuanto a factibilidad de la soluci on, es m as sencillo
mantenerla en la segunda representaci on ya que asegura que
toda la est e cubierta por alguna columna, cosa que no pasa
en la representaci on binaria. Para solucionar esto se puede
utilizar una funci on de penalizaci on para aquellas soluciones
que no sean factibles, o se puede aplicar una transformaci on
al individuo para volverlo factible.
Para el algoritmo gen etico fue seleccionada la representa-
ci on binaria, con uso de transformaci ones para volver factibles
aquellas soluciones que no lo sean.
III-D. Selecci on de los Padres
Existen muchas maneras de seleccionar padres, se puede
hacer de manera proporcional al tness o al tness escalado.
Deniendose el tness escalado de un individuo i de la
siguiente manera:
f
s
i
= f
i
mn(f
i
|i = 1, ..., N)
Siendo f
i
el tness normal y N el tama no de la poblaci on.
Otra manera posible de seleccionar los padres es la llamada se-
lecci on de torneo, en la cual se crean dos grupos de individuos,
cada grupo conformado por T individuos. Posteriormente son
seleccionados los mejores de cada grupo que nalmente van
a ser los padres.
El tipo de selecci on de padres utilizado en el AG es el torneo
binario (es decir, T = 2). J. E. Beasley y P.C. Chu atribuyen
esta elecci on a la facilidad y eciencia con la que se puede
implementar este tipo de torneo. Adem as, aseveran que los re-
sultados obtenidos con este tipo de selecci on son comparables
a aquellos obtenidos con la selecci on proporcional.
Cabe acotar que el tness escalado es usado en el cruce
basado en tness que ser a explicado a continuaci on.
III-E. Operador de Cruce
El operador denido en el paper recreado [15], que fue el
seleccionado para formar parte de nuestro AG, es el operador
de fusi on cuya denici on formal es la siguiente.
Sean f
P1
y f
P2
los tness normales o escalados de los
padres y C el hijo:
Paso 1 Si P
1
[i] = P
2
[i], entonces C[i] := P
1
[i] = P
2
[i]
Paso 2 Si P
1
[i] = P
2
[i], entonces
(a) C[i] := P
1
[i] con probabilidad p = f
P2
/(f
P1
+ f
P2
)
(a) C[i] := P
2
[i] con probabilidad 1 p
La idea en la que se basa este operador de cruce, es heredar
a los hijos de los mejores rasgos de los padres (los que
comparten), y en los lugares donde los padres dieren, darle la
posibilidad de obtener rasgos de cualquiera de los dos padres,
d andole un poco m as de oportunidad al padre con menor
tness (ya que el problema es de minimizaci on). La raz on
de la selecci on de este operador de cruce, es la facilidad de
su implementaci on, adem as de la probabilidad que provee de
obtener hijos distintos a los padres, a un cuando estos ultimos
sean muy parecidos.
Para cruzar a los padres tambi en pueden ser utilizados
operadores como el de 1 o 2 puntos y el uniforme. En el
caso del operador de 1 o dos puntos se debe tener cuidado
ya que para este problema suelen resultar hijos iguales a los
padres cuando la poblaci on esta convergiendo.
III-F. Tasa de mutaci on variable
El operador de mutaci on es aplicado a los hijos apenas se
forman, luego del cruce. Este operador sirve para ampliar el
espacio de b usqueda de la poblaci on aportando un poco de
b usqueda aleatoria.
En muchos estudios se ha encontrado que 1/n donde n
es la longitud del cromosoma, es una buena tasa est atica de
mutaci on. Sin embargo, utilizaremos la tasa din amica denida
en el paper recreado [15], ya que alegan que, seg un sus
estudios, una tasa din amica hace que el AG sea m as efectivo.
La tasa de mutaci on tambi en va a depender de la tasa de
convergencia de la poblaci on, esto con la nalidad de que el
AG pueda explorar por las soluciones iniciales, dejando casi
todo el trabajo de la exploraci on al cruce, luego cuando la
poblaci on vaya convergiendo y el operador de cruce se haga
menos efectivo, se permite que el operador de mutaci on tenga
mayor presencia. La tasa de mutaci on variable se dene de la
siguiente manera.
N umero de bits mutados =
_
m
f
1+exp(4mg(tmc)/m
f
)
_
Donde t es el n umero de hijos generados por el AG hasta
el momento, m
f
es la tasa de mutaci on m axima que va a
alcanzarse cuando converja la poblaci on, m
c
es la cantidad
de hijos generados para cuando la tasa de mutaci on alcance
el valor m
f
/2 y m
g
es el gradiente cuando se cumple que
t = m
c
. El valor de todos estos par ametros (m
c
, m
g
y m
f
),
son jados de acuerdo a lo recomendado en el paper recreado.
m
f
= 10
m
c
= 200
m
g
= 1,3
Adem as de todo lo dicho anteriormente, hay una ultima
mejora para buscar que la mutaci on sea efectiva. Sabemos
que es mejor, a la hora de una mutaci on, agregar columnas de
bajo costo ya que agregar columnas con alto costo no ayuda a
la soluci on ya que las probabilidades de que dichas columnas
formen parte de la soluci on optima son bastante bajas. Por
esto es que la mutaci on se realiza sobre una serie de columnas
elites S
elite
denidas de las siguiente forma.
S
elite
=
m

j=1

i5
Donde
i5
es el conjunto de las 5 columnas con menor
costo de
i
.
III-G. Operador de factibilidad heurstico
En el AG mantener la factibilidad de las soluciones es un
punto importante a tener en cuenta y, dado que el cruce puede
generar soluciones infactibles, se hace necesario un operador
que transforme soluciones infactibles en soluciones factibles.
El operador arregla una soluci on identicando las las que no
estan cubiertas y las cubre con las mejores columnas denidas
por el siguiente coeciente:
costo
cantidad de las no cubiertas que cubre
Luego de que la soluci on se vuelve factible, se aplica un
ultimo paso para optimizar un poco la soluci on quitando
las columnas redundantes. En este operador las columnas
se agregan, o quitan seg un sea el caso, de forma Greedy
por el coeciente denido anteriormente. A continuaci on el
pseudoc odigo del operador.
Sean:
I = el conjunto de todas las las
J = el conjunto de todas las columnas

i
= el conjunto de las columnas que cubren la la i, i I

j
= el conjunto de las cubiertas por la columna j, j J
S = el conjunto de columnas en la soluci on
U = el conjunto de las no cubiertas por la soluci on
w
i
= el n umero de columnas que cubren a la la i, i IenS
Paso 1 Inicializar w
i
:= |S
i
|, i I
Paso 2 Inicializar U := {i|w
i
= 0, i I}
Paso 3 Para cada la i en U (en orden creciente de i)
(a) Encontrar la primera columna j (en orden creciente de
j) en
i
que minimice c
j
/|U
j
|
(b) A nadir j a S y asignar w
i
:= w
i
+ 1, i
j
.
Asignar U := U
i
Paso 4 Para cada columna j en S (en orden decreciente
de j), si w
i
2, i
j
, asignar S := S j y colocar
w
i
= w
i
1, i
j
Paso 5 Ahora S es una soluci on factible para el SCP que no
posee columnas redundantes.
III-H. Modelo de reemplazo de la poblaci on
Como dijimos anteriormente, el modelo de reemplazo de
poblaci on que vamos a utilizar es el estacionario. Luego de
crear el hijo con el cruce y aplicarle el operador de mutaci on,
el nuevo individuo va a reemplazar aleatoriamente a alguno
de los individuos existentes en la poblaci on con menor tness
a el.
La raz on por la cual se eligi o un modelo estacionario en
vez de uno generacional, es porque los generacionales suelen
tardar m as tiempo en converger. Adem as entre las ventajas
del modelo estacionario tenemos que una vez que un hijo
entra en la poblaci on ya esta listo para cruzarse y que en
cada generaci on se mantiene el elitismo, es decir que el mejor
de la poblaci on siempre se mantiene.
III-I. Poblaci on Inicial y Tama no de la poblaci on
La poblaci on inicial es generada aleatoriamente siguiendo
el siguiente procedimiento para cada soluci on inicial S
p
(Usando la misma notaci on que en la seccion 3-G).
Paso 1 Inicializar S
p
:= , inicializar w
i
:= 0, i I
Paso 2 Para cada la i en I:
(a) Seleccionar aleatoriamente una columna j en
i
,
(b) A nadir j a S
p
y asignar w
i
:= w
i
+ 1, i
j
Paso 3 Sea T := S
p
Paso 4 Aleatoriamente seleccionar una columna j, j T y
colocar T := T j si w
i
2, i
j
, asignar S
p
:= S
p
j
y colocar w
i
= w
i
1, i
j
Paso 5 Repetir paso 4 hasta que T =
Para hacer la generaci on de soluciones iniciales mejor y
m as ecientes, en el paso 2a no se seleccionan columnas en
todo el conjunto
i
, sino en el conjunto
i5
que denimos
anteriormente como el conjunto de las 5 columnas con menos
costo pertenecientes a
i
.
Seg un Beasley y Chu [15], el tama no de la poblaci on va
directamente relacionado con la manera en como se generan
las soluci ones iniciales, por lo cual seguimos sus recomen-
daciones en cuanto al tama no ideal para la poblaci on que es
100.
III-J. Resumen del Algoritmo
A continuaci on un repaso del algoritmo gen etico completo.
Paso 1 Generar una poblaci on inicial aleatoria de N
individuos. Asignar t := 0
Paso 2 Seleccionar dos soluciones P
1
y P
2
de la poblaci on
usando la selecci on de torneo binario.
Paso 3 Combinar P
1
y P
2
para formar una nueva soluci on C
usando el operador de cruce de fusi on.
Paso 4 Mutar aleatoriamente k columnas en C, donde k
viene determinado por la tasa de mutaci on variable.
Paso 5 Hacer que C sea factible y eliminar columnas
redundantes aplicando el operador de factibilidad heurstico.
Paso 6 Si C es igual a alguna de las soluciones existentes
en la poblaci on, ir al paso 2; si no, asignar t := t + 1 e ir al
paso 7.
Paso 7 Reemplazar aleatoriamente alg un individuo con menos
tness que C en la poblaci on (Modelo estacionario).
Cuadro I: Detalles de las Instancias de Prueba
Instancia m n Densidad Rango Costos
tipo 4 200 1000 2 % [1,100]
tipo 5 200 2000 2 % [1,100]
tipo A 300 3000 2 % [1,100]
tipo C 400 4000 2 % [1,100]
tipo G 1000 10000 2 % [1,100]
Paso 8 Repetir pasos 2-7 hasta que t = M (es decir que han
sido generados M diferentes individuos). La mejor soluci on
encontrada es aquella con el menor tness en la poblaci on.
El par ametro M tambi en es seleccionado seg un las reco-
mendaciones del paper de Beasley y Chu [15].
M = 100000
IV. RESULTADOS EXPERIMENTALES
Ambos algoritmos fueron evaluados usando las instancias de
prueba obtenidas de la librera OR
3
. Ambos algoritmos fueron
codicados en C++ y ejecutados en una HP Pavilion Modelo
Dv6-6198sp (Procesador CoreI7 2.4Ghz con 8 GB memoria),
donde los computos fueron ejecutados en un solo procesador.
Hay 6 tipos de instancias de pruebas, llamados tipos 4, 5,
6, A, C y G. La informaci on sobre las instancias es reejada
en el Cuadro I. Los tipos 4, 5, 6, A, C poseen 5 instancias
cada uno mientras que el tipo G posee 2 instancias. Para los
tipos 4, 5, A, y C los valores optimos son conocidos, mientras
que para las instancias del tipo G no se conocen los valores
optimos.
Cada instancia fue ejecutada diez veces usando diferentes
semillas para generar los n umeros aleatorios. Para cada ins-
tancia, se calcul o los valores Min, Avg y Max de los valores
obtenidos y se realiz o lo mismo para los tiempos de cada
ejecuci on de la instancia.
Ambos algoritmos fueron comparados con los resultados
reportados de los algoritmos SCP de los cuales fueron
basados los aqu propuestos: el algoritmo gen etico de Beasley
y Chu [15] (denotado BC), y el algoritmo de b usqueda local
de Yagiura, Kishida e Ibaraki [14] (denotado YKI), donde
cada prueba de los mismos est a paremetrizada de la siguiente
forma:
BC:10 ejecuciones en una Silicon Graphics Indigo R4000,
100 MHz.
YIK:10 ejecuciones en una Sun Ultra SPARC II, 300 MHz.
El tiempo lmite no es especicado para las instancias de tipo
4, 5, A y C. Para las instancias de tipo G, el tiempo fue de
180 segundos
Los tiempos usados en la b usqueda local para las instancias
de tipo 4 y 5 fue de 15 segundos, mientras que para las
intancias de tipo A y C fue de 30 segundos y para las instancias
de tipo G de 180 segundos.
3
http://mscmga.ms.ic.ac.uk/jeb/orlib/scpinfo.html
En el Cuadro II se presentan los resultados obtenidos por el
algoritmo de b usqueda local iterativa y la comparaci on con el
comportamiento promedio de los dos algoritmos anteriores. Se
puede apreciar que nuestro algoritmo se comporta ligeramente
peor en algunos casos en comparaci on al algoritmo de Yagiura
et al [14] y, en el caso del tiempo, el tiempo empleado por
nuestro algoritmo es peor que el tiempo reportado por los au-
tores. Sin embargo, observamos que los resultados reportados
por Yagiura et al. son de origen desconocido, pues su algoritmo
posee como condici on de parada un tiempo lmite, y en ning un
momento especican c omo obtuvieron esos resutados. Por otra
parte, se observa que el algoritmo propuesto se comporta en
promedio mejor o igual al algoritmo gen etico de Beasley y
Chu [15] para una gran parte de las instancias. Por lo que,
aunque el algoritmo de Yagiura et al. se comporta mejor que
el propuesto en buena parte de las instancias de prueba, la
reducci on de la vecindad a NB
1
(x) no modic o drasticamente
el comportamiento del algoritmo.
En el Cuadro III se presentan los resultados obtenidos
por el algoritmo gen etico y la comparaci on con el com-
portamiento promedio de los dos algoritmos anteriores. Se
puede apreciar que nuestro algoritmo se comporta de forma
similar al algoritmo propuesto por Beasley y Chu, hecho que
debera apreciarse dado que nuestro algoritmo se basa en
el de dichos autores. Sin embargo, se observa que para las
instancias 5.2, 5.3, C.2 y C.3 hubo una mejora con respecto al
promedio de los resultados reportados por los autores, aunque
para las instancias A.1 y G.1 el comportamiento de nuestro
algoritmo fue ligeramente peor que el de los autores. Adem as,
se observa que el tiempo que utilizan ambos algoritmos para
generar los 100000 sucesores es signicativamente distinto.
Sin embargo, suponemos que la causa de esto es la diferencia
en el poder de c omputo de los equipos usados para ambas
pruebas. Lamentablemente, no se encontr o en el benchmark
de SPEC
4
ni en ning un otro una comparaci on entre ambos
equipos.
Comparando ambos algoritmos propuestos, vemos que el
algoritmo de b usqueda local es igual o ligeramente peor que
el algoritmo gen etico propuesto. Sin embargo, se observa que
el tiempo necesario para obtener los resultados del algoritmo
de b usqueda local es menor a partir de las instancias de tipo
5.
V. CONCLUSI ON
En este artculo, se modic o el algoritmo propuesto por
Yagiura, Kishida e Ibariki para que utilizase la vecindad de
1-ip, obteniendo resultados similares o ligeramente peores
que el algoritmo de Yagiura, Kishida e Ibaraki, por lo que la
reducci on del tama no de la vecindad no afecto signicativa-
mente el comportamiento general del algoritmo. Por otra parte,
se compar o la implementaci on del algoritmo propuesto por
Beasley y Chu con el nuestro, obteniendo resultados similares
con la salvedad de que la diferencia del tiempo de ejecuci on
es muy signicativa. Esto se acota a la diferencia entre los
4
http://www.specbench.org/
equipos utilizados para las pruebas de cada algoritmo, por lo
que una prueba en las misma condiciones sera id oneo para
una comparaci on m as objetiva. Por ultimo, se compar o ambos
algoritmos y se observ o que el algoritmo gen etico se comporta
ligeramente mejor que el de b usqueda local, a costa de un
mayor de tiempo de ejecuci on que el segundo.
REFERENCIAS
[1] E. Balas y M. C. Carrera,A Dynamic Subgradient-Based Branch and
Bound Procedure for Set Covering, Operations Research, 44 (1996)
875-890
[2] S. Ceria, P. Nobili y A. Sassano,A Lagrangian-Based Heuristic for
Large-Scale Set Covering Problems, Mathematical Programming, 81
(1998) 215-228
[3] B. M. Smith, IMPACSA Bus Crew Scheduling System Using Integer
Programming, Mathematical Programming, 42 (1988), 181-187.
[4] F. J. Vasko y G. R. Wilson, Using a Facility Location Algorithm to Solve
Large Set Covering Problems, Operations Research Letters, 3 (1984) 85-
90.
[5] E. Boros, P. L. Hammer, T. Ibaraki y A. Kogan, Logical Analysis of
Numerical Data, Mathematical Programming, 79 (1997) 163-190.
[6] M. E. Salveson, The assembly line balancing problem, Journal of
Industrial Engineering, 6 (1955) 18-25.
[7] M. A. Breuer, Simplication of the covering problem with aplication to
boolean expresions, Journal for the Association of Computer Machinery,
17 (1970) 166-181.
[8] M. L. Fisher y P. Kedia, Optimal Solutions of Set Covering/Partitioning
Problems Using Dual Heuristics, Management Science, 36 (1990) 674-
688.
[9] J. E. Beasley y K. Jornsten, Enhancing An Algorithm for Set Covering
Problems, European Journal of Operational Research, 58 (1992) 293-
300.
[10] J. E. Beasley, An Algorithm for Set Covering Problems, European
Journal of Operational Research, 31 (1990) 85-93.
[11] M. Rahoual, R. Hadji, y V. Bachelet, Parallel ant system for the set
covering problem, Ant Algorithms, 2463 (2002) 249-297
[12] L. W. Jacobs y M. J. Brusco, A Local-Search Heuristic for Large Set-
Covering Problems, Naval Research Logistics, 42 (1995) 1129-1140.
[13] Alberto Caprara, Matteo Fischetti y Paolo Toth, A Heuristic Method
for the Set Covering Problem, Operations Research, 47 (1999) 730-743
[14] M. Yagiura, M. Kishida, and T. Ibaraki, A 3-ip neighborhood local
search for the set covering problem, European Journal of Operational
Research, 172 (2006) 472-499
[15] J. E Beasley and P. C. Chu, A Genetic Algorithm for the Set Covering
Problem, European Journal of Operational Research, 94 (1996) 392-404
[16] F. Glover, Tabu Search-Part I, ORSA Journal on Computing, 1 (1989)
190-206.
[17] M. Hall, Jr., Combinatorial Theory, Blaisdell Company, Waltham,
MA, 1967.
[18] M. L. Fisher, The Lagrangian Relaxation Method for Solving Integer
Programming Problems, Management Science 27 (1981) 1-18.
Cuadro II: Resultados del algoritmo ILS en comparaci on con BC e YKI
B usqueda Local Iterativa (10 Ejecuciones)
BC YKI Resultado Tiempo (segs.)
Instancia

Optimo Avg Tiempo (s) Avg Tiempo (s) Min Avg Max Min Avg Max
4.1 429 429 279.4 429 1.10 429 430 431 15.19 15.20 15.22
4.2 512 512 276.6 512 0.50 512 512 512 15.19 15.19 15.24
4.3 516 516 244.2 516 0.50 516 516 516 15.18 15.20 15.22
4.4 494 494 238.7 494 1.10 494 494 495 15.18 15.20 15.22
4.5 512 512 273.9 512 0.60 512 513.6 514 15.18 15.19 15.21
5.1 253 253 382.5 253 1.40 254 254.7 255 15.32 15.34 15.42
5.2 302 305 380.5 302 1.56 305 305 305 15.28 15.59 15.89
5.3 226 228 465.1 226 1.00 226 227.2 228 15.45 15.64 15.83
5.4 242 242 376.0 242 1.32 242 242 242 15.29 15.33 15.40
5.5 211 211 458.2 211 1.00 211 211.3 212 15.30 15.32 15.43
A.1 253 253 599.6 253 3.45 254 255.3 256 30.58 30.62 30.77
A.2 252 252 577.4 252 2.03 253 253.6 255 30.63 30.65 30.68
A.3 232 232.5 622.7 232 2.53 232 233.4 235 30.61 30.62 30.62
A.4 234 234 686.8 234 2.25 234 234.5 235 30.59 30.55 30.75
A.5 236 236 663.9 236 2.60 236 236 236 30.60 30.62 30.66
C.1 227 227 902.1 227 3.01 227 228.2 229 31.14 31.19 31.41
C.2 219 220 956.0 219 2.91 219 219.5 221 30.89 30.95 31.08
C.3 243 246.4 786.8 243 4.75 243 244.4 246 31.15 31.16 31.77
C.4 219 219 703.0 219 3.34 219 219 219 30.97 31.01 31.15
C.5 215 215 1116.5 215 2.83 215 215.4 217 31.04 31.06 31.10
G.1 176 177.7 2577.6 176 - 177 178.2 179 186.47 186.63 186.76
G.2 154 156 2902.4 154 - 156 158 159 184.51 184.57 184.67
BC: Algoritmo Gen etico propuesto por Beasley y Chu [15]
YKI: Algoritmo de B usqueda Local propuesto por Yagiura, Kishida e Ibaraki [14]
Cuadro III: Resultados del Algoritmo Gen etico en comparaci on con BC e YKI
Agoritmo Gen etico (10 Ejecuciones)
BC YKI Resultado Tiempo (segs.)
Instancia

Optimo Avg Tiempo (s) Avg Tiempo (s) Min Avg Max Min Avg Max
4.1 429 429 279.4 429 1.10 429 429.2 430 15.64 15.84 16.10
4.2 512 512 276.6 512 0.50 512 512 512 15.87 16.10 16.39
4.3 516 516 244.2 516 0.50 516 516 516 15.66 15.96 17.38
4.4 494 494 238.7 494 1.10 494 494 494 16.16 16.57 17.98
4.5 512 512 273.9 512 0.60 512 512 512 15.64 15.93 17.13
5.1 253 253 382.5 253 1.40 253 253 253 27.82 28.05 28.91
5.2 302 305 380.5 302 1.56 302 304.1 305 28.39 28.72 29.11
5.3 226 228 465.1 226 1.00 226 227.2 228 25.78 26.51 26.93
5.4 242 242 376.0 242 1.32 242 242.3 243 27.20 27.20 30.62
5.5 211 211 458.2 211 1.00 211 211 211 26.51 27.02 27.17
A.1 253 253 599.6 253 3.45 253 254 255 50.58 52.28 53.29
A.2 252 252 577.4 252 2.03 252 252 252 50.62 52.29 54.73
A.3 232 232.5 622.7 232 2.53 232 232.9 234 46.74 49.02 53.93
A.4 234 234 686.8 234 2.25 234 234 234 51.49 52.65 55.66
A.5 236 236 663.9 236 2.60 236 236 236 47.12 49.05 52.71
C.1 227 227 902.1 227 3.01 227 227 227 76.01 78.73 80.63
C.2 219 220 956.0 219 2.91 219 219 219 74.85 77.18 81.09
C.3 243 246.4 786.8 243 4.75 243 244.6 245 74.67 76.70 81.18
C.4 219 219 703.0 219 3.34 219 219 219 74.18 75.96 81.11
C.5 215 215 1116.5 215 2.83 215 215 215 77.35 79.81 81.66
G.1 176 177.7 2577.6 176 - 177 178.1 179 454.13 460.54 473.95
G.2 154 156 2902.4 154 - 155 156.6 158 454.09 473.82 485.61
BC: Algoritmo Gen etico propuesto por Beasley y Chu [15]
YKI: Algoritmo de B usqueda Local propuesto por Yagiura, Kishida e Ibaraki [14]

S-ar putea să vă placă și