Documente Academic
Documente Profesional
Documente Cultură
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
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
(x
prev
),
} ), i M
Aqu
+
(> 0) 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
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
,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]