Вы находитесь на странице: 1из 67

PROBLEMAS LINEALES ESPECIALES

1. PROBLEMA DE ASIGNACIN Y EMPAREJAMIENTO


1.1. Objetivo.
1. 2. Formulacin.
1. 3. Mtodos de resolucin.
1. 4. Caso Particular: Emparejamiento.
2. PROBLEMA DEL COSTE FIJO
2.1. Objetivo.
2. 2. Formulacin.
2.3. Mtodos de resolucin.
3. PROBLEMA DE LA MOCHILA
3. 1. Objetivo
3. 2. Formulacin
3. 3. Mtodos de resolucin
4. PROBLEMA DE RECUBRIMIENTO, EMPAQUETAMIENTO Y
PARTICIN
4. 1. Objetivo.
4. 2. Formulacin.
4. 3. Mtodos de resolucin.
4. 4. Caso Particular: Empaquetamiento.
4. 4. 1. Formulacin.
4. 4. 2. Mtodos de resolucin.
4. 5. Caso Particular: Particin.
4. 5. 1. Formulacin.
4. 5. 2. Mtodos de resolucin
5. TRANSPORTE
5. 1. Objetivo.
5. 2. Formulacin.
5. 3. Mtodos de resolucin.
5. 4. Caso particular: problema de transbordo.
6. EL VIAJANTE DE COMERCIO
6. 1. Objetivo.
6. 2. Formulacin.
6. 3. Mtodos de resolucin.
7. CAMINO MNIMO
7. 1. Objetivo.
7. 2. Formulacin.
7. 3. Mtodos de resolucin.
8. FLUJO MXIMO
8. 1. Objetivo.
8. 2. Formulacin.
8. 3. Mtodos de resolucin.




1. PROBLEMAS DE ASIGNACIN Y EMPAREJAMIENTO
1.1. Objetivo.
El problema de Asignacin, como su propio nombre indica, se formula inicialmente al
desear asignar trabajadores a tareas de forma ptima, donde cada trabajador
debe realizar una y slo una tarea y ninguna tarea debe quedarse sin
realizar. Dicha formulacin posteriormente puede modificarse o asimilarse a otro tipo
de problemas con caractersticas similares. En estos problemas la funcin a optimizar
puede consistir en minimizar costes, maximizar utilidades, minimizar tiempos de
realizacin, etc.
Para una mejor comprensin del problema que se intenta estudiar presentamos la
siguiente situacin: Supongamos que 3 alumnos deben realizar conjuntamente un
trabajo para superar una asignatura, dicho trabajo consta de tres partes y en lugar de
hacerlas todos de forma conjunta, deciden que cada uno realizar una parte del
trabajo, de tal forma que se minimice el tiempo. La tabla que recoge el tiempo que
tarda cada uno de ellos en realizar cada parte es la siguiente:

Primera Segunda Tercera
Angel 1 7 2
Begoa 3 4 3
Carlos 4 4 5

Una forma intuitiva y exhaustiva de resolverlo sera ver todas las posibles
distribuciones de tareas, 3! = 6, y evaluar cada una de ellas, quedndose con la que
tenga un menor tiempo de realizacin.

Primera Segunda Tercera Tiempo
Angel Begoa Carlos 1+4+5=10
Angel Carlos Begoa 1+4+3=8
Begoa Angel Carlos 3+7+5=15
Begoa Carlos Angel 3+4+2=9
Carlos Angel Begoa 4+7+3=14
Carlos Begoa Angel 4+4+2=10

A la vista de dichos resultados tenemos como mejor opcin que ngel realice la
primera parte del trabajo, Carlos la segunda y lo termine Begoa, con un tiempo total
invertido de 8.
Es fcil intuir, a partir del ejemplo anterior, que en el caso que aumente el nmero de
tareas, la determinacin de todas las posibilidades puede hacerse inviable, pinsese el
caso de 10 tareas, donde el nmero de posibilidades seran 10! = 3.628.800.
1. 2. Formulacin.
Con el fin de poder resolver el problema general de una manera ms cmoda, en
principio, necesitamos enunciarlo para despus formularlo mediante un modelo de
programacin matemtica. En un principio plantearemos el caso ms simple para
posteriormente analizar algunos casos particulares.
Este problema responde a la siguiente situacin:
Tenemos que asignar n trabajadores a n tareas, donde cualquier trabajador puede
realizar cualquier tarea, pero, a cada trabajador se le debe asignar una y sola una
tarea y, adems todas las tareas deben ser realizadas por un nico trabajador.
Representaremos por c
ij
el coste producido si el trabajador i realiza la tarea j, donde el
coste ser menor cuanto ms habilidoso sea el trabajador elegido para dicha tarea. El
problema que se plantea, por tanto, es realizar la asignacin ptima que minimice el
coste de realizar todas las tareas.
Su aplicacin es visible y de gran importancia para la resolucin de problemas reales
en la Direccin de Operaciones y Logstica. Por ejemplo: vehculos a rutas,
trabajadores, oficinas al personal, mquinas y tareas, agentes comerciales a regiones,
etc.
Para la formulacin del problema deberemos definir variables binarias, es decir,
variables enteras que slo pueden tomar el valor 0 1, y que en general tienen el
sentido de: si toma el valor 1, se realiza la accin, y si toma el valor 0, no se realiza la
accin. En este caso tendemos que definir, para cada trabajador, n variables binarias,
una por cada tarea posible de realizar por parte de dicho trabajador. As para el
trabajador 1, definimos las variables, x
11
, x
12
,, x
1n
, que indican, dependiendo del valor
que tomen, si el trabajador 1 realiza la tarea a la que se refiera el segundo subndice.
Este proceso lo deberemos hacer para cada trabajador, por tanto tendremos definidas
n
2
variables, donde todas son variables binarias, esto puede ser escrito como:

=
caso otro en 0
tarea la asigna le se individuo al si 1 j i
x
ij

y sobre ellas deberemos imponer las condiciones relativas a que cada trabajador debe
realizar una tarea y slo una y que cada tarea debe ser realizada por un trabajador y
slo uno. Todo ello es lo que viene recogido en la siguiente formulacin:
{ } n j i x
n j x
n i x
a sujeta
x c
ij
n
i
ij
n
j
ij
n
i
n
j
ij ij
,..., 2 , 1 , 1 , 0
,..., 2 , 1 , 1
,..., 2 , 1 , 1
:
min
1
1
1 1
=
= =
= =

=
=
= =

donde la funcin objetivo recoge los costes de la realizacin de las tareas, el primer
bloque de restricciones nos dice que cada trabajador realiza una y slo una tarea (de
ah la igualdad a 1), el segundo bloque de restricciones nos indica que cada tarea debe
ser realizada por un trabajador y slo uno, mientras que el ltimo conjunto de
condiciones nos marca que las variables son binarias.
Por tanto, en un problema de Asignacin de n trabajadores (y por tanto, n tareas),
tendremos que resolver un problema lineal con n x n variables, sujeto a 2n
restricciones, junto a la no negatividad de dichas variables. Tambin tendramos que
imponer la restriccin de que las variables no pueden tomar valores distintos de cero o
uno, si bien por las caractersticas del problema, esto no es necesario, como nos lo
asegura el siguiente Teorema:
Teorema.
Cualquier solucin factible bsica del problema de asignacin tiene todas las variables
x
ij
igual a cero o a uno.
Nota: Este problema tambin puede analizarse como un caso especial del problema de
Transporte, si consideramos a los trabajadores como los puntos de origen, los que
ofertan el producto, y las tareas son la demanda, teniendo en cuenta que la cantidad
demandada y la ofertada son exactamente 1 y el coste de transportar al trabajador i
a la tarea j es c
ij
.

Ejemplo.
El ayuntamiento de Mlaga tiene en su plantilla cuatro trabajadores que pueden ser
asignados a cuatro tareas diferentes. En cada tarea, cada funcionario cobra una
cantidad por hora, que se recogen en la siguiente matriz (cada fila son las cantidades
cobradas por cada trabajador):
Tarea 1 Tarea 2 Tarea 3 Tarea 4
Trabajador 1 6 2 7 3
Trabajador 2 6 1 4 3
Trabajador 3 5 4 2 1
Trabajador 4 4 7 6 5
Se desea determinar la distribucin ptima para minimizar el gasto de personal del
Ayuntamiento.
Solucin:
El planteamiento del problema, de forma lineal, es el siguiente:




En la formulacin anterior no se han incluido las condiciones de variables binarias
debido a la afirmacin del Teorema antes enunciado.
Resolviendo el ejercicio, obtenemos que la mejor asignacin es:
El trabajador 1 a la tarea 4: Coste = 3.
El trabajador 2 a la tarea 2: Coste = 1.
El trabajador 3 a la tarea 3: Coste = 2.
El trabajador 4 a la tarea 1: Coste = 4.
Por tanto, el coste total del Ayuntamiento ser de 10 u.m.
1. 3. Mtodos de resolucin.
La resolucin del problema mediante tcnicas de programacin lineal no se suele
plantear en la prctica, puesto que es un problema de gran dimensin en variables y
restricciones y se utilizan tcnicas especiales de resolucin. Tambin y al ser un caso
particular del problema de Transporte, se podra resolver mediante las tcnicas
existentes para ste. Ahora bien, podemos observar que al asignar slo un elemento
por fila y por columna, la solucin de un modelo de asignacin es siempre degenerada,
con slo n coordenadas positivas. Por esta razn, los mtodos existentes para el
problema de Transporte suelen ser muy lentos y se suele resolver por tcnicas
especiales diseadas para este caso, basndose principalmente en el mtodo hngaro
de Kuhn (1955), el cual, para problemas de dimensiones pequeas es muy fcil de
aplicar a mano, necesitando la ayuda de programas de ordenador para mayor
dimensin.
A continuacin presentamos un ejemplo y sobre l realizaremos una serie de
modificaciones para mostrar distintas variantes y ver como afecta en la formulacin y
resolucin
Ejemplo.
El Sr. Garca tiene tres hijos, Antonio, Mara y Paco. Los tres quieren ganar algn
dinero para un viaje del colegio. Su padre decide que pueden ayudar en las tareas de
casa y les pagar por ello: cortar el csped, pintar el garaje y lavar los coches.
Anticipadamente, el Sr. Garca les pide a sus hijos (secretamente) que les comunique
cunto creen que debera pagarles por cada tarea realizada. El padre, queriendo gastar
lo mnimo, debe asignar una nica tarea a cada uno de sus hijos.
Las propuestas realizadas por sus hijos son:
Antonio: 15 euros cortar el csped, 10 euros pintar el garaje, 9 euros lavar el coche.
Mara: 9 euros cortar el csped, 15 euros pintar el garaje, 10 euros lavar el coche.
Paco: 10 euros cortar el csped, 12 euros pintar el garaje, 9 euros lavar el coche.
Cmo distribuye las tareas el Sr. Garca?
Solucin:
La matriz de costes en este caso, es:

Cortar el csped Pintar el garaje Lavar el coche
Antonio 15 10 9
Mara 9 15 10
Paco 10 12 9

El modelo formulado sera:
33 32 31 23 22 21 13 12 11
9 12 10 10 15 9 9 10 15 x x x x x x x x x Min + + + + + + + +
1
1
1 .
33 32 31
23 22 21
13 12 11
= + +
= + +
= + +
x x x
x x x
x x x a s

1
1
1
33 23 13
32 22 12
31 21 11
= + +
= + +
= + +
x x x
x x x
x x x

3 , 2 , 1 , , 0 = j i x
ij

Resolviendo el ejercicio, resulta que la asignacin ptima es:
Antonio pintar el garaje, Mara cortar el csped y Paco lavar el coche.
Cunto gastar el padre? 10+9+9 = 28 euros.

Plantearemos a partir de aqu una primera variante:
Qu ocurrira si el padre desea incorporar una nueva tarea? Supongamos que esa
viene dada por preparar la comida y que los costes asociados son 9, 12 y 7
respectivamente. En este caso y bajo el supuesto que de cada hijo slo puede realizar
una tarea, est claro que existe una de ellas que se quedar sin hacer. En este caso
deberemos incorporar un hijo ficticio, con costes 0 en todas las tareas, as la tabla
sera:
Cortar el csped Pintar el garaje Lavar el coche Cocinar
Antonio 15 10 9 9
Mara 9 15 10 12
Paco 10 12 9 7
Ficticio 0 0 0 0

Y el modelo sera:
44 43 42 41
34 33 32 31 24 23 22 21 14 13 12 11
0 0 0 0
7 9 12 10 12 10 15 9 9 9 10 15
x x x x
x x x x x x x x x x x x Min
+ + + +
+ + + + + + + + + + + +

1
1
1
1 .
44 43 42 41
34 33 32 31
24 23 22 21
14 13 12 11
= + + +
= + + +
= + + +
= + + +
x x x x
x x x x
x x x x
x x x x a s


1
1
1
1
44 34 24 14
43 33 23 13
42 32 22 12
41 31 21 11
= + + +
= + + +
= + + +
= + + +
x x x x
x x x x
x x x x
x x x x

4 ,...., 1 j , i , 0 x
ij
=
Y la solucin es: x
13
= x
21
= x
34
= x
42
= 1, con un coste de 25 u. m.
Sobre la versin original del ejemplo, tambin podramos plantearnos que slo
existieran dos tareas y tres hijos. En tal caso, existira un hijo que quedara sin realizar
una tarea y la formulacin se modificara incorporando una nueva tarea ficticia para
que de esta forma, como hicimos en el caso anterior, el nmero de tareas y de
trabajadores coincidan.
Una ltima cuestin que plantearemos es qu ocurrira si una de las tareas requiriera
de dos trabajadores o un trabajador pudiera realizar dos tareas. En este caso, si el
nmero de jornales de oferta y demanda no coinciden, deberamos incorporar los
elementos ficticios necesarios y, adems, se modificara la formulacin del problema
colocando un dos en la ecuacin correspondiente, bien en las tareas realizadas por un
trabajador o por los trabajadores necesarios para realizar una tarea. Pero, existe en
este caso, y bajo dicha formulacin, una complicacin y es que hemos perdido las
caractersticas de un problema de asignacin, y para que ello no ocurra, podramos, o
bien duplicar una fila, la que corresponde al trabajador que puede realizar ms de una
tarea, o duplicar una columna, la que corresponde a la tarea que necesita dos
trabajadores, y de esta forma no perderamos las propiedades del problema de
asignacin.
Por tanto, y como conclusin, podemos decir que si el nmero de tareas a asignar no
coincide con el nmero de obreros, hay que introducir tareas o individuos ficticios de
forma que, de partida, coincidan nmero de tareas y nmero de trabajadores. Adems,
en el caso que tengamos que introducir elementos ficticios, la interpretacin del
resultado es bastante sencilla: el trabajador que haya recibido la asignacin de una
tarea ficticia, en realidad no ha recibido ninguna y recprocamente, la tarea que haya
recibido la asignacin de un trabajador ficticio, en realidad, se queda sin realizar.
1. 4. Caso Particular: Emparejamiento.
Una situacin similar con el problema de Asignacin es el de constituir parejas dentro
de un conjunto. Si la formacin de parejas se establece entre individuos de dos
conjuntos distintos, problema denominado emparejamiento bipartito, su formulacin
coincide exactamente con el problema de asignacin.
Ahora bien, otro problema distinto es el problema general donde se plantea formar
parejas dentro de un mismo grupo, es decir, no se trata de asignar elementos de dos
grupos distintos, sino de hacer parejas dentro de uno solo. Este problema es el que se
denomina emparejamiento y posee una formulacin distinta al problema de asignacin.
Suponiendo que el grupo es un nmero par (si no lo es, tendremos que introducir un
elemento ficticio, como en el caso anterior, quedar algn elemento sin pareja y se
denomina emparejamiento imperfecto) este problema pretende realizar parejas
teniendo en cuenta las preferencias de los individuos u otras caractersticas. Ejemplos
de este problema pueden ser problemas tales como la formacin de parejas de
trabajo, o de parejas para formar turnos, o repartir tareas, o asignar dormitorios, etc.
Para comprender mejor la formulacin del mismo comenzaremos con un ejemplo:
Supongamos un grupo de 6 amigos que se van de viaje juntos y deben formar parejas
para dormir, pus las habitaciones reservadas son tres habitaciones dobles. Las
preferencias de los mismos vienen dadas por la tabla:
Preferencias Andrs Borja Calixto Damin Enrique Fernando
Andrs - 2 3 5 2 4
Borja 4 - 6 7 2 1
Calixto 2 3 - 6 5 4
Damin 2 5 1 - 3 5
Enrique 4 3 6 3 - 6
Fernando 7 2 7 5 4 -

El problema puede pensarse inicialmente como un problema de asignacin donde no
es posible que nadie quede emparejado consigo mismo y adems si la persona i est
emparejada con j, es evidente que j debe estar emparejada con i. En consecuencia,
aunque tendremos menos variables que un problema de asignacin (6x6 6 variables,
puesto que las variables x
ii
no tienen sentido) tendremos ms restricciones, todas
aquellas que corresponden con los emparejamientos recprocos. En definitiva,
realmente no es un problema de asignacin tal como se formul en el epgrafe
anterior. Su formulacin sera:
{ } j i j i x
j i j i x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x a s
x x x x x x x x x x
x x x x x x x x x x
x x x x x x x x x x Max
ij
ji ij
=
= =
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
+ + + + + + + + + +
+ + + + + + + + + + +
+ + + + + + + + + +
6 ,..., 2 , 1 , 1 , 0
6 ,..., 2 , 1 ,
1
1
1
1
1
1
1
1
1
1
1
1 .
4 5 7 2 7 6 3 6 3 4
5 3 1 5 2 4 5 6 3 2
1 2 7 6 4 4 2 5 3 2
56 46 36 26 16
65 45 35 25 15
64 54 34 24 14
63 53 43 23 13
62 52 2 4 2 3 12
61 51 41 31 21
65 64 63 62 61
56 54 53 52 51
46 45 43 42 41
36 35 34 32 31
26 25 24 23 21
16 15 14 13 12
65 64 63 62 61 56 54 53 52 51
46 45 43 42 41 36 35 34 32 31
26 25 24 23 21 16 15 14 13 12

La pregunta que uno se puede hacer en este momento es existir otra formulacin
que recoja este problema pero de forma ms sencilla? Para ello, podemos pensar en
incorporar las restricciones x
ij
= x
ji
en la funcin objetivo, y en las restricciones. As, el
problema quedara:
{ } i j j i j i x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x a s
x x x x x x x
x x x x x x x x Max
ij
> =
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
+ + + + + + + + + + + + + +
+ + + + + + + + + + + + + + +
6 ,..., 2 , 1 , 1 , 0
1
1
1
1
1
1
1
1
1
1
1
1 .
) 4 6 ( ) 5 5 ( ) 3 3 ( ) 7 4 ( ) 6 5 ( ) 1 6 ( ) 2 1 (
) 3 2 ( ) 5 7 ( ) 3 6 ( ) 7 4 ( ) 4 2 ( ) 2 5 ( ) 2 3 ( ) 4 2 (
56 46 36 26 16
56 45 35 25 15
46 45 34 24 14
36 35 34 23 13
26 25 24 23 12
16 15 14 13 12
56 46 36 26 16
56 45 35 25 15
46 45 34 24 14
36 35 34 23 13
26 25 24 23 12
16 15 14 13 12
56 46 45 36 35 34 26
25 24 23 16 15 14 13 12

y podemos comprobar que las 6 primeras restricciones son las mismas que las 6
ltimas y por tanto podemos suprimir estas. Adems la matriz de preferencias podra
ser una matriz triangular superior con la diagonal tambin nula y donde los elementos
por encima de la diagonal nos muestran la suma de las preferencias de ambos
miembros de la potencial pareja. En definitiva el problema puede quedar escrito como:
{ } i j j i j i
ij
x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x s.a
x x x x x x x
x x x x x x x x Max
> =
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
+ + + + + + +
+ + + + + + +
6 ,..., 2 , 1 , 1 , 0
1
56 46 36 26 16
1
56 45 35 25 15
1
46 45 34 24 14
1
36 35 34 23 13
1
26 25 24 23 12
1
16 15 14 13 12
56
10
46
10
45
6
36
11
35
11
34
7
26
3
25
5
24
12
23
9
16
11
15
6
14
7
13
5
12
6

La formulacin genrica de esta situacin es la siguiente:
Supondremos un nmero de elementos igual a 2n para expresar la naturaleza par. En
este caso tambin utilizaremos variables binarias, cuyo significado es:
i j n i
contrario casa en
j con emparejada esta i si
x
ij
> =

= 2 ,..., 2 , 1
0
1

En este caso podemos observar que no estn definidas todas las combinaciones de
subndices, pues ninguna persona puede ser emparejada consigo misma, ni tampoco
tiene sentido definir ms variables de las necesarias puesto que x
ij
= x
ji
, y por tanto la
matriz de las preferencias debe ser simtrica.
Bajo estos supuestos, la formulacin quedara de la siguiente forma:
{ } i j n i x
n i x x
a sujeta
x c Max
ij
i
k
n
i j
ij ki
n
i
n
i j
ij ij
> =
= = +

= + =

= + =
2 ,..., 2 , 1 1 , 0
2 ..., , 1 , 1
:
1
1
2
1
1 2
1
2
1


2. PROBLEMA DEL COSTE FIJO
2.1. Objetivo.
Este problema responde a la siguiente situacin:
Tenemos una serie de actividades que podemos realizar o no.
Si decidimos realizarlas se genera un coste fijo y adems uno variable.
Dichas actividades estn demandadas por clientes.
Debemos decidir qu actividades realizar de forma que el coste sea mnimo y que se
satisfaga las demandas de los clientes donde en el coste mnimo incluimos no slo el
coste variable que genere el servicio de cada cliente sino tambin el coste fijo de
realizar la actividad correspondiente, y de ah su nombre.
Por ejemplo, dichas actividades pueden ser la apertura o no de fbricas en unas
determinadas localizaciones para suministrar productos a clientes, o decidir la
fabricacin o no de ciertos productos, etc.
Representemos grficamente el primer ejemplo. En esta situacin, hemos de decidir
cuntas fbricas creamos y dnde las situamos para poder servir a todos los clientes a
coste mnimo. En este coste mnimo incluimos no slo el coste de transporte para
servir a cada cliente sino tambin el coste fijo de abrir y mantener cada una de las
fbricas.
As, supongamos que tenemos cuatro posibles localizaciones para nuestras fbricas, y
que debemos surtir a una serie de clientes. Grficamente la situacin a resolver podra
ser la siguiente:















Clientes
Posibles localizaciones
Y una posible solucin podra ser:




















donde vemos que se han abierto dos fbricas que satisfacen todas las demandas.

En estas situaciones hay que buscar un equilibrio entre los dos siguientes factores:

- Cuantas ms fbricas abres menor es el coste de transporte.
- Cuantas ms fbricas abres mayor es el coste fijo de creacin y mantenimiento de
las mismas.

2. 2. Formulacin.
Con el fin de resolver el problema general de una manera ms cmoda necesitamos
enunciarlo para despus formularlo mediante un modelo de programacin matemtica.

As este problema responde a la siguiente situacin:

- Un conjunto de localizaciones N={1,...,n} para situar servicios.
- Un conjunto C={1,...,m} de clientes.
- Unas cantidades que se deben suministrar o unas demandas d
i
de cada cliente.
- Un coste c
j
de abrir un servicio en j.
- Una capacidad b
j
de un servicio en j.
- Un coste h
ij
de llevar una unidad del servicio j al cliente i.



Objetivo: Satisfacer la demanda minimizando el coste total.

En cuanto a las variables del problema tenemos de dos tipos:

Por un lado, tenemos n variables binarias, x
j
, las cuales valdrn 1 si se da servicio en j
y 0 en caso contrario.
Por otro lado, tenemos nxm variables, y
ij
, que representarn las unidades enviadas
desde j al cliente i.
As la formulacin del problema sera:
{ }
n 1,..., j m 1,..., i Z y
n 1,..., j 1 0, x
n 1,..., j x b y
m 1,..., i d y s.a.
y h x c Min
ij
j
j j
m
1 i
ij
i
n
1 j
ij
n
1 j
m
1 i
n
1 j
ij ij j j
= =
=
=
= =
+
+
=
=
= = =




donde el primer bloque de restricciones aseguran que se verifiquen todas las
demandas, y el segundo bloque que no se superen las capacidades de los servicios.
Adems nos podemos encontrar con otras restricciones tcnicas del problema.
Veamos un ejemplo:
Supongamos una empresa que para satisfacer la demanda de seis nuevos clientes est
pensando en la posibilidad de abrir nuevas fbricas. En concreto dispone de tres
nuevas localizaciones para ellas. El coste fijo de apertura en cada una de las tres
posibles localizaciones es idntico e igual a 50.000 euros y adems la capacidad de
produccin de cada una de las fbricas tambin es la misma e igual a 300 unidades de
producto.
El coste de cada localizacin de suministrar una unidad de producto a cada uno de los
clientes as como la cantidad de unidades demandada por cada uno de ellos aparece
en la siguiente tabla:




Coste de atender
a los clientes
Localizacin 1 Localizacin 2 Localizacin 3 Cantidad
demandada
Cliente 1 3 2 4 100
Cliente 2 4 2 3 50
Cliente 3 5 4 3 75
Cliente 4 2 6 5 60
Cliente 5 6 5 4 120
Cliente 6 3 4 6 90

Para formular este problema denotemos por:
x
j
una variable binaria que toma el valor 1 si se abre una fbrica en la localizacin j ( j
= 1, 2, 3) y cero en caso contrario.
y
ij
las unidades enviadas desde la localizacin j al cliente i. Como existen 3
localizaciones y 6 clientes tenemos 18 variables de este tipo.
As la formulacin ser:
63 53 43 33 23 13 62 52 42 32 22 12
61 51 41 31 21 11 3 2 1
6 4 5 3 3 4 4 5 6 4 2 2
3 6 2 5 4 3 50000 50000 50000
y y y y y y y y y y y y
y y y y y y x x x Min
+ + + + + + + + + + + +
+ + + + + + + + +
s.a.
90
120
60
75
50
100
63 62 61
53 52 51
43 42 41
33 32 31
23 22 21
13 12 11
= + +
= + +
= + +
= + +
= + +
= + +
y y y
y y y
y y y
y y y
y y y
y y y
restricciones para cubrir la demanda de los clientes
3 63 53 43 33 23 13
2 62 52 42 32 22 12
1 61 51 41 31 21 11
300
300
300
x y y y y y y
x y y y y y y
x y y y y y y
+ + + + +
+ + + + +
+ + + + +
restricciones para no superar las capacidades
{ } 1 , 0 , , ,
3 2 1

+
x x x y
ij



Resolvemos con LINDO:
OBJECTIVE FUNCTION VALUE

1) 101545.0

VARIABLE VALUE REDUCED COST
X1 1.000000 50000.000000
X2 0.000000 50000.000000
X3 1.000000 50000.000000
Y11 100.000000 3.000000
Y21 0.000000 4.000000
Y31 0.000000 5.000000
Y41 60.000000 2.000000
Y51 0.000000 2.000000
Y61 90.000000 3.000000
Y12 0.000000 2.000000
Y22 0.000000 2.000000
Y32 0.000000 4.000000
Y42 0.000000 6.000000
Y52 0.000000 1.000000
Y62 0.000000 4.000000
Y13 0.000000 4.000000
Y23 50.000000 3.000000
Y33 75.000000 3.000000
Y43 0.000000 5.000000
Y53 120.000000 0.000000
Y63 0.000000 6.000000


ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 0.000000
3) 0.000000 0.000000
4) 0.000000 0.000000
5) 0.000000 0.000000
6) 0.000000 -4.000000
7) 0.000000 0.000000
8) 50.000000 0.000000
9) 0.000000 0.000000
10) 55.000000 0.000000

NO. ITERATIONS= 116
BRANCHES= 5 DETERM.= 1.000E 0


2.3. Mtodos de resolucin.
Dicho problema se resuelve mediante la Programacin Lineal Entera. Resolviendo
mediante Lindo el problema anterior tenemos como solucin:
Para las variables binarias: x
1
=1, x
2
=0, x
3
=1 lo cual significa que se abren dos
fbricas, una en la localizacin 1 y otra en la localizacin 3.
Para las variables enteras: y
11
=100, y
41
=60, y
61
=90, y
23
=50, y
33
= 75, y
53
=120,
siendo las dems cero. Esto significa que los clientes 1, 4 y 6 sern atendidos por la
fbrica que se instale en la localizacin 1 y los clientes 2, 3 y 5 por la fbrica instalada
en la localizacin 3.
EJEMPLO:
Veamos ahora un ejemplo numrico donde la actividad a decidir no es la apertura de
una fbrica sino la produccin o no de ciertos productos.
Una empresa fabrica 3 productos distintos P
i
, i = 1, 2, 3, en cantidades enteras no
negativas. El coste de produccin de cada producto P
i
comprende un coste fijo C
i

independiente de la cantidad producida y un coste variable c
i
por unidad producida. La
tabla contiene los costes de produccin en euros.
Producto P
1
P
2
P
3

Coste fijo C
i
650 720 580
Coste var. c
i
3.8 4 4.5

Para la fabricacin de esos productos deben utilizarse 2 materias primas, MP
j
j = 1, 2.
La siguiente tabla muestra los gastos de materias primas por unidad de producto
producido, las disponibilidades de materias primas, ambas en unidades, y las
producciones mximas. Los costes de las materias primas se suponen nulos, ya que la
empresa dispone de ellas.
Materia Prima Consumo de MP
j
por u.
producida en
P
1
P
2
P
3

Disponibilidad de
Materia prima
MP
1
0.7 0.2 0.4 150
MP
2
0.3 0.5 0.4 175
Produccin Mxima 250 375 210

Si se desean fabricar, en total, al menos 400 unidades de producto, construir un
modelo que proporcione el plan de produccin con coste mnimo.
Para solucionarlo denotemos por:
y
i
la cantidad a fabricar del producto Pi ( i = 1, 2, 3)
x
i
una variable binaria que toma el valor 1 si se fabrica el producto Pi ( i = 1, 2, 3) y
cero en caso contrario.
Observando el enunciado vemos que en este caso las restricciones vienen motivadas,
no por las demandas de unos clientes que hay que satisfacer, sino por las
disponibilidades de materias primas y por las producciones mximas de cada tipo de
producto, principalmente.
As el modelo a resolver sera:
3
4.5y 580x 4y 720x 3.8y 650x Min
3 2 2 1 1
+ + + + +
{ } 0 1, x , x Z, y , y , y
0 y , y , y
400 y y y
210x y
375x y
250x y
175 0.4y 0.5y 0.3y
150 0.4y 0.2y 0.7y s.a.
2 1 3 2 1
3 2 1
3 2 1
3 3
2 2
1 1
3 2 1
3 2 1
=

+ +

+ +
+ +


Obtenemos como solucin: x
1
=x
2
=1, y
1
=140, y
2
=260, siendo todas las dems
variables cero, lo cual significa que se tienen que fabricar los productos P
1
y P
2
en
cantidades 140 y 260, respectivamente, y el mnimo coste asciende a 2942 euros.

OBJECTIVE FUNCTION VALUE

1) 2942.000

VARIABLE VALUE REDUCED COST
Y1 140.000000 3.800000
Y2 260.000000 4.000000
Y3 0.000000 7.261905
X1 1.000000 650.000000
X2 1.000000 720.000000
X3 0.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000001 0.000000
3) 2.999998 0.000000
4) 110.000000 0.000000
5) 115.000000 0.000000
6) 0.000000 2.761905
7) 0.000000 0.000000
3. PROBLEMA DE LA MOCHILA
3. 1. Objetivo
El problema de la mochila recoge una situacin que se presenta con cierta frecuencia
en los mbitos econmico e industrial, donde la mochila suele representar la restriccin
presupuestaria (cantidad mxima de recursos econmicos de los que se dispone) y
donde la utilidad de los objetos seleccionados se equipara a un beneficio econmico
por adquirir o llevar a cabo ciertas acciones.
Un ejemplo tpico de esta situacin es el siguiente. Imaginemos que queremos hacer
una excursin a la que solo podemos llevar una mochila que, lgicamente, tiene una
capacidad limitada. Cada objeto que introducimos ocupa un volumen dentro de la
misma y en contrapartida durante el viaje nos proporcionar un beneficio o utilidad; el
problema surge cuando debemos elegir qu objetos seleccionar para llevar en la
mochila de forma que nuestro beneficio sea mximo sin exceder su capacidad.
Esta situacin tambin se puede dar en situaciones econmicas. As, supongamos que
una empresa cuenta con un presupuesto que debe distribuir entre varios proyectos
posibles. Cada uno de estos proyectos supone un coste econmico y reporta un
beneficio a la empresa. La cuestin es qu proyectos llevar a cabo de forma que no se
exceda el presupuesto y se maximicen los beneficios; por tanto, estamos ante un
problema de la mochila.
Veamos a continuacin un ejemplo de la aplicacin del planteamiento de la mochila al
mbito econmico.
Ejemplo
Sea una empresa que fabrica objetos de papelera, que en el ejercicio econmico que
se cierra ha obtenido un excedente de 10.000; se plantea invertir esta cantidad (o
parte de ella) en algunos productos, teniendo en cuenta que los beneficios son:
o Lpices de colores con un beneficio de 11.000
o Gomas de borrar con un beneficio de 9.000
o Carboncillos con un beneficio de 1.000
Por otra parte, los costes son:
o Coste de las instalaciones para fabricar lpices de colores: 10.000
o Coste de las instalaciones para fabricar gomas de borrar: 6.000
o Coste de las instalaciones para fabricar carboncillos: 4.000
Cmo resolvemos el problema planteado? Queremos elegir alguno (o varios) de los
productos anteriores. Parece lgico tener en cuenta la relacin b
i
/c
i
, donde
consideramos los beneficios y costes a la vez.
En nuestro ejemplo, si calculamos este ratio, obtenemos:
o Lpices de colores: 11.000/10.000 = 1.1
o Gomas de borrar: 9.000/6.000 = 1.5
o Carboncillos: 1.000/4.000 = 0.25
De forma que elegiramos primero Gomas de borrar pues su ratio es el mayor (con
un coste de 6.000 ); el siguiente ratio (1.1) sobrepasa el peso de la mochila mximo,
por lo que elegimos carboncillos (con un coste de 4.000 ), no pudiendo elegir ms,
ya que nuestro presupuesto era de 10.000 .
Con esta solucin, el beneficio obtenido es de 9.000+ 1.000= 10.000 . Como veremos
ms adelante, si este problema se resuelve por tcnicas de Programacin Lineal, la
solucin obtenida no es la misma, resulta que elegimos Lpices de colores, el cual
nos proporciona un beneficio mayor, 11.000 .
En este ejemplo, al ser sencillo, podemos estudiar exhaustivamente todas las
combinaciones posibles 2
n
y elegir la que sea ms conveniente:
Lpices Gomas Carboncillos Coste Beneficio Admisible
1 si si si 20.000 21.000 NO
2 si si no 16.000 20.000 NO
3 si no si 14.000 12.000 NO
4 no si si 10.000 10.000 SI
5 si no no 10.000 11.000 SI
6 no si no 6.000 9.000 SI
7 no no si 4.000 1.000 SI
8 no no no 0 0 SI

Entre las que son admisibles, elegiramos la opcin 5 ya que es la que nos reporta
mayor beneficio sin sobrepasar el coste que podemos asumir.


3. 2. Formulacin
Pasamos a enunciar de forma matemtica el problema que se nos plantea para poder
formularlo.
Llamaremos:
o n : nmero de objetos entre los que se puede elegir.
o c
i
: peso del objeto i; c
i
representa el coste de escoger un objeto, pues va a
ocupar espacio de la mochila y dejar fuera otros objetos.
o b
i
: utilidad o beneficio que proporciona cada objeto.
o P: capacidad de la mochila, lo que equivale al presupuesto mximo del que se
dispone.
Las variables del problema, x
i
, vuelven a ser, como en los problemas tratados
anteriormente, dicotmicas o binarias, es decir, slo pueden tomar dos valores:
o El valor 1 si el objeto se incluye en la mochila
o El valor 0 si el objeto se excluye de la mochila
Por otra parte, la restriccin que nos surge viene dada por la capacidad mxima de la
mochila, de tal forma que para este problema tenemos:

=

n
1 i
i i
P x c
Por ltimo, el objetivo del problema es maximizar el beneficio:

=
n
1 i
i i
x b Maximizar
En conclusin, la formulacin del problema es:
n ,..., 1 i }, 1 , 0 { x
P x c a . s
x b Maximizar
i
n
1 i
i i
n
1 i
i i
=

=
=



3. 3. Mtodos de resolucin
Este problema, a igual que los comentados hasta ahora, se puede resolver por las
tcnicas conocidas para problemas de Programacin Entera siempre que la dimensin
del problema no sea excesiva.
Ejemplo
Una empresa dispone de un milln de euros para invertir en nuevos proyectos. En
concreto dispone de 3 nuevos proyectos posibles. En la siguiente tabla aparece el coste
que supone cada uno de ellos, as como el beneficio que se espera de su realizacin.
La empresa desea saber en cul debe invertir si quiere maximizar su beneficio
esperado sin superar su presupuesto (cantidades en miles de euros):
Coste inversin Beneficio esperado
Proyecto 1 500 1.750
Proyecto 2 600 2.000
Proyecto 3 400 1.500
Proyecto 4 550 1.900

Para resolverlo, llamamos xi a una variable binaria que toma el valor 1 si se elige el
proyecto i ( i = 1, 2, 3, 4) y cero en caso contrario.
En este problema nos encontramos como restriccin slo la presupuestaria luego la
formulacin del mismo es como problema de la mochila:
Maximizar 1750 x
1
+ 2000 x
2
+ 1500 x
3
+ 1900 x
4

Sujeta a: 500 x
1
+ 600 x
2
+ 400 x
3
+ 550 x
4
1000
x
1
, x
2
, x
3
, x
4
{0,1}

Resolvindolo obtenemos que la mejor opcin es elegir los proyectos 2 y 3
alcanzndose un beneficio esperado de 3.500.000 .
NMaximize@81750 x
1
+2000 x
2
+1500 x
3
+ 1900 x
4
,
500 x
1
+600 x
2
+400 x
3
+550x
4
1000,
x
1
Integers, x
2
Integers, x
3
Integers, x
4
Integers,
0 x
1
1, 0x
2
1,0 x
3
1, 0 x
4
1<,
8x
1
,x
2
,x
3
, x
4
<D


83500., 8x
1
0, x
2
1, x
3
1, x
4
0<<

Ejemplo
El Club Baloncesto Unicaja de Mlaga quiere contratar un jugador nuevo; para ello, ha
sondeado el mercado y ha encontrado a 5 jugadores que pueden adaptarse a lo
requerido por el entrenador. Para reforzar el equipo el Unicaja dispone de un
presupuesto mximo de 50.000 / mes. En la siguiente tabla aparece una relacin de
los candidatos a ser fichados junto con su aportacin esperada y el sueldo que
percibiran:
SUELDO APORTACIN
Jugador 1 50.000 15
Jugador 2 25.200 8
Jugador 3 36.000 15
Jugador 4 47.000 17
Jugador 5 12.000 7

Como puede apreciarse en este caso, estamos aplicando el problema de la mochila a
una situacin de ndole econmico. Nuestra intencin es elegir los mejores jugadores,
es decir, aquellos cuya aportacin es mayor y proporcionan una mayor utilidad para el
Unicaza, optimizando tambin el desembolso que conlleva una nueva contratacin. No
debemos olvidar la restriccin de 50.000 .
Si llamamos x
i
al jugador i el problema a resolver es:
Maximizar 15x
1
+ 8x
2
+ 15x
3
+ 17x
4
+7x
5

sujeto a: 50000x
1
+ 25200x
2
+ 36000x
3
+ 47000x
4
+ 12000x
5
50000
x
1
,x
2
,x
3
,x
4
,x
5
{0,1}
donde la funcin objetivo es la suma de las utilidades que reporta cada jugador y
representa, por tanto, la utilidad que percibir Unicaja en funcin de la combinacin de
jugadores que elija, puesto que se trata de la utilidad (en este caso, estar medida por
el nmero de partidos que el jugador haga ganar o en los que tenga un peso
importante) al club de Baloncesto le interesar que sea lo mayor posible. De ah que el
objetivo sea maximizar la funcin.
En cuanto a la restriccin, es la restriccin presupuestaria del equipo, es decir, son los
50.000 mensuales de los que puede disponer Unicaja para remunerar a sus nuevos
jugadores.
Para resolverlo, utilizaremos las dos formas vistas. Primero, utilizando el planteamiento
lgico; escogeremos como criterio el ratio "Aportacin/Sueldo", ya que tenemos en
cuenta ambos factores en la decisin: cuanto ms alto sea este ratio, preferible ser
contratar a este jugador. Reconsideraremos el sueldo, dividindolo por 1.000 para
hacer el ratio ms operativo:
Sueldo Aportacin Ratio = Aportacin/Sueldo
Jugador 1 50 15 0,3000
Jugador 2 25,2 8 0,3175
Jugador 3 36 15 0,4167
Jugador 4 47 17 0,3617
Jugador 5 12 7 0,5833

Como hemos dicho, escogeremos aquellos jugadores con mejor ratio hasta agotar el
presupuesto:
o Jugador 5: ratio =0,58333, sueldo = 12.000
o Jugador 3: ratio =0,41666, sueldo = 36.000

Como el total disponible era de 50.000 y tenemos acumulado 48.000 , no hay ms
jugadores cuyo sueldo pueda entrar en presupuesto, as que ste es nuestro resultado
definitivo por este mtodo.
Por otra parte, resolviendo obtenemos la misma solucin, contratando a los jugadores
3 y 5. La utilidad para el equipo de los jugadores nuevo al equipo de 22.
NMaximize@815 x
1
+8 x
2
+15 x
3
+17 x
4
+ 7 x
5
,
50 x
1
+25.2 x
2
+36 x
3
+47x
4
+12 x
5
50,
x
1
Integers,x
2
Integers,x
3
Integers, x
4
Integers,x
5
Integers,
0 x
1
1,0x
2
1,0 x
3
1, 0 x
4
1,0x
5
1<,
8x
1
,x
2
,x
3
, x
4
,x
5
<D


822., 8x
1
0, x
2
0, x
3
1, x
4
0, x
5
1<<





4. RECUBRIMIENTO
4. 1. Objetivo.
El problema del recubrimiento se corresponde con una situacin real muy comn en
muy diversas situaciones, principalmente en la asignacin de horarios y viajes a
plantillas de transportes, como tripulaciones de vuelo, de trenes, conductores de
autobuses, etc, aunque es en el campo de las tripulaciones de vuelo donde ms
cantidad de aplicaciones se resuelven y donde ms dinero se invierte en mejorar los
mtodos de resolucin. Esto lo convierte en uno de los problemas de ms inters en la
Investigacin Operativa y la Programacin Lineal Entera, y por tanto en uno de los
problemas para los que existen algoritmos ms eficientes.
En los ltimos aos, este problema se ha mostrado tambin clave para situaciones
relacionadas con la ingeniera informtica, como el testeo, la construccin ptima de
circuitos lgicos o la inspeccin en busca de virus.
Por ende, muchos otros problemas combinatorios pueden reformularse como
problemas de recubrimiento, lo cual lo dota de an ms inters. As, actualmente se
pueden resolver de forma ptima problemas con unos pocos cientos de objetos y unos
pocos miles de subconjuntos, y dentro de un 1% de precisin problemas con unos
pocos miles de objetos y unos pocos millones de subconjuntos.
Para una mejor comprensin del problema que se intenta estudiar presentamos la
siguiente situacin: Supongamos que tenemos un conjunto de 6 elementos
C={1,2,3,4,5,6}, y para cubrirlo tenemos la siguiente coleccin de subconjuntos
SC={SC
1
=(1,2), SC
2
=(1,3,4), SC
3
=(5,6), SC
4
=(4,6), SC
5
=(3,4,5)}, cada uno de ellos
con unos costes asociados de C={ C
1
=3, C
2
=3, C
3
=4, C
4
=2, C
5
=3}.
Esta situacin se puede representar mediante una matriz de incidencia A
65
, donde el
elemento a
ij
{0,1} determina si el objeto i pertenece al subconjunto SC
j
o no:
Coste 3 3 4 2 3
Obj. SC1 SC2 SC3 SC4 SC5
1 1 1 0 0 0
2 1 0 0 0 0
3 0 1 0 0 1
4 0 1 0 1 1
5 0 0 1 0 1
6 0 0 1 1 0

Para resolver este problema deberamos comprobar cuales de las 2
5
= 32 posibles
formas de seleccionar subconjuntos son realmente un recubrimiento (es decir, incluyen
al menos una vez a cada uno de los 6 elementos), y de entre ellos seleccionar aquel
que tiene un coste ms bajo. Para un ejemplo tan sencillo, se puede ver que esta tarea
es cuanto menos tediosa:
Sol. SC1 SC2 SC3 SC4 SC5 Rec Coste
1 0 0 0 0 0 No 0
2 0 0 0 0 1 No 3
3 0 0 0 1 0 No 2
4 0 0 0 1 1 No 5
5 0 0 1 0 0 No 4
6 0 0 1 0 1 No 7
7 0 0 1 1 0 No 6
8 0 0 1 1 1 No 9
9 0 1 0 0 0 No 3
10 0 1 0 0 1 No 6
11 0 1 0 1 0 No 5
12 0 1 0 1 1 No 8
13 0 1 1 0 0 No 7
14 0 1 1 0 1 No 10
15 0 1 1 1 0 No 9
16 0 1 1 1 1 No 12
17 1 0 0 0 0 No 3
18 1 0 0 0 1 No 6
19 1 0 0 1 0 No 5
20 1 0 0 1 1 Si 8
21 1 0 1 0 0 No 7
22 1 0 1 0 1 Si 10
23 1 0 1 1 0 No 9
24 1 0 1 1 1 Si 12
25 1 1 0 0 0 No 6
26 1 1 0 0 1 No 9
27 1 1 0 1 0 No 8
28 1 1 0 1 1 Si 11
29 1 1 1 0 0 Si 10
30 1 1 1 0 1 Si 13
31 1 1 1 1 0 Si 12
32 1 1 1 1 1 Si 15
Podemos observar aqu soluciones que no son un recubrimiento:
Sol. SC1 SC2 SC3 SC4 SC5 Rec Coste
4 0 0 0 1 1 No 5

En este caso particular, podemos observar que no es un recubrimiento porque entre
los dos subconjuntos seleccionados (SC4 y SC5) no cubren a los elementos 1 y 2.
Por el contrario, la solucin 28, por ejemplo, si que cubre a todos los elementos del
conjunto, aunque presenta un coste mayor que la solucin ptima.
Sol. SC1 SC2 SC3 SC4 SC5 Rec Coste
28 1 1 0 1 1 Si 11

Es decir, de las 32 posibles formas de elegir algunos de estos 5 subconjuntos,
solamente 8 son recubrimiento, y de entre esas 8 la ms barata resulta la
correspondiente a elegir los subconjuntos SC
1
, SC
4
y SC
5
, con un coste final de 8 u.m.
Claramente, este problema no se podra resolver as en el caso que aumente el nmero
de subconjuntos, puesto que la determinacin de todas las posibilidades puede
hacerse inviable. Pinsese el caso de 30 subconjuntos, donde el nmero de
posibilidades seran 2
30
= 1.073.741.824.
Para ms claridad, mostraremos un problema grficamente, donde suponemos que
tenemos los siguientes 12 objetos y los siguientes 7 subconjuntos (supondremos para
simplificar que todos los c
i
son 1):

La cuestin es la misma: Cul es el nmero mnimo de subconjuntos que cubren los
12 objetos? En este caso tan sencillo se puede ver fcilmente que con tres de estos
subconjuntos se pueden cubrir todos los items:

Sin embargo, es claro tambin que para situaciones ms complejas que estas no es
posible encontrar este recubrimiento grficamente. Estas situaciones se dan
frecuentemente en muchas situaciones industriales (diseo de plantillas), de mbito
pblico (donde localizar comisarias, hospitales, oficinas de correo, bocas de metro, etc,
de forma que se cubra al menos una vez a cualquier posible usuario) y en el mbito de
las Telecomunicaciones (en lo que se conoce como Programacin Lgica).
Para estas situaciones ms complejas es claro que se necesita una formulacin para
resolver el problema mediante programacin matemtica.
4. 2. Formulacin.
Con el fin de poder resolver el problema general de una manera ms cmoda
necesitamos enunciarlo para despus formularlo mediante un modelo de programacin
matemtica.
Este problema responde a la siguiente situacin:
Tienes un conjunto de objetos M = {1, ...,m}
Una coleccion C = {m
1
, ...,m
n
} de subconjuntos de M
Una matriz A
mn
de incidencia, donde el elemento a
ij
{0,1} determina si el
objeto i pertenece al subconjunto m
j
o no.
Un coste c
i
de incluir un subconjunto
Recubrimiento: Una seleccin de subconjuntos de M de forma todos los
objetos estn cubiertos al menos por un subconjunto de esta seleccin.
Objetivo : Encontrar el recubrimiento con mnimo coste.

Para este problema tenemos n variables binarias:
x
i
=1 si el subconjunto i es seleccionado,
x
i
=0 en otro caso

Tenemos m restricciones que representan el hecho de que cada objeto debe estar en
al menos un subconjunto:

=
n
j 1
a
ij
x
j
1 , i=1,, m
Con lo que el problema resultante es:
Min

=
n
j 1
c
j
x
j

s.a:

=
n
j 1
a
ij
x
j
1 , i=1,, m
x
j
{0,1} , j= 1,, n
4. 3. Mtodos de resolucin.
Este problema se resuelve utilizando Programacin Lineal Entera, hasta que el tamao
supera unos pocos cientos de objetos y unos pocos miles de subconjuntos. A partir de
estos tamaos, se utilizan complejos heursticos para su resolucin.
Ejemplo.
Supongamos que se desea dar cobertura sanitaria a seis nuevas zonas de una ciudad,
y que para ello se tienen cuatro localizaciones posibles donde construir centros de
salud, cada una de ellas con un coste de construir el centro de salud y dando cobertura
a unas determinadas zonas, segn la siguiente tabla:

CS 1 CS 2 CS 3 CS 4
Coste (m.) 25 33 22 17
Zona 1 1 0 1 1
Zona 2 1 1 0 0
Zona 3 0 1 1 1
Zona 4 0 1 0 1
Zona 5 0 0 1 1
Zona 6 0 0 1 1

El modelo de optimizacin sera:
x
j
: Toma valor 1 si se construye el centro de salud j y 0 en caso contrario.
Min (z)= 25 x
1
+ 33 x
2
+ 22 x
3
+ 17 x
4

s.a:
Zona 1) x
1
+ x
3
+ x
4
1
Zona 2) x
1
+ x
2
1
Zona 3) x
2
+ x
3
+ x
4
1
Zona 4) x
2
+ x
4
1
Zona 5) x
3
+ x
4
1
Zona 6) x
3
+ x
4
1
x
1
,x
2
, x
3
, x
4
{0,1}
Y la solucin sera:
Valor f : 42
Valor variables:
x1 = 1
x2 = 0
x3 = 0
x4 = 1

Es decir, se construiran centros de salud en las localizaciones 1 y 4.

4. 4. Caso Particular: Empaquetamiento.
Este problema es una variante del problema de recubrimiento donde se obliga a que
todos los conjuntos sean disjuntos, aunque en cambio no se obliga a que todos los
elementos estn cubiertos por la seleccin de subconjuntos. Est basado en
situaciones de transporte de mercancas, bsicamente por barco o avin, y de lo que
se trata es de maximizar el beneficio de cada viaje.
Para nuestro problema, sustituimos Coste por Beneficio:
Beneficio 3 5 4 2 3
Obj. SC1 SC2 SC3 SC4 SC5
1 1 1 0 0 0
2 1 0 0 0 0
3 0 1 0 0 1
4 0 1 0 1 1
5 0 0 1 0 1
6 0 0 1 1 0

Para resolver este problema deberamos comprobar cuales de las 2
5
= 32 posibles
formas de seleccionar subconjuntos son un empaquetamiento (es decir, incluyen a lo
mas una vez a cada uno de los 6 elementos), y de entre ellos seleccionar aquel que
tiene un beneficio ms alto:
Sol. SC1 SC2 SC3 SC4 SC5 Emp. Coste
1 0 0 0 0 0 Si 0
2 0 0 0 0 1 Si 3
3 0 0 0 1 0 Si 2
4 0 0 0 1 1 No 5
5 0 0 1 0 0 Si 4
6 0 0 1 0 1 No 7
7 0 0 1 1 0 No 6
8 0 0 1 1 1 No 9
9 0 1 0 0 0 Si 5
10 0 1 0 0 1 No 8
11 0 1 0 1 0 No 7
12 0 1 0 1 1 No 10
13 0 1 1 0 0 Si 9
14 0 1 1 0 1 No 12
15 0 1 1 1 0 No 11
16 0 1 1 1 1 No 14
17 1 0 0 0 0 Si 3
18 1 0 0 0 1 Si 6
19 1 0 0 1 0 Si 5
20 1 0 0 1 1 No 8
21 1 0 1 0 0 Si 7
22 1 0 1 0 1 No 10
23 1 0 1 1 0 No 9
24 1 0 1 1 1 No 12
25 1 1 0 0 0 No 8
26 1 1 0 0 1 No 11
27 1 1 0 1 0 No 10
28 1 1 0 1 1 No 13
29 1 1 1 0 0 No 12
30 1 1 1 0 1 No 15
31 1 1 1 1 0 No 14
32 1 1 1 1 1 No 17

En este caso, vemos que 10 de las 32 posibilidades constituyen un empaquetamiento,
y que el que reporta mayor beneficio es aquel que incluye a los subconjuntos SC
2
y SC
3

que cubren a todos los objetos menos al 2 (es decir, no es un recubrimiento).
Vemos aqu que la solucin 4 tampoco es un empaquetamiento:
Sol. SC1 SC2 SC3 SC4 SC5 Emp. Coste
4 0 0 0 1 1 No 5

En este caso, podemos observar que no es un empaquetamiento porque los dos
subconjuntos seleccionados (SC4 y SC5) tienen interseccin no vaca, el elemento 4.
Y en este caso, la solucin 28 tampoco es un empaquetamiento, porque tanto los
subconjuntos SC4 y SC5, como los subconjuntos SC1 y SC2 tienen interseccin no
vaca.
Sol. SC1 SC2 SC3 SC4 SC5 Emp. Coste
28 1 1 0 1 1 No 13

Grficamente, supongamos que tenemos los siguientes 12 objetos y los siguientes 7
subconjuntos (supondremos de nuevo para simplificar que todos los c
i
son 1):

La cuestin es : Cul es el empaquetado que cubre ms objetos? En este caso tan
sencillo se puede ver fcilmente el mejor empaquetado es el siguiente:


De nuevo, es claro que para situaciones ms complejas no es posible encontrar este
empaquetamiento grficamente. Este tipo de problema se da constantemente en
situaciones de transporte de mercancas, en camin, en barco, en avin, etc, as como
en el problema de la asignacin de tripulaciones a vuelos.
Para estas situaciones ms complejas es claro que se necesita una formulacin para
resolver el problema mediante programacin matemtica.
4. 4. 1. Formulacin.
Este problema responde a la siguiente situacin:
Tienes un conjunto de objetos a transportar M = {1, ...,m}
Una coleccion C = {m
1
, ...,m
n
} de subconjuntos (paquetes) de M
Una matriz A
mn
de incidencia, donde el elemento a
ij
{0,1} determina si el
objeto i pertenece al subconjunto m
j
o no.
Un beneficio c
i
de incluir un paquete.
Empaquetado: Una seleccin de subconjuntos de C de forma que todos los
subconjuntos seleccionados son disjuntos.
Objetivo : Encontrar el empaquetado que maximiza el beneficio.

Para este problema tenemos n variables binarias:
x
i
=1 si el subconjunto i es seleccionado,
x
i
=0 en otro caso
Tenemos m restricciones que representan el hecho de que cada objeto debe estar en a
lo sumo un subconjunto:

=
n
j 1
a
ij
x
j
1 , i=1,, m
Con lo que el problema resultante es:
Max

=
n
j 1
c
j
x
j

s.a:

=
n
j 1
a
ij
x
j
1 , i=1,, m
x
j
{0,1} , j= 1,, n
4. 4. 2. Mtodos de resolucin.
Anlogamente, este problema se resuelve utilizando Programacin Lineal Entera.
Ejemplo.
La aerolnea Grantor Tazo, dedicada al transporte de mercancas, tiene solicitados 12
servicios para hoy. La empresa asigna los transportes a varios aviones y dispone de
siete plantillas de vuelo (un piloto, un copiloto y un navegador) para tripularlos, cada
una de ellas con una localizacin actual y una capacidad de vuelo propias (que
determina cuantos vuelos ms va a poder hacer en ese mismo da), que les permiten
realizar slo algunos de los vuelos, y naturalmente, un mismo vuelo no puede ser
realizado por dos plantillas. El beneficio de realizar cada uno de los transportes
solicitados, as como la disponibilidad para realizar cada uno de los encargos por parte
de cada una de las plantillas vienen reflejados en la siguiente tabla:
P1 P2 P3 P4 P5 P6 P7
Benefic: 100 75 90 50 78 40 30
T1 1 0 1 0 0 0 0
T2 0 1 1 0 0 0 0
T3 0 0 1 1 0 0 0
T4 0 0 0 1 0 0 0
T5 0 0 1 0 1 0 0
T6 0 0 0 0 1 1 0
T7 0 0 0 1 0 1 0
T8 0 1 0 1 0 0 0
T9 0 0 1 0 0 0 1
T10 0 0 1 0 0 1 1
T11 0 0 1 1 0 1 0
T12 0 0 0 1 0 0 0

Qu plantillas de vuelo deben utilizarse para maximizar el beneficio de la empresa?
El modelo de optimizacin sera:
x
j
: Toma valor 1 si vuela la plantilla j y 0 en caso contrario.


Max (z)= 100x
1
+ 75 x
2
+ 90 x
3
+ 50 x
4
+78 x
5
+ 40 x
6
+ 30 x
7

s.a:
T1) x
1
+ x
3
1
T2) x
2
+ x
3
1
T3) x
3
+ x
4
1
T4) x
4
1
T5) x
3
+ x
5
1
T6) x
5
+ x
6
1
T7) x
4
+ x
6
1
T8) x
2
+ x
4
1
T9) x
3
+ x
7
1
T10) x
3
+ x
6
+ x
7
1
T11) x
3
+ x
4
+ x
6
1
T12) x
4
1
x
i
{0,1} i=1, , 7

Y la solucin seria:
Valor f : 283
Valor variables:
x1 = 1
x2 = 1
x3 = 0
x4 = 0
x5 = 1
x6 = 0
x7 = 1

Es decir, debera utilizar las plantillas 1,2,5 y 7.

4. 5. Caso Particular: Particin.
Este ltimo caso se corresponde con una situacin en la que los subconjuntos deben
constituir una particin, es decir, han de ser una seleccin de subconjuntos que sea a
la vez empaquetado y recubrimiento. Este tipo de problema se da constantemente por
ejemplo en la asignacin de cirujanos a quirfanos: un cirujano puede hacer varias
operaciones, no se puede hacer una operacin sin cirujano y no se puede (o no se
debera) dejar una operacin sin hacer. Lo mismo sucede en la asignacin de plantillas
a vuelos regulares: una plantilla puede hacer varios vuelos, no se puede hacer un
vuelo sin plantilla (sin piloto!) y no se puede (o no se debera) dejar un vuelo sin
hacer.

Para nuestro problema:
Beneficio 3 5 4 2 3
Obj. SC1 SC2 SC3 SC4 SC5
1 1 1 0 0 0
2 1 0 0 0 0
3 0 1 0 0 1
4 0 1 0 1 1
5 0 0 1 0 1
6 0 0 1 1 0

Deberamos comprobar cuales de las 2
5
= 32 posibles formas de seleccionar
subconjuntos son una particin (es decir, incluyen una y slo una vez a cada uno de
los 6 elementos), y de entre ellos seleccionar aquel que tiene un beneficio ms alto:
Sol. SC1 SC2 SC3 SC4 SC5 Part Coste
1 0 0 0 0 0 No 0
2 0 0 0 0 1 No 3
3 0 0 0 1 0 No 2
4 0 0 0 1 1 No 5
5 0 0 1 0 0 No 4
6 0 0 1 0 1 No 7
7 0 0 1 1 0 No 6
8 0 0 1 1 1 No 9
9 0 1 0 0 0 No 5
10 0 1 0 0 1 No 8
11 0 1 0 1 0 No 7
12 0 1 0 1 1 No 10
13 0 1 1 0 0 No 9
14 0 1 1 0 1 No 12
15 0 1 1 1 0 No 11
16 0 1 1 1 1 No 14
17 1 0 0 0 0 No 3
18 1 0 0 0 1 No 6
19 1 0 0 1 0 No 5
20 1 0 0 1 1 No 8
21 1 0 1 0 0 No 7
22 1 0 1 0 1 No 10
23 1 0 1 1 0 No 9
24 1 0 1 1 1 No 12
25 1 1 0 0 0 No 8
26 1 1 0 0 1 No 11
27 1 1 0 1 0 No 10
28 1 1 0 1 1 No 13
29 1 1 1 0 0 No 12
30 1 1 1 0 1 No 15
31 1 1 1 1 0 No 14
32 1 1 1 1 1 No 17

Y en este caso comprobamos que ninguna de las 32 posibilidades constituye una
particin! Es decir no hay ninguna forma de incluir a todos los elementos una y solo
una vez. Esto se comprueba con el siguiente razonamiento:
- Los subconjuntos SC3, SC4 y SC5 tienen interseccin vaca dos a dos, con lo
que a lo ms uno de ellos puede ser seleccionado.
- Ninguno de los subconjuntos SC3, SC4 o SC5 cubre a todos los elementos de
{3,4,5,6}.
- El nico otro subconjunto que cubre alguno de los elementos de {3,4,5,6} es el
SC2, que cubre a {3,4}.
- Pero elegir a SC2 implica dejar sin cubrir el elemento 2, puesto que SC1 tiene
interseccin no vaca con SC2 y es el nico que cubre al elemento 2. Por tanto
SC2 no se puede utilizar.
Por tanto, no es posible encontrar una particin que cubra al conjunto {3,4,5,6}, y
por tanto no hay particin posible.
Grficamente, supongamos que tenemos los siguientes 12 objetos y los siguientes 7
subconjuntos (supondremos para simplificar que todos los c
i
son 1):

La cuestin es : Qu subconjuntos podemos seleccionar de forma que cada objeto
est en uno y slo en unos de estos subconjuntos? En este caso, la repuesta es:

En caso de que hubiera varias particiones posibles, y que cada particin reportara un
beneficio distinto (no es el caso en nuestro ejemplo tan sencillo) la pregunta sera an
ms compleja. De entre todas las posibles particiones, Cul es la que reporta
beneficio mximo? Es claro que para situaciones ms complejas no es posible
encontrar esta particin grficamente.
La particularidad de los problemas de particin es que puede tener sentido tanto
minimizar como maximizar (es realmente la conjuncin de un problema de maximizar
con un problema de minimizar) dependiendo de la situacin, con lo que nosotros
adoptaremos el criterio general Opt (Optimizar) para este problema
Para estas situaciones ms complejas es claro que se necesita una formulacin para
resolver el problema mediante programacin matemtica.
4. 5. 1. Formulacin.
Este problema responde a la siguiente situacin:
Tienes un conjunto de objetos M = {1, ...,m}
Una coleccion C = {m
1
, ...,m
n
} de subconjuntos (paquetes) de M
Una matriz A
mn
de incidencia, donde el elemento a
ij
{0,1} determina si el
objeto i pertenece al subconjunto m
j
o no.
Un beneficio c
i
de incluir un subconjunto.
Empaquetado: Una seleccin de subconjuntos de C de forma que todos los
subconjuntos seleccionados son disjuntos.
Recubrimiento: Una seleccin de subconjuntos de M de forma todos los
objetos estn cubiertos al menos por un subconjunto de esta seleccin.
Particin: Una seleccin de subconjuntos que es a la vez empaquetado y
recubrimiento.
Objetivo: Encontrar la particin que maximiza el beneficio.
Para este problema tenemos n variables binarias:
x
i
=1 si el subconjunto i es seleccionado,
x
i
=0 en otro caso

Tenemos m restricciones que representan el hecho de que cada objeto debe estar
exactamente en un subconjunto:

=
n
j 1
a
ij
x
j
=1 , i=1,, m
Con lo que el problema resultante es:
Opt

=
n
j 1
c
j
x
j

s.a:

=
n
j 1
a
ij
x
j
= 1 , i=1,, m
x
j
{0,1} , j= 1,, n
4. 5. 2. Mtodos de resolucin
Este problema se resuelve utilizando Programacin Lineal Entera.
Ejemplo.
Supongamos que deben repartirse seis pedidos en cinco camiones de dos tipos
distintos, pero no todos los pedidos son compatibles con todos los camiones. En la
tabla se codifican las compatibilidades de pedidos y camiones, as como el coste de
cada viaje:

Qu camiones se han de utilizar de forma que se realicen todos los pedidos a coste
mnimo?
El modelo de optimizacin sera:
x
j
: Toma valor 1 si se usa el camin j y 0 en caso contrario.
Min (z)= 5 x
1
+ 3 x
2
+ 4 x
3
+ 1 x
4
+ 4 x
5

s.a:
Pedido 1) x
1
+ x
4
= 1
Pedido 2) x
1
+ x
2
= 1
Pedido 3) x
2
+ x
5
= 1
Pedido 4) x
1
+ x
3
= 1
Pedido 5) x
3
+ x
5
= 1
Pedido 6) x
4
+ x
5
= 1
x
i
{0,1} i=1, , 5
Y la solucin es:
Valor f: 8
Valor variables: x1 = 0
x2 = 1
x3 = 1
x4 = 1
x5 = 0

Es decir, se han de utilizar los camiones 2, 3 y 4.
4 1 4 3 5 Coste por viaje
1 1 6
1 1 5
1 1 4
1 1 3
1 1 2
1 1 1
5 4 3 2 1
Camin 2 Camin 1
Viajes
Pedidos
4 1 4 3 5 Coste por viaje
1 1 6
1 1 5
1 1 4
1 1 3
1 1 2
1 1 1
5 4 3 2 1
Camin 2 Camin 1
Viajes
Pedidos
5. TRANSPORTE
5. 1. Objetivo.
El problema del transporte es un planteamiento clsico de las tcnicas de
programacin lineal. En este problema se pretende elegir el camino ptimo de envo de
una mercanca indivisible desde m orgenes, centros de oferta (por ejemplo, plantas de
produccin) a n destinos, centros de demanda (consumo o tiendas), de forma que el
coste sea mnimo.
Para una mejor comprensin del problema que se intenta analizar presentamos la
siguiente situacin: un fabricante desea enviar varias unidades de un artculo a tres
tiendas T1, T2, y T3. Dispone de dos centros de distribucin desde donde pretende
realizar el envo, CD1 y CD2. En el primero de ellos dispone de 15 miles de unidades
de este artculo y en el segundo 20. La demanda de cada tienda es de 15, 10, y 10
unidades respectivamente. Los gastos de transporte de un artculo desde cada centro
de almacenamiento a cada tienda estn expresados en la tabla:
T1 T2 T3
CD1 1 5 10
CD2 10 1 5
La cuestin a resolver ser: cmo se ha de realizar el transporte del artculo para que
sea lo ms econmico posible? Inicialmente se han de determinar nuestras variables
de decisin, es decir, x
ij
: nmero de unidades transportadas desde cada centro de
distribucin a cada tienda. Concretamente:
x
11
: nmero de unidades transportadas desde el centro CD1 hasta la tienda T1.
x
12
: nmero de unidades transportadas desde el almacn CD1 hasta la tienda T2.

x
13
: nmero de unidades transportadas desde el almacn CD1 hasta la tienda T3.
x
21
: nmero de unidades transportadas desde el almacn CD2 hasta la tienda T1.
x
22
: nmero de unidades transportadas desde el almacn CD2 hasta la tienda T2.
x
23
: nmero de unidades transportadas desde el almacn CD2 hasta la tienda T3.
A continuacin, se determinan las restricciones y se expresan como ecuaciones o
inecuaciones de las variables de decisin. Dichas restricciones se deducen de la
disponibilidad de unidades que hay en cada centro de distribucin as como de la
demanda de cada tienda:

Restricciones de oferta: habr dos ya que hay dos centros de distribucin:
Disponibilidad en el centro de distribucin CD1: x
11
+ x
12
+ x
13
= 15
Disponibilidad en el centro de distribucin CD2: x
21
+ x
22
+ x
31
= 20
Restricciones de demanda: hay tres ya que hay tres tiendas:
Demanda de la tienda T1: x
11
+ x
21
= 15
Demanda de la tienda T2: X
12
+ X
22
= 10
Demanda de la tienda T3: X
13
+ X
23
= 10
Adems, hay que expresar que las condiciones implcitamente establecidas por la
naturaleza de las variables: la cantidad de unidades no pueden ser negativas y deben
ser adems enteras: x
ij
0 y x
ij
Z
1
.
Finalmente, para conocer el envo ms econmico, se determina la funcin objetivo:
Minimizar x
11
+ 5x
12
+ 10x
13
+ 10x
21
+ x
22
+ 5 x
23

Para resolver este problema habra muy diversas alternativas:
Enviar todos los artculos del CD1 a una tienda determinada.
Enviar de manera equitativa los productos del CD1 a todas y cada una de las
tiendas.

Ahora bien, se observa claramente que el envo del articulo a la tienda primera (T1)
hay que hacerla desde el primer centro de distribucin (CD1) ya que su coste es el ms
bajo. Por tanto, desde el primer almacn se envan 15 miles de unidades a la tienda
(con lo que queda totalmente satisfecha tanto la demanda de la tienda como la oferta
del centro de distribucin). Ahora slo queda atender a las otras dos tiendas: a la T2
se le enva su demanda: 10 miles de unidades desde el centro de distribucin 2, al
igual que a la tienda T3 ya que sus costes son ms econmicos.
Una vez determinados los valores de las variables de decisin es fcil obtener el coste,
slo hay que multiplicarlas por sus costes unitarios:
1 x 15 + 1 x 10 + 5 x 10 = 75 unidades monetarias.

1
Las variables de decisin sern siempre enteras ya que el problema de transporte siempre tendr como objetivo el
envo de cantidades de mercancas indivisibles y los coeficientes son unitarios.
5. 2. Formulacin.
El Modelo de Transporte se puede formular como un problema de programacin lineal:

= =
m
i
n
j
ij ij
x C
1 1
min
sujeta a:
0 x
n ,..., 2 , 1 j , d x
m ,..., 2 , 1 i , e x
ij
m
1 i
j ij
n
1 j
i ij

= =
= =

=
=

donde:
C
ij
: costes unitarios de transporte del centro de oferta i al centro de demanda j.
x
ij
: cantidades a transportar de cada centro de oferta i a cada centro de demanda j.
e
i
: cantidades del producto disponibles en cada origen.
d
j
: demanda en cada destino.
En la formulacin se ha supuesto que la cantidad total demandada es igual a la total
enviada (problema equilibrado), es decir, la oferta es igual a la demanda y son
positivas:

En el caso que no coincida la oferta con la demanda, problema no equilibrado (no
balanceado), se transformar en uno balanceado creando un origen ficticio o un
destino ficticio:
Si la demanda es mayor que la oferta, se crear un origen ficticio con:
produccin = demanda total oferta total.
Si la demanda es menor que la oferta, se crear un destino ficticio con :
demanda = oferta total demanda total.
En ambos caso, los costes de la funcin objetivo sern nulos, esto es, un coste de
transporte nulo.
Teorema
El conjunto de oportunidades X definido por las restricciones del problema anterior es
no vaco si e
i
y d
j
son finitos.
En forma matricial el problema anterior se puede expresar como sigue:
x C
t
min
sujeta a:
0
=
ij
x
b Ax

donde:
C: (c
11
, ..., c
1n
, c
21
, ..., c
2n
, ........, c
m1
, ..., c
mn
)
mxn

x: (x
11
, ..., x
1n
, x
21
, ..., x
2n
, ........, x
m1
, ..., x
mn
)
t

mxn

La matriz de restricciones (A) es de orden (m + n, m x n):
A=
|
|
|
|
|
|
|
|
|
|
|

\
|
1 ... 0 0 ... 1 ... 0 0 1 ... 0 0
... ... ... ... ... ... ... ... ... ... ... ... ...
0 ... 1 0 ... 0 ... 1 0 0 ... 1 0
0 ... 0 1 ... 0 ... 0 1 0 ... 0 1
1 ... 1 1 ... 0 ... 0 0 0 ... 0 0
... ... ... ... ... ... ... ... ... ... ... ... ...
0 ... 0 0 ... 1 ... 1 1 0 ... 0 0
0 ... 0 0 ... 0 ... 0 0 1 ... 1 1

Teorema
La matriz A es de rango m + n 1 y es unimodular, esto es, toda submatriz cuadrada
de A tiene como determinante -1, 0 1.
As, se desprende que una base para el problema de transporte consta de m + n 1
vectores y una solucin factible bsica no degenerada que consta de m + n 1
variables.
Propiedades del problema de transporte
Se llama solucin bsica factible de un problema de transporte a una solucin
entera que verifica todas las restricciones de oferta y demanda con a lo sumo
m + n 1 variables positivas distintas de cero (recordamos m ofertas y n
demandas). El problema de transporte tiene una solucin bsica factible.
El problema de transporte es acotado.
Como las sumas de fila y de columna (oferta y demanda) de un problema de
transporte son enteras, entonces las variables bsicas de cualquier solucin
bsica tambin son enteras.
5. 3. Mtodos de resolucin.
Tradicionalmente para la determinacin de su solucin factible bsica se han
desarrollado una serie de algoritmos, destacando, entre otros, los mtodos de la
Esquina Noroeste y Vogel. Hoy en da, con ayuda de diversos software, podemos
resolver estos modelos como un problema de programacin lineal directamente (tal y
como se ha expresado en la formulacin) o bien mediante funciones que hemos
desarrollado a tal efecto en el programa Mathematica.

Ejemplo.
La demanda diaria mnima de unos nuevos depsitos que se han construido
recientemente en Mlaga se estima en 200, 200, 300, 350, 400, 500, 200, 500, 300 y
500 metros cbicos, respectivamente. sta va a ser abastecida por tres embalses de la
provincia de Mlaga: Limonero, Guadalhorce y La Viuela, con una capacidad media de
6.000, 22.900 y 65.200 metros cbicos, respectivamente.
Los costes por mandar un metro cbico de agua de un embalse a un depsito depende
de la distancia que el agua tiene que recorrer (Tabla adjunta). Los directivos de la
empresa de aguas municipal desean conocer el programa de distribucin ptimo, esto
es, el coste mnimo para satisfacer la demanda de agua de cada depsito.
D E P S I T O S
1 2 3 4 5 6 7 8 9 10
Oferta
1 8 6 10 9 5 16 6 8 1 10 6.000
2 9 12 13 7 5 8 7 12 10 15 22.900
3 14 9 16 5 8 7 14 10 5 6 65.200
EMBALSES
Demanda 200 200 300 350 400 500 200 500 300 500

Solucin mediante Programacin Lineal:
La formulacin de este problema es la siguiente:
311 310 39 38 37 36 35 34 33 32 31
211 210 29 28 27 26 25 24 23 22 21
111 110 19 18 17 16 15 14 13 12 11
0 6 5 10 14 7 8 5 16 9 14
0 15 10 12 7 8 5 7 13 12 9
0 10 8 6 16 5 9 10 6 8 min
x x x x x x x x x x x
x x x x x x x x x x x
x x x x x x x x x x x
+ + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +

sujeta a:

0
90650
500
300
500
200
500
400
350
300
200
200
65200
22900
6000
311 211 111
310 210 110
39 29 19
38 28 18
37 27 17
36 26 16
35 25 15
34 24 14
33 23 13
32 22 12
31 21 11
311 310 39 38 37 36 35 34 33 32 31
211 210 29 28 27 26 25 24 23 22 21
111 110 19 18 17 16 15 14 13 12 11

= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + + + + + + + + + +
= + + + + + + + + + +
= + + + + + + + + + +
ij
x
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x
x x x x x x x x x x x
x x x x x x x x x x x
x x x x x x x x x x x
:

Nota: en este caso hay un exceso de oferta sobre la demanda. Por tanto, se ha
incorporado un centro de demanda artificial o ficticio, para equilibrar la oferta y la
demanda, con unos costes nulos.
Su solucin es x
11
=200, x
12
=200, x
13
=300, x
15
=400, x
17
=200, x
18
=500, x
19
=300, que
sern las cantidades a transportar de cada centro de oferta a cada centro de demanda
para minimizar el coste de transporte que resulta ser 21.550.
Por tanto, el Embalse de la Viuela abastecer a los depsitos nmeros 4, 6 y 10, y el
Embalse del Limonero a los restantes depsitos, es decir, 1, 2, 3, 5, 7, 8 y 9; siendo el
coste del transporte 21.550 u.m.

Otra forma de resolver el problema de transporte es utilizar funciones del programa
Mathematica.
5. 4. Caso particular: problema de transbordo.
Un problema de transbordo es un problema de transporte modificado donde algunos
nodos pueden ser a la vez lugares de demanda de mercanca y orgenes para otros
destinos, es decir, hay centros de oferta, centros de demanda y centros de transbordo.
stos son centros que ofertan mercanca o la demandan y pueden actuar como
intermediarios en el transporte de mercanca entre los centros de oferta y demanda.
El nmero de unidades para los que un centro de transbordo puede actuar como
intermediario esta limitado nicamente por el nmero de unidades que se ofertan y
demandan en el problema.
De nuevo, se supone que la oferta total de mercanca (correspondiente a los centros
de oferta y a los centros de transbordo) es igual a la demanda (de centros de
demanda y de centros de transbordo).
El transporte de unos centros a otros esta restringida en el sentido de que no es
posible transportar mercancas desde cualquier centro que oferta (ya sea centro de
oferta o de transbordo) a cualquiera que demande (ya sea centro de demanda o de
transbordo).
Al igual que en el problema de transporte, el coste de transportar una unidad de
mercanca depende del centro de oferta y del centro que la demanda. Se desea
conocer el nmero de unidades a transportar de unos centros a otros, de tal forma que
se minimice el coste total de transporte, satisfaciendo todas las demandas. Para ello,
se plantea el problema como uno de transporte en el que:
1. Los centros de transbordo se consideran a la vez centros de oferta y centros de
demanda.
2. Se asigna un coste de transporte infinito en los siguientes casos cuando no
exista ruta para transportar mercanca de un centro a otro y un coste nulo si el
centro de oferta y de demanda es el mismo.
Igual que en transporte, si la cantidad total de mercanca ofertada es mayor (menor)
que la demandada, se crean centros de demanda (oferta) ficticios.
Ejemplo.
Una empresa produce ordenadores en tres fbricas, que producen 2.000, 3.000 y
2.400 unidades (en miles), respectivamente. Estos productos deben pasar por uno de
los centros de control de calidad que posee la empresa. Los costes de transporte de las
fbricas a dichos centros son las siguientes (expresados en euros):
Centros Control de
Calidad
Fbricas CC1 CC2
F1 15 10
F2 10 9
F3 11 7
De estos dos centros de control de calidad son enviados a cuatro puntos de venta que
demandan 1.600, 2.500, 2.000 y 1.300 unidades (en miles), respectivamente y cuyos
costes de transporte son los siguientes:
Puntos de venta
Centros Control de Calidad PV1 PV2 PV3 PV4
CC1 5 6 4 7
CC2 7 8 5 6
Los directivos de la empresa desean saber el menor coste de transporte desde las
fbricas a los distintos puntos de venta.
Solucin mediante Programacin Lineal:
Para su resolucin nos puede ayudar trasladar todos los datos del problema a la
siguiente tabla donde hemos puesto un elevado coste (concretamente 10.000) en
aquellos casos donde no hay va de transporte entre dos centros y un coste nulo
cuando se trata de un envo entre un mismo centro.
CC1 CC2 PV1 PV2 PV3 PV4 OFERTA
F1 15 10 10.000 10.000 10.000 10.000 2.000
F2 10 9 10.000 10.000 10.000 10.000 3.000
F3 11 7 10.000 10.000 10.000 10.000 2.400
CC1 0 10.000 5 6 4 7 7.400
CC2 10.000 0 7 8 5 6 7.400
DEMANDA 7.400 7.400 1.600 2.500 2.000 1.300 22.200

La formulacin de este problema es la siguiente:
56 55 54 53 52 51
46 45 44 43 42 41
36 35 34 33 32 31
26 25 24 23 22 21
16 15 14 13 12 11
6 5 8 7 0 000 . 10
7 4 6 5 000 . 10 0
000 . 10 000 . 10 000 . 10 000 . 10 7 11
000 . 10 000 . 10 000 . 10 000 . 10 9 10
00 . 10 000 . 10 000 . 10 000 . 10 10 15 min
x x x x x x
x x x x x x
x x x x x x
x x x x x x
x x x x x x
+ + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +

sujeta a:

0
300 . 1
000 . 2
500 . 2
600 . 1
400 . 7
400 . 7
400 . 7
400 . 7
400 . 2
000 . 3
000 . 2
56 46 36 26 16
45 45 35 25 15
54 44 34 24 14
53 43 33 23 13
52 42 32 22 12
51 41 31 21 11
56 55 54 53 52 51
46 45 44 43 42 41
36 35 34 33 32 31
26 25 24 23 22 21
16 15 14 13 12 11

= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + +
= + + + + +
= + + + + +
= + + + + +
= + + + + +
= + + + + +
ij
x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x
x x x x x x
x x x x x x
x x x x x x
x x x x x x
x x x x x x
:

Su solucin es x
12
=2.000, x
21
=3.000, x
32
=2.400, x
41
=4.400, x
43
=1.600, x
44
=1.400,
x
52
=3.000, x
54
=1.100, x
55
=2.000 y x
56
=1.300 que sern las cantidades a transportar de
cada centro de oferta / transbordo a cada centro de transbordo / demanda para
minimizar el coste de transporte que resulta ser 109.800 u.m.
Otra forma de resolver el problema de transporte es utilizar funciones del programa
Mathematica






6. EL VIAJANTE DE COMERCIO
6. 1. Objetivo.
Los problemas de secuenciacin surgen cuando es necesario distribuir de forma ptima
una serie de actividades en un perodo de tiempo ms o menos largo. Son sencillos de
describir y aparentemente fciles de resolver, pero, en realidad, forman una de las
familias de problemas enteros ms complejos y difciles. A continuacin vamos a
estudiar el ejemplo ms clsico de problema de secuenciacin: el Travelling Salesman
Problem (TSP) o Problema del Viajante de Comercio. Este problema ha recibido una
gran atencin en la literatura debido a que forma parte de muchos problemas de
decisin reales.
Supongamos que un viajante malagueo debe visitar 4 ciudades andaluzas: Mlaga,
Granada, Crdoba y Huelva, empezando por su ciudad Mlaga, y terminando en ella.
La siguiente figura muestra en el mapa la disposicin de estas ciudades. Dichas visitas
deben realizarse, una detrs de otra, de forma que no se repita la visita a ninguna
ciudad y deben planificarse de tal manera que el nmero de kilmetros recorridos sea
el mnimo posible.

El nmero de kilmetros entra cada dos ciudades, son los siguientes:

M G C H
129 187 313 M
166 350 G
232 C
H

Una forma intuitiva y exhaustiva de resolverlo sera ver todas las posibles
combinaciones calculando los kilmetros recorridos en cada una de ellas, quedndonos
con aquella que presente un menor nmero de kilmetros. En nuestro caso el nmero
de combinaciones posibles es 3!= 6, puesto que contamos con 4 ciudades, pero una
de ellas, Mlaga, se encuentra fija al ser nuestro origen y nuestro final.
Ciudad
1
Ciudad
2
Ciudad
3
Ciudad
4
Ciudad 5 Kilmetros Recorridos
Mlaga Granada Crdoba Huelva Mlaga 129+166+232+313=840
Mlaga Granada Huelva Crdoba Mlaga 129+350+232+187=898
Mlaga Crdoba Huelva Granada Mlaga 187+232+350+129=898
Mlaga Crdoba Granada Huelva Mlaga 187+166+350+313=1016
Mlaga Huelva Granada Crdoba Mlaga 313+350+166+187=1016
Mlaga Huelva Crdoba Granada Mlaga 313+232+166+129=840

Luego, a la vista de los resultados tenemos dos posibles recorridos:
Mlaga Granada Crdoba Huelva Mlaga
Mlaga Huelva Crdoba Granada Mlaga
Es fcil intuir, a partir de este ejemplo, que en el caso que aumente el nmero de
ciudades que se deban visitar, la determinacin de todas las combinaciones puede
hacerse inviable. As, como hemos visto, el nmero de posibles recorridos (tours) entre
n ciudades que cumplen con las anteriores condiciones es (n-1)!. De hecho, cuando el
nmero de ciudades es superior a 20 (20!=2,43 x 10
18
), existen pocos ordenadores
capaces de explorar toda la combinatoria del problema en un tiempo razonable. Y
cuando este nmero de ciudades es superior a 50 (50!=3,04 x 10
64
), el problema es
prcticamente imposible de resolver utilizando mtodos combinatorios puros.
6. 2. Formulacin.
Con el fin de resolver el problema general de una manera ms cmoda necesitamos
enunciarlo para despus formularlo mediante un modelo de programacin matemtica.
Este problema responde a la siguiente situacin:
Tenemos un conjunto V= {1, 2, , n} de ciudades a visitar.
Una matriz D=(d
ij
) con las distancias entre ciudades.
Objetivo: encontrar el orden en que visitar las ciudades (una nica vez) para
minimizar las distancia recorrida.

Para este problema tenemos que definir las siguientes variables binarias:
x
ij
=1 Si el recorrido del viajante va directamente de i a j, con i distinto de j,
x
ij
=0 en otro caso
Por otra parte tenemos que tener en cuenta que cada ciudad debe ser origen de
un solo viaje por lo que tenemos:
j i n ... 1 i 1 x
n
1 j
ij
= =

=

Y por otra parte, cada ciudad debe ser destino de un solo viaje lo cual implica que:
j i n ... 1 j 1 x
n
1 i
ij
= =

=

Con lo que el problema resultante es:

=
= =
= =


=
=
= =
j a i de te directamen va no viajante del recorrido el Si 0
j a i de te directamen va viajante del recorrido el Si 1
x
j i n , , 1 i 1 x
j i n , , 1 j 1 x : a sujeto
j i x d Min
ij
n
1 j
ij
n
1 i
ij
n
1 i
n
1 j
ij ij
K
K

Por consiguiente, si d
ij
es la distancia (o coste del recorrido) entre i y j, la funcin
objetivo de nuestro problema representa la minimizacin de la distancia recorrida (o
del coste en que se incurre por recorrer la ruta). El objetivo es encontrar el orden en
que visitar las ciudades (una nica vez) para minimizar la distancia recorrida.
As en nuestro problema del viajante malagueo la formulacin sera la siguiente,
donde para mejor comprensin de las variables hemos colocado como subndice de las
mismas las iniciales de las ciudades. As el primer subndice corresponde a la ciudad de
partida y el segundo a la de llegada:


HC CH HG GH CG GC
HM MH CM MC GM MG
x 232 x 232 x 350 x 350 x 166 x 166
x 313 x 313 x 187 x 187 x 129 x 129 Min
+ + + + + +
+ + + + + +

s.a.
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
CH GH MH
HC GC MC
HG CG MG
HM CM GM
HC HG HM
CH CG CM
GH GC GM
MH MC MG
= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + +

{ } 1 , 0 x , x , x , x , x , x
x x , x , x , x , x
HC CH HG GH CG GC
, HM , MH CM MC GM MG


Como dijimos, las cuatro primeras restricciones aseguran que cada ciudad es origen de
un nico viaje, y las cuatro siguientes que cada ciudad es destino de un nico viaje.
Otra posible formulacin surge cuando permitimos que i sea igual a j con lo cual
tendramos en nuestra formulacin variables que recogen la salida y llegada a la misma
ciudad. Como estos recorridos no tendran sentido, para evitar que salgan en la
solucin, la distancia que se coloca en la funcin objetivo para los mismos es muy
grande con lo cual al buscar la distancia mnima no seran elegidos.
En principio, el problema del viajante de comercio puede ser utilizado para resolver
problemas donde el conjunto a visitar puede venir dado por ciertas ubicaciones fsicas
(ciudades, almacenes, tiendas,...), pero tambin existen otros tipos de problemas de
decisin que pueden formularse como un problema de este tipo en los que los no se
recoge la visita a ciertas ubicaciones fsicas, sino otros aspectos. Ejemplo: una empresa
de pintura produce cinco colores de pintura cada mes. Al cambiar de uno a otro color,
la mquina mezcladora debe limpiarse y prepararse para el siguiente color; este tiempo
de disposicin depende del color que acaba de producirse y del color que se producir
a continuacin. Los tiempos de cambio entre un color y otro aparecen en la siguiente
tabla:



Minutos de limpieza si la siguiente pintura es
Pintura actual Blanca Amarilla Negra Roja
Blanca 10 17 15
Amarilla 20 19 18
Negra 50 44 25
Roja 45 40 20

El objetivo que quiere resolver el departamento de produccin de esta empresa es
determinar la secuencia en la cual producir los cinco colores con el fin de minimizar el
tiempo de disposicin total.
Se puede concebir que cada pintura es una ciudad y que las distancias vienen
dadas por el tiempo de limpieza necesario para cambiar de un lote de pintura al
siguiente.
As la formulacin del problema sera:
RN RA RB NR NA NB
AR AN AB BR BN BA
x 20 x 40 x 45 x 25 x 44 x 50
x 18 x 19 x 20 x 15 x 17 x 10 Min
+ + + + + +
+ + + + +

s.a.

1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
1 x x x
NR AR BR
RN AN BN
RA NA BA
RB NB AB
RN RA RB
NR NA NB
AR AN AB
BR BN BA
= + +
= + +
= + +
= + +
= + +
= + +
= + +
= + +

{ } 1 , 0 x , x , x , x , x , x
, x , x , x , x , x , x
RN RA RB NR NA NB
AR AN AB BR BN BA



6. 3. Mtodos de resolucin.
El problema se resuelve utilizando Programacin Lineal Entera aunque para problemas
mnimamente grandes suelen utilizarse mtodos heursticos que, en tiempos cortos de
computacin, proporcionan soluciones razonables.
Si resolvemos el problema del viajante malagueo mediante Lindo tenemos como
solucin:
x
MG
=1, x
GM
=1, x
CH
=1, x
HC
=1
lo cual implica que debemos viajar Mlaga a Granada y volver y viajar de Crdoba a
Huelva y volver, es decir:
Mlaga Granada Crdoba Huelva
Esta posibilidad no viola ninguna de las restricciones, de hecho ha surgido de resolver
el problema con todas sus restricciones y, sin embargo, no es una solucin admisible,
puesto que no todas las ciudades estn conectadas.
Esta es una de las complicaciones que puede plantear la resolucin de un problema de
este tipo: si no se consideran ms restricciones, pueden obtenerse recorridos parciales,
que suelen llamarse subtours o subciclos; los cuales vienen generados por soluciones
que cumplen todas las restricciones y, sin embargo, no son aceptables, ya que no
todas las ciudades estn conectadas.
Resolver el problema de los subtours resulta complicado y puede hacerse de varias
formas:
a) Una primera posibilidad consistira en definir unas nuevas variables, u
i
, cuyo
resultado final nos va a dar el orden en el que se visita la ciudad i-sima. Estas
variables se utilizan para aadir al problema las restricciones:
{ } j i , n , , 2 j , i 1 n nx u u
ij j i
+ K
Volviendo a nuestro ejemplo de las ciudades andaluzas, la introduccin de estas
restricciones supone la incorporacin de 3 nuevas variables u
G
, u
C
y u
H
cuyo resultado
nos dir en qu posicin se visitar Granada, Crdoba y Huelva respectivamente. No
existe u
M
porque se sabe que Mlaga debe visitarse en primer lugar. Se deben
incorporar 6 restricciones puesto que debemos combinar las tres ciudades anteriores.
As, para eliminar los subtours debemos incorporar a la formulacin original las
siguientes restricciones:
3 x 4 u u
3 x 4 u u
3 x 4 u u
3 x 4 u u
3 x 4 u u
3 x 4 u u
HC C H
CH H C
HG G H
GH H G
CG G C
GC C G







Al incorporarlas obtenemos como solucin:
x
MH
=1, x
HC
=1, x
CG
=1, x
GM
=1
lo cual implica que ya no tenemos subtours ya que el recorrido que debemos realizar
es:
Mlaga Huelva Crdoba Granada Mlaga.
Sin embargo, aadir todas las variables y restricciones necesarias para garantizar la
ausencia de rutas parciales puede aumentar extraordinariamente la dimensin del
problema. Por ello, veamos otra posibilidad de eliminar esta problemtica en el
siguiente apartado.
b) Existen otro tipo de restricciones que pueden emplearse para la eliminacin de
subtours sin que sea necesario aadir nuevas variables:
{ } j i , n , , 2 , 1 j , i 1 x x
ji ij
+ K
De esta forma se garantiza que no se producirn subtours entre pares de ciudades, ya
que, si se va desde i a j (x
ij
=1), resultar infactible volver desde j hasta i.
Para eliminar los subtours entre tres ciudades sera necesario aadir las restricciones:
{ } k j , j i , n , , 2 , 1 k , j , i 2 x x x
ki jk ij
+ + K
Por tanto, para que en ningn caso pudiera producirse una ruta parcial empleando
esta formulacin, habra que aadir al problema las restricciones que eliminan los
subtours de 2, 3, 4, ..., n/2 ciudades, si el nmero de ciudades es par; si es impar,
habr que eliminar los subtours de 2, 3, 4, ..., (n-1)/2 ciudades
En la prctica, las restricciones para eliminar subtours slo se aaden al problema
cuando se observa algn subtour en la solucin. An entonces, slo se aaden las
restricciones necesarias para eliminar los subtours que, efectivamente, han aparecido.
As en nuestro caso, al surgir dos subtours: el que une Mlaga con Granada, y el que
une Crdoba con Huelva, para evitar que surjan debemos incorporar a la formulacin
original, las siguientes restricciones:
1 x x
1 x x
HC CH
GM MG
+
+

Con las cuales la resolucin mediante Lindo sera:
x
MH
=1, x
HC
=1, x
CG
=1, x
GM
=1
lo cual implica que el recorrido que debemos realizar es:
Mlaga Huelva Crdoba Granada Mlaga.
Para finalizar vamos a resolver mediante Lindo el problema que planteamos de la
empresa de pintura, a ver si tambin presenta problemas de subciclos. La solucin que
obtenemos es
x
BA
=1, x
AB
=1, x
NR
=1, x
RN
=1
lo cual significa que debemos pasar del color blanco al amarillo y de este al blanco (un
subciclo) y del negro al rojo y viceversa (otro subciclo). Para evitar esta solucin
debemos incorporar a la formulacin de este problema las restricciones:
1 x x
1 x x
RN NR
AB BA
+
+

siendo ahora la solucin por Lindo:
x
BA
=1, x
AR
=1, x
RN
=1, x
NB
=1
lo cual implica que la secuencia en la cual se deben producir los cinco colores es:
Blanco Amarillo Rojo Negro Blanco.







7. CAMINO MNIMO
7. 1. Objetivo.
El modelo de la ruta ms corta o camino mnimo se refiere a una red en la cual cada
arco (i, j) tiene asociado un nmero d
ij
, el cual se interpreta como la distancia (o tal
vez el costo o el tiempo) desde el nodo i hasta el nodo j. Su objeto consiste en
encontrar las rutas ms cortas (o de menor coste o ms rpidas) desde un nodo
especfico i hasta otro nodo especfico j.
Este modelo tiene interesantes y variadas aplicaciones, como son la determinacin de
rutas, problemas de localizacin, sustitucin de equipos, etc.. Como ya hemos
sealado, su resolucin se puede llevar a cabo mediante algoritmos, funciones propias
del programa Mathematica o bien resolviendo un problema de programacin lineal.
Para una mejor comprensin del problema que se intenta analizar presentamos la
siguiente situacin: un estudiante se desplaza a diario desde su casa (nodo 1) a la
facultad (nodo 4). Desea saber cual es el trayecto ms corto para llegar. En el
siguiente grafo se representa las calles y sus distancias (expresadas en kilmetros):
1
2
3
4
6
4
9
10
5
3

La cuestin a resolver ser: qu trayecto o camino deber seguir para que sea
mnimo? Contestar a esta cuestin, en este caso, es muy fcil: existen slo cuatro
trayectos o cominos posibles que nos llevan desde su casa (nodo 1) hasta la facultad
(nodo 4):
1 Opcin: 1 2 4. En total 11 kilmetros.
2 Opcin: 1 2 3 4. En total 19 kilmetros.
3 Opcin: 1 4. En total 9 kilmetros.
4 Opcin: 1 3 4. En total 7 kilmetros.
Como se observa lo que se pretende es escoger aquel camino que sea mnimo para el
estudiante saliendo desde su casa hasta la facultad (camino dirigido), esta claro que se
elegira la 4 opcin, donde recorrer un total de 7 kilmetros.
Si el problema anterior lo queremos modelizar resultara como sigue. Inicialmente se
determinan las variables de decisin, es decir, x
ij
: hacer el trayecto o camino desde un
nodo especfico i a otro j, donde (0 indica que no hay desplazamiento y 1 que s hay
desplazamiento) Concretamente:
x
12
: trayecto desde su casa (nodo 1) para llegar al nodo 2.
x
13
: trayecto desde su casa (nodo 1) para llegar al nodo 3.
x
14
: trayecto desde su casa (nodo 1) para llegar a la facultad (nodo 4).
x
23
: trayecto desde el nodo 2 para llegar al nodo 3.
x
24
: trayecto desde del nodo 2 para llegar al nodo 4 (facultad).
x
34
: trayecto desde del nodo 3 para llegar al nodo 4 (facultad).
A continuacin, se determinan el conjunto de restricciones:
Nodo 1: x
12
+ x
13
+ x
14
= 1, es decir, al salir de casa tendr que ir bien al nodo
2 o al 3 o 4.
Nodo 2: x
12
= x
23
+ x
24
, esto es, estando en el nodo 2, tendr que ir bien al
nodo 3 o bien al 4 (facultad).
Nodo 3: x
13
= x
34
, o sea, estando en el nodo 3, para llegar a su destino slo le
queda lo opcin de ir al nodo 4 (facultad).
Nodo 4: x
14
+ x
24
+ x
34
= 1, es decir, a su destino (facultad) llegar bien
directamente por el 1, o por el nodo 2 o por el 3.
Adems, las variables son slo pueden tomar valores enteros 0 no se toma el
camino o 1 se toma, y por lo tanto, no pueden ser negativas.
Finalmente, la funcin objetivo viene expresada por:
Minimizar 6x
12
+ 4x
13
+ 9x
14
+ 10x
23
+ 5x
24
+ 3x
34

7. 2. Formulacin.
El Modelo de Ruta Mnima puede formularse como un problema de programacin
lineal. As, el problema consiste en determinar el camino de longitud mnima entre los
vrtices inicial (1) y final (n).

sujeto a:

con

Hay que hacer constar que la primera restriccin implica tomar un solo arco con
extremo inicial en el primer vrtice, la segunda un solo arco con extremo final en el
ltimo vrtice, y finalmente, el conjunto restante de n-2 restricciones impone que el
nmero de arcos que lleguen a un vrtice intermedio sea igual al nmero de los que
parten de l. Dado que las variables nicamente toman los valores 0 1, tenemos un
problema de programacin entera 0-1.
Una extensin lgica de la ruta mnima es el modelo del camino de longitud mxima,
que consiste en determinar la ruta mxima entre un vrtice origen y un vrtice destino.
Para determinar su resolucin, mediante Programacin Lineal, se formula el mismo
problema del camino mnimo, salvo que en este caso el objetivo toma la forma de
maximizacin.
Teorema.
Cualquier solucin factible bsica del problema de camino mnimo tiene todas las
variables x
ij
igual a cero o a uno.
7. 3. Mtodos de resolucin.
Tradicionalmente para la determinacin de su solucin se han desarrollado una serie
de algoritmos, destacando, el algoritmo de Riguet, el de etiquetacin de Dantzing y el
conocido algoritmo de Dijkstra.
No obstante, se puede resolver este tipo de problemas como un problema de
programacin lineal, tal y como se ha comentado anteriormente o bien se puede
resolver dentro de la teora de redes empleando funciones propias que tiene el
programa Mathematica (que se basan en alguno de los algoritmos indicados ms
arriba).
Ejemplo.
Los directivos de la empresa de aguas desean conocer la ruta ms corto para llegar a
la acometida del Parque Tecnolgico de Andaluca (PTA) dado que el coste por metro
cbico suministrado es proporcional a la distancia del recorrido.
La figura siguiente muestra el mapa de distribucin de agua potable desde la
depuradora (N 1) hasta llegar a la acometida del PTA (N 10) y el cuadro proporciona
las distancias entre ellos, medida en kilmetros.


Solucin mediante Programacin Lineal:
La formulacin de este problema es la siguiente:



0
1
1
:
8 8 5 8 4
8 8 15 4 9 2 7
6 6 6 2 12 10 8
910 89 79 69
810 89 68 58
79 76 47
69 68 76 56 46 36
58 56 35 25
47 46 34 14
36 35 34 13
25 23 12
910 810
14 13 12
910 810 89 79 76
69 68 58 56 47 46 36
35 34 25 23 14 13 12

= + +
+ = +
+ =
+ = + + +
+ = +
+ = +
+ + =
+ =
= +
= + +
+ + + + +
+ + + + + + + + +
+ + + + + + +
ij
x
x x x x
x x x x
x x x
x x x x x x
x x x x
x x x x
x x x x
x x x
x x
x x x
a sujeta
x x x x x
x x x x x x x
x x x x x x x Min


cuya solucin es x
14
=x
46
=x
68
=x
810
=1, y las restantes cero
2
.
En consecuencia, el camino ms corto entre la depuradora y la acometida del PTA es
de 30 Km.

Al igual que en se ha realizado en otros modelos de este captulo, el problema de
camino mnimo tambin se puede resolver mediante funciones que tiene el programa
Mathematica.









2
Tal y como se ha indicado anteriormente, dado que las variables nicamente toman los valores 0 1, tenemos un
siempre problema de programacin entera 0-1, no haciendo falta adems indicar que xij 1.
8. FLUJO MXIMO
8. 1. Objetivo.
Su meta consiste en encontrar la mxima cantidad de flujo total (agua, trfico de
vehculos, mensajes de Internet, etc.) que puede circular a travs de la red desde el
nodo fuente (vrtice inicial) hasta el nodo sumidero (vrtice final) en una unidad de
tiempo.
La cantidad de flujo por unidad de tiempo en cada arco est limitada por restricciones
de capacidad. Por ejemplo, los dimetros de las tuberas limitan el flujo de agua en el
sistema de distribucin.
Para una mejor comprensin del problema que se intenta analizar presentamos la
siguiente situacin: en la ciudad de Mlaga debido a las obras del metro, las distintas
Administraciones han acordado cerrar una avenida que recorre de oeste a este la
ciudad que posee una capacidad de 15.000 vehculos/hora en el horario punta. Los
tcnicos van a desviar dicha circulacin por distintas calles de acuerdo al siguiente
grafo donde se incluyen el nmero de vehculos (en miles) que pueden circular por
ellas.
1
2
3
4
7
4
5
10
6
9

Los responsables pblicos, por tanto, querran saber de los tcnicos:
Si la red viaria alternativa propuesta podr dar cabida al flujo de 15 vehculos
(en miles)/hora que actualmente se da en la ciudad de oeste a este.
Cul es el flujo mximo de vehculos que permite cada calle (red) cada hora.
Finalmente, qu flujo se debe canalizar sobre cada calle.

Una de las soluciones posibles es la siguiente:
1
2
3
4
7
4
5
1
6
5

Otra posible la podemos obtener en entorno Mathematica.
8. 2. Formulacin.
El modelo de programacin lineal, supuesto que la red tenga n vrtices y m arcos, es
el siguiente:
Maximizar F
sujeto a:


donde:
F: flujo mximo desde el nodo fuente hasta el sumidero.
x
ij
: cantidad de unidades que se envan del vrtice i al j.
k
ij
: capacidad mxima del arco (i, j).
Las dos primeras restricciones aseguran que el flujo que se enva desde el nodo fuente
sea igual al flujo que se recibe en el nodo sumidero y ambos iguales al flujo mximo,
F. La tercera restriccin, que representa un conjunto de n-2 restricciones, se refiere a
la conservacin del flujo en los vrtices de transbordo, esto es, el flujo total que entre
en el nodo debe ser igual al flujo total que sale del nodo, y finalmente, las restantes m
restricciones corresponden a la no negatividad de las variables y los lmites superiores
de capacidad.
No obstante, nosotros slo vamos a analizar un caso particular del modelo anterior:
flujos dirigidos, esto es, que siempre irn de un nodo fuente a otro sumidero sin
posibilidad de retorno (grficamente de izquierda a derecha). De este modo, el modelo
resultara como sigue:
Maximizar F
sujeto a:

( )
0
0
1
1 1
1
1
1


=
=
=

= =
=
=
F
j i, k x
n , i , x x
F x
F x
ij ij
m
j
ij
m
j
ji
m
j
jn
m
j
j

Todo exactamente igual salvo las dos primeras restricciones.
Finalmente, podemos destacar una extensin al Modelo de Flujo Mximo, el
denominado modelo de flujo mximo con coste mnimo. A veces, ocurre que al
haber pocos arcos saturados, es decir, el flujo enviado es menor que su capacidad, hay
soluciones alternativas para el problema de flujo mximo. Ahora bien, si los arcos
tienen asociados unos costes, podemos preguntarnos cul es la solucin para ese
flujo mximo con un coste mnimo?
Este nuevo modelo determina los flujos en los diferentes arcos que minimizan el coste
total para el flujo mximo obtenido, F, donde c
ij
es el coste por unidad de flujo del arco
(i, j).

sujeto a:

8. 3. Mtodos de resolucin.
Este modelo se puede resolver por el algoritmo de flujo mximo, que se basa en el
Teorema de Ford-Fulkerson.
De nuevo, esta problemtica se puede resolver mediante programacin lineal y
mediante funciones del programa Mathematica.
Ejemplo.
Los directivos de la empresa de aguas desean conocer tambin el volumen mximo de
metros cbicos que pueden suministrar al citado Parque Empresarial (vase el ejemplo
del problema camino mnimo), suponiendo que los datos de la tabla indican la
capacidad mxima de metros cbicos de agua por segundo que soportan las tuberas.
CAPACIDAD MXIMA (m
3
/ seg).
1 2 3 4 5 6 7 8 9 10
1 8 10 12
2 2 6
3 6 6 7
4 2 9
5 4 15
6 8 8
7 4 8
8 5 8
9 8
10

Solucin entorno Mathematica:
La formulacin de este problema es la siguiente:
Maximizar F
sujeta a:

Resolviendo el problema tenemos: F=16, x
12
=3, x
13
=8, x
14
=5, x
25
=3, x
34
=6, x
35
=6,
x
36
=4, x
46
=2, x
47
=9, x
56
=4, x
58
=5, x
68
=8, x
69
=5, x
76
=1, x
79
=8, x
89
=5, x
810
=8, x
910
=8.

Mediante las funciones de Mathematica tambin se puede llegar a la solucin del
problema.

Вам также может понравиться