licenciatura en ciencias estad´ısticas · de aqu´ı en adelante, generalmente se usar´a el...

55
Investigaci´onOperativa Licenciatura en Ciencias Estad´ ısticas Curso 2008-2009 Profesor: Sergio Garc´ ıa Quiles

Upload: doandiep

Post on 30-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Investigacion Operativa

Licenciatura en Ciencias Estadısticas

Curso 2008-2009

Profesor: Sergio Garcıa Quiles

Indice general

1. Programacion Lineal Entera 1

1.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Conceptos iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4. La tecnica de ramificacion y acotacion . . . . . . . . . . . . . . . . . 8

1.5. Generacion de cortes . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.5.1. Metodo de Dakin . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.6. Cortes de Gomory puros . . . . . . . . . . . . . . . . . . . . . . . . . 20

2. Optimizacion en redes 25

2.1. Total unimodularidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2. El problema del transporte . . . . . . . . . . . . . . . . . . . . . . . . 27

2.3. El problema de la asignacion . . . . . . . . . . . . . . . . . . . . . . . 29

2.4. Conceptos basicos de grafos . . . . . . . . . . . . . . . . . . . . . . . 30

2.4.1. Definiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4.2. Representacion matricial de grafos . . . . . . . . . . . . . . . 32

2.5. El problema del arbol de union de peso mınimo . . . . . . . . . . . . 34

4 Investigacion Operativa

2.6. El problema del camino mas corto . . . . . . . . . . . . . . . . . . . . 37

2.7. El problema del flujo de coste mınimo . . . . . . . . . . . . . . . . . . 40

3. Programacion Lineal Multiobjetivo 45

3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.2. Metodos de resolucion . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.2.1. Metodo de las ponderaciones . . . . . . . . . . . . . . . . . . . 48

3.2.2. Metodo de las restricciones . . . . . . . . . . . . . . . . . . . . 48

3.2.3. Metodo de programacion por metas . . . . . . . . . . . . . . . 49

Tema 1

Programacion Lineal Entera

1.1. Introduccion

La Programacion u Optimizacion (Lineal) Entera o Discreta es la parte de la Pro-gramacion Lineal en la que algunas (o la totalidad) de las variables que intervienenen los problemas tienen restricciones de integridad.

Los problemas de variables enteras aparecen en problemas cotidianos con mu-cha facilidad: diseno de horarios para companıas de transporte (son de particularimportancia y poseen una tremenda complejidad los horarios de companıas aereas),planificacion de la produccion, localizacion de centros de servicio. . . No solo apare-cen ligados a aspectos economicos o industriales, sino tambien a ambitos estadısticos(analisis de datos), fısicos (determinacion de estados mınimos de energıa) o crip-tograficos (diseno de codigos seguros), por citar solo unos pocos.

Las variables enteras aparecen en estos problemas de manera natural a la hora demodelar elementos indivisibles (numero de productos a fabricar, plantas industrialesa localizar, ciudades a visitar. . . ). De especial interes son las variables binarias, de-nominadas tambien variables 0-1, que reflejan decisiones logicas (sı/no) en compras,inversiones, asignaciones, etc.

Hasta finales de la decada de los ochenta, la resolucion de problemas enterosestaba muy limitada: el tamano de los problemas que podıan resolverse era bastantepequeno pese a poderse resolver problemas lineales (sin restricciones de integridad)de tamano mucho mayor. Esto es consecuencia del gran incremento en la dificultadde resolucion que supone el (aparentemente simple) hecho de exigir que las variablestomen sus valores sobre un conjunto discreto en lugar de sobre uno continuo. Sin

2 Investigacion Operativa

embargo, en los ultimos quince anos han podido resolverse problemas bastante masdifıciles y grandes gracias a una combinacion de:

- mejores modelizaciones de los problemas,

- ordenadores mas potentes,

- mejores programas informaticos de Programacion Lineal,

- nuevos algoritmos y teorıas de planos de corte,

- algoritmos de ramificacion y corte y de descomposicion de problemas enteros.

En esta primera parte de la asignatura nos centraremos en familiarizarnos conlos conceptos basicos de los planos de corte.

1.2. Ejemplos

Desde el momento que nos planteamos resolver un problema real, vemos que lasvariables restringidas a tomar valores enteros aparecen de un modo natural.

Ejemplo 1Ante la proximidad de un viaje, estamos preparando la maleta de mano y decidiendoque vamos a llevar. Tenemos los siguientes 7 objetos, i = 1, . . . , 7, cada uno con supeso wi (en kilogramos) y su utilidad ui (en unidades de beneficio esperado):

Objeto 1 2 3 4 5 6 7Peso 2.5 1.2 2.1 3.2 4.3 0.5 0.6Utilidad 3 2 5 4 6 3 8

Sabiendo que no estamos dispuestos a cargar con mas de 8 kilos, ¿cual es la mejorseleccion de objetos?Solucion:

Comenzamos definiendo la variable

xi =

{

1, si llevamos el objeto i,

0, en caso contrario,

i = 1, . . . , 7.

La funcion a maximizar es 3x1 + 2x2 + 5x3 + 4x4 + 6x5 + 3x6 + 8x7.

Tema 1. Programacion Lineal Entera 3

Por otra parte, como no podemos exceder un cierto peso lımite, debe cumplirsela siguiente desigualdad:

2.5x1 + 1.2x2 + 2.1x3 + 3.2x4 + 4.3x5 + 0.5x6 + 0.6x7 ≤ 8.

Ademas, las variables xi deben ser binarias: xi ∈ {0, 1}, i = 1, . . . , 7.

En consecuencia, nuestra problema puede representarse mediante el siguientemodelo:

Max. 3x1 + 2x2 + 5x3 + 4x4 + 6x5 + 3x6 + 8x7

s.a 2.5x1 + 1.2x2 + 2.1x3 + 3.2x4 + 4.3x5 + 0.5x6 + 0.6x7 ≤ 8,x1, x2, x3, x4, x5, x6, x7 ∈ {0, 1}.

El ejemplo que acabamos de ver es un caso particular con datos concretos delsiguiente problema:

Ejemplo 2 (El problema de la mochila)En el Problema de la Mochila (Knapsack Problem) hay n artıculos o bienes y se

debe decidir cuales tomar. El j-esimo bien tiene un peso aj y un valor cj en caso detomarse. Cada bien, o se coge entero o se deja, pero no es posible tomar solo unafraccion del mismo. Ademas, tampoco se puede exceder una capacidad b disponiblepara guardar los objetos tomados (como puede ser una mochila). Si definimos lasvariables

xj =

{

1 si el j-esimo artıculo se toma,

0 en caso contrario,

entonces el problema a resolver es el siguiente:

Max.∑n

j=1 cjxj

s.a∑n

j=1 ajxj ≤ b,

x ∈ Bn.

En una version mas general del problema, la restriccion x ∈ Bn se sustituye porlas acotaciones xj ≤ uj, j = 1, . . . , n, con los uj enteros positivos. Otra variante delproblema consiste en incluir una variable continua que represente la posibilidad deadquirir espacio adicional a cierto coste. �

El siguiente modelo es uno de los problemas mas clasicos del campo de Localiza-cion Discreta:

Ejemplo 3 (Problema de localizacion de plantas sin capacidades)En el Problema de Localizacion de Plantas sin Capacidades, se pueden instalar o

abrir plantas de servicio en m puntos posibles con costes fi, i = 1, . . . ,m, respec-tivamente, para satisfacer las demandas de n clientes. Cada cliente necesita que le

4 Investigacion Operativa

sean servidas dj unidades, j = 1, . . . , n. Ademas, el coste de servir una unidad deproducto desde la planta i al cliente j es de cij unidades monetarias.

Definiendo las variables de decision

xij = numero de unidades que sirve la planta i al cliente j,

yi =

{

1 si la planta i esta abierta,

0 en caso contrario,

el problema puede ser formulado de la siguiente forma:

Min.∑m

i=1 fiyi +∑m

i=1

∑nj=1 cijxij

s.a∑m

i=1 xij = dj, j = 1, . . . , n,yi ∈ {0, 1}, i = 1, . . . ,m,

xij ∈ Z+, i = 1, . . . ,m, j = 1, . . . , n.

1.3. Conceptos iniciales

Definicion 4 (Problema de optimizacion lineal)Se llama Problema (de optimizacion) Lineal (PL) a un problema de la forma

(PL)

Min. ctxs.a Ax ≤ b,

x ≥ 0,

donde c ∈ Rn es el vector de costes, A ∈ Mm×n(R) es la matriz de restricciones,b ∈ Rm es el vector de recursos y x ∈ Rn es el vector de variables de decision.

Esta definicion no es en absoluto restrictiva, pues:

- todo problema lineal de maximizacion puede transformarse en uno de minimi-zacion multiplicando el vector de costes por -1;

- las desigualdades de mayor o igual se multiplican por -1 para obtener desigual-dades de menor o igual;

- cualquier igualdad πtx = π0 es equivalente al par de desigualdades{

πtx ≤ π0,−πtx ≤ −π0;

- si una variable xt es negativa, se puede realizar el cambio de variable xt = −x′t,

con x′t ≥ 0;

Tema 1. Programacion Lineal Entera 5

- si una variable xt es libre (es decir, puede tomar valores tanto positivos comonegativos), se puede hacer el cambio de variable xt = x′

t − x′′t , con x′

t, x′′t ≥ 0.

Definicion 5 (Problema lineal entero mixto)Un problema de la forma

(PLEM)

Min. ctxs.a Ax ≤ b,

x ≥ 0,xj ∈ Z+, j ∈ J,

con J ⊆ N , se dice que es un Problema Lineal Entero Mixto, PLEM.

Si J = Ø lo que en realidad se tiene es un problema lineal. Si J = N se dice quees un problema entero puro o simplemente un problema entero. Si la restriccionde integridad se sustituye por xj ∈ {0, 1}, j ∈ J , se habla de problema binario oproblema cero-uno (mixto).

Definicion 6 (Relajacion lineal)Dado un problema entero (PE), su relajacion lineal (PEL) consiste en eliminar lasrestricciones de integridad de (PE).

De aquı en adelante, generalmente se usara el termino problema lineal para re-ferirse a problemas lineales sin restricciones de integridad, omitiendose el adjetivolineal en los problemas enteros y binarios (puros o mixtos).

La relajacion lineal de un problema entero es ese mismo problema pero sin lasrestricciones de integralidad. Normalmente, si representamos mediante P o PE elproblema original, su relajacion lineal se suele representar mediante PL. Los valoresoptimos de estos problema se denotan, respectivamente, zE y zL.

Proposicion 7En un problema de minimizacion, se cumple que zL ≤ zE. En un problema demaximizacion, zL ≥ zE.

Este resultado es trivial, pues toda solucion factible entera es factible para larelajacion lineal. Sin embargo, no toda solucion factible de la relajacion lineal esfactible del problema entero original. Mas adelante, esta propiedad nos sera muy utila la hora de resolver problemas enteros.

Definicion 8La envolvente convexa de un conjunto A es el menor conjunto convexo que contienea dicho conjunto A.

Cuando tenemos un problema entero, la region factible es un conjunto discretode puntos: PL ∩ Zn

+. Existe un problema continuo cuya solucion coincide con la

6 Investigacion Operativa

que buscamos: optimizar la funcion objetivo sobre conv((

PL ∩ Zn+

)

). Sin embargo,obtener explıcitamente este conjunto es a su vez una tarea realmente compleja.

Como la region factible del problema entero es mucho mas pequena que la de sucontrapartida continua, cabrıa esperar que los problemas enteros fuesen mucho masfaciles de resolver. Sin embargo, la realidad es diametralmente opuesta: son bastantemas difıciles. Esto es consecuencia del caracter discreto del conjunto de soluciones.

Cabe ahora preguntarse si redondear es o no una buena alternativa para pasarde una solucion optima continua a una solucion optima discreta. La respuesta es queno, pues las soluciones optimas del problema entero y de la relajacion lineal puedendistar mucho entre sı, como muestra el siguiente ejemplo.

Ejemplo 9Resuelve graficamente el siguiente problema:

Max. x2

s.a x1 − 0.9x2 ≥ 1,x1 ≤ 1.9,

x1, x2 ∈ Z2+.

Solucion:

La solucion optima de la relajacion lineal, (x∗1, x

∗2) = (1.9, 100), tiene valor opti-

mo z∗L = 100.

Si redondeamos al valor entero mas cercano, (2,100), estamos en un punto infac-tible.

De hecho, la solucion optima se encuentra “muy lejos”: es el punto (1,0), convalor optimo z∗E = 0.

50

100

1,0 1,5 2,0 2,5

z∗L = 100,(x∗

1, x∗2) = (1.9, 100)

El redondeo a (2,100)

no es factible.

z∗E = 0(x∗

1, x∗2) = (1, 0)

Definicion 10 (Formulacion)Un poliedro P ⊆ Rn es una formulacion para el subconjunto X de Zp × Rn−p si

X = P ∩(

Zp × Rn−p)

.

Tema 1. Programacion Lineal Entera 7

Observese que un mismo conjunto admite formulaciones distintas.

Ejemplo 11En la figura 1.1 se muestra dos formulaciones distintas para el conjunto

X = {(1, 1), (2, 1), (3, 1), (1, 2), (2, 2), (3, 2), (2, 3)}.

bc bc bc bc bc

bc bc bc bc bc

bc bc bc bc bc

bc bc bc bc bc

b b b

b b b

b

P1

P2

Figura 1.1: Dos formulaciones distintas de un mismo problema entero

Geometricamente, se ve rapidamente que hay innumerables formulaciones paraun mismo problema. Entonces, ¿como elegir la mejor?

De nuevo, la geometrıa nos da la respuesta. Observese la figura 1.2, en la que sehan repetido las dos formulaciones mostradas en la figura 1.1 y se ha anadido unatercera P3. Esta ultima formulacion es ideal, porque si se resuelve un problema linealsobre P3, la solucion optima es un punto extremo. En este caso, cada punto extremoes entero, por lo que el problema entero puede resolverse como un simple problemalineal (sin necesidad de incluir condiciones de integridad).

bc bc bc bc bc

bc bc bc bc bc

bc bc bc bc bc

bc bc bc bc bc

b b b

b b b

b

P1

P2

P3

Figura 1.2: La formulacion ideal

Lo deseable serıa que todos los puntos extremos del poliedro que se usa comoformulacion fuesen enteros.

8 Investigacion Operativa

Definicion 12 (Poliedro entero)Un poliedro se dice que es entero si todos sus puntos extremos son enteros.

Sin embargo, pocas veces sucede que la formulacion de la que se parte sea laformulacion ideal. Ademas, tratar de encontrar todas las restricciones de esta formu-lacion ideal no es posible en la practica, pues normalmente es necesario un numeroexponencial de restricciones. Esto motiva la siguiente definicion:

Definicion 13 (Mejor formulacion)Dadas dos formulaciones P1 y P2 de un conjunto X ⊆ Rn, se dice que P1 es mejorformulacion que P2 si P1 ⊆ P2.

Para lograr una buena formulacion, habra que ir anadiendo al problema originaldesigualdades que delimiten la region factible entera lo mejor posible.

Definicion 14 (Desigualdad valida)Una desigualdad πtx ≤ π0 se dice que es una desigualdad valida para un proble-ma (P ) si es satisfecha por todos los puntos factibles del problema.

Definicion 15 (Dominancia)Dadas dos desigualdades validas πtx ≤ π0 y πtx ≤ π0 para un mismo problema, sedice que la primera desigualdad domina a la segunda si existe un valor λ > 0 tal que

π ≤ λπ y λπ0 ≤ π0,

con al menos una de las dos desigualdades estricta.

Definicion 16 (Corte)Una desigualdad πtx ≤ π0 se dice que es un corte para un problema entero (PE) si,ademas de ser desigualdad valida, existe algun punto de la relajacion lineal (PEL)de este problema que no la satisface. En ese caso, se dice que la desigualdad cortadichos puntos.

1.4. La tecnica de ramificacion y acotacion

Hemos visto que si somos capaces de encontrar la formulacion de la envolventeconvexa de nuestro problema original, basta optimizar sobre esa nueva formulacionpara obtener la solucion de nuestro problema entero inicial. Sin embargo, hallar dichadescripcion de la region factible entera, en el mejor de los casos, es tan difıcil comoresolver el problema. Por lo tanto, es necesario recurrir a otras tecnicas de resolucion.Una, cuya idea es simple, pero que es muy eficaz, consiste en dividir el problema ensubproblemas mas pequenos y mas sencillos de resolver. Despues, nos quedaremoscon la mejor de las soluciones de esos subproblemas.

Tema 1. Programacion Lineal Entera 9

La pregunta que se plantea es: ¿como dividir el problema

z = mın{

ctx : x ∈ S}

en un conjunto de problemas mas pequenos y faciles, solucionarlos y despues reunirla informacion obtenida para resolver el problema original?

La siguiente proposicion da una primera idea sencilla para conseguirlo.

Proposicion 17 (Divide y venceras)Sea S = S1 ∪ · · · ∪ SK una descomposicion de S. Si

zk = mın{

ctx : x ∈ Sk

}

, k = 1, . . . , K,

entonces z = mın{

zk}K

k=1.

Un modo habitual de representar este metodo de divide y venceras es medianteun arbol de enumeracion. Por ejemplo, para S = B3, se puede construir el arbol dela figura 1.3.

S

S0

x1 = 0

S00

x2 = 0

S000

x3 = 0

S001

S01

S010 S011

S1

x1 = 1

S10

S100 S101

S11

S110 S111

Figura 1.3: Arbol de enumeracion binario

Aquı, en primer lugar se ha divido el conjunto S en

S0 = {x ∈ S : x1 = 0}

yS1 = {x ∈ S : x1 = 1};

despues,S00 = {x ∈ S0 : x2 = 0},

S01 = {x ∈ S0 : x2 = 1},

10 Investigacion Operativa

S10 = {x ∈ S1 : x2 = 0},

S11 = {x ∈ S1 : x2 = 1};

y ası sucesivamente. De este modo, las hojas del arbol son precisamente los puntosde B3 que uno examinarıa si hiciese una enumeracion completa. Observese que, porconvenio, el arbol se dibuja de arriba a abajo con la raız en lo mas alto.

Para la mayorıa de los problemas es totalmente imposible una enumeracion com-pleta de todas las soluciones factibles. Por lo tanto, es necesario hacer algo mas quedividir hasta tener enumerados todos los puntos. ¿Como se pueden utilizar cotas delos valores {zk}k de modo inteligente? Primero, ¿como puede unificarse la informa-cion sobre las cotas?

Proposicion 18Sea S = S1 ∪ . . . SK una descomposicion de S, y sean zk = mın {ctx : x ∈ Sk}, zk

una cota superior de zk y zk una cota inferior para cada k. Se verifica:

i) z = mın{

zk}K

k=1es una cota superior de z;

ii) z = mın{

zk}K

k=1es una cota inferior de z.

En los siguientes ejemplos se muestra como se usa la informacion de las cotas delos subproblemas para podar (eliminar) nodos.

Ejemplo 19 (Poda por optimalidad)En primer lugar, z = mın{20, 25} = 20, z = mın{20, 15}. En segundo lugar, se

observa que las cotas inferior y superior para z1 coinciden, por lo que no es necesarioseguir examinando S1. Ası, la rama S1 del arbol de enumeracion se puede podar poroptimalidad.

S2713

S12020

S22515

S2015

S1 S22515

Figura 1.4: Poda por optimalidad

Ejemplo 20 (Poda por acotacion)Como el valor optimo es menor o igual que 20, no hay ninguna solucion optima

en la rama S2. Ası, esta rama se puede podar por acotacion.

Tema 1. Programacion Lineal Entera 11

S2713

S12018

S22621

S2018

S12018

S2

Figura 1.5: Poda por acotacion

Ejemplo 21 (Poda por infactibilidad)Consideremos que una restriccion del problema es x1 + x2 + x3 ≤ 1, siendo las tresvariables binarias. En el nodo al que se llega mediante la ramificacion x1 = 1, x2 = 1no hay puntos factibles. Por lo tanto, queda descartado automaticamente. �

Ası pues, las siguientes razones permiten podar una rama del arbol de busqueda:

i) Poda por optimalidad: el problema zr = mın {ctx : x ∈ S} se ha resuelto;

ii) Poda por acotacion: zr ≥ z;

iii) Poda por infactibilidad: Sr = Ø.

Un modo de obtener cotas inferiores es resolver las relajaciones lineales de losproblemas. Por otro lado, cualquier punto factible del problema proporciona unacota superior.

Este modo de trabajar se denomina ramificacion y acotacion (branch-and-bound).

Un nodo activo es aquel que todavıa no ha sido procesado. Cuando ya ha sidoprocesado se denomina inactivo. Un nodo podado es un nodo que se ha descartado.

El nodo raız es el nodo del que parte el arbol. Cuando se ramifica, se elige unavariable de ramificacion que esta restringida de distinto modo segun la rama delarbol de ramificacion en la que estemos. De cada nodo, salen dos o mas nodos hijos.El nodo del que se originan se denomina nodo padre.

En el proceso, la mejor solucion entera almacenada se denomina solucion incum-bente. Su valor objetivo es el valor incumbente.

12 Investigacion Operativa

Seleccion de nodo y variable

A la hora de trabajar en un algoritmo de ramificacion cabe preguntarse como seelige en que variable ramificar y que nodo analizar (sondear).

En general, para elegir la variable de ramificacion, escogeremos aquella que seamas fraccional, esto es, cuya parte decimal este mas cerca de 0.5.

Para elegir el siguiente nodo activo a analizar, hay varias alternativas:

1. Busqueda en horizontal (breadth-first search): se elige el nodo de menor pro-fundidad.

2. Busqueda en profundidad (depth-first search): se elige el nodo de mayor pro-fundidad.

3. Busqueda en calidad (best-first search): se elige el nodo con mejor relajacionlineal. En el caso de un problema de minimizacion, el de menor relajacionlineal; equivalentemente, el de menor cota inferior. En el caso de un problemade maximizacion, el de mayor relajacion lineal; equivalentemente, el de mayorcota superior.

El tercer criterio suele ser el mas popular.

Veamos como aplicar el algoritmo.

Ejemplo 22Resuelve el siguiente problema:

(P )

Max. 3x1 + 2x2 − 5x3 − 2x4 + 3x5

s.a x1 +x2 +x3 +2x4 +x5 ≤ 4,7x1 +3x3 −4x4 +3x5 ≤ 8,

11x1 −6x2 +3x4 −3x5 ≥ 3,x1, x2, x3, x4, x5 ∈ {0, 1}.

Solucion:

Comenzamos por resolver la relajacion lineal. Para ello, reemplazamos las res-tricciones de binaridad por 0 ≤ xi ≤ 1, i = 1, . . . , 5.

Como solucion optima, obtenemos el punto (0.97, 1, 0, 0.45, 1), que tiene valoroptimo zL = 7.02. Al no ser entera la solucion, debemos crear un arbol de ramifica-cion.

N17

Tema 1. Programacion Lineal Entera 13

Observemos que, como el valor optimo debe ser entero (pues la funcion objetivotiene coeficientes enteros y variables binarias), la cota superior inicial de 7.02 puederefinarse inmediatamente a z = 7.

Ahora, para ramificar, elegimos las variable x4, que es la mas fraccional.

N17

N2

x4 = 0

N3

x4 = 1

Resolvemos ahora los problemas asociados a los nodos N2 y N3, respectivamente.Esto es, el problema (PL) al que se le agrega x4 = 0 y x4 = 1, respectivamente. Sussoluciones son:

(P2)

{

x2 = (0.94, 1, 0, 0, 0.46),z2 = 6.22,

(P3)

{

x3 = (1, 0, 0, 1, 1),z3 = 4.

Al resolver el nodo N2, vemos que la solucion es fraccional y el valor de la re-lajacion lineal no mejora la cota superior que ya se tiene en la raız. Sin embargo,por el mismo razonamiento que antes, para este nodo, la cota superior de 6.22 puederefinarse a 6.

Cuando solucionamos el nodo N3, obtenemos una solucion entera (la primera queencontramos). Este punto pasar a ser la solucion incumbente xI = (1, 0, 0, 1, 1) y suvalor optimo pasa a ser el valor incumbente zI = 4, que es una cota inferior de lasolucion optima.

N17

N26

x4 = 0

N344

x4 = 1

xI = (1, 0, 0, 1, 1),zI = 4.

Podamos el nodo N3 por optimalidad y actualizamos la cota inferior del nodoraız.

14 Investigacion Operativa

N174

N26

x4 = 0

N3

x4 = 1

xI = (1, 0, 0, 1, 1),zI = 4.

Nos situamos en el nodo N2 y recordamos que la solucion relajada era (0.94, 1, 0, 0, 0.46).Ramificamos en x5 y resolvemos los problemas asociados:

(P4)

{

x4 = (1, 1, 0, 0, 0),z4 = 5,

(P5)

{

x5 = (0.71, 0.31, 0, 0, 0),z5 = 5.76.

El nodo N4 proporciona una solucion entera mejora que la incumbente, por loactualizamos esta. Tambien se actualiza la cota inferior de los nodos ascendientes.Se poda por optimalidad el nodo N4.

La cota superior de N5 puede refinarse a 5, que coincide con la cota inferior delproblema (acabamos de obtener una solucion entera con ese valor). El nodo N5 sepoda por acotacion.

N174

N26

x4 = 0

N455

x5 = 0

N55

x5 = 1

N3

x4 = 1

xI = (1, 1, 0, 0, 0),zI = 5.

Como ya no nos quedan nodos por explorar, hemos acabado: la solucion optimaes x∗ = (1, 1, 0, 0, 0) y el valor optimo z∗ = 5.

1.5. Generacion de cortes

Como se ha dicho anteriormente, un corte es una desigualdad valida que eliminauna solucion fraccional del problema, pero que no modifica el conjunto de solucionesdel problema entero.

Tema 1. Programacion Lineal Entera 15

1.5.1. Metodo de Dakin

En la seccion anterior, hemos visto como se trabaja con un arbol de ramificacion,pero no hemos abordado de modo especıfico como se trabaja con esas desigualdadesque aparecen cuando se crean las distintas ramas.

Supongamos que la variable xk tiene un valor optimo fraccional x∗k. En los nodos

hijos obtenidos al ramificar mediante las desigualdades

xk ≤ [x∗k] y xk ≥ [x∗

k] + 1,

los problemas que queremos resolver tienen las mismas desigualdades que el nodocon una salvedad: aparece una desigualdad adicional.

Resolver estos problemas desde cero no serıa eficiente. Vamos a ver que, graciasal metodo dual del sımplex, es posible usar la base optima del nodo padre paraaprovechar el trabajo ya hecho.

Introduciendo xk ≤ [x∗

k]

Como xk es una variable basica, su fila asociada de la base optima es de la forma

xk +∑

j∈N

ykjxj = x∗k.

Al introducir la restriccion xk ≤ [x∗k], anadimos la variable de holgura x para

obtenerxk + x = [x∗

k].

Reemplazado xk en la primera igualdad por como se expresa en la segunda, setiene que

[x∗k]− x +

j∈N

ykjxj = x∗k.

Si fk denota la parte fraccional del valor de xk, entonces

−∑

j∈N

ykjxj + x = −fk.

Ahora anadimos esta nueva igualdad como una fila adicional a la tabla optimade la que hemos partido y observamos que:

1. La tabla sigue siendo optima: puesto que la variable de holgura x tiene costereducido nulo, los costes reducidos no varıan.

16 Investigacion Operativa

2. El lado derecho vale −fk, por lo que es estrictamente negativo.

En consecuencia, se trata de una tabla optima pero no factible primal. Hay queaplicar el metodo dual del sımplex.

Introduciendo xk ≥ [x∗

k] + 1

De modo analogo, puesto que xk es una variable basica, su fila asociada de labase optima es de la forma

xk +∑

j∈N

ykjxj = x∗k.

Al introducir la restriccion xk ≥ [x∗k] + 1, anadimos la variable de holgura x para

obtenerxk − x = [x∗

k] + 1.

Equivalentemente,−xk + x = −[x∗

k]− 1.

Combinando ambas igualdades, obtenemos que

j∈N

ykjxj − x∗k + x = −[x∗

k]− 1;

j∈N

ykjxj + x = f ∗k − 1.

Al anadir esta nueva igualdad como una fila adicional a la tabla optima de la quehemos partido, nuevamente sucede que tenemos una tabla optima pero no factibleprimal. Por lo tanto, es necesario aplicar el metodo dual del sımplex para obtenerfactibilidad.

Ejemplo 23

(P1)

Min. 4x1 + 5x2

s.a −x1 −4x2 ≤ −5,−3x1 −2x2 ≤ −7,

x1, x2 ∈ Z+.

Comenzamos resolviendo el problema relajado (es decir, todas las variables sesuponen continuas). Para ello, podemos aplicar el metodo dual del sımplex, pues latabla siguiente de partida es optima, pero no factible primal.

⋄ Iteracion 1:

Tema 1. Programacion Lineal Entera 17

x3 0 -1 -4 1 0 -5x4 0 -3 -2 0 1 -7 →

zj − cj -4 -5 0 0 0↑

⋄ Iteracion 2:

x3 0 0 -10

31 -1

3-8

3→

x1 4 1 2

30 −1

3

7

3

zj − cj 0 −7

30 −4

3

28

3

⋄ Iteracion 3:

x2 5 0 1 − 3

10

1

10

4

5

x1 4 1 0 1

5−2

5

9

5

zj − cj 0 0 − 7

10−11

10

56

5

Como la solucion optima de este problema relajado es fraccional, hay que rami-ficar. Para ello, elegimos la variable mas fraccional. Al haber empate, tomamos unacualquiera de ellas. Por ejemplo, x1.

Ramificamos y obtenemos los problemas

(P2)

{

(P1),

x1 ≤ 1,(P3)

{

(P1),

x1 ≥ 2.

N1 565

N2

x1 ≤ 1

N3

x1 ≥ 2

Resolvemos (P2):

x2 5 0 1 − 3

10

1

100 4

5

x1 4 1 0 1

5−2

50 9

5

x5 0 0 0 -1

5

2

51 -4

5→

zj − cj 0 0 - 7

10−11

100 56

5

18 Investigacion Operativa

x2 5 0 1 0 -1

2-3

22

x1 4 1 0 0 0 1 1x3 0 0 0 1 -2 -5 4

zj − cj 0 0 0 -5

2-7

214

Esta tabla es optima y tiene solucion entera. Como es la primera, pasa a ser laincumbente. Actualizamos las cotas del arbol y podamos este nodo.

N114565

N21414

N3

x1 ≥ 2

xI = (1, 2),zI = 14.

Resolvemos (P3):

x2 5 0 1 − 3

10

1

100 4

5

x1 4 1 0 1

5−2

50 9

5

x5 0 0 0 1

5-2

51 -1

5→

zj − cj 0 0 - 7

10−11

100 56

5

x2 5 0 1 -1

40 1

4

3

4

x1 4 1 0 0 0 -1 2

x4 0 0 0 -1

21 -5

2

1

2

zj − cj 0 0 -5

40 -11

4

47

4

Esta tabla es optima, pero la solucion es fraccional. Ramificamos en x2. Antes,actualizamos el arbol.

N114474

N21414

N3

x1 ≥ 2

N4

x2 = 0

N5

x2 ≥ 1

xI = (1, 2),zI = 14.

Tema 1. Programacion Lineal Entera 19

Para resolver (P4), en lugar de anadir el corte x2 ≤ 0, nos vamos a la formulacionoriginal. Como el problema tiene unicamente dos variables, ahora es un problema deuna variable. Es inmediato resolverlo por inspeccion.

Min. 4x1

s.a −x1 ≤ 5,−3x1 ≤ −7,

x1 ∈ Z+.

El optimo de este problema es x∗ = (5, 0), con valor optimo z∗ = 20. Como estasolucion es peor que la incumbente, podemos podar el nodo.

N114474

N21414

N3

x1 ≥ 2

N4 N5

x2 ≥ 1

xI = (1, 2),zI = 14.

Ahora, resta resolver (P5):

(P5)

{

(P3),

x2 ≥ 1.

x2 5 0 1 -1

40 1

40 3

4

x1 4 1 0 0 0 -1 0 2

x4 0 0 0 -1

21 -5

20 1

2

x6 0 0 0 -1

40 1

41 -1

4→

zj − cj 0 0 -5

40 -11

40 47

4

x2 5 0 1 0 0 0 -1 1x1 4 1 0 0 0 -1 0 2x4 0 0 0 0 1 -3 -2 1x3 0 0 0 1 0 -1 -4 1zj − cj 0 0 0 0 -4 -5 13

20 Investigacion Operativa

Esta tabla es optima, con solucion entera y mejor valor que la incumbente. Ac-tualizamos la incumbente y podamos el nodo.

Al no quedar nodos por explorar, ya tenemos resuelto el problema: su solucionoptima es x∗ = (2, 1) y su valor optimo es z∗ = 13. �

1.6. Cortes de Gomory puros

Los metodos de hiperplanos de corte consisten en, una vez solucionado el proble-ma relajado, si este muestra solucion fraccional, introducir un hiperplano (es decir,una nueva restriccion) cumpliendo las siguientes propiedades:

el punto optimo del problema relajado no verifica la condicion del hiperplano;

todas las soluciones enteras del problema satisfacen las condiciones impuestaspor el hiperplano.

Estudiaremos el caso en que todas las variables son enteras.

Estos cortes fueron introducidos por Ralph Gomory hacia 1960. A pesar de serbastante simples, a nivel teorico tienen una gran ventaja: es posible demostrar queun algoritmo de hiperplanos de corte de Gomory converge siempre en un numerofinito de pasos.

Partimos de una tabla optima para el problema relajado. Esta solucion x tienealguna componente fraccional. Sea xk una variable basica fraccional.

xk +∑

j∈N

ykjxj = xk.

So separamos partes enteras y partes fraccionales:

xk +∑

j∈N

([ykj] + fkj) xj = [xk] + fk;

xk +∑

j∈N

[ykj]xj − [xk] = fk −∑

j∈N

fkjxj.

En las soluciones enteras, el termino de la izquierda es entero. Por la igualdad,el termino de la derecha tambien sera entero.

Por otro lado, puesto que 0 < fk < 1 y fkj ≥ 0, podemos deducir que

fk −∑

j∈N

fkjxj ≤ fk < 1.

Tema 1. Programacion Lineal Entera 21

Luego, necesariamente, sera

fk −∑

j∈N

fkjxj ≤ 0.

El corte de Gomory sera

−∑

j∈N

fkjxj ≤ −fk.

Resta ver que satisface las condiciones de hiperplano de corte.

En primer lugar, veamos que la solucion relajada x no cumple la desigualdad delcorte.

Como xN = 0, entonces −∑

j∈N

fkjxj = 0. Por otra parte, −fk < 0. Ası que

−∑

j∈N

fkjxj � −fk.

En segundo lugar, veamos que, si x′ es una solucion factible entera del problema,entonces esta solucion satisface la desigualdad de corte.

Puesto que todas las coordenadas de x′ son enteras, entonces

−∑

j∈N

fkjx′j ≤ 0 = −f ′

k.

Luego, x′ cumple la desigualdad de corte.

Para introducir este corte

−∑

j∈N

fkjxj ≤ fk,

se anade una variable de holgura entera x con coste cero:

−∑

j∈N

fkjxj + x = −fk.

Estaremos en una tabla optima que no es factible primal. En consecuencia,habra que aplicar el dual del sımplex.

22 Investigacion Operativa

Ejemplo 24

Max. 3x1 + 4x2

s.a 3x1 +x2 ≤ 6,2x1 +3x2 ≤ 9,

x1, x2 ∈ Z+.

Comenzamos resolviendo el problema relajado:

⋄ Iteracion 1:

x3 0 3 1 1 0 6x4 0 2 3 0 1 9 →

zj − cj -3 -4 0 0 0↑

⋄ Iteracion 2:

x3 0 7

30 1 -1

33 →

x2 4 2

31 0 1

33

zj − cj -1

30 0 4

312

⋄ Iteracion 3:

x1 3 1 0 3

7-1

7

9

7

x2 4 0 1 -2

7

3

7

15

7

zj − cj 0 0 1

7

9

7

87

7

Esta tabla es optima, pero tiene solucion fraccional. En consecuencia, anadiremosun corte de Gomory en la variable mas fraccional (x1). El corte que usamos es

−3

7x3 −

6

7x4 ≤ −

2

7.

Resolvamos ahora el problema ampliado:

x1 3 1 0 3

7-1

70 9

7

x2 4 0 1 -2

7

3

70 15

7

x5 0 0 0 -3

7-6

71 -2

7→

zj − cj 0 0 1

7

9

70 87

7

Tema 1. Programacion Lineal Entera 23

x1 3 1 0 0 -1 1 1

x2 4 0 1 0 1 -2

3

7

3

x3 0 0 0 1 2 -7

3

2

3

zj − cj 0 0 0 1 1

3

37

3

Como x2 es fraccional, anadimos un nuevo corte para esta variable:

−1

3x5 ≤

1

3.

Resolvemos el nuevo problema:

x1 3 1 0 0 -1 1 0 1

x2 4 0 1 0 1 -2

30 7

3

x3 0 0 0 1 2 -7

30 2

3

x6 0 0 0 0 0 -1

31 -1

3→

zj − cj 0 0 0 1 1

30 37

3

x1 3 1 0 0 -1 0 3 0x2 4 0 1 0 1 0 -2 3x3 0 0 0 1 2 0 -7 3x5 0 0 0 0 0 1 -3 1zj − cj 0 0 0 1 0 1 12

Esta tabla es optima y tiene solucion entera. Por lo tanto, ya hemos resuelto elproblema: x∗ = (0, 3) y z∗ = 12. �

Tema 2

Optimizacion en redes

En este tema, estudiaremos ciertos problemas que tienen gran importancia en elcampo de la Programacion Entera. Estos problemas tienen en comun que se pue-den representar mediante una red (un grafo). Antes, no obstante, estudiaremos unconcepto muy util: el de matriz totalmente unimodular.

2.1. Total unimodularidad

Definicion 25Se dice que una matriz A de orden m × n es totalmente unimodular si para todasubmatriz cuadrada B de A se tiene que |B| ∈ {−1, 0, 1}.

Obviamente, si A es totalmente unimodular, entonces aij ∈ {±1, 0} ∀i∀j.

Consideremos el problema

(P=)

Min. ctxs.a Ax = b,

x ≥ 0.

Supongamos, ademas, que el vector b tiene todas sus componentes enteras.

Sabemos que existe un vertice del poliedro asociado a (P=) que es solucion optima.Ademas, tambien sabemos que cualquier vertice x se puede representar como x =(xB, xN), siendo xB las coordenadas basicas y xN las no basicas para una matrizbasica B.

26 Investigacion Operativa

En particular, xB = B−1b y xN = 0, siendo B una submatriz cuadrada de A,invertible y de rango maximo.

Recordemos que B−1 = (Adj(B))t

|B|. Por lo tanto, si A es totalmente unimodular,

entonces |B| ∈ {±1, 0} y xB tiene todas sus componentes enteras. Eso significa quela relajacion lineal del problema tendra solucion optima entera.

Proposicion 26Si A y b tienen todas sus componentes enteras y la matriz A es totalmente unimo-dular, entonces los vertices del poliedro asociado P= tienen todas sus componentesenteras.

Observemos que el resultado anterior para el poliedro (P )= se refiere a un poliedroen el que todas las restricciones son de igualdad. Sin embargo, el resultado puedeextender al problema mas general

(P≤)

Min. ctxs.a Ax ≤ b,

x ≥ 0.

Proposicion 27Si A y b tienen todas sus componentes enteras y la matriz A es totalmente unimo-dular, entonces los vertices del poliedro asociado P≤ tienen todas sus componentesenteras.

Ahora bien, a la vista de una serie de restricciones que nos definen un polie-dro, ¿podemos determinar facilmente si la matriz de las desigualdades es totalmenteunimodular? La respuesta es afirmativa y viene dada por el siguiente resultado:

Proposicion 28Sea A = (aij) tal que aij ∈ {±1, 0}. Supongamos que en cada columna de la matriz Ahay un maximo de dos elementos no nulos y que las filas de dicha matriz admitenuna particion en dos subconjuntos de ındices I1 e I2 tales que:

1. Si los elementos no nulos de una columna tiene igual signo, entones las corres-pondientes filas estan en conjuntos distintos.

2. Si los elementos de una columna tienen distinto signo, entonces las correspon-dientes filas pertenecen al mismo conjunto.

Bajo estas hipotesis, la matriz A es totalmente unimodular.

Tema 2. Optimizacion en redes 27

O1

D1

O2 ...

... Dn

Om

c11

c1n c21

c2n

cm1

cmn

Figura 2.1: Problema de transporte

2.2. El problema del transporte

Como su propio nombre indica, se trata de transportar unidades de un produc-to desde m orıgenes O1, . . . , Om, hasta n destinos D1, . . . , Dn. Por comodidad denotacion, definimos I = {1, . . . ,m} y J = {1, . . . , n}.

Cada origen dispone de ai unidades de producto, i ∈ I, y cada destino demandadj unidades, j ∈ J . Estas cantidades son numeros enteros.

Supondremos que la oferta iguala a la demanda. De no ser ası, introduciremosun origen o un destino ficticio para que ambos valores sean iguales.

i∈I

ai =∑

j∈J

dj.

Para cada arco (i, j), i ∈ I, j ∈ J , tenemos asociado un coste unitario de trans-porte cij y una variable xij que representa cuantas unidades se transportan desde elorigen i hasta el destino j.

Como hay que servir todo lo que se demanda a coste mınimo, la funcion objetivoa minimizar es

i∈I

j∈J

cijxij.

Ahora nos queda establecer las distintas restricciones:

1. Deben satisfacerse todas las demandas:∑

i∈I

xij = dj ∀j ∈ J.

28 Investigacion Operativa

2. Debe mandarse todo lo almacenado:∑

j∈J

xij = ai ∀i ∈ I.

Esto, junto con el hecho de que las variables son enteras, nos da la siguienteformulacion para el problema del transporte:

Min.∑

i∈I

j∈J

cijxij

s.a∑

i∈I

xij = dj ∀j ∈ J,

j∈J

xij = ai ∀i ∈ I,

xij ∈ Z+ ∀i ∈ I, ∀j ∈ J.

Veamos las restricciones de modo detallado:

1 1 . . . 1 0 0 . . . 0 0 0 . . . 0 . . . 0 0 . . . 00 0 . . . 0 1 1 . . . 1 0 0 . . . 0 . . . 0 0 . . . 0...

.... . .

......

.... . .

......

.... . .

.... . .

......

. . ....

0 0 . . . 0 0 0 . . . 0 0 0 . . . 0 . . . 1 1 . . . 11 0 . . . 0 1 0 . . . 0 1 0 . . . 0 . . . 1 0 . . . 00 1 . . . 0 0 1 . . . 0 0 1 . . . 0 . . . 0 1 . . . 0...

.... . .

......

.... . .

......

.... . .

.... . .

......

. . ....

0 0 . . . 1 0 0 . . . 1 0 0 . . . 1 . . . 0 0 . . . 1

x11...

x1n...

xm1...

xmn

=

a1...

am

d1...

dn

Tomando como I1 las m primeras filas y como I2 las n ultimas, vemos que lamatriz del problema es totalmente unimodular. Como, ademas, las ofertas y lasdemandas son valores enteros, concluimos que la relajacion lineal del problema detransporte tiene solucion optima entera.

Hay que destacar que nada se dice de los costes cij; estos pueden ser fraccionalesy el resultado sigue siendo cierto.

Ejemplo 29Una empresa de televisores tiene tres fabricas en Madrid, Barcelona y Sevilla. Dadaun partida de 100, 120 y 60 aparatos, debe enviarlos a cuatro distribuidores ubicadosen Fuenlabrada, Mataro, Ecija y Vigo, con demandas 70, 90, 50 y 70, respectivamente.La tabla de costes de transporte para cada unidad de producto (en euros) es lasiguiente:

Destinos

Orıgenes Fuenlabrada Mataro Ecija VigoMadrid 1 6 4 7Barcelona 7 1 12 14Sevilla 5 11 2 13

Tema 2. Optimizacion en redes 29

Encuentra como deben enviarse los televisores para que el coste de transporte totalsea mınimo.

Solucion:

En este caso, tenemos un problema de transporte con 3 orıgenes (i = 1, 2, 3) y4 destinos (j = 1, 2, 3, 4).

La funcion objetivo a minimizar es

x11 + 6x12 + 4x13 + 7x14 + 7x21 + x22 + 12x2314x24 + 5x31 + 11x32 + 2x33 + 13x34.

Las restricciones que imponen que se satisfagan las demandas son:

x11 + x21 + x31 = 70,

x12 + x22 + x32 = 90,

x13 + x23 + x33 = 50,

x14 + x24 + x34 = 70.

Las siguientes restricciones impiden enviar mas de lo disponible:

x11 + x12 + x13 + x14 ≤ 100,

x21 + x22 + x23 + x24 ≤ 120,

x31 + x32 + x33 + x34.

Ademas, todas variables xij deben ser enteras.

Cuando juntamos las distintas condiciones que hemos establecido y resolvemosla relajacion lineal del problema, obtenemos un valor optimo de 970 para la solucionoptima dada por x∗

11 = 30, x∗14 = 70, x∗

21 = 30, x∗22 = 90, x∗

31 = 10 y x∗33 = 50. �

2.3. El problema de la asignacion

Se tiene n operarios, cada uno capaz de realizar una unica tarea de modo si-multaneo, y n tareas que deben hacerse.

Si el operario i realiza la tarea j, se obtiene un rendimiento rij. Hay que repartirlas tareas de modo que el rendimiento total sea maximo.

30 Investigacion Operativa

Si definimos las variables

xij =

{

1, si el operario i realiza la tarea j,

0, en caso contrario,

el problema puede formularse mediante el siguiente modelo:

Max.n

i=1

n∑

j=1

rijxij

s.an

i=1

xij = 1 j = 1, . . . , n,

n∑

j=1

xij = 1 i = 1, . . . , n,

xij ∈ {0, 1} i, j = 1, . . . , n.

Ahora bien, es inmediato ver que se trata de un caso particular del problema deltransporte: tenemos n orıgenes, n destinos y demandas y ofertas todas iguales a launidad.

2.4. Conceptos basicos de grafos

2.4.1. Definiciones

Un grafo G es un par (V,E) donde V es el conjunto de vertices y E ⊆ V × Ves el conjunto de ejes. Los vertices tambien se conocen como nodos. Usualmente, Nrepresenta el conjunto de nodos del grafo.

Dados dos vertices i y j, representaremos el eje que los une como (i, j).

1 2

3 4

Si (i, j) = (j, i) para todo (i, j) ∈ E, se dice que es un grafo no dirigido. En casocontrario, se trata de un grafo dirigido. En los grafos dirigidos no se habla de ejessino de arcos. El conjunto de arcos de un grafo se suele representar mediante A.

Tema 2. Optimizacion en redes 31

2

1 4

3

Un grafo mixto es un grafo que contiene tanto ejes como arcos.

2

1 4

3

Dado un grafo dirigido G = (V,A), se dice que un vertice j ∈ V es sucesor deotro vertice i ∈ V si existe un arco desde i hasta j, es decir, si (i, j) ∈ A. Se dice quej es predecesor de i si (j, i) ∈ A.

Una red es una terna (V,A, ℓ), donde (V,A) es un grafo y ℓ : A → R es unafuncion de longitud.

Un eje (o un arco) es incidente en un vertice i si este es uno de sus extremos.

Dado un grafo G = (V,E), se dice que G′ = (V ′, E ′) es un subgrafo de G siV ′ ⊆ V y E ′ ⊆ E. Dado un subconjunto B ⊆ V , se llama subgrafo inducido por Bal grafo GB = (B,EB), siendo

EB = {(i, j) ∈ E / i, j ∈ B}.

Un subgrafo parcial de G = (V,E) es un grafo G′ = (V,E ′), con E ′ ⊆ E.

Una cadena es una secuencia alternante de vertices y ejes que comienza y acabaen vertices. La cadena se dice simple si no se repite ningun eje. La cadena se diceelemental si no se repite ningun vertice.

Un ciclo es una cadena en la que los vertices inicial y final coinciden. Un ciclosimple no presenta repeticion de ningun eje. En un ciclo elemental no se repite ningunvertice salvo el primero.

Un camino es una secuencia alternante de vertices y arcos que empiezan y acabanen vertice y cumplen que el vertice final de cada arco es vertice inicial del siguiente (ycoincide con el vertice intermedio entre ambos arcos). Un camino simple no presentarepeticion de ningun arco. En un camino elemental no se repite ningun vertice.

32 Investigacion Operativa

Un circuito es un camino en el que coinciden los vertices inicial y final. Un circuitosimple no tiene arcos repetidos. Un circuito elemental no tiene vertice repetidos(salvo el primero).

Un grafo completo presenta al menos un eje o arco para cada par de vertices.

Un grafo bipartito es aquel que admite una particion {V1, V2} del conjunto devertices V (V = V1 ∪ V2, V1 ∩ V2 = Ø) tal que para todo eje (i, j) ∈ E cada uno delos extremos esta en uno de los conjuntos de la particion:

(i ∈ V1, j ∈ V2) ∨ (i ∈ V2, j ∈ V1).

Un grafo se dice conexo si para todo par de vertices existe una cadena que losune.

Dado un grafo dirigido, un vertice j se alcanzable desde otro vertice i si existeun camino desde i hasta j. En ese caso, se dice que j es descendiente de i.

Dado un grafo, un arbol es un subgrafo conexo sin ciclos. Un arbol de union esun subgrafo parcial conexo sin ciclos (es decir, un arbol en el que aparecen todos losvertices del grafo).

N1

N2

N4 N5

N3

2.4.2. Representacion matricial de grafos

Dado un grafo no dirigido (V,E), se define la matriz de incidencia vertice-ejecomo aquella que tiene tantas filas como vertices y tantas columnas como ejes. Encada columna, todos los elementos son nulos excepto los dos que se corresponden conextremos del eje de la misma; estos tiene valor uno.

Ejemplo 30Consideremos el siguiente grafo:

Tema 2. Optimizacion en redes 33

1 2

3 4

Definamos los ejes e1 = (1, 2), e2 = (1, 3), e3 = (2, 3), e4 = (2, 4) y e5 = (3, 4).

La matriz de incidencia vertice-eje es:

1 1 0 0 01 0 1 1 00 1 1 0 10 0 0 1 1

.

Dado un grafo dirigido (V,A), se define la matriz de incidencia vertice-arco comoaquella que tiene tantas filas como vertices y tantas columnas como arcos. En cadacolumna, todos los elementos son nulos excepto los dos que se corresponden conextremos del arco de la misma; estos tienen valor uno si se trata del vertice inicial yvalor menos uno si se trata del vertice final.

Ejemplo 31Consideremos el siguiente grafo:

2

1 4

3

Definamos los ejes e1 = (1, 2), e2 = (1, 3), e3 = (2, 3), e4 = (2, 4) y e5 = (3, 4).

La matriz de incidencia vertice-arco es la siguiente:

1 1 0 0 0−1 0 1 1 0

0 −1 −1 0 10 0 0 −1 −1

.

Proposicion 32La matriz de incidencia vertice-arco es totalmente unimodular.

34 Investigacion Operativa

Proposicion 33La matriz de incidencia vertice-eje es totalmente unimodular si, y solo si, el grafo esbipartito.

2.5. El problema del arbol de union de peso mınimo

Dada una red conexa R = (V,E, ℓ), definimos el peso del arbol P = (V,E ′) como

ℓ(P ) =∑

e∈E′

ℓ(e).

Nuestro problema es encontrar dentro del grafo un arbol de union cuyo peso totalsea mınimo, es decir, resolver el problema

{

Min. ℓ(P )s.a P es arbol de union en G.

Para resolver el problemas, disponemos de dos algoritmos muy populares: el al-goritmo de Kruskal y el algoritmo de Prim.

Algoritmo 34 (Algoritmo de Kruskal)1. Ordenense de forma creciente los ejes.

2. Elıjanse en ese orden hasta tener n−1 vertices (n es el numero de nodos), peroomitiendo aquellos que produzcan ciclos.

Algoritmo 35 (Algoritmo de Prim)1. Elıjase arbitrariamente un vertice r ∈ V .

2. Sean V1 = {r} y V2 = V \{r}.

3. Elıjase el eje (r, s) de menor longitud de entre aquellos que unen V1 con V2.

4. Anadase el vertice s a V1 y elimınese de V2. Si se tiene menos de n − 1 ejes,repıtase el paso anterior. En caso contrario, finalıcese el algoritmo.

Ejemplo 36La companıa MCC TV se encuentra en proceso de proporcionar el servicio de cablea cinco nuevas areas urbanizadas. La figura representa los enlaces potenciales detelevision entre las cinco areas y los kilometros de cable necesarios para unirlas.¿Cual es el cableado mas corto?

Tema 2. Optimizacion en redes 35

2

6

1 3

5

4

1

8

7

9

6

4

3

5

10

8

3

Solucion:

Aplicamos el metodo de Prim.

Comenzamos seleccionando un nodo al azar: el nodo 1. Hacemos V1 = {1} yV2 = {2, 3, 4, 5, 6}. A continuacion, consideramos los ejes que unen elementos de V1

con los de V2 y elegimos el de menor longitud:

2

6

1 3

5

4

1

8

79

El eje de menor longitud es (1,2). Hacemos V1 = {1, 2} y V2 = {3, 4, 5, 6}. Vamosrepitiendo el proceso hasta tener cinco ejes.

36 Investigacion Operativa

2

6

1 3

5

4

8

79

64

3

2

6

1 3

5

4

8

7

64

8

2

6

1 3

5

4

8

9

6

5

8

3

2

6

1 3

5

4

86

5

Tema 2. Optimizacion en redes 37

El arbol final tiene longitud mınima: 16.

2

6

1 3

5

4

2.6. El problema del camino mas corto

Dada una red conexa R = (V,A, ℓ) e identificando los costes de los nodos comodistancias, se trata de encontrar el recorrido de menor longitud desde un nodo origenhasta un nodo destino.

Asumiremos que existe un camino entre cada par de vertices distintos. En casocontrario, se anaden los arcos que sean necesarios con longitud +∞ para que ası sea.

Si P es un camino entre dos vertices de la red, se define la longitud del caminocomo

ℓ(P ) =∑

a∈P

ℓ(a).

Si a = (i, j), usaremos la notacion ℓij = ℓ(a). Dado un vertice i, Γ(i) sera elconjunto de sucesores de i, es decir,

Γ(i) = {j ∈ V / (i, j) ∈ A}.

Nos centramos en el caso en que todos los arcos tienen longitud positiva. Cuandoeste es el caso, podemos usar un metodo especıfico denominado algoritmo de Dijsktra.

Fijado un vertice de partida r, el siguiente algoritmo nos permite obtener loscaminos mas cortos que parten de r y llegan a los demas vertices del grafo. Para unvertice cualquiera i, la longitud del camino mas corto desde r hasta i la representa-remos como di.

38 Investigacion Operativa

Algoritmo 37 (Algoritmo de Dijsktra)Paso 1: Se hace

dr = 0,

di = ℓri, i ∈ Γ(r), i 6= r,

di = +∞, i /∈ Γ(r).

Ademas, definimos los siguientes predecesores:{

pi = r, i ∈ Γ(r),

pi = 0, i /∈ Γ(r).

(El valor 0 representa un predecesor ficticio.)

Sea T = V \{r}.

Paso 2: Se calcula dj = mın {di}i∈T y se hace T = T\{j}.

Paso 3: Para cada i ∈ Γ(j) ∩ T , se calcula ti = dj + ℓji.Si ti < di, entonces se hace di = ti y pi = j.

Paso 4: Si T 6= Ø, se va al Paso 2. En caso contrario, finaliza el algoritmo.

Ejemplo 38Dado el siguiente grafo la distancia entre seis ciudades, determina cual es la ruta demenor longitud entre las ciudades 1 y 6.

2 4

1 6

3 5

3

5

6

3

2

1

2

7

Solucion:

Usaremos el algoritmo de Dijkstra fijando r = 1.

P1: d1 = 0, d2 = 3, d3 = 5, d4 = +∞, d5 = +∞, d6 = +∞;p2 = 1, p3 = 1, p4 = 0, p5 = 0, p6 = 0; T = {2, 3, 4, 5, 6}.

P2: mın {d2, d3, d4, d5, d6} = d2. T = {3, 4, 5, 6}.

P3: Γ(2) ∩ T = {3, 4}.t3 = d2 + ℓ23 = 3 + 6 = 9;t4 = d2 + ℓ24 = 3 + 3 = 6.Actualizamos: d4 = 6, p4 = 2.

Tema 2. Optimizacion en redes 39

Ası:d1 = 0, d2 = 3, d3 = 5, d4 = 6, d5 = +∞, d6 = +∞;p2 = 1, p3 = 1, p4 = 2, p5 = 0, p6 = 0; T = {3, 4, 5, 6}.

P4: Como T 6= Ø, repetimos el paso 2.

P2: mın {d3, d4, d5, d6} = d3. T = {4, 5, 6}.

P3: Γ(3) ∩ T = {5}.t5 = d3 + ℓ35 = 5 + 2 = 7.Actualizamos: d5 = 7, p5 = 3.Ası:d1 = 0, d2 = 3, d3 = 5, d4 = 6, d5 = 7, d6 = +∞;p2 = 1, p3 = 1, p4 = 2, p5 = 3, p6 = 0; T = {4, 5, 6}.

P4: Como T 6= Ø, repetimos el paso 2.

P2: mın {d4, d5, d6} = d4. T = {5, 6}.

P3: Γ(4) ∩ T = {5, 6}.t5 = d4 + ℓ45 = 6 + 1 = 7.t6 = d4 + ℓ46 = 6 + 2 = 8.Actualizamos: d6 = 8, p6 = 4.Ası:

d1 = 0, d2 = 3, d3 = 5, d4 = 6, d5 = 7, d6 = 8;p2 = 1, p3 = 1, p4 = 2, p5 = 3, p6 = 6; T = {5, 6}.

P4: Como T 6= Ø, repetimos el paso 2.

P2: mın {d5, d6} = d5. T = {6}.

P3: Γ(5) ∩ T = Ø.

P4: Como T 6= Ø, repetimos el paso 2.

P2: mın {d6} = d6. T = Ø.

P3: Γ(6) ∩ T = Ø.

P4: Como T = Ø, finalizamos el algoritmo.

Por lo tanto, el camino mas corto desde 1 hasta 6 tiene longitud d=86 y es

6← p6 = 4← p4 = 2← p2 = 1,

es decir 1→ 2→ 4→ 6. �

40 Investigacion Operativa

Si quisiesemos determinar las distancias entre todos los pares de vertices, podrıamosaplicar el algoritmo de Dijkstra tantas veces como nodos tiene el grafo. No obstan-te, existe un algoritmo especializado que lo hace simultaneamente: el algoritmo deFloyd. No obstante, dicho la descripcion del mismo queda fuera de los objetivos deeste curso.

2.7. El problema del flujo de coste mınimo

Tenemos un grafo conexo G = (N,A), siendo N = {1, . . . , n} los nodos y A elconjunto de arcos que unen pares de nodos.

Para un determinado producto, cada nodo i ofrece o requiere una cierta cantidaddel producto (flujo) bi, i = 1, . . . , n. Ası, podemos distinguir tres tipos de nodos:

si bi > 0, es un nodo origen o de servicio;

si bi = 0, es un nodo de transbordo;

si bi < 0, es un nodo destino o de demanda.

Ademas, asumiremos que el balance total es nulo, es decir,∑

i∈N

bi = 0.

Asimismo, puede que haya restricciones adicionales:

el arco (i, j) tiene una capacidad maxima uij;

por el arco (i, j) debe circular un flujo mınimo lij.

Sabiendo que cada arco (i, j) tiene asociado un coste unitario de transporte cij,el objetivo es encontrar un flujo que satisfaga las demandas y cuyo coste total sea lomenor posible.

Para formular el problema, comenzamos definiendo las variables xij, (i, j) ∈ A,que representan el flujo que circula por el arco (i, j).

Ası, la funcion objetivo a minimizar es∑

(i,j)∈A

cijxij.

En cuanto a las restricciones, por una parte, no deben excederse los lımites decapacidad de los arcos:

xij ≤ uij ∀(i, j) ∈ A,

xij ≥ lij ∀(i, j) ∈ A.

Tema 2. Optimizacion en redes 41

Por otra, debe haber un equilibrio entre lo que llega al nodo, lo que el nodooferta/demanda y lo que sale del nodo:

{j / (i,j)∈A}

xij −∑

{j / (j,i)∈A}

xji = bi ∀i ∈ N.

Estas igualdades se denominan restricciones de balance de flujo.

Ası, el modelo resultante es:

Min.∑

(i,j)∈A

cijxij

s.a∑

{j / (i,j)∈A}

xij −∑

{j / (j,i)∈A}

xji = bi ∀i ∈ N,

lij ≤ xij ≤ uij ∀(i, j) ∈ A,xij ≥ 0 ∀(i, j) ∈ A.

Ejemplo 39Resuelve el problema del flujo de coste mınimo sobre el siguiente grafo:

2 4

1 5 7

3 6

3

5

2

4

6

6

53

2

2

3

Las ofertas y demandas son: b1 = 150, b2 = −20, b3 = −30, b4 = −50, b5 = 40,b6 = −60, b7 = −30. Los arcos que salen del nodo 1 no pueden dejar pasar mas de90 unidades (cada uno).

Solucion:

42 Investigacion Operativa

Analizando el problema, el modelo que se obtiene es el siguiente:

Min. 3x12 + 5x13 + 2x24 + 4x25 + 6x35 + 7x36 + 5x47 + 3x54 + 2x56 + 2x57 + 3x67

s.a x12 + x13 = 150,x24 + x25 − x12 = −20,x35 + x36 − x13 = −30,x47 − x24 − x54 = −50,

x54 + x56 + x57 − x25 − x35 = 40,x67 − x36 − x56 = −60,−x47 − x57 − x67 = −30,

x12 ≤ 90,x13 ≤ 90,xij ≥ 0 ∀(i, j) ∈ A.

La solucion del problema es la siguiente: x∗12 = 90, x∗

13 = 60, x∗24 = 50, x∗

25 = 20,x∗

36 = 30, x∗56 = 30, x∗

57 = 30. El coste de esta solucion es 1080. �

Observemos que, si M es la matriz de incidencia vertice-arco para la red, entoncesel conjunto de restricciones de balance de flujo pueden escribirse como Mx = b. Enparticular, esto tiene como consecuencia que, si el vector de demandas b tiene todassus componentes enteras y las capacidades inferiores la y superiores ua son todasnumeros enteros, entonces la relajacion lineal del problema de flujo a coste mınimotiene solucion entera.

Si todas las capacidades inferiores son nulas, existe un metodo especıfico pararesolver el problema: el algoritmo de Busacker-Gowen (que no detallaremos).

Casos particulares

Ahora veremos que algunos de los problemas previamente estudiados son, enrealidad, casos particulares del problema del flujo de coste mınimo.

El problema del transporte

En este caso, tenemos que los orıgenes actuan como nodos que ofrecen productoy los destinos son nodos que demandan producto.

El problema del camino mas corto

Vamos a ver enseguida que se trata de un caso particular del problema del flujode coste mınimo. Para ello, sea s el nodo origen y sea t el nodo destino. Consideramos

Tema 2. Optimizacion en redes 43

el siguiente vector de ofertas y demandas:

bi =

1 si i = s,

−1 si i = t,

0 si i 6= s, t.

Prescindiendo de restricciones sobre las capacidades de los arcos, se trata de unproblema de flujo de coste mınimo con unos costes muy especıficos. Ademas, lasvariables de decision se pueden reinterpretar del siguiente modo:

xij =

{

1 si se usa el arco (i, j) en la ruta,

0 en caso contrario.

Tema 3

Programacion Lineal Multiobjetivo

En la Programacion Lineal clasica, buscamos optimizar una funcion lineal de va-rias variables sujeta a un conjunto de restricciones lineales. Sin embargo, es habitualque, para esas mismas restricciones, haya que optimizar simultaneamente varias fun-ciones, pudiendo incluso ser conflictivas entre sı. Es entonces cuando aparecen losproblemas de Programacion Lineal Multiobjetivo.

3.1. Introduccion

Un problema lineal multiobjetivo es de la forma

(PLM)

Max. {ct1x, . . . , ct

px}s.a Ax ≤ b,

x ≥ 0.

Se dice que un punto x ∈ {x / Ax ≤ b, x ≥ 0} es eficiente (en el sentido dePareto) si no existe otro punto factible y tal que se den las dos condiciones siguientes:

ctix ≤ ct

iy ∀i ∈ {1, . . . , p};

∃j ∈ {1, . . . , p} / ctjx < ct

j y.

Esta claro que distintas soluciones eficientes proporcionan distintas ventajas ydesventajas. Es trabajo del decisor elegir una solucion de compromiso entre todasellas. Nuestro objetivo sera aprender a calcular el conjunto eficiente.

46 Investigacion Operativa

Representaremos mediante E el conjunto de soluciones eficientes.

Definimos el espacio de soluciones como

F = {x / Ax ≤ b, /x ≥ 0}

y el espacio de objetivos como

Z = {(z1(x), . . . , zp(x))}x∈F .

Es importante observar que los vertices de F se corresponden con vertices de Z.Lo mismo vale para las aristas.

Ejemplo 40Consideremos el siguiente conjunto Z:

Los vertices de Z son el conjunto

{(0, 0), (1, 3), (4, 3), (5, 2), (3, 0)}.

Un rapido analisis nos hace ver que la region de puntos eficientes (asumiendo queestamos maximizando todas las funciones objetivo) es el segmento que une el pun-to (4,3) con (5,2). Ambos extremos estan incluidos en dicho conjunto de puntoseficientes. �

Hay que tener claro que, puesto que un problema multiobjetivo consta de variosproblemas lineales, son mas complejos de resolver que la simple resolucion de losproblemas individuales. No obstante, en problemas biobjetivo (solo dos objetivos),podemos usar la propiedad anterior que relaciona vertices y aristas la region desoluciones con vertices y aristas de la region de objetivos.

Ejemplo 41

Min. z = (z1, z2) = (−x1 − 2x2, 5x1 + 3x2)s.a 3x1 +x2 ≤ 200,

2x1 +3x2 ≤ 300,x1 +x2 ≥ 80,

x1, x2 ≥ 0.

Tema 3. Programacion Lineal Multiobjetivo 47

Solucion:

Si representamos la region factible, vemos que es el poliedro de vertices A = (0, 80),B = (0, 100), C = (300/7, 500/7) y D = (60, 20).

b

b

b

b

A

B

C

D

Ahora, calculamos los valores objetivos de los vertices y representamos el poliedroasociado:

(x1, x2) (z1, z2)(0, 80) (−160, 240)(0, 100) (−200, 300)

(300/7, 500/7) (−1300/7, 3000/7)(60, 20) (−100, 360)

b

b

b

b

z(A)

z(B)

z(C)

z(D)

Vemos que la region eficiente es el segmento z(B)z(A). Por lo tanto, el conjunto desoluciones eficientes es el segmento AB. Ası,

E = {(0, 100− 20λ) / 0 ≤ λ ≤ 1}.

48 Investigacion Operativa

3.2. Metodos de resolucion

3.2.1. Metodo de las ponderaciones

Dado un vector de pesos w = (w1, . . . , wp), wi > 0 ∀i, consideramos el siguienteproblema:

(PLw)

Max. w1ct1x + · · ·+ wpc

tpx

s.a Ax ≤ b,x ≥ 0.

Proposicion 42Un punto x∗ es solucion eficiente de (PLM) si, y solo si, existe un vector w > 0 talque x∗ es solucion optima de (PLw).

Ejemplo 43Para el ejemplo anterior, vamos a calcular un punto eficiente. Consideramos pesosw1 = w2 = 1. El problema que tenemos que resolver es:

Min. 4x1 + x2

s.a 3x1 +x2 ≤ 200,2x1 +3x2 ≤ 300,x1 +x2 ≥ 80,

x1, x2 ≥ 0.

Su optimo es x∗ = (0, 80). Este punto es solucion eficiente del problema multiob-jetivo.

Si ahora consideramos otros pesos, podemos tratar de obtener otros puntos efi-cientes. Por ejemplo, w = (2, 1) da lugar a la solucion eficiente (0,100). �

3.2.2. Metodo de las restricciones

Se selecciona un objetivo y el resto pasan a ser restricciones acotadas inferior-mente por unas exigencias mınimas:

(PLk)

Max. ctkx

s.a x ∈M,ctjx ≥ Lj, j 6= k.

Proposicion 44Si x∗ es la unica solucion optima de (PLk), entonces es solucion eficiente de (PLM).

Tema 3. Programacion Lineal Multiobjetivo 49

Ejemplo 45Para el ejemplo 41, vamos a buscar una solucion eficiente cuyo valor para la segundafuncion objetivo sea, a lo sumo, 270.

Para ello, planteamos el problema:

Min. 4x1 + x2

s.a 3x1 +x2 ≤ 200,2x1 +3x2 ≤ 300,x1 +x2 ≥ 80,

5x1 +3x2 ≤ 270,x1, x2 ≥ 0.

Como optimo, obtenemos x∗ = (0, 90). Es una solucion eficiente del problema mul-tiobjetivo que cumple las exigencias impuestas. �

3.2.3. Metodo de programacion por metas

Dados varios objetivos, establecemos una medida que nos indica lo lejos queestamos de cumplirlos. Buscaremos minimizar la desviacion total respecto de estasexpectativas.

Para cada objetivo:

se tiene un valor ti que representa su nivel de aspiracion y una meta (menor oigual, mayor o igual, igual);

se definen las variables pi y/o ni de desviacion positiva y negativa, respectiva-mente.

Dada la restriccion ctix ? ti, la transformamos en ct

ix + ni − pi ? ti. Si “k”:

“?” = “ ≥ ”, interesa minimizar ni;

“?” = “ ≤ ”, interesa minimizar pi;

“?” = “ = ”, interesa minimizar tanto ni como pi.

Ejemplo 46Una cooperativa posee un terreno de 13 hectareas en el que pretende cultivar dostipos de olivos: picual y hojiblanca. Por normas legislativas, no puede cultivar masde 8 hectareas del primero ni mas de 10 del segundo. Se estima que cada hectareacultivada con olivo picual necesita 4 m3 de agua anuales y cada hectarea de hojiblancanecesita 3. La cooperativa estima que dispondra cada ano de 44 m3 de agua. Ademas,se ha fijado las siguientes metas:

50 Investigacion Operativa

1. Inversion inicial:

Picual: 250 um/h.

Hojiblanca: 125 um/h.

Se desea que la inversion inicial no supere las 2000 um.

2. Litros de aceite:

Picual: 500 l/ano.

Hojiblanca: 300 l/ano.

Se desea un mınimo de 5000 l.

3. Produccion de desechos (posteriormente pueden utilizarse para fines varios):

Picual: 6 t/h.

Hojiblanca: 8 t/h.

Habrıa que obtener, por lo menos, 48 t.

4. Contratacion de operarios: son necesarios 3 por hectarea. Se desea usar ex-clusivamente los 30 que ya hay con contrato en vigor (y no tener a ningunoocioso).

Formula el modelo que optimiza los objetivos de la cooperativa.Solucion:

Sean x1 y x2, respectivamente, las hectareas destinadas al cultivo de las variedadespicual y hojiblanca. El problema multiobjetivo es

Min. 250x1 + 125x2 (≤ 2000)Max. 500x1 + 300x2 (≥ 5000)Max. 6x1 + 8x2 (≥ 48)

3x1 + 3x2 (= 30)s.a x1 + x2 ≤ 13,

0 ≤ x1 ≤ 8,0 ≤ x2 ≤ 10,

4x1 + 3x2 ≤ 44.

Tema 3. Programacion Lineal Multiobjetivo 51

Usando el metodo de programacion por metas, nuestro problema serıa

Min. p1 + n2 + n3 + p4 + n4

s.a 250x1 + 125x2 + n1 − p1 = 2000,500x1 + 300x2 + n2 − p2 = 5000,6x1 + 8x2 + n3 − p3 = 48,3x1 + 3x2 + n4 − p4 = 30,x1 + x2 ≤ 13,x1 ≤ 8,x2 ≤ 10,4x1 + 3x2 ≤ 44,

x1, x2 ≥ 0.

La solucion optima es x∗ = (6, 20/3), n∗ = (0, 0, 0, 0), p∗ = (1000/3, 0, 124/3, 8). Porlo tanto:

Se excede el nivel de inversion deseado.

Se produce exactamente el mınimo de aceite.

Se producen mas desechos de los mınimamente requeridos.

Hace falta contratar mas empleados.