Академический Документы
Профессиональный Документы
Культура Документы
lineal y otras
programaciones
Herramientas
Matemáticas VI -
Modelos de
Simulación
1
Programación lineal y otras
programaciones
2
Tabla 1: Coeficientes del sistema de ecuaciones
1 −3 −5 0 0 0 0 1 0 −5 3 0 0 12
0 1 0 1 0 0 4 0 1 0 1 0 0 4
( | ) → ( | );
0 0 2 0 1 0 12 0 0 1 0 1/2 0 6
0 3 2 0 0 1 18 0 0 2 −3 0 1 6
1 0 0 3 5/2 0 42 1 0 0 0 3/2 1 36
0 1 0 1 0 0 4 0 1 0 0 −1/3 1/3 2
( | ) → ( | );
0 0 1 0 1/2 0 6 0 0 1 0 1/2 0 6
0 0 0 3 1 −1 6 0 0 0 1 1/3 −1/3 2
3
Si bien en este caso podemos encontrar explícitamente cada vértice, y así
determinar la solución óptima, a medida que el sistema es mayor, con más
variables y más ecuaciones, hallar los vértices requiere muchos cálculos,
por lo que no es un buen camino. Por eso, vamos a aprovechar la forma
reducida de la matriz para encontrar la solución óptima.
Caso general
4
nueva variable restando en el lado izquierdo de modo de obtener una
igualdad:
𝑎𝑖1 𝑥1 + 𝑎𝑖2 𝑥2 + ⋯ + 𝑎𝑖𝑛 𝑥𝑛 − 𝑥𝑛+2 = 𝑏𝑖 .
𝑍 − 𝑐1 𝑥1 − 𝑐2 𝑥2 − ⋯ − 𝑐𝑛 𝑥𝑛 = 0;
𝑎11 𝑥1 + 𝑎12 𝑥2 + ⋯ + 𝑎1𝑛 𝑥𝑛 + 𝑥𝑛+1 = 𝑏1 ;
𝑎21 𝑥1 + 𝑎22 𝑥2 + ⋯ + 𝑎2𝑛 𝑥𝑛 + 𝑥𝑛+2 = 𝑏2 ;
⋮
𝑎𝑚1 𝑥1 + 𝑎𝑚2 𝑥2 + ⋯ + 𝑎𝑚𝑛 𝑥𝑛 + 𝑥𝑛+𝑚 = 𝑏𝑚 .
5
Otras programaciones matemáticas
Programación dinámica
6
Figura 1: Rutas de la ciudad 1 hasta la ciudad 7
Para los problemas de programación dinámica del tipo “ruta más corta”,
existe un método de resolución. Este método es recursivo, es decir, cada
etapa usa la información de la etapa anterior (Taha, 2004).
𝑓0 (𝑥0 ) = 0;
𝑗 𝑖 𝑗
𝑓𝑖 (𝑥𝑖 ) = 𝑣𝑎𝑙𝑜𝑟 ó𝑝𝑡𝑖𝑚𝑜 {𝑐𝑗𝑘 + 𝑓𝑖−1 (𝑥𝑖−1 )}.
7
𝑓1 (𝑥12 ) = 𝑣𝑎𝑙𝑜𝑟 𝑚í𝑛𝑖𝑚𝑜 {80} = 80;
𝑓1 (𝑥13 ) = 𝑣𝑎𝑙𝑜𝑟 𝑚í𝑛𝑖𝑚𝑜 {50} = 50;
𝑓1 (𝑥14 ) = 𝑣𝑎𝑙𝑜𝑟 𝑚í𝑛𝑖𝑚𝑜 {70} = 70.
En la segunda etapa, tenemos dos ciudades como destino: 5(= 𝑥21 ), 6(=
2 2
𝑥22 ). Los valores 𝑐1𝑘 y 𝑐2𝑘 con 𝑘 = 2, 3, 4 son, respectivamente, las
distancias de las ciudades 5 y 6 con las ciudades 2, 3 y 4. Por ejemplo,
2
𝑐12 = 90. Así tenemos, para la ciudad 5,
2
𝑓2 (𝑥21 ) = 𝑚𝑖𝑛{𝑐1𝑘 + 𝑓1 (𝑥1𝑘 )};
= 𝑚𝑖𝑛{90 + 80, 130 + 50, 80 + 70};
= 150 (𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎𝑙 𝑐𝑎𝑚𝑖𝑛𝑜 1 → 4 → 5).
Y, para la ciudad 6,
2
𝑓2 (𝑥22 ) = 𝑚𝑖𝑛{𝑐2𝑘 + 𝑓1 (𝑥1𝑘 )};
= 𝑚𝑖𝑛{120 + 80, 70 + 70};
= 140 (𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎𝑙 𝑐𝑎𝑚𝑖𝑛𝑜 1 → 4 → 6).
3
𝑓3 (𝑥13 ) = 𝑚𝑖𝑛{𝑐1𝑘 + 𝑓2 (𝑥2𝑘 )};
= 𝑚𝑖𝑛{70 + 150, 90 + 140};
= 220 (𝑞𝑢𝑒 𝑐𝑜𝑟𝑟𝑒𝑠𝑝𝑜𝑛𝑑𝑒 𝑎𝑙 𝑐𝑎𝑚𝑖𝑛𝑜 1 → 4 → 5 → 7).
8
Figura 2: Descomposición y solución del ejemplo
Programación entera
En muchos problemas de investigación de operaciones, las variables de
decisión tienen sentido solo si son valores enteros, por ejemplo, cantidad
de autos por comprar, proyectos por aprobar, ubicación del personal,
etcétera. Inclusive, podemos tener problemas cuyas variables de decisión
no sean valores numéricos y que las opciones sean “sí” o “no” (Hieller y
Lieberman, 1998).
Los problemas de programación entera son aquellos en los cuales todas las
variables de decisión o una parte de ellas son enteras. Los problemas de
programación entera con algunas variables enteras (no todas) se
denominan mixtos. Un ejemplo de esto es la incorporación de costos fijos:
tenemos un modelo de costos, y nuevas acciones pueden adicionar cierto
costo fijo. Las variables de estos nuevos costos toman los valores 1 o 0
dependiendo de si se agregan o no respectivamente.
9
Técnica de Branch-and-Bound
Ejemplo
10
Así tenemos un valor mínimo 𝑍 que usaremos para comparar con los
valores obtenidos en cada uno de los subproblemas.
Como la solución no es entera, pasamos a aplicar la técnica de Branch-and-
Bound. La subdivisión que vamos a hacer es, 𝑥1 = 0 y 𝑥1 ≥ 1, es decir,
agregamos restricciones dando origen a dos nuevos problemas:
𝑃0
𝑥1 = 0 𝑥1 ≥ 1
𝑃1 𝑃2
𝑃0
𝑥1 = 0 𝑥1 ≥ 1
𝑃1 𝑃2
𝑥2 ≤ 2 𝑥2 ≥ 3
𝑃1,1 𝑃1,2
11
Referencias
Arsham, H. (2011). Deterministic modeling: linear optimization with applications.
Retrieved November, 16, 2011. http://home.ubalt.edu/ntsbarsh/Business-
stat/opre/SpanishD.html
12