Vous êtes sur la page 1sur 103

“APLICACIÓN DE LA

PROGRAMACIÓN LINEAL EN LA
INGENIERÍA CIVIL”
INTRODUCCION

2
JUSTIFICACIÓN DEL TEMA DE TESIS

El motivo principal que tengo para desarrollar este tema de tesis, es que su
contenido es de suma importancia para la formación de ingenieros con un enfoque
más práctico y fundamentado a la hora de tomar decisiones al desempeñar un
trabajo que tenga que ver con cualquier proceso constructivo.
No se trata solo de recopilar información acerca de este tema, mas bien lo que
pretendo es aplicar los procedimientos que ya existen de programación lineal a la
problemática que nos enfrentamos como ingenieros civiles.
Es muy importante que seamos parte del desarrollo de nuevos temas de
investigación que puedan ayudar a nuestra facultad para estar siempre a la
vanguardia y pueda crear en sus alumnos el deseo de la innovación y así cumplir
con la tarea que demanda la carrera de ingeniería.

3
INDICE

CAPITULO I BREVE HISTORIA DE LA PROGRAMACION LINEAL


1.1 ANTECEDENTES
1.2 EL PUENTE AÉREO DE BELÍN

CAPITULO II METODOLOGIA PREVIA


2.1OPTIMIZACIÓN DE PROYECTOS
2.2 SIMPLIFICACIÓN DEL MODELO MATEMÁTICO

CAPITULO III MODELIZACION


3.1 MODELO DE TRANSPORTE
3.2 MODELO DE ASIGNACION
3.3 FORD - FULKERSON
3.4 CAMINOS HAMILTONIANOS DE COSTO MINIMO
3.5 KRUSKAL
3.6 PERT – CPM

CAPITULO IV METODOS PARA LA RESOLUCION DE PROBLEMAS


EN PROGRAMACION LINEAL
4.1 METODO DE LA REPRESENTACION GRAFICA
4.2 METODO SIMPLEX
4.3 METODO DE LAS DOS FASES
4.4 CAMBIOS DE VARIABLE

CAPITULO V ANALISIS DE SENSIBILIDAD


5.1 COSTOS RELATIVOS O SOMBRA
5.2 LAS VARIABLES DE HOLGURA
5.3 INCLUSION DE VARIABLES
5.4 MODIFICACION DE COEFICIENTES DE VARIABLE NO BASICA EN
RESTRICCIONES
5.5 AÑADIR NUEVAS RESTRICCIONES

CAPITULO VI DUALIDAD
6.1 TEOREMA DEL METODO DUAL

CAPITULO VII ALGORITMO SIMPLEX DUAL

4
7.1 ANALISIS DE SENSIBILIDAD

CAPITULO VIII PROBLEMAS APLICADOS A LA INGENIERIA CIVIL


8.1 PRODUCCION DIARIA, CATORCENAL O MENSUAL PARA ALCANZAR
VOLUMENES ESTIMADOS EN OBRA.
8.2 REDUCCION DE COSTOS DE PRODUCCION DE CONCRETO,
CUMPLIENDO CON LAS NORMAS ESTABLECIDAS
8.3 ANALISIS DE FACTIBILIDAD DE OBRA
8.4 OPTIMIZACION DE FACTOR HORA – MAQUINA
8.5 RUTA CRÍTICA DE OBRA
8.6 ARRENDAMIENTO DE MAQUINARIA
8.7 DISMINUCION DE COSTOS POR FLETE
8.8 MANTENIMIENTO DE CARRETERAS

CONCLUSIONES

BIBLIOGRAFIA

ANEXO I PROBLEMAS RESUELTOS

ANEXO II METODOS DE SOLUCION POR COMPUTADORA

5
CAPITULO I
BREVE HISTORIA DE LA
PROGRAMACION LINEAL

6
1.1 ANTECEDENTES

Muchos problemas de la vida cotidiana comprenden maximizar o minimizar una


función sujeta a ciertas restricciones; tal vez se quiera maximizar las ganancias en
cierta empresa pero nos topamos con limitaciones que condicionan dicha acción,
para dar una solución matemática a estas situaciones surgió la programación
lineal.

En los siglos XVII y XVIII, grandes matemáticos como Newton, Leibnitz, Bernouilli
y, sobre todo, Lagrange, que tanto habían contribuido al desarrollo del cálculo
infinitesimal, se ocuparon de obtener máximos y mínimos condicionados de
determinadas funciones.

Posteriormente el matemático francés Jean Baptiste-Joseph Fourier (1768-1830)


fue el primero en intuir, aunque de forma imprecisa, los métodos de lo que
actualmente llamamos programación lineal y la potencialidad que de ellos se
deriva.

Si exceptuamos al matemático Gaspar Monge (1746-1818), quien en 1776 se


interesó por problemas de este género, debemos remontarnos al año 1939 para
encontrar nuevos estudios relacionados con los métodos de la actual
programación lineal. En este año, el matemático ruso Leonodas Vitalyevich
Kantarovitch publica una extensa monografía titulada Métodos matemáticos de
organización y planificación de la producción en la que por primera vez se hace
corresponder a una extensa gama de problemas una teoría matemática precisa y
bien definida llamada, hoy en día, programación lineal .

En 1941-1942 se formula por primera vez el problema de transporte, estudiado


independientemente por Koopmans y Kantarovitch, razón por la cual se suele
conocer con el nombre de problema de Koopmans-Kantarovitch.

7
Tres años más tarde, G. Stigler plantea otro problema particular conocido con el
nombre de régimen alimenticio optimal.

En estos años posteriores a la Segunda Guerra Mundial, en Estados Unidos se


asumió que la eficaz coordinación de todas las energías y recursos de la nación
era un problema de tal complejidad, que su resolución y simplificación pasaba
necesariamente por los modelos de optimización que resuelve la programación
lineal.

Paralelamente a los hechos descritos se desarrollan las técnicas de computación y


los ordenadores, instrumentos que harían posible la resolución y simplificación de
los problemas que se estaban gestando.

El problema de la resolución de un sistema lineal de inecuaciones se remonta, al


menos, a Fourier, después de quien nace el método de eliminación de Fourier-
Motzkin. La programación lineal se plantea como un modelo matemático
desarrollado durante la Segunda Guerra Mundial para planificar los gastos y los
retornos, a fin de reducir los costos al ejército y aumentar las pérdidas del
enemigo. Se mantuvo en secreto hasta 1947. En la posguerra, muchas industrias
lo usaron en su planificación diaria.

Los fundadores de la técnica son George Dantzig, quien publicó el algoritmo


símplex, en 1947, John Von Neumann, que desarrolló la teoría de la dualidad en el
mismo año, y Leonid Kantoróvich, un matemático ruso, que utiliza técnicas
similares en la economía antes de Dantzig y ganó el premio Nobel en economía
en 1975. En 1979, otro matemático ruso, Leonid Khachiyan, demostró que el
problema de la programación lineal era resoluble en tiempo polinomial. Más tarde,
en 1984, Narendra Karmarkar introduce un nuevo método del punto interior para
resolver problemas de programación lineal, lo que constituiría un enorme avance
en los principios teóricos y prácticos en el área.

El ejemplo original de Dantzig de la búsqueda de la mejor asignación de 70


personas a 70 puestos de trabajo es un ejemplo de la utilidad de la programación

8
lineal. La potencia de computación necesaria para examinar todas las
permutaciones a fin de seleccionar la mejor asignación es inmensa; el número de
posibles configuraciones excede al número de partículas en el universo.

Sin embargo, toma sólo un momento encontrar la solución óptima mediante el


planteamiento del problema como una programación lineal y la aplicación del
algoritmo símplex. La teoría de la programación lineal reduce drásticamente el
número de posibles soluciones óptimas que deberán ser revisadas.

En 1947, G.B. Dantzig formula, en términos matemáticos muy precisos, el


enunciado estándar al que cabe reducir todo problema de programación lineal.
Dantzig, junto con una serie de investigadores del United States Departament of
Air Force, formarían el grupo que dio en denominarse SCOOP (Scientific
Computation of Optimum Programs).

Una de las primeras aplicaciones de los estudios del grupo SCOOP fue el puente
aéreo de Berlín. Se continuó con infinidad de aplicaciones de tipo preferentemente
militar.

Hacia 1950 se constituyen, fundamentalmente en Estados Unidos, distintos grupos


de estudio para ir desarrollando las diferentes ramificaciones de la programación
lineal. Cabe citar, entre otros, Rand Corporation, con Dantzig, Orchard-Hays, Ford,
Fulkerson y Gale, el departamento de Matemáticas de la Universidad de
Princenton, con Tucker y Kuhn, así como la Escuela Graduada de Administración
Industrial, dependiente del Carnegie Institute of Technology, con Charnes y
Cooper.

Los fundamentos matemáticos de la programación lineal se deben al matemático


norteamericano de origen húngaro Janos Von Neuman (1903-1957), quien en
1928 publicó su famoso trabajo Teoría de Juegos. En 1947 conjetura la
equivalencia de los problemas de programación lineal y la teoría de matrices
desarrollada en sus trabajos. La influencia de este respetado matemático,
discípulo de David Hilbert en Gotinga y, desde 1930, catedrático de la Universidad

9
de Princenton de Estados Unidos, hace que otros investigadores se interesaran
paulatinamente por el desarrollo riguroso de esta disciplina.

En 1858 se aplicaron los métodos de la programación lineal a un problema


concreto: el cálculo del plan óptimo de transporte de arena de construcción a las
obras de edificación de la ciudad de Moscú. En este problema había 10 puntos de
partida y 230 de llegada. El plan óptimo de transporte, calculado con el ordenador
Strena en 10 días del mes de junio, rebajó un 11% los gastos respecto a los
costes previstos.

Se ha estimado, de una manera general, que si un país subdesarrollado utilizase


los métodos de la programación lineal, su producto interior bruto (PIB) aumentaría
entre un 10 y un 15% en tan sólo un año.

Respecto al método del símplex, su estudio comenzó en el año 1951 y fue


desarrollado por Dantzig en el United States Bureau of Standards SEAC
COMPUTER, ayudándose de varios modelos de ordenador de la firma IBM.

10
1.2 EL PUENTE AEREO DE BERLIN

En 1946 comienza el largo período de la guerra fría entre la antigua Unión


Soviética (URSS) y las potencias aliadas (principalmente, Inglaterra y Estados
Unidos). Uno de los episodios más llamativos de esa guerra fría se produjo a
mediados de 1948, cuando la URSS bloqueó las comunicaciones terrestres desde
las zonas alemanas en poder de los aliados con la ciudad de Berlín, iniciando el
bloqueo de Berlín. A los aliados se les plantearon dos posibilidades: o romper el
bloqueo terrestre por la fuerza, o llegar a Berlín por el aire. Se adoptó la decisión
de programar una demostración técnica del poder aéreo norteamericano; a tal
efecto, se organizó un gigantesco puente aéreo para abastecer la ciudad: en
diciembre de 1948 se estaban transportando 4500 toneladas diarias; en marzo de
1949, se llegó a las 8000 toneladas, tanto como se transportaba por carretera y
ferrocarril antes del corte de las comunicaciones. En la planificación de los
suministros se utilizó la programación lineal. (El 12 de mayo de 1949, los
soviéticos levantaron el bloqueo).

Los aliados se decidieron por una atrevida aventura, sin precedentes en toda la
historia de la humanidad. Había sólo una vía de salvación: la provisión desde
arriba. Los americanos junto con los ingleses consiguieron con una logística
magistral que aterrizase cada tres minutos un avión en uno de los tres aeropuertos
de Berlín. En los 322 días del bloqueo y gracias a un plan operativo sofisticado, los
aliados lograron aumentar su capacidad de transporte de 4.500 a 11.200
toneladas diarias. Trajeron aviones de todo el mundo; en los días cúspide había
un total de 400 aviones en uso constante. Enormes petroleros atravesaban el
Atlántico cargados de gasolina y queroseno. Según un acuerdo con los soviéticos
sólo se podían emplear tres corredores o caminos aéreos. Cinco diferentes alturas
de vuelo aprovechaban los corredores al máximo. Por medio de este truco
lograron poner la distancia de seguridad entre los aviones que volaban a la misma

11
altura, en 15 minutos, a pesar de que cada 3 minutos podía aterrizar un avión en
el aeropuerto de Tempelhof.
Los esfuerzos para mantener el puente aéreo fueron inmensos. En una red
logística mundial había 150.000 personas trabajando. Unas tres cuartas partes de
los materiales los volaron los americanos, y una cuarta parte los ingleses. En los
casi 280.000 vuelos transportaron 2,3 millones de toneladas de mercancías a
Berlín. El récord de un día fue el 16 de abril con 12.940 toneladas, que son 22
trenes de mercancía con 50 vagones cada uno. Si sumamos las horas de vuelo,
serían 35 años de tiempo de vuelo. La distancia total recorrida de todos los vuelos
del puente aéreo asciende a 175 millones de kilómetros, esto es 456 veces la
distancia de la tierra a la luna, o 1,17 veces la distancia de la tierra al sol. Durante
el puente aéreo murieron 76 personas. La operación "puente aéreo de Berlín"
costó 200 millones de dólares. Y hay que tener en cuenta que en aquel entonces
el dólar tenía un valor de 10 Euros.

12
CAPITULO II
METODOLOGIA PREVIA

13
2.1 OPTMIZACION DE PROYECTOS

Es el conjunto de acciones que nos permiten plantear de forma abstracta los


problemas mediante una modelización matemática que nos permitirá resolverlos
de manera numérica.
Se trata de optimizar sistemas partiendo de premisas, en todo sistema existirá un
conjunto de variables y las relaciones entre dichas variables. Por ejemplo:
Si estamos en obra construyendo un camino tendremos una variable X que será el
número de metros cúbicos de concreto asfáltico que queremos aplicar durante el
día y una variable Y que será la lluvia.
Los valores de la variable X los podemos controlar, pero no los de la variable Y,
luego la variable X será una variable interna de nuestro problema, y la variable Y
será una variable externa.
El conjunto de todas las variables internas X nos define el conjunto o dominio
donde estará nuestra solución óptima, este dominio estará definido por el conjunto
de premisas de nuestro problema.
Una vez conocido el dominio de nuestro problema definiremos la función objetivo,
que es aquello que queremos optimizar, para nuestro ejemplo seria maximizar la
cantidad de metros cúbicos de concreto asfáltico a aplicarse diario en el camino,
cabe destacar que la función objetivo nos sirve también para minimizar en otras
situaciones, de ahí la expresión de “maximizar la producción minimizando costos”.
Sabiendo el rumbo que tomara nuestra función objetivo, definiremos todas las
restricciones que debemos tomar en cuenta para llegar a nuestro objetivo
(maximizar o minimizar), lo haremos como un conjunto de ecuaciones o
inecuaciones matemáticas que representaran las limitaciones de nuestro
problema.

14
Las restricciones son de la forma:

Σ ai * Xi ≤ bi

Σ ai *Xi ≥ bi

Siendo ai y bi coeficientes, y Xi variables.

En la programación lineal siempre esta implícita la restricción de que las variables


de la función objetivo sean siempre mayores o iguales a cero (positivas),
definiéndose entonces:

Para todo i: Xi ≥ 0.

La solución factible será aquella que cumpla las condiciones planteadas por
nuestro problema y llamaremos solución óptima a aquella solución que nos
optimice en mayor medida el objetivo de nuestro problema. De esta manera la
solución optima no tiene por que ser única, puede darse el caso en el que existan
2 ó mas soluciones optimas, entonces el criterio de elección de una solución será
ajeno a nuestros cálculos

15
2.2 SIMPLIFICACION DEL MODELO MATEMATICO

Una vez establecido correctamente el modelo matemático de nuestro problema,


deberemos tener en cuenta una serie de consideraciones que simplificarán
nuestro trabajo:

1) Eliminación de restricciones redundantes.


Si alguna restricción está incluida en otra, es lógico pensar en su anulación.
Por ejemplo, si tenemos las siguientes restricciones:

(X1/a11) + (X2/b11) ≤1
(X1/a21) + (X2/b21) ≤1

Si se cumple:

A11/a21>1
B11/b21>1

Gráficamente se representa en la figura1.

16
figura 2.1

Si nuestra función objetivo trata un problema de maximización; es evidente que


podremos eliminar la restricción.

(X1/a11) + (X2/b11) ≤ 1

2) Eliminación de restricciones obvias.


Dado que la restricción de para todo i: Xi ≥ 0 va implícita en nuestros problemas,
podemos obviar las restricciones del tipo:

a * X1 + b * X2 ≥ 0
Ya que siempre se cumplirá

3) Eliminación de variables inútiles.


Si al modelizar nuestro problema, en nuestra función objetivo, aparecen variables
no sujetas a restricciones (variables que no aparecen en las restricciones), las
podremos eliminar de nuestro problema, ya que el valor de estas variables no
condiciona la solución del problema.

4) División en subproblemas.
Si al analizar un problema, observamos que se pueden dividir las restricciones en
conjuntos distintos (de tal forma que no tengan variables comunes) también
podremos dividir nuestro problema en tantos subproblemas como conjuntos de
restricciones tengamos. La solución de nuestro problema original será la unión de
las soluciones de los subproblemas tratados. Por ejemplo.
La modelización de un problema es:

Función objetivo: Max 2 X1 + 4 X2 + 3 X3 + 8 X4


Sujeto a: X1 + 9X2 ≤ 7
5X1 + 7X2 ≥ 9

17
2X3 + X4 ≤ 3
4X3 + 6X4 ≥ 12
Podemos dividir nuestro problema en subproblemas:
A) Función objetivo: Max 2 X1 + 4 X2
Sujeto a: X1 + 9 X2 ≤ 7
5X1 + 7 X2 ≥ 9

B) Función objetivo: Max 3 X3 + 8 X4


Sujeto a: 2X3 + X4 ≤ 3
4X3 + 6X4 ≥ 12

Es lógico pensar que si en nuestro problema tenemos n variables y n restricciones


linealmente independientes y sin contracciones (que no estén unas contenidas en
otras), sólo existirá una única solución a nuestro problema.

5) Homogenización de restricciones.
Como veremos más adelante, para poder resolver los problemas de programación
lineal por el método Símplex, será conveniente tener las restricciones de nuestro
problema de tal forma que los términos “bi” sean mayores o iguales a cero. Por
ello, ya que podemos encontrarnos con restricciones del tipo:
Σ ai * Xi ≥ -bi
Σ ai * Xi ≤ -bi
Σ ai * Xi = -bi
Podremos homogenizar nuestro sistema, convirtiéndolo al tipo:
Σ -ai*Xi ≤ bi
Σ -ai*Xi ≥ bi
Σ -a*Xi = bi
Con sólo multiplicar por –1 y cambiar el sentido de nuestra desigualdad. Es decir:
Σ ai * Xi ≥ -bi → Σ (-1) * ai * Xi ≤ bi
Donde se mantendrán las condiciones de la restricción y se posibilitará la
resolución del problema mediante el método Simplex.

18
CAPITULO III
MODELIZACIÓN

19
3.1 MODELO DE TRANSPORTE

El modelo de transporte busca determinar un plan de transporte de una mercancía


de varias fuentes a varios destinos. Los datos del modelo son:

1.- Nivel de oferta en cada fuente y la cantidad de demanda en cada destino.

2.- El costo de transporte unitario de la mercancía a cada destino.

Como solo hay una mercancía un destino puede recibir su demanda de una o más
fuentes. El objetivo del modelo es el de determinar la cantidad que se enviará de
cada fuente a cada destino, tal que se minimice el costo del transporte total.

La suposición básica del modelo es que el costo del transporte en una ruta es
directamente proporcional al número de unidades transportadas. La definición de
“unidad de transporte” variará dependiendo de la “mercancía” que se transporte.

Figura 3.1

20
En la figura 3.1 se representa el modelo de transporte como una red con m
fuentes y n destinos. Una fuente o un destino esta representado por un nodo, el
arco que une fuente y un destino representan la ruta por la cual se transporta la
mercancía. La cantidad de la oferta en la fuente i es ai, y la demanda en el destino
j es bj. El costo de transporte unitario entre la fuente i y el destino j es Cij.

Si Xi j representa la cantidad transportada desde la fuente i al destino j, entonces,


el modelo general de PL que representa el modelo de transporte es:

Minimiza Z = Σ i=1
m
Σ j=1
n
C ijX ij

Sujeta a:

Σ j=1
n
X i j <= ai , i=1,2,…, m

Σ i=1
m
X I j >= bj , j=1,2,…, n

X i j >=0 para todas las i y j

El primer conjunto de restricciones estipula que la suma de los envíos desde


una fuente no puede ser mayor que su oferta; en forma análoga, el segundo
conjunto requiere que la suma de los envíos a un destino satisfaga su demanda.

El modelo que se acaba de escribir implica que la oferta total Σ i=1


m
ai debe ser
cuando menos igual a la demanda total Σ j=1
n
bj. Cuando la oferta total es igual a
la demanda total, la formulación resultante recibe el nombre de modelo de
transporte equilibrado. Este difiere del modelo solo en el hecho de que todas las
restricciones son ecuaciones, es decir:

Σ X i j = ai, i=1,2,..., m

Σ X i j = bj, j=1,2,..., n

21
3.2. MODELO DE ASIGNACIÓN.

Supone que tiene unos puestos de trabajo y unos candidatos. Se quiere estudiar
cómo cubrir estos puestos de forma que se optimice una variable que sea
significativa.
Para este tipo de modelización necesitamos definir una nueva variable, llamada
variable dual que la representaremos por aij y su funcionamiento es el siguiente:

Figura 3.2

Si aij = 1 entonces el señor i ocupa el puesto j.


Si aij = 0 entonces el señor i no ocupa el puesto j.

Se llama variable dual porque sólo puede tomar dos valores: 1 ó 0 (figura 3.2)
En nuestro problema tendremos que definir:

Vij ---- valor de la persona i para el puesto j.

Función objetivo: Maximizar Σ aij * Vij

Sujeto a: Para todo i: Σ aij = 1


Para todo j: Σ aij ≤ 1

La primera restricción indica que un señor sólo ocupará un puesto.


La segunda indica que un puesto sólo lo ocupará un señor o bien no estará
ocupado.

22
Un problema de asignación es un problema de transporte balanceado, en el cual
todas las ofertas y todas las demandas son iguales a uno. Se puede resolver
eficientemente un problema de asignación m x m mediante el método Húngaro:

Paso 1.- Empiece por encontrar el elemento mas pequeño en cada renglón
de la matriz de costos. Construya una nueva matriz, al restar de cada costo, el
costo mínimo de su renglón. Encuentre, para esta nueva matriz el costo mínimo en
cada columna. Construya una nueva matriz (la matriz de costos reducidos) al
restar de cada costo el costo mínimo de su columna.

Paso 2.- Dibuje el mínimo numero de líneas (horizontales o verticales) que


se necesitan para cubrir todos los ceros en la matriz de costos reducidos. Si se
requieren m líneas para cubrir todos los ceros.

Paso 3.- Encuentre el menor elemento no cero (llame su valor k en la matriz


de costos reducidos, que no esta cubiertos por las líneas dibujadas en el paso 2.
Ahora reste k de cada elemento no cubierto de la matriz de costos reducidos y
sume k a cada elemento de la matriz de costos reducidos cubierto por dos líneas.
Regrese al paso 2.

Se caracteriza por el conocimiento del costo de asignación de cada punto de


oferta a cada punto de demanda. La matriz de costos del problema de asignación
se llama: matriz de costos.

Como todas las ofertas y demandas para el problema de asignación son números
enteros, todas las variables en la solución óptima deben ser valores enteros.

23
3.3 FORD - FULKERSON

MODELO DEL FLUJO MÁXIMO:

En algunas redes circula por los arcos un flujo (envío o circulación de unidades
homogéneas de algún producto: automóviles en una red de carreteras, litros de
petróleo en un oleoducto, bits por un cable de fibra óptica) desde el origen o fuente
al destino, también denominado sumidero o vertedero. Los arcos tienen una
capacidad máxima de flujo, y se trata de enviar desde la fuente al sumidero la
mayor cantidad posible de flujo, de tal manera que:

El flujo es siempre positivo y con unidades enteras.

El flujo a través de un arco es menor o igual que la capacidad.

El flujo que entra en un nodo es igual al que sale de él.

En el caso de que el origen o el destino no existan en el problema, se añaden


ficticiamente utilizando arcos unidireccionales de capacidad infinita, (figura 3.3)

Figura 3.3

24
Un corte define una serie de arcos cuya supresión de la red causa una
interrupción completa del flujo entre el origen y el destino. La capacidad de corte
es igual a la suma de las capacidades de los arcos asociados. Entre todos los
cortes posibles en la red, el corte con la menor capacidad proporciona el flujo
máximo en la red.

La figura 3.4 ilustra 3 cortes: el Corte 1 con capacidad 60, el Corte 2 con
capacidad 110 y el Corte 3 con capacidad 70. Todo lo que podemos obtener de
los 3 cortes es que el flujo máximo en la red no excede de 60 unidades. No
podemos saber cual es el flujo máximo hasta que se hayan enumerado todos los
cortes en la red:

Figura 3.4

Las capacidades se identifican como sigue: por ejemplo, para el arco (3,4), el
límite de flujo es de 10 unidades de 3 a 4 y de 5 unidades de 4 a 3.

25
El algoritmo de Ford-Fulkerson propone buscar caminos en los que se pueda
aumentar el flujo, hasta que se alcance el flujo máximo.

La idea es encontrar una ruta de penetración con un flujo positivo neto que una los
nodos origen y destino.

Consideraremos las capacidades iniciales del arco que une el nodo i y el nodo j
como Cij y Cji. Estas capacidades iniciales irán variando a medida que avanza el
algoritmo, denominaremos capacidades residuales a las capacidades restantes
del arco una vez pasa algún flujo por él, las representaremos como cij y cji.

Para un nodo j que recibe el flujo del nodo i, definimos una clasificación [aj,i]
donde aj es el flujo del nodo i al nodo j.

Los pasos del algoritmo se definen como sigue:

Paso 1: Inicializamos las capacidades residuales a las capacidades


iniciales, hacemos (cij,cji)=(Cij,Cji) para todo arco de la red. Suponiendo el nodo 1
como el nodo origen, hacemos a1=∞ y clasificamos el nodo origen con [∞,-].
Tomamos i=1.

Paso 2: Determinamos la solución inicial (SI) como un conjunto que


contendrá los nodos a los que podemos acceder directamente desde i por medio
de un arco con capacidad positiva, y que no formen parte del camino en curso. Si
Si contiene algún nodo vamos al paso 3, en el caso de que el conjunto sea vacío
saltamos al paso 4.

Paso 3: Obtenemos kЄSI como el nodo destino del arco de mayor


capacidad que salga de i hacia un nodo perteneciente a SI. Es decir, cik = max{cij}
con jЄSI. Hacemos ak=cik y clasificamos el nodo k con [ak,i]. Si k es igual al nodo
destino o sumidero, entonces hemos encontrado una ruta de penetración, vamos
al paso 5. En caso contrario continuamos con el camino, hacemos i=k y volvemos
al paso 2.

Paso 4 (retroceso): Si i=1, estamos en el nodo origen, y como SI es vacío,


entonces no podemos acceder a ningún nodo, ni encontrar algún nuevo camino,
vamos al paso 6.

26
En caso contrario, i≠1, le damos al valor i el del nodo que se ha clasificado
inmediatamente antes, eliminamos i del conjunto Si actual y volvemos al paso 2.

Paso 5: Llegados a este paso tenemos un nuevo camino: Np={1,k1,k2,...,n},


esta será la p-ésima ruta de penetración desde el nodo origen al nodo destino. El
flujo máximo a lo largo de esta ruta será la capacidad mínima de las capacidades
residuales de los arcos que forman el camino, es decir: fp = min{a1,ak1,ak2,...,an}.
La capacidad residual de cada arco a lo largo de la ruta de penetración se
disminuye por fp en dirección del flujo y se incrementa por fp en dirección inversa,
es decir, para los nodos i y j en la ruta, el flujo residual se cambia de la (cij,cji)
actual a (cij-fp,cji+fp) si el flujo es de i a j, ó (cij+fp,cji-fp) si el flujo es de j a i
Inicializamos i=1 y volvemos al paso 2 para intentar una nueva ruta de
penetración.

Paso 6 (solución): Una vez aquí, hemos determinado m rutas de


penetración. El flujo máximo en la red será la suma de los flujos máximos en cada
ruta obtenida, es decir: F=f1+f2+...+fm. Teniendo en cuenta que las capacidades
residuales inicial y final del arco (i, j) las dan (Cij,Cji) y (cij,cji) respectivamente, el
flujo máximo para cada arco se calcula como sigue: sea (α, β)=(Cij-cij, Cji-cji), si
α>0, el flujo óptimo de i a j es α, de lo contrario, si β>0, el flujo óptimo de j a i es β.
Es imposible lograr que tanto α como β sean positivas.

27
3.4 CAMINOS HAMILTONIANOS DE COSTO MINIMO

En el campo matemático de la teoría de graficas, un camino hamiltoniano en un


grafica es un camino, una sucesión de aristas adyacentes, que visita todos los
vértices de la grafica una sola vez. Si además el último vértice visitado es
adyacente al primero, el camino es un ciclo hamiltoniano (figura 3.5)

El problema de encontrar un camino hamiltoniano en una grafica arbitraria se sabe


que es NP-completo.

Los caminos y ciclos hamiltonianos fueron nombrados después que William


Rowan Hamilton, inventor del juego de Hamilton, lanzara un juguete que
involucraba encontrar un ciclo hamiltoniano en las aristas de una grafica de un
dodecaedro. Hamilton resolvió este problema usando cuaterniones, pero esta
solución no se generaliza a todos las graficas.

Figura 3.5

aij =0 el arco (i,j) no forma parte del camino.


aij =1 el arco (i,j) forma parte del camino.
FUNCION OBJETIVO: Min Σ Cij * aij
Sujeto a: para todo i: Σ aij =1 sólo sale un arco de cada nodo.

28
Para todo j: Σ aij =1 sólo llega un arco de cada nodo.
3.5 KRUSKAL

El algoritmo de Kruskal es un algoritmo de la teoría de graficas para encontrar un


árbol recubridor mínimo en una grafica conexa y ponderada. Es decir, busca un
subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde
el valor total de todas las aristas del árbol es el mínimo. Si la grafica no es conexa,
entonces busca un bosque expandido mínimo (un árbol expandido mínimo para
cada componente conexa). El algoritmo de Kruskal es un ejemplo de algoritmo
voraz.

Figura 3.6

En la figura 3.6 se observa un ejemplo de árbol expandido mínimo. Cada punto


representa un vértice, el cual puede ser un árbol por sí mismo. Se usa el Algoritmo
para buscar las distancias más cortas (árbol expandido) que conectan todos los
puntos o vértices.

De manera que:
Cij---- costo arista entre el nodo i y el nodo j.
FUNCION OBJETIVO: Min Σ Cij * aij
Sujeto a: para todo i: Σ aij ≥ 1
Al menos llega una arista y al menos sale otra
Para todo j: Σ aij ≥ 1

29
aij ≤ 1

Funciona de la siguiente manera:

• Se crea un bosque B (un conjunto de árboles), donde cada vértice de la


grafica es un árbol separado
• Se crea un conjunto C que contenga a todas las aristas de la grafica
• mientras C es no vacío

*eliminar una arista de peso mínimo de C

*si esa arista conecta dos árboles diferentes se añade al bosque,


combinando los dos árboles en un solo árbol

*en caso contrario, se desecha la arista

Al acabar el algoritmo, el bosque tiene un solo componente, el cual forma un árbol


de expansión mínimo de la grafica.

Este algoritmo fue publicado por primera vez en Proceedings of the American
Mathematical Society, pp. 48–50 en 1956, y fue escrito por Joseph Kruskal.

30
3.6 PERT – CPM

La problemática de la planeación de proyectos no ha sido una problemática


reciente, si no que desde tiempos pasados nuestros antepasados han enfrentado
emprendimientos de gran envergadura que significaron una problemática desde el
punto de la planificación.

Actualmente se han logrado perfeccionar herramientas que permiten a los


administradores de dichos proyectos, realizar una labor más eficiente permitiendo
una óptima aplicación de los recursos en las mismas y logrando una maximización
de los mismos.

Admitiendo que la ejecución de un proyecto o elaboración se puede subdividir en


planear, programar y controlar, y hablando de manera clásica, podemos
considerar las técnicas PERT(Program Evaluation aand review Technique) y el
CPM (Critical Path Method,) que son los mas usuales para un primer cometido. En
general estas técnicas resultan útiles para una gran variedad de proyectos que
contemplen:

Investigación y desarrollo de nuevos productos y procesos.

Construcción de plantas, edificios, y carreteras.

Diseño de equipo grande y complejo.

Diseño e instalación de sistemas nuevos.

Diseño y control de epidemias, y otras múltiples aplicaciones en las cuales se


requiera una planificación adecuada.

En los proyectos como estos, los administradores deben programas, coordinar las
diversas tareas o actividades a desarrollar un proyecto, las cuales no
necesariamente son secuenciales, y aun en este caso estas actividades son
interdependientes. Si bien es cierto que, algunas actividades en paralelo que
originan una tercera.

31
Las preguntas esenciales de la elaboración de un proyecto comprenden:

*¿Cual es el tiempo que se requiere para terminar el proyecto?

*¿Cuales son las fechas programadas de inicio y finalización del proyecto?

*¿Que actividades son críticas y deben terminarse exactamente según lo


programado para poder mantener el proyecto según el cronograma?

*¿Cuales actividades pueden ser demoradas sin afectar el tiempo de terminación


del proyecto?

PROCEDIMIENTO PARA TRAZAR UN MODELO DE RED


Para aplicar CPM o PERT se requiere conocer la lista de actividades que incluye
un proyecto. Se considera que el proyecto esta terminado cuando todas las
actividades han sido completadas. Para cada actividad, puede existir un conjunto
de actividades predecesoras que deben ser completadas antes de que comience
la nueva actividad. Se construye una malla o red del proyecto para graficar las
relaciones de precedencia entre las actividades. En dicha representación grafica,
cada actividad es representada como un arco y cada nodo ilustra la culminación
de una o varias actividades.
Consideremos un proyecto que consta de solo dos actividades A y B.
Supongamos que la actividad A es predecesora de la actividad B. La
representación grafica de este proyecto se muestra en la figura. Así, el nodo 2
representa la culminación de la actividad A y el comienzo de la actividad B.

A B
1
2 3

Figura 3.7

32
Si suponemos ahora que las actividades A y B deben ser terminadas antes que
una actividad C pueda comenzar, la malla del proyecto queda como se muestra en
la figura 3.8, en este caso, el nodo representa que las actividades A y B se han
terminado, además del inicio de la actividad C. Si la actividad A fuera predecesora
de las actividades B y C, la red quedara como se muestra en la figura 3.9.

Proyecto de tres actividades

1
A
B
1

C
1

Figura 3.8a

1 1
A B

Figura 3.8b

Dado un conjunto de actividades y sus relaciones de predecisión, se puede


construir una representación grafica de acuerdo a las siguientes reglas:
• El nodo 1 representa el inicio del proyecto. Por lo tanto, las actividades que
parten del nodo 1 no pueden tener predecesoras.
• El nodo Terminal o final del proyecto debe representar el término de todas
las actividades incluidas en la red.
• Una actividad no puede ser representada por más de un arco en la red.
• Dos nodos deben estar conectados por a lo mas un arco.

33
Para no violar las reglas 3 y 4, a veces es necesario introducir una actividad
artificial o “Dummy” que posee tiempo de duración nulo. Por ejemplo, supongamos
que las actividades A y B son predecesoras de la actividad C y además comienzan
al mismo tiempo. En este caso, una primera representación podría ser la indicada
en la figura 3.8b. Sin embargo, la red de la figura 3.9 viola la regla 4. Para corregir
este problema, se introduce una actividad artificial indicada con un arco
segmentado en la figura
La red de la figura 3.10 refleja el hecho de que la actividad C tiene como
predecesoras a A y B, pero sin violar la regla 4. En otros casos, se deben agregar
actividades artificiales para no violar la regla 3.

1 C
2

Figura 3.9
A y B predecesoras de C

A C

C Dummy

Figura 3.10
Incorporación de una actividad artificial.

34

Figura 3.11

En la figura 3.11 enlista la lógica seguida para la construcción de una red

35
PASOS EN EL PLANEAMIENTO DEL PROYECTO DEL CPM

1. Especifique las actividades individuales.


2. Determine la secuencia de esas actividades.
3. Dibuje un diagrama de la red.
4. Estime la época de la terminación para cada actividad.
5. Identifique la trayectoria crítica (la trayectoria más larga a través de la red)
6. Ponga al día el diagrama del CPM como progresa el proyecto.
7. Especifique las actividades individuales

DEFINICION DE LOS PASOS EN EL PLANEAMIENTO

*ESPECIFIQUE LAS ACTIVIDADES INDIVIDUALES.


De la estructura de la interrupción del trabajo, un listado se puede hacer de todas
las actividades en el proyecto. Este listado se puede utilizar como la base para
agregar la información de la secuencia y de la duración en pasos más últimos.

*DETERMINE LA SECUENCIA DE LAS ACTIVIDADES


Algunas actividades son dependientes en la terminación de otras. Un listado de los
precursores inmediatos de cada actividad es útil para construir el diagrama de la
red del CPM.

*DIBUJE EL DIAGRAMA DE LA RED


Una vez que se hayan definido las actividades y el su ordenar, el diagrama del
CPM puede ser dibujado. El CPM fue desarrollado originalmente como
actividad en red del nodo (AON), pero algunos planificadores del proyecto
prefieren especificar las actividades en los arcos.

36
*ESTIME LA ÉPOCA DE LA TERMINACIÓN PARA CADA ACTIVIDAD.
El tiempo requerido para terminar cada actividad se puede estimar usando
experiencia previa o las estimaciones de personas bien informadas. El CPM
es un modelo determinista que no considera la variación en el tiempo de la
terminación, tan solamente un número se utiliza para la estimación del tiempo
de una actividad.

*IDENTIFIQUE LA TRAYECTORIA CRÍTICA (LA TRAYECTORIA MÁS LARGA A


TRAVÉS DE LA RED)
La trayectoria crítica es la trayectoria del largo-duración a través de la red. La
significación de la trayectoria crítica es que las actividades que mienten en ella no
se pueden retrasar sin delaying el proyecto. Debido a su impacto en el proyecto
entero, el análisis de trayectoria crítica es un aspecto Importante del planeamiento
del proyecto.
La trayectoria crítica puede ser identificada determinando los cuatro parámetros
siguientes para cada actividad:
• ES, Principio temprano.
• EF, principio tardío.
• LS, terminación temprana.
• LF, terminación tardía.
La época floja para una actividad es el tiempo entre su hora de salida más
temprana y más última, o entre su tiempo más temprano y más último del final. La
holgura es la cantidad de tiempo que una actividad se puede retrasar más allá de
su comienzo más temprano o final más temprano sin delaying el proyecto.
La trayectoria crítica es la trayectoria a través de la red del proyecto en la cual
ningunas de las actividades tienen holgura, es decir, la trayectoria para la cual
ES=LS y EF=LF para todas las actividades en la trayectoria. Retrasa en la
trayectoria crítica retrasa el proyecto. Semejantemente, acelere el proyecto que es
necesario reducir el tiempo total requerido para las actividades en la trayectoria
crítica.

37
*PONGA AL DÍA EL DIAGRAMA DEL CPM
Pues progresa el proyecto, los tiempos reales de la terminación de la tarea serán
sabidos y el diagrama de la red se puede poner al día para incluir esta
información. Una trayectoria crítica nueva puede emerger, y los cambios
estructurales se pueden realizar en la red si los requisitos del proyecto cambian.

*LIMITACIONES DEL CPM


El CPM fue desarrollado para el complejo pero los proyectos bastante rutinarios
con incertidumbre mínima en los tiempos de la terminación del proyecto. Para
menos proyectos de la rutina hay más incertidumbre en los tiempos de la
terminación, y límites de esta incertidumbre la utilidad del modelo determinista del
CPM. Una alternativa al CPM es el modelo del planeamiento del proyecto del
PERT, que permite que una gama de duraciones sea especificada para cada
actividad.

METODO PERT (Program Evaluation and Review Technique)


En CPM se asume que la duración de cada actividad es conocida con certeza.
Claramente, en muchas ocasiones este supuesto no es valido. PERT intenta
corregir este error suponiendo que la duración de cada actividad es una variable
aleatoria. Para cada activad, se requiere estimar las siguientes cantidades:

a = Tiempo Optimista. Duración de la actividad bajo las condiciones más


favorables
b = Tiempo Pesimista. Duración de la actividad bajo las condiciones más
desfavorables
m= Tiempo Normal. El valor más probable de la duración de la actividad.

38
La forma de la distribución se muestra en la figura 3.12 tiempo más probable es el
tiempo requerido para completar la actividad bajo condiciones normales. Los
tiempos optimistas y pesimistas proporcionan una medida de la incertidumbre
inherente en la actividad, incluyendo desperfectos en el equipo, disponibilidad de
mano de obra, retardo en los materiales y otros factores.

Figura 3.12

Con la distribución definida, la media (esperada) y la desviación estándar,


respectivamente, del tiempo de la actividad para la actividad Z puede calcularse
por medio de las fórmulas de aproximación.

a + 4m + b
Te ( Z ) =
6
b −a
σ( Z ) =
6

El tiempo esperado de finalización de un proyecto es la suma de todos los tiempos


esperados de las actividades sobre la ruta crítica. De modo similar, suponiendo
que las distribuciones de los tiempos de las actividades son independientes
(realísticamente, una suposición fuertemente cuestionable), la varianza del
proyecto es la suma de las varianzas de las actividades en la ruta crítica.

39
PASOS EN EL PROCESO DE PLANEAMIENTO DEL PERT
1. El planeamiento del PERT implica los pasos siguientes:
2. Identifique las actividades y duración especifica,
3. determine la secuencia apropiada de las actividades,
4. construya un diagrama de red,
5. determine el tiempo requerido para cada actividad,
6. determine la trayectoria critica,
7. Ponga al día la carta del PERT según como progresa el proyecto.

*DEFINICION DE LOS PASOS DE PLANEAMIENTO

IDENTIFIQUE LAS ACTIVIDADES Y LOS PRECEDENTES


Las actividades son las tareas requeridas para terminar el proyecto. Los
precedentes son los acontecimientos que marcan el principio y el final de una o
más actividades. Es provechoso enumerar las tareas en una tabla que en pasos
mas últimos se pueda ampliar para incluir la información sobre secuencia y
duración.

*DETERMINE LA SECUENCIA DE LA ACTIVIDAD


Este paso se puede combinar con el paso de la identificación de la actividad
puesto que la secuencia de la actividad es evidente para algunas tareas. Otras
tareas pueden requerir más análisis para determinar el orden exacto en la cual
deben ser realizadas

*CONSTRUYA EL DIAGRAMA DE RED


Usando la información de la secuencia de la actividad, un diagrama de la red se
puede dibujar demostrando la secuencia de actividades seriales y paralelas.

40
*TIEMPOS DE ACTIVIDAD DE ESTIMACION
Para cada activad, se requiere estimar las siguientes cantidades:

a = Tiempo Optimista. El que representa el tiempo mínimo posible sin importar el


costo o cuantía de elementos materiales y humanos que se requieran; es
simplemente la posibilidad física de realizar la actividad en el menor tiempo

b = Tiempo Pesimista. Es un tiempo excepcionalmente grande que pudiera


presentarse ocasionalmente como consecuencia de accidentes, falta de
suministros, retardos involuntarios, causas no previstas, etc.

m = Tiempo Normal. El valor más probable de la duración de la actividad, basado


en la experiencia personal del informador

Si Tij es la variable aleatoria asociada a la duración de la actividad (i; j), PERT


asume que Tij sigue una distribución Beta. Sin entrar en mayores detalles de
esta distribución, se puede demostrar que el valor esperado y la varianza de la
variable aleatoria Tij quedan definidas por:
a + 4m + b
E [Tij ] e ( Z ) =
6

V [Tij ] =
(b − a) 2

36
En PERT se asume además que la duración de las actividades es independiente.
Por lo tanto, el valor esperado y la varianza de una ruta pueden ser estimadas
según:

∑[Tij ]
( ij ∈Ruta ) = Duración esperada de la ruta

∑[Vij ]
( ij ∈Ruta ) = Variación de la duración de la ruta

*DETERMINE LA TRAYECTORIA CRÍTICA

41
La trayectoria crítica es determinada agregando los tiempos para las actividades
en cada secuencia y determinando la trayectoria mas larga del proyecto. La
trayectoria crítica determina el tiempo total del calendario requerido para el
proyecto. Si las actividades fuera de la trayectoria cítrica aceleran o retrasaron el
tiempo (dentro de los limites), entonces el tiempo total de proyecto no varia, la
cantidad del tiempo que una actividad no critica de la trayectoria sin alterar la
duración del proyecto se denomina como tiempo flojo.
Si la trayectoria crítica del proyecto no resulta obvia, entonces puede ser
provechoso determinar las cuatro cantidades siguientes para cada actividad:
• ES, Principio temprano.
• EF, principio tardío.
• LS, terminación temprana.
• LF, terminación tardía.
Se calculan estos tiempos usando la época prevista para las actividades
relevantes. Los tiempos más tempranos del comienzo y del final de cada actividad
son determinados trabajando adelante a través de la red y determinando el tiempo
más temprano en el cual una actividad puede comenzar y acabar a considerar sus
actividades del precursor. Los tiempos más últimos del comienzo y del final son los
tiempos más últimos que una actividad puede comenzar y acabar sin variar el
proyecto. El LS y el LF son encontrados trabajando al revés a través de la red. La
diferencia en el final más último y más temprano de cada actividad es holgura de
esa actividad. La trayectoria crítica entonces es la trayectoria a través de la red en
la cual ningunas de las actividades tienen holgura.
La variación en el tiempo de la terminación del proyecto puede ser calculada
sumando las variaciones en los tiempos de la terminación de las actividades en la
trayectoria crítica. Dado esta variación, una puede calcular la probabilidad que el
proyecto será terminado por cierta fecha si se asume que una distribución normal
de la probabilidad para la trayectoria crítica.

Sea CP la variable aleatoria asociada a la duración total de las actividades de la


ruta crítica determinadas mediante CPM. PERT asume que la ruta crítica

42
encontrada a través de CPM contiene suficientes actividades para emplear el
Teorema Central del Límite y concluir que CP se distribuye normalmente.

CP = ∑ Tij
( ij∈Ruta )

Puesto que la trayectoria crítica determina la fecha de la terminación del proyecto,


el proyecto puede ser acelerado agregando los recursos requeridos para disminuir
la época para las actividades en la trayectoria crítica.

LA ACTUALIZACIÓN SEGÚN COMO EL PROYECTO PROGRESA


Haga los ajustes en la carta del PERT como progresa el proyecto. Mientras que el
proyecto revela, los tiempos estimados se pueden sustituir por épocas reales. En
casos donde hay retrasa, los recursos adicionales puede ser necesario
permanecer en horario y la carta del PERT se puede modificar para reflejar la
nueva situación.

43
CAPITULO IV
METODOS PARA LA
RESOLUCION DE PROBLEMAS
EN PROGRAMACIÓN LINEAL

4.1. MÉTODO DE REPRESENTACIÓN GRÁFICA.

44
Toda ecuación lineal con dos variables X y Y
Ax + By = 0
Tiene un conjunto solución que se puede exhibir en forma gráfica como los puntos
de una línea recta en el plano xy. De esta misma también existe una
representación grafica sencilla de las desigualdades lineales con dos variables:
Ax + By < 0 Ax + By ≤ 0
Ax + By > 0 Ax + By ≥ 0

Antes de ver un procedimiento general para graficar desigualdades, analizaré un


ejemplo específico. Se graficará la siguiente desigualdad:

2x + 3y < 0

Primero se grafica la ecuación 2x + 3y = 6, la cual se obtiene de la desigualdad


dada reemplazando la desigualdad “<” por una igualdad “=” (figura 4.1)
Y
5
Semiplano
L superior
2x + 3y = 6
P (x,y)

Q (x, -2/3x+2)

-5 5

Semiplano
inferior

-5

Figura 4.1

Se observa que la línea recta divide el plano xy en dos semiplanos: uno superior y
uno inferior. De esta manera el semiplano superior es la gráfica de la desigualdad
lineal:

45
2x + 3y > 6 (1)

Mientras que el semiplano inferior es la gráfica de la desigualdad lineal:

2x + 3y < 6 (2)

Para tener un poco mas claro el concepto escribiremos las formulas anteriores en
formas equivalentes:

y > - 2/3x + 2 (3)

y < -2/3x + 2 (4)

Siendo la ecuación de la propia recta:

y = -2/3x + 2 (5)

Elegiremos ahora un punto cualquiera P(x, y) que este arriba de la recta L; siendo
Q el punto en L que esta directamente bajo P (en la figura 4.1). Si Q esta en L, sus
coordenadas deben satisfacer la ecuación y = -2/3x +2, es decir, Q se representa
como Q (x, -2/3x+2). De manera que si comparamos las ordenadas de P y Q,
teniendo en cuenta que P esta arriba de Q, entonces su ordenada es mayor y se
tiene:

y > -2/3x +2

Esta desigualdad es precisamente la ecuación (3) o, en forma equivalente la


ecuación (1). De la misma manera se puede mostrar que cualquier punto que se
encuentre debajo de L debe satisfacer a la ecuación (4) y por ende a la (2)

46
Este análisis muestra que el semiplano inferior proporciona una solución a nuestro
problema (figura 4.2). Debe observarse que ambos semiplanos son mutuamente
excluyentes (no tienen puntos en común)

Y
5

2x + 3y = 6
2x + 3y < 6

X
-5 5

Figura 4.2

Para determinar de manera más sencilla el semiplano requerido, se elige cualquier


punto en uno de los semiplanos. Para simplificar el proceso, elegiremos el origen
(0, 0), que esta en el semiplano inferior. Si sustituimos X = 0 y Y = 0, en la
desigualdad de nuestro problema original, tendremos:

2(0) + 3(0) < 6

Que es lo mismo a decir; 0 < 6, lo cual es una expresión cierta. Esto quiere decir
que es el semiplano requerido, que contiene el punto de verificación, es decir el
semiplano inferior.

Veremos que ocurre si elegimos el punto (2, 3), que esta en el semiplano superior.
Al sustituir X =2 y Y = 3, en la desigualdad tendremos:
2(2) + 3(3) < 6
Que es lo mismo que decir; 13 < 6, lo cual es una expresión falsa. Esto quiere
decir que el semiplano superior no es el requerido. Debe observarse también que

47
ningún punto (x, y) que este en la recta L constituye una solución a este problema,
debido a la desigualdad es estrictamente “<”
Este análisis sugiere el siguiente procedimiento para graficar una desigualdad
lineal en dos variables.

PROCEDIMIENTO PARA GRAFICAR DESIGUALDADES LINEALES


• Se traza la gráfica de la ecuación obtenida de la desigualdad dada,
reemplazando el signo de la desigualdad con un signo de igualdad. Se
utiliza una línea punteada si el problema comprende una desigualdad
estricta “<” o “>”. Para el caso contrario se usa una línea sólida para indicar
que la recta forma parte de la solución.
• Se elige un punto de verificación que este en alguno de los semiplanos
determinados por la recta trazada en el paso anterior y se sustituyen los
valores de X y Y en la desigualdad dada.
• Si se satisface la desigualdad, su gráfica incluye el semiplano que contiene
al punto de verificación. En caso contrario, la solución incluye el semiplano
que no lo contiene.

En programación lineal este método consiste en representar las restricciones


sobre unos ejes de coordenadas, para delimitar la región dónde se encuentran las
soluciones factibles.
Las soluciones óptimas se encontrarán en el perímetro del polígono resultante.
Si nuestra función objetivo es una maximización y la línea que delimita nuestro
dominio no es convexa, entonces nuestro problema, bajo estas condiciones, no
tiene solución.
Ejemplo:
FUNCION OBJETIVO.: Max 5X+6Y
Sujeto a: X+Y≤ 4
X + 2Y ≤ 6
La representación gráfica se ve en la figura 4.3.

48
Dando valores a la función objetivo vamos obteniendo sucesivas rectas paralelas,
de forma que según aumenta la función objetivo, la recta se separa del origen.
Por tanto, puede suceder que nuestra función objetivo de valor óptimo coincida
con una arista o con un vértice del polígono que delimite nuestro dominio.
En nuestro caso, el vértice A (2,2) será la solución óptima.
Luego el valor óptimo de nuestra función objetivo será:

5*2 + 6*2 = 22

Figura 4.3

Si por el contrario nuestro problema hubiese sido:


FUNCION OBJETIVO: Max 5 X + 6 Y
Sujeto a: X+Y≥4
X+2Y≥6

Gráficamente:

49
Figura 4.4

En este caso nuestra solución no está acotada, luego nuestro problema no tendrá
solución.

SOLUCION GRAFICA DE PROBLEMAS DE PROGRAMACION LINEAL

Los problemas de programación lineal de dos variables tienen interpretaciones


geométricas relativamente sencillas; por ejemplo, el sistema de restricciones
lineales asociado con un problema de programación lineal bidimensional (si no es
inconsistente) define una región plana cuya frontera esta formada por segmentos
de recta o semirrectas, de manera que es posible analizar estos problemas de
forma gráfica.
Consideremos el siguiente problema de programación lineal bidimensional:
FUNCION OBJETIVO: Max P= 3x + 2y
Sujeto a: 2x + 3y ≤ 12
2x + y ≤ 8
X ≥ 0, Y ≥ 0

El sistema de desigualdades lineales define la región plana S (que se muestra en


la figura 4.5). Cada punto de S es un candidato para resolver este problema y se

50
conoce como solución factible y el conjunto de S se conoce como conjunto
factible, para solucionar el problema se tiene que encontrar el punto o los puntos
que optimicen la función objetivo, tal solución factible es una solución optima y
constituye la solución al problema lineal en cuestión.

y
10

2x + y =8

P (3, 2)
2x + 3y =12
S

5 10

Figura 4.5

Se observa que cada punto P(x, y) en S es un candidato para la solución óptima


del problema en cuestión; por ejemplo, es fácil ver que el punto (1, 3) esta dado
por la función objetivo = 3(1) + 2(3) = 9, y esta dentro del conjunto S; De esta
manera tendríamos una solución optima si pudiéramos calcular el valor de la
función objetivo para cada punto de S, entonces el punto o los puntos que
proporcionen el valor máximo de P formarían el conjunto solución que buscamos.
Para encontrar de manera mas sencilla la solución óptima, asignaremos valores a
P, por ejemplo el valor de 6, entonces la función objetivo se convierte en 3x + 2y =
6, que es una ecuación lineal en X y Y; de manera que se tiene como grafica una
línea recta L1 en el plano (figura 4.6)

51
y

Línea más
L2 alejada del
origen que
5 intersecta a S

L1

P (3, 2)

5 x

Figura 4.6

Cada punto dado del segmento de recta de la intersección de la línea recta L1 y el


conjunto factible S corresponde al valor dado 6 de P, por esta razón a la línea
recta L1 se le conoce como una recta de ganancias iguales.
Si repetimos el proceso, asignando ahora a P el valor de 10, se obtiene la
ecuación 3x + 2y = 10, gráficamente observamos a la recta L2, lo que sugiere que
existen puntos factibles que corresponden a un valor mayor de P.
En la figura 4.6 se observa que las rectas L2 y L1 son paralelas, debido a que
ambas tienen la misma pendiente igual a -3/2.
Al asignarle diversos valores a la función objetivo, se obtiene una familia de rectas
paralelas, cada una con una pendiente igual a -3/2, además una recta
correspondiente a un valor mayor de P que esta mas alejada del origen que una
recta con un valor menor de P.
De manera que para obtener la solución óptima se encuentra la recta
perteneciente a dicha familia que se encuentre más lejos del origen intersecte al
conjunto factible S. Para nuestro caso particular la recta requerida será aquella
que pase por el punto P(3, 2), de manera que la solución de este problema esta
dada por x =3, y = 2, lo que produce un valor máximo de P = 3(3) + 2(2) = 13.

52
La solución óptima de este problema es un vértice del conjunto factible S,
cumpliendo el siguiente teorema básico de la programación lineal.

TEOREMA I PROGRAMACION LINEAL


Si un problema de programación lineal tiene una solución, entonces esta debe
aparecer en un vértice, o esquina, del conjunto factible S asociado con el
problema. Además, si la función objetivo P se optimiza en dos vértices adyacentes
de S, entonces se optimiza en todos los puntos del segmento de recta que une
estos vértices, en cuyo caso existe una infinidad de soluciones al problema.

Aunque el teorema I arroja un poco de luz acerca de la naturaleza de la solución


de un problema de programación lineal, no indica cuando tiene solución. El
siguiente problema establece ciertas condiciones que garantizan la existencia de
la solución de un problema de programación lineal.

TEOREMA II EXISTENCIA DE UNA SOLUCION


Supóngase un problema de programación lineal con un conjunto factible S y un
función objetivo P = ax + by.

1.- Si S esta acotado, entonces P tiene un valor máximo y un valor mínimo en S.

2.- Si no esta acotado y tanto a como b son no negativos, entonces P tiene un


valor mínimo en S, si las restricciones que definen a S incluyen las desigualdades
X ≥ 0 y Y ≥ 0.

3.- Si S es el conjunto vacío, entonces el problema de programación lineal no tiene


solución; es decir, P no tiene un valor máximo ni uno mínimo

A continuación explicaremos el método de las esquinas, un procedimiento sencillo


para resolver los problemas de programación lineal basado en el teorema I.

53
METODO DE LAS ESQUINAS
1.- Se grafica el conjunto factible.
2.- Se encuentran las coordenadas de todas las esquinas (vértices) del conjunto
factible.
3.- Se evalúa la función objetivo en cada esquina.
4.- Se halla el vértice que proporcione el máximo (mínimo) de la función objetivo.
Si solo existe un vértice con esta propiedad, entonces constituye una solución
única al problema. Si la función objetivo se maximiza (minimiza) en dos esquinas
adyacentes de S, entonces existe una infinidad de soluciones optimas dadas por
los puntos del segmento de recta determinada por estos dos vértices.

54
4.2 METODO SIMPLEX

El método de las esquinas no es adecuado para resolver problemas de


programación lineal, cuando el número de variables o restricciones es grande. Su
principal desventaja es que hay que conocer todas las esquinas del conjunto
factible S asociado con el problema; lo que se necesita es un método de solución
basado en la elección juiciosa de las esquinas del conjunto factible S, con lo cual
se reduce la cantidad de puntos por inspeccionar. Una técnica de este tipo,
llamada método símplex, fue desarrollada en la década de 1940 George Dantzig y
se basa en el método de eliminación de Gauss – Jordan. El método símplex se
adapta con facilidad a la computadora, lo que lo hace particularmente adecuado
para resolver problemas de programación lineal que comprenden un gran número
de variables y de restricciones.
En esencia, el método símplex es un procedimiento iterativo; es decir, se repite
una y otra vez. Se parte de cierta solución factible inicial (una esquina del conjunto
factible S, que por lo general es el origen) y cada iteración conduce a otro punto
esquina de S con un valor mejorado de la función objetivo. La iteración termina
cuando se alcanza la solución óptima (si existe).
Antes de establecer un procedimiento formal para resolver los problemas comunes
o estándares de programación lineal con base en el método símplex
consideraremos el siguiente análisis de un problema de dos variables. En este
análisis aclararemos el procedimiento general y, al mismo tiempo, mejoraremos la
comprensión del método símplex examinando los motivos que conducen a los
pasos del procedimiento

Considérese el siguiente problema de programación lineal:


FUNCION OBJETIVO: Max P = 3x + 2y
Sujeto a: 2x + 3y ≤ 12
2x + y ≤ 8
X ≥ 0, Y ≥ 0

55
El conjunto factible S relacionado con este problema se representa en la figura
4.7, donde se han etiquetado las cuatro esquinas factibles A(0, 0), B(4, 0), C(3, 2)
y D(0, 4).
y

D(0, 4)

C(3, 2)
S

B(4, 0)
A(0, 0) x

Figura 4.7

Como primer paso en la solución mediante el método símplex, se reemplazara el


sistema de restricciones con desigualdades por un sistema de restricciones con
igualdades. Esto se puede realizar mediante variables no negativas llamadas
Variables de holgura. Primero, consideraremos la desigualdad

2x + 3y ≤ 12

Debemos observar que el lado izquierdo de esta ecuación siempre es menor o


igual al lado derecho; por lo tanto, al sumar una variable no negativa U al lado
izquierdo para compensar esa diferencia, se obtiene la igualdad

2x + 3y + U = 12

56
Por ejemplo si X = 1 y Y = 1 [en la figura 4.7 se puede observar que el punto (1, 1)
es un punto factible de S], entonces U =7. Obteniendo lo siguiente:

2(1) + 3(1) + 7 = 12

Ahora, si x = 2 y Y = 1 [el punto (2, 1) también es punto factible de S], entonces U


= 5. Obteniendo lo siguiente:

2(2) + 3(1) + 5 = 12

La variable U es una variable de holgura.


De la misma manera, la desigualdad 2x + y ≤ 8 se convierte en la ecuación 2x + y
+ V= 8 a través de la introducción de la variable de holgura V. El sistema de
desigualdades lineales se entiende como el sistema de ecuaciones lineales:

2x + 3y + U = 12
2x + y + +V=8

Donde x, y, U y V son todas no negativas.

Por ultimo, al reescribir la función objetivo en la forma -3x –2y + P = 0, donde el


coeficiente de P es +1, se tiene el siguiente sistema de ecuaciones lineales:

2x + 3y + U = 12
2x + y + +V =8
-3x –2y +P = 0

Como este sistema tiene tres ecuaciones lineales en las cinco variables x, y, U, V
y P; es posible despejar tres variables en términos de las otras dos. Así existe una
infinidad de soluciones a ese sistema, las cuales se pueden expresar en términos
de dos parámetros. Ahora, se puede observar que el problema de programación

57
lineal equivale a encontrar la solución que proporciona el máximo de P: Entre
todas las soluciones de este sistema para las cuales x, y, U y V sean no negativas
(tales soluciones se llaman soluciones factibles).
La matriz aumentada asociada con este sistema es:

Variables no básicas Variables básicas

Columna de constantes
x y U V P

2 3 1 0 0 12
2 1 0 1 0 8
-3 -2 0 0 1 0

Debemos observar que cada una de las columnas U, V y P de esta matriz es una
columna unitaria. Las variables asociadas con las columnas unitarias se llaman
variables básicas y las demás, variables no básicas.
Ahora la configuración de la matriza aumentada sugiere que despejen las
variables básicas U, V y P en términos de variables no básicas X y Y, con lo que
se obtiene:

U = 12 – 2x – 3y
V = 8 – 2x – y
P= 3x + 2y

De todas las soluciones factibles que se pueden obtener al asignar valores no


negativos arbitrarios a los parámetros X y Y, se obtiene una solución particular con
X = 0 y Y = 0. De hecho, esta solución esta dada por:

X = 0, Y = 0, U = 12, V = 8, P = 0

58
Esta solución, obtenida al igual a cero todas las variables no básicas, es una
solución básica del sistema. Esta solución particular corresponde a la esquina A(0,
0) del conjunto factible asociado de programación lineal (figura 4.7). Observamos
que P = 0 en este punto.
Si el valor de P no pudiera aumentar, se tendría la solución óptima del problema
en cuestión. Para determinar si se puede mejorar el valor de P, debe observarse la
función objetivo, como los coeficientes de X y Y son positivos, el valor de P se
podría mejorar incrementando X ó Y; es decir, alejándose del origen. Debe notarse
que se llega a la misma conclusión observando que el ultimo renglón de la matriz
aumentada contiene entradas negativas (comparando la función objetivo original,
P = 3x + 2y, con la función objetivo reescrita, -3x -2y + P = 0).
Siguiendo con la búsqueda de la solución óptima, la siguiente tarea consiste en
determinar si es mejor aumentar el valor de x o de y (incrementar ambos valores
en forma simultanea es mas difícil). Debido a que el coeficiente de x es mayor que
el de y, un incremento unitario en la dirección de x producirá un aumento mayor en
el valor de la función objetivo P que un incremento unitario en la dirección de y, de
esta manera, debemos aumentar el valor de x a la vez que se mantiene constante
en y. Debemos cuidar que el incremento en la dirección de x pueda mantener un
valor de y = 0 si que se salga del conjunto factible. Esta condición se observa en
las siguientes ecuaciones:

U = 12 – 2x
V = 8 – 2x

Como U debe ser no negativo, la primera ecuación significa que x no puede


exceder a 12/2 ó 6. La segunda ecuación y la no negatividad de V significa que x
no puede exceder a 8/2 ó 4, así podemos concluir que x se puede incrementar
hasta el valor de 4.
Ahora, si se hace y = 0 y x = 4 en el sistema de ecuaciones de las variables
básicas se obtiene la solución:
X = 4, Y = 0, U = 4, V = 0, P = 12

59
La cual es una solución básica del sistema de ecuaciones lineales, esta vez con Y
y V como variables no básicas (debe recordarse que las variables no básicas son
aquellas que se igualan a cero).
Veremos la forma de llegar esa solución básica mediante la matriz aumentada del
sistema.

Puesto que x reemplaza a V como variable básica, el objetivo es hallar una matriz
aumentada que tenga una configuración tal que la columna de x este en la forma
unitaria:

0
1
0

Reemplazando la forma actual de la columna V en la matriz aumentada, esto se


logra pivoteando en torno del numero 2.

x y U V P

2 3 1 0 0 12
Multiplicando al renglón 2 (R2) por ½
2 1 0 1 0 8
obtenemos:
-3 -2 0 0 1 0

x y U V P

2 3 1 0 0 12

1 1/2 0 1/2 0 4

-3 -2 0 0 1 0

Realizando las siguientes operaciones (R1 – 2R2 y R3 – 3R3) obtenemos:

60
x y U V P

0 2 1 -1 0 4

1 1/2 0 1/2 0 4

0 -1/2 0 3/2 1 12

Utilizando la última matriz se despejan las variables básicas X, U y P en términos


de las variables no básicas Y y V, para obtener:

X = 4 – 1/2y – 1/2V
U=4- 2y + V
P= 12 + 1/2y – 3/2V

Al igualar a cero las variables no básicas Y y V se obtiene:

X = 4, Y = 0, U = 4, V = 0, P = 12

Antes de continuar, introduciremos un poco de terminología.


El numero dos encerrado en un circulo en la primera matriz aumentada, que se
convierte en un uno, es el elemento pivote y la columna que lo contiene es una
columna pivote, dicha columna se asocia con una variable no básica, la cual se
convertirá en una variable no básica. El renglón que contiene al elemento pivote
es el renglón pivote, dicho renglón se puede determinar al dividir cada numero
positivo en la columna del pivote entre el numero correspondiente de la columna
de constantes. El renglón pivote es aquel con el menor cociente.
A continuación resumiremos el procedimiento para elegir el elemento pivote.

SELECCIÓN DEL ELEMENTO PIVOTE.

61
1.- Se escoge la columna pivote; se localiza la entrada más negativa a la izquierda
de la recta vertical en la última columna. La columna que contiene esta entrada es
la columna pivote (si existe mas de una columna de este tipo, se puede elegir
cualquiera de ellas).

2.- Se elige el renglón pivote; cada entrada positiva en la columna pivote se divide
entre su entrada correspondiente en la columna de constantes. El renglón pivote
es el renglón correspondiente a la razón más pequeña obtenida de esta manera
(si existe mas de una entrada de este tipo, se puede elegir cualquiera de ellas).

3.- El elemento pivote es el elemento común a la columna y renglón pivotes.

Al concluir con la solución al problema se observa que el último renglón de la


última matriz aumentada contiene un numero negativo (-12). Esto indica que P
nos e maximiza en esquina factible B (4, 0) y se necesita otra iteración.
En un nuevo análisis detallado, se procede inmediato de la elección de un nuevo
pivote, de acuerdo con las reglas anteriores se realizan las siguientes operaciones
por renglón:

x y U V P
Renglón pivote
0 2 1 -1 0 4

1 1/2 0 1/2 0 4

0 -1/2 0 3/2 1 12

Columna
pivote

Si multiplicamos al renglón pivote por 1/2, obtenemos:

x y U V P

0 1 1/2 -1/2 0 2
62
1 1/2 0 1/2 0 4

0 -1/2 0 3/2 1 12
Realizando las siguientes operaciones (R2 – 1/2R1 y R3 + 1/2R1), obtenemos:

x y U V P

0 1 1/2 -1/2 0 2

1 0 -1/4 3/4 0 3

0 0 1/4 5/4 1 13
Al interpretar la última matriz aumentada de la manera usual, se tiene la solución
básica X=3, Y=2 y P=3. Como no existen entradas negativas en el último renglón,
la solución es óptima y P no puede crecer más.
La solución óptima es la esquina factible C (3, 2), debemos observar que dicha
solución concuerda con la determinada mediante el método de las esquinas (figura
4.7)

CONFIGURACIÓN DE LA TABLA SIMPLEX INICIAL


1.- Se transforma el sistema de desigualdades lineales en un sistema de
ecuaciones lineales introduciendo variables de holgura.

2.- Se vuelve a escribir la función objetivo


P = C1X1 + C2X2 + … + CnXn
En la forma:
-C1X1 – C2X2 - … - CnXn + P = 0
Donde todas las variables estan en la izquierda y el coeficiente de P es + 1

3.- Se escribe la matriz aumentada asociada con este sistema de ecuaciones


lineales
RESUMEN DEL METODO DE SIMPLEX

63
1.- Se plantea la tabla símplex inicial

2.- Se determina si se ha alcanzado la solución óptima examinando todas las


entradas del último renglón a la izquierda de la recta vertical:
a.- Si todas las entradas son no negativas, se ha alcanzado la solución
óptima (se continua con el paso 4)
b.- Si existe una o más entradas negativas, no se ha alcanzado la solución
óptima (se continua con el paso 3)

3.- Se realiza la operación del pivoteo: Se localiza el elemento pivote y se


convierte en un 1, dividiendo todos los elementos del renglón pivote entre el
elemento pivote. La operación del renglón se usa para convertir la columna pivote
en una columna unitaria, sumando múltiplos adecuados del renglón pivote a cada
uno de los demás renglones, conforme sea necesario (se repite el paso 2)

4.- Se determina la solución óptima: El valor de la variable principal de cada


columna unitaria está dado por la entrada que está en la columna de constantes
en el renglón que contiene al 1. Las variables correspondientes a las columnas
que no se encuentren en forma unitaria tendrán asignado el valor cero.

4.3 METODO DE LAS DOS FASES

64
El procedimiento consiste en resolver el modelo en dos etapas o fases. En la
primera, se busca obtener una SBF del modelo aumentado, que no incluya
variables artificiales. Cuando en esta solución básica factible del MA, todas las
variables artificiales valen cero, ella es una solución básica factible inicial del
Modelo original y a partir de ahí se inicia la segunda fase del método símplex.
Pero puede ocurrir que en la fase 1 no sea posible extraer todas las variables
artificiales de la solución básica, presentándose los casos de: restricción
redundante analíticamente, solución infactible, inexistencia de solución;
situaciones que discutiremos más adelante.

Veamos cual es el procedimiento en cada fase del algoritmo.

Fase 1

Empieza con una solución básica factible inicial artificial y equivale al paso inicial
del método símplex que conocemos, ya que en ella se trata de hallar una SBFI del
modelo original.

Para propiciar que las variables artificiales tomen el valor de cero, se construya
una función objetivo que reemplaza provisionalmente a la del modelo original.
Esta nueva función se forma con la suma de las variables artificiales y el objetivo
es minimizar la suma de ellas. Es importante aclarar que el objetivo de la fase 1,
siempre es minimizar la suma de las variables artificiales, aunque el objetivo del
modelo original sea maximizar o minimizar.

Fase 2

Consiste en buscar la solución óptima del modelo original partiendo de la SBFI


hallada en la Fase 1. Equivale a los pasos 1 y 2 del método símplex.

Para iniciar la Fase 2 se toma el tablero final de la Fase 1 y se le escribe la


función objetivo original del problema, en lugar de la provisional que habíamos

65
escrito para iniciar la Fase 1. Enseguida se actualizan la fila Cj y la columna CB,
para luego recalcular los valores Zj y Ej, así como el valor Z. A partir de este
tablero se continúa el Método Símplex para la búsqueda de la solución óptima,
considerando el objetivo del problema original.

Ejemplo de aplicación del modelo de las dos fases

Supóngase que deseamos hallar la solución óptima del modelo:

FUNCION OBJETIVO: Max P = 100x1 + 90x2

Sujeto a: 6X1 + 4X2 ≥ 24

20X1 + 8X2 ≤ 160

3X1 + 5X2 ≥ 15

X2 ≤ 5

X1, X2 ≥ 0

Escribimos el modelo en formato estándar y le agregamos las variables artificiales


necesarias, para obtener el siguiente modelo ampliado:

Max P = 100X1 + 90X2 + 0E1 + 0H2 + 0E3 + 0H4

Sujeto a: 6X1 + 4X2 – E1 + A1 = 24

20X1 + 8X2 + H2 = 160

3X1 + 5X2 - E3 + A3 = 15

X2 + H4 =5

Fase 1 de la solución

66
Vamos a determinar la solución óptima del Modelo Aumentado, la cual será la
SBFI del modelo original. Para ello planteamos la nueva función objetivo, así:

P1= A1 + A2; que vamos a minimizar.

Por lo tanto el modelo por resolver queda:

Mín P1 = A1 + A2

Sujeto a: 6x1 + 4x2 – E1 + A1 = 24

20X1 + 8X2 + H2 = 160

3X1 + 5X2 – E3 + A3 = 15

X2 + H4 = 5

La tabla inicial para resolver este modelo es:

Tabla 0 Fase I

Cj 0 0 0 0 0 0 1 1
CB X1 X2 E1 H2 E3 H4 A1 A3 solución XB
1 6 4 -1 0 0 0 1 0 24 A1
0 20 8 0 1 0 0 0 0 160 H2
1 3 5 0 0 -1 0 0 1 15 A3
0 0 1 0 0 0 1 0 0 5 H4
Zj 9 9 -1 0 -1 0 0 0 0 Z1

Ej -9 -9 1 0 1 0 0 0

Ahora procedamos con el Símplex, para buscar la solución óptima del modelo
aumentado. Como el objetivo es minimizar, la variable de entrada puede ser X1 ó
X2 pues ambas tienen el efecto neto más negativo. Seleccionamos arbitrariamente
a X1 como variable de entrada. La variable de salida será A1 como se indica a la
derecha de la tabla 0.

67
La nueva tabla es:

Tabla 1 Fase I

Cj 0 0 0 0 0 0 1 1
CB X1 X2 E1 H2 E3 H4 A1 A3 solución XB
0 1 2/3 -1/6 0 0 0 1/6 0 4 X1
0 0 -16/3 10/3 1 0 0 -10/3 0 80 H2
1 0 3 1/2 0 -1 0 -1/2 1 3 A3
0 0 1 0 0 0 1 0 0 5 H4
Zj 0 3 1/2 0 -1 0 -1/2 1 3 Z1
Ej 0 -3 -1/2 0 1 0 3/2 0

Esta solución es mejorable entrando a X2 y sacando a A3, con lo cual se obtiene


la tabla siguiente:

Tabla 2 Fase I

Cj 0 0 0 0 0 0 1 1
CB X1 X2 E1 H2 E3 H4 A1 A3 solución XB
0 1 0 -5/18 0 2/9 0 5/18 -2/9 10/3 X1
0 0 0 38/9 1 -16/9 0 -38/9 16/9 256/3 H2
0 0 1 1/16 0 -1/3 0 -1/6 1/3 1 X2
0 0 0 -1/6 0 1/3 1 1/6 -1/3 4 H4
Zj 0 0 0 0 0 0 0 0 0 Z1
Ej 0 0 0 0 0 0 1 1

68
La tabla actual representa la solución óptima de la fase 1 del Modelo Aumentado,
ya que todos los evaluadores de la fila cero son no positivos (además, el valor de
Z1 es cero). Como todas las variables artificiales están fuera de la base, esta
solución es una SBFI para el modelo original y podemos continuar con la fase
siguiente.

Obviamente la eliminación no debe efectuarse cuando la variable artificial,


corresponde a una restricción de igualdad, pues en ese caso no hay variable de
holgura.

Actualizando el renglón de Cj y la columna CB, para luego recalcular los valores


Zj y Ej; así como el valor de Z; y eliminando las columnas de A1 y A2 obtenemos
la nueva tabla, así:

Fase 2 de la solución

Tabla 3(Max)

Cj 100 90 0 0 0 0
CB X1 X2 E1 H2 E3 H4 solución XB
100 1 0 -5/18 0 2/9 0 10/3 A1
0 0 0 38/9 1 -16/9 0 256/3 H2
90 0 1 1/6 0 -1/3 0 1 X2
0 0 0 -1/6 0 1/3 1 4 H4
Zj 100 90 -115/9 0 -70/9 0 1270/3 Z2
Ej 0 0 115/9 0 70/9 0

69
Y continuando con el procedimiento del Símplex, entra E1 y sale X2, con lo cual
queda:

Tabla 4

Cj 100 90 0 0 0 0
CB X1 X2 E1 H2 E3 H4 solución XB
100 1 5/3 0 0 -1/3 0 5 X1
0 0 -76/3 0 1 20/3 0 60 H2
0 0 6 1 0 -2 0 6 E1
0 0 1 0 0 0 1 5 H4
Zj 100 500/3 0 0 -100/3 0 500 Z
Ej 0 -230/3 0 0 100/3 0

Entra E3 sale H2

Tabla 5

Cj 100 90 0 0 0 0
CB X1 X2 E1 H2 E3 H4 solución XB
100 1 2/5 0 1/20 0 0 8 X1
0 0 -19/5 0 3/20 1 0 9 E3
0 0 -8/5 1 3/10 0 0 24 E1
0 0 1 0 0 0 1 5 H4
Zj 100 40 0 5 0 0 800 Z
Ej 0 50 0 -5 0 0

Entra X2 sale H4

Tabla 6

Cj 100 90 0 0 0 0
CB X1 X2 E1 H2 E3 H4 solución XB
100 1 0 0 1/20 0 -2/5 6 X1

70
0 0 0 0 3/20 1 19/5 28 E3
0 0 0 1 3/10 0 8/5 32 E1
90 0 1 0 0 0 1 5 X2
Zj 0 0 0 5 0 50 1050 Z
Ej 0 0 0 -5 0 -50

De esta manera podemos encontrar los siguientes tipos de soluciones:

TIPOS DE SOLUCION QUE PUEDEN OBTENERSE POR EL METODO DE LAS


DOS FASES

La fase 1 termina cuando se presente la inmejorabilidad (optimalidad) de la


función objetivo formada por la suma de las variables artificiales. Pero no siempre
que la función objetivo sea inmejorable su valor es igual a cero, ya que puede
presentarse, el caso de que Z1 = 0 habiendo variables artificiales en la base,
obviamente con valor cero. Por otra parte, también puede tenerse inmejorabilidad
con Z1 > 0, lo cual implica que hay al menos una variable artificial en la base, que
no pudo expulsarse. Cada uno de estos casos da lugar a un tipo de solución,
como lo aprenderemos enseguida.

Caso 1: P1 =0; y no hay variables en la solución básica

Este es el caso ya discutido en la cual se ha encontrado una SBFI para el modelo


original y puede procederse con la fase 2, a partir de esta solución. Al término de
esta fase podemos hallar una solución de uno de los tres tipos de solución óptima
que hemos mencionado: única, múltiple, ilimitada.

Caso 2: P1=0 y hay variable artificiales en la base

El valor de las variables artificiales de la base obviamente debe ser cero. Antes de
continuar con la fase 2 debemos intercambiar "Forzadamente" estas variables

71
artificiales por variables reales no básicas. Puede comprobarse que el intercambio
es posible sólo en los casos en que el coeficiente de remplazo entre las variables
artificial saliente y la variable real candidata a entrar, sea diferente de cero.

Solución Degenerada

Si es posible intercambiar todas las variables artificiales por variables reales


(originales o de holgura), se genera una solución básica factible inicial degenerada
para el modelo original y a partir de ello se puede continuar con la fase 2, sin
ningún cambio adicional.

Restricciones redundantes analíticamente

Cuando no se puedan expulsar forzadamente todas las variables artificiales de la


solución, las restricciones asociadas a las variables artificiales que no se pudieron
forzar a salir de la solución óptima, son restricciones redundantes analíticamente
y se pueden eliminar de la tabla entes de proceder a la fase 2. La redundancia
analítica implica que esa restricción se puede expresar como una combinación
lineal de las otras restricciones involucradas en la solución óptima y por ello no es
necesario que aparezca.

Caso 3: P1>0

Es lógico pensar que para que esto ocurra, deben tenerse variables artificiales
básicas con valor positivo. Veremos enseguida que esta situación es indicio de
que el modelo tiene solución inconsistente, ya sea por no existir una solución o por
ser infactible.

Solución Infactible

Si es posible intercambiar forzadamente a todas las variables artificiales básicas


por variables reales, el modelo original presentará solución infactible y no se
continúa con la fase 2. La infactibilidad se hace patente en el hecho de que las
variables reales que reemplazan a las artificiales, toman valores negativos.

72
Inexistencia de una solución

Si el intercambio es parcial, quedarán todavía variables artificiales en la solución y


esto indica que no fue posible hallar una SBFI para el modelo original, lo cual nos
permite concluir que el modelo no tiene solución.

En resumen, como ya se mencionó en el método gráfico, un modelo de


Programación Lineal tiene solución de alguno de los siguientes tipos:

1. Optima única.

2. Optima múltiple.

3. Optima Ilimitada.

4. Infactible.

5. Inexistente.

73
4.4 CAMBIOS DE VARIABLE.

En algunas ocasiones en las que nos encontramos con un problema en el que


aparecen variables acotadas inferiormente, puede ser conveniente someter dichas
variables a un cambio de variable para que queden de la forma:

Xi ≥ 0

Y poder aplicar el método símplex. Es decir, lo que vamos a buscar es que sólo
quede la restricción de positividad.

74
CAPITULO V
ANALISIS DE SENSIBILIDAD

75
La tabla que nos proporciona el método símplex es una gran fuente de información
sobre los datos de nuestro problema, siempre y cuando los sepamos descifrar.
Para ello realizaremos lo que se denomina análisis de sensibilidad.
Una de las cosas más importantes que nos proporciona este análisis, es la de
conocer el intervalo de variación de los parámetros del problema, sin que cambie
nuestra solución óptima.

5.1 COSTOS RELATIVOS O SOMBRA


Los coeficientes que en el momento de obtenerse la solución óptima tiene la tabla
en la L0, son los costes relativos o sombra. Representan el empeoramiento o
disminución que tendría la función objetivo por el incremento unitario de una
variable no básica, al introducir en la base.
Si se modifican los coeficientes de nuestra función objetivo, es evidente que
nuestra solución seguirá siendo factible. En un principio no sería necesario
comenzar desde el origen del algoritmo, sino simplemente sustituirlos y continuar
con el procedimiento conocido.
Variables no básicas
Si el coeficiente de una variable no básica se incrementa, llegaría un momento en
el que formaría parte de nuestra función objetivo.

Si tenemos lo siguiente:
FUNCION OBJETIVO: Max 4X1 + 5X2 + 9X3 + 11X4

76
Supongamos que X2 = 0.
Vamos a ver cuánto podríamos variar el coeficiente de la variable X2 sin que se
modifique el valor óptimo de nuestra función objetivo:

FUNCION OBJETIVO: Max 4 X1 + (5 + p2) X2 + 9 X3 + 11 X4


p2 ≥ 0
En sucesivas iteraciones llegaríamos a una L0:

X1 X2 X3 X4 X5 X6 X7 bi
L0 0 3/7 – P 0 11/7 13/7 0 5/7 695/7

Si p2 < 3/7, no varia nada nuestro problema.

Si p2 = 3/7, entonces quiere decir que podría obtener otra solución en la que X2
entrase en la base. El valor de nuestra función objetivo no variaría.

Si p2 > 3/7, el coeficiente de la L0 de X2 sería negativo y X2 entraría en la base,


con lo que el valor que obtendríamos para nuestra función objetivo será mayor.
Por lo tanto, los coeficientes en la L0 en la solución optimal representan el
incremento máximo que puede tomar el coeficiente de una variable no básica para
entrar en la base.
En nuestro caso, por ejemplo en el caso de la variable X2, ésta no entrará en la
base mientras su coeficiente no sea superior a:

5 + 3 / 7 = 38 / 7

Si tuviésemos, por imposición de nuestro problema, que introducir dos unidades


del producto 2 (representado por la variable X2), partiendo de la solución final
tendríamos:

77
X1 X2 X3 X4 X5 X6 X7 bi
L0 0 3/7 0 11/7 13/7 0 5/7 695/7

Entonces la función objetivo disminuiría en 2 * 3 / 7 siendo 2 las unidades a


producir y 3 / 7 el valor de X2 en la L0.

Variables básicas
Ahora vamos a ver hasta cuánto pueden variarse los coeficientes de variables
básicas de forma que continuemos teniendo una solución óptima. Tomando el
ejemplo anterior, las variables básicas son X1, X3 y X6.
Evidentemente, si aumentamos los coeficientes de las variables básicas, nuestra
función objetivo aumentará.
Entonces, si por ejemplo incrementamos en p1 el coeficiente de X1 y realizamos
los procesos del símplex, obtendríamos la siguiente tabla:

X1 X2 X3 X4 X5 X6 X7 bi
L0 0 3/7 + 0 11/7 – 13/7 – 0 5/7 - 5 695/7
5/7Pi 5/7Pi 5/7Pi +
50/7P1

Como vimos el valor de X1 era 50 / 7, entonces al aumentar p1 al coeficiente de


X1, aumenta 50 / 7 p1 el valor de nuestra función objetivo.
Observación:
Los valores de los coeficientes de las variables no básicas Xi de la LO se pueden
calcular haciendo:
L0´de Xi = L0 de Xi + (Lj de Xi) * pj
Siendo:
L0´de Xi: el coeficiente nuevo de la fila L0 columna Xi.
L0 de Xi: el coeficiente viejo de la fila L0 columna Xi.

78
Lj de Xi: el coeficiente de la fila Lj columna Xi correspondiente a la variable básica
modificada Xj.
Xi: es una variable no básica.
pj: indica el incremento del coeficiente de la variable básica modificada Xj.
Lo que nos interesa es determinar un intervalo de variación de pj (en nuestro caso
p1) en el cual no cambie nuestra solución optimal.
Para ello nos fijamos en los coeficientes correspondientes a las variables no
básicas de la L0, ya que para que continúe óptima nuestra solución, han de ser
menores que cero. Es decir, en nuestro caso:

3/7 + 5/7 p1 < 0 entonces 5/7 p1 < -3/7 entonces p1 < -3/5
11/7 – 5/7 p1 < 0 entonces 5/7 p1 > 11/7 entonces p1 > 11/5
13/7 + 10/7 p1 < 0 entonces 10/7 p1 < -13/7 entonces p1 < -13/10
5/7 – 1/7 p1 < 0 entonces 1/7 p1 > 5/7 entonces p1 > 5

Luego el intervalo será:


-3/5 ≤ p1 ≤ 11/5

En este intervalo la función objetivo se incrementará en 50/7 de p1.

Si en lugar de tener un beneficio de 4 en el problema de fabricación de papas


congeladas (ver anexo I) hubiese tenido un beneficio de 6:
p1 = 6- 4 =2
Que está dentro del intervalo
-3/5 ≤ p1 ≤ 11/5
Entonces la solución será más óptima y el valor de nuestra función objetivo será:
695/7 + 50/7 * 2 = 795/7

79
5.2. LAS VARIABLES DE HOLGURA.
El valor de una variable de holgura, representa el sobrante de la restricción a la
que está asociada. Por ello, una variación en el valor de una variable de holgura
implica una modificación en los términos independientes de las restricciones.
Variables básicas:
El valor de una variable de holgura BÁSICA representa la disminución máxima que
puede tener la restricción a la que está asociada, sin que varíe nuestra base
factible. Es decir, refleja el exceso que tenemos en la restricción correspondiente.
En nuestro ejemplo de las papas tenemos:
X6 = 325/7
Que corresponde a la restricción
7 X1 + 5 X2+ 3 X3 + 2 X2 + X6 = 120

Si incrementamos el valor de nuestra restricción en 120 + p6, mientras p6> -325/7,


nuestra solución seguirá siendo óptima.
Para p6 = -325/7 la solución sería degenerada.
Las modificaciones producidas en la tabla solución de nuestro problema, por la
variación en el valor de una variable de holgura básica, es la misma que la que se
produce en una variable no básica.
Por ser más representativo este último caso (variación de la variable no básica),
estudiaremos sus modificaciones.
Variables no básicas:
Las modificaciones en los coeficientes bi de las líneas correspondientes a las
restricciones, están determinados por las variables de holgura. Vamos a ver qué

80
sucede si modificamos un coeficiente correspondiente a una restricción cuya
variable de holgura asociada es no básica.
Si en la restricción:
X1 + X2 + X3 + X4 + X5 = 15
Hacemos
15 + p0
Al realizar el proceso del método símplex el valor p0 aparecerá en todas las
casillas bi de nuestra tabla solución:
bi

L 695/7 – 13/7 p0
0
L 50/7 – 10/7 p0
1
L 325/7 – 61/7 p0
2
L 55/7 – 3/7 p0
3

Estos valores de la columna bi se obtienen de la siguiente forma:


bi’ de Lj = bi de Lj + Xh de Lj * pk donde:
bi’ de Lj: es el valor nuevo del coeficiente bi de la línea Lj.
bi de Lj: es el valor viejo del coeficiente bi de la línea Lj.
Xh de Lj: es el valor del coeficiente de la variable Xh en la línea Lj.
pk: es el parámetro asociado a la variable de holgura que indica la variación del
valor del término independiente de la restricción.

Para que la solución siga siendo factible, todos estos valores nuevos, de la
columna bi (bi’), han de ser mayores o iguales a cero; sin tener en cuenta el de la
L0, que lo será por definición.
50/7 + 10/7 p0 ≥ 0 entonces p0 ≥ -5
325/7 – 61/7 p0 ≥ 0 entonces p0 ≤ 325/61
55/7 – 3/7 p0 ≥ 0 entonces p0 ≤ 55/3

81
Luego:
-5≤ p0≤325/61

Que será el intervalo p0 fuera del cual la solución deja de ser factible.
Así, en nuestro ejemplo, se podrá incrementar la cantidad de productos
almacenados hasta:

X1= 50/7 + 10/7 * 325/61


X3= 55/7 – 3/7 * 325/61
X6= 325/7 – 61/7 + 325/61
FUNCION OBJETIVO= 695/7 + 13/7 + 325/61

Si hubiésemos variado todos los coeficientes de las restricciones correspondientes


a las variables de holgura no básicas, habríamos obtenido lo siguiente:
L0 695/7 + 13/7 p0 + 5/7 p2 ≥ 0
L1 50/7 + 10/7 p0 – 1/7 p2 ≥ 0
L2 325/7 – 61/7 p0 + p1 + 4/7 p2 ≥ 0
L3 55/7 – 3/7 p0 + 1/7 p2 ≥ 0
Entonces:
- 10/7 p0 + 1/7 p2 ≤ 50/7
+ 61/7 p0 – p1 – 4/7 p2 ≤ 325/7
+ 3/7 p0 – 1/7 p2 ≤ 55/7

Con este sistema se pueden hallar las variaciones que se pueden llevar a cabo sin
que se varíe la base.

82
5.3. INCLUSIÓN DE VARIABLES.
Vamos a pasar a estudiar la posible inclusión de una nueva variable en nuestro
problema. Para ello nos basaremos en un ejemplo. Supongamos el siguiente
problema:
FUNCION OBJETIVO: Max 3 X1 + 5 X2
Sujeto a: X1 ≤ 4
3 X1 + 2 X2 ≤ 18
Cuya solución final es:
X1 X2 X3 X4 bi
L0 9/2 0 0 5/2 45
L1 1 0 1 0 4
L2 3/2 1 0 ½ 9

Vamos a ver qué sucede si nos aparece una nueva variable X5 que nos
transforme el problema en:
FUNCION OBJETIVO: Max 3 X1 + 5 X2 + 7 X5
Sujeto a: X1 + X5≤ 4
3 X1 + 2 X2 + 2 X5 ≤ 18
El coeficiente correspondiente a esta variable en la L0 será:
(A) * (B) + m = n
Siendo:
A: matriz fila de los coeficientes de las variables de holgura en la L0
B: matriz columna de los coeficientes (de la nueva variable) incluidos en las
restricciones antiguas.
m: coeficiente (de la nueva variable) incluido en la función objetivo antigua.

83
n: coeficiente de la nueva variable en la L0 de la nueva tabla solución.

Así tendremos:
(0,5/2) * 1 - 7 =2
2

Además, también podemos calcular cuáles son los coeficientes de la nueva


variable en las casillas de la tabla, correspondientes a las restricciones. El
procedimiento será:
(A’) * (B) = (C)
Donde:
A’: matriz de los coeficientes correspondientes a las variables de holgura en las
líneas de las restricciones en la tabla solución del problema inicial.
B: matriz columna de los coeficientes (de la nueva variable) incluido en las
restricciones antiguas.
C: matriz de los coeficientes correspondientes a la nueva variable en las líneas de
las restricciones en la tabla de nuestro problema modificado.
1 0 * 1 = 1
0 ½ 2 1

Por tanto, la tabla nos quedaría:


X1 X2 X3 X4 X5 bi
L0 9/2 0 0 5/2 -2 45
L1 1 0 1 0 1 4
L2 3/2 1 0 1/2 1 9

Como el coeficiente de la nueva variable en la L0 nos ha salido negativo, será


necesario continuar aplicando el método símplex a esta nueva tabla. Así
obtenemos:
X1 X2 X3 X4 X5 bi
L0 13/2 0 2 5/2 0 53
L1 1 0 1 0 1 4
L2 1/2 1 -1 1/2 0 5
La solución por tanto sería:

84
X2 = 5
X5 = 4

5.4. MODIFICACIÓN DE COEFICIENTES DE VARIABLE NO


BÁSICA EN RESTRICCIONES.
La modificación de un problema de programación lineal, mediante el cambio de
alguno o varios coeficientes en las restricciones correspondientes a una variable
no básica, lo vamos a analizar basándonos en un ejemplo.
Sea el problema:
FUNCION OBJETIVO: Max 3 X1 + 5 X2
Sujeto a: X1 ≤ 4
3 X1 + 2 X2 ≤ 18

La solución óptima de este problema será:


X1 X2 X3 X4 bi
L0 9/2 0 0 5/2 45
L1 1 0 1 0 4
L2 3/0 1 0 ½ 9

Vamos a modificar nuestro problema inicial cambiando los coeficientes de las


restricciones de la variable no básica X1.
Cambiaremos los coeficientes (1,3) por (2,2).
El coeficiente correspondiente a la variable modificada en la L0 será:
(A) * (B) + m = n

Siendo:
A: matriz fila de los coeficientes de las variables de holgura en la L0.
B: matriz columna de los coeficientes nuevos (de la variable modificada)
m: coeficiente (de la variable modificada) en la función objetivo.
n: coeficiente nuevo de la variable modificada en la L0 de la nueva tabla solución.

Así tendremos:
(0,5/2) * 2 -3=2

85
2

Además, también podemos calcular cuáles son los nuevos coeficientes de la


variable modificada en las casillas de la tabla, correspondientes a las líneas de las
restricciones. El procedimiento será:
(A’) * (B) = C

Donde
A’: matriz de los coeficientes correspondientes a las variables de holgura en las
líneas de las restricciones en la tabla solución del problema inicial.
B: matriz columna de los coeficientes nuevos (de la variable modificada).
C: matriz de los coeficientes correspondientes a la variable modificada en las
líneas de las restricciones en la tabla de nuestro problema modificado.
1 0 * 2 = 2
0 ½ 2 1

La nueva tabla quedaría:


X1 X2 X3 X4 bi
L0 2 0 0 5/2 45
L1 2 0 1 0 4
L2 1 1 0 ½ 9
Nota: como el valor en la L0 de la variable modificada no es negativo, el valor de
nuestra función objetivo no variará.

Si en lugar de hacer el cambio (2,2) hubiésemos hecho el cambio (10,1)


habríamos obtenido:
X1 X2 X3 X4 bi
L0 -1/2 0 0 5/2 45
L1 10 0 1 0 4
L2 ½ 1 0 1/2 9
Por lo cual deberíamos de continuar con el proceso simplex para obtener la
solución óptima de este nuevo problema.

86
5.5. AÑADIR NUEVAS RESTRICCIONES.
En el caso de tener un problema de programación lineal y querer modificarlo
incluyendo nuevas restricciones, en lugar de volver a resolverlo, podremos realizar
un análisis de sensibilidad y modificar la tabla anteriormente obtenida para
encontrar una solución óptima a nuestro nuevo problema.
Vamos a ilustrarlo con el siguiente ejemplo:

FUNCION OBJETIVO: 5 X1 + 3 X2
Sujeto a: 3 X1 + 5 X2 ≤ 15
5 X1 + 2 X2 ≤ 10

La solución óptima se este problema será:


X1 X2 X3 X4 bi
L0 0 0 5/19 16/19 235/19
L1 0 1 5/19 -3/19 45/19
L2 1 0 -2/19 5/19 20/19

Si añadimos la restricción:
X2≤ 1

Lo que hacemos es añadir esta circunstancia en la tabla.


X1 X2 X3 X4 X5 bi
L0 0 0 5/19 16/19 0 235/19
L1 0 1 5/19 -3/19 0 45/19
L2 1 0 -2/19 5/19 0 20/19
L3 0 1 0 0 1 1

Hacemos los cambios necesarios para continuar manteniendo la base que


teníamos.

Haciendo los cambios para eliminar el <<1>> de L3.


X1 X2 X3 X4 X5 bi
L0 0 0 5/19 16/19 0 235/19

87
L1 0 1 5/19 -3/19 0 45/19
L2 1 0 -2/19 5/19 0 20/19
L3 0 0 -5/19 3/19 1 -26/19

Esto nos proporciona una solución no factible. Es decir, esta solución no vales.
Más adelante veremos cómo modificar esta solución para intentar encontrar una
solución factible y óptima.

88
CAPITULO VI
TEOREMA DEL METODO DUAL

CAPITULO VI DUALIDAD

Todo problema de programación lineal tiene un problema relacionado con él, al


cual se le llama problema dual o, simplemente, el dual.

89
En un problema original de programación lineal, denominado problema primario o,
simplemente, primario, el dual puede formularse con la información contenida en
el primario. El problema dual es importante por muchas razones teóricas y,
además por motivos prácticos. Una de sus propiedades es que, al ser resuelto
suministra información indispensable sobre la solución del problema primario.
De manera análoga, la solución del primario da toda la información esencial
relativa a la solución del problema dual. En un problema de programación lineal,
su solución puede determinarse resolviendo el problema original o su dual.
Las propiedades estructurales de los dos problemas pueden provocar una
decidida preferencia sobre cuál problema solucionar. Aun con los métodos
computarizados, las eficiencias del cómputo pueden provenir de la solución de una
forma de problema.

6.1 TEOREMA FUNDAMENTAL DE LA DUALIDAD


Un problema primal tiene solución si y sólo si el problema dual la tiene. Además, si
existe una solución, entonces:

1.- Las funciones objetivo de los problemas primal y dual alcanzan el mismo valor
óptimo

2.- La solución óptima del problema primal aparece debajo de las variables de
holgura del último renglón de la tabla símplex final relacionada con el problema
dual.

FORMULACION DEL PROBLEMA DUAL


Los parámetros y estructuras de este problema proporcionan toda la información
necesaria para formularlo. La figura 6.1 describe la formulación de un problema de

90
maximización y su dual. A continuación se hacen algunas observaciones acerca
de las relaciones entre estos problemas primarios y duales

Problema primario Problem a dual

Maximice Minimice

2x1 + 4x2
800y1 + 350y2 + 125y3

Sujeto a Sujeto a

5x1 + 4x2 800 5 y1 +3 y2 -4 y3 2


(1)
3x1 + 2x2 350 4 y1 +2 y2 +3 y3 4
(2)
-4x1 + 3x2 125
(3) -4x1 + 3x2 0

Figura 6.1

1.- El problema primario es un problema de maximización y el dual es un problema


de minimización. El sentido de la optimización es siempre el opuesto de los
correspondientes problemas primarios y duales.

2.- El problema primario consta de dos variables y dos restricciones, mientras que
el dual tiene tres variables y dos restricciones. El número de restricciones en el
problema primario siempre es igual a la de las variables del dual.

3.- Los coeficientes de la función objetivo para X1 y X2 en el problema primario


son iguales a las constantes del miembro derecho para las restricciones (1) y (2)
en el dual. El coeficiente de la función objetivo para la j – ésima variable del
problema primario es igual a la constante del miembro derecho para la restricción j
– ésima del dual.
4.- Las constantes del miembro derecho para las restricciones (1) y (3) en el
problema primario son iguales a los coeficientes de la función objetivo para las
variables del dual y1, y2, y3. La constante del miembro derecho para la i – ésima

91
restricción del problema primario es igual al coeficiente de la función objetivo para
la i – ésima variable del dual.

5.- Los coeficientes de las variables para la restricción (1) del problema primario
son iguales a los de la columna para la variable dual y1. Los coeficientes de las
variables para las restricciones (2) y (3) del problema primario son iguales a los
coeficientes de columna de las variables del dual y2 Y y3. Los coeficientes de aij
en el problema primario son la transpuesta de los del dual. Es decir, los
coeficientes del renglón del problema primario se convierten en los coeficientes de
la columna en el dual y a viceversa.

Problema de maximización Problema de minimización

Número de restricciones Número de variables


Restricción (≤) Variable no negativa
Restricción (≥) Variable no positiva
Restricción (=) Variable no restringida
Número de variables Número de restricciones
Variable no negativa Restricción (≥)
Variable no positiva Restricción (≤)
Variable no restringida Restricción (=)
Coeficiente de la función objetivo Constante del miembro
para la j – ésima variable derecho para la restricción j – ésima
Constante del miembro derecho para Coeficiente de la función
la i – ésima restricción objetivo para la variable i
Coeficiente en restricción i para la Coeficiente en la restricción
Variable j j para la variable i
Tabla 6.2

Si bien este problema tiene un problema primario que es un tipo de maximización,


el primario puede ser un problema de minimización. Las reglas de transformación
en realidad deberían enunciarse según la forma de hacer la transformación de un

92
problema de maximización en el correspondiente de minimización o a la inversa.
La tabla 6.2 sintetiza la simetría de los dos tipos de problema y sus relaciones.
Las relaciones 4 y 8 indican que una restricción de igualdad en un problema
corresponde a una variable sin restricción en el otro. Está ultima puede adoptar un
valor positivo, negativo o cero. De igual manera, las relaciones 3 y 7 denotan que
un problema puede tener variables no positivas (por ejemplo xj ≤ 0). Las variables
sin restricción y no positivas violan al parecer la condición de no negatividad del
método símplex. Aunque eso es cierto, en el caso de los problemas que
contengan cualquiera de esos tipos especiales de variables se cuenta con
métodos que nos permiten ajustar la formulación para cumplir con dicha condición.

93
CAPITULO VII
ALGORITMO SÍMPLEX DUAL

Este algoritmo que vamos a detallar a continuación presenta una serie de ventajas
prácticas sobre el símplex normal, siendo algunas de ellas las siguientes:

94
Permite eliminar una base inicial infactible en el caso de restricciones del tipo = ó
≥, sin necesidad de introducir variables artificiales.

Presenta ventajas en algunos casos de análisis de sensibilidad, como la adición


de nuevas restricciones o nuevas variables.
El método explica lo que hemos visto en la comparación del primal y el dual.
Los criterios I y II en el símplex dual sirven para lo contrario que en el simples
normal.
El criterio I va buscando la factibilidad, mientras que el criterio II busca la
optimalidad.
La base factible inicial para el método símplex dual no está sujeta a ninguna
restricción. A diferencia de lo que ocurría en el método del símplex.
Vamos a explicar este método aplicando el dual al siguiente problema:

Problema:
FUNCION OBJETIVO: Min 160 X1 + 120 X2 + 280 X3
Sujeto a: 2 X1 + X2 + 4 X3 ≥ 10
2 X1 + 2 X2 + 2 X3 ≥ 15
X1, X2; X3 ≥ 0
Añadimos loas variables de holgura, y nos queda:
Sujeto a: 2 X1 + X2 + 4 X3 – X4 = 10
2 X1 + 2 X2 + 2 X3 – X5 = 15
Formamos la tabla buscando una base factible del dual.
X1 X2 X3 X4 X5 bi
L0 -160 -120 -280 0 0 0
L1 -2 -1 -4 1 0 -10
L2 -2 -2 -2 0 1 -15

Nota: Obsérvese que hemos cambiado de signo los coeficientes de las líneas L1 y
L2 para obtener una base, que será una base factible de este método. Aquí no nos
importa que los valores de las variables de holgura sean negativos.

95
CRITERIO I: (Factibilidad)
Este criterio nos dice que saldrá de la base aquella variable que sea más
infactible.
En este caso saldrá d la base X5, que tiene el valor de –15.
En el caso de que todos los bi sean positivos finaliza el algoritmo y por tanto
habremos obtenido la solución óptima.

CRITERIO II (Optimalidad)
Este criterio selecciona aquella variable que al entrar en la base optimiza más la
función objetivo, saliendo de la base la variable elegida en el criterio I.

Cj/aij para todo Cj< 0 y para todo aij < 0

Siendo:
Cj: coeficiente de la variable Xj en LO.
aij: coeficiente correspondiente a la variable Xj en la línea L1. La variable básica
Xh se encuentra en la línea L1.

Si todos los aij son positivos, entonces el problema primal no tiene solución
factible y, por tanto, el dual no tiene solución acotada.
Tomaremos el valor máximo de estos cocientes cuando el problema sea
maximizar y el mínimo de ellos cuando se trate de minimizar.
Volviendo a nuestro ejemplo tendremos:
X1 X2 X3 X4 X5 bi
L0 -160 -120 -280 0 0 0
L1 -2 -1 -4 1 0 -10
L2 -2 -2 -2 0 1 -15
Entra X2 y sale X5
Hacemos los cálculos, y como nuestro problema es de minimizar tomaremos el
mínimo de ellos:

Min (Cj/aij) = Min (-160/-2, -120/-2, -280/-2) = Min (80, 60, 140) =60

96
60 = -120/-2; -120≡ C2

-2≡ a22
Entra la variable X2

Realizando el cambio de base nos queda:


X1 X2 X3 X4 X5 bi
L0 -40 0 -160 0 -60 900
L1 -1 0 -3 1 -1/2 -5/2
L2 1 1 1 0 -1/2 -15/2

Entra X1 y sale X4
Operando:
X1 X2 X3 X4 X5 bi
L0 0 0 -40 -40 -40 1000
L1 1 0 3 -1 1/2 5/2
L2 0 1 -2 1 -1 10/2

Aquí vemos que no podemos aplicar el criterio I, luego el problema termina, siendo
la solución:
X1 = 5/2
X2 =5
X3 = 0

7.1 ANÁLISIS DE SENSIBILIDAD.


El análisis de sensibilidad consiste en ver las variaciones que se pueden producir
en la solución óptima al variar alguna de las condiciones iniciales del problema.
Como pueden ser:

a) Coeficientes de las variables.

b) Introducción de nuevas variables.

97
c) Adición de nuevas restricciones.

d) Etc.

Vamos a verlo con un ejemplo:


Supongamos el problema del fabricante de papas (ver anexo I).
FUNCION OBJETIVO: Max 4 X1 + 5 X2 + 9 X3 + 11 X4
Sujeto a: X1 + X2 + X3 + X4 ≤ 15
7X1 + 5X2 + 3X3 + 2X4 ≤ 120
3X1 + 5X2 + 10X3 + 13X4 ≤100

Cuya tabla final queda:

X1 X2 X3 X4 X5 X6 X7 bi
L0 0 3/7 0 11/7 13/7 0 5/7 695/7
L1 1 5/7 0 -5/7 10/7 0 -1/7 50/7
L2 0 -6/7 0 13/7 -61/7 1 4/7 325/7
L3 0 2/7 1 12/7 3/7 0 1/7 55/7

Calculamos su dual:
FUNCION OBJETIVO: Min 15 Y1 + 120 Y2 + 100 Y3
Sujeto a: Y1 + 7 Y2 + 3 Y3≥ 4
Y1 + 5 Y2 + 5 Y3≥ 5
Y1 + 3 Y2 + 10 Y3≥ 9
Y1 + 2 Y2 + 13 Y3≥ 11
Cuya solución es:
Y1 = 13/7
Y2 = 0
Y3 = 5/7

98
Y4 = 0
Y5 = 3/7
Y6 = 0
Y7 = 11/7

VARIACIÓN DE LOS COEFICIENTES DE LA FUNCIÓN OBJETIVO.


1) En las variables no básicas:
Veamos la variación, por ejemplo, del coeficiente de la variable no básica X2.
Queremos saber qué valor, P2, podemos incrementar al coeficiente para que
nuestra solución continúe siendo factible.
La restricción del dual correspondiente será:

Y1 + 5 Y2 + 5 Y3 ≥ 5 + P2

Sustituyendo los valores:


P2 ≤ 3/7

Por tanto, mientras esta condición se cumpla, nuestra solución seguirá siendo
factible.

Para P2 ≥ 3/7 la solución deja de ser factible.


2) En las variables básicas:
Tomando por ejemplo, la variable básica X1 y sustituyendo los valores en la
restricción correspondiente en el dual tenemos:
13/7 + 0 + 3 * 5/7 ≥ 4 + P1
13 + 15 – 28 ≥ 7 P1
P1 ≤ 0 que no nos indica nada.

Nota: si hubiésemos tomado otra variable básica (por ejemplo X3) habríamos
obtenido el mismo resultado.

99
INTRODUCCIÓN DE UNA NUEVA VARIABLE.
La introducción de una nueva variable en el primal va a suponer incluir una
restricción en el dual. Mientras esta restricción se cumpla en el dual, la variable
nueva no entrará en la base.
Supongamos que en nuestro problema, don Francisco y doña Remedios, su
mujer, deciden producir además papas congeladas para ensalada.
Supongamos también que para cada Kg. fabricado necesita 3 horas y dos Kg. de
materia prima. Además desea venderlo a 3 pesos/Kg.
En estas condiciones nuestro modelo quedaría modificado de la siguiente manera:

FUNCIO OBJETIVO: Max 4 X1 + 5 X2 + 9 X3 + 11 X4 + 3 X8


Sujeto a: X1 + X2 + X3 + X4 + X8 ≤ 15
7X1 + 5X2 + 3X3 + 2X4 + 2X8 ≤ 120
3X1 + 5X2 + 10X3 + 13X4 + 3X8 ≤ 100

Siendo la nueva restricción en el dual la siguiente:


Y1 + 2 Y2 + 3 Y3 ≥ 3

Sustituyendo valores nos queda:


28/7 ≥ 3

Por tanto se cumple esta restricción y la variable que hemos introducido se queda
fuera de la base.
Si don Francisco desea fabricar este producto, tendrá que obtener un beneficio
unitario superior a 28/7 (provocando que la nueva variable introducida X8 entrase
en la base). Supongamos que decide que este valor sea 10. Esto quiere decir que
la restricción del dual, correspondiente a la nueva variable introducida en el primal,
es no factible y por lo tanto, la solución de ambos se modificará.
Para poder continuar aplicando el método iterativo símplex – dual necesitamos
conocer los valores de la columna, en la tabla, de la nueva variable.

100
El coeficiente de la LO (en el primal) sabemos que es el valor de la variable de
holgura del dual, correspondiente a su restricción. Y este valor será:

13/7 + 3 * 5/7 – Y8 = 10
Y8 = -6

Los nuevos coeficientes de la variable Y8 para las líneas L1, L2 y L3 serán:


a18 a15 a16 a17 a18
a28 = a25 a26 a27 * a28
a38 a35 a36 a37 a38

Donde
a15 a16 a17

A= a25 a26 a27


a35 a36 a37

A es la matriz de los coeficientes transformados de las variables de holgura y a18,


a28 y a38, son los nuevos coeficientes que la nueva variable tiene en cada una de
las restricciones.

En estas condiciones obtenemos que:


a18 = 1 * 10/7 + 2 * 0 + 3 * (-1/7) =1
a28 = 1 * (-61/7) + 2 * 1 + 3 * (4/7) = - 5
a38 = 1 * (-3/7) + 2 * 0 + 3 * (1/7) = 0
Los coeficientes serán por tanto:

X8
L0 -6
L1 1
L2 -5

101
L3 0

Por tanto, podemos aplicar el criterio1 del símplex – dual para proseguir las
iteraciones.

AÑADIR NUEVAS RESTRICCIONES.


Supongamos que en nuestro problema aparece una nueva limitación: el fabricante
no puede consumir más que 10Kw de energía eléctrica.
Para cada uno de los cuatro productos iniciales, los consumos de energía son:
X1 → 2
X2 → 9
X3 → 5
X4 → 4
Por tanto, la nueva restricción será:
2 X1 + 9 X2 +5 X3 + 4 X4 ≤ 10

Vamos a ver si se cumple para nuestra base optimal.


100/7 + 275/7 = 375/7

Por tanto no se cumple la restricción.

Introducimos una nueva variable de holgura en la restricción


2 X1 + 9 X2 + 5 X3 + 4 X4 + X9 = 10

Obtendremos una nueva base:


275/7 + X9 = 10
X9 = -205/7

Por tanto, la base queda no factible pues X9 < 0.


Nuestra solución, entonces, se modificará. Esta infactibilidad la eliminaremos
aplicando el símplex – dual a la tabla final del primal con la nueva restricción.

102
Previamente tendremos que calcular el valor de los coeficientes de la nueva línea
L4.

a4j j= 1,..,7

Haciendo las transformaciones necesarias para que


a41 = 0
a43 = 0
a46 = 0

Nos queda:

X1 X2 X3 X4 X5 X6 X7 X9 bi
L4 0 43/7 0 -22/7 -5/7 0 -3/7 1 -205/7

Con esto podemos aplicar el símplex dual para eliminar esta infactibilidad.

103

Vous aimerez peut-être aussi