Beruflich Dokumente
Kultur Dokumente
Dx
s.a Ax b
que se supone fcil de resolver. Para una explicacin ms detallada de Generacin de
Columnas y del mtodo de Dantzig-Wolfe ver el Apndice A o [28]. En el caso que se
estudiar se tiene una estructura de este tipo, caso que ser desarrollado en la Seccin
2.2.
Otros mtodos usados incluyen relajacin Lagrangeana, donde se penalizan restriccio-
nes para resolver problemas ms fciles e iterar hasta alcanzar el ptimo; o tambin la
descomposicin de Bender, usado principalmente en programacin estocstica. Estos m-
todos tambin han sido utilizados para abordar el problema de planicacin minera.
1.2. El problema de planicacin minera
La minera a tajo abierto consiste en la extraccin de minerales excavando desde la
supercie hacia el fondo. Hustrulid y Kuchta [23] describen el proceso completo de extrac-
cin dividindolo en tres fases: planicacin, implementacin y produccin. Este trabajo
se enfocar en la fase de planicacin.
En la fase de planicacin se desarrolla un cronograma tentativo para la excavacin de la
mina en base a la informacin que se haya recopilado sobre sta (mediante sondeos, por
ejemplo), pero tambin considerando las limitaciones que posea la planta (capacidad de
extraccin, de procesamiento, etc.). En palabras simples, se estima qu extraer, cundo,
y cmo procesarlo. Para esto, se discretiza la mina en bloques (normalmente todos del
mismo tamao), donde para cada bloque se tienen mltiples opciones de procesamiento
(destinos), y se cuenta con un horizonte de tiempo (periodos) para extraerlo.
Para poder extraer un bloque se debe extraer primero lo que se encuentra encima de
ste, ms an, se debe extraer un cono sobre el bloque en cuestin que respete un ngulo
predeterminado para no comprometer la estabilidad del terreno. Ver Hustrulid et. al. [24].
Al cono que se debe extraer antes de un determinado bloque se le llama conjunto de
precedentes de dicho bloque. La Figura 1.1 muestra un ejemplo de un conjunto de prece-
dentes de un bloque en una mina en 2 dimensiones. Este conjunto de precedentes de cada
bloque dene restricciones al momento de realizar la planicacin; a estas restricciones se
les llamar restricciones de precedencia.
Cabe mencionar que para describir el conjunto de precedentes por completo no es
necesario imponer restricciones sobre todos ellos, sino que basta considerar un conjunto
minimal en el conjunto de precedentes, el cual se denomina precedencia inmediata, tal que
al imponer las restricciones sobre la precedencia inmediata, las restricciones se propaguen
a toda la precedencia. Formalmente, si se denota por P(b) el conjunto de precedentes de
2
1.2. El problema de planicacin minera Captulo 1
Figura 1.1: Ejemplo de un conjunto de precedentes (bloques amarillos y verdes) de un
bloque determinado (bloque rojo) en una mina en 2 dimensiones. Los bloques verdes
representan la precedencia inmediata del bloque rojo.
un bloque b, entonces la precedencia inmediata PI(b) est dada por:
PI(b) = P(b)
_
aP(b)
P(a)
Por ejemplo, en la Figura 1.1, si bien se necesita extraer los bloques verdes y amarillos an-
tes del bloque rojo, basta imponer que antes del bloque rojo se deban extraer los bloques
verdes solamente, para obtener las restricciones que se quieren. Como no hace diferen-
cia terica qu restricciones se consideran, simplemente se les llamarn restricciones de
precedencia, sin importar si se est considerando precedencia inmediata o no, pero en
la prctica se trabaja con precedencia inmediata para ser ms ecientes al momento de
formular el problema.
En la industria minera tpicamente se divide la etapa de planicacin en una serie de
pasos para obtener el calendario de extraccin tentativo. Para un resumen sobre los pasos
de este proceso ver [7]. Este esquema es muy usado por los softwares comerciales disea-
dos para la fase de planicacin (por ejemplo, Whittle de Gemcom Software [33]) pero
cuentan con limitaciones importantes, por ejemplo, se decide cmo procesar un determi-
nado bloque slo tomando en cuenta su composicin. Esto es lo que se conoce como ley
de corte, y bsicamente dene un umbral bajo el cual se decide qu hacer con un bloque:
si es valioso se procesa y si no, se bota.
Johnson [25, 26] fue el primero en proponer resolver el problema de planicacin minera
utilizando un modelo de optimizacin. El modelo de Johnson dene variables que deter-
minan el mtodo de procesamiento (destino) y el periodo de extraccin de cada bloque.
Adems, junto con las restricciones de precedencia, considera una serie de restricciones de
recursos como capacidad de los equipos, capacidad de plantas, mano de obra disponible,
entre otras. En su formulacin, Johnson permite que un bloque sea subdividido en frac-
ciones, donde cada fraccin puede ser enviada a distintos destinos, adems de permitir
que los bloques sean extrados parcialmente.
3
1.2. El problema de planicacin minera Captulo 1
m ax
bB
D1
d=0
T1
t=0
p
b,d,t
(x
b,d,t
x
b,d,t1
)
s.a
bB
D1
d=0
a
b,d,t,r
(x
b,d,t
x
b,d,t1
) c
r,t
r R, t = 0, . . . , T 1
T1
t=0
D1
d=0
(x
b,d,t
x
b,d,t1
) 1 b B
x
a,d,t
x
b,d,t
(a, b) /, d D, t = 0, . . . , T 1
x
b,d,t
x
b,d,t1
b B, d D, t = 0, . . . , T 1
x
b,d,1
= 0 b B, d D
x
b,d,t
[0, 1] b B, d D, t = 0, . . . , T 1
Figura 1.2: Formulacin de Johnson para el problema de planicacin minera
La Figura 1.2 muestra el modelo considerado por Johnson. En este modelo se considera
un conjunto de bloques B, las precedencias entre bloques estn representadas como pares
ordenados en un conjunto /, se tiene un conjunto de destinos D, un conjunto de recur-
sos R y T periodos de tiempo para extraccin. Con esto, x
b,d,t
representa la fraccin del
bloque b que ha sido extrado y enviado al destino d en el tiempo t o antes. c
r,t
representa
la cantidad de recurso r para el periodo t, y a
b,d,t,r
representa el consumo de recurso r
cuando el bloque b es enviado al destino d en el tiempo t.
Claramente el problema propuesto por Johnson es de gran tamao, dado que una mi-
na real cuenta con cientos de miles de bloques y millones de restricciones de precedencia.
Formulaciones alternativas tambin han sido propuestas donde, por ejemplo, no se permite
extraer un bloque parcialmente en un periodo, entre otras variaciones y consideraciones.
Esto da paso a diversos modelos de programacin lineal (LP) como el de Johnson, progra-
macin entera mixta (MIP) o programacin entera pura (IP), todos ellos de gran tamao
y dicultad. A pesar de ser modelos de distintos tipos, la mayora de stos son considera-
blemente similares.
Junto con las distintas formulaciones y variaciones del modelo, distintas tcnicas han sido
desarrolladas para resolverlo. El mismo Johnson propuso un algoritmo de tipo Dantzig-
Wolfe para resolver su formulacin. Dagdelen y Johnson [9] fueron los primeros en proponer
relajacin Lagrangeana para abordar el problema, usando multiplicadores para descompo-
ner el problema multi-periodo en varios problemas que slo cuentan con las restricciones
de precedencia. Estos ltimos pueden ser resueltos ecientemente usando el algoritmo
propuesto por Lerchs y Grossman [27].
Diversos mtodos de pre-procesamiento tambin han sido propuestos para abordar es-
te problema. Caccetta y Hill [6] proponen un modelo de programacin entera mixta, y
luego pre-procesan usando lo que se conoce como Ultimate Pit (ver Seccin 4.3.4), para
4
1.2. El problema de planicacin minera Captulo 1
dar paso a un esquema de Branch and Cut para resolver el problema. Boland et. al. [5]
propusieron un mtodo para reducir el nmero de variables en el modelo de Caccetta y
Hill, adems de derivar desigualdades para mejorar la formulacin del problema en base
a las restricciones de produccin y las precedencias. Esta ltima estrategia tambin es
utilizada por Fricke [15] para encontrar desigualdades que mejoran distintas formulacio-
nes. Gaupp [16] tambin reduce la cantidad de variables utilizadas identicando, en base
a las cantidades de recurso, el primer y el ltimo periodo donde es posible extraer cada
bloque, para luego generar cortes como en [5] y resolver el problema usando relajacin
Lagrangeana.
Por otro lado, Gershon [17, 18] propuso heursticas para encontrar una solucin factible al
problema directamente, utilizando una serie de sub-problemas de optimizacin lineal de 1
periodo, pero modicando la funcin objetivo de manera de tomar en cuenta el horizonte
de tiempo en el cual se puede explotar una mina. Lamentablemente para estas heursticas
no se presenta un anlisis de la calidad de las soluciones obtenidas. Fricke [15] propuso 3
heursticas para encontrar soluciones factibles, las cuales estn basadas en programacin
entera, relajacin Lagrangeana y otras heursticas (donde simplemente se estima un orden
adecuado para la extraccin de los bloques y se extraen en dicho orden). Estas ltimas
producen soluciones a un 2 % de optimalidad en algunos casos, pero en general no tie-
nen un buen rendimiento, adems de considerar instancias de hasta 420 bloques solamente.
A pesar de todos los esfuerzos, las instancias que se han podido abordar hasta ac con
algn mtodo son de menos de 250.000 bloques. Para un resumen completo de las distintas
formulaciones y mtodos propuestos hasta el 2008 ver Osanloo et. al. [29].
Recientemente, Cullenbine et. al. [8] propusieron una heurstica donde se considera un
modelo parcialmente exacto, es decir, un modelo que consiste bsicamente en: un sub-
modelo exacto (IP) dentro de una ventana de tiempo y un sub-modelo relajado fuera de
dicha ventana. Esta ventana de tiempo es desplazada a travs de los periodos disponibles
para el procesamiento de la mina de manera de ir generando una solucin factible. Esta
heurstica mostr funcionar muy bien (obteniendo soluciones dentro de un 2 % de opti-
malidad), pero slo pudo resolver instancias de hasta 25.000 bloques.
Por otro lado, Chicoisne et. al. [7] estudiaron una versin simplicada del modelo, donde
se considera un destino elegido a-priori para cada bloque, y una restriccin de capacidad
por cada periodo. En la Figura 1.3 se presenta este modelo simplicado, que se le denomi-
na formulacin C-PIT. En este caso se propone un algoritmo muy eciente que es capaz
de resolver la relajacin lineal de este problema en instancias de gran tamao (millones
de bloques), pero bajo el supuesto recin descrito. Una vez resuelta la relajacin lineal
se proponen heursticas que, a partir del ptimo de la relajacin lineal, construyen una
solucin factible para el problema de programacin entera, obteniendo soluciones muy
buenas en la prctica (a menos de un 6 % del ptimo).
Y por ltimo, Bienstock y Zuckerberg [3] presentaron un formulacin similar a la de
Johnson, pero en un contexto ms general, permitiendo cualquier tipo de restriccin adi-
cional, junto con un algoritmo eciente que es capaz de resolver la relajacin lineal del
5
1.3. Considerando incertidumbre Captulo 1
m ax
bB
T1
t=0
p
b,t
(x
b,t
x
b,t1
)
s.a
bB
a
b
(x
b,t
x
b,t1
) c
t
t = 0, . . . , T 1
x
a,t
x
b,t
(a, b) /, t = 0, . . . , T 1
x
b,t
x
b,t1
b B, t = 0, . . . , T 1
x
b,1
= 0 b B
x
b,t
0, 1 b B, t = 0, . . . , T 1
Figura 1.3: Formulacin C-PIT
problema. Este algoritmo, aparte de su robustez en cuanto al tipo de restricciones adicio-
nales que se pueden considerar, ha mostrado ser capaz de resolver grandes instancias en
poco tiempo (considerando millones de bloques), lo que motiv su estudio cuidadoso.
Siguiendo con estas ideas, el objetivo principal de este trabajo ser encontrar ecien-
temente la solucin de la relajacin lineal de la formulacin que se presentar, utilizando
el algoritmo propuesto por Bienstock y Zuckerberg junto con ciertas mejoras propuestas,
para luego utilizar heursticas, principalmente inspiradas en lo desarrollado por Chicoisne
et. al. y Cullenbine et. al., que lleven a una buena solucin factible.
En el Captulo 2 se dar una mirada general al algoritmo de Bienstock y Zuckerberg,
comparndolo con el mtodo de Dantzig-Wolfe, con el cual comparte ciertos aspectos.
Luego, en los Captulos 3 y 4 se profundizar en el caso del problema de planicacin
minera y se discutir la implementacin del algoritmo para este caso, mostrando las me-
joras desarrolladas para ste. Los resultados computacionales se detallarn en el Captulo
5 y en el Captulo 6 se mostrarn experimentos realizados con algunas heursticas para
obtener soluciones factibles.
1.3. Considerando incertidumbre
Uno de los problemas de los modelos y algoritmos de optimizacin tradicionales desa-
rrollados para resolver el problema de planicacin minera es que no consideran incerti-
dumbre sobre los parmetros del problema.
Las fuentes de incertidumbre a las que se ve expuesta este problema se pueden agru-
par principalmente en 3 tipos:
Incertidumbre geolgica.
Incertidumbre en las especicaciones tcnicas (capacidades, precedencias, etc.).
Incertidumbre econmica, como capital, costos, etc.
El primer tipo de incertidumbre ha sido altamente estudiado en el ltimo tiempo, pro-
blema para el cual se han propuesto diversas tcnicas para ser abordado. Principalmente
6
1.3. Considerando incertidumbre Captulo 1
se han usado tcnicas de simulacin para obtener buenas soluciones al problema. Por
ejemplo, Dimitrakopoulos [11] usa simulacin condicional para generar representaciones
equi-probables de la mina y as evaluar una planicacin y/o generar sugerencias. Di-
mitrakopoulos et. al. [12] usaron simulacin condicional para mostrar la importancia de
tomar en cuenta la incertidumbre geolgica de una mina y el riesgo al momento de resolver
el problema. Otros trabajos donde tambin se ha usado simulacin incluyen Dowd [14],
Dimitrakopoulos et. al. [13], entre otros.
Otras maneras de lidiar con este tipo de incertidumbre tambin han sido propuestas.
Godoy y Dimitrakopoulos [20] desarrollaron un algoritmo basado en Optimizacin Lineal
que usa simulacin para generar una serie de planicaciones y luego las combina de ma-
nera de minimizar la probabilidad de desviarse de un objetivo de produccin. Ramazan y
Dimitrakopoulos [31] proponen considerar la incertidumbre geolgica usando simulacin
como una manera de estimar la probabilidad de que un bloque sea extrado en un deter-
minado periodo, para luego usar un modelo de programacin entera mixta que use estas
probabilidades para maximizar el VPN (valor presente neto) de la extraccin de la mi-
na, pero a la vez tratando de que la solucin sea similar a lo predicho por las simulaciones.
Tambin se ha abordado este problema usando Optimizacin Estocstica. Entre ellos
se encuentran Ramazan y Dimitrakopoulos [32] quienes usaron simulacin condicional in-
corporada a un modelo de Optimizacin Estocstica que maximiza el VPN considerando
incertidumbre, y adems penalizando el que no se cumpla cierto objetivo predeterminado
para la produccin. Boland et. al. [4] tambin usaron Optimizacin Estocstica, desarro-
llando un modelo que permite alterar fcilmente las decisiones tomadas a medida que se
obtiene mayor informacin geolgica de la mina (por ejemplo, a medida que se excava).
En este trabajo, y como paso nal al desarrollo de esta memoria, se decidi abordar
el problema de incertidumbre econmica, ms especcamente, incertidumbre en el precio
de los minerales que se extraen en la mina. Esto surgi de la idea de desarrollar una
generalizacin del algoritmo de Bienstock y Zuckerberg, de manera de poder aplicar un
esquema de algoritmo similar en un contexto distinto al de programacin lineal.
En el Captulo 7 se propondr un modelo de Optimizacin Robusta para considerar in-
certidumbre en los precios de los minerales. Tambin se ver que este modelo puede ser
planteado como un problema de Optimizacin Cnica, por lo cual se propondr una ge-
neralizacin del algoritmo de Bienstock y Zuckerberg a este contexto.
Hasta donde es conocido, este problema no ha sido abordado anteriormente, al menos
desde un punto de vista de Optimizacin Robusta. Todos los trabajos han sido apuntados
a incertidumbre geolgica, por lo que es un gran aporte poder desarrollar un algoritmo
que sea capaz de resolver un modelo que considere variaciones en los precios de los minera-
les. Adems, el modelo que se propondr puede ser fcilmente extendido a incertidumbre
geolgica, por lo que el mismo algoritmo puede ser utilizado.
7
Captulo 2
Algoritmo BZ General
En el siguiente captulo se detallar el algoritmo general propuesto por Bienstock
y Zuckerberg (ver [3]). Es este esquema de algoritmo el que se estudiar a lo largo de
este documento, mostrando su implementacin para el caso del problema de planicacin
minera. Para comenzar, se dar una visin global del algoritmo.
2.1. El algoritmo
Se considera el siguiente problema de programacin lineal:
(P1) m ax c
x
s.a Ax b
Dx d
Con esto, se usar el siguiente esquema de algoritmo:
1. Comenzar con z
0
factible.
2. Denir k = 1 y
0
=
0.
3. Sea w
k
solucin de L(P1,
k1
), donde
L(P1,
k1
) m ax c
x (
k1
)
(Dx d)
s.a Ax b
4. Si k 2 y H
k1
w
k
= h
k1
PARAR.
5. Buscar H
k
y h
k
tales que H
k
w
k
= h
k
.
6. Sea z
k
una solucin ptima de P2
k
, donde
(P2
k
) m ax c
x
s.a Ax b
Dx d
H
k
x = h
k
8
2.1. El algoritmo Captulo 2
7. Obtener los duales
k
de las restricciones Dx d.
8. Si
k
=
k1
PARAR.
9. k k + 1 e ir al paso 3.
Se denotar este algoritmo como BZ. La idea es que los problemas L(P1,
k1
) y P2
k
sean fciles de resolver. Se llamar a L(P1,
k1
) el sub-problema y a P2
k
el problema
master.
Observacin 2.1.1. Como se ver ms adelante, este algoritmo es correcto independiente
de las elecciones de H
k
y h
k
, pero la idea de agregar este sistema es hacer que cada
problema P2
k
sea considerablemente ms simple que el problema original P1. Considerar
un sistema trivial, como por ejemplo H
k
= 0 y h
k
= 0, tendra como consecuencia que el
problema P2
1
sea lo mismo que resolver el problema original, lo cual no es el objetivo del
algoritmo.
Es fcil ver que X
k
= x [ H
k
x = h
k
dene un espacio lineal afn, y si se considera
X
k
tal que X
k1
sea un sub-espacio del primero, se obtiene un algoritmo nito. En efecto,
como w
k
, X
k1
, entonces
dim(X
k
) > dim(X
k1
).
Antes de probar la correctitud del algoritmo se requiere el siguiente resultado:
Proposicin 2.1.2. Sea x
x [ Ax b, Dx d
y
es ptimo para el
problema
m ax c
x (
(Dx d)
s.a Ax b
(2.1)
La prueba de esta Proposicin sigue directamente de dualidad fuerte (ver la demos-
tracin en [2] por ejemplo, o la demostracin hecha en la Proposicin 7.3.1 para un caso
ms general).
Proposicin 2.1.3. Si el algoritmo alcanza una condicin de parada, entonces el ltimo
z
k
encontrado (ptimo para P2
k
) es ptimo.
Demo :
Sea k la iteracin donde se par. Si el algoritmo par pues H
k1
w
k
= h
k1
, entonces
claramente w
k
es L(P2
k1
,
k1
)-factible, problema donde las restricciones Dx d de
P2
k1
son penalizadas, i.e
L(P2
k1
,
k1
) m ax c
x (
k1
)
(Dx d)
s.a Ax b
H
k1
x = h
k1
Sea v el valor de la funcin objetivo de L(P2
k1
,
k1
) en w
k
, v
k1
el valor ptimo de
P2
k1
(que es alcanzado en z
k1
) y v
. Por
otro lado, v tambin es el valor de la funcin objetivo de L(P1,
k1
) en w
k
, entonces
v
v.
9
2.2. Comparacin con el mtodo de Dantzig-Wolfe Captulo 2
Finalmente, dado que
k1
son ptimos para el dual de P2
k1
, por la Proposicin 2.1.2,
z
k1
es ptimo para L(P2
k1
,
k1
), entonces v v
k1
. Juntando todo:
v
v v
k1
v
0.
3. Sea una solucin ptima de
m ax
k1
i=0
i
c
x
i
s.a
k1
i=0
i
Dx
i
d
k1
i=0
i
= 1
i
0
(2.2)
Por simplicidad se asumir que x
0
es factible para P1, si no, se debe considerar un
conjunto de puntos extremos iniciales tales que este problema no sea infactible.
4. Obtener los duales
k
de las restricciones
k1
i=0
i
Dx
i
d y
k
dual asociado a la
restriccin
k1
i=0
i
= 1.
10
2.2. Comparacin con el mtodo de Dantzig-Wolfe Captulo 2
5. Sea x
k
una solucin de
m ax c
x (
k1
)
Dx
s.a Ax b
(2.3)
6. Si c
x
k
(
k1
)
Dx
k
>
k
PARAR. La solucin ptima es x
k1
i=0
i
x
i
.
7. k k + 1 e ir al paso 3.
La idea es reemplazar el poliedro x [ Ax b por la combinacin convexa de sus
puntos extremos, y en vez de considerarlos todos de una vez, se van generando uno a uno.
Esto es un caso particular del conocido mtodo de Generacin de Columnas.
Sea A = x
1
, . . . , x
k1
un conjunto de puntos extremos del poliedro x [ Ax b.
Entonces el dual del problema (2.2) es
mn
d +
s.a.
+
Dx
i
c
x
i
i
0
(2.4)
Por lo tanto, para saber si se han generado sucientes puntos extremos x
i
, para los
duales actuales
k
y
k
se verica si la desigualdad
k
+(
k
)
Dx
i
c
x
i
es satisfecha por
todos los puntos extremos del poliedro, lo cual es equivalente a resolver (2.3) y vericar
si la solucin es mayor a
k
. Esto es equivalente a encontrar columnas con costo reducido
positivo que deban ser incluidas en (2.2).
2.2.2. El mtodo BZ desde otro punto de vista
Como se mencion anteriormente, en el algoritmo BZ, en cada problema P2
k
se est
optimizando sobre un poliedro intersectado con X
k
= x [ H
k
x = h
k
, el cual dene un
espacio lineal afn. Para simplicar notacin se asumir que este espacio es lineal (la nica
diferencia la hace una constante).
Por lo tanto, como (2.3) es igual al problema L(P1,
k1
), se puede ver que la princi-
pal diferencia entre DW y BZ es que en vez de resolver (2.2), se est considerando un
espacio lineal generado por cierta coleccin vectores x
i
i
(abusando de notacin) y se
resuelve el problema master
m ax
i
c
x
i
s.a.
i
Ax
i
b
i
Dx
i
d
(2.5)
Claramente este problema es una relajacin de (2.2), dado que
i
i
= 1 implica
i
Ax
i
b. Si se supone que se resuelve (2.5), se tiene que el dual de este problema es:
mn
b +
d
s.a.
Ax
i
+
Dx
i
= c
x
i
i
0
0
(2.6)
11
2.2. Comparacin con el mtodo de Dantzig-Wolfe Captulo 2
Figura 2.1: Ejemplo donde Dantzig-Wolfe puede tener un bajo desempeo
Entonces, cules seran las ventajas de BZ sobre DW? La principal razn es que en
(2.5) se est explorando un espacio lineal, en vez de la envoltura convexa de los puntos
generados. Si se toma el ejemplo ilustrado en la Figura 2.1, donde el poliedro octagonal
representa la regin denida por x [ Ax b y el hiper-plano representa la regin denida
por x [ Dx d, entonces el algoritmo DW podra necesitar generar todos los puntos
x
1
, . . . , x
6
antes de salir de la tapa superior del octgono. En cambio, si se considera (2.5),
basta generar 3 puntos para describir toda la cara superior. Adems se tiene la siguiente
proposicin:
Proposicin 2.2.1. Si es factible para el problema (2.6), entonces tal que , es
factible para (2.4).
Demo :
Como es factible, entonces existe 0 tal que
c
x
i
=
Ax
i
+
Dx
i
Ahora, sea =
b. Como Ax
i
b para todo i y 0 implica
Ax
i
b. Entonces,
c
x
i
=
Ax
i
+
Dx
i
b +
Dx
i
= +
Dx
i
Por lo tanto, las variables , son factibles para (2.4).
Esto signica que considerando el algoritmo BZ, se estn tomando en cuenta menos duales
(o la misma cantidad) que con el mtodo de Dantzig-Wolfe, lo que refuerza la idea de
moverse ms rpido al considerar un problema master aparentemente un poco ms difcil.
12
2.3. Comparacin computacional Captulo 2
Nombre Variables Rest. 1 Rest. 2 CPX DW BZ
mine_n 12720 23544 12 8.44 0.11 0.1
mine_k 339672 2637360 24 95631.97 47.55 10.89
mine_z_small 376000 2912840 40 327359.74 72.5 13.05
mine_a 651680 1485240 40 29785.60 38.96 4.57
mine_z_medium 878310 19068135 30 Mem 439.33 101.17
mine_m 2130840 13128260 40 Mem 73.39 14.21
mine_m_simple 2146720 13128260 40 Mem 292.9 23.2
mine_mc_limit 3380610 45532275 30 Mem 862.5 207.17
mine_g 3651354 24920028 63 Mem 3954.4 244.86
mine_z_large 5809260 31593210 60 Mem 6590.58 472.33
mine_s 5940840 2899320 60 5700.51 2306.42 28.5
mine_d 17129574 303762273 102 Mem 20133.2 1566.93
mine_t_full 39583080 423991200 120 Mem Mem 12918.34
mine_r 49406274 1268887356 162 Mem Mem Mem
mine_t 52228480 121466240 160 Mem Mem Mem
mine_mc 85613680 60709700 40 Mem 1376.06 662.32
mine_e 110109800 3259280450 100 Mem Mem 6609
mine_l 149714910 2773201200 90 Mem Mem Mem
Cuadro 2.1: Tiempo (en segundos) necesarios para resolver las instancias disponibles.
La columna Rest. 1 posee el nmero de restricciones fciles del problema, es decir las
denotadas anteriormente como Ax b. La columna Rest. 2 posee la cantidad restricciones
Dx d. Y las columnas CPX, DW y BZ poseen los tiempos de ejecucin de CPLEX,
DW y BZ al resolver cada instancia. Mem indica que no se pudo resolver la instancia por
problemas de memoria.
2.3. Comparacin computacional
Para comparar el rendimiento de estos mtodos se aprovecharon las instancias del
problema de planicacin minera disponibles, las cuales fueron probadas en una CPU
modelo Intel(R) Xeon(R) con 2.4 GHz y con 24 GB de memoria RAM. El algoritmo BZ
utilizado fue el que se describir en el Captulo 4, y que posee todos los speed-ups que se
describirn ah. Si bien no se han descrito cules sern las mejoras que se harn, basta
mencionar que fueron aadidas tanto a BZ como a DW para que la comparacin fuera
vlida.
El Cuadro 2.1 muestra los resultados obtenidos al ejecutar el algoritmo BZ y DW en
las instancias disponibles. Adems se decidi agregar los resultados obtenidos al tratar de
resolver dichas instancias con la librera de optimizacin CPLEX [34].
Lo primero que se puede observar es la efectividad de DW para resolver problemas a
gran escala. CPLEX slo resolvi 5 instancias, mientras DW resolvi la mayora en bue-
nos tiempos. Sin embargo, existe una superioridad clara de BZ sobre DW: BZ puede
resolver ms instancias y las que se pueden resolver con ambos algoritmos requieren mu-
13
2.3. Comparacin computacional Captulo 2
cho menos tiempo si se usa BZ en vez de DW. La comparacin quizs no sea del todo
justa pues DW es un algoritmo ms general y la versin implementada del algoritmo BZ
es especca para el problema de planicacin minera, pero se usaron todos los speed-ups
diseados para el problema de planicacin minera en ambos algoritmos para hacer una
mejor comparacin.
14
Captulo 3
Problema de planicacin en minera
En este captulo se denir el modelo a utilizar para resolver el problema de planica-
cin en minera a tajo abierto. Este problema sirvi como motivacin para el estudio del
algoritmo BZ y a continuacin ser descrito. En el Captulo 4 se discutirn los detalles de
la implementacin del algoritmo para este problema especco.
3.1. El problema Max-Closure
Como paso previo a la descripcin del problema y del modelo, se denir el problema
Max-Closure, que es de gran importancia para el problema de minera.
Denicin 3.1.1. Dado un grafo dirigido G = (V, A) un conjunto S V se dice cerrado
si
u S (u, v) A v S
A un conjunto cerrado S tambin se le llama closure. Con esta denicin, dados pesos
w
i
para i V , se dene el problema de Max-Closure como:
m ax
iV
w
i
x
i
s.t. x
i
x
j
(i, j) A
x
i
0, 1
(3.1)
es decir, encontrar el conjunto cerrado de peso mximo. A las restricciones x
i
x
j
se les
llamar restricciones de precedencia, y son las que aseguran que la solucin entregada por el
problema, denida por S
= i V [ x
i
= 1 con x
= (V
, A
) donde V
con capacidad w
i
. Si el peso w
i
es negativo se agrega
15
3.2. El modelo Captulo 3
un arco (i, t) a A
con capacidad w
i
. Y por ltimo, a cada arco (i, j) A se le asocia
el mismo arco (i, j) A
S entonces S s corres-
ponde al closure de peso mximo en G.
Como se ver a continuacin, este problema es de gran importancia al momento de for-
mular el problema de planicacin minera en una mina a tajo abierto.
3.2. El modelo
En esta seccin se detallar el modelo ha utilizar, y que es el usado por Bienstock y
Zuckerberg [3]. Para el modelo se considerar lo siguiente:
El conjunto de bloques de la mina se denotar como B = 0, . . . , n 1.
Se considerar un grafo dirigido G = (B, /) representando las restricciones de pre-
cedencia, es decir, (a, b) / si el bloque b debe ser extrado antes que el bloque
a.
El nmero de periodos ser denotado T (empezando desde el periodo 0) y el nmero
de destinos R (tambin empezando desde el 0).
Las variables y
b,d,t
indicarn si el bloque b es extrado en el periodo t y enviado
al destino d. Cabe mencionar que y es en realidad un vector (se usar notacin
matricial), pero por simplicidad se usarn los 3 subndices.
Las restricciones adicionales, o side-constraints sern denotadas como
Dy d y a
priori sern cualquier tipo de restriccin. El nmero de side-constraints ser notado
como q. No confundir el lado derecho de las side-constraints con los subndices de las
variables que identican los destinos, se usa la misma letra, pero el contexto dejar
de lado toda ambigedad.
Todos los bloques tendrn un valor asociado al ser extrados y enviados a un deter-
minado destino c
b,d
en el primer periodo. Y para los otros periodos se considerar
una tasa de descuento para cada bloque (esto pues tpicamente se maximiza el Valor
Presente Neto de la extraccin de la mina). Por lo tanto, el benecio obtenido al
extraer un bloque b en el periodo t y enviarlo al destino d ser:
c
b,d,t
=
t
c
b,d
con (0, 1).
16
3.3. Relajacin lineal del problema Captulo 3
Con estas consideraciones, se puede formular el problema directamente como un problema
de programacin entera:
m ax c
y
s.t.
1
t=0
R1
d=0
y
a,d,t
1
t=0
R1
d=0
y
b,d,t
(a, b) /, = 0, . . . , T 1
T1
t=0
R1
d=0
y
b,d,t
1 b B
Dy d
y
b,d,t
0, 1
(3.2)
Una versin un poco ms renada de esta formulacin permite sub-dividir cada bloque
en fracciones y enviar cada fraccin a distintos destinos si fuera conveniente, como en el
modelo de Johnson. Pero como el enfoque ser la relajacin lineal de este problema, en
ese caso no hace diferencia si se permite sub-dividir los bloques.
Como comentario nal sobre este problema, los tamaos aproximados de las instancias
que se tienen disponibles son los siguientes:
Periodos : 6 - 80.
Destinos : 2 o 3.
Side-constraints : 12 - 200.
Bloques : 1,000 - 2,000,000.
Precedencias : 3,000 - 90,000,000.
Por lo que claramente es un problema muy difcil de resolver, inclusive su relajacin lineal.
3.3. Relajacin lineal del problema
Como fue mencionado anteriormente, se trabajar con la relajacin lineal del problema
(3.2). La idea es resolverla para obtener una cota superior del problema y/o utilizar su
solucin en la construccin de una solucin factible. Se le llamar a esta relajacin PCP
at
(Precedence Constrained Problem):
(PCP
at
) m ax c
y
s.t.
1
t=0
R1
d=0
y
a,d,t
1
t=0
R1
d=0
y
b,d,t
(a, b) /, = 0, . . . , T 1
T1
t=0
R1
d=0
y
b,d,t
1 b B
Dy d
y 0
17
3.3. Relajacin lineal del problema Captulo 3
El at es debido a que la formulacin decide si un bloque es extrado en un determinado
destino y periodo, al contrario de la siguiente formulacin que ser presentada. Se puede
transformar esta formulacin a una mejor usando el siguiente Teorema, probado en [3].
Teorema 3.3.1. El problema PCP
at
puede ser reformulado como la relajacin lineal de
un problema Max-Closure con side-constraints.
Demo :
Se dene el siguiente sistema de inecuaciones sobre nuevas variables x
b,d,t
:
x
b,0,0
0
x
b,R1,t
x
b,0,t+1
t < T 1
x
b,d,t
x
b,d+1,t
d < R 1
x
b,R1,T1
1
x
a,R1,t
x
b,R1,t
(a, b) /, t
Se dene la funcin atbyKey : B [0, D1] [0, T 1] B [0, D1] [0, T 1]
como
atbyKey(b, d, t) =
_
_
_
(b, R 1, t 1) si d = 0, t > 0
(b, d 1, t) si d > 0
no denida si d = 0, t = 0
Con esta funcin se tiene una correspondencia uno-a-uno con el espacio denido por
1
t=0
R1
d=0
y
a,d,t
1
t=0
R1
d=0
y
b,d,t
(a, b) /, = 0, . . . , T 1
T1
t=0
R1
d=0
y
b,d,t
1 b B
y 0
de hecho, se puede ir de un sistema a otro usando las transformaciones
x
b,d,t
=
t1
=0
R1
=0
y
b,d
,t
+
d
=0
y
b,d
,t
y
b,d,t
=
_
x
b,d,t
x
atbyKey(b,d,t)
si d ,= 0 t ,= 0
x
b,d,t
si d = 0, t = 0
(3.3)
Usando esto, y deniendo c y D a partir de c y
D apropiadamente, se obtiene la siguiente
formulacin equivalente
(PCP
by
) m ax c
x
x
b,0,0
0
x
b,R1,t
x
b,0,t+1
t < T 1
x
b,d,t
x
b,d+1,t
d < R 1
x
b,R1,T1
1
x
a,R1,t
x
b,R1,t
(a, b) /, t
Dx d
18
3.3. Relajacin lineal del problema Captulo 3
A esta formulacin se le denomina la formulacin by y resulta ser la relajacin lineal de un
problema Max-Closure con side-constraints. En esta nueva formulacin aparecen nuevas
restricciones de precedencia.
Observacin 3.3.2. Claramente esta equivalencia entre formulaciones at y by no depende
de las side-constraints, por lo que se usarn ambas formulaciones en distintos contextos:
con y sin side-constraints.
Observacin 3.3.3. De la demostracin del Teorema 3.3.1 se puede ver que la mina se
puede representar como un nuevo grafo G
= (B
, /
x
s.t. x
a
x
b
(a, b) /
Dx d
x [0, 1]
N
donde G
= (B
, /
R x = r
donde r son los coecientes correspondientes a las las de
R. Como
R es de rango completo,
entonces
x = (
R)
1
r.
Es fcil ver que (
R)
1
tiene slo coecientes racionales, en efecto, si se computa la inver-
sa de
R mediante la eliminacin de Gauss-Jordan, las matrices elementales slo tendrn
coecientes racionales, por lo que (
R)
1
tambin lo har.
Por lo tanto, como (
R)
1
y r slo poseen coecientes racionales, x tambin lo har, lo que
concluye la demostracin.
Ahora, sea P el espacio factible del problema PCP
by
, donde se tienen q side-constraints,
y sea x un punto extremo de P. Desde ahora en adelante se asumir que todos los datos
del problema son nmeros racionales, lo cual es razonable dado que slo se pueden mane-
jar este tipo de nmeros computacionalmente.
Gracias al Lema 4.1.2, x slo posee valores racionales. Se denominarn valores fraccio-
narios a aquellos valores que no sean enteros. Sea r el nmero de valores fraccionarios
distintos que posee x, donde los valores estn dados por
1
, . . . ,
r
y se denota el vec-
tor indicador de cada
j
como
j
0, 1
N
(es decir,
j
i
= 1 ssi x
i
=
j
), se puede
descomponer x como
21
4.1. El algoritmo BZ para el caso de minera Captulo 4
x = x +
r
j=1
j
donde x es la parte entera de x. Con esta descomposicin en mente se prueba el siguiente
lema:
Lema 4.1.3. Sea x un punto extremo de P, y se considera la descomposicin de x recin
mencionada. Entonces se tiene que los vectores
j
son linealmente independientes (ms
an, son ortogonales) y pertenecen a ker(
A), donde
A es como en el Lema 4.1.1.
Demo :
La ortogonalidad (e independencia lineal) se tiene directo de que los soportes de los
j
son disjuntos, en efecto, si
j
i
= 1, entonces x
i
=
j
y luego
l
i
= 0 l ,= j.
Ahora se probar que
A
j
= 0. Para las restricciones de precedencias, dada una restriccin
x
a
x
b
, si es activa entonces x
a
= x
b
. Por lo tanto, si x
a
=
j
entonces x
b
=
j
, pero
esto implica que
j
a
= 1 y que
j
b
= 1 respectivamente, de donde se tiene que
j
a
j
b
= 0.
Anlogamente se tiene el mismo resultado si x
a
,=
j
.
Por ltimo, si una restriccin x
i
0 o x
i
1 est activa, entonces como los
j
son
fraccionarios se tiene que
j
i
= 0 j. Lo que concluye la demostracin.
Corolario 4.1.4. Sea P y x como en el Lema 4.1.1, q el nmero de side-constraints y r
el nmero de valores fraccionarios distintos de x. Entonces r q.
Demo :
Directo, pues dim(ker(
A)) q, con q como en el Lema 4.1.1, y los vectores
j
son ortogo-
nales y pertenecen a ker(
A). Como q q se tiene el resultado.
4.1.2. Particionamiento
El ltimo resultado permite armar que el nmero de valores distintos que toma una
solucin ptima no es ms que el nmero de side-constraints, y con esto se puede tener
una idea de qu tipo de restricciones H
k
x = h
k
conviene imponer en el algoritmo para
que cada problema P2
k
sea fcil de resolver, pero intente adivinar la estructura de la
solucin ptima. De aqu nace la idea de particionar las variables, de manera de imponer
que los conjuntos de variables contenidas en un elemento de la particin posean el mismo
valor en la solucin. Formalmente, en cada iteracin del algoritmo se denir
C
k
= C
k
1
, . . . , C
k
l
22
4.1. El algoritmo BZ para el caso de minera Captulo 4
particin de B
, C
0
= C
0
1
y k = 1.
2. Sea w
k
la solucin de L(PCP
by
,
k1
) (problema PCP
by
donde se penalizan las
side-constraints con el multiplicador
k1
).
Si k 2 e w
k
satisface H
k1
x = 0 PARAR.
3. Se dene C
k
particin de B
j=1
j
y luego denir como
C
k
j
al soporte de
j
y
C
k
0
al soporte de z
k1
. Luego, si se
considera
C
k
=
C
k
0
, . . . ,
C
k
r
(con r q) se puede denir C
k
como la coleccin de
los conjuntos no vacos de la coleccin
I
k
C
k
h
O
k
C
k
h
.
23
4.2. Una primera implementacin Captulo 4
En el primer caso, el nmero de elementos en la particin a lo ms se va duplicando
en cada iteracin (lo que podra ser malo), pero da un poco ms de libertad en cada
problema P2
k
. La gracia de la segunda idea es que en cada iteracin se tienen a lo ms
2(q + 2) elementos en la particin, lo cual es muy bueno cuando se tienen pocas side-
constraints, y adems se sabe que la solucin de PCP
by
no puede tener ms de q + 2
valores distintos en sus componentes (a lo ms q fraccionarios, ms 1 o 0). A esta segunda
idea se le denominar Reset, porque de cierta forma se est haciendo un reset sobre la
particin.
Cabe mencionar que el problema P2
k
tambin puede ser representado como un problema
del tipo PCP
by
, por lo que tambin son vlidos los resultados de descomposicin y por
ende es vlida la segunda idea presentada.
El problema de la idea de Reset es que podra causar que el algoritmo quede atasca-
do en un ciclo innito, por lo que Bienstock y Zuckerberg sugieren utilizar ambas ideas,
i.e, usar la primera idea que asegura que el algoritmo terminar (pues en el peor caso se
rena la particin hasta obtener el problema original), y, como paso opcional, si es que la
funcin objetivo aumenta estrictamente o si el problema P2
k
comienza a crecer mucho,
se puede utilizar la segunda idea para reducir el tamao de la particin, y as reducir el
nmero de variables en el problema P2
k
.
4.2. Una primera implementacin
Usando la descripcin del algoritmo, es directo implementar una versin bsica de ste.
El algoritmo fue implementado con las siguientes caractersticas:
Como L(PCP
by
,
k1
) es un problema Max-Closure, ser resuelto usando el algo-
ritmo pseudo-ow de Hochbaum. Ver [21, 22].
El grafo utilizado para resolver L(PCP
by
,
k1
) ser guardado completamente en
memoria utilizando listas de adyacencia.
La primera idea de particionamiento ser utilizada. Esta idea asegura un algoritmo
nito y es muy simple de implementar.
Dado que las particiones reducen considerablemente el nmero de variables en P2
k
(y
por lo tanto, el nmero de restricciones de precedencia tambin), cada problema P2
k
se asumir lo sucientemente pequeo como para ser resuelto utilizando CPLEX [34].
Se aadi otro criterio de parada: alcanzar un Gap predeterminado entre la cota
superior entregada por L(PCP
by
,
k
) (pues es una relajacin del problema) y la
cota inferior dada por P2
k
.
El algoritmo ser ejecutado en una CPU modelo Intel(R) Xeon(R) con 2.4 GHz y
con 24 GB de memoria RAM.
24
4.3. Speed-Ups Captulo 4
Nombre Bloques Prec. Dest. Periodos CPX BZ-0
mine_n 1060 3922 2 6 8.44 0.19
mine_z_small 9400 145640 2 20 327359.74 26.5
mine_k 14153 219778 2 12 95631.97 27.78
mine_a 16292 74260 2 20 29785.60 26.6
mine_z_medium 29277 1271207 2 15 Mem 190.37
mine_m 53271 656411 2 20 Mem 97.2
mine_m_simple 53668 656411 2 20 Mem 124.04
mine_g 57958 1186665 3 21 Mem 731.62
mine_z_large 96821 1053105 2 30 Mem 1147.21
mine_s 99014 96642 2 30 5700.51 519.83
mine_mc_limit 112687 3035483 2 15 Mem 440.81
mine_d 167937 5956121 2 51 Mem 5392.3
mine_r 304977 15665274 2 81 Mem Mem
mine_t 326428 1518326 2 80 Mem Mem
mine_t_full 329859 7066518 2 60 Mem Mem
mine_e 1101098 65185607 2 50 Mem Mem
mine_l 1663499 92440037 3 30 Mem Mem
mine_mc 2140342 3035483 2 20 Mem Mem
Cuadro 4.1: Tiempos (en segundos) de ejecucin de CPLEX y del algoritmo BZ para
resolver cada instancia. Las primeras 5 columnas consisten en los datos de las instancias
(nombre, nmero de bloques, nmero de precedencias entre bloques, nmero de destinos
y nmero de periodos respectivamente). La columna CPX muestra el tiempo que ocupa
CPLEX en resolver el problema, y la columna BZ-0 el tiempo que requiere la primera
implementacin del algoritmo BZ. Mem indica que no se pudo resolver la instancia por
problemas de memoria.
Con estas consideraciones se obtuvieron muy buenos resultados en comparacin con
CPLEX, pero todava existen varias instancias que no pueden ser resueltas debido a pro-
blemas de memoria. El Cuadro 4.1 muestra el tiempo necesario para resolver las instancias
disponibles con el algoritmo BZ utilizando un Gap objetivo de 10
6
. Adems se agreg el
tiempo necesitado por CPLEX para resolver las mismas instancias. En esta tabla se puede
observar que el algoritmo es capaz de resolver varias instancias en poco tiempo (con un
par de excepciones por supuesto), pero como se ver ms adelante, una serie de speed-
ups pueden ser utilizados para obtener un mejor rendimiento del algoritmo, y tambin se
mostrarn maneras de lidiar con el problema de memoria.
4.3. Speed-Ups
Al implementar el algoritmo BZ para el problema de planicacin minera se observ
que en la mayora de las instancias la parte que utiliza tiempo y memoria es resolver
L(PCP
by
,
k1
), por lo que se intent hacer algo mejor en esta parte del algoritmo para
acelerar el rendimiento general de ste, por lo tanto, muchos speed-ups estn diseados
25
4.3. Speed-Ups Captulo 4
para este paso. Sin embargo, tambin se desarrollaron otros speed-ups para otras partes
del algoritmo.
Un hecho importante que ser utilizado es el siguiente:
Proposicin 4.3.1. Dados multiplicadores , si se llama L(PCP
by
, )
at
a la formulacin
at del problema L(PCP
by
, ) entonces se tiene
L(PCP
by
, )
at
= L(PCP
at
, )
donde L(PCP
at
, ) es el problema obtenido al penalizar las side-constraints de PCP
at
con los multiplicadores
Demo :
La demostracin es directa y sigue de la demostracin del Teorema 3.3.1.
Esta proposicin ser muy til pues algunos speed-ups son ms intuitivos en L(PCP
at
,
k1
)
(dado que ac las variables indican exactamente cundo extraer un bloque y a qu destino
enviarlo), por lo que se presentarn en este contexto, y en la implementacin simplemente
se adaptaron a L(PCP
by
,
k1
) usado la transformacin at-by presentada en el Teorema
3.3.1.
4.3.1. Representacin del Grafo
Primero, una mejora muy importante diseada para este algoritmo fue la representa-
cin implcita del grafo que representa al problema L(PCP
by
,
k1
).
Como se mencion anteriormente, este problema es un Max-Closure que es resuelto usan-
do el algoritmo pseudo-ow de Hochbaum [21, 22]. En este caso se est buscando un
Max-Closure en un grafo denido por las restricciones de precedencias obtenidas en la
transformacin utilizada en el Teorema 3.3.1. Por lo tanto se tienen 3 tipos de restriccio-
nes de precedencia en L(PCP
by
,
k1
):
x
b,R1,t
x
b,0,t+1
t < T 1. (4.1)
x
b,d,t
x
b,d+1,t
d < R 1. (4.2)
x
a,R1,t
x
b,R1,t
(a, b) /. (4.3)
De esta manera, el grafo dirigido G
:
26
4.3. Speed-Ups Captulo 4
Trabajar con el grafo completo, como se hizo en la primera implementacin. En
otras palabras, guardar todos los arcos del grafo G
.
Si d < R 1, entonces de acuerdo a (4.2) (b, d + 1, t) es vecino de (b, d, t) en
G
.
Y nalmente, si t < T 1 y d = R1, entonces de acuerdo a (4.1) (b, 0, t +1)
es vecino de (b, d, t) en G
.
Se le denomin a sta Representacin implcita, abreviado IMP, y se puede ver
fcilmente que utiliza menos memoria que la Explcita, pero no tiene acceso directo
a los vecinos de un nodo, lo que podra tener como consecuencia un algoritmo ms
lento.
4.3.2. Reducciones en el Sub-problema
Como se mencion en la Proposicin 4.3.1, L(PCP
by
,
k1
) es un problema en forma-
to by, pero sin side-constraints, por lo que tiene una formulacin equivalente en formato at.
Otro hecho importante es que las side-constraints son generalmente restricciones de ca-
pacidad, ms an, cada side-constraint generalmente afecta slo a un periodo de tiempo
(por ejemplo, capacidad de produccin por cada ao), por lo que se considerar este caso
en el siguiente speed-up (que es el caso de todas las instancias que se utilizarn). Usando
esto, se pueden re-escribir las side-constraints de PCP
at
como:
D
t
y
,,t
d
t
t = 0, . . . , T 1
Donde y
,,t
representa las componentes de y que corresponden al periodo t. Y como la
componente temporal de atbyKey(b, d, t) (denido en el Teorema 3.3.1) es siempre menor
o igual a t, reemplazando las variables by x en las side-constraints se obtiene una estructura
similar a la anterior:
D
t
x
,,t
d
t
t = 0, . . . , T 1.
Pero ahora, abusando de notacin, x
,,t
representa componentes de x que correspondan a
un periodo menor o igual a t.
Adems, usando el mismo razonamiento, se puede descomponer
k1
como
k1
= (
k1,0
, . . . ,
k1,T1
)
donde cada
k1,t
son las variables duales de las side-constraints que corresponden al
periodo t.
27
4.3. Speed-Ups Captulo 4
Proposicin 4.3.2. Sea 0. Si
k1,t
= 0 t entonces existe una solucin ptima
y de L(PCP
at
,
k1
) tal que b, d
y
b,d,t
= 0 t + 1
Demo :
Sea y una solucin ptima. Como
k1,t
= 0 t , entonces los coecientes en la funcin
objetivo para y
b,d,t
con t estn dados por:
t
c
b,d
Ahora, por contradiccin se supone la armacin no es verdad y se llama P
t
al conjunto
de bloques extrados en el periodo t, i.e
P
t
= b B [ y
b,d,t
> 0 para algn d
y se denota el benecio total de P
t
como
c(P
t
) =
bP
t
R1
d=0
c
b,d,t
y
b,d,t
Sea t
+ 1 tal que P
t
,= (el cual se est suponiendo que existe). Claramente se
tiene que
c(P
t
) =
bP
t
R1
d=0
c
b,d
y
b,d,t
Si c(P
t
) < 0 se puede extraer cada bloque de P
t
un periodo despus, si t
< T 1,
y todava satisfacer las restricciones de precedencia, pero incrementando la funcin
objetivo estrictamente (debido a la tasa de descuento). Si t
= T 1 simplemente
se puede no extraer este conjunto de bloques.
Si c(P
t
) 0 se puede extraer cada bloque de P
t
un periodo antes y todava
satisfacer las restricciones de precedencia, incrementando la funcin objetivo (debido
a la tasa de descuento y a que t
tal que y
b,d,t
= 0 t + 1, que es lo que se
quera.
Lo que esta proposicin est diciendo es que, si estas condiciones se cumplen, se puede
resolver un problema ms pequeo, esto es, slo considerar los primeros + 1 periodos
en L(PCP
at
,
k1
). Este problema reducido es un problema en formato at, por lo que
se puede resolver usando su formulacin by (para resolverlo como Max-Closure) y luego
reconstruir la solucin completa fcilmente.
28
4.3. Speed-Ups Captulo 4
Corolario 4.3.3. La solucin ptima x de L(PCP
by
,
k1
) correspondiente a la solucin
ptima y de L(PCP
at
,
k1
), donde y es la discutida en la Proposicin 4.3.2 satisface
x
b,d,t
= x
atbyKey(b,d,t)
t + 1
Demo :
Como y
b,d,t
= 0 t + 1 y y
b,d,t
= x
b,d,t
x
atbyKey(b,d,t)
implica que x
b,d,t
= x
atbyKey(b,d,t)
si t + 1 (en este caso t > 0, por lo que atbyKey(b, d, t) est bien denido).
Ahora se probar que estas condiciones se cumplen en las primeras T iteraciones del
algoritmo BZ, por lo que al menos se tiene un speed-up para esas iteraciones.
Proposicin 4.3.4. Se supondr que d
t
,= 0. Si siempre se utiliza la solucin del sub-
problema discutida en el Corolario 4.3.3, entonces en la k-sima iteracin del algoritmo
BZ se tiene
k1,t
= 0 t k 1. Ms an, si t k entonces (b, d, t) y atbyKey(b, d, t)
pertenecen al mismo elemento de la particin obtenida al renar con x
k
(recordar que
como t > 0 en este caso, entonces atbyKey(b, d, t) existe).
Demo :
Se utilizar induccin.
Para k = 1, por denicin
0
= 0, y por el Corolario 4.3.3 se puede escoger x
0
tal
que
x
0
b,d,t
= x
0
atbyKey(b,d,t)
si t 1
por lo tanto la primera particin (que est completamente denida por x
0
) satisface lo
que se necesita.
Ahora se supone que la condicin se tiene para k > 1 y se probar para k + 1. En la
k-sima iteracin se tiene que (b, d, t) y atbyKey(b, d, t) pertenece al mismo elemento de
la particin actual si t k, entonces para cualquier vector z
k
factible para P2
k
se tiene
que
z
k
b,d,t
= z
k
atbyKey(b,d,t)
si t k
entonces, por la igualdad y
b,d,t
= x
b,d,t
x
atbyKey(b,d,t)
, se tiene que las side-constraints
satisfacen
D
t
z
k
,,t
= 0 t k
y como se est asumiendo que d
t
,= 0, por holgura complementaria, los duales ptimos
k
deben satisfacer
k,t
= 0 t k
por lo tanto, en la iteracin k + 1-sima se tendr que
k,t
= 0 t k que es lo que se
quiere.
Ahora, usando el Corolario 4.3.3 nuevamente, se escoge x
k+1
ptimo para L(PCP
by
,
k
)
tal que
x
k+1
b,d,t
= x
k+1
atbyKey(b,d,t)
t k + 1
29
4.3. Speed-Ups Captulo 4
y por hiptesis de induccin, (b, d, t) y atbyKey(b, d, t) pertenecen al mismo elemento en la
particin previa para t k, por lo que al renar usando x
k+1
se tiene que, al menos, (b, d, t)
y atbyKey(b, d, t) pertenecern al mismo elemento de la nueva particin para t k + 1.
Que es la segunda condicin que se necesitaba.
Con este resultado se puede asegurar que en cada iteracin los duales se van haciendo
no nulos a lo ms para un periodo extra, en otras palabras, los nicos duales no nulos
obtenidos en P2
k
pueden ser
k,t
con t k, bajo la condicin que d
t
,= 0 que es tpicamen-
te el caso. Por lo tanto, en las primeras T iteraciones se puede resolver el sub-problema
considerando k periodos, lo que reduce el tiempo y la memoria utilizada para resolver
L(PCP
by
,
k1
). A este speed-up se le denomin Time Shrink, abreviado TMSH.
Otra reduccin importante es que se puede convertir cada sub-problema L(PCP
at
,
k1
)
en un problema de 1 destino, lo que reducir considerablemente el tamao del problema
haciendo ms fcil de resolver el problema L(PCP
by
,
k1
).
En efecto, este resultado es fcil de ver y no necesita ninguna hiptesis como el speed-up
anterior. Cada problema L(PCP
at
,
k1
) es simplemente el mismo problema de plani-
cacin minera, pero sin side-constraints. De esta manera, si un bloque es extrado, ste
ser enviado a su mejor destino (el destino con mayor valor objetivo despus de penalizar
los coecientes), por lo tanto, para cada bloque basta considerar dicho destino, y de esta
manera se reducir el nmero de variables en un factor 1/D. Para usar este speed-up
se debe elegir el mejor destino en L(PCP
at
,
k1
) para reducir el problema, y despus
encontrar la formulacin by del problema reducido para resolverlo como un Max-Closure.
A este speed-up se le llam One Destination Shrink, abreviado 1DES.
4.3.3. Warm Starts Iterativos
El problema L(PCP
by
,
k1
) es un problema Max-Closure, y como ya se mencion
antes, se resuelve usando el algoritmo pseudo-ow de Hochbaum. Y como se est resol-
viendo un Max-Closure en cada iteracin del algoritmo BZ, podra ser una buena idea
hacer warm start sobre el algoritmo pseudo-ow usando la solucin anterior.
Es fcil ver que en las distintas iteraciones el grafo construido no cambia su estructura,
slo las capacidades de sus arcos. Pero al cambiar las capacidades el pseudo-ow anterior
podra no ser ni siquiera factible. Por suerte, Hochbaum describe un algoritmo que arregla
este problema, permitiendo empezar el algoritmo usando la solucin previa. Ver [22] para
los detalles.
El nico problema es que si tambin se usa el speed-up Time Shrink se est resolviendo un
problema de k periodos en la iteracin k-sima (para k T), y en la siguiente iteracin
se resolver un problema con k + 1 periodos, por lo que la informacin previa no puede
ser utilizada directamente. Por esto, si Time Shrink se encuentra activado, entonces es-
te warm start slo ser utilizado despus de la iteracin T. A este speed-up se le llam
Pseudo-Flow Warm Start, abreviado PSWS.
30
4.3. Speed-Ups Captulo 4
Observacin 4.3.5. Se puede probar que incluso si se usa Time Shrink en las primeras T
iteraciones, se puede construir un warm start cuidadosamente, de esta manera extendiendo
este speed-up. Pero debido a lo engorroso de la implementacin (y la demostracin) se
decidi no incluir esta extensin.
Por otra parte, se est resolviendo cada problema P2
k
utilizando el algoritmo Simplex
implementado en la librera de CPLEX. Por lo tanto, se har warm start de Simplex
utilizando la solucin anterior como punto de partida en cada iteracin. Esto result
ser muy til, especialmente cuando el problema master crece mucho. A ste se le llam
Simplex Warm Start, abreviado SPWS.
4.3.4. Preproceso y Warm Start Globales
En la prctica, para disear la planicacin de excavacin de una mina, se llevan a cabo
una serie de pasos para obtener un calendario tentativo. En uno de estos pasos, llamado
Delineacin de Contorno del Pit Final, se delimita la mina, identicando en qu parte de
la mina completa tendr lugar la excavacin (ver [7]). Esta delimitacin es conocida como
Ultimate Pit Limit.
Se dene el problema UPIT como:
(UPIT) m ax c
x
x
a
x
b
(a, b) /
x
b
[0, 1] b B
Donde c es un vector con el benecio del mejor destino de cada bloque. ste es un
problema de un periodo. Claramente es equivalente a resolver el problema PCP
by
re-
moviendo todas las side-constraints. Esto pues debido a la tasa de descuento es siempre
mejor extraer todo en el primer periodo, y al no considerar ninguna side-constraint no
tiene sentido considerar ms de 1 destino por bloque.
Se puede probar que, si los coecientes de la matriz
D son no negativos, entonces la
solucin entregada por UPIT contiene el conjunto de los bloques que deberan ser inclui-
dos en la solucin ptima del problema original (ver [6]). Y ste es tpicamente el caso: en
la mayora de las instancias que se considerarn las side-constraints son capacidades (de
procesamiento y extraccin), por lo que la matriz
D posee pesos de cada bloque.
Por este motivo, y dado que UPIT es un problema Max-Closure, una buena idea sera
utilizar este problema (que, como ya se ha mencionado, puede ser resuelto rpidamente)
para pre-procesar la mina antes de utilizar el algoritmo BZ. En otras palabras, si un bloque
no es extrado en UPIT, entonces no ser extrado en PCP
at
(ni siquiera parcialmente,
dado que se est trabajando en la relajacin), por lo que se puede eliminar y as reducir
el nmero de variables. A este pre-proceso se le denomin UPIT.
Y como warm start global, se decidi utilizar el algoritmo Critical Multiplier [7] (abreviado
CMA). Este es un algoritmo muy rpido, diseado para resolver el mismo problema pero
bajo 2 condiciones: slo 1 destino por cada bloque, y slo una side-constraint por perio-
do tal que su lado izquierdo (en la formulacin at) sea no-negativo. Por estos motivos no
31
4.3. Speed-Ups Captulo 4
puede ser utilizado directamente en un contexto general, pero ya que tiene un rendimiento
muy bueno (incluso mucho mejor que BZ en instancias que son vlidas para ambos algo-
ritmos) se consider como una buena idea usarlo para hacer warm start en el algoritmo BZ.
Lo que se hizo fue utilizar la siguiente heurstica para empezar con una particin no
trivial en el algoritmo BZ, en el caso que
D slo tenga coecientes no negativos:
1. Elegir el mejor destino para cada bloque. De esta manera se obtiene un problema
con un destino.
2. Por cada side-constraint por separado, usar el algoritmo CMA. Es decir, relajar
todas las side-constraints, excepto una, y resolver el problema. Hacer esto por cada
side-constraint.
3. Por cada solucin entregada por CMA, obtener la particin inducida por esta solu-
cin. Esto eso, particionar el espacio de variables completo de acuerdo a los valores
obtenidos para cada variable en cada solucin. De esta manera se obtienen q parti-
ciones (donde q es el nmero de side-constraints).
4. Obtener un renamiento de las q particiones intersectando todos los elementos de
todas las particiones.
5. Comenzar el algoritmo BZ con esta particin.
A este warm start se le llam CMA Warm Start abreviado simplemente CMA. Es
importante mencionar que dado que este ltimo warm start cambia la particin inicial, no
puede ser utilizado junto con el speed-up Time Shrink, por lo que los experimentos debern
considerar este problema. Dado que son excluyentes, en este caso sera ideal determinar
cul es mejor empricamente.
32
Captulo 5
Experimentos Computacionales y
Anlisis
En el siguiente captulo se mostrarn los resultados computacionales obtenidos con
la implementacin del algoritmo BZ junto con los speed-ups discutidos en el captulo
anterior.
5.1. Anlisis de Sensibilidad
Como primer paso, se mostrar un anlisis hecho para estimar el aporte de cada speed-
up por separado. Para esto, se considerar la implementacin bsica del algoritmo, la cual
ser comparada con el mismo algoritmo con uno de los speed-ups activados. Esto dar
una nocin del efecto de cada speed-up por si solo, argumentando as si es que vale la
pena considerarlo en general.
Por cada speed-up los resultados obtenidos se detallan en el Cuadro 5.1, donde se in-
cluye una tabla con todos los tiempos obtenidos para resolver las distintas instancias del
problema de planicacin minera. En general, los resultados indican lo siguiente:
Representacin del Grafo: A pesar de que la representacin explcita del grafo
tiene como consecuencia un algoritmo ms rpido (debido al rpido acceso a los ve-
cinos de un nodo), el usar la representacin implcita no tiene grandes consecuencias
negativas en el tiempo que toma el algoritmo. En general se obtiene un algoritmo
levemente ms lento (en promedio, un 20 % ms lento) pero permite resolver ms
instancias, lo que compensa la ralentizacin del algoritmo. Por esto se determin
que, si bien no es un speed-up propiamente tal, debe ser utilizado al momento de
usar el algoritmo BZ.
Time Shrink: Como era de esperar, se pudo observar un efecto positivo al utilizar
esta mejora. A pesar de que este speed-up slo se pueda utilizar en las primeras
T iteraciones se observ un aumento en la velocidad del algoritmo en todas las
instancias, obteniendo una reduccin de un 30 % en promedio en los tiempos del
algoritmo.
33
5.1. Anlisis de Sensibilidad Captulo 5
N
o
m
b
r
e
I
M
P
I
M
P
B
Z
-
0
T
M
S
H
T
M
S
H
B
Z
-
0
1
D
E
S
1
D
E
S
B
Z
-
0
P
S
W
S
P
S
W
S
B
Z
-
0
S
P
W
S
S
P
W
S
B
Z
-
0
U
P
I
T
U
P
I
T
B
Z
-
0
C
M
A
C
M
A
B
Z
-
0
m
i
n
e
_
n
0
.
1
9
1
.
0
0
0
.
1
6
0
.
8
4
0
.
1
4
0
.
7
4
0
.
1
5
0
.
7
9
0
.
1
9
1
.
0
0
0
.
2
1
.
0
5
0
.
1
2
0
.
6
3
m
i
n
e
_
z
_
s
m
a
l
l
3
3
.
4
4
1
.
2
6
2
0
.
1
6
0
.
7
6
1
6
.
6
4
0
.
6
3
2
0
.
4
9
0
.
7
7
2
8
.
0
4
1
.
0
6
2
4
.
7
2
0
.
9
3
1
7
.
3
8
0
.
6
6
m
i
n
e
_
k
3
1
1
.
1
2
1
9
.
4
6
0
.
7
0
1
7
.
8
4
0
.
6
4
2
2
.
5
7
0
.
8
1
3
0
.
8
4
1
.
1
1
2
6
.
6
4
0
.
9
6
1
5
.
6
1
0
.
5
6
m
i
n
e
_
a
2
4
.
3
8
0
.
9
2
1
7
.
4
8
0
.
6
6
1
6
.
3
9
0
.
6
2
1
9
.
2
5
0
.
7
2
2
6
.
3
4
0
.
9
9
1
4
.
9
5
0
.
5
6
2
.
2
1
0
.
0
8
m
i
n
e
_
z
_
m
e
d
i
u
m
2
9
7
.
3
4
1
.
5
6
1
4
4
.
9
4
0
.
7
6
1
4
1
.
9
9
0
.
7
5
1
2
1
0
.
6
4
2
0
4
.
1
4
1
.
0
7
1
9
1
.
3
8
1
.
0
1
9
9
.
0
8
0
.
5
2
m
i
n
e
_
m
9
2
.
8
4
0
.
9
6
6
1
.
4
6
0
.
6
3
6
9
.
1
8
0
.
7
1
7
0
.
2
0
.
7
2
9
7
.
5
2
1
.
0
0
3
7
.
8
5
0
.
3
9
4
7
.
6
6
0
.
4
9
m
i
n
e
_
m
_
s
i
m
p
l
e
1
1
9
.
3
3
0
.
9
6
9
1
.
6
3
0
.
7
4
8
5
.
2
6
0
.
6
9
9
1
.
4
4
0
.
7
4
1
3
0
.
7
7
1
.
0
5
5
4
.
6
7
0
.
4
4
1
2
0
.
3
7
0
.
9
7
m
i
n
e
_
g
9
8
6
.
3
7
1
.
3
5
3
3
7
.
2
3
0
.
4
6
3
6
9
.
1
3
0
.
5
0
6
4
4
.
9
3
0
.
8
8
7
0
1
.
9
2
0
.
9
6
6
7
4
.
5
0
.
9
2
3
0
5
.
7
2
0
.
4
2
m
i
n
e
_
z
_
l
a
r
g
e
1
3
3
4
.
5
2
1
.
1
6
6
8
9
.
5
1
0
.
6
0
7
7
2
.
5
7
0
.
6
7
8
3
7
.
2
7
0
.
7
3
1
1
5
7
.
4
6
1
.
0
1
1
1
4
0
.
5
9
0
.
9
9
7
2
6
.
5
2
0
.
6
3
m
i
n
e
_
s
5
2
9
.
6
4
1
.
0
2
4
6
0
.
4
0
.
8
9
4
8
7
.
8
0
.
9
4
5
7
4
.
5
7
1
.
1
1
2
1
5
.
7
5
0
.
4
2
3
2
9
.
1
7
0
.
6
3
1
2
7
.
6
3
0
.
2
5
m
i
n
e
_
m
c
_
l
i
m
i
t
5
3
5
1
.
2
1
3
0
7
.
3
6
0
.
7
0
3
1
2
.
4
5
0
.
7
1
3
8
6
0
.
8
8
4
3
3
.
4
4
0
.
9
8
4
4
4
.
9
5
1
.
0
1
2
8
9
.
3
0
.
6
6
m
i
n
e
_
d
1
0
0
3
3
.
7
7
1
.
8
6
1
3
4
0
.
4
5
0
.
2
5
3
3
2
2
.
3
7
0
.
6
2
4
0
7
1
.
6
7
0
.
7
6
5
5
5
4
.
0
2
1
.
0
3
5
2
2
9
.
3
0
.
9
7
3
4
2
0
.
8
7
0
.
6
3
m
i
n
e
_
r
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
m
i
n
e
_
t
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
N
.
A
-
N
.
A
-
m
i
n
e
_
t
_
f
u
l
l
1
1
8
2
8
4
.
7
6
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
N
.
A
-
N
.
A
-
m
i
n
e
_
e
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
m
i
n
e
_
l
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
m
i
n
e
_
m
c
4
1
7
0
.
5
9
-
M
e
m
-
M
e
m
-
M
e
m
-
M
e
m
-
1
3
2
5
.
2
7
-
M
e
m
-
C
u
a
d
r
o
5
.
1
:
A
n
l
i
s
i
s
d
e
S
e
n
s
i
b
i
l
i
d
a
d
p
a
r
a
t
o
d
o
s
l
o
s
s
p
e
e
d
-
u
p
s
d
i
s
e
a
d
o
s
.
T
o
d
a
s
l
a
s
c
o
l
u
m
n
a
s
p
a
r
e
s
p
o
s
e
e
n
e
l
t
i
e
m
p
o
d
e
e
j
e
c
u
c
i
n
(
e
n
s
e
g
u
n
d
o
s
)
d
e
l
a
l
g
o
r
i
t
m
o
B
Z
c
o
n
s
l
o
e
l
s
p
e
e
d
-
u
p
a
c
t
i
v
a
d
o
c
o
r
r
e
s
p
o
n
d
i
e
n
t
e
a
l
t
t
u
l
o
d
e
l
a
c
o
l
u
m
n
a
,
y
d
e
s
d
e
l
a
t
e
r
c
e
r
a
c
o
l
u
m
n
a
,
t
o
d
a
s
l
a
s
c
o
l
u
m
n
a
s
i
m
p
a
r
e
s
p
o
s
e
e
n
l
a
r
a
z
n
e
n
t
r
e
e
l
t
i
e
m
p
o
d
e
e
j
e
c
u
c
i
n
c
o
n
u
n
s
p
e
e
d
-
u
p
a
c
t
i
v
a
d
o
y
e
l
t
i
e
m
p
o
d
e
e
j
e
c
u
c
i
n
d
e
l
a
l
g
o
r
i
t
m
o
B
Z
s
i
n
n
i
n
g
n
s
p
e
e
d
-
u
p
,
d
e
a
c
u
e
r
d
o
a
l
a
c
o
l
u
m
n
a
e
t
i
q
u
e
t
a
d
a
c
o
m
o
B
Z
-
0
e
n
e
l
C
u
a
d
r
o
4
.
1
.
N
.
A
i
n
d
i
c
a
q
u
e
n
o
s
e
p
u
d
o
a
p
l
i
c
a
r
e
l
s
p
e
e
d
-
u
p
a
l
a
i
n
s
t
a
n
c
i
a
e
n
c
u
e
s
t
i
n
.
34
5.2. Efecto de todos las mejoras Captulo 5
One Destination Shrink: Este simple speed-up tambin tuvo un efecto positivo
en los tiempos de ejecucin del algoritmo sobre todas las instancias. En promedio
se obtuvo una reduccin de un 30 % aproximadamente en estos tiempos.
Pseudo-Flow Warm Start: Si bien este warm start no tuvo un efecto positivo
en todas las instancias, s lo tuvo en la mayora; en efecto, slo una instancia se
vio perjudicada por este warm start, y no fue un aumento drstico en el tiempo de
ejecucin. En general se observ un efecto positivo, con una disminucin de un 20 %
aproximadamente del tiempo de ejecucin en promedio.
Simplex Warm Start: Este warm start aparentemente no fue de tanta ayuda como
los otros. En general no se tuvo un cambio notorio en los tiempos de ejecucin (menos
de un 10 % de variacin en casi todos los tiempos), muchas veces incluso obteniendo
un peor rendimiento del algoritmo. A pesar de esto, y dado que la variacin no fue
considerablemente alta, se cree que vale la pena usar este warm start en el algoritmo
BZ. Adems, en una instancia especial y de mayor tamao que las que se presentan
en este informe (que por razones de condencialidad no se pudo incluir) este warm
start mostr tener una gran importancia.
UPIT: Este preproceso tambin mostr ser de gran utilidad, no slo logrando re-
ducir el tiempo de ejecucin en un 20 % en promedio, sino que tambin permitiendo
resolver una instancia extra (debido a que con este preproceso se reduce el tamao
del problema). En algunos casos el algoritmo se vio levemente perjudicado, y en la
mayora de estos casos se debe a una razn muy simple: dado que es un preproceso
comn en la minera, muchas instancias que se encuentran disponibles ya han sido
preprocesadas de esta manera, por lo que se est perdiendo tiempo y no se reduce el
tamao del problema. Sin embargo, en los pocos casos donde el algoritmo empeor,
el aumento en el tiempo de ejecucin fue menor.
CMA Warm Start: Y por ltimo, la heurstica descrita para comenzar el algorit-
mo BZ con una particin no trivial tambin tuvo un resultado positivo en todas las
instancias donde se puede aplicar. En promedio se obtuvo la mayor reduccin del
tiempo de ejecucin entre todos los speed-ups, siendo sta de un 45 % aproximada-
mente.
Observacin 5.1.1. Se debe recordar que CMA Warm Start requiere que las side-constraints
Dy d tengan lado izquierdo no negativo, al igual que UPIT, por lo que no pudo ser
aplicado en todas las instancias.
Observacin 5.1.2. Es tentador determinar, a partir de este anlisis, que CMA Warm
Start es un mejor speed-up que Time Shrink en promedio, por lo que se debera elegir el
primero sobre el segundo (pues ambos son excluyentes). Pero se debe tomar en cuenta que
la idea principal es combinar todos estos speed-ups y ver cmo se complementan entre
ellos, y recin ah se podr tener una nocin de cual podra ser mejor que el otro.
5.2. Efecto de todos las mejoras
A continuacin se mostrarn los experimentos realizados usando todos los speed-ups
disponibles. Dado que Time Shrink y CMA Warm Start son excluyentes, se consideraron
35
5.2. Efecto de todos las mejoras Captulo 5
Nombre ALL-C
ALL-C
BZ-0
ALL-T
ALL-T
BZ-0
mine_n 0.06 0.32 0.1 0.53
mine_z_small 10.54 0.40 13.05 0.49
mine_k 8.13 0.29 10.89 0.39
mine_a 0.85 0.03 4.57 0.17
mine_z_medium 86.87 0.46 101.17 0.53
mine_m 11.31 0.12 14.21 0.15
mine_m_simple 26.63 0.21 23.2 0.19
mine_g 281.66 0.38 244.86 0.33
mine_z_large 534.48 0.47 472.33 0.41
mine_s 17.93 0.03 28.5 0.05
mine_mc_limit 207.17 0.47 245.61 0.56
mine_d 2830.23 0.52 1566.93 0.29
mine_r 66136.93 - Mem -
mine_t N.A - Mem -
mine_t_full N.A - 12918.34 -
mine_e 24232.73 - 6609 -
mine_l Mem - Mem -
mine_mc 790.5 - 662.32 -
Cuadro 5.2: Resultados obtenidos para la ejecucin del algoritmo BZ con todos los speed-
ups incluidos. Las columnas 2 y 4 muestran los tiempos (en segundos) requeridos para
cada instancia usando los conjuntos de speed-ups ALL-C y ALL-T respectivamente. La
columna 3 muestra el cuociente entre los tiempos obtenidos considerando ALL-C y los
tiempos obtenidos en la primera implementacin del algoritmo BZ (BZ-0) detallados en
el Cuadro 4.1. Lo mismo para la columna 5, considerando ALL-T. N.A indica que no se
pudo aplicar ALL-C debido a que las instancias no cumplen las hiptesis requeridas.
2 conjuntos de speed-ups:
Todos los speed-ups, a excepcin de CMA Warm Start, que ser denotado por ALL-
T debido a que incluye a Time Shrink.
Todos, a excepcin de Time Shrink, que ser denotado ALL-C ya que incluye a
CMA Warm Start.
Considerando estos conjuntos, se ejecut el algoritmo sobre todas las instancias. Los re-
sultados se muestran en el Cuadro 5.2 donde se detallan los tiempos obtenidos para cada
instancia usando los conjuntos ALL-T y ALL-C. Tambin se agregaron columnas que
comparan estos tiempos con los obtenidos para la implementacin bsica del algoritmo
BZ (de acuerdo al Cuadro 4.1).
Para el conjunto ALL-C se aprecia una reduccin drstica del tiempo de ejecucin del
algoritmo en comparacin a este mismo sin ningn speed-up. En promedio se redujo el
tiempo de ejecucin en un 68 %, reduciendo en ms de 50 % este tiempo en la mayora de
las instancias. Adems, con este conjunto se pudo resolver una instancia que antes no se
36
5.3. Un ltimo speed-up Captulo 5
poda resolver, y que tampoco se pudo resolver con ALL-T. El problema que posee ALL-C
es que no puede ser utilizado en todas las instancias, lo que perjudica su utilidad.
Para el conjunto ALL-T tambin se puede observar una importante reduccin en el tiempo
de ejecucin del algoritmo BZ. En promedio se obtuvo una reduccin de un 65 %, y tam-
bin se redujo en ms de un 50 % el tiempo de ejecucin de la mayora de las instancias.
Otro hecho positivo es que con ALL-T se pudo resolver una instancia que con ALL-C no
se pudo resolver debido a que no se poda aplicar CMA Warm Start.
Al observar los resultados, no es claro cul es mejor: ALL-C o ALL-T. Se observa una leve
tendencia que insina que ALL-T es mejor para instancias ms grandes (en cantidad de
bloques), pero no existe una superioridad absoluta de un conjunto de speed-ups sobre el
otro. Ms an, ambos poseen instancias que el otro no puede resolver.
5.3. Un ltimo speed-up
A pesar de haber reducido drsticamente los tiempos obtenidos para los distintos
conjuntos de speed-ups, todava existen instancias que no se pueden resolver debido a
problemas de memoria.
Como se mencion antes, en general el cuello de botella del algoritmo estaba en re-
solver cada problema L(PCP
by
,
k
), pero usando los speed-ups discutidos se obtuvo una
buena reduccin en el tiempo necesario para resolver este paso del algoritmo, adems de
reducir la memoria necesaria para resolver dicho problema.
Pero como se coment brevemente en la Seccin 4.2, se us la primera idea de parti-
cionamiento, y en algunas minas (generalmente minas muy grandes) el tamao de la
particin crece lo suciente como para hacer que cada problema P2
k
sea imposible de
resolver usando CPLEX. Por este motivo se decidi revisar la segunda idea de particio-
namiento explicada en la Seccin 4.1.2, es decir, lo que se denomin Reset y que tiene la
ventaja de controlar el tamao de la particin.
El problema de Reset es que si simplemente se usa cada vez que la funcin objetivo
aumenta estrictamente, entonces el algoritmo tiene un muy mal rendimiento. Por esto se
decidi usar un umbral para el tiempo que toma resolver el problema master, de manera
que si se supera ese umbral se aplica Reset. Por supuesto que esta idea har que el al-
goritmo haga ms iteraciones, pero se puede esperar que en algunos casos las iteraciones
tomen menos tiempo, o al menos que permita resolver instancias que antes no se podan
resolver.
El Cuadro 5.3 muestra los tiempos obtenidos al aplicar Reset con un umbral de 100
segundos, es decir, si el tiempo para resolver el problema master toma ms de 100 segun-
dos, se aplica Reset. Slo se agregaron las instancias donde este umbral se alcanz y se
tuvo que hacer Reset, el resto de las instancias no se vieron afectadas por este cambio. Este
umbral es arbitrario y se j basado en distintos experimentos. En general otros umbrales
razonables tienen un rendimiento similar. Adems, se decidi mostrar los resultados en
37
5.3. Un ltimo speed-up Captulo 5
Nombre ALL-C RST-C
ALL-C
RST-C
ALL-T RST-T
ALL-T
RST-T
mine_r 66136.93 101649.39 1.54 Mem 107198.05 -
mine_t N.A N.A - Mem 13412.17 -
mine_t_full N.A N.A - 12918.34 6599.01 0.51
Cuadro 5.3: Tiempo (en segundos) que toma el algoritmo BZ en resolver las instancias
indicadas. Las columnas ALL-T y ALL-C poseen los tiempos (en caso que se pudo resolver
la instancia) requeridos usando cada conjunto. La columna RST-C posee los tiempos
necesitados para resolver las instancias usando Reset con umbral de 100 segundos junto
con ALL-C, y lo anlogo para la columna RST-T.
comparacin con ALL-T y ALL-C, pues, aunque 2 de las instancias que se vieron afec-
tadas no cumplen los requerimientos para ALL-C, la otra instancia solo se pudo resolver
con este ltimo.
En el Cuadro 5.3 se observan 3 cosas importantes. Primero, se pudo resolver una
instancia extra, que antes no se poda resolver por problemas de memoria. Segundo, la
instancia que slo se poda resolver con ALL-C, ahora se pudo resolver con ALL-T usando
Reset. Y tercero, la instancia mine_t_full redujo su tiempo de ejecucin.
Lamentablemente la reduccin de tiempo observada para la instancia antes menciona-
da es un comportamiento inusual, pues en general Reset aplicado a instancias que se
pueden resolver sin problemas (al probar otros umbrales) no reduce el tiempo de ejecu-
cin del algoritmo. Adems, se puede observar que en la instancia mine_r tampoco se
redujo el tiempo de ejecucin al considerar el conjunto ALL-C. Sin embargo, esto no le
resta importancia, dado que el principal aporte de Reset es reducir el tamao del problema
master para poder resolver instancias ms complicadas, y ese objetivo se cumpli.
38
Captulo 6
Experimentos con Heursticas
Como originalmente se trata de buscar soluciones factibles para el problema (no de la
relajacin lineal), sera ideal encontrar la manera de construir soluciones factibles cercanas
al ptimo de la relajacin. La idea no es slo utilizar la relajacin lineal para obtener una
cota superior, sino que usarla como gua para construir una buena solucin factible.
Si bien no fue el foco principal del presente trabajo, se realizaron diversos experimen-
tos con algunas heursticas simples y/o conocidas para lograr obtener soluciones factibles,
obteniendo resultados bastante buenos.
6.1. Adaptacin de TopoSort
En la siguiente seccin se detallar la heurstica principal utilizada para obtener so-
luciones factibles al problema de planicacin minera. Para esto se necesita la siguiente
denicin usada en [7]:
Denicin 6.1.1. Dado un vector y factible para PCP
at
, se dene la funcin ET :
B [0, D 1] [0, T 1] R
B
(Expected Time) como:
(ET(y))
b
=
R1
d=0
T1
t=0
t y
b,d,t
+T
_
1
R1
d=0
T1
t=0
y
b,d,t
_
La idea de esta denicin es interpretar cada coordenada y
b,d,t
como una probabilidad
de extraer el bloque b en el destino d y en el periodo t, agregando un periodo extra (T)
de manera que las probabilidades sumen 1. De esta forma la funcin ET se interpretara
como el periodo esperado donde cada bloque es extrado.
Observacin 6.1.2. Dada una solucin factible y, es claro ver que (a, b) / se tiene que
(ET(y))
a
(ET(y))
b
.
Con esta informacin disponible, dada una solucin ptima y
de PCP
at
se usar
la siguiente adaptacin de TopoSort, la cual es una heurstica desarrollada en [7] que
mostr un buen rendimiento en las instancias estudiadas en dicho documento. Se denotan
los coecientes de la matriz
D como
D
b,d,t
y se construye una solucin factible y de la
siguiente manera:
39
6.1. Adaptacin de TopoSort Captulo 6
1. Denir B
= B e y
b,d,t
= 0 b, d, t.
2. Sea d
un vector de R
B
que contiene un destino por cada bloque.
3. Si B
= PARAR.
4. Sea b arg mn(ET(y
))
a
[ a B
.
5. Si existe T 1 tal que:
t=0
y
a,d
a
,t
= 1 a tal que (b, a) /
Dy +
D
b,d
b
,
d (6.1)
entonces denir t como el menor que cumple (6.1).
Si no existe tal , entonces B
b e ir al paso 3.
6. Hacer y
b,d
b
,t
= 1, B
b e ir al paso 3.
Observacin 6.1.3. La heurstica TopoSort requiere que los coecientes de la matriz
D
sean no negativos, por lo que slo se pudo aplicar a aquellas instancias que cumplen con
esto. Por estos motivos, en este captulo no habrn resultados asociados a las instancias
mine_t y mine_t_full.
La idea de esta heurstica es tomar los bloques ordenados segn (ET(y))
b
y extraerlos
lo antes posible en algn destino, esto es, en el tiempo ms pronto donde su precedencia
ya ha sido extrada y donde las side-constraints lo permitan. Esto tiene sentido gracias a
la Observacin 6.1.2 y a que los coecientes de
D son no negativos, por lo que siempre se
mantiene factibilidad de la solucin que se construye.
Para la eleccin del vector d
b
= d
T1
t=0
y
b,d,t
T1
t=0
y
b,d
,t
d
d=0
y
b,d,t
> 0
43
6.2. Primeras mejoras a TopoSort Captulo 6
Nombre TS2 UP ND
mine_n 0.034 0.034 0.034
mine_z_small 0.045 0.045 0.037
mine_k 0.010 0.010 0.010
mine_a 0.064 0.063 0.063
mine_z_medium 0.113 0.113 0.099
mine_m 0.029 0.029 0.028
mine_m_simple 0.101 0.101 0.084
mine_g 0.013 0.013 0.013
mine_z_large 0.011 0.011 0.010
mine_s 0.002 0.002 0.001
mine_mc_limit 0.003 0.003 0.002
mine_d 0.004 0.004 0.004
mine_r 0.034 0.034 0.022
mine_e 0.143 0.143 0.131
mine_mc 0.002 0.002 0.002
Cuadro 6.3: Gaps obtenidos al usar TopoSort2 y al agregar las mejoras a sta. Se muestran
los Gaps obtenidos por TopoSort2 (TS2), luego los Gaps al aplicar UPIT-Post (UP) a las
soluciones, y por ltimo los Gaps obtenidos al aplicar NewDest (ND) despus de UPIT-
Post. Nuevamente no se muestran los tiempos por las mismas razones anteriores.
el tiempo mnimo donde se extrae un bloque. Y usando esto se modic el algoritmo
TopoSort cambiando la condicin T 1 por
(Tmin(y
))
b
T 1
en el paso 5. De esta manera se fuerza a que los bloques no sean extrados antes de lo
indicado por el LP. A esta heurstica se le denomin TopoSort2, y usando este cambio se
obtuvieron los Gaps detallados en el Cuadro 6.3.
En los resultados se puede apreciar una mejora drstica en la efectividad de la heu-
rstica. Se obtuvieron muchos Gaps menores al 1 %, obteniendo solo una instancia con
un Gap mayor al 10 %. Adems se puede observar que al considerar TopoSort2 el efecto
mejoras UPIT-Post y NewDest se vuelve menos notorio.
Para observar la principal diferencia en las soluciones se volver a utilizar mine_z_small.
En la Figura 6.2 se muestra la diferencia entre la nueva solucin entregada por TopoSort2
y la antigua solucin.
En esta gura se puede ver el efecto que tuvo agregar Tmin(y
) a TopoSort, el cual
era el deseado: forzar a que los bloques sean extrados no antes que lo indicado por la
solucin de la relajacin lineal. En la solucin entregada para la mina mine_z_small por
TopoSort2 se puede ver que las regiones con bloques malos son extradas despus que lo
considerado por TopoSort, lo cual logra que dicha solucin se asemeje ms a la solucin
del LP, obteniendo as un menor Gap.
44
6.3. Una nueva heurstica como mejora a TopoSort Captulo 6
(a) Tiempos de Extraccin para la solucin ob-
tenida con TopoSort.
(b) Tiempos de Extraccin para la solucin ob-
tenida con TopoSort2.
Figura 6.2: Soluciones obtenidas por TopoSort y TopoSort2 para la mina mine_z_small.
Se muestra un corte de sta, donde los colores van desde Azul hasta Rojo de acuerdo al
periodo donde se extrae cada bloque.
6.3. Una nueva heurstica como mejora a TopoSort
A pesar de obtener buenos Gaps en la mayora de las instancias, todava existen proble-
mas en algunas de ellas. El principal problema observado es la distribucin de los bloques
beneciosos, es decir, el orden en el que se extraen los bloques que incrementan el valor
de la funcin objetivo.
Para intentar remediar esto, se dise la heurstica RollingTime, basada en la heu-
rstica Sliding Time Window propuesta en [8]. Esta heurstica, a partir de una solucin
factible y
para PCP
at
(que puede ser la solucin ptima del LP) construye una solucin
y de la siguiente forma:
1. Sea un entero arbitrario, t
= 0 e y
b,d,t
= 0 b, d, t.
2. Denir
B
=
_
b B [ (ET(y
))
b
t
+
R1
d=0
T1
t=0
y
b,d,t
= 0
_
.
3. Resolver el problema de planicacin minera (con variables enteras) para 1 periodo
usando CPLEX, pero considerando slo los bloques en B
+ 1. Si t
x [ Ax _
K
b . (7.1)
48
7.2. Formulando robustez como un problema cnico Captulo 7
Claramente si se considera E = R
m
y K = R
m
+
se obtiene un problema de Optimiza-
cin Lineal.
Denicin 7.1.2. Se dice que un problema cnico es estrictamente factible si existe x tal
que Ax ~
K
b.
Si se supone que un problema es estrictamente factible, entonces se tienen todas las
nociones de dualidad que existen en los problemas lineales. Se puede denir el problema
dual de (7.1) como:
m ax
b, y [ A
y = c, _
K
0 (7.2)
donde , denota el producto interno de E, A
es el conjugado de A y K
es el cono
dual de K y est denido como
K
= E [ , v 0 v K .
Con esto, se pueden generalizar los Teoremas de Dualidad Fuerte, Dualidad Dbil y
Holgura Complementaria. Para detalles ver [1].
Un ejemplo que se utilizar en lo siguiente es el conocido Cono de Lorentz de dimen-
sin m, conocido tambin como el Cono de Helado. ste se dene como
L
m
= x R
m
[ |(x
1
, . . . , x
m1
)| x
m
(7.3)
donde | | denota la norma euclidiana, es decir
|x| =
_
m
i=1
x
2
i
Es fcil ver que el cono dual de L
m
es l mismo, es decir L
m
= L
m
.
7.2. Formulando robustez como un problema cnico
En el mundo real los datos de un problema no son siempre certeros. En general se
pueden presentar errores de medicin, valores que pueden cambiar aleatoriamente, etc.
Por estos motivos, se vuelve importante encontrar soluciones robustas a los problemas
que tengan incertidumbre en sus datos, es decir, soluciones que aseguren un buen com-
portamiento a pesar de la variabilidad que pueden poseer los datos del problema.
En lo siguiente se supondr que se tiene un problema de optimizacin lineal
m ax c
x
s.t. Ax b
(7.4)
donde hay incertidumbre sobre los datos c. Matemticamente hablando, se considerar
que
c = c
+Pu, u
u 1
49
7.2. Formulando robustez como un problema cnico Captulo 7
donde c
son los valores nominales y Pu son las perturbaciones que se permitirn en los
valores. Al considerar que u
x [ u, u
u 1, c = c
+Pu, Ax b.
En este modelo tambin se podra considerar incertidumbre sobre los datos A o b, pero
como primer paso se decidi slo considerar variaciones en la funcin objetivo. Para un
anlisis ms general y detallado ver [1].
Este problema se puede reformular como
m ax r
s.t. r c
x c |
Ax b
(7.5)
donde | = c [ u, u
u 1, c = c
x, c | se satisface si y slo si
0 mn
u,u
u1
c
x r [ c = c
+Pu
= mn
u,u
u1
(c
+ Pu)
x r
= (c
x r + mn
u,u
u1
u
x
= (c
x r |P
x|
por lo tanto, si se dene
C =
_
P
0
(c
1
_
y se denota por L = L
n+1
el cono de Lorentz de dimensin n + 1, se tendr que
r c
x, c | C
_
x
r
_
_
L
0
de donde se obtiene el problema cnico
m ax r
s.t. Ax b
C [x, r]
_
L
0
(7.6)
50
7.3. El algoritmo BZ Cnico Captulo 7
7.3. El algoritmo BZ Cnico
En esta seccin se trabajar con un problema como
z
= max c
x
s.t. Ax _
K
1 b
Dx _
K
2 d
(7.7)
el cual se supondr estrictamente factible, con K
1
y K
2
conos. Sea
0
K
2
, cono dual
de K
2
y k = 1. Con esto se propone la siguiente generalizacin del algoritmo BZ:
1. Sea
k
R
n
una relajacin de P = x [ Ax _
K
1 b, Dx _
K
2 d. Es decir, P
k
.
2. Resolver
z
U
k
= max c
x
k1
, Dx d
s.t. Ax _
K
1 b
x
k
.
(7.8)
obteniendo una solucin ptima w
k
.
3. Si k 2 y w
k
A
k1
, entonces PARAR.
4. Sea A
k
= v
1
, . . . , v
n
k
un conjunto nito de puntos en R
n
tales que w
k
A
k
.
5. Resolver
z
L
k
= max c
x
s.t. Ax _
K
1 b
Dx _
K
2 d
x =
n
k
i=1
k
i
v
i
(7.9)
Sean x
k
R
n
,
k
R
n
k
y
k
K
2
x [ Ax _
K
1 b, Dx _
K
2 d. Sea x
una solucin ptima y K
2
x , Dx d
s.a Ax _
K
1 b
(7.10)
La prueba de esta Proposicin tambin sigue directamente de dualidad fuerte para el
caso cnico, y se presenta a continuacin.
Demo :
Se considera el problema (7.7). El dual de este problema est dado por
mn b, +, d
s.t.
A
+ D
= c
_
K
1
0
_
K
2
0
(7.11)
Sea x el ptimo primal, y sus duales correspondientes , . Claramente el problema
(7.11) es equivalente a resolver,
mnd, +f() : _
K
2
0
donde,
f() = mnb, : A
= c D
, _
K
1
0.
Si se aplica dualidad a este ltimo problema se ve que
f() = maxc D
, x : Ax _
K
1 b
de donde se obtiene que el problema (7.11) es equivalente a
d, +f( ) = d, + maxc D
, x : Ax _
K
1 b.
Por lo que el problema (7.7) es equivalente a
m axc
x +d Dx, : Ax _
K
1 d. (7.12)
donde se us que D
x , Dx d
s.a Ax _
K
1 b
x
(7.13)
donde es una relajacin de P = x [ Ax _
K
1 b, Dx _
K
2 d.
52
7.4. Un modelo de Optimizacin Robusta para el problema de minera Captulo 7
Demo :
Se sabe que x es ptimo de (7.10). Adems, como (7.10) es una relajacin de (7.13) y
x P, (entonces es factible para (7.13)) se concluye.
Proposicin 7.3.3. Sea z
z
U
k
. Adems, si el algoritmo alcanza una condicin de parada, la ltima
solucin encontrada para (7.9) es ptima.
Demo :
Claramente z
L
k
z
0,
por denicin de K
2
se tiene que
, d Dx 0
por lo que c
x , Dx d c
x y entonces z
z
U
k
. El resto de la demostracin es
idntica a la demostracin de la Proposicin 2.1.3, reemplazando la Proposicin 2.1.2 por
el Corolario 7.3.2.
7.4. Un modelo de Optimizacin Robusta para el pro-
blema de minera
El problema de planicacin minera que se ha estudiado posee diversas fuentes de
incertidumbre, lo que es un problema al momento de considerar un modelo determinista.
Entre estas distintas fuentes de incertidumbre, la incertidumbre geolgica es la que ha
sido ms estudiada. En esta seccin se propondr un nuevo modelo que considere otro
tipo de incertidumbre en los datos.
7.4.1. Reformulacin del problema
Con el objetivo de aplicar la generalizacin propuesta del algoritmo BZ se decidi
estudiar un nuevo modelo, que considere variabilidad en los benecios entregados por
cada bloque. Esto se realiz modicando el modelo de la siguiente manera:
Se asumir que cada mina posee M tipos de mineral, los cuales tendrn un precio
p
m
0
R, m = 0, . . . , M 1.
Se considerar que cada bloque posee un costo (negativo) asociado al destino al cual
es enviado, el cual ser denotado por c
b,d
R. Tpicamente son costos de extraccin
y extraccin con procesamiento.
Cada bloque poseer una cantidad del mineral m que es extrado de l dependiendo
del destino donde es enviado. Esta cantidad de mineral ser denotada q
m
b,d
R.
53
7.4. Un modelo de Optimizacin Robusta para el problema de minera Captulo 7
El benecio de cada par bloque-destino est dado por la cantidad de minerales que
se extraen del bloque al ser enviado al destino d segn el precio de cada mineral, es
decir
m
q
m
b,d
p
m
0
.
Al igual que antes, se denen las variables y
b,d,t
que indican si un bloque b es enviado
al destino d en el periodo t.
Se agregan las variables w
m
t
, t = 0, . . . , T 1, m = 0, . . . , M 1 que indicarn la
cantidad de mineral m extrado en el periodo t.
Con estas deniciones, si se denota por p
m
t
= p
m
0
t
y c
b,d,t
=
t
c
b,d
, donde es la tasa
de descuento, se puede reescribir el modelo determinista como
(PCP
at
) max
M1
m=0
T1
t=0
p
m
t
w
m
t
+ c
y
s.t. w
m
t
=
bB
R1
d=0
q
m
b,d
y
b,d,t
m = 0, . . . , M 1
1
t=0
R1
d=0
y
a,d,t
1
t=0
R1
d=0
y
b,d,t
(a, b) /, = 0, . . . , T 1
T1
t=0
R1
d=0
y
b,d,t
1 b B
Dy d
y 0
y al igual que antes, usando la transformacin vista en el Teorema 3.3.1 se pueden trans-
formar las variables y para llegar a un problema de la forma
m ax
M1
m=0
(p
m
)
w
m
+ c
x
s.t. w
m
= Q
m
x m = 0, . . . , M 1
Ax b
Dx d
(7.14)
donde Ax b tiene las restricciones de precedencia (en el grafo expandido) y las cotas de
las variables, Dx d son las side-constraints, y c y Q
m
se obtienen al hacer el cambio de
variables de y a x.
7.4.2. Agregando incertidumbre al modelo
En la prctica, para obtener el benecio de cada par bloque-destino, tpicamente se
procede como se explic en la seccin anterior con el objetivo de maximizar el valor pre-
sente neto de la extraccin del mineral.
Este modelo considera un precio de cada mineral jo p
m
0
el cual es descontado a lo largo del
tiempo para obtener un vector p
m
de precios del mineral m en cada periodo. El problema
54
7.4. Un modelo de Optimizacin Robusta para el problema de minera Captulo 7
de esto es que en la realidad hay incertidumbre sobre el precio de los minerales, sobre
todo si se tiene un horizonte de tiempo signicativo, lo que limita el modelo determinista
antes considerado. Por estas razones se decidi incorporar esta incertidumbre al mode-
lo, de manera de obtener soluciones que sean robustas con respecto a las variaciones de p
m
.
Como fue discutido en la Seccin 7.2, se considerar que
p
m
= p
m
+P
m
u
m
, (u
m
)
u
m
1
donde p
m
son los valores nominales por cada mineral y P
m
u
m
son las perturbaciones
que se permitirn en los precios de cada mineral.
En este caso, para maximizar el peor caso posible se debe resolver el problema
m ax
w
0
,...,w
M1
,x
f(w
0
, . . . , w
M1
, x)
donde
f(w
0
, . . . , w
M1
, x) =nf
M1
m=0
(p
m
)
w
m
+c
x [ u
m
, (u
m
)
u
m
1, p
m
= p
m
+P
m
u
m
,
w
m
= Q
m
x, Ax b, Dx d
lo que lleva al problema
m ax
M1
m=0
r
m
+c
x
s.t. r
m
(p
m
)
w
m
m = 0, . . . , M 1, p
m
|
m
w
m
= Q
m
x m = 0, . . . , M 1
Ax b
Dx d
(7.15)
donde |
m
= p
m
[ u
m
, (u
m
)
u
m
1, p
m
= p
m
+ P
m
u
m
. El que a su vez, siguiendo el
procedimiento considerado en la Seccin 7.2, lleva al problema cnico
m ax
M1
m=0
r
m
+c
x
s.t. w
m
= Q
m
x m = 0, . . . , M 1
Ax b
Dx d
C
m
[w
m
, r
m
]
_
L
0 m = 0, . . . , M 1
(7.16)
donde
C
m
=
_
(P
m
)
0
( p
m
)
1
_
y L = L
T+1
es el cono de Lorentz de dimensin T + 1, con T el nmero de periodos.
Observacin 7.4.1. Claramente el modelo puede ser modicado para que considere incer-
tidumbre geolgica. Si por ejemplo, se consideran variaciones en la cantidad de material
estimado para cada bloque, se puede hacer un desarrollo similar de manera de permitir
variaciones sobre las matrices Q
m
para llegar a un modelo similar a (7.16).
55
7.4. Un modelo de Optimizacin Robusta para el problema de minera Captulo 7
El problema (7.16) es del mismo tipo que (7.7), por lo que se puede aplicar el algoritmo
BZ propuesto en este captulo. Esto se hizo considerando lo siguiente:
Para denir A se sigui con la misma estrategia usada en el caso Lineal, es decir,
utilizando particionamiento de las variables x. Las variables w
m
y r
m
se considerarn
aparte, lo cual no afectar mucho al algoritmo pues son solamente M(T +1) variables
extra.
Al denir el sub-problema se penalizarn las side-constraints y las restricciones c-
nicas.
Cada problema master ser resuelto usando la librera de Optimizacin No Lineal
de CPLEX.
Se usar
k
= R
n
+
, con lo que se obtiene un problema similar al caso Lineal. Ms
an, el sub-problema resulta ser equivalente a un Max-Closure como se demostrar
a continuacin.
Proposicin 7.4.2. Considerar el problema penalizado
m ax
M1
m=0
r
m
+ c
(Dx d) +
M1
m=0
(
m
)
C
m
[w
m
, r
m
]
s.t. w
m
= Q
m
x, m = 0, . . . , M 1
Ax b
(7.17)
donde
m
_
L
0 y 0 son duales factibles del problema (7.16). Entonces el problema
(7.17) es equivalente a un problema Max-Closure.
Demo :
Primero se reescribe el problema como
m ax
M1
m=0
(1
m
T
)r
m
+ (c
D)x +
d +
M1
m=0
(
m
)
_
(P
m
)
( p
m
)
_
w
m
s.t. w
m
= Q
m
x, m = 0, . . . , M 1
Ax b
(7.18)
donde
m
= (
m
0
, . . . ,
m
T
).
Por otro lado, el dual del problema (7.16) est dado por
mn
b +
d
s.t.
M1
m=0
(
m
)
Q
m
+
A +
D = c
m
(
m
)
_
(P
m
)
( p
m
)
_
= 0
m
T
= 1
0
0
m
R
m
_
L
0
(7.19)
56
7.5. Resultados Computacionales Captulo 7
Por lo tanto, como
m
T
= 1, la funcin objetivo de (7.18) no depende de ningn r
m
,
ms an, se puede reemplazar w
m
= Q
m
x y se obtiene un problema Max-Closure.
Con este resultado se puede utilizar nuevamente el algoritmo pseudo-ow de Hochbaum
para resolver el sub-problema, lo cual es bueno considerando que, a pesar del gran tamao
de las instancias, el sub-problema se puede resolver ecientemente.
7.5. Resultados Computacionales
Con lo discutido anteriormente se pudo implementar la nueva versin del algoritmo
BZ que considera variaciones en los precios de los minerales, reutilizando gran parte del
algoritmo original. Adems, debido a la dicultad del problema, el tamao de la particin
crece rpidamente, por lo que se decidi agregar experimentos con Reset, el cual fue dis-
cutido en la Seccin 5.3.
Por disponibilidad de los datos slo se consideraron minas que poseen un tipo de mi-
neral. Las instancias que se utilizaron poseen una matriz P de variacin del precio del
mineral y un precio nominal p
+Pu, u
u 1.
Se sabe que el problema robusto asociado es
m ax r +c
x
s.t. r p
w p |
w = Qx
Ax b
Dx d
(7.20)
donde | = p [ u, u
u 1, p = p
w +c
x.
Como (w, x) estn jos, para calcular el peor caso basta resolver
mn
u
p
w + c
x [ p = p
+ Pu, u
u 1 = c
x + mn
u
(p
+Pu)
w [ u
u 1
= (p
w + c
x + mn
u
u
w [ u
u 1
= (p
w + c
x |P
w|
57
7.5. Resultados Computacionales Captulo 7
Peor Valor Valor Nominal Mejor Valor
Nombre
Determ. Robusta Determ. Robusta Determ. Robusta
mine_n 1.7381 1.9245 2.4486 2.3422 3.1591 2.7599
mine_mc_limit 81.4058 90.5321 132.4818 126.5713 183.5578 162.6104
mine_mc 105.6240 114.5729 151.2943 146.4474 196.9646 178.3220
Cuadro 7.1: Resultados obtenidos (todos en base 10
7
) para el problema de optimizacin
robusta. Se muestran 2 soluciones: la solucin determinista y la solucin robusta, las cuales
se obtuvieron del problema original (sin incertidumbre) y del problema que considera in-
certidumbre, respectivamente. Para ambas soluciones se muestra el Peor Valor de solucin
al considerar la incertidumbre, el Valor Nominal y el Mejor Valor.
Anlogamente, para calcular el mejor caso:
m ax
u
p
w + c
x [ p = p
+ Pu, u
u 1 = (p
w + c
x + max
u
u
w [ u
u 1
= (p
w + c
x +|P
w|
Por lo tanto, dada una solucin (w, x), su mejor valor, valor nominal y peor valor son
respectivamente
(p
w +c
x +|P
w|
(p
w +c
x
(p
w +c
x |P
w|
En el Cuadro 7.1 se presentan los resultados obtenidos para el problema robusto en
comparacin a los resultados obtenidos para el problema sin considerar variacin en los
precios, para las instancias donde estaban disponibles los datos. Se llamarn soluciones
deterministas a las soluciones obtenidas sin considerar variacin en los precios (modelo
determinista) y soluciones robustas a las soluciones que consideran dicha variacin.
Con respecto a los valores obtenidos, se puede observar la importancia de usar un
modelo que considere incertidumbre. En el peor caso, las soluciones deterministas tienen
un valor aproximadamente de un 10 % peor que las soluciones robustas, lo cual puede ser
malo, dependiendo del riesgo en el que se desea incurrir. Si a esto se le agrega que el valor
nominal de las soluciones robustas son aproximadamente un 4 % peores que el ptimo (que
es la solucin determinista), vale la pena considerar la solucin robusta, sobre todo si la
compaa es adversa al riesgo. El Mejor Valor obtenido por las soluciones tiene este mismo
tipo de relacin (lo cual se ve claramente en las frmulas respectivas), es decir, la solucin
robusta es aproximadamente un 10 % peor que la solucin determinista. Esto ilustra un
hecho simple y intuitivo: al considerar incertidumbre y tratar de mejorar el peor caso,
se obtiene una solucin un poco peor en cuanto a su valor nominal, pero con un riesgo
considerablemente menor a las obtenidas usando enfoques deterministas tradicionales.
En el Cuadro 7.2 se muestran los tiempos que tom resolver cada instancia. En esta
58
7.5. Resultados Computacionales Captulo 7
Nombre BZ Original BZ Cnico BZ Cnico - RST
mine_n 0.1 1.08 -
mine_mc_limit 201.1 11101.52 4910.37
mine_mc 333.62 366411.38 12418.52
Cuadro 7.2: Tiempos (en segundos) de ejecucin del algoritmo BZ en su versin original
y cnica, donde esta ltima fue implementada para el caso de optimizacin robusta dis-
cutido. Adems se agregan los tiempos obtenidos al usar Reset en el algoritmo BZ Cnico
con un umbral de 1000 segundos; la primera instancia no posee un valor pues no alcanz
a aplicar Reset.
tabla tambin se muestran los tiempos utilizados por la versin original del algoritmo pa-
ra tener una referencia. Adems se agreg una columna que indica los resultados obtenidos
al agregar Reset, ya que se observ que el problema master se torna difcil de resolver muy
rpidamente.
De los tiempos obtenidos se puede notar claramente el aumento drstico en la dicultad
del problema. El tiempo necesario para resolver el problema cnico es considerablemente
mayor al tiempo que toma el algoritmo original, lo cual era esperable. A pesar de esto,
los tiempos obtenidos son bastante buenos para la dicultad del problema.
Por otra parte Reset mostr ser fundamental al momento de reducir el tamao del proble-
ma master. En instancias donde anteriormente no haba sido necesario aplicar Reset ahora
se vuelve de suma importancia considerarlo. Con este speed-up se pudo reducir drstica-
mente el tiempo de ejecucin del algoritmo para ambas instancias donde se aplic, lo cual
es una buena seal para otras instancias que se consideren a futuro.
59
Captulo 8
Conclusiones y Trabajo Futuro
Con este trabajo se estudi e implement satisfactoriamente un algoritmo capaz de
resolver la relajacin lineal del problema de planicacin minera. Este algoritmo, desa-
rrollado por D. Bienstock y M. Zuckerberg, es capaz de explotar la estructura de las
soluciones ptimas del problema, tratando de adivinarla y actualizando esta adivinanza
iteracin tras iteracin. Esto lo hace un algoritmo muy interesante y, adems de ya haber
mostrado una gran eciencia en este problema especco, vale la pena estudiarlo desde un
punto de vista ms general para as intentar aplicarlo a otro problema.
Por otra parte, el problema de planicacin minera presenta mucha estructura, y no
slo sus soluciones ptimas, sino que tambin el grafo que representa el problema PCP
by
.
Esto permiti desarrollar speed-ups al algoritmo BZ que aprovecharan esta estructura
para hacer que el algoritmo resuelva problemas ms pequeos en cada paso (Implicit
Representation, Time Shrink, One Destination Shrink) y junto con otros speed-ups ms
generales (como todos los Warm Starts y el Preproceso) resultaron aumentar drsticamen-
te la eciencia de este algoritmo. Si bien no se pudo determinar en general cul conjunto
de speed-ups es mejor, se opt por elegir ALL-T como el conjunto que ser utilizado
por defecto en cada llamada al algoritmo, debido a su robustez sobre las instancias (no
necesita tantos supuestos como ALL-C) y su tendencia a ser ms rpido en instancias
ms grandes. Esto ltimo a pesar de no poder resolver una instancia que si pudo resolver
ALL-C, pero afortunadamente al considerar Reset esto se pudo reparar.
Desde un punto de vista aplicado, esto ltimo es uno de los grandes aportes hechos
por este trabajo: aprovechar la estructura y propiedades de las instancias que denen el
problema de planicacin minera para desarrollar un algoritmo eciente que pueda re-
solver la relajacin lineal de dicho problema, ya sea para obtener una cota superior del
problema de programacin entera, o para guiar la construccin de una solucin factible
como se hizo en el Captulo 6. El algoritmo propuesto originalmente funciona muy bien,
pero aprovechando dichas propiedades se puede obtener un mejor resultado.
A pesar de todo, hubo una instancia que no pudo ser resuelta por problemas de memoria.
Esto resulta ser muy complicado de resolver, pues la instancia ni siquiera logra realizar
una iteracin. Quizs una implementacin an ms rigurosa del algoritmo, o usando es-
tructuras de datos ms elaboradas podran ayudar resolver este problema.
60
Captulo 8
Otra contribucin hecha por este trabajo es la obtencin de muy buenas soluciones fac-
tibles para el problema de programacin entera. Si bien resolver la relajacin lineal ya es
un problema desaante y de mucha importancia, obtener soluciones factibles es crucial
para la planicacin minera, y en este trabajo, adaptando y mejorando una heurstica
conocida, se pudo obtener resultados satisfactorios en muy poco tiempo: Gaps menores a
un 5 % en segundos para instancias de hasta cientos de millones de variables y miles de
millones de restricciones est lejos de ser trivial.
Y por ltimo, el otro gran aporte de este trabajo ha sido la aplicacin de la generali-
zacin algoritmo BZ a un contexto ms general, en este caso, proponiendo un algoritmo
generalizado a problemas cnicos, y aplicndolo a un nuevo modelo que considere robustez
en las soluciones frente a variaciones en los datos. Este es un problema real muy impor-
tante debido a las uctuaciones de los precios de los minerales, por lo cual es necesario
contar con soluciones que aseguren un nivel de ingreso mnimo. A pesar de contar con una
fuente limitada de instancias, se pudo observar que el algoritmo propuesto funciona muy
bien, pudiendo resolver ecientemente un problema de alta complejidad. Cabe mencionar
que en este caso Reset tuvo un rol mucho ms notorio que antes debido a la rapidez con
la crece el tamao de la particin, lo que lo hizo fundamental al momento de resolver
rpidamente las instancias disponibles.
Como continuacin a este trabajo, sera interesante tomar este mismo esquema de Optimi-
zacin Robusta y aplicarlo a un problema tan estudiado como es considerar incertidumbre
geolgica de la mina, para comparar cmo funcionara este algoritmo frente a los algo-
ritmos ya propuestos para este problema. Otra continuacin importante sera usar esta
generalizacin para abordar otros problemas de optimizacin a gran escala y/o proble-
mas de gran complejidad como son los problemas cnicos, que posean buenas relajaciones
simples de resolver, lo que nos permitira usar la generalizacin propuesta.
61
Apndice A
El Mtodo de Dantzig-Wolfe y
Generacin de Columnas
En muchas aplicaciones de Optimizacin a gran escala las restricciones de los modelos
poseen estructuras especiales que pueden ser explotadas. Por ejemplo, sub-sistemas de
variables y restricciones independientes que son unidos por otro conjunto de restricciones
o variables, o simplemente conjuntos de restricciones complicadas que si pudieran ser
eliminadas reduciran considerablemente la dicultad del problema.
En este Apndice se detallarn los mtodos de Generacin de Columnas y la Descom-
posicin de Dantzig-Wolfe para problemas de programacin lineal, tcnicas que son usa-
das para abordar problemas como los mencionados anteriormente. Para una revisin ms
detallada de estos mtodos ver [28].
A.1. Generacin de Columnas
Generacin de Columnas es uno de los mtodos ms usados hoy en da para lidiar
con problemas que poseen gran cantidad de variables. Este mtodo fue usado por primera
vez por Gilmore y Gomory (1961) como parte de un algoritmo para resolver el problema
cutting-stock [19].
Sea J un conjunto de variables (columnas). Si se considera el siguiente problema de opti-
mizacin
mn
jJ
c
j
x
j
s.t.
jJ
a
j
x
j
b
x
j
0, j J
(A.1)
entonces en cada iteracin del algoritmo Simplex se busca una variable no-bsica con
costos reducidos negativos para entrar a la base. En otras palabras, dado el vector de
variables duales u 0, se desea buscar
arg mn c
j
= c
j
u
a
j
[ j J. (A.2)
Si se tiene que J es muy grande, entonces encontrar una columna que deba entrar a
la base se vuelve un problema no-trivial. Adems, por los mismos motivos, tpicamente se
62
A.2. Descomposicin para problemas de Programacin Lineal Captulo A
trabaja con un subconjunto de variables J
a [ a /. (A.3)
Este ltimo problema se conoce como el sub-problema o el generador de columnas, y tiene
la ventaja de resolver un problema de Optimizacin en vez de revisar todas las columnas
como en (A.2), lo cual puede ser de gran utilidad si es que el conjunto / representa
elementos con mucha estructura, como objetos combinatoriales por ejemplo.
A.2. Descomposicin para problemas de Programacin
Lineal
El mtodo de Dantzig-Wolfe [10] ha sido ampliamente utilizado en problemas de pro-
gramacin lineal a gran escala que poseen cierta estructura especial. Si se considera un
problema de programacin lineal
mn c
x
s.t. Ax b
Dx d
(A.4)
y se dene P
A
= x R
n
[ Ax b (que por simplicidad se asumir acotado), entonces
se puede denir p
q
qQ
como el conjunto de puntos extremos de P
A
y reescribir cada
x P
A
como
x =
qQ
p
q
q
para ciertos multiplicadores
q
tales que
qQ
q
= 1 . Sustituyendo esto en (A.4), y
deniendo D
q
= Dp
q
y c
q
= c
p
q
se obtiene el problema equivalente
mn
qQ
c
q
q
s.t.
qQ
D
q
q
d
q
= 1
(A.5)
Tpicamente Q es un conjunto grande, pero la ventaja que tiene el problema (A.5)
es que posee menos restricciones que el problema (A.4), donde las restricciones Ax b
fueron reemplazadas por
q
= 1, la que se conoce como restriccin de convexidad.
Adems, para lidiar con el tamao de Q, se puede usar Generacin de Columnas, donde
cada columna est asociada a punto extremo p
q
.
63
A.2. Descomposicin para problemas de Programacin Lineal Captulo A
En efecto, si se considera el mismo procedimiento que en la seccin anterior, y se ob-
tienen duales u y v ptimos para el problema (A.5) restringido a un conjunto Q
Q
(donde v es el dual correspondiente a la restriccin de convexidad), entonces es fcil ver
que para encontrar una columna con costo reducido negativo se debe resolver
mn(c
D)x v [ Ax b. (A.6)
lo cual entregar un nuevo punto extremo de P
A
para ser agregado al conjunto de colum-
nas. Este ltimo es un problema de programacin lineal, el cual es fcil de resolver si es
que se supone que el poliedro P
A
es escogido adecuadamente.
En resumen, el mtodo de Dantzig-Wolfe permite resolver un problema de tipo (A.4)
usando Generacin de Columnas mediante la resolucin del problema (A.5) restringido a
un conjunto pequeo de columnas Q