Modelos de optimizaci on entera y su aplicaci on al ...

47
FACULTAD DE CIENCIAS DEPARTAMENTO DE MATEM ´ ATICAS Modelos de optimizaci´on entera y su aplicaci´on al problema de asignaci´ on anual de tareas en una compa˜ ıa. Proyecto de Grado presentado por: Juliana Arango Calder´ on Director: Mauricio Junca Diciembre 2013

Transcript of Modelos de optimizaci on entera y su aplicaci on al ...

Page 1: Modelos de optimizaci on entera y su aplicaci on al ...

FACULTAD DE CIENCIAS

DEPARTAMENTO DE MATEMATICAS

Modelos de optimizacion entera y su aplicacion al problema deasignacion anual de tareas en una companıa.

Proyecto de Grado presentado por:Juliana Arango Calderon

Director: Mauricio Junca

Diciembre 2013

Page 2: Modelos de optimizaci on entera y su aplicaci on al ...

RESUMEN

En este trabajo de grado se presenta una revision sobre la formulacion de modelos de optimi-zacion entera y los algoritmos de Branch-and-Bound, Cutting-Planes y Branch-and-Cut para lasolucion de modelos de optimizacion entera. En particular para el algoritmo de Cutting-Planes seestudian: Gomory’s Fractional Cuts y algunas 0-1 Knapsack Inequalities. Tambien se presentanformulaciones matematicas del problema de elaboracion del cronograma de trabajo para unacompanıa, como modelos de optimizacion entera, teniendo en cuenta las condiciones tecnicascomo precedencia entre tareas, duracion de las tareas, periodicidad de las tareas y asignacion endiferentes zonas geograficas, con el fin de minimizar los costos de la asignacion de manera que eltotal de dıas asignados para la realizacion de las tareas sea lo mas cercano a un numero de dıasespecıfico. Se implementaron las formulaciones en el lenguaje de programacion del optimizadorXpress-MP y se compararon los resultados y el tiempo que tardo en llegar a estos utilizando lasdiferentes formulaciones.

In this work is present a review about the formulation of integer optimization models andthe algorithms of Branch-and-Bound, Cutting-Planes and Branch-and-Cut for solving integeroptimization models. In particular for the algorithm of Cutting -Planes we study: Gomory’sFractional Cuts and some 0-1 Knapsack Inequalities. There are also present mathematical for-mulations for a task scheduling problem of a company, as models of integer optimization, thattake in count technical conditions like precedence between tasks, lasting time of tasks, taskperiodicity and task allocation in different geographical areas, for minimizing the total cost oftasks scheduling such that the total days assigned for the execution of the tasks is the nearestpossible to a determined number of days. These different formulations were implemented on theprograming language of the optimization suit Xpress-MP and the results and computationaltimes were compared.

1

Page 3: Modelos de optimizaci on entera y su aplicaci on al ...

Indice

Resumen 1

1. Introduccion 3

2. Modelos de Optimizacion Lineal 42.1. Metodo Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2. Tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3. Modelos de Optimizacion Entera 63.1. Formulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2. Algoritmos de Solucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2.1. Branch-and-Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2.2. Cutting-Planes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.3. Branch-and-Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4. Caso de Aplicacion 284.1. Descripcion del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2. Modelo Matematico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.3. Resultados Computacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5. Conclusiones 45

Referencias 46

2

Page 4: Modelos de optimizaci on entera y su aplicaci on al ...

1. Introduccion

Un modelo de optimizacion lineal lo podemos escribir como:

Max{hy : Gy 6 b, y ∈ (R+)p}

Donde (R+)p es el conjunto de vectores columna de tamano p × 1 de reales no negativos yy = (y1, . . . , yp) es un vector columna con las variables de decision. Una instancia de este pro-blema se especifica con los datos (h,G, b) en la cual h es un vector fila de tamano 1×p, G es unamatrız de tamano m×p y b es un vector columna de tamano m×1. (Nemhauser & Wolsey, 1999).

Y un modelo de optimizacion entera serıa:

Max{cx : Ax 6 b, x ∈ (Z+)n}

Donde (Z+)n es el conjunto de vectores columna de tamano n × 1 de enteros no negativos yx = (x1, . . . , xn) es un vector columna con las variables de decision. Una instancia de este pro-blema se especifica con los datos (c, A, b) en la cual c es un vector fila de tamano 1×n, A es unamatrız de tamano m×n y b es un vector columna de tamano m×1. (Nemhauser & Wolsey, 1999).

Su principal diferencia es que en optimizacion entera las variables de decision solo pueden tomarvalores enteros. Esto hace que hallar una solucion optima a estos problemas sea mas difıcil. Poresta razon se han desarrollado algoritmos de solucion especıficos para estos casos, que se dividenen tres tipos: algoritmos exactos, algoritmos de aproximacion y heurısticas. Hasta el momentono se conoce un algoritmo eficiente para resolver estos problemas dado que con los algoritmosexactos se llega al optimo pero pueden tomar un numero exponencial de iteraciones llegar a este,los algoritmos de aproximacion proporcionan una solucion suboptima en un tiempo polinomialy una cota en el grado de suboptimalidad, y en las heurısticas la solucion obtenida es suboptimapero no esta dentro de algun rango y no hay garantıas en el tiempo de solucion. (Bertsimas &Tsitsiklis, 1997). En este texto se hara referencia a los algoritmos exactos de Branch-and-Bound,Cutting-Plane y Branch-and-Cut.

Desde hace algun tiempo los modelos de optimizacion entera se han utilizado para solucionarproblemas como el flujo de objetos en una red, que objetos llevar en una mochila con capacidadlimitada, asignacion de personal para realizar alguna tarea o elaboracion de cronogramas de tra-bajo. Pues bien, especıficamente vamos a considerar el problema de elaboracion de cronogramasde trabajo para una companıa, que debe decidir que dıa realizar las tareas correspondientes aun servicio que presta en una ciudad durante un horizonte de tiempo.

Mediante la formulacion de este problema como un problema de programacion entera se ha-llara una solucion (calendario de realizacion de las tareas), teniendo en cuenta que: estas tareasdeben programarse de forma secuencial, el horizonte de tiempo esta dividido en s periodos porende cada tarea se debe realizar s veces, debe haber al menos d dıas entre dos tareas, la tareai debe realizarse nuevamente en n dıas, ciertas tareas no se pueden realizar el mismo dıa peroalgunas “ tareas cortas ” si. Adicionalmente se cuenta con que la ciudad se ha dividido en zzonas y durante un periodo se deben realizar todas las tareas en cada una de las zonas y lamisma tarea no se puede asignar el mismo dıa en dos zonas distintas.

Los objetivos de este proyecto son: 1) estudiar y comprender teoricamente la formulacion de losproblemas de optimizacion entera teniendo en cuenta conceptos como tipos de formulacion yalgoritmos de solucion, 2) realizar la formulacion matematica del problema de elaboracion del

3

Page 5: Modelos de optimizaci on entera y su aplicaci on al ...

cronograma de trabajo, 3) implementar la formulacion en el lenguaje de programacion del opti-mizador Xpress-MP para encontrar la planeacion optima, y 4) comparar las soluciones obtenidasy el tiempo que tardo llegar a estas utilizando diferentes formulaciones.

2. Modelos de Optimizacion Lineal

Cuando se tiene un problema de optimizacion los pasos que se deben seguir son los definidospor Martın (2003, p.26):

1. Definir el significado cuantitativo de las variables de decision (y1, y2, . . . , yn).

2. Establecer la funcion objetivo cuyo valor se desea maximizar (utilidad, rendimiento,ingreso, produccion) o bien minimizar (costo, tiempo, mano de obra, inventario).

3. Establecer las restricciones que limitan el valor optimo que puede tomar la funcionobjetivo. Las restricciones que pueden presentarse son del tipo:i) Si no se debe exceder del recurso disponible (6).ii) Para no menos de lo requerido (>).iii) Para igualar el recurso especificado (=).

4. Resolver el problema y analizar la solucion.

En particular se estudiara el metodo Simplex, publicado por George Dantzing en 1947, y surepresentacion en forma de Tableau para resolver los problemas de optimizacion lineal.

2.1. Metodo Simplex

Considere el problema de optimizacion lineal:

Max{hy : Gy 6 b, y ∈ (R+)p}

El metodo Simplex consiste en recorrer los puntos extremos de la region factible determinadapor las restricciones del problema y comparar el valor de la funcion objetivo de estos puntospara determinar el optimo.

Los pasos de este metodo son (Martın, 2003):

1. Dado que las restricciones se encuentran en forma de desigualdad (6) es necesario convertirlasen igualdades. Esto se hace introduciendo las variables de holgura. Este procedimiento consisteen sumar una variable si, i ∈ {1, . . . ,m} a la restriccion i. El vector de variables de decisionse convertirıa en: y = (y1, . . . , yp, s1, . . . , sm), la matriz G (cuyo tamano es m × p ) tendrıa mcolumnas mas las cuales toman valor de 1 en la posicion i y 0 en el resto (es decir que ahoratenemos una matriz G cuyo tamano es m× p+m) y el vector h serıa de tamano 1× p+m conceros desde la posicion p+ 1 hasta la p+m.

2. Calcular una primera solucion factible basica. Dado que anadimos las variables de holguraa todas las restricciones ya tenemos una solucion basica factible inicial que esta compuesta porlas variable s1, . . . , sm.En los casos en los que algunas de las restricciones iniciales del problema no fueran una de-sigualdad sino una igualdad se deben anadir variables artificiales. Este procedimiento consiste

4

Page 6: Modelos de optimizaci on entera y su aplicaci on al ...

en anadir las variables de decision que sean necesarias hasta tener una base canonica. Para estasvariables el coeficiente que acompana esta variable en la funcion objetivo van a tomar el valorM , si se esta minimizando, y −M , si se esta maximizando, suficientemente grande; esto con elfin de evitar que la solucion optima al problema considere las variables artificiales.

3. Ahora se debe determinar si existe una solucion basica factible adyacente que sea mejor.Esto se hace cambiando las variables de decision que se encuentran en la base y comparando elvalor de la funcion objetivo. Si hay uno solucion mejor se miran las soluciones basicas factiblesadyacentes y se comparan los valores de la funcion objetivo, pero si no hay una solucion mejorla solucion basica factible actual es optima.

Las preguntas que surge ahora son: ¿como determinar cuales son las variables de decision quedeben estar en la base?, ¿se debe mirar el valor de la funcion objetivo en todos los puntosextremos?, ¿como encontrar una solucion basica factible adyacente? Utilizando la representaciondel problema de optimizacion en forma de Tableau se mostrara como se hacen los calculos paraencontrar el optimo utilizando el metodo Simplex.

2.2. Tableau

La representacion inicial del problema de optimizacion en forma de Tableau para utilizar elmetodo simplex serıa la siguiente:

Donde en la primera columna estan las variables de decision que se encuentran en la base, y −hindica que los valores que se encuentran en esa fila son el negativo de los coeficientes que aparecenen el vector h para cada una de las variables de decision. La primera fila tienen todas las variablesde decision, y b indica que en esta columna se tienen los valores del vector b. En la parte centralse tienen los valores de la matriz G. Y la casilla de color amarillo es el valor de la funcion objetivo.

Lo primero que hay que saber es como determinar si se esta en el optimo. Si los valores queaparecen en la fila −h son mayores o iguales a cero (si se esta maximizando) o menores o igualesa cero (si se esta maximizando), se tiene una solucion basica factible optima. De no ser ası hayque decidir cual variable de decision va a entrar a la base.

En un problema de maximizacion la que tenga el mayor valor en −h va a ser la ingrese a la basey en un problema de minimizacion la que tenga menor valor. Este valor en −h indica cual es lavariable que va a generar un mayor cambio en el valor de la funcion objetivo, por eso esta es laque debemos incluir en la base.

Ahora hay que determinar cual variable va a salir de la base. Se calcula para cada una de lasvariables que se encuentran en la base el cociente entre el valor que se encuentran en la columnade b y el que se encuentra en la columna de G de la variable que ha sido seleccionada para entrar

5

Page 7: Modelos de optimizaci on entera y su aplicaci on al ...

a la base, se elige la variable que tenga el mayor coeficiente (siempre y cuando este valor seapositivo). Este coeficiente representa el maximo valor que puede tomar la variable que entra ala base sin violar la restriccion de no negatividad.

Sea yk la variable de decision que entra a la base y sj la que sale,

ahora cambia la variable sj por yk, se dividen todos los terminos de la fila sj por el valor gjk yse realizan operaciones de multiplicacion, suma y resta entre las filas de tal manera que el restode los valores que queden en la columna de yk sean 0.

Se mira si los coeficientes que se encuentran en la fila de −h cumplen las condiciones de optima-lidad. Si las cumplen se ha llegado al Tableau optimal y los valores que aparecen en la columnade b son los valores que toman las variables de decision y z el valor de la funcion objetivo enel optimo. Si no se cumplen las condiciones de optimalidad se vuelve a hacer el procedimientodescrito anteriormente con los valores que se encuentran en el ultimo Tableau.

Cuando se tienen variables artificiales el procedimiento es exactamente igual solo que con losvalores correspondientes a las variables artificiales.

El Ejemplo 2 muestra los pasos del Tableau del metodo Simplex para resolver un problemalineal.

3. Modelos de Optimizacion Entera

Considere el modelo de optimizacion entera:

Max{cx : Ax 6 b, x ∈ (Z+)n}

6

Page 8: Modelos de optimizaci on entera y su aplicaci on al ...

3.1. Formulacion

Como dicen Nemhauser y Wolsey (1999) “In integer programming, formulating a “good” mo-del is of crucial importance for solving the model” (p. 14). Un modelo esta determinado porlas variables de decision, la funcion objetivo y las restricciones. Al realizar la formulacion de unmodelo de optimizacion primero se decide cuales van a ser las variables de decision y despues de-pendiendo de las condiciones particulares se construyen (A, b) que representan las restricciones ((A, b) son los elementos mas importante de la formulacion). La cantidad de variables de decisiony el numero de restricciones hacen que un problema sea facil o difıcil de resolver. (Nemhauser& Wolsey, 1999).

A pesar de saber que el tiempo computacional aumenta y la factibilidad de la solucion disminu-ye a medida que el numero de restricciones aumenta, pensar en una formulacion con el menornumero de restricciones no siempre es lo mejor. (Nemhauser & Wolsey, 1999).

Cuando ya se tiene una formulacion para un problema sumar desigualdades logicas, fijar los valo-res de algunas variables de decision y quitar restricciones redundantes es util. Este procedimientose llama preprocesamiento y se puede entender como un paso entre la formulacion y la solucion.Esto ayuda a que la solucion se encuentra mas rapido y la utilizacion de ciertos algoritmos desolucion sea eficiente; puesto que algunos de estos algoritmos no identifican que hay variables dedecision cuyos valores pueden ser fijados y por ende ser eliminadas del problema.(Nemhauser &Wolsey, 1999).

3.2. Algoritmos de Solucion

La mayorıa de los algoritmos utilizados para solucionar este problema requieren una cota inicialpara el valor de la funcion objetivo. La eficiencia de estos algoritmos depende directamente dela correcta seleccion de esta. (Nemhauser & Wolsey, 1999). Por lo general la cota utilizada es lasolucion al problema de forma lineal.

Max{cx : Ax 6 b, x ∈ (R+)n} (LP )

La region de soluciones factibles del problema relajado (de forma lineal) juega un papel fun-damental en el desarrollo de los algoritmos de solucion para problemas de optimizacion entera.Estos algoritmos achican la region factible cuando anaden restricciones. La idea es encontrar eloptimo en esta nueva region factible y ver si esta solucion es optima para el problema inicial.Hacer esto evita tener que explorar cada una de las soluciones enteras que se encuentran dentrode la region factible del problema inicial, lo cual es bueno ya que explorar una a una las solu-ciones es ineficiente en muchos casos.

Para ver esto consideremos el siguiente ejemplo:

Ejemplo 1:

X = {x ∈ (Z+)2 : Ax 6 b} y P = {x ∈ (R+)2 : Ax 6 b}, con: A =

−1 25 1−2 −2

y b =

620−7

X = {(1, 3), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (4, 0)} y P como se observa en la siguien-te imagen.

7

Page 9: Modelos de optimizaci on entera y su aplicaci on al ...

Ahora tomando X = {x ∈ (Z+)2 : Ax 6 b} y P = {x ∈ (R+)2 : Ax 6 b}, con: A =

−1 25 1−2 −24 5

y b =

620−730

. X = {(1, 3), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (4, 0)} y P como se observa en

la imagen.

Agregar una restriccion hizo que la region factible se achicara. Esto es deseable cuando queremosencontrar la solucion a un problema entero. Si eliminamos todas las partes de la region factibledel problema relajado que no contengan ninguna solucion entera encontrarıamos la envolventeconvexa (convex hull), que es el subconjunto de la region factible inicial mas pequeno que contienetodas las soluciones enteras del problema. Para el ejemplo anterior serıa ası:

8

Page 10: Modelos de optimizaci on entera y su aplicaci on al ...

Si tenemos la envolvente convexa de un problema identificada encontrar una solucion al proble-ma entero se convierte simplemente en solucionar el problema LP asociado a esta nueva regionfactible.

A continuacion se explican 3 algoritmos que funcionan de esta manera: Branch-and-Bound,Cutting-Planes y Branch-and-Cut.

3.2.1. Branch-and-Bound

De forma general este algoritmo lo que hace es descomponer el problema inicial P0 en proble-mas parciales cada vez mas finos. Esta descomposicion esta representada por un arbol finitoB = (N,A), donde N es un conjunto de nodos con raız P0, y A es un conjunto de arcos. Cadauno de los nodos Pi ∈ N es un problema parcial, y (Pi, Pj) ∈ A significa que Pj es generado porPi por medio de una descomposicion. (Ibaraky, 1976)

Este algoritmo se describe de la siguiente manera (Nemhauser & Wolsey, 1999):

Inicializacion:Solucion al problema de optimizacion de forma lineal LP. (P0)Region factible inicial: S0

LP = {x ∈ (R+)n : Ax 6 b}Valor de la funcion objetivo en el optimo: z0LP = Max{cx : x ∈ S0

LP }

Refinamiento:Solucion al problema LP i. (Pi)Region factible en la iteracion i -esima: SiLP = {x ∈ (R+)n : Aix 6 bi}Valor de la funcion objetivo en el optimo: ziLP = Max{cx : x ∈ SiLP }

Para poder determinar cual es SiLP , la region factible en cada uno de los problemas Pi, se tienenen cuenta las siguientes estrategias:

Estrategia de Ramificacion

Si S0LP es la region factible inicial, sea S1

LP = S0LP ∩{x ∈ R+

n : dx 6 d0}, S2LP = S0

LP ∩{x ∈R+n : dx > d0 + 1} y (d, d0) ∈ Z+

n+1.Si x∗ es la solucion al problema con la region factible S0

LP y z0LP el valor de la funcion

9

Page 11: Modelos de optimizaci on entera y su aplicaci on al ...

objetivo, podemos escoger (d, d0) de tal forma que d < dx∗ < d0 + 1, dado que lo que sebusca es que x∗ /∈ S1

LP ∪S2LP por lo tanto para i ∈ {1, 2}, ziLP = max{cx : x ∈ SiLP } < z0LP .

Note que⋃i

SiLP ⊆ S0LP .

Por medio de este proceso se construye un arbol, ramificando cada uno de los nodos, elcual se verıa de la siguiente manera si tambien ramificamos el nodo S2

LP :

Estrategia de Acotamiento

Sea ziLP una cota superior y ziLP una cota inferior para ziLP .

ziLP es el valor de la funcion objetivo en el optimo para el problema LP i y ziLP es −∞ amenos que se encuentre una solucion entera para el priblema LP i, en cuyo caso ziLP=ziLP .

Sea z = max{ziLP } una cota inferior para z el valor de la funcion objetivo en el optimopara el problema entero.

Si estuvieramos en un caso de minimizacion ziLP serıa el valor de la funcion objetivo en eloptimo para el problema LP i y ziLP es +∞ a menos que se encuentre una solucion enterapara el problema LP i, en cuyo caso ziLP=ziLP , y definirıamos z = max{ziLP } una cotasuperior para z el valor de la funcion objetivo en el optimo para el problema entero.

Estrategia de Poda

El nodo asociado a SiLP en el arbol es podado (deja de ser un candidato a descomponerse)si alguna de las siguientes condiciones, llamadas condiciones de poda, vale para SiLP :a) SiLP = {∅} (Infactibilidad del problema)b) xi ∈ Z+

n , donde xi solucion optima en LP i (Solucion entera)c) ziLP 6 z

En resumen esta estrategia de poda esta determinando cuando esta activo un nodo en elarbol, es decir cuando este puede ser un candidato a ser explorado o a descomponerse.

Estrategia de Seleccion de Nodo

Cuando se tiene el arbol la pregunta que surge es como decidir cual va a ser el nodo SiLPque se va a descomponer. Para esto Nemhauser y Wolsey (1999) determinan dos reglasbasicas: a) Regla de Prioridad y b) Regla de adaptacion. La primera dice el orden en el quese va desarrollar el arbol (cual es el primer nodo a considerar si un nodo no es podado) y

10

Page 12: Modelos de optimizaci on entera y su aplicaci on al ...

la segunda determina cual nodo se va a seleccionar utilizando informacion que se conozcasobre estos.

Las reglas de prioridad y de adaptacion comunmente utilizadas son “depth-first search plusbacktracking”. Depth-first search se refiere a que si un nodo no ha sido podado el siguientenodo a considerar es uno de sus dos “hijos”, y “backtracking” quiere decir que cuando unnodo es podado, se mira el camino hacia atras de este nodo a su raız hasta que se encuentreel primer nodo que no haya sido considerado. Pero esta forma de seleccionar el siguentenodo a explorar no funciona todas las veces ya que no siempre estos son los mejores. Porlo tanto otra regla se adaptacion es seleccionar el nodo con el mayor valor de la funcionobjetivo ziLP (“best first”).

Estrategia de Seleccion de Variable

Ya seleccionado un nodo, hay que decidir cual va a ser la variable a utilizar para definirla descomposicion. Sea xi la solucion al problema relajado LP i hallada con el metodoSimplex, sea B la base optima asociada y sea N el conjunto de ındices de la variables nobasicas. Partimos el vector xi en xB variables basicas y xN variables no basicas. Evidenciaempırica ha demostrado que la seleccion de variables xj tales que j ∈ N ayuda a disminuirel tiempo de corrida del algoritmo.

Esta estrategia hace que d ∈ (Z+)n mencionado en la estrategia de ramificacion sea unvector fila que vale 1 en la posicion de la variable xj seleccionada y 0 en el resto deposiciones, y d0 ∈ (Z+)n sea un vector columna que vale baj0c en la posicion de la variablexj seleccionada, con aj0 = (B−1b)j , y 0 en el resto de posiciones.

Ejemplo 2: (Wolsey, 1998)

Considere el problema Max{cx : Ax 6 b, x ∈ (Z+)2}, con c = (4 − 1), A =

7 −20 12 −2

y b =

1433

.

Para inicializar el algoritmo de Branch-and-Bound debemos encontrar la solucion al problemade forma lineal: Max{cx : Ax 6 b, x ∈ (R+)2}. Utilizando el metodo Simplex, haciendo lospasos del tableau obtenemos:

11

Page 13: Modelos de optimizaci on entera y su aplicaci on al ...

Entonces la cota superior z = 597 , la cota inferior z = −∞ y (x1, x2) = (207 , 3).

Como z 6 z necesitamos ramificar o descomponer. Como x1 /∈ (Z+)1 podemos tomar S1LP =

S0LP ∩ {x : x1 6 bx1c} y S2

LP = S0LP ∩ {x : x1 > dx1e}. Note que la solucion (x1, x2) = (207 , 3) no

es factible en S1LP o en S2

LP . Hasta el momento el arbol serıa el siguiente:

Ahora tenemos dos nodos activos en el arbol. Escogemos arbitrariamente el nodo S1LP y re-

solvemos el problema lineal asociado a este nodo. La restriccion que estamos anadiendo esx1 6 2 −→ x1 + s4 = 2 y en terminos de las variables no basicas esta desigualdad serıa igual a−1

7s1 −27s2 + s4 = −6

7 . Anadimos esta nueva restriccion al tableau optimal que tenıamos antesy solucionamos.

Entonces z1LP = 152 , y (x1

1, x21) = (2, 12). S1

LP no puede ser podado pues: no es infactible, notiene una solucion entera y no pasa que z1LP 6 z, luego debemos ramificar. Como x2 /∈ (Z+)1

podemos tomar S3LP = S1

LP ∩ {x : x2 = 0} y S4LP = S1

LP ∩ {x : x1 > 1}.

12

Page 14: Modelos de optimizaci on entera y su aplicaci on al ...

Resolvemos el problema para el nodo S2LP de la misma manera que se hizo para el nodo S1

LP .Agregamos la restriccion x1 > 3 −→ x1 − s5 = 3 que en terminos de las variables no basicas es17s1 + 2

7s2 + s5 = −17 . El tableau asociado serıa:

Pero este problema es infactible, luego S2LP es podado. Resolvemos el poblema para el nodo S4

LP

y optenemos que (x14, x2

4) = (2, 1) y z4LP = 7, como (x14, x2

4) es una solucion entera el nodo espodado y z4LP = z4LP . Se actualiza el valor de z = max{−∞, 7} = 7. Solucionando el problemaasociado al nodo S3

LP y se tiene que (x13, x2

3) = (32 , 0) y z3LP = 6, como z3LP 6 z el nodo es poda-do. Como ya no hay nodos para explorar la solucion optima del problema es x = (2, 1) con z = 7.

En una grafica las restricciones iniciales del problemas y las que se estan agregando se verıanası:

13

Page 15: Modelos de optimizaci on entera y su aplicaci on al ...

3.2.2. Cutting-Planes

Este algoritmo es descrito por Nemhauser y Wolsey (1999) de la siguiente manera:

Inicializacion:Solucion al problema de optimizacion de forma lineal LPRegion factible inicial: S1

R = {x ∈ (R+)n : Ax 6 b}

Refinamiento:Solucion al problema LP t+1

Region factible: St+1R = StR ∩ {x ∈ (R+)n : πtx 6 πt0} donde (πt, πt0) representa una desigualdad

valida.

Para entender bien este algoritmo debemos saber que son las desigualdades validas para losproblemas enteros (Wolsey,1998):

Definicion 1: Una desigualdad πx 6 π0 es una desigualdad valida para X si ∀x ∈ X,X ⊆Rn, πx 6 π0.

Las desigualdades validas tambien se conocen como cortes. Estos cortes deben cumplir que alser agregados al problema:

1. La solucion al problema de optimizacion acual (LP t) se vuelva infactible.

2. Ninguna solucion entera factible se vuelva infactible.

Procedimiento de Chvatal-Gomory (Wolsey,1998):

Si tenemos el conjunto X = P ∩ (Z+)n, donde P = {x ∈ (R+)n : Ax 6 b}, donde A es una matizm× n con columnas {a1, a2, . . . , an} y u ∈ (R+)m, realizando los siguientes pasos obtenemos se

14

Page 16: Modelos de optimizaci on entera y su aplicaci on al ...

obtiene una desigualdad de Chvatal-Gomory.

(i) la desigualdad

n∑j=1

uajxj 6 ub es una desigualdad valida para P , si u > 0 y

n∑j=1

ajxj 6 b,

(ii) la desigualdadn∑j=1

buajcxj 6 ub es una desigualdad valida para P , si u > 0,

(iii) la desigualdadn∑j=1

buajcxj 6 bubc es una desigualdad de Chvatal-Gomory valida para X.

Proposicion 1: Todas las desigualdades validas para X se pueden obtener de aplicar el proce-dimiento de Chvatal-Gomory un numero finito de veces. (Wolsey,1998)

Demostracion:Veamos que esto es valido si xj ∈ {0, 1}, j ∈ {1, . . . , n}. Sea P = {x ∈ (R+)n : Ax 6 b, 0 6x 6 1} 6= ∅, X = P ∩ (Z+)n y suponga que πx 6 π0 , con π, π0 ∈ Z1 es una desigualdad validapara X. Vamos a ver que esta desigualdad es una desigualdad de Chvatal-Gomory, o de formaequivalente que se puede obtener aplicando el procedimiento de Chvatal-Gomory un numerofinito de veces.

Hecho 1:La desigualdad πx 6 π0 + t es una desigualdad valida para P para algun t ∈ (Z+)1.Demostracion:Si P esta acotado, entonces zLP = max{πx : x ∈ P} tambien, luego si tomamos t =dzLP e − π0, t ∈ (Z+)1, y πx 6 dzLP e es una desigualdad valida para P.

Hecho 2:Existe M ∈ (R+)1 lo suficientemente grande tal que:

πx 6 π0 +M∑j∈N0

xj +M∑j∈N1

(1− xj) (1)

es una desigualdad valida para P con (N0, N1) particion de N = {1, . . . , n}.Demostracion:Es suficiente mostrar que la desigualdad vale para todos los vertices x∗ de P .Si x∗ ∈ (Z+)n, la desigualdad πx 6 π0 vale pues x∗ ∈ X, y por lo tanto la ecuacion (1) vale.

Si x∗ /∈ (Z+)n,∃ α > 0 tal que∑j∈N0

x∗j +∑j∈N1

(1− x∗j ) > α, ∀(N0, N1) particion de N .

Tomando M > tα = dzLP e−π0

α , tenemos que Mα > t, entonces:

M∑j∈N0

x∗j +M∑j∈N1

(1− x∗j ) >Mα > t

Por lo tanto para todos los vertices x∗ de P :

πx∗ 6 π0 + t 6 π0 +M∑j∈N0

x∗j +M∑j∈N1

(1− x∗j )

Hecho 3:Si πx 6 π0 + τ + 1 es una desigualdad de Chvatal-Gomory para X con τ ∈ (Z+)1 entonces

15

Page 17: Modelos de optimizaci on entera y su aplicaci on al ...

πx 6 π0 + τ +∑j∈N0

xj +∑j∈N1

(1− xj) (2)

es una desigualdad de Chvatal-Gomory para X.Demostracion:Si aplicamos el procedimiento de Chvatal-Gomory con coeficientes (M−1)

M y 1M para las de-

sigualdades πx 6 π0 + τ + 1 y (1) respectivamente obtenemos la desigualdad (2).

Primero:

(M−1)M [πx 6 π0 + τ + 1] −→ (M−1)

M πx 6 (M−1)M π0 + (M−1)

M τ + (M−1)M

1M [πx 6 π0 +M

∑j∈N0

xj +M∑j∈N1

(1− xj)] −→1

Mπx 6

1

Mπ0 +

∑j∈N0

xj +∑j∈N1

(1− xj)

Sumando estos dos resultados obtenemos que:

πx 6 π0 + (M−1)M τ + (M−1)

M +∑j∈N0

xj +∑j∈N1

(1− xj)

Veamos que b (M−1)M τ + (M−1)M c = τ

(M−1)M τ + (M−1)

M = (M−1)M (τ + 1)

Si τ 6 (M−1)M (τ + 1) entonces Mτ 6 (M − 1)(τ + 1) = Mτ + M − τ − 1 y como M es lo

suficientemente grande, M − τ − 1 es positivo.

Entonces πx 6 π0 + τ +∑j∈N0

xj +∑j∈N1

(1− xj) es una desigualdad de Chvatal-Gomory.

Hecho 4:Si

πx 6 π0 + τ +∑

j∈T 0∪{p}

xj +∑j∈T 1

(1−xj) (3) y πx 6 π0 + τ +∑j∈T 0

xj +∑

j∈T 1∪{p}

(1−xj) (4)

Son desigualdades de Chvatal-Gomory paraX donde (T 0, T 1) es cualquier particion de {1, . . . , p−1}, p 6 n, entonces

πx 6 π0 + τ +∑j∈T 0

xj +∑j∈T 1

(1− xj)

es una desigualdad de Chvatal-Gomory para X.Demostracion:Apliquemos el procedimiento de Chvatal-Gomory con coeficientes 1/2 a las desigualdades (3)y (4):

12 [πx 6 π0 + τ +

∑j∈T 0∪{p}

xj +∑j∈T 1

(1−xj)] −→1

2πx 6

1

2π0 +

1

2τ +

1

2

∑j∈T 0∪{p}

xj +1

2

∑j∈T 1

(1−xj)

12 [πx 6 π0 + τ +

∑j∈T 0

xj +∑

j∈T 1∪{p}

(1−xj)] −→1

2πx 6

1

2π0 +

1

2τ +

1

2

∑j∈T 0

xj +1

2

∑j∈T 1∪{p}

(1−xj)

Sumando estos dos resultados obtenemos que:

16

Page 18: Modelos de optimizaci on entera y su aplicaci on al ...

πx 6 π0 + τ +∑j∈T 0

xj +∑j∈T 1

(1− xj) +1

2xp +

1

2(1− xp)

Sacando la parte entera de los terminos de la desigualdad anterior obtenemos que

πx 6 π0 + τ +∑j∈T 0

xj +∑j∈T 1

(1− xj)

es una desigualdad de Chvatal-Gomory.

Hecho 5:Si πx 6 π0 + τ + 1 es una desigualdad de Chvatal-Gomory para X, entonces πx 6 π0 + τ esuna desigualdad de Chvatal-Gomory para X.Demostracion:Como

πx 6 π0 + τ +∑

j∈T 0n∪{n}

xj +∑j∈T 1

n

(1− xj) y πx 6 π0 + τ +∑j∈T 0

n

xj +∑

j∈T 1n∪{n}

(1− xj)

para toda (T 0n , T

1n) particion de {1, . . . , n− 1}, son desigualdades de Chvatal-Gomory para X

(por el Hecho 3 ), entonces

πx 6 π0 + τ +∑j∈T 0

n

xj +∑j∈T 1

n

(1− xj)

es una desigualdad de Chvatal-Gomory para X.Utilizando el Hecho 4 con p = n−1 tenemos que para toda (T 0

n−1, T1n−1) particion de {1, . . . , n−

2}, como

πx 6 π0 + τ +∑

j∈T 0n−1∪{n−1}

xj +∑

j∈T 1n−1

(1− xj) y

πx 6 π0 + τ +∑

j∈T 0n−1

xj +∑

j∈T 1n−1∪{n−1}

(1− xj)

son desigualdades de Chvatal-Gomory para X (por el paso anterior) entonces

πx 6 π0 + τ +∑

j∈T 0n−1

xj +∑

j∈T 1n−1

(1− xj)

es una desigualdad de Chvatal-Gomory para X.Siguiendo este procedimiento para p = n−2, . . . , 1 llegamos a que πx 6 π0+τ es una desigual-dad de Chvatal-Gomory para X, pues si p = 1 para toda (T 0

1 , T11 ) particion de ∅, πx 6 π0 + τ

es una desigualdad de Chvatal-Gomory para X.

Finalmente utilizando el Hecho 5 si tomamos τ = t − 1 tenemos que πx 6 π0 + t − 1 + 1 esuna desigualdad de Chvatal-Gomory para X, entonces πx 6 π0 + t− 1 es una desigualdad deChvatal-Gomory para X, entonces πx 6 π0 + t − 2 es una desigualdad de Chvatal-Gomorypara X ... entonces πx 6 π0 es una desigualdad de Chvatal-Gomory para X.

Los cortes o desigualdades validas se pueden construir de diferentes formas. Dependiendo deltipo de corte vamos a encontrar la solucion al problema entero de forma rapida o de forma lenta.Esto esta determinado por la “profundidad” del corte (que tan grande es la region factible del

17

Page 19: Modelos de optimizaci on entera y su aplicaci on al ...

problema lineal que se elimina), entre mas grande sea esta mayor va a ser la profundidad delcorte, luego se llegara al optimo mas rapido. Algo bueno es encontrar tipos de cortes que per-mita que despues de anadir un numero finito de estos al problema lleguemos a la solucion optima.

Estudiaremos: Gomory’s Fractional Cuts y 0-1 Knapsack Inequalities.

GOMORY’S FRACTIONAL CUTS:

Estos cortes se construyen de la siguiente manera (Bertsimas & Tsitsiklis,1997, p. 482):

Sea x∗ solucion al problema relajado hallada con el metodo Simplex, y sea B la baseoptima asociada. Partimos el vector x∗ en xB variables basicas y xN variables no basicas.Suponga que hay m variables basicas de tal forma que xB(i) = xi, i ∈ {1, . . . ,m}. Recuerdeque el tableau del metodo simplex da los coeficientes de la ecuacion B−1Ax = B−1b. SeaN el conjunto de ındices de la variables no basicas y sea AN la submatriz de A concolumnas Ai, i ∈ N . Del tableau optimal obtenemos los coeficientes de las restriccionesxB +B−1ANxN = B−1b. Sea aij = (B−1Aj)i y ai0 = (B−1b)i.Considere una desigualdad del tableau optimal en la que ai0 sea fraccional, es decir que

aij /∈ Z : xi +∑j∈N

aij xj = ai0.

Como xj > 0,∀j ∈ N , tenemos que xi +∑j∈Nbaijcxj 6 xi +

∑j∈N

aij = ai0.

Definamos fi,j = aij − baijc y fi0 = ai0 − bai0c. Como xj debe ser entero, se tiene que∑j∈N

fijxj > fi0 es una desigualdad valida (o un Gomory’s fractional cut) para el problema

entero.Note que x∗ queda por fuera de la region factible dado que x∗i = ai0, x

∗j = 0 ∀j ∈ N y

bai0c < ai0 pues ai0 era fraccional.

Ejemplo 3:Si tenemos que la fila del tableau optimal donde ai0 es fraccional es:x1 + 10

7 x3 + 27x4 = 20

7El Gomory’s fractional cut asociado serıa:37x3 + 2

7x4 >67

Proposicion 2: Gomory’s fractional cuts se pueden ver como desigualdades de Chvatal-Gomory.(Wolsey,1998)

Demostracion:Sea u la fila del tableau optimal en donde au0 es fraccional. Dado que auj = (B−1Aj)u sea

β la fila u de B−1 y qi = βi − bβic, i = 1, . . . ,m.n∑j=1

bqajcxj 6 bqbc es una desigualdad de

Chvatal-Gomory que representa al Gomory’s fractional cut :∑j∈N

fujxj > fu0.

De las Proposiciones 1 y 2 tenemos entonces que Gomory’s fractional cuts son desigualdadesvalidas para los problemas enteros. Nemhauser y Wolsey (1999) muestran que anadiendo a lo

sumo (d + 1)n+1(d∑j∈N

c+j − c−j + 1) de estos cortes (donde d ∈ (Z+)1 : {x ∈ (R+)n : Ax 6

18

Page 20: Modelos de optimizaci on entera y su aplicaci on al ...

b} ⊆ {x ∈ (R+)n :∑j∈N

xj 6 d}, c+j = max(0, cj) y c−j = min(0, cj) con j ∈ {1, . . . , n}) se

encuentra una solucion optima o se llega a que el problema entero no tiene solucion. Es decirque el algoritmo de Cutting-Plane converge para Gomory’s fractional cuts.

0-1 KNAPSACK INEQUALITIES.

Como se muestra a continuacion Wolsey (1998) habla de algunas desigualdades validas queayudan a solucionar el problema 0-1 Knapsack (o problema de la mochila que consiste endecidir que objetos colocar dentro de una mochila sujeto a la capacidad de la mochila y elpeso o volumen de los objetos). Consideremos este problema representado por el conjunto

X = {x ∈ Bn :n∑j=1

ajxj 6 b}, donde Bn = {(x1, . . . , xn), xi ∈ {0, 1}}, y asumamos que los

coeficientes {aj}nj=1 son positivos y b > 0. Sea N = {1, . . . , n}.

Definicion 2: Un conjunto C ⊆ N es una cobertura si∑j∈C

aj > b, donde N = {1, . . . , n}.

Definicion 3: Una cobertura es mınima si C \ {j} no es una cobertura para ningun j ∈ C.

Note que el vector xC asociado a la cobertura C no esta en la region factible.

Definicion 4: Si πx 6 π0 y µx 6 µ0 son dos desigualdades validas para P ⊆ (R+)n, πx 6 π0domina a µx 6 µ0 si ∃u > 0 : π > uµ y π0 6 uµ0, y (π, π0) 6= (uµ, uµ0)

Note que si πx 6 π0 domina a µx 6 µ0 entonces {x ∈ (R+)n : πx 6 π0} ⊆ {x ∈ (R+)n : µx 6µ0}.

∗Cover Inequality

Si C ⊆ N cobertura mınima, la cover inequality∑j∈C

xj 6| C | −1 es una desigualdad valida

para X.

Ejemplo 4:Si X = {x ∈ B7 : 11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 + x7 6 19}Algunas cover inequalities mınimas son:x1 + x2 + x3 6 2x1 + x2 + x6 6 2x1 + x5 + x6 6 2x3 + x4 + x5 + x6 6 3

∗Extended Cover Inequality

Si C es una cobertura para X, la extended cover inequality∑

j∈E(C)

xj 6| C | −1 es una desigual-

dad valida para X, donde E(C) = C ∪ {j : aj > ai, ∀i ∈ C}.

Ejemplo 5:Si X = {x ∈ B7 : 11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 + x7 6 19}La extended cover inequality para C = {3, 4, 5, 6} es x1 + x3 + x4 + x5 + x6 6 3, luego ladesigualdad x3 + x4 + x5 + x6 6 3 esta dominada por x1 + x3 + x4 + x5 + x6 6 3. Pero

19

Page 21: Modelos de optimizaci on entera y su aplicaci on al ...

x1 + x3 + x4 + x5 + x6 6 3 esta dominada por 2x1 + x3 + x4 + x5 + x6 6 3.

Para encontrar una extended cover inequality que no este dominada siga este procedimiento:Considere la cobertura C = {3, 4, 5, 6}. Si x1 = x2 = x7 = 0 la desigualdad x3 +x4 +x5 +x6 6 3es valida para {x ∈ B4 : 6x3 + 5x4 + 5x5 + 4x6 6 19}.Ahora si x1 = 1 y x2 = x7 = 0, ¿para que valores de α1 la desigualdad α1x1+x3+x4+x5+x6 6 3es valida para {x ∈ B5 : 11x1 + 6x3 + 5x4 + 5x5 + 4x6 6 19}?Pero esto es igual a que α1 + x3 + x4 + x5 + x6 6 3 sea valida para{x ∈ B4 : 6x3 + 5x4 + 5x5 + 4x6 6 19− 11} o de forma equivalente a queα1 6 3−max{x3 + x4 + x5 + x6 : 6x3 + 5x4 + 5x5 + 4x6 6 8, x ∈ B4}−→ α1 6 3− 1 = 2. Luego si α1 = 2 da la desigualdad mas fuerte.

En general hay que encontrar el major valor de αj , j ∈ N \ C tal que la desigualdad∑j∈C

xj +∑

j∈N\C

αjxj 6| C | −1 es valida para X.

∗Lift Cover InequalitySea j1, . . . , jr un orden para j ∈ N \ C y sea t = 1 un contador. La desigualdad∑j∈C

xj +t−1∑i=1

αjixji 6| C | −1 es la desigualdad que obtuvimos antes ( extended cover inequality).

Ahora para calcular el mayor valor de αjt para el cual la desigualdad

αjtxjt +∑j∈C

xj +t−1∑i=1

αjixji 6| C | −1 es valida, hay que resolver el siguiente problema:

ζt = max∑j∈C

xj +

t−1∑i=1

αjixji

s.a

∑j∈C

ajxj +

t−1∑i=1

αjixji 6 b− aj

x ∈ {0, 1}|C|+t−1

Despues de resolver este problema actualice el valor de αjt =| C | −1− ζt, sume 1 al contador ty pare cuando t = r. De este proceso se obtiene la Lift Cover Inequality.

Ejemplo 6:Si X = {x ∈ B7 : 11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 + x7 6 19}, C = {3, 4, 5, 6}, j1 = 1, j2 = 2y j3 = 7 aplicando el procedimiento que se utilizo en el Ejemplo 5 encuentra que α1 = 2, sume1 al contador t y siga con la variable xj2 = x2:α2 6 3−max{2x1 + x3 + x4 + x5 + x6 : 11x1 + 6x3 + 5x4 + 5x5 + 4x6 6 19− 6 = 13, x ∈ B5} =3− 2 = 1, sume 1 al contador t y siga con la variable xj3 = x7:α7 6 3 −max{2x1 + x2 + x3 + x4 + x5 + x6 : 11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 6 19 − 1 =18, x ∈ B6} = 3− 3 = 0.Entonces la desigualdad valida que no esta dominada que debe anadirse al problema entero es:2x1 + 1x2 + 1x3 + 1x4 + 1x5 + 1x6 + 0x7 6 3.

20

Page 22: Modelos de optimizaci on entera y su aplicaci on al ...

∗Separation Cover InequalitySea F una familia de Cover Inequalities para X. Dado un punto x∗ no entero (fraccional), con0 6 x∗j 6 1, ∀j ∈ N , se quiere encontrar una desigualdad de la familia F tal que x∗ viole estadesigualdad o mostrar que dicha desigualdad no existe.

Note que las Cover Inequalities se pueden escribir como∑j∈C

(1−xj) > 1. La pregunta a responder

ahora es: ¿existe C ⊆ N con∑j∈C

aj > b, para el cual∑j∈C

(1 − x∗j ) < 1? o en otras palabras si

¿ζ = minC⊆N{∑j∈C

(1− x∗j ) :∑j∈C

aj > b} < 1? Dado que el conjunto C es desconocido, esta pregunta

se puede solucionar resolviendo el problema de optimizacion:

ζ = min{∑j∈N

(1− x∗j )zj :∑j∈N

ajzj > b, z ∈ Bn} < 1 , donde zj es 1 si j ∈ C, y 0 de lo contrario.

Debe suceder alguna de estas dos cosas despues de resolver este problema de optimizacion:

(i) ζ > 1, luego x∗ satisface todas las Cover Inequalities.

(ii) ζ < 1 con una solucion optima zR, entonces x∗ viola la Cover Inequalities∑j∈R

xj 6| R | −1.

Ejemplo 7:Si X = {x ∈ B6 : 45x1+46x2+79x3+54x4+53x5+125x6 6 178} y el punto x∗ = (0, 0, 34 ,

12 , 1, 0).

El problema de optimixacion a resolver serıa:

min1z1 + 1z2 + 14z3 + 1

2z4 + 0z5 + 1z645x1 + 46x2 + 79x3 + 54x4 + 53x5 + 125x6 > 178

z ∈ B6

La solucion optima de este problema es z = (0, 0, 1, 1, 1, 0) y el valor de la funcion objetivo ζ = 34 .

Entonces la desigualdad: x3 + x4 + x5 6 2 es violada por x∗ en 1− ζ = 14

∗GUB Cover Inequality

Definicion 5: Una restriccion GUB (generalized-upper-bound constraint) es de la forma∑j∈Qi

xj 6 1 para i ∈ I, donde ∀iQi ⊆ N, ∀i 6= j,Qi ∩Qj = ∅,⋃i∈I Qi = N .

Zonghao, Nemhauser y Savelsbergh (1998) definen las GUB cover inequalities de la siguentemanera.Sea P = {x ∈ Bn :

∑j∈N

ajxj 6 b,∑j∈Qi

xj 6 1,∀iQi ⊆ N, ∀i 6= j,Qi ∩Qj = ∅,⋃i∈I

Qi = N}, donde

b > aj > 0 ∀j ∈ N .

Un conjunto C ⊆ N es una GUB cover si C es una cobertura para∑j∈N

ajxj 6 b y no hay dos

elementos de C que esten en el mismo Qi.

Para toda C, GUB cover la desigualdad∑j∈C

xj 6| C | −1 es una GUB cover inequality.

21

Page 23: Modelos de optimizaci on entera y su aplicaci on al ...

Ejemplo 8:Si X = {x ∈ B8 : x1+5x2+x3+5x4+x5+3x6+x7+3x8 6 9, x1+x2 6 1, x3+x4 6 1, x5+x6 61, x7 + x8 6 1}Algunas GUB cover inequalities mınimas son:x2 + x4 6 1x2 + x6 + x7 6 2x2 + x4 + x7 6 2x4 + x6 + x8 6 2

Veamos un ejemplo del algoritmo de cutting-planes para Gomory’s Fractional Cuts. Recuerdeque la idea de este algoritmo es anadir restricciones (en este caso Gomory’s Fractional Cuts) yencontrar la solucion del problema lineal con esta nueva restriccion.

Ejemplo 9:

Considere el problema Max{cx : Ax 6 b, x ∈ (Z+)2}, con c = (4 − 1), A =

7 −20 12 −2

y b =

1433

. (Ejemplo 2)

Para inicializar el algoritmo de Cutting-Planes debemos encontrar la solucion al problema deforma lineal: Max{cx : Ax 6 b, x ∈ (R+)2} y utilizando el metodo Simplex obtenemos elsiguiente tableau optimal:

Como la solucion a este problema es (x1, x2) = (207 , 3) vamos a anadir un Gomory’s FractionalCut utilizando la desigualdad asociada a x1 = 20

7 . Calculemos fi,j y fi,0: f1,1 = 1 − 1 = 0,f1,3 = 1

7 − 0 = 17 , f1,4 = 2

7 − 0 = 27 y f1,0 = 20

7 −147 = 6

7 .

El corte que se agrega es: 17s1 + 2

7s2 > 67 . El tableau asociado a este problema y el tableau

optimal serıan:

Ahora anadimos el Gomory’s Fractional Cut utilizando la desigualdad asociada a x21 = 1

2 . Cal-culemos fi,j y fi,0:

22

Page 24: Modelos de optimizaci on entera y su aplicaci on al ...

f1,2 = 1− 1 = 0, f1,5 = 12 − 0 = 1

2 , f1,6 = 1− 1 = 0 y f2,0 = 12 − 0 = 1

2 .

El corte que se agrega es: 12s3 > 1

2 . El tableau asociado a este problema y el tableau optimalserıan:

La solucion optima del problema es x = (2, 1) con z = 7. Coloquemos los dos cortes que agrega-mos en terminos de las variables iniciales:

Del tableau inicial (que se muestra arriba) despejamos s1, s2 y s3:s1 = 14− 7x1 + 2x2, s2 = 3− x2 y s3 = 3− 2x1 + 2x2.

Reemplazamos estos valores en cada uno de los cortes y obtenemos que:

17s1 + 2

7s2 >67 −→

17(14−7x1 +2x2)+ 2

7(3−x2) > 67 −→ 14−7x1 +2x2 +6−2x2 > 6 −→ x1 6 2

12s3 >

12 −→

12(3− 2x1 + 2x2) > 1

2 −→32 − x1 + x2) > 1

2 −→ −x1 + x2 > −1 −→ x1 − x2 6 1

En una grafica las restricciones iniciales del problemas y las que se estan agregando se verıanası:

23

Page 25: Modelos de optimizaci on entera y su aplicaci on al ...

3.2.3. Branch-and-Cut

Este algoritmo es una mezcla de los dos algoritmos anteriores. El siguiente pseudocodigo dadopor Ramusio (2010) muestra las ideas basicas del algoritmo para un problema de maximizacion:

1. Inicializar el arbol de Branch-and-Bound (solucion de la relajacion LP).

2. Elegir un nodo (activo) a explorar del arbol.

3. Resolver la relajacion lineal al problema asociado al nodo (llamemoslo subproblema). Sea x∗

el optimo del subproblema y z∗ el valor de la funcion objetivo en el optimo. Sea ziLP la cotasuperior del subproblema.

a) Si x∗ es solucion factible del problema entero, actualizar la cota inferior z (si corres-ponde). Podar el nodo y volver al paso 2.b) Si ziLP es menor que la cota inferior z, ninguna solucion factible del subproblema puedeser optimo del problema original. Podar el nodo y volver al paso 2.

4. Buscar desigualdades violadas por x∗. Si se encuentran, agregarlas a la formulacion y volver alpaso 3. Si no se encuentran, o si se cumple algun otro criterio, generar dos o mas subproblemas(ramificar) y agregarlos a la lista de nodos (activos) a explorar .

5. Si las cotas inferior ziLP y superior ziLP coinciden, entonces la mejor solucion factible hastael momento es el optimo del subproblema. En caso contrario, volver al paso 2.

Este algoritmo puede iniciar igual que Branch-and-Bound, pero para el problema LP i, se anadenrestricciones validas (cortes). O iniciar como el metodo de Cutting-Planes y ramificar en algunode los problemas LP i; de esta manera el algoritmo se llamarıa Cut-and-Branch.

Tenga en cuenta que entre mas “profundos”sean los cortes mas rapido va a llegar a la solucionoptima, es decir que la correcta seleccion de estos cortes acelera el algoritmo de Branch-and-Bound (Bertsimas & Tsitsiklis,1997).

Ejemplo 10:

Considere el problema Max{cx : Ax 6 b, x ∈ (Z+)2}, con c = (4 − 1), A =

7 −20 12 −2

y b =

1433

. (Ejemplo 2)

Para inicializar el algoritmo de Branch-and-Cut debemos encontrar la solucion al problemade forma lineal: Max{cx : Ax 6 b, x ∈ (R+)2} y utilizando el metodo Simplex obtenemos elsiguiente tableau optimal:

24

Page 26: Modelos de optimizaci on entera y su aplicaci on al ...

1. Vamos a ramificar y despues anadiremos un corte (Branch-and-Cut):

Igual que en el Ejemplo 2 ramificamos y obtenemos el suguiente arbol:

Recuerde que el nodo S2LP ha sido podado por infactibilidad del problema asociado, luego solo nos

queda el nodo S1LP por explorar. Resolvemos el problema asociado al nodo S1

LP y obtenemos que:

Anadimos el Gomory’s Fractional Cut : 12s3 > 1

2 , asociado a la variable x21 y resolvemos es

proplema LP :

Entonces la solucion optima del problema es x = (2, 1) con z = 7. Igual que en el Ejemplo 9este corte en terminos de las variables iniciales es la desigualdad x1 − x2 6 1.

25

Page 27: Modelos de optimizaci on entera y su aplicaci on al ...

En una grafica las restricciones iniciales del problemas y las que se estan agregando se verıanası:

2. Anadimos un corte y luego ramificamos (Cut-and-Branch):

Como la solucion a la relajacion es (x1, x2) = (207 , 3) vamos a anadir el Gomory’s FractionalCut : 1

7s1 + 27s2 >

67 asociado a x1 = 20

7 . Resolvemos este problema y obtenemos:

Igual que en el Ejemplo 9 este corte en terminos de las variables iniciales es la desigualdadx1 6 2. Un diagrama de este paso serıa:

Ahora vamos a ramificar el nodo S1LP . Dado que z1LP = 15

2 , y (x11, x2

1) = (2, 12), como x2 /∈ (Z+)1

podemos tomar S2LP = S1

LP ∩ {x : x2 = 0} y S3LP = S1

LP ∩ {x : x1 > 1}.

26

Page 28: Modelos de optimizaci on entera y su aplicaci on al ...

Resolvemos los problemas asociados a los nodos S2LP y S3

LP , igual que en el Ejemplo 2 y setiene que S3

LP es podado y la solucion optima del problema es x = (2, 1) con z = 7.

En una grafica las restricciones iniciales del problemas y las que se estan agregando se verıanası:

27

Page 29: Modelos de optimizaci on entera y su aplicaci on al ...

4. Caso de Aplicacion

4.1. Descripcion del Problema

El problema consiste en elaborar el calendario de realizacion de las actividades en un horizontede tiempo T, de k dıas, de un proceso que una companıa presta en una ciudad. Para esto sedebe tener en cuenta las diferentes tareas, condiciones y recomendaciones de la companıa conel fin de garantizar la oportuna ejecucion del proceso. La companıa ha dividido la ciudad en zzonas, dado que solo cuenta con un numero limitado de personal para la realizacion de las tareas.

El proceso consta de: un conjunto de tareas A las cuales se deben asignar de acuerdo a la si-guiente relacion de precedencia entre ellas: la tarea 1 antes que la 2, la 2 antes que la 3... yası sucesivamente; un horizonte de planeacion T, de k dıas, dividido en s periodos en los quecada tarea debe realizarse 1 vez; la duracion di en dıas de cada tarea; el costo ci,t asociado a laasignacion de la tarea i el dıa t; la fecha Di,j en la que se realizo la tareas i en la zona j porultima vez; la fecha si que corresponde a ultima vez que se realizo la tarea i sin importar lazona; y ul ultimo dıa del periodo l.

Adicionalmente se deben tener en cuenta condiciones como que: la tarea i entre un periodo yotro deben hacerse entre ki1 a ki2 dıas despues de la anterior vez que se haya realizado; la tarea ise hace di dıas despues de la tarea i− 1 pero algunas “tareas cortas” se pueden hacer el mismodıa; los dıas en los que se realizan la mayorıa de las tareas deben ser dıas de B1, pero algunassolo se pueden asignar en conjuntos B2, . . . , Bn de dıas especıficos (B1, . . . , Bn ⊆ T ); hay tareasque se deben hacer el primer dıa del periodo para la primera zona de la ciudad en la que sevalla a empezar el proceso; algunas tareas deben realizarce antes del ultimo dıa del periodo ul;la suma de los dıas desde la primera vez que se hace la tarea i

′hasta la ultima ves que se hace

en el horizonte de planeacion, debe ser cercana a los K dıas; todos los periodos se deben realizartodas las tareas en cada una de las zonas; y una tarea no se puede realizar el mismo dıa en doszonas distintas para periodos distintos.Como en la compania no se trabaja todos los dıas del horizonte de planeacion, estos dıas no sepodran asignar tareas.

4.2. Modelo Matematico

Conjuntos

A = {1, . . . , a} Tareas.

Z = {1, . . . , z} Zonas de la Ciudad.

T = {1, . . . , k} Horizonte de Planeacion.

M = {1, . . . , s} Periodos.

Ap ⊆ A de tareas especıficas, con p ∈ {1, 2, . . . , q}.Bn ⊆ T de dıas especıficos, con n ∈ {1, 2, . . . ,m}.

Parametros

K = Dıas totales del proceso.

di = Duracion de la tarea i ∈ A en dıas.

ci,t = Costo asociado a la asignacion de la tarea i ∈ A el dıa t ∈ T .

ei,j = Dıa en la que se realizo la tareas i ∈ A en la zona j ∈ Z por ultima vez.

28

Page 30: Modelos de optimizaci on entera y su aplicaci on al ...

fi = Dıa en el que se realizo por ultima vez la tarea i ∈ A sin importar la zona.

ul = Ultimo dıa del periodo l ∈M .

βnt = Numero de dıas de Bn que hay antes del dıa t ∈ T .

ki1 y ki2 Dıas entre los cuales se debe realizar la tarea i ∈ A despues de la anterior vez quese haya realizado.

dminl y dmaxl Dıa mınimo y dıa maximo en el que se pueden realizar las tareas del periodol ∈M .

Variables de Decision:

xi,j,t,l que vale 1, si la tarea i ∈ A se asigna en la zona j ∈ Z el dıa t ∈ T para el mesl ∈M ; y 0, dlc.

y+j y y−j dıas por encima y dıas por debajo de K para la zona j ∈ Z.

Formulacion 1:

Min∑i∈A

∑j∈Z

∑t∈T

∑l∈M

(ci,t xi,j,t,l) +∑j∈Z

(y+j + y−j ) (1)

s.a.

∑j∈Z

∑l∈M

xi,j,t,l 6 1 ∀i ∈ A, t ∈ T (2)

fi + 1 6∑t∈T

t xi,j,t,1 ∀i ∈ A, j ∈ Z (3)

∑t∈T

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (4)

∑t∈T

t xi,j,t,l 6∑t∈T

t xi,j,t,l+1 ∀i ∈ A, j ∈ Z, l ∈ {1, . . . , s− 1} (5)

Di,j 6∑t∈T

t xi,j,t,1 ∀i ∈ A, j ∈ Z (6)

Para algunos n ∈ {1, . . . ,m}

∑t∈T

βnt xi,j,t,l + di 6∑t∈T

βnt xi+1,j,t,l ∀j ∈ Z, l ∈M, i ∈ Apn ⊆ A (7)

29

Page 31: Modelos de optimizaci on entera y su aplicaci on al ...

Para n′ ∈ {1, . . . ,m}

βn′Da,j+ da 6

∑t∈T

βn′ t x1,j,t,1 ∀j ∈ Z (8)

∑t∈T

βn′ t xa,j,t,l + da 6∑t∈T

βn′ t x1,j,t,l+1 ∀j ∈ Z, l ∈ {1, . . . , s− 1} (9)

ki1 6∑t∈T

t xi,j,t,l+1 −∑t∈T

t xi,j,t,l 6 ki2 ∀j ∈ Z, l ∈ {1, . . . , s− 1}, i ∈ Ap ⊆ A (10)

ki1 6∑t∈T

t xi,j,t,1 −Di,j 6 ki2 ∀j ∈ Z, l ∈ {1, . . . , s− 1}, i ∈ Ap ⊆ A (11)

Para i′ ∈ A∑

t∈Tt xi′ ,j,t,s −Di′ ,j = K + y+j − y

−j ∀j ∈ Z (12)

Para i′′ ∈ A∑

t∈Tt xi′′ ,j,t,l 6 ul ∀j ∈ Z, l ∈M (13)

dminl 6∑t∈T

t xi,j,t,l 6 dmaxl ∀i ∈ A, j ∈ Z, l ∈M (14)

Para n∗ ∈ {1, . . . ,m} y i∗ ∈ A∑t∈Bn∗

∑j∈Z

t xi∗,j,t,l = 1 ∀l ∈M (15)

xi,j,t,l ∈ {0, 1} ∀i ∈ A, j ∈ Z, t ∈ T, l ∈M (16)

y+j , y−j ∈ Z+ ∀j ∈ Z (17)

30

Page 32: Modelos de optimizaci on entera y su aplicaci on al ...

La ecuacion (1) es la funcion objetivo que busca minimizar los costos de la asignacion delas tareas y el desfase respecto a K. La ecuacion (2) dice que no se pueden realizar tareasiguales en zonas distintas. La ecuacion (3) dice que no se puede pueden hacer tareas delperiodo 1 los dıas en que se hicieron las tareas por ultima vez. La ecuacion (4) se encargade que cada tarea se realize 1 vez en cada zona cada periodo. La ecuacion (5) garantizala precedencia entre los periodos y la ecuacion (6) asegura la precedencia entre el primerperiodo y la ultima vez que se realizaron las tareas. La ecuacion (7) establece la duracionde las tareas que se hacen en dıa de Bn, la ecuacion (8) establece la duracion de la ultimatarea que se realizo por ultima vez en dıas de Bn′ y la ecuacion (9) establece la duracion dela ultima tarea del periodo anterior en dıas de Bn′ . Las ecuaciones (10) y (11) determinanla frecuencia en la realizacion de las tareas i ∈ Ap ⊆ A. La ecuacion (12) garantiza que losdıas desde la primera vez que se hace la tarea i

′hasta la ultima ves que se hace esten cerca

a K. La ecuacion (13) dice que la tarea i′′

se realiza antes del dıa ul cada periodo y laecuacion (14) establece el lımite de realizacion de las tareas por periodo. La ecuacion (15)hace que para cada dıa de Bn∗ solo se asigna la tarea i∗, 1 vez. La ecuacion (16) dice quela variable de decision xi,j,t,l es binaria y la ecuacion (17) que y+j y y−j son enteros positivos.

Formulacion 2:

Igual que la formulacon anterior solo que las restricciones (13) y (14) son reemplazadaspor las siguientes dos restricciones respectivamente:

Para i′ ∈ Aul∑

t=dminl

xi′ ,j,t,l = 1 ∀j ∈ Z, l ∈M (18)

dmaxl∑t=dminl

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (19)

Note que si este par de desigualdades vale para 0 6 xi,j,t,l 6 1:∑t∈T

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (3)

dmaxl∑t=dminl

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (19)

las siguientes desigualdades tambien,∑t∈T

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (3)

dminl 6∑t∈T

t xi,j,t,l 6 dmaxl ∀i ∈ A, j ∈ Z, l ∈M (14)

pues dado que dminl 6 t 6 dmaxl por (19), tenemos que:

31

Page 33: Modelos de optimizaci on entera y su aplicaci on al ...

∑t∈T

dminlxi,j,t,l 6∑t∈T

t xi,j,t,l 6∑t∈T

dmaxlxi,j,t,l

−→ dminl∑t∈T

xi,j,t,l 6∑t∈T

t xi,j,t,l 6 dmaxl∑t∈T

xi,j,t,l

por la desigualdad (3) −→ dminl 6∑t∈T

t xi,j,t,l 6 dmaxl

Pero no siempre que valen las desigualdades (3) y (14), las desigualdades (3) y (19) valen puessi xi,j,6,l = 1

6 , xi,j,15,l = 13 , xi,j,18,l = 1

2 , dminl = 11 y dmaxl = 25 tenemos que:∑t∈T

xi,j,t,l =1

2+

1

3+

1

6= 1 y 11 6 6 · 16 + 15 · 13 + 18 · 12 6 25 −→ 11 6 15 6 25 pero

25∑t=11

xi,j,t,l =1

2+

1

3=

5

66= 1.

De igual manera si valen las desigualdades para 0 6 xi,j,t,l 6 1:∑t∈T

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (3)

Para i′ ∈ A

ul∑t=dminl

xi′ ,j,t,l = 1 ∀j ∈ Z, l ∈M (18)

las siguientes desigualdades tambien,∑t∈T

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (3)

Para i′ ∈ A∑

t∈Tt xi′ ,j,t,l 6 ul ∀j ∈ Z (13)

pues dado que t 6 ul por (18), tenemos que:∑t∈T

t xi′ ,j,t,l 6∑t∈T

ulxi′ ,j,t,l

−→∑t∈T

t xi′ ,j,t,l 6 ul∑t∈T

xi′ ,j,t,l

por la desigualdad (3) −→∑t∈T

t xi′ ,j,t,l 6 ul

Pero no siempre que valen las desigualdades (3) y (13), las desigualdades (3) y (18) valen puessi xi′ ,j,6,l = 1

6 , xi′ ,j,15,l = 13 , xi′ ,j,18,l = 1

2 , dminl = 11 y ul = 20 tenemos que:

∑t∈T

xi′ ,j,t,l =1

2+

1

3+

1

6= 1 y 6· 16+15· 13+18· 12 6 20 −→ 15 6 20 pero

20∑t=11

xi′ ,j,t,l =1

2+

1

3=

5

66= 1.

32

Page 34: Modelos de optimizaci on entera y su aplicaci on al ...

Entonces las restricciones (3) y (18), y (3) y (19) proveen mejores cortes que las restricciones (3)y (13), y (3) y (14) respectivamente, dado que con las primeras se estan eliminando trozos de laregion factible del problema lineal asociado que no contienen soluciones enteras factibles que lassegundas no. Las restricciones (18) y (13), tienen el objetivo que es restringir la fecha maximaen la que se puede asignar la tarea i

′, al igual que las restricciones (19) y (14), que tienen el

objetivo de establecer el lımite de realizacion de las tareas por periodo, se comportan igual enel modelo de optimizacion con enteros. Pero cuando las variables de decision toman valores queno son enteros (en el modelo relajado) no. Por lo tanto es importante escoger las restriccionesque determinen cortes que sean mas profundos.

Formulacion 3:

Igual que la Formulacion 2 solo que se agrega una nueva variable de decision:

z dıa de inicio de la tarea a para el periodo s,

la funcion objetivo se va a reemplazar por:

Min (z) (20)

y se anaden las siguientes dos restricciones:

txa,j,t,s 6 z ∀j ∈ Z, t ∈ T (21)

z ∈ R+ (22)

Esta nueva funcion objetivo (20) lo que busca es minimizar la fecha en la que se esta asig-nando la ultima tarea para el ultimo periodo, la ecuacion (21) captura la fecha en la quese asigna dicha tarea y la ecuacion (22) dice que z es un real positivo.

Formulacion 4:

Igual que la Formulacion 2 solo que:

Se agregan las variables de decision:

zi dıa de inicio de la tarea i ∈ A para el periodo s,

La funcion objetivo es:

Min∑i∈A

∑j∈Z

∑t∈T

∑l∈M

(ci,t xi,j,t,l) +∑j∈Z

(y+j + y−j ) +∑i∈A

zi (23)

33

Page 35: Modelos de optimizaci on entera y su aplicaci on al ...

y se anaden las restricciones:

txi,j,t,s 6 zi ∀i ∈ A, j ∈ Z, t ∈ T (24)

zi ∈ R+ ∀i ∈ A, (25)

y se quita la restriccion:

dmaxl∑t=dminl

xi,j,t,l = 1 ∀i ∈ A, j ∈ Z, l ∈M (19)

Esta funcion objetivo (23) busca minimizar los costos de la asignacion de las tareas, eldesfase respecto a K y la fecha en la que se asigna la ultima vez que se asigna la tareai, ∀i ∈ A en el ultimo periodo. La ecuacion (24) captura las fechas en las que se asignandichas tareas y la ecuacion (25) dice que zi es un real positivo.

34

Page 36: Modelos de optimizaci on entera y su aplicaci on al ...

4.3. Resultados Computacionales

Se implementaron los modelos matematicos anteriormente descritos en el lenguaje de progra-macion del optimizador Xpress-MP version 20.00.21.

Este optimizador para solucionar problemas enteros lo primero que hace es el preprocesamientoque consta por defecto de las siguientes operaciones:

1. Singleton column removal.2. Singleton row removal.3. Forcing row removal.4. Dual reductions.5. Redundant row removal.6. Duplicate column removal.7. Duplicate row removal.8. Strong dual reductions.9. Variable eliminations.

Despues se resuelve el problema lineal. Para esto utiliza por defecto el dual simplex method, perodependiendo de las condiciones del problema puede utilizar tambien el primal simplex method.Despues el optimizador empieza un procedimiento llamado global search para encontrar unasolucion entera. El optimizador utiliza los metodos de Branch-and-Bound, Branch-and-Cut oCut-and-Branch dependiendo de las condiciones del problema.

EnBranch-and-Bound por defecto la estrategia de seleccion de variable consiste en:1. Asignarle a cada variable un priority for branching value que automaticamente serıa 500o puede ser fijado por el usuario. (Un valor bajo significa que es mas probable que la variable seselecciones para ramificar.)2. Calcular un pseudo costo alto upj y un pseudo costo bajo downj asociado a cada variable j,que son una estimacion de la cantidad por la cual la funcion objetivo empeorarıa si la variablees forzada a ser entera.3. Seleccionar de las variables con mayor prioridad que todavıa no haya sido seleccionada la quetenga el mayor costo estimado.Este costo estimado se puede calcular de cualquiera de las siguientes formas:

1. min(upj , downj)2. upj + downj3. 2 ·min(upj , downj) +max(upj , downj)4. max(upj , downj)5. downj6. upj7. λ · upj + (1− λ) · downj donde λ depende de que tan fraccional es la variable.8. upj · downj

Y la estrategia de seleccion de nodo por defecto es la numero 4 de las siguientes estrategias deseleccion de nodo que tiene el optimizador:

1. Local first : Escoger entre los hijos y descendientes del nodo actual si es posible; de noser ası seleccione uno de los nodos activos destacados.2. Best first : Seleccione uno de todos los nodos activos destacados.3. Local depth first : Escoger entre los hijos y descendientes del nodo actual si es posible;de lo contrario elegir entre los nodos mas profundos.

35

Page 37: Modelos de optimizaci on entera y su aplicaci on al ...

4. Best first y luego local first : Primero Best first se usa con un numero de nodos especıficoy despues usa local first.5. Pure depth first : Elegir entre los nodos mas profundos.

Cuando el conjunto de nodos a seleccionar incluye todos los nodos activos por defecto se se-lecciona el de mejor valor de la funcion objetivo. Pero tambien se puede seleccionar un nodoactivo aleatoriamente, seleccione el primer nodo activo creado, seleccione el ultimo nodo activocreado, seleccione el nodo con la mejor solucion estimada o seleccione el nodo cuya relajacionLP contiene el menor numero de variables fraccionales.

Para Branch-and-Cut y Cut-and-Branch los tipos de cortes que hace este optimizador son:1. Clique cuts.2. Gomory cuts.3. Mixed Integer Rounding (MIR) cuts.4. Lifted cover cuts.5. Flow path cuts.6. Implication cuts.7. Turn on automatic Lift-and-Project cutting strategy.8. Disable cutting from cut rows.9. Lifted GUB cover cuts.10. Zero-half cuts.11. Indicator constraint cuts.

Para encontrar una solucion al caso de aplicacion presentado anteriormente primero se conside-ra una instancia de 3 periodos. Donde el conjunto de tareas es A = {1, . . . , 10}, el conjunto dezonas es Z = {1, . . . , 20}, los conjunto de dıas especıficos Bn ⊆ T, ∀n ∈ {1, 2, 3, 4}, los conjuntosde tareas especıficas Ap ⊆ A,∀p ∈ {1, 2, 3}, el horizonte de planeacion es T = {1, . . . , 198}, elconjunto de periodos es M = {1, 2, 3} y los dıas totales del proceso K = 90.

Despues se soluciona una instancia de 12 periodos, dividiendola en instancias de a 3 periodos. Enesta instancia el onjunto de tareas es A = {1, . . . , 10}, el conjunto de zonas es Z = {1, . . . , 20},los conjunto de dıas especıficos Bn ⊆ T, ∀n ∈ {1, 2, 3, 4}, los conjuntos de tareas especıficasAp ⊆ A,∀p ∈ {1, 2, 3}, el horizonte de planeacion es T = {1, . . . , 432}, el conjunto de periodoses M = {1, . . . , 12} y los dıas totales del proceso K = 365.

A continuacion se presentan los resultados para las dos instancias.

En los arboles de Branch-and-Bound que se presentan tenga en cuenta que: los nodos blancosson nodos que estan activos, los rojos son infactibles, los nodos amarillos han sido podados,los 10 nodos recientemente explorados se encuentran en color azul, donde el mas claro es maslejano y el mas oscuro es el mas cercano y los nodos verdes representan las soluciones enteras,la mejor solucion es la mas grande y entre mas brillante sea su color mas reciente fue su hallazgo.

36

Page 38: Modelos de optimizaci on entera y su aplicaci on al ...

Instancia de 3 Periodos:

Formulacion 1:Para esta formulacion hay 5,514 restricciones y 83,680 variables de decision. El tiempo de solu-cion fue de 686.8 segs.

Figura1: Arbol de Branch-and-Bound para la Formulacion 1.

Formulacion Intermedia:Esta formulacion consiste en cambiar solamente la restriccion (13) de la Formulacion 1 por larestriccion (18) de la Formulacion 2. El numero de restricciones para esta formulacion es de4,317 y 83,680 variables de decision. El tiempo de solucion fue de 275.0 segs.

Figura2: Arbol de Branch-and-Bound para la Formulacion Intermedia.

37

Page 39: Modelos de optimizaci on entera y su aplicaci on al ...

Formulacion 2:Con esta formulacion se tien 4,317 restricciones y 83,680 variables de decision. El tiempo desolucion fue de 270.7 segs.

Figura 3: Arbol de Branch-and-Bound para la Formulacion 2.

Formulacion 2 - Restriccion (19):Lo que se hace es quitar la restriccion (19). El numero de restricciones disminuye a 3,717 y hay83,680 variables de decision. El tiempo de solucion fue de 177.3 segs.

Figura 4: Arbol de Branch-and-Bound para la Formulacion 2 - Restriccion (19).

38

Page 40: Modelos de optimizaci on entera y su aplicaci on al ...

Formulacion 3:Con esta formulacion se tien 6,997 restricciones y 83,681 variables de decision. El tiempo desolucion fue de 530.8 segs.

Figura 5: Arbol de Branch-and-Bound para la Formulacion 3.

Formulacion 4:Con esta formulacion se tien 6,397 restricciones y 83,681 variables de decision. El tiempo desolucion fue de 2,340.3 segs.

Figura 6: Arbol de Branch-and-Bound para la Formulacion 4.

39

Page 41: Modelos de optimizaci on entera y su aplicaci on al ...

Tabla 1: Resultados computacionales para todas las formulaciones de la instancia de 3periodos.

Grafica 1: Dıas totales del proceso instancia de 3 meses para diferentes formulacionescercanos a K = 90.

Analisis de los resultados computacionales instancia de 3 periodos.

Las soluciones para cada una de las formulaciones para la instancia de 3 periodos se encontrarona optimalidad.

Se observa que el tiempo computacional es menor para la Formulacion 2 que para la Formulacion1 y la Formulacion Intermedia, es decir que como las restricciones (18) y (19) proveen mejorescortes, se llegue al optimo mas rapido.

Se creerıa que al agregar la restriccion (19) el tiempo se solucion serıa menor, pero la evidenciademuestra que no es ası, ya que al quitar esta restriccion de la Formulacion 2 el tiempo paso de270.0 segundos a 177.3 segundos. Por esta razon para la instancia de 12 periodos se decide quitarla restriccion (19), sumada al hecho que probablemente en los dıas determinados por dminl ydmaxl para cada periodo la asignacion de todas las tareas para todas las zonas no es posible.

La principal utilidad de la Formulacion 3 es encontrar el menor numero de dıas en el cual sepuede realizar la asignacion de las 10 tareas, para las 20 zonas en 3 periodos. El valor de lafuncion objetivo: 148, representa esta cantidad de dıas. La suma de los dıas de desfase es la masalta de todas, lo cual evidencia que con esta formulacion el objetivo de que los dıas totales delproceso esten cerca de 90 no se esta teniendo en cuenta.

40

Page 42: Modelos de optimizaci on entera y su aplicaci on al ...

El valor de la funcion objetivo para las Formulaciones 1, Intermedia, 2 y 2-Restriccion (19) esde 619 que si lo descomponemos serıa: 17 asociado a la suma de los dıas de desfase de 90 y 602correspondiente al costo de asignacion de las tareas.

La formulacion 4 es la que tiene el mayor tiempo computacional, y esto se refleja en el arbolde Branch-and-Bound que es el mas grande de todos (tiene mas nodos). Se ve que es el arbolcon mayor numero de soluciones factibles (17). El valor de la funcion objetivo para esta formu-lacion es 1,935 que se descomponen en: 17 asociado a la suma de los dıas de desfase de 90, 602correspondiente al costo de asignacion de las tareas y 1,316 de la suma de los ultimos dıas derealizacion de cada tarea.

Para las Formulaciones Intermedia y 2 solo se encontro una solucion entera y los arboles deBranch-and-Bound son mas pequenos para estas dos formulaciones que el de la Formulacion 1para la cual se encontraron 2 soluciones enteras.

El arbol de la Formulacion 2 - Restriccion (19) es mas grande que el de la formulacion 2, estoes de esperarse ya que al quitar esta restriccion la cantidad de dıas en los que se pueden asignarlas tareas aumenta, luego hay mas variables que considerar en el Branch-and-Bound.

En la grafica 1 se ve como la mayor variacion en el numero de dıas de desfase esta en la Formula-cion 3.Solo hay dos zonas cuyo desfase es de 0 dıas. El resto de las formulaciones se comportan deformas similares manteniendo en 90 los dıas de la zona 2 a la 10 y por debajo de 90 para el restode zonas. La Formulacion 4 es la que mejor cumple el objetivo de hacer que el desfase sea lo menorposible dado que es la formulacion que deja el mayor numero de zonas (12) con desfase de 0 dıas.

Instancia de 12 Periodos:

Esta instancia se dividio en 4 instancias de 3 periodos y a cada una tiene un valor de K asociado,de tal manera que la sume de todos es 365. A continuacion se presentan los resultados:

Primeros 3 periodos:

Con K = 90 se corre primero la instancia con la Formulacion 3 y despues con el resultado serestrıngen los dıas en los que se puede realizar la asignacion de las tareas y se corre la instanciacon la Formulacion 2, sin la restriccion (19).

Tabla 2: Resultados computacionales para los primeros 3 periodos.

41

Page 43: Modelos de optimizaci on entera y su aplicaci on al ...

Grafica 2: Dıas totales del proceso por zona para los primeros 3 periodos.

Segundos 3 periodos:

Con K = 92 y los resultados del ultimo periodo de la instancia anterior se corre primero lainstancia con la Formulacion 3, sin la restriccion (19), y despues con el resultado se restrıngenlos dıas en los que se puede realizar la asignacion de las tareas y se corre la instancia con laFormulacion 2, sin la restriccion (19).

Tabla 3: Resultados computacionales para los segundos 3 periodos.

Grafica 3: Dıas totales del proceso por zona para los segundos 3 periodos.

Terceros 3 periodos:

Con K = 92 y los resultados del ultimo periodo de la instancia anterior se corre primero la ins-tancia con la Formulacion 3, sin la restriccion (19), despues con el resultado se restrıngen los dıasen los que se puede realizar la asignacion de las tareas y se corre la instancia con la Formulacion2, sin la restriccion (19), como no se obtien ningun resultado despues de aproximadamente 20horas se corre la instancia con la Formulacion 4.

42

Page 44: Modelos de optimizaci on entera y su aplicaci on al ...

Tabla 4: Resultados computacionales para los terceros 3 periodos.

Grafica 4: Dıas totales del proceso por zona para los terceros 3 periodos.

Cuartos 3 periodos:

Con K = 91 y los resultados del ultimo periodo de la instancia anterior se corre la instancia con laFormulacion 4, sin las restricciones (15), dado que se identifica que es causantes de infactibilidadde la instancia.

Tabla 5: Resultados computacionales para los cuartos 3 periodos.

Grafica 5: Dıas totales del proceso por zona para los cuartos 3 periodos.

43

Page 45: Modelos de optimizaci on entera y su aplicaci on al ...

Grafica 6: Dıas totales del proceso por zona cercanos a 365.

Analisis de los resultados computacionales instancia de 12 periodos.

Las soluciones para cada una de las instancias pequenas de 3 periodos se encontraron a optima-lidad.

La importancia de dividir la instancia de 12 periodos esta en encontrar una solucion factibleparara el problema, sin importar que no sea el optimo. Para la companıa la asignacion de estastareas en el horizonte de tiempo establecido cumpliendo con las condiciones es necesaria, luegouna solucion factible que sea buena es suficiente.

La suma de los dıas de desfase con respecto al K correspondiente para cada una de las ins-tancias pequenas de 3 periodos es de: 17 (primeros 3 periodos), 21 (segundos 3 periodos), 2(terceros 3 periodos) y 26 (cuartos 3 periodos). Con respecto a 365 la suma de los dıas dedesfase es 38. Se observa que el desfase total con respecto a 365 no es muy alto, en promedioel proceso toma 363.5 dıas y tiene una varianza de 4.8. Para 4 zonas el proceso toma 365 dıasy para el resto oscila entre 359 y 368. De las 20 zonas 2 estan por encima de 365 y 14 por debajo.

Restringir el numero de dıas en los que se hace la asignacion de las tareas utilizando la Formu-lacion 3 para los primeros y los segundos 3 periodos, es necesario para encontrar una soluciona la instancia de 12 periodos. De no ser ası para los cuartos 3 periodos no se podrıan asignartodas las tareas dentro de los dıas que quedan despues de hacer la asignacion de los 9 periodosanteriores.

Todas las restricciones del problema se cumplen para los primeros 9 periodos, solo para losultimos la restriccion (15) se quito. Esto quiere decir que la solucion encontrada finalmente noesta dentro de la region factible inicial para la instancia de 12 periodos, pero como se men-ciono antes esta es una solucion aceptada por la companıa. El problema con todas las restric-ciones para la instancia de 12 periodos al parecer es infactible.

44

Page 46: Modelos de optimizaci on entera y su aplicaci on al ...

5. Conclusiones

Se presenta una revision de los algoritmos de branch-and-bound, cutting-planes y branch-and-cut.Para el algoritmo de cutting-planes se muestra como todas las desigualdades validas se puedenconstruir aplicando el procedimiento de Chvatal-Gomory un numero finito de veces. Tambiense estudian: Gomory’s fractional cuts y 0-1 Knapsack inequalities. Se muestra que Gomory’sfractional cuts son desigualdades validas para los problemas enteros y se construyen las coverinequalities, extended cover inequalities, lift cover inequalities, separation cover inequalities yGUB cover inequalities para el problema de la mochila (Knapsack).

Para el caso de aplicacion de elaboracion del cronograma de trabajo de un proceso que unacompanıa lleva a cabo en una ciudad, se presentan 4 foulaciones de modelos de optimizacioncon enteros para resolver el problema. Para la Formulacion 1 se encontraron dos grupos de de-sigualdades que proveen mejores cortes, haciendo que el tiempo de solucion sea menor (comose observa en la Formulacion 2). Implementando estos modelos en el lenguaje del optimizadorXpress-MP se encuentra el calendario de asignacion de tareas para una instancia de 3 periodos.Dado que las formulaciones tienen diferentes objetivos o diferencias en algunos grupos de restric-ciones se comparan los tiempos computacionales, arboles de branch-and-bound y resultados (dıasde desfase de K) de cada uno de los modelos. Para una instancia de 12 periodos se encuentrauna solucion dividiendo esta en instancias pequenas de 3 periodos, que se resuelven de formasecuencial (alimentando la siguiente instancia con los resultados de la instancia anterior).

Como trabajo futuro queda seguir aprendiendo sobre los tipos de desigualdades validas que hayen la literatura, pues los mencionados en este trabajo para el algoritmo de Cutting-Planes sonsolo unos pocos. Investigar el funcionamiento del optimizador para poder definir las estrategiaso cortes a utilizar. Esto con el fin de saber como cambia la solucion de un problema determinadosi no se usaran las opciones por defecto del optimizador. Finalmente realizar mejoras en laFormulacion 4 para que los elementos que se estan ponderando sean comparables. Esto podrıaser por medio de la inclusion de costos reales para la asignacion de las tareas, para los dıas dedesfase y para la realizacion de todas las tareas en el mınimo tiempo posible. Tambien se puededeterminar coeficientes de ponderacion reales para cada uno de los objetivos del problema quese encuentran en la funcion objetivo.

45

Page 47: Modelos de optimizaci on entera y su aplicaci on al ...

Referencias

Bertsimas, D. & Tsitsiklis, J.N., (1997). Introduction to Linear Optimization.(Tercera Impre-sion). Nashua, U.S.A.: Athena Scientific.

Ibaraki, T., (1976). Computational efficiency of approximate branch-and-bound algorithms. Mat-hematics of operations research;1(3):1-13.

Nemhauser, G.L. & Wolsey, L.A., (1999). Integer and Combinatorial Optimization. New York,U.S.A.: Wiley.

Martın, Q., (2003). Investigacion Operativa. Madrid, Espana: Prentice Hall.

Ramusio Mora, S., (2010). Un algoritmo branch and cut para el problema de asignacion defrecuencias en sistemas de radio punto a multipunto. (Tesis de Licenciatura en Ciencias de laComputacion) .Facultad de Ciencias Exactas y Naturales. Departamento de Computacion. Uni-versidad de Buenos Aires.

Wolsey, L.A., (1998). Integer Programing. New York, U.S.A.: Wiley.

Zonghao, G., Nemhauser, G.L., & Savelsbergh, M.W., (1998). Lifted cover inequalities for 0-1integer programs: Computation. Informs journal on computing;10(4):427-437.

46