Modelo Dual en Programación Lineal
Modelo Dual en Programación Lineal
VICERRECTORADO ACDÉMICO
COORDINACIÓN DE EVALUACIÓN ACADÉMICA
TRABAJO PRÁCTICO: X
CÓDIGO: 760
FECHA DE DEVOLUCIÓN:
CARRERA: MATEMÁTICA
NÚMERO DE ORIGINALES:
Pag.
1. INTODUCCION……………………………………………………. 3
2. PROGRAMACION LINEAL………………………………………. 5
2
Introducción.
Los modelos matemáticos son, los modelos Deterministas y los modelos Estocásticos.
En los modelos Deterministas se considera que los parámetros asociados al modelo
son conocidos con certeza absoluta, a diferencia de los modelos estocásticos, donde la
totalidad o un subconjunto de los parámetros tienen la distribución de probabilidades.
3
Programación entera es un término general para los modelos de programación
matemática que presentan condiciones de integridad, condiciones que estipulan que
alguna o todas las variables de decisión deben tener valores enteros. Los modelos de
programación lineal entera, son modelos de programación lineal que tienen las
características adicionales de que algunas de las variables de decisión deben tener
valores enteros.
4
Programación lineal.
Año 1642. Blaise Pascal. Diseño la primera maquina de calcular, basada en ruedas
dentadas que solo podían sumar y restar.
Año 1694. Leibniz. Matemático. Diseño una maquina ampliando los estudios de
Pascal. Esta calculadora, además de sumar y restar, también
multiplicaba, dividía e incluso extraía raíces cuadradas. Debido a
la falta de tecnología en esa época, la difusión de esta maquina
fue escasa.
Año 1822. Babbage. Estableció los principios de funcionamiento de los ordenadores
electrónicos en un proyecto de maquina denominada “maquina
diferencial” que podía resolver polinomios de hasta 8 términos y
en el año 1833 puso en practica un nuevo trabajo, “la maquina
analítica”, se le puede considerar como un prototipo de los actuales
ordenadores electrónicos.
Año 1768 – 1830. Jean Batiste, Joseph Fourier. Fue el primero en intuir, en una
forma imprecisa, los métodos llamados programación lineal.
Año 1939. Leonid Vitalevich K. Matemático ruso. Publico una extensa monografía
que tituló “Métodos matemáticos de organización y planificación”
en la que por primera vez se hace corresponder a una extensa gama
5
de problemas, una teoría matemática precisa y bien definida,
llamada hoy en día programación lineal.
Año 1944. John Van Neuman. Propone la idea de “programa interno”, desarrolla un
fundamento teórico para la construcción de un ordenador
electrónico
Año 1945. Entra en funcionamiento el Electronic Numerical Integrator and
Calculator (E.N.I.A.C). Su primera utilización fue para la
construcción de tablas para el cálculo de trayectorias de
proyectiles.
Año 1947. George Dantzing. Desarrollo el método Simples. Procedimiento general
para resolver problemas de programación lineal
Año 1954. G. B. Dantzing y W. Hirs. Realizaron sus trabajos sobre los problemas
de costo fijos.
Año 1956. Noam Chomsky. Inicio el estudio de los lenguajes formales, al crear un
modelo matemático de una gramática. El estudio de las gramáticas
formales es uno de los campos más importantes de la informática
teórica.
Año 1959. Bowman, Wagner. Y 1960. Manne. Los primeros en formular los
modelos de problemas de secuencia.
Año 1940 – 1960. Ralfh Gomory. Surge la programación lineal, siendo el pionero en
investigaciones de la programación entera.
Año 1960. Land And Doig. Desarrollo el primer algoritmo de ramificación y
acotamiento, algoritmo que lleva su nombre y sirve para resolver
problemas enteros, puros y mixtos.
Año 1965. R. D. Young. Se le debe el primer algoritmo de corte, utilizando métodos
primales.
Año 1965. P. Porlier y B. Roy. Realizan la primera formulación de la teoría del
método de ramificación y acotamiento. La cual fue simplificada
por E. Balas en el año 1968, que a la vez más tarde fue ampliada
por L. G. Mitten en el año 1970.
Año 1968. F. Glover. Fundo sus trabajos sobre el algoritmo de métodos primales.
6
Año 1969. Prisker, Walers y Wolf. Plantearon de forma más general los modelos de
problemas de secuencia.
Año 1973. Handy A. Taha. Fundo su trabajo en el algoritmo para el problema de
costo fijo, que originalmente fue presentado por Katla Murty en el
año 1967.
Método Simplex.
Ejemplo:
7
(Max) Z = 3X + 2Y
Sujeto a: 2X + Y ≤ 18
2X + 3Y ≤ 42
3X + Y ≤ 24
X ≥ 0, Y ≥ 0
2X + Y + h1 = 18
2X + 3Y + h2 = 42
3X + Y + h3 = 24
Z = 3X + 2Y
Z -3X – 2Y = 0
8
Tabla Simplex inicial
Base Variable de decisión Variable de holgura Valores de solución
X Y h1 h2 h3
Z -3 -2 0 0 0
h1 2 1 1 0 0 18
h2 2 3 0 1 0 42
h3 3 1 0 0 1 24
9
. Si al calcular los cocientes, dos o más son iguales, indica que cualquiera de las
variables correspondientes puede salir de la base.
. En la intersección de la fila pivote y la columna pivote se tiene el elemento pivote
operacional.
Iteración 1
X Y h1 h2 h3
Z -3 -2 0 0 0
h1 2 1 1 0 0 18
h2 2 3 0 1 0 42
h3 3 1 0 0 1 24
Iteración 2
Variables de Variables de Valores
10
Base decisión holgura de solución
X Y h1 h2 h3
Z 0 -1 0 0 1 24
h1 0 1/3 1 0 -2/3 2
h2 0 7/3 0 1 -2/3 26
h3 1 1/3 0 0 1/3 8
Como en los coeficientes de la primera fila existe uno negativo, (-1), significa que
no hemos llegado a la solución óptima. Se repite el proceso.
La variable que entra en la base es Y, por ser la variable que tiene como
coeficiente a (-1).
Para calcular la variable que sale, se dividen los términos de la ultima
columna entre los términos correspondiente de la nueva columna pivote.
Como el menor cociente es 6, se tiene que la variable de holgura que sale es
(h1).
El elemento que hay que hacer 1, en la intersección de la columna pivote y la
fila pivote es 1/3.
Iteración 3
Variables de Variables de Valores
Base decisión holgura de solución
X Y h1 h2 h3
Z 0 0 3 0 -1 30
Y 0 1 3 0 -2 6
h2 0 0 -7 1 4 12
11
X 1 0 -1 0 1 6
Como en los elementos de la primera fila hay coeficiente negativo, (-1) significa
que no se tiene la solución óptima, se debe repetir el proceso.
La variable que entra en la base es h 3, por ser la variable a la cual le
corresponde el coeficiente (-1).
Para calcular la variable que sale, se dividen los términos de la ultima
columna entre los términos que corresponden a la nueva columna pivote,
como el menor cociente positivo es 3, se tiene que la variable de holgura que
sale es h2.
El elemento pivote que se debe hacer igual a 1, es el 4 que esta en la
intersección de la columna pivote y la fila pivote.
Iteración 4
Variables de Variables de Valores
Base decisión holgura de solución
X Y h1 h2 h3
Z 0 0 5/4 1/4 0 33
Y 0 1 -1/2 1/2 0 12
H3 0 0 -7/4 1/4 1 3
X 1 0 3/4 -1/4 0 3
Todos los coeficientes de la fila de la función objetivo son positivos, lo que
indica que se ha llegado a la solución óptima donde:
Z = 33 para X = 3 y Y = 12.
La solución óptima, viene dada por el valor de la función Z en la columna de
los valores de solución (33). En la misma columna se puede observa el punto donde
se alcanza, que corresponde a las variables de decisión que entraron en la base, (X,
Y).
Si en el problema de maximización aparecieran como restricciones
inecuaciones de la forma aX + bY ≥ c; se multiplica por (-1) para transformarlas en
inecuaciones de la forma -aX – bY ≤ -c.
Si en lugar de maximizar se tratara de problemas de minimizar se sigue el
mismo proceso, pero cambiando el sentido del criterio, es decir para entrar en la base
12
se elige la variable cuyo valor, en la fila de la función objetivo, sea el mayor de los
positivos y se finalizan las iteraciones cuando todos los coeficientes de la fila de la
función objetivo sean negativo.
Simplex Revisado.
Este método requiere una menor cantidad de cálculos, ya que realiza cálculos
únicamente en los vectores de aquellas variables no básicas y registra en memoria lo
relativo a las variables básicas.
Pasos a seguir.
Determinar las variables básicas y formar B.
Obtener B-1.
Obtener Z – C = Waj – C donde W = CbB-1.
Si Zj – Cj ≥ 0 para un problema de maximización o Z j – Cj ≤ 0 para un
problema de minimización la solución es óptima y es el fin del proceso. Si
esto no se cumple continua el proceso.
13
Determinar la variable que entra en solución, usando WA – C para toda
variable no básica.
Se utiliza XBi/YKj para determinar que variable sale de solución. Se actualiza
la columna ak para que esta aporte la columna de la matriz identidad que
aporta la variable saliente.
Se regresa al principio del proceso.
Tabla en el proceso Xk
W CBXB Zk - Ck
B-1 XB1 Y1k
XB2 Y2k
. .
. .
. .
XBm Ymk
Ejemplo:
(Max) Z = 3X + 2Y
Sujeto a: 2X + Y ≤ 18
2X + 3Y ≤ 42
3X + Y ≤ 24
Así:
X Y h1 h2 h3
2 1 1 0 0 18
A= 2 3 0 1 0 C = (3 2 0 0 0) b = 42
3 1 0 0 1 24
14
X Y h1
2 1 1
Zj – Cj = WA – C = (0 0 0) 2 3 0 - (3 2 0) = (-3 -2 0)
3 1 0
Tabla 1
0 0 0 0 -3
1 0 0 18 h1 2
0 1 0 42 h2 2
0 0 1 24 h3 sale h3 3
0 0 1 24
1 0 -2/3 2 h1
0 1 -2/3 26 h2
0 0 1/3 8 X
Y h1 h2
1 1 0
Zj – Cj = WA – C = (0 0 1) 3 0 1 - (2 0 0) = (-1 0 0)
1 0 0
Por lo que entra en solución la variable Y.
Tabla II
0 0 1 24 -1
15
1 0 -2/3 2 h1 sale h1 1/3
0 1 -2/3 26 h2 7/3
0 0 1/3 8 X 1/3
3 0 -1 30
3 0 -2 6 Y
-7 1 4 12 h2
-1 0 1 6 X
h1 h2 h3
1 0 0
Zj – Cj = WA – C = (3 0 -1) 0 1 0 - (0 0 0) = (3 0 -1)
0 0 1
Tabla III
3 0 -1 30 -1
3 0 -2 6 Y -2
-7 1 4 12 h2 sale h2 4
-1 0 1 6 X 1
5/4 1/4 0 33
16
-1/2 1/2 0 12 Y
7/4 1/4 1 3 h2
3/4 -1/4 0 3 X
h1 h2 h3
1 0 0
Zj – Cj = WA – C = (5/4 1/4 0) 0 1 0 - (0 0 0) = (5/4 1/4 0)
0 0 1
Como todas las variables son mayores que cero, la solución óptima se ha
alcanzado, entonces la solución óptima es:
Z = 33, para X = 3 y Y = 12.
Maximizar Z(x) = Cx
Sujeto a: Ax ≤ b
X≥ 0
Minimizar Zdual = Yb
17
Sujeto a: YA ≥ C
Y ≥0
Maximizar Z(x) = Cx
Sujeto a: Ax = b
18
X≥0
Minimizar Zdual = Yb
Sujeto a: YA ≥ C
Y >< 0, es decir, variables libres.
Ejemplo:
Maximizar Z = 3X + 2Y
Sujeto a: 2X + Y ≤ 18
2X + 3Y ≤ 42
3X + Y ≤ 24
19
X≥0 y Y ≥0
Problema dual.
Minimizar Zdual = 18X1 + 42X2 + 24X3
Sujeto a: 2X1 + 2X2 + 3X3 ≥ 3
X1 + 3X2 + X3 ≥ 2
X1 ≥ 0, X2 ≥ 0 y X3 ≥0
X1 X2 X3 h1 h2 M M Zdual
Zdual 18 42 24 0 0 0 0 1
h1 2 2 3 -1 0 1 0 0 3
h2 1 3 1 0 -1 0 1 0 2
Primera Iteración
X1 X2 X3 h1 h2 M M Zdual
Zdual 4 0 10 0 14 0 -14 1 28
h1 4/3 0 7/3 -1 2/3 1 -2/3 0 5/3
X2 1/3 1 1/3 0 -1/3 0 1/3 0 2/3
Segunda Iteración
X1 X2 X3 h1 h2 M M Zdual
Zdual -12/7 0 0 30/7 78/7 -30/7 -78/7 1 246/7
X3 4/7 0 1 -3/7 2/7 3/7 -2/7 0 5/7
20
X2 1/7 1 0 1/7 -3/7 -1/7 3/7 0 3/7
Tercera Iteración
X1 X2 X3 h1 h2 M M Zdual
Zdual 0 0 3 3 12 -3 -12 1 33
X1 1 0 7/4 -3/4 1/2 3/4 -1/2 0 5/4
X2 0 1 -1/4 1/4 -1/2 -1/4 1/2 0 ¼
Análisis de post-optimización.
21
4.- Introducción de nuevas variables.
5.- Adición de nuevas restricciones.
22
Los cambios o modificaciones en los coeficientes técnicos de las restricciones
pueden afectar tanto a la condición de factibilidad como a la de optimalidad, según se
trate de un coeficiente asociado a una variable no básica o a una variable básica.
23
4) ADICIÓN DE NUEVAS VARIABLES.
24
Programación Entera.
Existen dos métodos para generar las restricciones especiales que fuercen la solución
óptima del problema, hacia la solución óptima entera deseada.
25
lineal entera. No obstante los métodos de ramificar y acotar son mucho mejores en
cuanto al cálculo se refiere, que los métodos de plano de corte. Por esta razón, la
mayoría de los códigos comerciales se basan en el procedimiento de ramificar y
acotar.
Ejemplo.
Tabla de valores
X1 X2 X3 X4
naranjo limonero manzano peral
2
m 16 12 8 4 640
Días al año 30 20 10 15 900
m3 de agua 2 2 1 1 200
Beneficio 50 30 25 20
26
Las restricciones se expresan como ecuaciones ó inecuaciones de las variables
de decisión, que se deducen de las necesidades de cada árbol, horas de trabajos
anuales y necesidad de riego.
Estándar:
27
Entra a la base la variable X 1 y sale de la base la variable de holgura h 2, se
hace 30, la intersección de la columna pivote y la fila pivote igual a 1.
Primera Iteración
X1 X2 X3 X4 h1 h2 h3 Z
Z 0 10/3 -25/3 5 0 0 0 1 1500
h1 0 4/3 8/3 -4 1 -8/15 0 0 160
X1 1 2/3 1/3 1/2 0 1/30 0 0 30
h3 0 2/3 1/3 0 0 -1/15 1 0 140
Entra a la base la variable X 3 y sale de la base la variable de holgura h 1, se
hace igual a uno 8/3 que es la intersección de la columna pivote y la fila pivote.
Segunda Iteración
X1 X2 X3 X4 h1 h2 h3 Z
Z 0 45/6 0 -45/8 25/8 0 0 1 2000
X3 0 1/2 1 -3/2 3/8 -1/5 0 0 60
X1 1 1/3 0 1 -1/8 1/10 0 0 10
h3 0 1/3 0 1/2 -1/8 0 1 0 120
Tercera Iteración
X1 X2 X3 X4 h1 h2 h3 Z
Z 0 10 0 0 35/6 3/4 0 1 2075
X3 3/2 1 1 0 -3/16 -1/20 0 0 75
X1 1 1/3 0 1 -1/8 1/10 0 0 10
h3 -1/2 1/3 0 0 -1/6 3/20 1 0 115
28
Z = 50(0) + 30(0) + 25(75) + 20(10)
Z = 0 + 0 + 1875 + 200
Z = 2075
Z = 2075
X3 = 75
X4 = 10
Ejemplo:
29
Una agropecuaria dispone de tres almacenes que deben servir sacos de maíz a
cuatro clientes. La demanda de cada cliente, la capacidad de cada almacén y el costo
de enviar un saco desde cada almacén a cada uno de los clientes se expresa en la
siguiente tabla.
(Mimi) Z = 8X11 + 6X12 + 10X13 + 9X14 + 9X21 + 12X22 + 13X23 + 7X24 + 14X31 + 9X32 + 16X33 + 5X34
Sujeto a;
30
X11 + X12 + X13 + X14 = 35
X21 + X22 + X23 + X24 = 50
X31 + X32 + X33 + X34 = 40
X11 + X21 + X31 = 45
X12 + X22 + X32 = 20
X13 + X23 + X33 = 30
X14 + X24 + X34 =30
Con Xij ≥ 0
Por la forma del sistema el problema dual solo tiene dos incógnitas en cada ecuación.
Este hecho es el que se utiliza para simplificar el método de simplex dando lugar al
algoritmo de transporte.
Tabla inicial ai
Cliente A Cliente B Cliente C Cliente D Capacidad
Almacén 1 8 6 10 9 35
Almacén 2 9 12 13 7 50
Almacén 3 14 9 16 5 40
bj Demanda 45 20 30 30 125
Los valores de la solución inicial para las variables de la primera fila quedan ya
decididos y se deja de considerar esta fila en los siguientes pasos del algoritmo.
31
Se asigna a X21 el valor de 10 = 50,10 se resta este valor a a 2 = 50 y a b1 = 10 con lo
que la disponibilidad del segundo almacén se reduce a 40.
ai
Cliente A Cliente B Cliente C Cliente D Capacidad
Almacén 1 35 - - - (35) 0
Almacén 2 10 (50) 40
Almacén 3 40
bj Demanda (45) (10) 20 30 30
0
32
ai
Cliente A Cliente B Cliente C Cliente D Capacidad
Almacén 1 35 - - - (35) 0
Almacén 2 10 20 20 - (50) (40) (20) 0
Almacén 3 - - 10 (40) 30
bj Demanda (45) (10) 0 (20) 0 (30) (10) 0 30
Se tiene que X11 = 35, X12 = 0, X13 = 0, X14 = 0, X21 = 10, X22 = 20, X23 = 20, X24 = 0,
X31 = 0, X32 = 0, X33 = 10 y X34 = 30, por lo que para minimizar la función se efectúa
la siguiente operación.
(Mimi) Z = 8X11 + 6X12 + 10X13 + 9X14 + 9X21 + 12X22 + 13X23 + 7X24 + 14X31 + 9X32 + 16X33 + 5X34
Z = 8(35) + 6(0) + 10(0) + 9(0) + 9(10) + 12(20) + 13(20) + 7(0) + 14(0) +
9(0) + 16(10) + 5(30)
Z = 280 + 0 + 0 + 0 + 90 + 240 + 260 + 0 + 0 + 0 + 160 + 150 = 1180
Z = 1180
Conclusiones.
33
dispendioso por el número de iteraciones y por supuesto demorado para obtener la
solución óptima.
34
básica, la variable de dual asociada a ella será una variable no básica, y por la misma
razón si una variable de primal es no básica, la correspondiente variable de dual será
una variable básica.
REFERENCIAS BIBLIOGRAFICAS.
35
ORELLANA, Mauricio y TORRES, Ennodio. (1981). Geometría. Universidad
Nacional Abierta. Caracas. UNA, 1997,5.
36