unidad 1 programación lineal

375
1 Unidad 1 Programación Lineal

Upload: echo-jensen

Post on 30-Dec-2015

216 views

Category:

Documents


5 download

DESCRIPTION

Unidad 1 Programación Lineal. 1.1 Introducción a la Programación Lineal. ¿Qué es un problema? Soluciones: Absolución Resolución Solución Disolución ¿Por qué decimos que un problema es complejo? Análisis de problemas: ¿Quién resuelve los problemas? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Unidad 1  Programación Lineal

1

Unidad 1

Programación Lineal

Page 2: Unidad 1  Programación Lineal

2

• ¿Qué es un problema?

• Soluciones: Absolución

Resolución

Solución

Disolución

• ¿Por qué decimos que un problema es complejo?

• Análisis de problemas: ¿Quién resuelve los problemas?

• ¿Qué entendemos por identificar un problema?

1.1 Introducción a la Programación Lineal

Page 3: Unidad 1  Programación Lineal

3

¿Qué es Investigación de Operaciones?

El uso de las matemáticas y las computadoras para ayudar a tomar decisiones racionales frente a problemas de administración complejos

Page 4: Unidad 1  Programación Lineal

4

Aplicación de las técnicas de la administración a problemas (sistemas):

Determinísticos

Toda la información necesaria para obtener una solución se conoce con certeza

Estocásticos

Parte de la información no se conoce con certeza

Page 5: Unidad 1  Programación Lineal

5

Método Científico para resolver problemas complejos

En las Ciencias En Administración

Defínase el problema Recoléctense los datos Formulénse hipótesis Pruebénse hipótesis Evalúense resultados Obténganse conclusiones

Defínase el problema Recoléctense los datos Defínanse soluciones alternativas Evalúense soluciones alternativas Selecciónese la mejor alternativa Puesta en práctica

Page 6: Unidad 1  Programación Lineal

6

¿Qué se hace en la realidad?

Estar bien informado Conocer todastodas las alternativas Ser objetivo (ser optimizador económico)

Muchas soluciones

Definir el problema

Establecer los criterios de solución

Buscar las soluciones

Solución Satisfactoria

Aumentar los criterios

Pocas soluciones

Disminuir criterios

Page 7: Unidad 1  Programación Lineal

7

¿Qué hace un Director de Empresa para escoger la acción más efectiva para alcanzar las metas de la Organización?

Establecer Criterio que usará Seleccionar un conjunto de alternativas para considerarlas Determinar el modelo que se usará y los valores de los parámetros Determinar la alternativa que optimiza el criterio

Page 8: Unidad 1  Programación Lineal

8

Aportes: Técnicas de Programación Lineal

– George Dantzig (USAF), Marshall Wood y Murray Geisler

– Wassily Leontief (modelo insumo-producto)• Método Simplex

– Gomory (programación lineal discreta)

– Lester Ford y D. K: Fulkerson (redes, trayectoria crítica)• CPM y PERT

Page 9: Unidad 1  Programación Lineal

9

CONSTRUCCIÓN DE MODELOS CUANTITATIVOS

Los métodos cuantitativos se emplean:

• Como guía en la toma de decisiones

• Como ayuda en la toma de decisiones

• Para automatizar la toma de decisiones

Page 10: Unidad 1  Programación Lineal

10

Características de los Sistemas Administrativos

• Def: “Sistema....

• Tipos de sistemas: Cerrados, abiertos

Modelos:

• Normativos, descriptivos

• Concretos, Abstractos (verbales o simbólicos)

• Aplicación (Inventarios)

• Técnica (Programación Lineal)

• Comparación de Modelos (validez, confialbilidad y la simplicidad)

Page 11: Unidad 1  Programación Lineal

11

• Dimensionalidad de los modelos (unidades)

• Toma de decisiones

• Dimensionalidad de los modelos (unidades)

Categoría Consecuencia

Certidumbre Deterministas

Riesgo Probabilísticas

Incertidumbre Desconocidas

Conflicto Influidas por un oponente

Page 12: Unidad 1  Programación Lineal

12

Uso de Datos para la Toma de Decisiones

““Determina primero los hechos, después puedes Determina primero los hechos, después puedes tergiversarlos como te plazca”. Mark Twintergiversarlos como te plazca”. Mark Twin

““Los hechos no dejan de existir porque se ignoren”. Los hechos no dejan de existir porque se ignoren”. Aldous HuxleyAldous Huxley

Page 13: Unidad 1  Programación Lineal

13

• ¿Qué son los datos?¿Qué son los datos?

Son hechos o conceptos conocidos o supuestos y Son hechos o conceptos conocidos o supuestos y generalmente se expresan en númerosgeneralmente se expresan en números

• Tipos de datosTipos de datos

Internos y externosInternos y externos

Objetivos y subjetivosObjetivos y subjetivos

• Requerimientos de datos en diferentes niveles de Requerimientos de datos en diferentes niveles de la Organizaciónla Organización

Control operativoControl operativo

Control AdministrativoControl Administrativo

Planeación estratégicaPlaneación estratégica

Page 14: Unidad 1  Programación Lineal

14

Situación: InversiónConsidere el problema enfrentado por Mark, graduado de la maestría de administración de empresas, quién recientemente obtuvo un puesto como analista financiero en una compañía de Wall Street. Uno de los beneficios adicionales es un plan de retiro en el que el empleado pone 5% de su ingreso mensual. La compañía iguala esta cantidad. El dinero de este plan es entonces invertido en dos fondos: un fondo de acciones y un fondo de bonos. El Departamento de Beneficios le ha pedido a Mark que especifique la fracción de este dinero que habría que invertir en cada fondo. Mark ha analizado el rendimiento anterior de estos fondos y se ha enterado de que el fondo de acciones ha crecido a una tasa anual promedio de 10%, mientras que el fondo de bonos, ha promediado una retribución anual de 6%. Para diversificar su cartera y para controlar el riesgo, no desea poner todos los huevos en una sola canasta, ha identificado dos pautas:

1. Ninguno de los fondos debe tener más del 75% de la inversión total.

2.La cantidad invertida en el fondo de acciones no debe exceder del doble invertido en el fondo de bonos.

Page 15: Unidad 1  Programación Lineal

15

1 Definición del problema

El problema de Mark está bien definido, se conoce el objetivo global, las limitaciones básicas para la toma de decisión

2 Desarrollo del Modelo Matemático

Expresar el problema en forma matemática (formular el modelo), por lo que se requiere determinar las variables involucradas

Page 16: Unidad 1  Programación Lineal

16

Variables de decisión:

S : Fracción de capital por invertir en acciones

B : Fracción de capital por invertir en bonos

Para el problema se desean escoger valores para que estas variables:

1 Maximicen la retribución anual esperada

2 Satisfagan todas las pautas de inversión

Page 17: Unidad 1  Programación Lineal

17

- Función Objetivo

El objetivo global de un problema de decisión expresado en una forma matemática en términos de los datos y de las variables de decisión:

Maximizar 0,1 S + 0,06 B

- Restricciones (limitaciones)

Es un límite sobre los valores de las variables en un modelo matemático típicamente impuestos por condiciones externas.

Page 18: Unidad 1  Programación Lineal

18

- Ningún fondo tenga más del 75% de lo invertido

S 0,75 (límite superior en el fondo de acciones)

B 0,75 (límite superior en el fondo de bonos)

- La fracción S invertida en el fondo de acciones no debe exceder del doble de la fracción B invertida en el fondo de bonos

S 2 B ó S - 2 B 0

- Cada fracción debe ser no negativa

S, B 0

Page 19: Unidad 1  Programación Lineal

19

Finalmente el modelo resultante es:

Maximizar 0,1 S + 0,06 B

Sujeto a:

S 0,75

B 0,75

S - 2 B 0

S, B 0

Page 20: Unidad 1  Programación Lineal

20

3 Resolución del modelo matemático

Al resolver el problema usando cualquier técnica se tienen los siguientes valores para las variables de decisión:

S = 0,75 y

B= 0,75

Generando una retribución de:

0,1 * 0,75 + 0,06 * 0,75 = 0,12 (12%) ¿?

Solver 1

Page 21: Unidad 1  Programación Lineal

21

4 Validación y Control de la Solución

Al observar los valores de las variables de decisión (S=0,75 y B=0,75) se ve que no tienen sentido. No se puede invertir un 75% en ambos fondos simultáneamente.

Hay un error, no se incorporó una restricción, esto es, los recursos disponibilidad.

S + B = 1

Page 22: Unidad 1  Programación Lineal

22

5 Modificación del Modelo

Maximizar 0,1 S + 0,06 B

Sujeto a:

S 0,75

B 0,75

S - 2 B 0

S + B = 1

S, B 0

Page 23: Unidad 1  Programación Lineal

23

Resolviendo nuevamente se tiene que:

S = 0,6667 y

B = 0,3333

Finalmente la retribución es

0,1 * 0,6667 + 0,06 * 0,33333 = 0,86667 (8,667%)

Nota: Emplear Solver para determinar el valor de las variables de decisión

Page 24: Unidad 1  Programación Lineal

24

1.2 Construcción de Modelos de PL

Modelo de Programación Lineal

Es un modelo matemático en el que las relaciones entre variables son lineales y donde hay un solo objetivo o medida de rendimiento.

La ventaja que tiene el modelo es que existe una técnica matemática que permite determinar la decisión óptima.

Page 25: Unidad 1  Programación Lineal

25

El modelo de PL tiene un conjunto de variables de decisión, una función objetivo la que debe maximizarse o minimizarse y un conjunto de relaciones o restricciones.

Z = C1X1 + C2X2 + ......... CnXn

Z : es un objetivo económico (beneficios, producción, costos, etc)

Ci : coeficientes constantes (factores de ponderación)

Xi : variables de decisión (n)

sujeto a (Restricciones (m) ):

A1X1 + A2X2 + ......... AnXn B1

..................................................A1X1 + A2X2 + ......... AnXn Bm

FORMALIZACIÓN DEL MODELO DE PL

Page 26: Unidad 1  Programación Lineal

26

Matricialmente se tiene:

Vector de variables o

niveles de actividad

Vector de “costos” o factor de ponderación

nx

x

x

.2

1

nccc ...21

Page 27: Unidad 1  Programación Lineal

27

Vector de variables o

niveles de actividad

Vector de variables o

niveles de actividad

A

B

nb

b

b

2

1

mnmm

n

n

aaa

aaa

aaa

..

........

..

..

21

22221

11211

Page 28: Unidad 1  Programación Lineal

28

Entonces

Optimizar Z = CT X = [c1 c2 c3]

nx

x

x

2

1

=

n

jjj xc

1

sujeto a

A X B

y X 0

Page 29: Unidad 1  Programación Lineal

29

Ejemplo 1:

Una mueblería produce dos tipos de productos, sillas y mesas. Supóngase que el beneficio marginal por cada silla es de $8 y por cada mesa es de $10. Para la producción se dispone de 20 horas hombre (hh) y de 10 unidades de madera (um). Para la construcción de una silla se requieren 8 hh y 2 um, y para la construcción de una mesa se requieren 6 hh y 4 um. ¿Cuántas sillas y mesas se deben construir para obtener el mayor beneficio?.

Page 30: Unidad 1  Programación Lineal

30

Recursos Sillas MesasDisponibilidad de

recursos

R1: horas hombre 8 6 20

R2: unidades de madera

2 4 10

Beneficios $8 $10

Page 31: Unidad 1  Programación Lineal

31

Formulación del PL

SeaX1 : Nº de sillas

X2 : Nº de mesas

Función Objetivo:

Max Z = 8X1 + 10X2

Sujeto a:8X1 + 6X2 20 // hh2X1 + 4X2 10 // um

X1 0 y X2 (no negatividad)

Page 32: Unidad 1  Programación Lineal

32

Ejemplo 2:

Dos productos se elaboran al pasar en forma sucesiva por tres máquinas.

El tiempo por máquina asignado a los dos productos está limitado a 10 horas por día

El tiempo de producción y la ganancia por unidad de cada producto son:

Producto Máquina 1 Máquina 2 Máquina 3 Ganancia $1 10 6 8 22 5 20 15 3

Minutos por unidad

Obtenga el modelo de PL para maximizar la ganancia

Page 33: Unidad 1  Programación Lineal

33

Solución:

1. Variables de decisión

X1 : Cantidad del producto 1

X2 : Cantidad del producto 2

2. Función Objetivo: Maximizar ganancia

MAX Z = 2 X1 + 3 X2

3. Restricciones

10 X1 + 5 X2 600

6 X1 + 20 X2 600

8 X1 + 15 X2 600

X1 , X2 0

ó 24 X1 + 40 X2 1800

X1 , X2 0

Page 34: Unidad 1  Programación Lineal

34

Ejemplo 3:RMC posee una pequeña fábrica de pinturas para interiores y exteriores de casa para su distribución al mayoreo. Se utilizan dos materiales básicos, A y B. La disponibilidad máxima de A es de 6 toneladas diarias, la de B es de 8 toneladas por día. La necesidad diaria de materia prima por tonelada de pintura para interiores y exteriores se resumen en la siguiente tabla:

Un estudio de mercado ha establecido que la demanda diaria de pintura para interiores no puede ser mayor que las pinturas para exteriores en más de una tonelada. Asimismo, el estudio señala que la demanda máxima de pintura para interiores está limitada a dos toneladas diarias.

El precio al mayoreo es de $3.000 para la pintura de exteriores y $2.000 para la de interiores.

¿Cuánta pintura para exteriores e interiores debe producir la fábrica de pinturas RMC todos los días para maximizar el ingreso bruto?

Tonelada de materia primapor tonelada de pintura Disponibilñidad

Exterior Interior máxima (Toneladas)Materai prima A 1 2 6Materia prima B 2 1 8

Page 35: Unidad 1  Programación Lineal

35

Solución:

1. Variables de decisión

X1 : Toneladas de pintura de exteriores producidas por día

X2 : Toneladas de pintura para interiores producidas por día

2. Función Objetivo: Maximizar ganancia

MAX Z = 3 X1 + 2 X2 miles de unidades monetarias

3. Restricciones X1 + 2 X2 6

2 X1 + X2 8

- X1 + X2 1

X2 2

X1 , X2 0

Page 36: Unidad 1  Programación Lineal

36

Ejemplo 4:Una empresa fabrica dos productos, A y B. En su elaboración, cada producto debe pasar por dos secciones. El suministro de mano de obra de la sección 1 es 100 horas y el de la sección 2 es 200 horas.

El tiempo de mano de obra cuesta $2 por hora en la sección 1 y $1,5 en la sección 2. Las horas de mano de obra necesarias por unidad de cada producto son las siguientes:

Producto A Producto BSección 1 4 3Sección 2 2 8

La cantidad máxima de unidades de B que puede venderse es igual a treinta; la de A es veinticuatro. La materia prima para cada producto cuesta $5 por unidad. El precio unitario de A es $30 y el de B es $25$

a) Construya el modelo de PL correspondiente.

Page 37: Unidad 1  Programación Lineal

37

1.3 Solución de Problemas PL

Existen varias métodos, entre ellos se tiene

1.3.1 Método Gráfico

1.3.2 Método Simplex

Page 38: Unidad 1  Programación Lineal

38

1.3.1 Método Gráfico

Este método es muy limitado por la incapacidad de visualizar más de tres dimensiones. Sin embargo es recomendable usarlo para fijar los conceptos que son aplicables a los otros métodos de resolución.

Page 39: Unidad 1  Programación Lineal

39

Los pasos a seguir son:

1. Construir el modelo

2. Graficar cada una de las restricciones en el sistema formado por las variables de decisión.

3. Identificar la región (zona) factible

4. Determinar el valor objetivo (VO) a partir de la función objetivo en cada uno de los vértices de la zona factible.

Si es minimizar, considerar el menor o el mayor en caso de maximizar.

Page 40: Unidad 1  Programación Lineal

40

Ejemplo

PROTRAC produce dos líneas de equipo pesado. Una de estas líneas de productos (llamada equipo para remoción de escombros) se destina esencialmente a aplicaciones de construcción. La otra línea (llamada equipos forestales está destinada a la industria maderera. El miembro más grande de la línea de equipos para remover escombro (el E-9) y el miembro mayor de la línea de equipos forestales (el F-9) se producen en el mismo departamento y con el mismo equipo. Haciendo uso de las predicciones económicas para el próximo mes, el gerente de mercadotecnia de PROTAC juzga que durante ese periodo será posible vender los E-9 y los F-9 que la empresa pueda producir. La administración debe ahora recomendar una meta de producción para el próximo mes. Es decir, ¿cuántos E-9 y F-9 deben producirse?. En la toma de decisión, los principales factores a considerar son los siguientes:

Page 41: Unidad 1  Programación Lineal

41

1. PROTRAC tendrá una utilidad de $5.000 por cada E-9 que se venda y $4.000 por cada F-9.

2. Cada producto pasa por operaciones mecánicas tanto en el departamento A como en el departamento B

3. Para la producción del próximo mes, estos dos departamentos tienen disponibles 150 y 160 horas respectivamente. Cada E-9 consume 10 horas en el departamento A y 20 horas en el departamento B, mientras que cada F-9 consume 15 horas en el departamento A y 10 horas en el departamento B.

Page 42: Unidad 1  Programación Lineal

42

4. Con objeto de cumplir un compromiso con el sindicato, el total de horas de trabajo que se dedicarán a la verificación de los productos terminados del próximo mes no puede ser menor en 10% a una meta establecida de 150 horas. Esta actividad se realiza en un tercer departamento que no tiene relación con los departamentos A y B. Cada E-9 requiere de 30 horas de comprobación y cada F-9, 10 horas.

5. Con el objeto de mantener su posición actual en el mercado, la alta gerencia ha decretado que para la política de operación es necesario construir al menos un F-9 por cada 3 E-9.

6. Un consumidor importante ha ordenado un total de por lo menos cinco aparatos (en cualquier combinación de E-9 y F-9) para el próximo mes, así es que por lo menos debe producirse esa cantidad

Page 43: Unidad 1  Programación Lineal

43

Modelo de PL

a) Variables de decisión:

b) Maximizar Z:

c) Sujeto a:

Page 44: Unidad 1  Programación Lineal

44

Gráfica de PROTRACGráfica de PROTRAC

Zona factible

Page 45: Unidad 1  Programación Lineal

45

F17

16

15

14

13

12

11

10

9

8

7

6

5

4 (E-3F)

3

2

1

0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 E(10E+15F)

(20E+10F)

(30E+10F) (E+F)

A B

CD

FO

Gráfica de PROTRAC y función UtilidadGráfica de PROTRAC y función Utilidad

Page 46: Unidad 1  Programación Lineal

46

17

16

15

14

13

12

11

10

9

8

7

6

5

4 (E-3F)

3

2

1

0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 E(10E+15F)

(20E+10F)

(30E+10F) (E+F)

A B

CD

FO

Gráfica de PROTRAC y función UtilidadGráfica de PROTRAC y función Utilidad

Solución óptima

Page 47: Unidad 1  Programación Lineal

47

Cálculo de E y F

(Vértice C: Resolver el sistema)

10E + 15F = 150

20E + 10F = 160

E = 4,5

F = 7

y VO = 5.000(4,5) + 4.000(7)

22.500 + 28.000

VO = 50.500

Page 48: Unidad 1  Programación Lineal

48

Consumo: (horas)

Depto A: 10(4,5) + 15(7) = 150

Depto B: 20(4,5) +10(7) = 160

Depto Pruebas: 30(4,5) + 10(7) = 205

En los departamentos A y B el consumo es igual a la disponibilidad en cambio en el departamento de pruebas se consumió más del mínimo exigido.

Page 49: Unidad 1  Programación Lineal

49

1.3.2 Método Simplex

1. Forma estándar del Modelo de PL

2. Soluciones Básicas

3. Método Simplex Primal: Algoritmo

Page 50: Unidad 1  Programación Lineal

A. Forma estándar del Modelo de PL

• Todas las restricciones son ecuaciones (con

segundos miembros no negativos

• Todas las variables son no negativas

• La función Objetivo puede ser maximización

o minimización

Page 51: Unidad 1  Programación Lineal

51

A.1 Restricciones

Una restricción del tipo () puede convertirse en ecuación mediante la suma de una variable de holgura (restando una variable de exceso) al primer miembro de la restricción.

Ejemplo:1) desigualdad: 3x1 + 12x2 20

igualdad 3x1 + 12x2 + x3 = 20 con x3 0

2) desigualdad: 8x1 + 10x2 120

igualdad 8x1 + 10x2 - x4 = 120 con x4 0

Page 52: Unidad 1  Programación Lineal

52

A.2 Segundo miembro no negativo

Se multiplica la desigualdad (ecuación) por -1

Ej. 3X1 + 2X2 -5

-3X1 - 2X2 <= 5

Page 53: Unidad 1  Programación Lineal

53

A.3 Variables irrestrictas

Una variable irrestricta (no restringida) xi puede expresarse en términos de dos variables no negativas mediante el uso de la sustitución:

La sustitución debe realizarse en todas las restricciones y en la función objetivo

0, ''' ii xx'''iii xxx

Page 54: Unidad 1  Programación Lineal

54

Ejemplo:

Escriba el siguiente modelo de PL en la forma estándar:

MAX z = 2x1 + 3x2

sujeto a

x1 + x2 = 10

-2x1 + 3x2 -5

7x1 - 4x2 6

x1 irrestricta y

x2 0

Forma Estándar

Page 55: Unidad 1  Programación Lineal

55

Solución

Page 56: Unidad 1  Programación Lineal

56

A.4 Función Objetivo

El modelo estándar de programación lineal puede ser utilizado para resolver problemas del tipo de maximización o de minimización, algunas veces sirve para convertir una forma a la otra.

La maximización de una función equivale a la minimización del negativo de la misma función y viceversa.

Ejemplo: MAX z = 5x1 + 3x2 + 5x3

es matemáticamente equivalente a

MIN (-z) = -5x1 - 3x2 - 5x3

Page 57: Unidad 1  Programación Lineal

57

B. Soluciones Básicas

En un PL con m ecuaciones y n incógnitas• Una solución básica asociada se determina haciendo n-m

variables iguales a cero y luego, resolviendo las m ecuaciones con las restantes m incógnitas, siempre que la solución exista y sea única

• En la PL nos referimos a las n-m variables que se hacen cero como variables no básicas (externas), y a las m variables restantes como variables básicas (siempre que exista una solución única).

Se dice que una solución básica es factible si todos los valores de su solución son no negativos

Page 58: Unidad 1  Programación Lineal

58

Algoritmo del método Simplex

INICIO

Obtener Forma Estándar (forma aumentada)

Construir tabla inicial

Mientras NO SEA Óptimo

{

Identificación variables de entrada/Salida

Desarrollo de la tabla revisada

}

FIN

Page 59: Unidad 1  Programación Lineal

59

C. Método Simplex Primal

Tabla Simplex General

Cj C1 C2 .. Cn 0 0 .. 0

Variables Valores de

Básicas Solución X1 X2 .. Xn Xn+1 Xn+2 .. Xn+m

0 Xn+1 b1 a11 a12 .. a1n 1 0 .. 0

0 Xn+2 b2 a21 a22 .. a2n 0 1 .. 0

. .. .. .. .. .. .. .. .. .. ..

. .. .. .. .. .. .. .. .. .. ..

0 Xn+m bm am1 am2 .. amn 0 0 .. 1

Zj

Cj - Zj XXX

Construcción de la tabla inicial

Page 60: Unidad 1  Programación Lineal

60

Ejemplo:

MAX Z = 3 X1 + 2 X2

s a

1) X1 + 2 X2 <= 6

2) 2 X1 + X2 <= 8

3) - X1 + X2 <= 1

4) X2 <= 2

X1, X2 >= 0

Dado el siguiente PL encontrar su solución aplicando el método Simplex

Page 61: Unidad 1  Programación Lineal

61

Forma Estándar (aumentada)

MAX Z = 3 X1 + 2 X2 + 0X3 + 0 X4 + 0 X5 + 0 X6

s a

1) X1 + 2 X2 + X3 + 0 X4 + 0 X5 + 0 X6 = 6

2) 2 X1 + X2 + 0 X3 + X4 + 0 X5 + 0 X6 = 8

3) - X1 + X2 + 0 X3 + 0 X4 + X5 + 0 X6 = 1

4) 0 X1 + X2 + 0 X3 + 0 X4 + 0 X5 + X6 = 2

X1, X2, X3, X4, X5, X6 >= 0

Page 62: Unidad 1  Programación Lineal

62

Cj 3 2 0 0 0 0

Básica Solución X1 X2 X3 X4 X5 X6

0 X3 6 1 2 1 0 0 0

0 X4 8 2 1 0 1 0 0

0 X5 1 -1 1 0 0 1 0

0 X6 2 0 1 0 0 0 1

Zj

Cj - Zj XXX

Tabla Inicial

Page 63: Unidad 1  Programación Lineal

63

Solución Inicial:Variable Entrante y Saliente

Cj 3 2 0 0 0 0

Básica Solución X1 X2 X3 X4 X5 X6

0 X3 6 1 2 1 0 0 0 6

0 X4 8 2 1 0 1 0 0 4

0 X5 1 -1 1 0 0 1 0 -1

0 X6 2 0 1 0 0 0 1

Zj 0 0 0 0 0 0 0

Cj - Zj XXX 3 2 0 0 0 0

a)

b) (menor positivo determina la variable que sale

Mayor contribución

Page 64: Unidad 1  Programación Lineal

64

Instrucciones

a) Cj- Zj El mayor para variable entranteb) Se divide la columna solución por los coeficientes de la columna de la variable que entra y se elige el menor de los positivosc) Como la variable que entra es solución entonces la columna debe ser de ceros y un 1

i) Se divide la fila completa por el pivote (valor de la intersección fila columna)ii) Para convertir los otros coeficientes a cero se utiliza la fila resultante del punto anterior

se multiplica por algun coeficiente de tal forma que al sumarlo (restarlo) a la fila de interésel coeficiente sea cero

-> Para la fila de X3 se multiplica por -1 y se suma

-> Para la fila de X5 sólo hay que sumar

-> Para la fila de X6 ya es un cero

La nueva tabla es:

Page 65: Unidad 1  Programación Lineal

65

Cj 3 2 0 0 0 0Básica XX X1 X2 X3 X4 X5 X6

0 X3 2 0 1 1/2 1 - 1/2 0 03 X1 4 1 1/2 0 1/2 0 00 X5 5 0 1 1/2 0 1/2 1 00 X6 2 0 1 0 0 0 1

Z 12 3 1 1/2 0 1 1/2 0 0Cj-Zj XX 0 1/2 0 -1 1/2 0 0

Nueva Tabla

Page 66: Unidad 1  Programación Lineal

66

Segunda Iteración

La nueva tabla es:

Cj 3 2 0 0 0 0Base XX X1 X2 X3 X4 X5 X6

0 X3 2 0 1,5 1 -0,5 0 03 X1 4 1 0,5 0 0,5 0 00 X5 5 0 1,5 0 0,5 1 00 X6 2 0 1,0 0 0,0 0 1

Z 12 3 1,5 0 1,5 0 0Cj-Zj XX 0 0,5 0 -1,5 0 0

a)Se hace la prueba de optimalidad

Page 67: Unidad 1  Programación Lineal

67

Tabla resultante

Cj 3 2 0 0 0 0Base XX X1 X2 X3 X4 X5 X6

2 X2 1 1/3 0 1 2/3 - 1/3 0 03 X1 3 1/3 1 0 - 1/3 2/3 0 00 X5 3 0 0 -1 1 1 00 X6 2/3 0 0 - 2/3 1/3 0 1

Z 12 2/3 3 2 1/3 1 1/3 0 0Cj-Zj XX 0 0 - 1/3 -1 1/3 0 0

!Cumple la prueba de optimalidad!

Page 68: Unidad 1  Programación Lineal

68

Un Problema de Minimización (Penalización: M)

MIN Z = 2 X1 + 8 X2

sa

1) 5 X1 + 10 X2 = 150

2) X1 20

3) X2 14

X1 0

Page 69: Unidad 1  Programación Lineal

69

Forma estándar:

Restricciones:

1) Ya es una igualdad: 5 x1 + 10x2 = 150

2) Tiene variable de holgura: x1 + x4 = 20

3) Tiene una variable de exceso: x2 - x6 = 14

Resumen:

5 x1 + 10x2 = 150

x1 + x4 = 20

x2 - x6 = 14¡¡ No es posible determinar un grupo de variables básicas !!

Page 70: Unidad 1  Programación Lineal

70

Forma estándar:

En el ejemplo anterior (maximización) todas las restricciones tenían variables de holgura las que se consideraban como variables básicas, pero no es así en este caso, por lo tanto hay que que agregar variables artificiales (X3 y X5) asociadas a un costo muy alto (M) para asegurarse que al final sean variables externas y no participen en la solución, para las restricciones 1) y 3). Estas variables artificiales participan en la función objetivo multiplicadas por el coeficiente M.

Page 71: Unidad 1  Programación Lineal

71

Modelo Estándar(Aumentado)

MIN Z = 2 X1 + 8 X2 + M X3 + 0 X4 + M X5 + 0 X6

1) 5 X1 + 10 X2 + X3 + 0 X4 + 0 X5 + 0 X6 = 150

2) X1 + 0 X2 + 0 X3 + X4 + 0 X5 + 0 X6 = 20

3) 0 X1 + X2 + 0 X3 + 0 X4 + X5 + - X6 = 14

X1, X2, X3, X4, X5, X6 >= 0

Page 72: Unidad 1  Programación Lineal

72

Tabla Inicial

Las variables básicas son: X3, X4 y X5

Cj 2 8 M 0 M 0

Base Solución X1 X2 X3 X4 X5 X6

M X3 150 5 10 1 0 0 0

0 X4 20 1 0 0 1 0 0

M X5 14 0 1 0 0 1 -1

Zj

Cj - Zj XXX

Page 73: Unidad 1  Programación Lineal

73

Iteración 1

Cj 2 8 M 0 M 0

Base Solución X1 X2 X3 X4 X5 X6

M X3 150 5 10 1 0 0 0

0 X4 20 1 0 0 1 0 0

M X5 14 0 1 0 0 1 -1

Zj 164M 5M 11M M 0 M -M

Cj - Zj XXX 2-5M 8-11M 0 0 0 M

Entra X2 y sale X5

Page 74: Unidad 1  Programación Lineal

74

Iteración 2

Cj 2 8 M 0 M 0

Base Solución X1 X2 X3 X4 X5 X6

M X3 10 5 0 1 0 -10 100 X4 20 1 0 0 1 0 0

8 X2 14 0 1 0 0 1 -1

Zj 112+10M 5M 8 M 0 -10M+8 10M-8

Cj - Zj XXX 2-5M 0 0 0 11M-8 -10M+8

Entra X6 y sale X3

Page 75: Unidad 1  Programación Lineal

75

Iteración 3

Cj 2 8 M 0 M 0

Base Solución X1 X2 X3 X4 X5 X6

0 X6 1 0,5 0 0,1 0 -1 1

0 X4 20 1 0 0 1 0 0

8 X2 15 0,5 1 0,1 0 0 0

Zj 120 4 8 0,8 0 0 0

Cj - Zj XXX -2 0 M-0,8 0 M 0

Entra X1 y sale X6

Page 76: Unidad 1  Programación Lineal

76

Situación Final

Base Solución X1 X2 X3 X4 X5 X6

2 X1 2 1 0 0,2 0 -2 2

0 X4 18 0 0 -0,2 1 2 -2

8 X2 14 0 1 0 0 1 -1

Zj 116 2 8 0,4 0 4 -4

Cj - Zj XXX 0 0 M-0,4 0 M-4 4

La solución es óptima (todos los elementos de la última fila son cero o positivos).

Page 77: Unidad 1  Programación Lineal

77

1. 4 Análisis de sensibilidad

Sensibilidad implica preguntarse ¿qué sucedería sí …

A) Cambia un coeficiente del lado derecho de las restricciones

B) Cambia uno de los coeficientes de la función objetivo

Page 78: Unidad 1  Programación Lineal

78

1. 4.1 Interpretación Gráfica

Page 79: Unidad 1  Programación Lineal

79

Ejemplo:

Recordando el problema de Protac.

Max Z: 5.000 E + 4.000 F

sa

10 E + 15 F ≤ 15020 E + 10 F ≤ 16030 E + 10 F ≥ 135 E - 3 F ≤ 0 E + F ≥ 5 E ≥ 0 y F ≥ 0

Page 80: Unidad 1  Programación Lineal

80

A) Cambios en los términos independientesLa solución era:

E = 4,5

F = 7

y Z = 50.500

Supongamos

a) Que se dispone de una hora adicional en el departamento A (151 horas)

b) Que se dispone de una menos en el departamento A (149 horas)

c) Lo anterior pero para el departamento B

Page 81: Unidad 1  Programación Lineal

81

Page 82: Unidad 1  Programación Lineal

82

Trazado de la gráfica

Caso a)

10 E + 15 F =151 => E = 151/10 y F = 151/15

Esta recta queda un poco desplazada a la derecha. Su pendiente no cambia, por tanto el punto C se ha trasladado al punto C’. La solución se mantiene en la intersección de las rectas 10 E + 15 F = 151

20 E + 10 F =160

Page 83: Unidad 1  Programación Lineal

83

C’

Page 84: Unidad 1  Programación Lineal

84

Trazado de la gráfica

Caso b )

10 E + 15 F =149 => E = 149/10 y F = 149/15

Esta recta queda un poco desplazada a la izquierda. Su pendiente no cambia, por tanto el punto C se ha trasladado al punto C’’. La solución se mantiene en la intersección de las rectas 10 E + 15 F = 149

20 E + 10 F = 160

Page 85: Unidad 1  Programación Lineal

85

C’’

Page 86: Unidad 1  Programación Lineal

86

Trazado de la gráfica F17

16

15

14

13

12

11

10

9

8

7 C6 C''5

4 (E-3F)

3

2

1

0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 E(10E+15F)

(20E+10F)

(30E+10F) (E+F)

A B

C'D

FO

Page 87: Unidad 1  Programación Lineal

87

La solución ahora es:

Departamento A (±1 lado derecho)

a) E = 4,45 F = 7,1 y Z = 50.650

b) E = 4,55 F = 7,1 y Z = 50.350

Departamento B (±1 lado derecho)

c1) E = 4,575 F = 6,95 y Z = 50.675

c2) E = 4,425 F = 7,05 y Z = 50.325

Page 88: Unidad 1  Programación Lineal

88

Diferencia de Z:

Departamento A (±1 lado derecho)

a) Z = 50.500 y Z’ = 50.650 ΔZ = 150

b) Z = 50.500 y Z’ = 50.350 ΔZ = -150

Departamento B (±1 lado derecho)

c1) Z = 50.500 y Z’ = 50.675 ΔZ = 175

c2) Z = 50.500 y Z’ = 50.325 ΔZ = -175

Page 89: Unidad 1  Programación Lineal

89

Definición:

Precio dual, valor marginal o precio sombra es el cambio incremental en los beneficios por cambio unitario en el término independiente de una restricción

Page 90: Unidad 1  Programación Lineal

90

B) Cambios unitarios en los coeficientes de la función objetivo

Coeficiente de E: 5001 Z = 50.504,5

E: 4999 Z = 50.495,5

Coeficiente de F: 4001 Z = 50.507

F: 3999 Z = 50.493

Page 91: Unidad 1  Programación Lineal

91

1. 4. 2 Interpretación de la Tabla Simplex:

Información que se puede obtener de la tabla simplex

La solución óptima

• El estado de los recursos

• Los precios duales

• Sensibilidad de la solución óptima a cambios de disponibilidad de recursos, ganancia marginal (coef. de la FO) y uso de recursos.

Page 92: Unidad 1  Programación Lineal

92

Cj 3 2 0 0 0 0Base XX X1 X2 X3 X4 X5 X6

2 X2 1 1/3 0 1 2/3 - 1/3 0 03 X1 3 1/3 1 0 - 1/3 2/3 0 00 X5 3 0 0 -1 1 1 00 X6 2/3 0 0 - 2/3 1/3 0 1

Z 12 2/3 3 2 1/3 1 1/3 0 0Cj-Zj XX 0 0 - 1/3 -1 1/3 0 0

Tabla resultante: Solución Óptima

Page 93: Unidad 1  Programación Lineal

93

Solución óptima (para el problema de maximización)

Variable de Valor

decisión óptimo Decisión

X1 3 1/3 Producir 3,333 ton pintura exterior

X2 1 1/3 Producir 1,333 ton pintura interior

Z 12 2/3 Ganancia resultante unidades $

Page 94: Unidad 1  Programación Lineal

94

Estado de los Recursos

Clasificación de las restricciones: escasa, abundante ya sea que la solución óptima “consuma” o no la cantidad disponible del recurso.

Se determina a partir de las variables de holgura:

X3 = 0 Escasa Materia Prima A

X4 = 0 Escasa Materia Prima B

X5 = 3 Abundante Límite en exceso para X1 sobre X2

X6 = 2/3 Abundante Límite en la demanda de X1

Page 95: Unidad 1  Programación Lineal

95

Precio Dual (Valor unitario de un recurso)

• y1 = 1/3 miles de unid mon/ton adicional materia prima A

• y2 = 1 1/3 miles de unid mon/ton adicional materia prima B

• y3 = 0

• y4 = 0

Esta información se obtiene de la tabla simplex óptima considerando los coeficientes de la fila de Z

Base Solución X1 X2 X3 X4 X5 X6

Z 12 2/3 3 2 1/3 1 1/3 0 0

Page 96: Unidad 1  Programación Lineal

96

El mismo resultado se puede obtener de la ecuación de Z óptimo:

Z = 12 2/3 - (1/3 X3 + 1 1/3 X4 + 0 X5 + 0 X6)

Si se cambia X3 de su nivel cero actual, Z cambiará a nivel de 1/3 de miles de unidad monetaria por tonelada. Pero un cambio en X3 equivale a cambiar el recurso A en una cantidad igual

X1 + 2 X2 + X3 = 6

Esto significa que el precio dual de la materia prima A es 1/3

Para la materia prima B es 1 1/3 y para los recursos 3 y 4 son cero.

Page 97: Unidad 1  Programación Lineal

97

1. Cambio máximo en la disponibilidad de Recursos

• Cambiar el recurso materia prima A en la cantidad D1

Esto significa que el recurso materia prima A será 6 + D1

Si D1 > 0, se produce un aumento

Si D1 < 0, se produce una disminución

Page 98: Unidad 1  Programación Lineal

98

¿Cómo hacerlo?

A la restricción inicial agregar D1 y resolver aplicando simplex

El cambio sólo afecta a la solución (el segundo miembro), considerando que las constantes del segundo miembro nunca se utilizan de pivote.

Page 99: Unidad 1  Programación Lineal

99

Iteraciones sucesivas conducen a:

Iteración

Ecuación 0 1 2 (óptima)

z 0 12 12 2/3 + 1/3 D1

1 6 + D1 2+ D1 4/3 + 2/3 D1

2 8 4 10/3-1/3 D1

3 1 5 3 - 1 D1

4 2 2 2/3 - 2/3 D1

Page 100: Unidad 1  Programación Lineal

100

Cj 3 2 0 0 0 0Base Solución X1 X2 X3 X4 X5 X6

2 X2 1 1/3 0 1 2/3 - 1/3 0 03 X1 3 1/3 1 0 - 1/3 2/3 0 00 X5 3 0 0 -1 1 1 00 X6 2/3 0 0 - 2/3 1/3 0 1

Z 12 2/3 3 2 1/3 1 1/3 0 0Cj-Zj XX 0 0 - 1/3 -1 1/3 0 0

Tabla: Solución óptima

Page 101: Unidad 1  Programación Lineal

101

¿Qué hacer con toda esta información?¿Qué hacer con toda esta información?

• Procurar que la solución siga siendo factible

Esto significa que las variables básicas no deben ser negativas. Mantener la no negatividad

1) X2 = 4/3 +2/3 D1 0

2) X1 = 10/3 -1/3 D1 0

3) X5 = 3 - D1 0

4) X6 = 2/3 -2/3 D1 0

Page 102: Unidad 1  Programación Lineal

102

Se consideran dos casos:

• Caso 1: D1 >0

1) Se satisface con cualquier valor

2) D1 10

3) D1 3

4) D1 1

En consecuencia D1 debe ser a lo más 1

Page 103: Unidad 1  Programación Lineal

103

• Caso 2: D1 < 0

2), 3) y 4) se satisfacen siempre

1) D1 -2

en este caso D1 -2

Resumen: -2 D1 1

6 - 2 Materia prima A 6+1

4 4 Materia prima A Materia prima A 7 7

Page 104: Unidad 1  Programación Lineal

104

• Haciendo el mismo análisis para la materia prima B se tiene:

-2 D2 4

8 - 2 Materia prima B 8+4

6 6 Materia prima B Materia prima B 12 12

Page 105: Unidad 1  Programación Lineal

105

2. Cambio máximo en la relación Utilidad/Costo marginal

La FO nunca se utiliza como ecuación pivote, por lo tanto cualquier cambio en sus coeficientes la afectarán sólo a ella en la tabla óptima.

Pueden ocurrir dos casos: que las variables sean básicas o no en tabla óptima.

Page 106: Unidad 1  Programación Lineal

106

Caso 1: Variables básicas

Cambiar la ganancia marginal de X1 de 3 a 3 + D1

D1 puede ser positivo o negativo

La FO tendrá la forma

Z = (3+D1)X1 + 2X2

Utilizando este nuevo coeficiente se llega a la siguiente tabla óptima:

Page 107: Unidad 1  Programación Lineal

107

Cj 3 2 0 0 0 0Base Solución X1 X2 X3 X4 X5 X6

2 X2 1 1/3 0 1 2/3 - 1/3 0 03 X1 3 1/3 1 0 - 1/3 2/3 0 00 X5 3 0 0 -1 1 1 00 X6 2/3 0 0 - 2/3 1/3 0 1

Z A 0 0 B C 0 0Cj-Zj XX 3 2 -B -C 0 0

A= 12 1/3 + 10/3 D1 B = 1/3 - 1/3 D1 C = 4/3 + 2/3 D1

Los únicos cambios en los coeficientes no básicos X3 y X4 de la ecuación de Z

Page 108: Unidad 1  Programación Lineal

108

Estos cambios pueden determinarse de la tabla original, multiplicando los coeficientes no básicos y el segundo miembro de la fila de X1 por D1, y luego sumandolo a la fila Z óptimo.

Cj 3 2 0 0 0 0Base Solución X1 X2 X3 X4 X5 X6

2 X2 1 1/3 0 1 2/3 - 1/3 0 03 X1 3 1/3 1 0 - 1/3 2/3 0 00 X5 3 0 0 -1 1 1 00 X6 2/3 0 0 - 2/3 1/3 0 1

Z 12 2/3 0 0 1/3 1 1/3 0 0Cj-Zj XX 3 2 - 1/3 -1 1/3 0 0

A= 12 1/3 + 10/3 D1 B = 1/3 - 1/3 D1 C = 4/3 + 2/3 D1

Page 109: Unidad 1  Programación Lineal

109

Para el caso de maximización:

1/3 - 1/3 D1 0 y

4/3 + 2/3 D1 0

de la primera D1 1

y de la segunda D1 -2

-2 D1 1

Finalmente:

3-2 C1 3 + 1

1 C1 4

¡¡¡¡¡ Inténtelo para C2 !!!!!

Page 110: Unidad 1  Programación Lineal

110

Caso 2: Variables no básicas

Un cambio en los coeficientes objetivos pueden afectar sólo a los coeficientes de la ecuación de Z (la columna correspondiente no se utiliza como pivote).

El caso en estudio no sirve porque X1 y X2 son básicas en la tabla óptima.

Page 111: Unidad 1  Programación Lineal

111

Ejemplo:Sea Z = 5X1 + 2X2

para las mismas restricciones del ejemplo en estudio.

La tabla resultante es:

Cj 3 2 0 0 0 0Base Solución X1 X2 X3 X4 X5 X6

2 X3 2 0 1 1/2 1 - 1/2 0 03 X1 4 1 1/2 0 1/2 0 00 X5 5 0 1 1/2 0 1/2 1 00 X6 2 0 1 0 0 0 1

Z 20 0 1/2 0 2 1/2 0 0Cj-Zj XX 3 1 1/2 0 -2 1/2 0 0

Page 112: Unidad 1  Programación Lineal

112

X2 es ahora no básica

El objetivo es cambiar su coeficiente C2 = 2 a C2 + D2 y luego encontrar el intervalo.

Al aplicar el nuevo coeficiente habrá un cambio en el coeficiente de 0,5 a 0,5 - D2

En general, el cambio D del coeficiente objetivo original de una variable no básica conduce SIEMPRE al decremento en la misma cantidad del coeficiente objetivo en la tabla óptima.

La tabla permanecerá óptima en tanto que 0,5 -D2 0

esto es, D2 0,5

Page 113: Unidad 1  Programación Lineal

113

El intervalo es

-infinito D2 0,5 +2

-infinito D2 2,5

Page 114: Unidad 1  Programación Lineal

114

Ejemplo:

Resolver el siguiente PL empleando simplex y realizar un análisis de sensibilidad.

MAX Z = 3X1 + 2X2 +5X3

saX1 + 2X2 + X3 ≤ 500

3X1 + 2X3 ≤ 460 X1 + 4X2 ≤ 420

X1 ,X2 , X3 ≥ 0

Page 115: Unidad 1  Programación Lineal

115

1.5 Método Simplex DualCuando los problemas de PL no tienen una solución factible básica inicial con sólo holguras, se pueden resolver sin utilizar variables artificiales, entregando la misma información.

• DEFINICIÓN DEL PROBLEMA DUAL

El dual es un problema de PL que se obtiene matemáticamente de un modelo primal de PL dado. Los problemas primal y dual están relacionados a tal grado que la solución de uno de ellos conduce en forma automática a la solución del otro.

Page 116: Unidad 1  Programación Lineal

116

• En la mayoría de los procedimientos de PL, el dual se define para varias formas del primal, dependiendo de los tipos de restricciones, de los signos de las variables y del sentido de la optimización.

• Se incluirá una definición única del problema dual que incluye automáticamente a todas las formas del primal. Se basa en el hecho de que el problema de PL debe calcularse en forma estándar antes de resolverlo mediante el método simplex o simplex dual, de esta manera al definir el problema dual mediante la forma estándar, los resultados serán consistentes con la información contenida en la tabla simplex..

Page 117: Unidad 1  Programación Lineal

117

n

jjj xcz

1

La forma estándar general del primal se define como:

maximizar o minimizar

n

jjij xa

1sujeto a i = 1, 2, ....., m

j = 1, 2, ..., n

xj 0

Notar que las n variables xj, incluyen los excesos y las holguras. El esquema se muestra en el siguiente diagrama:

Page 118: Unidad 1  Programación Lineal

118

Variables primalesX1 X2 .. Xj .. Xn

C1 C2 .. Cj .. Cn

a11 a12 .. a1j .. a1n b1 y1

a21 a22 .. a2j .. a2n b2 y2

.. .. .. .. .. .. ..

.. .. .. .. .. .. ..

am1 am2 .. amj .. amn bm ym

Segundomiembro derestricciones

duales

Coeficientesdel primer

miembro de lasrestricciones

duales

j-ésimarestricción

dual

Funcciónobjetivo del

dual

Variabledual

Page 119: Unidad 1  Programación Lineal

119

El diagrama muestra que el dual se obtiene simétricamente del primal de acuerdo con las siguientes reglas:

• Para toda restricción primal hay una variable dual• Para toda variable primal hay una restricción dual• Los coeficientes de las restricciones de una variable primal forman

los coeficientes del primer miembro de la restricción dual correspondiente, el coeficiente objetivo de la misma variable se convierte en el segundo miembro de las restricción dual; y el segundo miembro de la restricción primal se convierte en el coeficiente objetivo de la respectiva variable dual

Estas reglas indican que el problema dual tendrá m variables (y1, y2, ..., ym) y n restricciones, (correspondientes a x1, x2 ,...., xn).

Page 120: Unidad 1  Programación Lineal

120

En la tabla siguiente se muestra como determinar los elementos restantes del problema dual: sentido de la optimización, tipo de restricciones y el signo de las variables duales.

Función Objetivo DualEstándar del primal Función objetivo Restricciones VariablesMaximización Minimización IrrestrictasMinimización Maximización Irrestrictas

Todas las restricciones primales son ecuaciones y todas las variables son no negativas.

Page 121: Unidad 1  Programación Lineal

121

Ejemplo 1:

Primal Maximizar Z = 5 X1 + 12 X2 + 4 X3

sujeto a X1 + 2 X2 + X3 10 2 X1 - X2 + 3 X3 = 8

X1, X2, X3 0

Primal estándar Maximizar Z = 5 X1 + 12 X2 + 4 X3 + 0 X4

sujeto a X1 + 2 X2 + X3 + X4 = 10 2 X1 - X2 + 3 X3 +0 X4 = 8

X1, X2, X3 0

Page 122: Unidad 1  Programación Lineal

122

Dual Minimizar w = 10 y1 + 8 y2

sujeto a X1: y1 + 2 y2 5 X2: 2 y1 - y2 12 X3: y1 + 3 y2 4 X4: y1 + 0 y2 0 y1, y2 irrestricta

y1 es irrestricta, pero además está “dominada por y1 0, la restricción dual asociada con X4, entonces al eliminar la redundancia el modelo es:

Minimizar w = 10 y1 + 8 y2

sujeto a: y1 + 2 y2 5 2 y1 - y2 12 y1 + 3 y2 4

y1 0, y2 irrestricta

Dual Final

Page 123: Unidad 1  Programación Lineal

123

Unidad 2

Programación Lineal Aplicaciones

Page 124: Unidad 1  Programación Lineal

124

El objetivo general es encontrar el mejor plan de distribución, es decir, la cantidad que se debe enviar por cada una de las rutas desde los puntos de suministro hasta los puntos de demanda.

El “mejor plan” es aquel que minimiza los costos totales de envío, produzca la mayor ganancia u optimice algún objetivo corporativo.

Se debe contar con:

i) Nivel de oferta en cada fuente y la cantidad de demanda en cada destino.

ii) Costo de transporte unitario de mercadería desde cada fuente a cada destino.

2.1 Modelo de Transporte

Page 125: Unidad 1  Programación Lineal

125

También es necesario satisfacer ciertas restricciones:

1. No enviar más de la capacidad especificada desde cada punto de suministro (oferta).

2. Enviar bienes solamente por las rutas válidas.

3. Cumplir (o exceder) los requerimientos de bienes en los puntos de demanda.

2.1 Modelo de Transporte

Page 126: Unidad 1  Programación Lineal

126

2.1 Modelo de Transporte

Esquemáticamente se podría ver como se muestra en la siguiente figura

DestinosFuentes

1 1

22

nm Uni

dade

s de

dem

anda

Uni

dade

s de

ofe

rta

s2

sm

d2

s1d1

dn

.

...

Xij: cantidad transportada desde la fuente i al destino j

C11, X11

Cmn, Xmn

Cij: Costo del transporte unitario desde la fuente i al destino jdonde

Gráficamente: Para m fuentes y n destinos

Page 127: Unidad 1  Programación Lineal

127

Modelo general de PL que representa al modelo de Transporte

ox

dx

sx

xcZ

ij

j

m

iij

i

n

jij

m

i

n

jijij

1

1

1 1

j=1,2,...,n

i=1,2,...,m

El modelo implica que al menos la oferta debe ser igual a la demanda

para toda i y j

minimizar

s a a

2.1 Modelo de Transporte

Page 128: Unidad 1  Programación Lineal

128

Modelo general de PL que representa al modelo de Transporte

Modelo de transporte equilibrado: Oferta = Demanda

i

n

jij Sx

1

j=1, 2, 3,....,nj

m

iij Dx

1

i=1, 2, 3,....,m

0ijx para toda i y j

2.1 Modelo de Transporte

Page 129: Unidad 1  Programación Lineal

129

Aplicaciones del modelo de Transporte

El Modelo de Transporte no sólo es aplicable al movimiento de productos, sino que también, como modelo se puede aplicar a otras áreas tales como:

• Planificación de la Producción

• Control de Inventarios

• Control de Proveedores

• Otras

2.1 Modelo de Transporte

Page 130: Unidad 1  Programación Lineal

Ejemplo:

RPG tiene cuatro plantas ensambladoras en Europa. Están ubicadas en Leipzig, Alemania (1);Nancy, Francia (2); Lieja, Bélgica (3), y Tilburgo, Holanda (4). Las máquinas ensambladoras usadas en estas plantas se producen en Estados Unidos y se embarcan a Europa. Llegaron a los puertos de Amsterdan (1), Amberes (2) y El Havre (3).

Los planes de producción del tercer trimestre (julio a septiembre) ya han sido formulados. Los requerimientos (la demanda en destinos) de motores diesel E-4 son los siguientes:

2.1 Modelo de Transporte

Page 131: Unidad 1  Programación Lineal

Planta Cantidad de Motores

(1) Leipzig 400(2) Nancy 900(3) Lieja 200(4) Tilburgo 500

Total 2000

Puerto Cantidad de Motores

(1) Amsterdan 500

(2) Amberes 700

(3) El Hevre 800

Total 2000

La cantidad disponible de máquinas E-4 en los puertos(oferta en orígenes) son:

2.1 Modelo de Transporte

Page 132: Unidad 1  Programación Lineal

132

Los costos ($) de transporte de un motor desde un origen a un destino son:

Desde el origen

1 2 3 4

1 12 13 4 6

2 6 4 10 11

3 10 9 12 4

Al destino

2.1 Modelo de Transporte

Page 133: Unidad 1  Programación Lineal

133

1. Variables de decisión

Xij = número de motores enviados del puerto i a la planta j

i = 1, 2, 3

j = 1, 2, 3, 4

Construcción del modelo de PL

2. Función Objetivo

Minimizar Z = 12 X11 + 13 X12 + 4X13 + 6X14 + 6X21 + 4X22 + 10X23 + 11X24 + 10X31 + 9X32 + 12X34 + 4X14

2.1 Modelo de Transporte

Page 134: Unidad 1  Programación Lineal

134

X11 + X21 + X31 400

X12 + X22 + X32 900

X13 + X23 + X33 200

X14 + X24 + X34 500

1) Oferta: La cantidad de elementos enviados no puede exceder la cantidad disponible

X11 + X12 + X13 + X14 500

X21 + X22 + X23 + X24 700

X31 + X32 + X33 + X34 800

3. Restricciones:

2) Demanda: Debe satisfacerse la demanda de cada planta

Xij 0 para i=1, 2, 3; j= 1, 2, 3, 4

y de no negatividad

2.1 Modelo de Transporte

Page 135: Unidad 1  Programación Lineal

Solución del Modelo de Transporte

2.1 Modelo de Transporte

Page 136: Unidad 1  Programación Lineal

136

Algoritmos Específicos

2.1.1 Regla de la esquina noroeste (MEN)

2.1.2 Método por aproximación de Vogel (MAV)

2.1.3 Método del costo mínimo (MCM)

2.1.4 Método del paso secuencial y

2.1.5 DIMO (método de distribución modificada)

2.1 Modelo de Transporte

Page 137: Unidad 1  Programación Lineal

137

Descripción de los algoritmos

La regla de la esquina noroeste, el método de aproximación de Vogel y el método del costo mínimo son alternativas para encontrar una solución inicial factible.

El método del escalón y el DIMO son alternativas para proceder de una solución inicial factible a la óptima.

Por tanto, el primer paso es encontrar una solución inicial factible, que por definición es cualquier distribución de ofertas que satisfaga todas las demandas

2.1 Modelo de Transporte

Page 138: Unidad 1  Programación Lineal

138

Descripción de los algoritmos

Una vez obtenida una solución básica factible, el algoritmo procede paso a paso para encontrar un mejor valor para la función objetivo.

La solución óptima es una solución factible de costo mínimo

Para aplicar los algoritmos, primero hay que construir una tabla de transporte.

2.1 Modelo de Transporte

Page 139: Unidad 1  Programación Lineal

139

Tabla Inicial

DestinosOrigen 1 2 3 4 n Ofertas

1 C11 C12 C13 C14 .... C1n

2 C21 C22 C23 C24 .... C2n

3 C31 C32 C33 C34 .... C3n

... .... ..... .... .... ....

m Cm1 Cm2 Cm3 Cm4 .... Cmn

Demanda

2.1 Modelo de Transporte

Page 140: Unidad 1  Programación Lineal

140

Tabla Inicial del Ejemplo

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6500

2 6 4 10 11700

3 10 9 12 4800

Demanda 400 900 200 500 2000

2.1 Modelo de Transporte

Page 141: Unidad 1  Programación Lineal

141

2.1.1 Regla de la esquina Noroeste

Se inicia el proceso desde la esquina izquierda superior

Se ubican tantas unidades como sea posible en la ruta

Cantidad de Unidades = Mínimo(disponibilidad, demanda)

Las siguientes asignaciones se hacen o bien recorriendo hacia la derecha o bien hacia abajo.

Las demandas se satisfacen recorriendo sucesivamente de izquierda a derecha y las ofertas se destinan recorriendo de arriba hacia abajo.

2.1 Modelo de Transporte

Page 142: Unidad 1  Programación Lineal

142

Primera asignación

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 500

2 6 4 10 11700

3 10 9 12 4800

Demanda 0 400 900 200 500 2000

2.1 Modelo de Transporte

Page 143: Unidad 1  Programación Lineal

143

Hasta cuarta asignación

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 100 500

2 6 4 10 11700 0 700

3 10 9 12 4100 700 800

Demanda 0 400 0 900 200 500 2000

2.1 Modelo de Transporte

Page 144: Unidad 1  Programación Lineal

144

Esquina Noroeste: Solución final factible

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 100 500

2 6 4 10 11700 0 700

3 10 9 12 4100 200 500 0 800

Demanda 0 400 0 900 200 500 2000

Valor FO: 400*12+100*13+700*4+100*9+200*12+500*4= $14.200

2.1 Modelo de Transporte

Page 145: Unidad 1  Programación Lineal

145

2.1.2 Método de aproximación de Vogel (MAV)

MAV usa información de costos mediante el concepto de costo de oportunidad para determinar una solución inicial factible.

Seleccionar en una fila la ruta más barata y la que le sigue. Hacer su diferencia (penalidad), que es el costo adicional por enviar una unidad desde el origen actual al segundo destino y no al primero.

En nuestro caso, para el puerto1, C13 y C14; Penalidad = 6 - 4

MAV asigna un costo de penalidad por no usar la mejor ruta en esta fila.

2.1 Modelo de Transporte

Page 146: Unidad 1  Programación Lineal

146

2.1.2 Método de aproximación de Vogel

Lo anterior se repite para cada fila y cada columna, esto es, determinar todas las penalidades

Los pasos iterativos de MAV son los siguientes:

1. Identificar la fila o columna con la máxima penalidad.

2.Colocar la máxima asignación posible a la ruta no usada que tenga menor costo en la fila o columna seleccionada en el punto 1 (los empates se resuelven arbitrariamente)

3. Reajustar la oferta y demanda en vista de esta asignación.

4. Eliminar la columna en la que haya quedado una demanda 0 (o la fila con oferta 0), de consideraciones posteriores.

5. Calcular los nuevos costos de penalidad.

2.1 Modelo de Transporte

Page 147: Unidad 1  Programación Lineal

147

2.1.2 Método de aproximación de Vogel

El MAV continúa aplicando este proceso en forma sucesiva hasta que se haya obtenido una solución factible.

Los resultados obtenidos se muestran en las siguientes tablas

2.1 Modelo de Transporte

Page 148: Unidad 1  Programación Lineal

148

2.1.2 Método de aproximación de Vogel

PlantasPuertos 1 2 3 4 Oferta Penalidades

1 12 13 4 6 2500

2 6 4 10 11 2700

3 10 9 12 4 5800

Demanda 400 900 200 500 2000

Penalidades 4 5 6 2

Calculadas todas las penalidades, la mayor corresponde a la columna 3 (penalidad = 6)

Paso 1: Identificar máxima penalidad (fila o columna)

Paso 0: Cálculo de penalidades

2.1 Modelo de Transporte

Page 149: Unidad 1  Programación Lineal

149

2.1.2 Método de aproximación de Vogel

Paso 2: Asignación de unidades (MIN(oferta,demanda))

Paso 3:Reajuste de oferta y demanda

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6200 300 500

2 6 4 10 11700

3 10 9 12 4800

Demanda 400 900 0 200 500 2000

2.1 Modelo de Transporte

Page 150: Unidad 1  Programación Lineal

150

2.1.2 Método de aproximación de Vogel

Paso 4: Eliminar columna (fila) con demanda (oferta) 0Paso 4: Eliminar columna (fila) con demanda (oferta) 0

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6200 300 500

2 6 4 10 11700

3 10 9 12 4800

Demanda 400 900 0 200 500 2000

2.1 Modelo de Transporte

Page 151: Unidad 1  Programación Lineal

151

2.1.2 Método de aproximación de Vogel

Paso 5: Calcular los nuevos costos de penalidad

PlantasPuertos 1 2 3 4 Oferta Penalidades

1 12 13 4 6 6200 300 500

2 6 4 10 11 2700

3 10 9 12 4 5800

Demanda 400 900 0 200 500 2000

Penalidades 4 5 2

2.1 Modelo de Transporte

Page 152: Unidad 1  Programación Lineal

152

2.1.2 Método de aproximación de Vogel

Repitiendo los pasos anteriores, finalmente se llega a la siguiente solución

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6200 300 300 500

2 6 4 10 11700 0 700

3 10 9 12 4400 200 200 600 800

Demanda 400 900 0 200 200 500 2000

¿Es solución factible? ¿m + n - 1 = 6? SI

Costo: 200*4+300*6+700*4+400*10+200*9+200*4 = $12.000

2.1 Modelo de Transporte

Page 153: Unidad 1  Programación Lineal

153

2.1.3. Método del Costo Mínimo

1. Dada una tabla de transporte

2. Asignar la mayor cantidad de unidades a la variable (ruta) con el menor costo unitario de toda la tabla.

3. Tachar la fila o columna satisfecha.

4. Ajustar oferta y demanda de todas las filas y columnas

5. Si hay más de una fila o columna no tachada repetir los puntos 2, 3 y 4

Algoritmo

Fundamento

Asignar la mayor cantidad de unidades a una ruta disponible de costo mínimo

2.1 Modelo de Transporte

Page 154: Unidad 1  Programación Lineal

154

2.1.3. Método del Costo Mínimo (cont.)

Ejemplo: Aplicar MCM a la tabla de transporte

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6500

2 6 4 10 11700

3 10 9 12 4800

Demanda 400 900 200 500 2000

Unidades a asignar = MIN(200,400) = 200

Existen tres rutas costo mínimo. Elijamos la 1_3Paso 2

2.1 Modelo de Transporte

Page 155: Unidad 1  Programación Lineal

155

2.1.3. Método del Costo Mínimo (cont.)

Paso 3: Tachar fila o columna (columna 3)

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6200 300 500

2 6 4 10 11700

3 10 9 12 4800

Demanda 400 900 0 200 500 2000

Aún quedan más de una fila o columna sin tachar. Ir a paso 2

Ajustar ofertas y demandas (fila 1 y columna 3)

Paso 5

Paso 4

2.1 Modelo de Transporte

Page 156: Unidad 1  Programación Lineal

156

2.1.3. Método del Costo Mínimo (cont.)

Paso 4: Tachar ajustar fila 3 y columna 4

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6200 300 500

2 6 4 10 11700

3 10 9 12 4500 300 800

Demanda 400 900 0 200 0 500 2000

Aún quedan más de una fila o columna sin tachar. Ir a paso 2Paso 5

Paso 2: Ruta de costo menor -> 3_4 (ó 2_2)

Unidades = MIN(500,800) = 500

Paso 3: Tachar columna 4

2.1 Modelo de Transporte

Page 157: Unidad 1  Programación Lineal

157

2.1.3. Método del Costo Mínimo (cont.)

Paso 4: Tachar ajustar fila 2 y columna 2

Puertos 1 2 3 4 Oferta1 12 13 4 6

200 300 5002 6 4 10 0

700 0 7003 10 9 12 4

500 300 800Demanda 400 200 900 0 200 0 500 2000

Aún quedan más de una fila o columna sin tachar. Ir a paso 2Paso 5

Paso 2: Ruta de costo menor -> 2_2

Unidades = MIN(700,900) = 300

Paso 3: Tachar fila2

2.1 Modelo de Transporte

Page 158: Unidad 1  Programación Lineal

158

2.1.3. Método del Costo Mínimo (cont.)

Paso 4: Tachar ajustar fila 3 y columna 2

Puertos 1 2 3 4 Oferta1 12 13 4 6

200 300 5002 6 4 10 0

700 0 7003 10 9 12 4 100

200 500 300 800Demanda 400 200 900 0 200 0 500 2000

Aún quedan más de una fila o columna sin tachar. Ir a paso 2Paso 5

Paso 2: Ruta de costo menor -> 3_2

Unidades = MIN(200,300) = 200

Paso 3: Tachar columna 2

2.1 Modelo de Transporte

Page 159: Unidad 1  Programación Lineal

159

2.1.3. Método del Costo Mínimo (cont.)

Paso 4: Tachar ajustar fila 3 y columna 1

Puertos 1 2 3 4 Oferta1 12 13 4 6

200 300 5002 6 4 10 0

700 0 7003 10 9 12 4 100 0

100 200 500 300 800Demanda 300 400 200 900 0 200 0 500 2000

Aún quedan más de una fila o columna sin tachar. Ir a paso 2Paso 5

Paso 2: Ruta de costo menor -> 3_1

Unidades = MIN(400,100) = 100

Paso 3: Tachar fila 3

2.1 Modelo de Transporte

Page 160: Unidad 1  Programación Lineal

160

2.1.3. Método del Costo Mínimo (cont.)

Paso 4: Tachar ajustar fila 1 y columna 1

Puertos 1 2 3 4 Oferta1 12 13 4 6 0

300 200 300 5002 6 4 10 0

700 0 7003 10 9 12 4 100 0

100 200 500 300 800Demanda 300 400 200 900 0 200 0 500 2000

Queda sólo una fila sin tachar. TerminarPaso 5

Paso 2: Ruta de costo menor -> 1_1

Unidades = MIN(300,300) = 300

Paso 3: Tachar fila 1 ó columna 1 (sólo una de ellas)

2.1 Modelo de Transporte

Page 161: Unidad 1  Programación Lineal

161

2.1.3. Método del Costo Mínimo (cont.)

Comparación de los resultados

¿Es solución factible? ¿m + n - 1 = 6? SI

Costo: 300*12+200*4+700*4+100*10+200*9+500*4 = $12.000

Método Rutas Costo MEN 6 $14.200 MAV 6 $12.000 MCM 6 $12.000

Los tres métodos entregan soluciones básicas factibles, pero ninguno asegura que la solución sea óptima.

Conclusión

2.1 Modelo de Transporte

Page 162: Unidad 1  Programación Lineal

162

2.1.4. Método de Pasos Secuenciales

Este método comienza con una solución inicial factible.

En cada paso se intenta enviar artículos por una ruta que no se haya usado en la solución factible actual, en tanto se elimina una ruta usada actualmente.

En cada cambio de ruta debe cumplirse que:

1. La solución siga siendo factible y

2. Que mejore el valor de la función objetivo

El procedimiento termina cuando no hay cambio de rutas que mejoren el valor de la función.

Fundamento

2.1 Modelo de Transporte

Page 163: Unidad 1  Programación Lineal

163

2.1.4. Método de pasos secuenciales (cont..)

Usar la solución actual (MEN, MAV o MCM) para crear una trayectoria única del paso secuencial. Usar estas trayectorias para calcular el costo marginal de introducir a la solución cada ruta no usada.

Si todos los costos marginales son iguales o mayores que cero, terminar; se tendrá la solución óptima. Si no, elegir la celda que tenga el costo marginal más negativo (empates se resuelven arbitrariamente)

Usando la trayectoria del paso secuencial, determine el máximo número de artículos que se pueden asignar a la ruta elegida en el punto 2 y ajustar la distribución adecuadamente.

Regrese al paso 1

Algoritmo

1

2

3

4

2.1 Modelo de Transporte

Page 164: Unidad 1  Programación Lineal

164

2.1.4. Método de pasos secuenciales (cont..)

a) Ponga un signo + en la celda de interés no ocupada

b) Ponga un signo - en una celda usada de la misma fila

c) Ponga un + en una celda usada de la misma columna

El proceso continúa alternando los signos + y - tanto en las filas como en las columnas hasta que se obtenga una sucesión de celdas (trayectoria) que satisfagan dos condiciones

1. Hay un signo + en la celda desocupada original de interés, y

2. Cualquier fila o columna que tenga un signo + debe tener

también un signo - y viceversa.

Algoritmo Paso 1

2.1 Modelo de Transporte

Page 165: Unidad 1  Programación Lineal

165

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 1

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 100 500

2 6 4 10 11700 0 700

3 10 9 12 4100 200 500 0 800

Demanda 0 400 0 900 200 500 2000

Solución básica factible obtenida aplicando el método de la Esquina Noroeste

2.1 Modelo de Transporte

Page 166: Unidad 1  Programación Lineal

166

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 1

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 - + 100 500

2 6 4 10 11700 0 700

3 10 9 12 4100 + 200 - 500 0 800

Demanda 0 400 0 900 0 200 0 500 2000

Trayectoria 1: +C13-C12+C32-C33

2.1 Modelo de Transporte

Page 167: Unidad 1  Programación Lineal

167

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 1Plantas

Puertos 1 2 3 4 Oferta1 12 13 4 6

400 100 - + 100 5002 6 4 10 11

700 0 7003 10 9 12 4

100 + 200 - 500 0 800Demanda 0 400 0 900 0 200 0 500 2000

1: +(4)-(13)+(9)-(12)= -12 2: +(6)-(13)+(9)-(4) = -2

3: +(6)-(4)+(13)-(12)= 3 4: +(10)-(4)+(9)-(12) = 3

5: +(11)-(4)+(9)-(4) = 12 6: +(10)-(9)+(13)-(12)= 2

Costos de las Trayectorias

2.1 Modelo de Transporte

Page 168: Unidad 1  Programación Lineal

168

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 2

1: +(4)-(13)+(9)-(12)= -12 2: +(6)-(13)+(9)-(4) = -2

3: +(6)-(4)+(13)-(12)= 3 4: +(10)-(4)+(9)-(12) = 3

5: +(11)-(4)+(9)-(4) = 2 6: +(10)-(9)+(13)-(12)= 2

La solución factible NO es óptima !!

Se selecciona la trayectoria 1 (costo marginal más negativo)

2.1 Modelo de Transporte

Page 169: Unidad 1  Programación Lineal

169

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 3 (Generación de la nueva tabla)

¿Cuántas unidades se pueden asignar a la ruta elegida?

Acción Ruta Unidades disponibles en celdas decrecientes

Aumentar 1 unidad 1_3

Disminuir 1 unidad 1_2 100

Aumentar 1 unidad 3_2

Disminuir 1 unidad 3_3 200

2.1 Modelo de Transporte

Page 170: Unidad 1  Programación Lineal

170

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 - 100 + 100 500

2 6 4 10 11700 0 700

3 10 9 12 4200 + 100 - 500 0 800

Demanda 0 400 0 900 0 200 0 500 2000

Paso 3 (Generación de la nueva tabla)

Costo: $13.000Costo: $13.000

2.1 Modelo de Transporte

Page 171: Unidad 1  Programación Lineal

171

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 4

Volver al Paso 1:

Para cada trayectoria evaluar costo marginalPlantas

Puertos 1 2 3 4 Oferta1 12 13 4 6

400 100 100 5002 6 4 10 11

700 0 7003 10 9 12 4

200 100 500 0 800Demanda 0 400 0 900 0 200 0 500 2000

2.1 Modelo de Transporte

Page 172: Unidad 1  Programación Lineal

172

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 2: Elección de CMg menor

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 +12 100 +10 100 500

2 6 4 10 11-9 700 +3 +12 0 700

3 10 9 12 4-10 200 100 500 0 800

Demanda 0 400 0 900 0 200 0 500 2000

La celda más negativa es c 31 (-10) y la trayectoria es: C31 – C33 + C13 – C11

2.1 Modelo de Transporte

Page 173: Unidad 1  Programación Lineal

173

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 3 (Generación de la nueva tabla)

¿Cuántas unidades se pueden asignar a la ruta elegida?

Acción Ruta Unidades disponibles enceldas decrecientes

Aumentar 1 unidad 31

Disminuir 1 unidad 33 100

Aumentar 1 nidad 13

Disminuir 1 unidad 11 400

2.1 Modelo de Transporte

Page 174: Unidad 1  Programación Lineal

174

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 3 (Generación de la nueva tabla)

Costo: $12.000Costo: $12.000

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6300 200 100 500

2 6 4 10 11700 0 700

3 10 9 12 4100 200 500 0 800

Demanda 0 400 0 900 0 200 0 500 2000

2.1 Modelo de Transporte

Page 175: Unidad 1  Programación Lineal

175

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 4

Volver al Paso 1:

Para cada trayectoria evaluar costo marginalPlantas

Puertos 1 2 3 4 Oferta1 12 13 4 6

300 200 100 5002 6 4 10 11

700 0 7003 10 9 12 4

100 200 500 0 800Demanda 0 400 0 900 0 200 0 500 2000

2.1 Modelo de Transporte

Page 176: Unidad 1  Programación Lineal

176

2.1.4. Método de pasos secuenciales (cont..)

Algoritmo Paso 2: Determinar costos marginales

Todas rutas son no negativas (positivas o cero)

Solución factible óptima!!! $12.000

Compare esta solución con la obtenida con MAV y MCM ¿ ...?

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6300 +2 200 0 100 500

2 6 4 10 11+1 700 +13 +12 0 700

3 10 9 12 4100 200 +10 500 0 800

Demanda 0 400 0 900 0 200 0 500 2000

2.1 Modelo de Transporte

Page 177: Unidad 1  Programación Lineal

177

2.1.5. Método de Distribución Modificada (DIMO)Algoritmo

1. Usar la solución actual (NE, MAV o MCM) y las siguientes operaciones (a) y (b) para determinar el costo marginal de enviar material para cada una de las rutas no usadas.

Asociar a cada fila un índice ui y a cada columna un índice vj

a) Hacer u1 = 0. Encuéntrese los índices de las filas u2, ..., um y los índices de las columnas v1, ...., vn tales que cij = ui + vj para cada celda usada.

b) Sea eij = cij - (ui+vj) para cada celda no usada; eij será el costo marginal de introducir la celda (ruta) i, j a la solución.

Los pasos 2 a 4 son los mismos que en el método secuencial.

2.1 Modelo de Transporte

Page 178: Unidad 1  Programación Lineal

178

2.1.5. Método de Distribución Modificada (DIMO)

Aplicar el algoritmo al problema en estudio y comparar resultados obtenidos con los métodos anteriores

Comentar resultados

¿Qué explica que existan dos soluciones óptimas factibles?

2.1 Modelo de Transporte

Page 179: Unidad 1  Programación Lineal

179

2.1.5. Método de Distribución Modificada (DIMO)

Aplicación

Costo porRuta en uso motor ($) Ecuación

11 12 u1 + v1 = 12

12 13 u1 + v2 = 13

22 4 u2 + v2 = 4

32 9 u3 + v2 = 9

33 12 u3 + v3 = 12

34 4 u3 + v4 = 4

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 100 500

2 6 4 10 11700 0 700

3 10 9 12 4100 200 500 700 800

Demanda 0 400 0 900 200 500 2000

Paso 0: Asociar índices

ui

vj

2.1 Modelo de Transporte

Page 180: Unidad 1  Programación Lineal

180

2.1.5. Método de Distribución Modificada (DIMO)

Paso1.a) Solucionar la ecuación

Existen 6 ecuaciones y siete variables entonces se hace u1 = 0 (puede ser cualquiera) y se determina el resto de los índices

v1 = 12 v2 = 13 u2 = - 9 u3 = -4 v3 = 16 v4 = 8

Paso 1.b) Calcular los costos marginales para cada celda no usada.

eij = cij - (ui + vj)

2.1 Modelo de Transporte

Page 181: Unidad 1  Programación Lineal

181

2.1.5. Método de Distribución Modificada (DIMO)

Costos marginales para las celdas no usadas.

eij = cij - (ui + vj)

1) e13 = c13 - (u1 + v3)= 4 - (0 + 16) = -12

2) e14 = c14 - (u1 + v4)= 6 - (0 + 8) = -2

3) e21 = c21 - (u2 + v1)= 6 - (-9 + 13) = 2

4) e23 = c23 - (u2 + v3)= 10 - (-9 + 16) = 3

5) e24 = c24 - (u2 + v4)= 11 - (-9 + 8) = 12

6) e31 = c31 - (u3 + v1)= 10 - (-4 + 12) = 2

2.1 Modelo de Transporte

Page 182: Unidad 1  Programación Lineal

182

2.1.5. Método de Distribución Modificada (DIMO)

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6400 100 -12 -2 100 500

2 6 4 10 112 700 3 12 0 700

3 10 9 12 42 100 200 500 700 800

Demanda 0 400 0 900 200 500 2000

Paso 2: Prueba de Optimalidad.

Hay costos negativos por lo tanto no es óptima

La ruta de reasignación es: +C13 -C33 +C32 -C12 (más negativo, -12)

2.1 Modelo de Transporte

Page 183: Unidad 1  Programación Lineal

183

2.1.5. Método de Distribución Modificada (DIMO)

Paso 3: Asignación de unidades a la ruta elegida.

Unidades disponibles a mover:

Disminuir 1 unidad C12 100

Disminuir 1 unidad C33 200Plantas

Puertos 1 2 3 4 Oferta1 12 13 4 6

400 100 100 5002 6 4 10 11

700 0 7003 10 9 12 4

200 100 500 700 800Demanda 0 400 0 900 200 500 2000

2.1 Modelo de Transporte

Page 184: Unidad 1  Programación Lineal

184

2.1.5. Método de Distribución Modificada (DIMO)

Vuelta al Paso 1:Costo por

Ruta en uso motor ($) Ecuación11 12 u1 + v1 = 1213 4 u1 + v3 = 422 4 u2 + v2 = 432 9 u3 + v2 = 933 12 u3 + v3 = 1234 4 u3 + v4 = 4

Paso1.a) Solucionar la ecuación

Se hacer u1 = 0 y se determina el resto de los índices

v1 = 12 v2 = 1 v3 = 4 v4 = -4 u2 = 3 u3 = 8

Paso 1.b) Calcular los costos marginales para cada celda no usada. eij = cij - (ui + vj)

2.1 Modelo de Transporte

Page 185: Unidad 1  Programación Lineal

185

2.1.5. Método de Distribución Modificada (DIMO)

Costos marginales para las celdas no usadas.

eij = cij - (ui + vj)

1) e12 = c12 - (u1 + v2)= 13 - (0 + 1) = 12

2) e14 = c14 - (u1 + v4)= 6 - (0 - 4) = 10

3) e21 = c21 - (u2 + v1)= 6 - (3 + 12) = -9

4) e23 = c23 - (u2 + v3)= 10 - (3 + 4) = 3

5) e24 = c24 - (u2 + v4)= 11 - (3 - 4) = 12

6) e31 = c31 - (u3 + v1)= 10 - (8 + 12) = -10

2.1 Modelo de Transporte

Page 186: Unidad 1  Programación Lineal

186

2.1.5. Método de Distribución Modificada (DIMO)

Paso 2: Prueba de Optimalidad.

Hay costos negativos por lo tanto no es óptima

La ruta de reasignación es: +C31 -C33 +C13 -C11

PlantasPuertos 1 2 3 4 Oferta

1 - 12 13 + 4 6400 19 100 1 100 500

2 6 4 10 110 700 3 12 0 700

3 + 10 9 - 12 4-1 200 100 500 700 800

Demanda 0 400 0 900 200 500 2000

2.1 Modelo de Transporte

Page 187: Unidad 1  Programación Lineal

187

2.1.5. Método de Distribución Modificada (DIMO)

Paso 3: Asignación de unidades a la ruta elegida.

Unidades disponibles a mover:

Disminuir 1 unidad C11 400

Disminuir 1 unidad C33 100Plantas

Puertos 1 2 3 4 Oferta1 12 13 4 6

300 200 100 5002 6 4 10 11

700 0 7003 10 9 12 4

100 200 500 700 800Demanda 0 400 0 900 200 500 2000

2.1 Modelo de Transporte

Page 188: Unidad 1  Programación Lineal

188

2.1.5. Método de Distribución Modificada (DIMO)

Vuelta al Paso 1:

Paso1.a) Solucionar la ecuación

u1 = 0 y se determina el resto de los índices

v1 = 12 v2 = 11 v3 = 4 v4 = 6 u2 = - 7 u3 = -2

Paso 1.b) Calcular los costos marginales para cada celda no usada. eij = cij - (ui + vj)

Costo porRuta en uso motor ($) Ecuación

11 12 u1 + v1 = 1213 4 u1 + v3 = 422 4 u2 + v2 = 431 10 u3 + v1 = 1032 9 u3 + v2 = 934 4 u3 + v4 = 4

2.1 Modelo de Transporte

Page 189: Unidad 1  Programación Lineal

189

2.1.5. Método de Distribución Modificada (DIMO)

Costos marginales para las celdas no usadas.

eij = cij - (ui + vj)

1) e12 = c12 - (u1 + v2)= 13 - (0 + 11) = 2

2) e14 = c14 - (u1 + v4)= 6 - (0 + 6) = 0

3) e21 = c21 - (u2 + v1)= 6 - (-7 + 12) = 1

4) e23 = c23 - (u2 + v3)= 10 - (-7 + 4) = 13

5) e24 = c24 - (u2 + v4)= 11 - (-7 + 6) = 12

6) e33 = c33 - (u3 + v3)= 12 - (-2 + 4) = 10

2.1 Modelo de Transporte

Page 190: Unidad 1  Programación Lineal

190

2.1.5. Método de Distribución Modificada (DIMO)

Paso 2: Prueba de Optimalidad.

No hay costos negativos por lo tanto es óptima

VO = 300*12+200*4+700*4+100*10+200*9+500*4=$12.000

PlantasPuertos 1 2 3 4 Oferta

1 12 13 4 6300 0 200 0 100 500

2 6 4 10 111 700 13 12 0 700

3 10 9 12 4100 200 10 500 700 800

Demanda 0 400 0 900 200 500 2000

Ver Transporte RPG Equilibrio

2.1 Modelo de Transporte

Page 191: Unidad 1  Programación Lineal

191

2.1.6. Modelo de Transporte: Situaciones Especiales

1. Solución en problemas de maximización de transporte

2. El caso en que la oferta excede a la demanda.

3. Eliminación de rutas inaceptables.

4. Degeneración en problemas de transporte.

5. Propiedades especiales del modelo de transporte

2.1 Modelo de Transporte

Page 192: Unidad 1  Programación Lineal

192

2.1.6. Modelo de Transporte: Situaciones Especiales

1. Solución en problemas de maximización de transporte.

a) Se utilizan los beneficios marginales en lugar de los costos. Se asignará unidades a la celda que tenga el mayor valor marginal y el procedimiento concluirá cuando todas las rutas tengan valores marginales negativos.

b) Convertir la tabla de beneficios en una tabla de costo: Se busca el beneficio mayor, en cada celda se le resta al mayor el beneficio de la celda. Ejemplo:

2.1 Modelo de Transporte

Page 193: Unidad 1  Programación Lineal

193

2.1.6. Modelo de Transporte: Situaciones Especiales

Tabla de beneficios

14 19 12

17 19 15

16 20 11

6 1 8

3 1 5

4 0 9

2

3

Destinos

Fue

ntes

1 2 3

1

Destinos1 2 3

Fue

ntes

1

2

3

Mayor = 20

Tabla de costo

2.1 Modelo de Transporte

Page 194: Unidad 1  Programación Lineal

194

2.1.6. Modelo de Transporte: Situaciones Especiales

2. El caso en que la oferta excede a la demanda.

Se utiliza un destino ficticio en la tabla de transporte. Se considera como nulo el costo de enviar una unidad a dicho destino desde cada una de las fuentes (orígenes).

Si la demanda es mayor que la oferta el problema no tiene solución factible, sin embargo el administrador podría abastecer toda la demanda que sea posible a un costo mínimo.

Se utiliza un origen ficticio. El costo de abastecer cualquier destino desde dicho origen será cero. Sin embargo podría haber un cargo por orden no cubierta.

Ver Transporte RPG (O>D) y (O<D

2.1 Modelo de Transporte

Page 195: Unidad 1  Programación Lineal

195

2.1.6. Modelo de Transporte: Situaciones Especiales

3. Eliminación de rutas inaceptables.

Se asocia a una ruta no aceptable un costo lo suficientemente alto para que no sea atrayente la ruta en cuestión. El costo M

Por ejemplo: producir en abril para vender en febrero del mismo año.

4. Degeneración en problemas de transporte.

Se dice que un problema se degenera cuando hay menos de m + n - 1 rutas ocupadas. Esto puede ocurrir cuando simultáneamente se satisface una demanda y se agota una oferta.

Ver Transporte RPG (inaceptable)

2.1 Modelo de Transporte

Page 196: Unidad 1  Programación Lineal

196

2.1.6. Modelo de Transporte: Situaciones Especiales

5. Propiedades especiales del modelo de transporte

Todo problema de transporte es posible resolverlo mediante algoritmos que usan sólo la adición y la sustracción.

Si todas las ofertas y demandas tienen valores enteros en un problema de transporte, los valores óptimos de las variables de decisión serán también enteros.

2.1 Modelo de Transporte

Page 197: Unidad 1  Programación Lineal

197

Ejercicios

Suponer que se tienen tres fábricas M1, M2 y M3 que producen 39, 48 y 33 toneladas respectivamente, de un cierto producto que debe llevarse a cuatro destinos, D1, D2, D3 y D4, los cuales requieren 40, 37, 18 y 25 toneladas.

Los costos están dados por la siguiente tabla:

2.1 Modelo de Transporte

1

D1 D2 D3 D4

M1 2 3 1 2

M2 1 4 7 6

M3 8 9 4 5

Page 198: Unidad 1  Programación Lineal

198

Planificación de la producción:

2.1 Modelo de Transporte

2Periodo Capacidad de Producción

Máxima (unidades) Demanda a satisfacer

Costo de Producción ($)

Costo de Almacenaje ($)

1 1200 900 15 1.2 2 800 800 18 1.4 3 1100 1000 17 1.1 4 900 700 20 1.5

¿Cuánto hay que producir en cada periodo para satisfacer la demanda al mínimo costo (tanto de producción como de almacenaje)?.

Supuesto: No existe inventario inicial ni final.

Plantear el problema usando el modelo de transporte.

Encuentre las respuestas usando Solver.

Page 199: Unidad 1  Programación Lineal

199

Situación:

Asignar m trabajos (o trabajadores) a n máquinas.

Un trabajo i (=1, 2, 3 ,...,m) cuando se asigna a la máquina j (=1,2,....,n) incurre en un costo cij.

El objetivo es asignar los trabajos a las máquinas uno a uno al menor costo.

La formulación de este problema puede considerarse como un caso especial del modelo de transporte.

2.2 Modelo de Asignación

Page 200: Unidad 1  Programación Lineal

200

Descripción

Los trabajos representan las “fuentes” y las máquinas los “destinos”

La oferta disponible en cada fuente es 1 como también lo es la demanda en cada destino.

cij es el costo de transportar (asignar) el trabajo i a la máquina j

El costo puede representar también características de competencia de cada trabajador

Page 201: Unidad 1  Programación Lineal

201

Descripción

En el caso que un trabajo no deba ser asignado (porque no cumple con los requisitos) a una máquina (actividad) en particular, este costo debe tener un valor alto (M)

En el caso de existir desequilibrio, esto es, más trabajos que máquinas o más máquinas que trabajos, hay que equilibrar con máquinas o trabajos figurados (ficticios), logrando de esta forma que m = n

Page 202: Unidad 1  Programación Lineal

202

Expresión matemática del modelo

0, si el i-ésimo trabajo no se asigna a la j-ésima máquina

1, si el i-ésimo trabajo se asigna a la j-ésima máquinaXij =

Máquina1 2 ….. n

C11 C12 ….. C1n

C21 C22 ….. C2n

….. ….. ….. …..

Cn1 Cn2 ….. Cnn

1

2

…..

n

Trabajo

1

1

…..

1

1 1 ….. 1

Page 203: Unidad 1  Programación Lineal

203

Por lo tanto el modelo está dado por:

minimizar z =

n

i

n

jijij xc

1 1

sujeto a 11

n

jijx i=1,2, ...,n

11

n

iijx j=1,2,..n

xij = 0 ó bien 1

Page 204: Unidad 1  Programación Lineal

204

Ejemplo:

La gerencia general de RPG (ejemplo de transporte) con sede en Bruselas, este año, como parte de su auditoría anual, decidió que cada uno de sus cuatro vicepresidentes visite e inspeccione cada una de sus plantas de ensamblaje durante las primeras dos semanas de junio. Las plantas están ubicadas en Leipzig (Alemania), Nancy (Francia, Lieja (Bélgica) y Tilburgo (Holanda).

Para decidir a que vicepresidente enviar a una planta determinada, se asignaron puntospuntos (costos) a cada uno de ellos de acuerdo a su experiencia, habilidades lenguísticas, tiempo que durará la inspección y otros. Estos datos se muestran en la siguiente tabla:

Page 205: Unidad 1  Programación Lineal

205

Ejemplo

PLANTALeipzig (1) Nancy(2) Lieja (3) Tilburgo(4)

Finanzas (F) (1) 24 10 21 11Mercadotecnia(M) (2) 14 22 10 15Operaciones (O) (3) 15 17 20 19Personal(P) (4) 11 19 14 13

Plantear el modelo de PL

Page 206: Unidad 1  Programación Lineal

206

Ejemplo: Modelo de PL

MIN Z = 24 X11 + 10 X12 + ... + 14 X43 + 13 X44

sujeto a:

a) Oferta X11 + X12 + X13 + X14 = 1

X21 + X22 + X23 + X24 = 1

X31 + X32 + X33 + X34 = 1

X41 + X42 + X43 + X44 = 1

b) Demanda X11 + X21 + X31 + X41 = 1

X12 + X22 + X32 + X42 = 1

X13 + X23 + X33 + X43 = 1

X14 + X24 + X34 + X44 = 1

c) No negatividad Xij >= 0 i=1,...,4, j=1,....,4

Page 207: Unidad 1  Programación Lineal

207

Métodos de Solución

Existen varias formas de obtener la solución:

a) Listar todas las alternativas posibles con sus costos y seleccionar la de menor costo (algoritmo exhaustivo)

b) Método Húngaro: método iterativo

a) Listar todas las alternativas:

¿Cuántas alternativas posibles existen?

- El primer trabajo se puede asignar de n formas formas posibles

- El segundo de n-1 formas

- El último sólo de 1 forma

En total existen n! formas de hacer la asignación completa

Page 208: Unidad 1  Programación Lineal

208

Método Húngaro:Paso 0: Construir la matriz de asignación

Para obtener la solución óptima cada nueva matriz de asignación debe satisfacer:

Propiedad 1: Todos los números son no negativosPropiedad 2: Cada fila y cada columna tiene al menos una celda con

un valor cero

Paso 1:

a) Reducción de filas:a) Reducción de filas: Restar el costo menor de cada fila a la fila correspondiente y/o

b) Reducción de columnas:b) Reducción de columnas: Restar el costo menor de cada columna a la columna correspondiente

Con esto se crea una nueva matriz con las propiedades 1 y 2

Page 209: Unidad 1  Programación Lineal

209

Método Húngaro:

Paso 2: Determinar si la matriz es reducida (Prueba de Optimalidad).

Trazar el menor número de líneas rectas sobre las filas y columnas para cubrir todos los ceros.

Si el número de rectas es igual al número de filas o columnas se dice que esta matriz es reducida.

Si la matriz no es reducida pasar al paso 3, sino pasar al paso 4

Page 210: Unidad 1  Programación Lineal

210

Método Húngaro:

Paso 3: Movimiento

De todas las celdas no cruzadas identifique una con el menor valor y haga lo siguiente:

a) Restar el valor a cada celda no cruzada

b) Sumar el valor a cada celda de intersección de rectas

Volver al paso 2

Page 211: Unidad 1  Programación Lineal

211

Método Húngaro:

Paso 4: Solución óptima (Asignación)

Primero se asigna a las que tengan sólo una alternativa, se van marcando y así sucesivamente

Determinar el costo: Se suman todos los costos correspondientes a las asignaciones (o sumar todos los pi y qj).

¿Qué valor se obtiene al sumar todos los valores que se restaron en las reducciones de filas y columnas?

Page 212: Unidad 1  Programación Lineal

212

Ejemplo: Aplique el método Húngaro al ejemplo

1 2 3 4 pi

F 24 10 21 11M 14 22 10 15O 15 17 20 19P 11 19 14 13

qj

Paso 0: Matriz de Asignación

Nota: En negrita los menores de cada fila

Page 213: Unidad 1  Programación Lineal

213

Paso 1: Reducción de filas y columnas

1 2 3 4 pi

F 14 0 11 1 10M 4 12 0 5 10O 0 2 5 4 15P 0 8 3 2 11

qj 1

1 2 3 4 pi

F 14 0 11 0 10M 4 12 0 4 10O 0 2 5 3 15P 0 8 3 1 11

qj 1

Fil

as

Columnas

Page 214: Unidad 1  Programación Lineal

214

Paso 2: Determinar si la matriz es reducida

1 2 3 4 pi

F 14 0 11 0 10M 4 12 0 4 10O 0 2 5 3 15P 0 8 3 1 11

qj 1

No es reducida: sólo tres rectas (para ser reducida deben ser 4)

Ir al paso 3

Page 215: Unidad 1  Programación Lineal

215

Paso 3: Movimiento (Seleccionar el menor: restar a las no tachadas, sumar a las intersecciones)

1 2 3 4 pi

F 14 0 11 0 10M 4 12 0 4 10O 0 2 5 3 15P 0 8 3 1 11

qj 1

1 2 3 4 pi

F 15 0 12 0 10M 4 11 0 3 10O 0 1 5 2 15P 0 7 3 0 11

qj 1 + 1

Volver al paso 2 !!

Page 216: Unidad 1  Programación Lineal

216

Iteración paso 2:

1 2 3 4 pi

F 15 0 12 0 10M 4 11 0 3 10O 0 1 5 2 15P 0 7 3 0 11

qj 1 + 1

Se tachan todos los ceros con cuatro rectas, por tanto es óptima

Ir al paso 4 !!

Page 217: Unidad 1  Programación Lineal

217

Paso 4: Asignación

1 2 3 4 pi

F 15 0 12 0 10M 4 11 0 3 10O 0 1 5 2 15P 0 7 3 0 11

qj 1 + 1

Costo = c12 + c23 + c31 +c44

= 10+10+15+13 = 48

ji qpCosto

=10 + 10 + 15 + 11 + 1 + 1 = 48

Ver Asignación RPG

Page 218: Unidad 1  Programación Lineal

218

Modelo de Asignación: Otras consideraciones

El modelo de asignación de RPG es un modelo de minimización en el cual el número de vicepresidentes es igual al número de plantas, y todas las asignaciones posibles son aceptables.

Consideremos ahora modelos tipo asignación donde no todas las condiciones anteriores se cumplen. En particular se considerarán situaciones en las que:

1 Hay una desigualdad entre el número de “personas” por asignar y el número de “destinos” que requieren personas asignadas.

2 Hay un modelo de maximización

3 Existen asignaciones inaceptables

Page 219: Unidad 1  Programación Lineal

219

Modelo de Asignación: Otras consideraciones

1. Ofertas y demandas desiguales

a) Oferta mayor que la demanda

Suponer que el presidente de RPG quiere auditar a la planta de Tilburgo, por tanto tendrá que decidir cual de los cuatro vicepresidentes debe asignar a cada una de las tres plantas restantes.

Solución: Se elimina la restricción que requería un vicepresidente para Tilburgo. El resultado de este cambio es que la holgura para uno de los cuatro vicepresidentes será 1 en la nueva solución óptima

Ver Asignación RPG (O>D)

Page 220: Unidad 1  Programación Lineal

220

Modelo de Asignación: Otras consideraciones

1. Ofertas y demandas desiguales

b) Demanda mayor que la oferta

Suponer que el vicepresidente de Personal tiene que viajar a Illinois durante la primer semana de junio, por lo tanto no puede participar en la auditoría en Europa.

Solución: Se agrega un vicepresidente ficticio (igual al modelo de transporte) para obtener una solución factible, pero es claro que una de las plantas quedará sin auditar.

Page 221: Unidad 1  Programación Lineal

221

Modelo de Asignación: Otras consideraciones

2. Hay un modelo de maximización

La respuesta de asignación es un beneficio y no un costo

Ejemplo: Suponga que RPG tiene que asignar vendedores a sus territorios de venta.

Existen cuatro personas bien capacitadas listas para ser asignadas y tres territorios requieren un nuevo vendedor. Uno de los vendedores no será asignado.

En este caso la asignación de un vendedor cualquiera a un territorio se mide por el incremento marginal esperado en la contribución de dicha asignación a las ganancias.

Page 222: Unidad 1  Programación Lineal

222

Modelo de Asignación: Otras consideraciones

2. Hay un modelo de maximización

La matriz de ganancia es la siguiente

Contribución delVendedor\a

Territorio 1

Territorio 2

Territorio 3

A 40$ 30$ 20$ B 18$ 28$ 22$ C 12$ 16$ 20$ D 25$ 24$ 27$

Ver Asignación Vendedores RPG

Page 223: Unidad 1  Programación Lineal

223

Modelo de Asignación: Otras consideraciones

3. Situaciones con asignaciones inaceptables

Ejemplo: Suponga que el presidente de RPG no tiene el menor deseo de que el vicepresidente de Operaciones realice una auditoría a la Planta Nancy.

Solución: Asignar un costo arbitrariamente alto a esta “ruta”, de tal modo que al restar de él cualquier número finito se obtiene siempre un valor mayor que otros números relevantes

Ver Asignación RPG inaceptable

Page 224: Unidad 1  Programación Lineal

224

2.3 Modelo de TransbordoEste modelo permite que las unidades no vayan directamente desde un origen a un destino, sino que pasen por nodos intermedios o transitorios.

Cada origen, punto intermedio y destino final se representan como nodos y se conectan a través de arcos dirigidos

Restricción en cada nodo transitorio:

suma flujos entrantes = suma flujos saliente

También se puede representar por medio de una matriz donde un mij = 1 cuando existe un enlace directo entre el nodo i y el nodo j; y mij = 0 cuando no hay enlace directo entre estos nodos

Page 225: Unidad 1  Programación Lineal

225

Modelo de Transbordo: Algoritmo

Inicialización: Encuentre un plan de embarque factible que satisfaga todas las restricciones de suministro y demanda, al mismo tiempo que mantiene un equilibrio en todos los nodos de transbordo.

Prueba de Optimalidad: Pruebe el plan de embarque actual para ver si es óptimo, es decir, si es el plan que incurre en los costos totales mínimos. Si es así, deténgase con la solución óptima, sino vaya al paso 3.

Movimientos: Use el hecho de que el plan de embarque actual no es óptimo para crear un nuevo plan de embarque factible con menos costo total que el actual. Vaya al paso 2.

1

2

3

Page 226: Unidad 1  Programación Lineal

226

Consideraciones:

• Los pasos del algoritmo son análogos a los del algoritmo de pasos sucesivos (escalón).

• Tanto los nodos origen como los destinos pueden ser a su vez nodos de transbordo.

• Al igual que el modelo de transporte, puede haber desequilibrio, en ese caso se agregan fuentes o destinos ficticios con costo cero.

• El numero total del sistema está dado por el total de la oferta o de la demanda.

• A cada nodo de transbordo se asigna un suministro (demanda) igual a su suministro (demanda) original (cero, si no coincide originalmente con un destino) más el total de unidades del sistema. Esto permite que todas las unidades puedan pasar por un empalme dado.

Page 227: Unidad 1  Programación Lineal

227

Ejemplo 1:

Determínese un programa de embarque que cubra todas las demandas a un costo mínimo total para los datos correspondientes al siguiente grafo (costo en $).

3 4

24

3

7 2

1 3 5

2 4 6

+95 -30

+70

+15

-30 -45

8

Page 228: Unidad 1  Programación Lineal

228

Solución

• Los sitios 1 y 2 son orígenes• Los sitios 5 y 6 son destinos• El sitio 3 es origen y empalme• El sitio 4 es destino y empalme• La oferta es mayor que la demanda por tanto se requiere un

destino ficticio que demande 75 unidades• Agregar 180 unidades a cada empalme (oferta y demanda)• El costo de las unidades que van de un empalme (como origen)

a él mismo (como destino) y de cualquier origen al sitio ficticio es cero.

• A las rutas no permitidas se les asocia un valor relativamente alto (por 1.000)

Page 229: Unidad 1  Programación Lineal

229

La tabla inicial es:

3 4 5 6 F Oferta1 95

3 1000 8 1000 02 70

2 7 1000 1000 03 195

0 3 4 4 04 180

1000 0 1000 2 0Demanda 180 210 30 45 75

Orí

gene

s

Destinos

Page 230: Unidad 1  Programación Lineal

230

La tabla final es:

3 4 5 6 F Oferta1 20 75 95

3 1000 8 1000 02 70 70

2 7 1000 1000 03 90 30 30 45 195

0 3 4 4 04 180 180

1000 0 1000 2 0Demanda 180 210 30 45 75

Destinos

Orí

gene

s

Costo = 20*3+75*0+70*2+90*0+30*3+30*4+45*4+180*0=$590

Page 231: Unidad 1  Programación Lineal

231

Ejemplo 2:

Una corporación necesita transportar 70 unidades de un producto, del sitio 1 a los sitios 2 y 3 en cantidades de 45 y 25 unidades, respectivamente. Las tarifas cij (en miles de pesos por unidad) de carga aérea entre los sitios comunicados por carguero se dan en la tabla, en la cual las líneas punteadas indica que no hay servicio disponible. Determínese un programa de embarque que asigne el número requerido de artículos a cada destino, a un costo mínimo de transporte. Ningún embarque requiere de vuelo directo, se permiten los envíos empleando puntos intermedios.

1 2 3 4

1 .... 38 56 34

2 38 ... 27 ...

3 56 27 ... 19

4 34 ... 19 ...

Page 232: Unidad 1  Programación Lineal

232

Ejemplo 3:

1

2

3

4

5 7

6

8

9

10

11

100

200

150

120

80

70

110

2

3

4

44

5

5

6

6

6

7

7

7

8

8

Nodos de transbordo

Page 233: Unidad 1  Programación Lineal

233

Planteamiento del modelo PL :

Plantear el modelo de PL para el ejemplo mostrado en el grafo anterior.

Page 234: Unidad 1  Programación Lineal

234

2.4. Modelos de Redes

2.4.1 Teoría de Grafos

2.4.2 Modelo de la Ruta más corta

2.4.3 Modelo del Árbol Expandido Mínimo

2.4.4 Problema del Flujo Máximo

Page 235: Unidad 1  Programación Lineal

235

2.4.1 Introducción a la Teoría de Grafos

Grafo no dirigido:Un grafo no dirigido G consiste en un conjunto V de vértices (o nodos) y un conjunto E de lados (ramas o enlaces) tales que cada lado e ε E está asociado a un par no ordenado de vértices v y w. Si un lado e está asociado a un único par de vértices v y w, entonces e= (v,w) o e=(w,v).

Grafo dirigido:Un grafo dirigido (o digrafo) G consiste en un conjunto V de vértices (o nodos) y un conjunto E de lados (o ramas) tales que cada lado e ε E está asociado a un par ordenado de vértices. Si un lado e está asociado a un par ordenado único de vértices v y w, se escribe e = (v,w).

Page 236: Unidad 1  Programación Lineal

236

2.4.1 Introducción a la Teoría de Grafos

Se dice que un lado e = (v,w) de un grafo (dirigido o no dirigido) es incidente en v y w. Se dice que los vértices v y w son incidentes en e y también son vértices adyacentes.

Si G es un grafo (dirigido o no dirigido) con un conjunto de vértices V y un conjunto de lados E, se escribe G = (V,E)

Nodo (Vértice):Un círculo de una red utilizada para representar una planta, almacén o tienda.

Nodo de Suministro:Nodo desde le cual los productos se van a enviar.

Page 237: Unidad 1  Programación Lineal

237

2.4.1 Introducción a la Teoría de Grafos

Nodo de demanda:Nodo que va a recibir los productos para cumplir con una demanda conocida.

Nodo de transbordo:Nodo que recibe productos desde otros nodos para su distribución.

Arco (enlace):Línea de una red que conecta un par de nodos. Se le utiliza para representar una ruta válida desde el nodo origen al nodo de distribución.

Page 238: Unidad 1  Programación Lineal

238

2.4.1 Introducción a la Teoría de Grafos

Arco dirigido:Indica el sentido de movimiento de los productos.

Camino:Una secuencia de nodos en una red unidos por arcos (dirigidos o no dirigidos)

Trayectoria (lazo):

Es un camino cerrado (ciclo) donde el primer nodo es a su vez el último.

Page 239: Unidad 1  Programación Lineal

239

2.4.1 Introducción a la Teoría de Grafos

Representación Matricial

i) Matriz de Adyacenciaii) Matriz de costo (beneficio)

Representación de un grafo:

Un grafo se puede representar matemáticamente como:

a) Una matrizb) Una lista enlazadac) Árbol

Page 240: Unidad 1  Programación Lineal

240

2.4.1 Introducción a la Teoría de Grafos (cont.)

Matriz de Adyacencia:

Para un grafo G, es una matriz A de dimensión NxN, donde A[i,j] es verdadero (1) si, y sólo si, existe un arco que vaya del vértice i al vértice j. En ausencia de arco directo se representa generalmente por 0.

Ejemplo:Dado el siguiente grafo encontrar su matriz de adyacencia

Page 241: Unidad 1  Programación Lineal

241

2.4.1 Introducción a la Teoría de Grafos (cont.)

2

3 4

1

1 2 3 4

1 1 1

2 1

3 1

4 1

Page 242: Unidad 1  Programación Lineal

242

2.4.1 Introducción a la Teoría de Grafos (cont.)

Matriz de Costo:

Para un grafo G etiquetado, es una matriz C de dimensión NxN, donde A[i,j] es el costo (valor de la etiqueta) si, y sólo si, existe un arco que vaya del vértice i al vértice j. En ausencia de arco directo se representa generalmente por infinito (costo extremadamente alto, para la simulación se hace uso de un valor fuera de contexto).

Ejemplo:Dado el siguiente grafo encontrar su matriz de costo

Page 243: Unidad 1  Programación Lineal

243

2.4.1 Introducción a la Teoría de Grafos (cont.)

2

34

1

1 2 3 4

1 10 15

2 12

3 20

4 5

10

15 20 12

5

Page 244: Unidad 1  Programación Lineal

244

2.4.1 Introducción a la Teoría de Grafos (cont.)

Para un grafo no dirigido, tanto la matriz de adyacencia como la matriz de costo son simétricas, esto es:

A[i,j] = A[j,i]

ó

C[i,j] = C[j,i]

Page 245: Unidad 1  Programación Lineal

245

Ejemplo Introductorio

Seymour Miles es el gerente de distribución de Zigwell. Zigwell distribuye sus motores oruga en cinco estados del medio oeste. Por lo regular, Seymour Miles tiene 10 aparatos E-9 in situ en lo que designaremos como local 1. Estos tractores deben ser enviados a los dos locales de construcción más importantes designados como 3 y 4. Se necesitan tres E-9 en el local 3 y siete en el local 4. Debido a itinerarios arreglados con anterioridad, relativos a la disponibilidad de conductores, los tractores solo pueden ser distribuidos de acuerdo con las rutas alternativas que se muestran en el grafo de la figura.

La figura tiene un número +10 en el nodo 1, esto significa que hay 10 aparatos E-9 disponibles (oferta). Los indicadores -3 y -7 asociados a los locales 3 y 4, respectivamente, denotan los requerimientos (demandas) de éstos.

Page 246: Unidad 1  Programación Lineal

246

1 2 4

5

3

c12

c34

c24

c25 c54

u43

c53

c23

+10

-3

-7

Rutas alternativas para el destino 3

1-2-3, 1-2-4-3, 1-2-5-4-3, 1-2-5-3

u12

u23

u34c43

u53

c54u25

u24

Page 247: Unidad 1  Programación Lineal

247

Los costos cij son unitarios. Por ejemplo el costo de recorrer el arco (5,3) es c53 por cada tractor.

Debido a los acuerdos sostenidos con los conductores, Zigwell debe cambiarlos en cada local que se encuentre sobre la ruta. Las limitaciones en la disponibilidad de conductores ocasionan que haya una cota superior en el número de tractores que pueden recorrer cualquier arco dado.

Por ejemplo: u53 es la cota superior o capacidad en el arco (5,3).

El problema de Sygmour consiste en encontrar un plan de embarque que satisfaga la demanda y las restricciones de capacidad a costo mínimo.

Page 248: Unidad 1  Programación Lineal

248

El problema en particular se conoce como modelo de transbordo con capacidades.

Expresar el problema como un PL

a) Variables de decisión

xij = número total de E-9 que se enviarán a través del arco (i,j).

= flujo del nodo i al nodo j

Page 249: Unidad 1  Programación Lineal

249

b) Función Objetivo

MIN Z =C12X12+C23X23+C24X24+C25X25+C34X34+C43X43+C53X53+C54X54

la red (i,j) de artodos los cx ijij cos ,0

c) Restricciones

s a

+ X12 = 10

- X12+X23+X24+X25 = 0

-X23 -X43 -X53 +X34 = -3

-X24 +X43 -X34 -X54 = -7

-X25 +X53 +X54 = 0

Balance

de

flujo

Page 250: Unidad 1  Programación Lineal

250

Matriz Incidencia nodo-arco

a r c o

Nodo (1,2) (2,3) (2,4) (2,5) (4,3) (5,3) (3,4) (5,4) LD

1 +1 0 0 0 0 0 0 0 10

2 -1 +1 +1 +1 0 0 0 0 0

3 0 -1 0 0 -1 -1 +1 0 -3

4 0 0 -1 0 +1 0 -1 -1 -7

5 0 0 0 -1 0 +1 0 +1 0

Page 251: Unidad 1  Programación Lineal

251

Formulación General del Modelo de Transbordo con Capacidades

Xij denotan el flujo del nodo i al nodo j a lo largo del arco que conecta esos nodos.

Lj representa la oferta en el nodo j

ijij ij xc

s.a.

minimice

njLxx jk kjk jk ,....,2,1, la red (i,j) de artodos los cx ijij cos ,0

Page 252: Unidad 1  Programación Lineal

252

Resolver para las siguientes capacidades y costos Capacidad

de\a Sitio 1 Sitio 2 Sitio 3 Sitio 4 Sitio 5

Sitio 1 10Sitio 2 4 3 3Sitio 3 2Sitio 4 4Sitio 5 3 5

Costo Unitariode\a Sitio 1 Sitio 2 Sitio 3 Sitio 4 Sitio 5

Sitio 1 $100Sitio 2 $45 $50 $20Sitio 3 $60Sitio 4 $85Sitio 5 $10 $55

Ver transbordo con capacidades

Page 253: Unidad 1  Programación Lineal

253

2.4.2 Modelo de la Ruta más corta

Se pueden dar dos casos para representar la red:

Como grafo no dirigido

Como grafo dirigido

Situaciones:

a

b

Cualquiera que sea el caso corresponde a grafos ponderados (con peso)

Page 254: Unidad 1  Programación Lineal

254

2.4.2 Modelo de la Ruta más corta

Considerénse todos los nodos que estén directamente conectados con el origen. Etiquetarlos con la distancia al origen y su nodo predecesor. Etiquetas temporales, [distancia, nodo].

De entre todos los nodos con etiquetas temporales, escoger el que tenga la distancia menor y se marca como permanente. Si todos están con etiquetas permanentes se va al paso cuatro.

a) Algoritmo: Grafo no dirigido

1

2

Page 255: Unidad 1  Programación Lineal

255

2.4.2 Modelo de la Ruta más corta (GND)

Todo nodo que no tenga etiqueta permanente, tendrá etiqueta temporal o estará sin etiqueta. Sea L el último nodo con etiqueta permanente. Considerénse todas las etiquetas de los vecinos de L (directamente conectados a L mediante un arco). Para cada uno de estos nodos calcúlese la suma de su distancia a L. Si el nodo en cuestión no está etiquetado, asígnese una etiqueta temporal que conste de esta distancia y de L como predecesor. Si el nodo en cuestión ya tiene etiqueta temporal, cámbiese sólo si la distancia recién calculada es menor que la componente de distancia de la etiqueta actual. En este caso, la etiqueta contendrá esta distancia y a L como predecesor. Regresar al paso 2

3

Algoritmo:

Page 256: Unidad 1  Programación Lineal

256

2.4.2 Modelo de la Ruta más corta (GND)

Las etiquetas permanentes indican la distancia más corta entre el nodo origen a cada nodo de la red. También indican el nodo predecesor en la ruta más corta hacia cada nodo. Para encontrar el camino más corto de un nodo dado, comiéncese en él y retroceda al nodo anterior. Continuar con el recorrido hasta llegar al origen.

Algoritmo:

4

Page 257: Unidad 1  Programación Lineal

257

2.4.2 Modelo de la Ruta más corta (GND)

Ejemplo: Para el siguiente grafo encontrar la distancia más corta desde el nodo H al resto de los nodos.

H

12

3

4

5

6

78

41

1

1

1

2

27

6

3

33

Page 258: Unidad 1  Programación Lineal

258

2.4.2 Modelo de la Ruta más corta (GND)

Solución:

H

12

3

4

5

6

78

41

1

1

1

2

27

6

3

33

(8,H)

(4,H)

(5,1)

(6,3)(8,2)

(6,3)

(9,4)

(9,7)

ó

1:Ver ejemplo 1 Ruta mas corta 2: Hacer problema 19 guía 2 (Ejemplo 2 Ruta mas corta

Page 259: Unidad 1  Programación Lineal

259

A

7

1

3

B

C

D

E

F

G

1

4

2

108

10

5

74

3

Para su práctica y ejercitación neuronal

Page 260: Unidad 1  Programación Lineal

260

2.4.2 Modelo de la Ruta más corta (GD)

Es una técnica exhaustiva, esto es, prueba todas las alternativas posibles.

Opera a partir de un conjunto S de vértices cuya distancia más corta desde el origen ya es conocida. Inicialmente S contiene sólo el nodo de origen. En cada paso se agrega algún vértice restante v a S, cuya distancia desde el origen es la más corta posible.

Para cada paso del algoritmo, se utiliza una matriz D para registrar la longitud del camino más corto a cada vértice.

b) Algoritmo de Dijkstra

Page 261: Unidad 1  Programación Lineal

261

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

INICIO0) V = {1, 2, 3, 4, ..., n}1) S = {1} // nodo 1 se supone que es el origen2) Para i=2 Hasta n Hacer

3) Di = C1i

4) Para i=1 Hasta n-1 Hacer

5) Elegir un vértice w en V-S tal que Dw sea un mínimo

6) agregar w a S7) Para cada vértice v en V-S Hacer

SI ((Dw+Cwv)<Dv) //Pv = w

Dv = Dw+Cwv

8) //Dv=mínimo(Dv,Dw+Cwv)FIN

Page 262: Unidad 1  Programación Lineal

262

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

Ejemplo: Aplicar el algoritmo al siguiente grafo dirigido

10100

60

50

30

10

2

1

3 4

5

20

Page 263: Unidad 1  Programación Lineal

263

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

Inicial

0) V = {1, 2, 3, 4, 5}

1) S = {1}

2)

3) D2 = 10, D3 = inf, D4=30, D5 = 100

4) Iterar 4 veces

5) Seleccionar nodo con distancia más corta de V-S,

En el ejemplo es el nodo 2

Iteración S w D2 D3 D4 D5

Inicial {1} -- 10 inf 30 100

Page 264: Unidad 1  Programación Lineal

264

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

6) Agregar el nodo 2 a S : S = {1,2}

7) Iterar |V-S|, (V-S = {3,4,5})

D3=mínimo(D3,D2+C23) =mínimo(inf,10+50) = 60

D4=mínimo(D4,D2+C24) =mínimo(30,10+inf) = 30

D5=mínimo(D5,D2+C25) =mínimo(100,10+inf) = 100

Iteración S w D2 D3 D4 D5

Inicial {1} -- 10 inf 30 1001 {1,2} 2 10 60 30 100

Page 265: Unidad 1  Programación Lineal

265

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

2a Iteración

V-S = {3,4,5}

5) w = 4

6) S = {1,2,4}

7) Iterar |V-S| V-S = {3,5}

D3=mínimo(D3,D4+C43) =mínimo(60,30+20) = 50

D5=mínimo(D5,D4+C45) =mínimo(100,30+60) = 90

Iteración S w D2 D3 D4 D5

Inicial {1} -- 10 inf 30 1001 {1,2} 2 10 60 30 1002 {1,2,4} 4 10 50 30 90

Page 266: Unidad 1  Programación Lineal

266

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

3a Iteración

V-S = {3,5}

5) w = 3

6) S = {1,2,4,3}

7) Iterar |V-S| (V-S = {5})

D5=mínimo(D5,D3+C35) =mínimo(90,50+10) = 60

Iteración S w D2 D3 D4 D5

Inicial {1} -- 10 inf 30 1001 {1,2} 2 10 60 30 1002 {1,2,4} 4 10 50 30 903 {1,2,4,3} 3 10 50 30 60

Page 267: Unidad 1  Programación Lineal

267

2.4.2 Modelo de la Ruta más corta (GD) Algoritmo de Dijkstra

4a Iteración

V-S = {5}

5) w = 5

6) S = {1,2,4,3,5}

7) Iterar |V-S| (V-S = {})

Iteración S w D2 D3 D4 D5

Inicial {1} -- 10 inf 30 1001 {1,2} 2 10 60 30 1002 {1,2,4} 4 10 50 30 903 {1,2,4,3} 3 10 50 30 604 {1,2,4,3,5} 5 10 50 30 60

Tabla Final

Page 268: Unidad 1  Programación Lineal

268

¿Cuál es el camino?

Para conocer el camino hay que incluir otra matriz P de vértices, tal que Pv contenga el vértice inmediato anterior a v en el camino más corto.

Se asigna a Pv valor inicial 1 para todo v 1

La matriz P se actualiza después de la línea 8.

Si Dw + Cwv < Dv en la línea 8, después se hace Pv = w

Al término de la corrida del algoritmo, el camino a cada vértice puede encontrarse regresando por los vértices predecesores de la matriz P

Page 269: Unidad 1  Programación Lineal

269

¿Cuál es el camino?

Para el ejemplo, la matriz P debe tener los valores

P2 =1, P3 = 4, P4 = 1, P5 = 3

Para encontrar el camino más corto del vértice 1 al 5, se siguen los predecesores en orden inverso.

3 es el predecesor de 5

4 es el predecesor de 3

1 es el predecesor de 4

Page 270: Unidad 1  Programación Lineal

270

Problema de los caminos más cortos entre todos los pares de nodos

Para visualizar el problema se emplea un grafo dirigido G = (V,A) en el que cada arco v w tiene un costo no negativo Cv,w. El problema consiste en encontrar el camino de longitud más corta (menor costo) entre v y w para cada par ordenado de vértices (v,w).

Algoritmo de Floyd

Se utiliza una matriz A, donde Aij = Cij para toda i j, si no existe camino directo entre i y j se supone que Cij = inf. Cada elemento de la diagonal se hace cero.

Page 271: Unidad 1  Programación Lineal

271

Problema de los caminos más cortos entre todos los pares de nodos

Después se hacen n iteraciones en la matriz A.

Al final de la k-ésima iteración Aij tendrá por valor la longitud más pequeña de cualquier camino que vaya desde el vértice i hasta el vértice j y que no pase por un vértice mayor que k. Esto es, i y j, los vértice extremos del camino, pueden ser cualquier vértice, pero todo vértice intermedio debe ser menor o igual a k.

En la k-ésima iteración se aplica la siguiente fórmula para calcular A

k-1Aij

kAij = min

k-1Aik + k-1Akj

Page 272: Unidad 1  Programación Lineal

272

Problema de los caminos más cortos entre todos los pares de nodos

Para calcular Aij, se compara k-1Aij, el costo de ir de i a j sin pasar por k o cualquier otro nodo con numeración mayor, con

k-1Aik + k-1Akj, el costo de ir primero de i a k y después de k a j, sin pasar a través de un vértice mayor que k. Si el paso por el vértice k produce un camino más económico que el de k-1Aij, se elige ese costo para kAij.

k-1A ik

k-1Aij

k-1 Akj

i

k

j

Page 273: Unidad 1  Programación Lineal

273

Problema de los caminos más cortos entre todos los pares de nodos

Algoritmo de Floyd // Se supone que se cuenta con la matriz de costo C

0) INICIO

1) Desde i = 1 Hasta N

2) Desde j = 1 Hasta N

3) Aij Cij

4) Desde i = 1 Has ta N

5) Aii = 0

6) Desde k = 1 Hasta N

7) Desde i = 1 Hasta N

8) Desde j = 1 Hasta N

9) SI (Aik + Akj < Aij)

10) Aij = Aik + Akj

11) FIN

Page 274: Unidad 1  Programación Lineal

274

Problema de los caminos más cortos entre todos los pares de nodos

Recuperación de caminos para el Algoritmo de Floyd

Cuando es de interés conocer el camino más corto

entre dos vértices, hay que consignarlo en una matriz

P, donde Pij tiene el vértice k que permitió a Floyd

encontrar el valor menor de Aij. Si Pij es cero, el

camino de i a j es directo.

Page 275: Unidad 1  Programación Lineal

275

Problema de los caminos más cortos entre todos los pares de nodos

Algoritmo de Floyd Modificado

0) INICIO

1) Desde i = 1 Hasta N2) Desde j = 1 Hasta N

3) Aij Cij

3) Pij 04) Desde i = 1 Has ta N

5) Aii = 06) Desde k = 1 Hasta N7) Desde i = 1 Hasta N8) Desde j = 1 Hasta N

9) SI (Aik + Akj < Aij)

10) Aij Aik + Akj

10) Pij k11) FIN

Page 276: Unidad 1  Programación Lineal

276

Problema de los caminos más cortos entre todos los pares de nodos

Ejemplo: Aplique Floyd al grafo ponderado mostrado en la figura

1 2 3

2

8

3

2

5

Page 277: Unidad 1  Programación Lineal

277

Problema de los caminos más cortos entre todos los pares de nodos

Solución:

Tabla Inicial

Nodos 1 2 31 0 8 52 3 0 inf3 inf 2 0

0Aij

Page 278: Unidad 1  Programación Lineal

278

Problema de los caminos más cortos entre todos los pares de nodos

Solución:

Después de la primera iteración

1Aij

Nodos 1 2 31 0 8 52 3 0 83 inf 2 0

Page 279: Unidad 1  Programación Lineal

279

Problema de los caminos más cortos entre todos los pares de nodos

Solución:

Después de la segunda iteración

2Aij

Nodos 1 2 31 0 8 52 3 0 83 5 2 0

Page 280: Unidad 1  Programación Lineal

280

Problema de los caminos más cortos entre todos los pares de nodos

Solución:

Después de la tercera iteración

3Aij

Nodos 1 2 31 0 7 52 3 0 83 5 2 0

Page 281: Unidad 1  Programación Lineal

281

2.4.3 Modelo de árbol extensión mínima

Un árbol es un grafo que tiene sus n nodos (vértices) conectados (conexo) con n-1 arcos (aristas), no existiendo ciclos (caminos cerrados)

Definición 1

Definición 2 Un árbol de expansión de costo mínimo es aquel en que todos los enlaces tienen longitudes (costos) mínimas

Page 282: Unidad 1  Programación Lineal

282

Algoritmo para el problema del árbol de expansión mínima.

Método Gráfico

Se selecciona un nodo cualquiera y se conecta al nodo más cercano a éste.

Se identifica el nodo no conectado más cercano a un nodo conectado y se conectan estos dos nodos

Empates se deciden en forma arbitraria. Los empates indican que existen soluciones alternativas para la construcción.

1

2

Nota:

Page 283: Unidad 1  Programación Lineal

283

H

12

3

4

5

6

78

41

1

1

1

2

27

6

3

33

Ejemplo: Encontrar el AEM para el siguiente grafo

Page 284: Unidad 1  Programación Lineal

284

H

12

3

4

5

6

7

1

1

1

1

Solución :

2

2

4

Page 285: Unidad 1  Programación Lineal

285

Algoritmo tabularPaso Acción

0 Se construye la tabla de costos de enlaces

1 Se comienza arbitrariamente con cualquier nodo. Se designa a este nodo como conectado y se pone una marca al lado de la fila correspondiente al nodo. Se tacha el índice de la columna que corresponde a él.

2 Considerando todas las filas marcadas, buscar el mínimo en las columnas cuyo índice aún no haya sido tachado encerrándolo en un círculo. Designándose de esta manera el nuevo nodo conectado. Se tacha el índice de la columna y pone una marca en la fila correspondiente a este nodo. Se repite este paso hasta que todos los nodos estén conectados.

3 Los nodos encerrados en círculo identifican el árbol.

Page 286: Unidad 1  Programación Lineal

286

Aplicación Algoritmo tabular

Nodo H 1 2 3 4 5 6 7H 4 7 81 4 6 12 6 1 23 1 1 14 7 1 3 3 25 2 3 36 3 3 17 8 2 1

Tabla inicial

Page 287: Unidad 1  Programación Lineal

287

Aplicación Algoritmo tabular

Inicio: Nodo H

Nodo H 1 2 3 4 5 6 7* H 4 7 8* 1 4 6 1

2 6 1 23 1 1 14 7 1 3 3 25 2 3 36 3 3 17 8 2 1

a)

b)

Page 288: Unidad 1  Programación Lineal

288

Aplicación Algoritmo tabular

Nodo 1

Nodo H 1 2 3 4 5 6 7* H 4 7 8* 1 4 6 1

2 6 1 2* 3 1 1 1

4 7 1 3 3 25 2 3 36 3 3 17 8 2 1

a)

b)

c)

Page 289: Unidad 1  Programación Lineal

289

Aplicación Algoritmo tabular

Nodo H 1 2 3 4 5 6 7* H 4 7 8* 1 4 6 1* 2 6 1 2* 3 1 1 1* 4 7 1 3 3 2* 5 2 3 3* 6 3 3 1* 7 8 2 1

Tabla final

a)

b)

c)

Page 290: Unidad 1  Programación Lineal

290

H

12

3

4

5

6

7

1

1

1

1

Arbol de expansión mínima :

2

2

4

Page 291: Unidad 1  Programación Lineal

291

2.4.4 Problema del Flujo Máximo

En este problema hay un solo nodo fuente (nodo de entrada) y un solo nodo destino (nodo de salida), y el resto son nodos de transbordo. El problema consiste en encontrar la máxima cantidad de flujo total (petróleo, gas, efectivo, mensajes, tránsito, etc.) en una unidad de tiempo.

La cantidad de flujo por unidad de tiempo en cada arco está limitada por las restricciones de capacidad.

Este problema se puede representar como una red dirigida y conexa.

Descripción

Page 292: Unidad 1  Programación Lineal

292

Para cada nodo interno debe cumplirse que:

flujo que sale del nodo = flujo que entra al nodo

En términos formales, siendo 1 la fuente y n el destino el problema consiste en:

MAX f f si i = 1

sujeto a si i = n

0 en otro caso

0 xij uij, para todos (i,j) de la red

xij : flujo por unidad de tiempo por el arco (i,j)

uij : capacidad del arco (i,j)

f : flujo total a través de la red

Descripción

fxxj

jij

ij

Page 293: Unidad 1  Programación Lineal

293

Considérese la i-ésima restricción, para algún

valor fijo de i, La suma se considera

sobre toda j para la cual el arco (i,j) con i fijo,

pertenezca a la red. Entonces, será el flujo

total que sale del nodo i. En forma semejante, la

suma se considera sobre toda j para la cual

exista el arco (j,i) en la red, (i fijo). De modo que

es el flujo que entra al nodo i

Descripción

j

ijx

j

jix

j

ijx

Page 294: Unidad 1  Programación Lineal

294

Antes de hacer la presentación formal del

algoritmo, revisemos el siguiente ejemplo.

Algoritmo

6

6

6

2

4

4

3

2

1

6

1

2

3

4

5

Page 295: Unidad 1  Programación Lineal

295

Grafo inicial: Inicialización delos flujos en cada nodo Algoritmo

Consideremos un camino desde el nodo 1 al nodo 6

Ejemplo: 1-2-5-6

4

0

00

0

0

0

0

0

6

4

1

6

23

2

6

0

2

3

4

5

61

Page 296: Unidad 1  Programación Lineal

296

Se dice que la cantidad de flujo a lo largo de dicho recorrido es factible si:

No excede la capacidad de ningún arco del camino

Con excepción de los nodos 1 y 6, el flujo en cada nodo debe satisfacer la condición de conservación

1

2

La cantidad máxima que puede fluir desde la fuente a lo largo de un camino es igual a la menor de las capacidades de los arcos de dicho camino

Al asignar un flujo a un arco nos atendremos a las reglas:

1

2

Se reduce la capacidad en la dirección del flujo (cantidad de flujo)

Se aumenta la capacidad en sentido opuesto (cantidad de flujo)

Page 297: Unidad 1  Programación Lineal

297

Ejemplo: Considerar el arco 1-2

Asignar dos unidades a este arco: Aplicando las reglas 1 y 2 se tiene

Se generó una capacidad ficticia en la dirección 2-1

Enviar una unidad de 2 a 1

1 2 (2 ) 22

1 24 0

1 2 (1 ) 13

Page 298: Unidad 1  Programación Lineal

298

Algoritmo

Inicializar cada nodo del grafo con capacidades uij en la dirección del flujo y cero en la dirección opuesta.

Encontrar cualquier camino de la fuente a destino que tenga capacidad de flujo positiva, si no los hay, se habrá encontrado la solución óptima.

Sea cmin la capacidad mínima de flujo entre los arcos seleccionados en el paso 1, se aumenta el flujo existente a través de la red al enviar un flujo adicional cmin para todos los arcos del camino.

Para todos los arcos del camino, disminúyanse las capacidades en la dirección del flujo y auméntese las capacidades en la dirección opuesta en cmin. Volver al paso 1

Inicial

1

2

3

Page 299: Unidad 1  Programación Lineal

299

Aplicar el algoritmo al grafo del ejemplo:

4

0

00

0

0

0

0

0

6

4

1

6

23

2

6

0

2

3

4

5

61

Paso Inicial

Page 300: Unidad 1  Programación Lineal

300

Iteración 1:

4

0

00

0

0

0

0

0

6

4

1

6

23

2

6

0

2

3

4

5

61

Elegir arbitrariamente el camino 1-3-5-6

cmin = MIN(6,4,2)=2; actualizando la red se tiene

4

22 2

0

2

2 2

Page 301: Unidad 1  Programación Lineal

301

Iteración 2:

40

00

0

0

0

0

0

6

4

1

2

23

2

2

0

2

3

4

5

61

4

20

2

26

Elegir arbitrariamente el camino 1-2-4-6

cmin = MIN(4,6,6)=4; actualizando la red se tiene

40

64

64

26

22

Page 302: Unidad 1  Programación Lineal

302

Iteración 3:

40

00

0

0

2

0

0

6

4

1

0

21

2

0

0

2

3

4

5

61

2

4

0

2

2

8

Elegir arbitrariamente el camino 1-3-2-4-6

cmin = MIN(4,3,2,2)=2; actualizando la red se tiene

40

64

6 6

2

8

22

4

2

3

0

2

6

2

4 66

Page 303: Unidad 1  Programación Lineal

303

Cálculo de la cantidad de flujo en cada arco

Se determina comparando la capacidad inicial de cada arco con la capacidad inicial. Para cada arco la regla es:

Si la capacidad final es menor que la capacidad inicial, calcular la diferencia. Esta es la cantidad del flujo a través del arco.

Ejemplo: Arco 3-5

Inicial

Final 223 5

043 5

Final < inicial entonces el flujo es 4-2=2

Page 304: Unidad 1  Programación Lineal

304

Aplicando la regla anterior a todos los arcos se tiene el siguiente grafo:

6

6

6

2

4

2

8

2

8

4

1

2

3

4

5

Page 305: Unidad 1  Programación Lineal

305

Unidad 3

Administración de Proyectos

PERT y CPM

Page 306: Unidad 1  Programación Lineal

306

3 Administración de Proyectos (PERT y CPM)

1. ¿Cuándo sería lo más pronto que el proyecto pudiera estar terminado?

2. Para cumplir con este tiempo de conclusión, ¿qué tareas son críticas, en el sentido de que un retraso en cualquiera de esas tareas provoca un retraso en la conclusión del proyecto?

3. Es posible acelerar ciertas tareas para terminar todo el proyecto más pronto?. Si es así, ¿qué tareas serán éstas y cuál sería el costo adicional?

Todo proyecto debe ser comprobado y controlado, dado que éste tiene involucrado numerosas tareas interrelacionadas.

A través de algunas técnicas se puede responder a preguntas como:

Page 307: Unidad 1  Programación Lineal

307

Técnica de Evaluación de Proyectos (PERT, Program Evaluation and Review Technique): Método utilizado para administrar proyectos en que los tiempos requeridos para terminar las tareas individuales son inciertos (probabilísticos).

Método de la Ruta Crítica (CPM, Critical Path

Method): Método utilizado para administrar proyectos en que los tiempos requeridos para terminar las tareas individuales se conocen con relativa certeza (determinísticos).

Page 308: Unidad 1  Programación Lineal

308

3.1 Desarrollo de la Red de Proyectos

1. Identifique las tareas individuales que componen el proyecto

2. Obtenga una estimación del tiempo de conclusión de cada tarea.

3. Identifique las relaciones entre las tareas. ¿Qué tareas deben concluirse antes de que otras puedan iniciarse?

4. Dibuje un diagrama de red de proyecto para reflejar la información de los pasos 1 y 3

Para determinar el tiempo de conclusión de un proyecto puede usar los siguientes pasos:

Page 309: Unidad 1  Programación Lineal

309

Ejemplo:

Traslado de las oficinas de una ciudad a otra

El directorio ha fijado un plazo máximo de 22 semanas para la mudanza

Actividad DescripciónPrdecesoras inmediatas

Tiempo Recursos

A Elegir local de oficinas -B Crear el plan financiero y de -

CDeterminar requerimientos de personal

B

D Diseño de local A, CE Construir el interior DF Elegir personal a mudar C

GContratar nuevos empleados

F

HMudar registros, personal clave, etc.

F

IHacer arreglos finacieros de la organización

B

J Entrenar personal nuevo H, E, G

Page 310: Unidad 1  Programación Lineal

310

Construcción del diagrama de Red:

1

2

3

4

A

B C

¿Cómo agregamos la actividad D?. Sus predecesoras inmediatas son A y C, además C es predecesora directa de F

Page 311: Unidad 1  Programación Lineal

311

Actividades Ficticias (figurada):

Es una actividad artificial que no requiere tiempo y que se incluye en una red de proyecto para asegurar la relación de precedencia correcta entre ciertas tareas.

Generalmente se representan por líneas segmentadas.

Se usan sólo para reflejar las relaciones de precedencia adecuadas

2

4

A

C

Page 312: Unidad 1  Programación Lineal

312

Volviendo al ejemplo: Agregando el resto de las actividades a la red finalmente se tiene

1

2

3

4

5

67

8

A

BC

D

E

F

G

H

I

J

Page 313: Unidad 1  Programación Lineal

313

Siguiendo con el ejemplo: G y H tienen como predecesora inmediata F, además ambas son predecesoras de J, agregar actividad ficticia.

1

2

3

4

5

67

8

A

BC

D

E

F

G

H

I

J

9

Red Final

Fic

Page 314: Unidad 1  Programación Lineal

314

Ruta Crítica: Dar cumplimiento al plazo límiteSe requiere de las estimaciones de tiempo de cada actividad (supuestos)

Actividad DescripciónPrdecesoras inmediatas

Tiempo Recursos

A Elegir local de oficinas - 3

BCrear el plan financiero y de organización

- 5

CDeterminar requerimientos de personal

B 3

D Diseño de local A, C 4E Construir el interior D 8F Elegir personal a mudar C 2

GContratar nuevos empleados

F 4

HMudar registros, personal clave, etc.

F 2

IHacer arreglos finacieros de la organización

B 5

J Entrenar personal nuevo H, E, G 3

Page 315: Unidad 1  Programación Lineal

315

Retomando el ejemplo: Agregando los tiempos a las actividades

1

2

3

4

5

67

9

A

BC

D

E

FG

H

I

J

(3)

(5)

(3)

(4)

(8)

(2)

(4)

(2)

(5)

(3)

8Fic

Page 316: Unidad 1  Programación Lineal

316

Cálculo de la ruta crítica: Tiempo de término del proyecto

Definiciones

Tiempo de inicio más inmediato: El tiempo más cercano en que una tarea posiblemente pueda iniciarse (TI)

Tiempo de término más breve: El tiempo más corto en el que una tarea posiblemente pueda concluir (TT)

Page 317: Unidad 1  Programación Lineal

317

Reglas a cumplir: Dado que en el proyecto existen tareas predecesoras es necesario conocer cuando termina una y cuando empieza la otra:

Regla

1. Para calcular el TI de una tarea se debe conocer los TT de cada tarea predecesora inmediata

2. El TI más inmediato de una tarea de la que se conocen los tiempos de término más breves de todas sus tareas predecesoras inmediatas es el máximo de todos esos tiempos de término más breves.

3. Tiempo de término más breve = (tiempo de inicio más inmediato) + (tiempo de tarea(t))

Page 318: Unidad 1  Programación Lineal

318

Pasos para determinar los TI y TT más inmediatos:

Paso

0

1

Identificar el nodo de inicio de la red del proyecto

Calcule y escriba en cada arco saliente

a) TI más cercano, esto es, 0

b) El TT más breve de acuerdo a la regla 3

TT más breve = (TI más inmediato) + (t)

= 0 + t

Seleccionar cualquier nodo donde todos los arcos entrantes han sido etiquetados con sus TI y TT

Page 319: Unidad 1  Programación Lineal

319

Pasos para determinar los TI y TT más inmediatos:

Paso

2 Para el nodo seleccionado en el paso 1 calcule y registre en cada arco saliente

a) El TI más breve de acuerdo a la regla 2

TI más breve = MAXIMO(TT de los arcos entrantes)

b) El TT más breve de acuerdo a la regla 3

TT más breve = TI más inmediato + t

Page 320: Unidad 1  Programación Lineal

320

Cálculo de TI y TT:

1

2

3

4

5

67

9

A[0

, 3]

B[0, 5] C[5

,8]

D[8,12]

E[12,20]

F[8,10]

G[10,14]

H[10,12]

I[5,10]

J[20,23]

8Fic

Page 321: Unidad 1  Programación Lineal

321

Identificación de las tareas críticas:

Para identificar las tareas críticas hay que realizar un recorrido hacia atrás hasta el inicio del proyecto, analizando cada tarea.

1. Último Tiempo de término: Lo más tarde que puede concluirse una tarea, en tanto permita que el proyecto se complete lo más pronto posible

2. Último tiempo de inicio: Lo más tarde que pueda iniciarse una tarea, pero finalizando dentro de su tiempo de término.

3. Tarea sucesora: Una tarea para la que la tarea de interés es una predecesora

Page 322: Unidad 1  Programación Lineal

322

Identificación de las tareas críticas:

Para calcular el último tiempo de término (UTT) de una tarea particular, debe conocer los últimos tiempos de inicio (UTI) de cada tarea sucesora inmediata.

Respecto a una tarea de la que se conocen los últimos tiempos de inicio de todas sus tareas sucesoras inmediatas, el último tiempo de término (UTT) de esa tarea es el mínimo de los últimos tiempos de inicio de todas las tareas sucesoras inmediatas

UTI = UTT- t

Regla 4

5

6

Page 323: Unidad 1  Programación Lineal

323

Identificación de las tareas críticas:Pasos para calcular los últimos tiempos de inicio y término

0

1

2

3

Identificar el final del proyecto. Calcular y escribir en cada arco entrante:

a) Último tiempo de término del proyecto

b) Último tiempo de inicio (Regla 6): UTI=UTT-t

Seleccione un nodo, cuyos arcos salientes hayan sido etiquetados todos con sus UTI y UTT

Para el nodo seleccionado (paso 1) calcule y escriba lo siguiente

a) UTT= MIN(UTI arcos salientes), (regla 5)

b) UTI=UTT - t (regla 6)

Repetir pasos 1 y 2 hasta cubrir toda la red del proyecto

Page 324: Unidad 1  Programación Lineal

324

Identificación de las tareas críticas:Cálculo de UTT y UTI para cada actividad

Iteración 2

Actividad ficticia UTT = 20

UTI = 20-0 = 20

Actividad I UTT = 23

UTI = 23-5 = 18

Nodo 7 Actividad E UTT = 20

UTI = 20-8 = 12

UTT = 20

UTI = 20-2 = 18

Iteración 1

Actividad H

Nodo 9 Actividad J UTT = 23

UTI = 23-3 = 20

Page 325: Unidad 1  Programación Lineal

325

1

2

3

4

5

67

9

A[0

, 3]

B[0, 5]

C[5

,8]

[20,23]

E[12,20]

F[8,10]G[10,14]

H[10,12]

I[5,10]

J[20,23]

8

Identificación de las tareas críticas:Cálculo de UTT y UTI para cada actividad . Finalmente se tiene

D[8,12]

[8,12] [12,20]

[5,8

]

[18,23]

[16,20]

[18,20]

[14,16]

[5,8

][0,5]

Fic

Page 326: Unidad 1  Programación Lineal

326

Identificación de las tareas críticas:

Holgura: Es la cantidad de tiempo que puede demorar una actividad sin afectar la fecha de término del proyecto.

El valor de la holgura para cada actividad está dada por:

holgura = TI - UTI = TT - UTT

Ejemplo:

Actividad C: TI = 5, UTI = 5, TT = 8, UTT = 8

Holgura = 5 - 5 = 8 - 8 = 0

Actividad I: TI = 5, UTI = 18, TT = 10, UTT = 23

La actividad C tiene holgura 0, por tanto no puede retrasarse, en cambio la actividad I tiene 13 semanas de holgura que permite retrasar su inicio.

Page 327: Unidad 1  Programación Lineal

327

Identificación de las tareas críticas:

Resumen de los tiempos de las actividades del proyecto:

Actividad Tiempo Inicio Término Inicio Término HolguraA 3 0 3 5 8 5B 5 0 5 0 5 0C 3 5 8 5 8 0D 4 8 12 8 12 0E 8 12 20 12 20 0F 2 8 10 14 16 6G 4 10 14 16 20 6H 2 10 12 18 20 8I 5 5 10 18 23 13J 3 20 23 20 23 0

Tiempo más próximo de: Tiempo más lejano de:

Tiempo de ejecución del proyecto: 23 semanas

Page 328: Unidad 1  Programación Lineal

328

Identificación de las tareas críticas:

Actividad crítica es aquella que tiene holgura cero

Ruta crítica es una secuencia de tareas (actividades) críticas que conecta el principio del proyecto con el fin

En nuestro ejemplo:

Actividades críticas: B, C, D, E y J

Ruta crítica: Nodos 1-3-2-5-7-9

Actividades B-C-D-E-J

Page 329: Unidad 1  Programación Lineal

329

Formas de Reducir la duración del proyecto:

1. Análisis Estratégico

Aquí el analista se pregunta: “¿Este proyecto tiene que desarrollarse en la forma programada actualmente?”. En concreto, “¿Todas las actividades de la ruta crítica tienen que realizarse en el orden especificado?”. ¿Podemos hacer arreglos para efectuar algunas de estas actividades en forma distinta de cómo aparecen en la ruta crítica?.

2. Enfoque Táctico

El analista presupone que el diagrama en curso es adecuado y trabaja para reducir el tiempo de ciertas actividades de la ruta crítica asignando mayores recursos. Por ejemplo tiempo, aumento de mano de obra, etc.

Page 330: Unidad 1  Programación Lineal

330

Formas de Reducir la duración del proyecto:

Para el ejemplo en estudio, el directorio estimó un tiempo máximo de 22 semanas para realizar el proyecto, y según el estudio se ha determinado que se requieren 23 semanas, ¿Cómo soluciona Ud. el problema?. Realice distintos supuestos válidos para su solución. ¿Es única?.

Page 331: Unidad 1  Programación Lineal

331

Formas de Reducir la duración del proyecto:

Alternativa de solución

Realizados algunos estudios los responsables de la mudanza, se dan cuenta que la actividad J (entrenamiento de los nuevos empleados) debe realizarse en el nuevo edificio (después de completar la actividad E) y después de que el personal clave y de registros se haya mudado (al completar la actividad H). Estos requerimientos se podrían cambiar:

• Realizar J independientemente de H

• El entrenamiento realizarlo en otras dependencias a un costo reducido y que estén listos para cuando se termine la construcción. Esto requiere agregar otra actividad: Garantizar recursos de entrenamiento, actividad K

Page 332: Unidad 1  Programación Lineal

332

Formas de Reducir la duración del proyecto:

Con los cambios anteriores, es posible que la red redefinida tenga una nueva ruta crítica con un tiempo menor, aunque todavía insatisfactorio (mayor a las 22 semanas establecidas).

Page 333: Unidad 1  Programación Lineal

333

Diagrama de red para el proyecto redefinido

1

2

3

4

5

6

79

A

BC

DE

F G

H

I

J

(3)

(5)

(3)

(4)

(8)

(2) (4)

(2)

(5)

(3)

8

K(3)

Fic

Page 334: Unidad 1  Programación Lineal

334

Actualización de los tiempos para el proyecto redefinido

Actividad Tiempo Inicio Término Inicio Término HolguraA 3 0 3 5 8 5B 5 0 5 0 5 0C 3 5 8 5 8 0D 4 8 12 8 12 0E 8 12 20 12 20 0F 2 8 10 11 13 3G 4 10 14 13 17 3H 2 10 12 18 20 8I 5 5 10 15 20 10J 3 14 17 17 20 3K 3 10 13 14 17 4

Tiempo más próximo de: Tiempo más lejano de:

Actividades ruta crítica: B-C-D-E

Duración del proyecto: 20 semanas

Page 335: Unidad 1  Programación Lineal

335

3.3 PERT: Variabilidad en los tiempos de Actividades

Hasta ahora hemos trabajado asumiendo que los tiempos de duración de las actividades eran determinísticos, en consecuencia TI, TT, UTI y UTT también fueron deducidos como deterministas. Como este supuesto no siempre es correcto, PERT emplea una fórmula especial para estimar los tiempos de las actividades.

PERT requiere de alguien que conozca bien una actividad en cuestión, para producir tres estimaciones del tiempo de ésta.

Page 336: Unidad 1  Programación Lineal

336

PERT: Variabilidad en los tiempos de Actividades

1. Tiempo optimista (denotado por a): el tiempo mínimo. Todo tiene que marchar a la perfección.

2. Tiempo más probable (denotado por m): el tiempo que se necesita en circunstancias ordinarias.

3. Tiempo pesimista (denotado por b): el tiempo máximo. Situación que se da en el peor caso.

Page 337: Unidad 1  Programación Lineal

337

PERT: Variabilidad en los tiempos de Actividades

Ejemplo: Para la actividad E (8 semanas). Al examinar en detalle el proyecto de construcción del interior se llegó a las siguientes estimaciones:

a = 4

m = 7

b = 16

Para estimar el valor esperado y la desviación estándar de los tiempos de la actividad, se asume que el tiempo de la actividad es una variable aleatoria que tiene una distribución de probabilidad unimodal beta.

Page 338: Unidad 1  Programación Lineal

338

PERT: Variabilidad en los tiempos de Actividades

4 7 8 16a m b

Estimación del tiempo esperado de actividad o tiempo promedio 6

4 bmate

Estimación de la desviación estándar del tiempo de la actividad 6

ab

Distribución beta

Page 339: Unidad 1  Programación Lineal

339

PERT: Variabilidad en los tiempos de Actividades

Estimación de tiempo

Actividad a m b te desv est varianzaA 1,0 3,0 5,0 3,0 0,667 0,444B 3,0 4,5 9,0 5,0 1,000 1,000C 2,0 3,0 4,0 3,0 0,333 0,111D 2,0 4,0 6,0 4,0 0,667 0,444E 4,0 7,0 16,0 8,0 2,000 4,000F 1,0 1,5 5,0 2,0 0,667 0,444G 2,5 3,5 7,5 4,0 0,833 0,694H 1,0 2,0 3,0 2,0 0,333 0,111I 4,0 5,0 6,0 5,0 0,333 0,111J 1,5 3,0 4,5 3,0 0,500 0,250K 1,0 3,0 5,0 3,0 0,667 0,444

Page 340: Unidad 1  Programación Lineal

340

PERT: Variabilidad en los tiempos de Actividades

Cálculo del tiempo esperado de finalización de proyectos

Una vez determinado el tiempo promedio de cada actividad, se puede calcular el tiempo de finalización más temprano esperado para el proyecto completo.

Se determinan los tiempos de inicio y de término más cercano, como también los tiempos de término y de inicio más lejano. Con estos tiempos se determina la holgura en cada actividad, para finalmente determinar la ruta crítica, exactamente igual como se hizo para tiempo determinista.

Page 341: Unidad 1  Programación Lineal

341

PERT: Variabilidad en los tiempos de Actividades

Probabilidad de concluir el proyecto a tiempoEl análisis procede de la siguiente forma:

1. Sea T el tiempo total que durarán las actividades de la ruta crítica.

2. Encuéntrese la probabilidad de que el valor de T resulte menor o igual que cualquier valor específico de interés. Para el ejemplo en estudio buscaríamos T 22 semanas.

Una buena aproximación de esta probabilidad se encuentra aceptando dos supuestos:

a) Los tiempos de actividad son variables aleatorias independientes.

b) La variable T tiene una distribución aproximadamente normal.

Page 342: Unidad 1  Programación Lineal

342

PERT: Variabilidad en los tiempos de Actividades

La meta es encontrar P{T 22}, donde T es el tiempo a lo largo de la ruta crítica.

Estadísticas de la ruta crítica:

222

21 ... nT Desviación estándar

i

:i Desviación estándar de i-ésima actividad de la ruta crítica

T : es el tiempo esperado (promedio)

Page 343: Unidad 1  Programación Lineal

343

Estimación de terminación del proyecto

Uso de la tabla de distribución normal, entonces debemos calcular Z para llegar a determinar la probabilidad.

x

Z

Page 344: Unidad 1  Programación Lineal

344

Cálculos caso en estudio

Ruta crítica: B- C- D y E

T = 20 (tiempo esperado, promedio calculado, )

x = 22 (tiempo exigido)

357,2

555,5

4444,0111,012

2

22222

T

T

T

EDCBT

Page 345: Unidad 1  Programación Lineal

345

Cálculos caso en estudio

Z = 0,8485

En la tabla de Z

P(Z 0,8485) = 0,80

357,2

2022 Z

Page 346: Unidad 1  Programación Lineal

346

Matriz de Encadenamiento

Una matriz de encadenamiento, es una matriz de NxN (N es la cantidad de actividades) donde cada celda se marca con una X si la actividad de la fila requiere que esté terminada la actividad de la columna. Esta matriz ayuda a la construcción de la red CPM

Para el ejemplo en estudio es:

A B C D E F G H I JABC XD X XF XG XH XI XJ X X X

Page 347: Unidad 1  Programación Lineal

347

3.4 CPM: TRUEQUE ENTRE TIEMPO Y COSTO

CPM considera que el tiempo extra (costo) puede reducir el tiempo de término de una actividad, y en consecuencia reducir el tiempo total del proyecto

Compra de tiempo:

CPM usa dos estimaciones: tiempo y costo normal, a lo que se agregará tiempo y costo intensivo

Se asume que estas estimaciones son lineales:

Tiempo

Esfuerzo normal

Esfuerzo intensivo

Cos

to

Page 348: Unidad 1  Programación Lineal

348

Debido a las estimaciones de CPM se puede obtener dos redes extremas:

1. Red de costo normal

2. Red de costo intensivo

¿Todas las actividades deben realizarse en forma intensiva?

3. Red de tiempo mínimo—costo mínimo

CPM: Trueque entre el costo y el tiempo

Red de tiempo mínimo – costo mínimo

Page 349: Unidad 1  Programación Lineal

349

1. Comenzar con la red normal e ir reduciendo los tiempos de término hasta un mínimo.

2. Comenzar con la red de todo intensivo y “desintensificar” actividades para reducir el costo sin afectar el tiempo total.

3. Comenzar con la ruta crítica de la red de todo intensivo con un tiempo mínimo, pero con todas la demás actividades normales. Después reducir las otras trayectorias como sea necesario.

¿Todos son igualmente eficaces?

CPM: Trueque entre el costo y el tiempo

Enfoques para encontrar red de tiempo mínimo – costo mínimo

Page 350: Unidad 1  Programación Lineal

350

CPM: Trueque entre el costo y el tiempo

Enfoque: Red normal y reducción de tiempos

Proyecto: Construcción de una casa

Actividad Precedencia Normal Intensivo Normal Intensivo CostoA (1,2) ninguna 4 3 1.400 2.000 600 B (2,3) A 2 1 1.500 2.000 500 C (2,4) A 3 1 1.500 2.500 1.000 D (2,7) A 1 1 600 600 --Fic(3,4) 0 0 -- -- --E (4,5) B, C 3 2 1.300 2.000 700 F (4,6) B, C 2 1 300 500 200 G (5,7) E 2 1 800 1.200 400 H (6,7) F 2 1 600 1.000 400

Tiempo (semanas) Costo (miles $)

Page 351: Unidad 1  Programación Lineal

351

CPM: Trueque entre el costo y el tiempo

Paso 1: Red del proyecto

2

3

6

5

7

E(3)G(2)

H(2)

D(1)

1F(2)

4C(3)

Si consideramos la convención actividad-flecha, el grafo del proyecto es:

B(2)

A(4)

Page 352: Unidad 1  Programación Lineal

352

CPM: Trueque entre el costo y el tiempo

Paso 2: Tiempos de Inicio y de Término, holgura y ruta crítica

2

3

6

5

7

B(2

)[4,

6]

(0)[6,6]

G(2)[10,12]

H(2)[9,11]

[10,12]1

F(2)[7,9]4

C(3)[4,7]

En el grafo se muestran los tiempos de inicio y de término más próximos y los más lejanos, y la ruta crítica. El tiempo mínimo para la ruta crítica es de 12 semanas a un costo normal de $8.000.

A(4)[0,4]

0

0 0

E(3)[7

,10]

0

12 12

D(1)[4,5]

[8,10][4,7]

[5,7

] [7,7][0,4]

[7,10

]

[10,12]

[11,12]

Page 353: Unidad 1  Programación Lineal

353

CPM: Trueque entre el costo y el tiempo

Paso 2: Tabla de tiempos próximos y lejanos

Tiempo Tiempo más próximo de: Tiempo más lejano de:

Actividad Normal Inicio Término Inicio Término HolguraA (1,2) 4 0 4 4 4 0B (2,3) 2 4 6 5 7 1C (2,4) 3 4 7 4 7 0D (2,7) 1 4 5 1 12 7E (4,5) 3 7 10 7 10 0F (4,6) 2 7 9 8 10 1G (5,7) 2 10 12 10 12 0H (6,7) 2 9 11 10 12 1

Actividades críticas

Page 354: Unidad 1  Programación Lineal

354

CPM: Trueque entre el costo y el tiempo

Paso 3: “Intensificar” actividades ruta crítica

a) Actividad A: de 4 a 3 semanas ( 600)

b) Actividad C: de 3 a 1 semana (1.000)

c) Actividad E: de 3 a 2 semanas ( 700)

d) Actividad G: de 2 a 1 semana ( 400)

¿Es posible hacer estas reducciones?

Page 355: Unidad 1  Programación Lineal

355

CPM: Trueque entre el costo y el tiempo

Reducción de Actividades ruta crítica

2

3

6

5

7

B(2

)[4,

6]

G(2 1)

H(2)[9,11]1

F(2)[7,9]4

C(3 1)

La ruta crítica disminuyó a 7 semanas, ¿seguirá manteniéndose como tal?. No

Hay que ver si es posible reducir las actividades paralelas a la ruta crítica inicial, sólo hasta igualar tiempos.

A(4 3)

0

0 0

E(3 2

)

0

D(1)[4,5]

Page 356: Unidad 1  Programación Lineal

356

CPM: Trueque entre el costo y el tiempo

Paso 4: “Intensificar” actividades que no están en la ruta crítica (“paralelas”)

a) Actividad B (paralela a C): de 2 a 1 semana (500)

b) ¿Actividad F o H? (¿o ambas?). En este caso sólo F: de 2 a 1 semana (200)

c) Actividad D: No requiere reducción

Page 357: Unidad 1  Programación Lineal

357

CPM: Trueque entre el costo y el tiempo

Paso 4: Resumen de las reducciones

CostoActividad Acción Adicional Normal TotalA (1,2) 1 semana 600 1.400 2.000 B (2,3) 1 semana 500 1.500 2.000 C (2,4) 2 semanas 1000 1.500 2.500 D (2,7) ----- 600 600 E (4,5) 1 semana 700 1.300 2.000 F (4,6) 1 semana 200 300 500 G (5,7) 1 semana 400 800 1.200 H (6,7) ----- 600 600

$ 8.000 $ 11.400

Page 358: Unidad 1  Programación Lineal

358

CPM: Trueque entre el costo y el tiempo

Grafo final

2

3

6

5

7

B(1

)[3,

4]

(0)[4,4]

G(1)[6,7]

H(2)[5,7]

[5,7]1

F(1)[4,5]4

C(1)[3,4]

En el grafo se muestran los tiempos de inicio y de término más próximos y los más lejanos, y la ruta crítica. El tiempo mínimo para la ruta crítica es de 7 semanas a un costo normal de $11.400.

A(3)[0,3]

0

0 0

E(2)[4

,6]

0

7 7

D(1)[3,4]

[4,5][3,4]

[5,7

] [7,7][0,3]

[4,6]

[6,7]

[6,7]

Page 359: Unidad 1  Programación Lineal

359

¿Qué sucede si un proyecto lleva más tiempo del especificado?

¿Conviene hacer más “intensivo” el proyecto o pagar la penalización por atraso?

Ejemplo:

Suponga que en el proyecto de la casa hay una penalización de $450 por cada semana de tiempo extra después de ocho semanas. ¿Cuál es la red óptima?.

Solución: Reducir la red en una semana cada vez e ir comparando si los costos por intensificar son menores a los costos por penalización. Se termina cuando los costos de penalización son mayor a los costos de intensificar.

CPM: Trueque entre el costo y el tiempo

Red óptima

Page 360: Unidad 1  Programación Lineal

360

1. Reducir una semana (de 12 a 11 semanas)

De la red normal analizar ruta críticaActividades Incremento de Costo

A 600C 500E 700G 400

Conclusión: Intensificar 1 semana la actividad G (400<450).

2. Intentar reducir una segunda semana (de 11 a 10)

Todos los costos incrementales de la ruta son mayores a la penalización. Intentar por las vías paralelas.

No hay rutas alternativas cuya reducción implique un costo menor al de penalización.

CPM: Trueque entre el costo y el tiempo

Red óptima

Page 361: Unidad 1  Programación Lineal

361

CPM: Trueque entre el costo y el tiempoSolución

2

3

6

5

7

B(2

)

G(1)

H(2)1

F(2)4

C(3)

Grafo resultante

A(4)

E(3)

D(1)

Conviene hacer intensivo el proyecto hasta la semana 11 y pagar las penalizaciones por las semanas de atraso

Costo total = Costo intensivo + costo penalización

= (8.000 + 400) + 3*450 = $9.650

Page 362: Unidad 1  Programación Lineal

362

CPM: Trueque entre el costo y el tiempoEjemplo

a) Dibuje la red. Con los tiempos normales de las actividades, encuéntrese la duración total del proyecto y la ruta crítica.

b) Supóngase que el proyecto se debe completar en un tiempo mínimo. ¿Cuál es el menor costo para el proyecto, es decir, cuál es la red de tiempo mínimo—costo mínimo?

c) ¿Cuál es el costo mínimo para terminar el proyecto en 17 meses?

d) El departamento de comercialización dice que cada mes que el proyecto se pase de 15 meses le cuesta a la firma $5.000. ¿Cuál es el costo y duración óptimo del proyecto?

Suponga que un proyecto de investigación tiene las siguientes estimaciones:

Actividad Normal Intensivo Normal IntensivoA (1,2) 8 4 20.000 30.000 B (1,3) 9 6 18.000 27.000 C (2,3) 3 2 12.000 17.000 D (2,4) 10 7 25.000 34.000 E(3,4) 6 4 15.000 23.000

Tiempo (meses) Costo (miles $)

Page 363: Unidad 1  Programación Lineal

363

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

a) Identificación de Variables de decisión

Están relacionadas directamente con el tiempo a reducir en cada tarea

Yi: Tiempo (horas, días, ..) a reducir de la i-ésima actividad

YA: Número de semanas en las cuales acortar la actividad A

b) Función Objetivo

El objetivo es minimizar los recursos adicionales totales requeridos para satisfacer el tiempo de término del proyecto.

Para el ejemplo en estudio, en la tabla de especificaciones agregamos dos columnas: Tiempo máximo a reducir por tarea y el costo adicional por semana intensiva

Page 364: Unidad 1  Programación Lineal

364

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

Por lo tanto la función es:

MIN Z = 600YA+500YB+500YC+700YE+200YF+400YG+400YH

Actividad Precedencia Normal Intensivo Normal IntensivoA (1,2) ninguna 4 3 1.400 2.000 1 600B (2,3) A 2 1 1.500 2.000 1 500C (2,4) A 3 1 1.500 2.500 2 500D (2,7) A 1 1 600 600 0 --Fic(3,4) 0 0 -- -- 0 --E (4,5) B, C 3 2 1.300 2.000 1 700F (4,6) B, C 2 1 300 500 1 200G (5,7) E 2 1 800 1.200 1 400H (6,7) F 2 1 600 1.000 1 400

Tiempo (semanas) Costo (miles $) Reducción máxima

Costo por semana

Page 365: Unidad 1  Programación Lineal

365

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

c) Identificación de las restricciones

Para el ejemplo, se pueden agrupar en dos grupos

1. La cantidad máxima de tiempo en el cual se puede acortar cada actividad.

2. El tiempo de término del proyecto (en este caso 12 semanas)

Para el grupo 1, lo que se necesita son las cotas superiores sobre las variables de decisión (YA, YB, YC, YE, YF, YG, YH)

dada por la columna “Reducción máxima) de la tabla anterior.

Page 366: Unidad 1  Programación Lineal

366

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

Restricciones de Límite

0<=YA<= 1 (límite de A)

0<=YB<= 1 (límite de B)

0<=YC<= 2 (límite de C)

0<=YD<= 0 (límite de D)

0<=YE<= 1 (límite de E)

0<=YF<= 1 (límite de F)

0<=YG<= 1 (límite de G)

0<=YH<= 1 (límite de H)

Page 367: Unidad 1  Programación Lineal

367

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

Restricciones del grupo 2 están en función de nuevas variables que expresan cuando las actividades que salen de un determinado evento pueden comenzar. Requiere conocer cuando terminan todas las actividades que llegan al evento. Dependen de Yi

X1 : tiempo en que todas las actividades que salen del evento 1 pueden comenzar

X2 : tiempo en que todas las actividades que salen del evento 2 pueden comenzar

......

X7 : tiempo en que todas las actividades que salen del evento 7 pueden comenzar

Además el proyecto debe comenzar en el tiempo 1 y terminar a lo más en 12 semanas

X1 = 0

X7 12

Page 368: Unidad 1  Programación Lineal

368

CPM: Trueque entre el costo y el tiempo

2

3

6

5

7

E(3)G(2)

H(2)

D(1)

1F(2)

4C(3)

Asociando las variables a la red tenemos:

(2-YB)

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

A(4)

B(2)

(4-YA) (3-YC) (2-YF)

(1-YD)

(2-YH)

(3-YE) (2-YG)(0)

X1 X2

X3

X4

X5

X6X7

Page 369: Unidad 1  Programación Lineal

369

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

Nodo 2

Tiempo de inicio de las tareas que salen del nodo 2 tiempo de terminación de todas las tareas que entran al nodo 2

Tiempo de inicio de las tareas B, C y D (tiempo de terminación de la tarea A + (tiempo acortado de la tarea A)

X2 X1 + (4-YA)

Nodo 3

Tiempo de inicio de las tareas que salen del nodo 3 tiempo de terminación de todas las tareas que entran al nodo 3

Tiempo de inicio de la tarea Ficticia (tiempo de terminación de la tarea B + (tiempo acortado de la tarea B)

X3 X2 + (2-YB)

Page 370: Unidad 1  Programación Lineal

370

CPM: Trueque entre el costo y el tiempoModelo de PL para CPM (Tiempo mínimo—costo mínimo)

Nodo 4

Tiempo de inicio de las tareas que salen del nodo 4 tiempo de terminación de todas las tareas que entran al nodo 4.

Hay dos arcos que entran al nodo, las actividades E y F deben comenzar sólo cuando las tareas que entran (C y la ficticia) hayan terminado. Dando origen así a dos restricciones (una por cada actividad)

Restricción de la actividad C

Tiempo de inicio de las tareas E y F tiempo de terminación de la tarea C

Tiempo de inicio de las tareas E y F (tiempo de terminación de la tarea C + (tiempo acortado de la tarea C)

X4 X2 + (3-Yc) (tarea C)

Page 371: Unidad 1  Programación Lineal

371

CPM: Trueque entre el costo y el tiempoModelo de PL para CPM (Tiempo mínimo—costo mínimo)

Nodo 4

Restricción de la actividad Ficticia

Tiempo de inicio de las tareas E y F tiempo de terminación de la tarea figurada

Tiempo de inicio de las tareas E y F (tiempo de terminación de la tarea Figurada + (tiempo acortado de la tarea Figurada)

X4 X3 + 0 (tarea Figurada)

Aplicando sistemáticamente el procedimiento y se escribe una restricción para cada actividad se obtienen las siguientes restricciones para los nodos 5 al 7

Page 372: Unidad 1  Programación Lineal

372

CPM: Trueque entre el costo y el tiempoModelo de PL para CPM (Tiempo mínimo—costo mínimo)

Nodo 5

X5 X4 + (3-YE) (actividad E)

Nodo 6

X6 X4 + (2-YF) (actividad F)

Nodo 7

X7 X5 + (2-YG) (actividad G)

X7 X6 + (2-YH) (actividad H)

Page 373: Unidad 1  Programación Lineal

373

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

MIN Z = 600YA+500YB+500YC+700YE+200YF+400YG+400YH

Sujeto a:Restricciones de Límite

0<=YA<= 1 (límite de A)

0<=YB<= 1 (límite de B)

0<=YC<= 2 (límite de C)

0<=YD<= 0 (límite de D)

0<=YE<= 1 (límite de E)

0<=YF<= 1 (límite de F)

0<=YG<= 1 (límite de G)

0<=YH<= 1 (límite de H)

Page 374: Unidad 1  Programación Lineal

374

CPM: Trueque entre el costo y el tiempo

Modelo de PL para CPM (Tiempo mínimo—costo mínimo)

X1 = 0

X7 12

X2 X1 + (4-YA) (tarea C)

X3 X2 + (2-YB) (tarea B)

X4 X2 + (3-Yc) (tarea C)

X4 X3 + 0 (tarea Figurada)

X5 X4 + (3-YE) (actividad E)

X6 X4 + (2-YF) (actividad F)

X7 X5 + (2-YG) (actividad G)

X7 X6 + (2-YH) (actividad H)

X1, ..., X7 0

Page 375: Unidad 1  Programación Lineal

375

Para su entretenciónEjercicios:

a) Existen 7 trayectorias en esta red. Encuéntrense todas.

b) Con tiempos normales, encuéntrese la longitud de cada trayectoria. ¿Cuál es la ruta crítica?

c) ¿Cuál es el costo mínimo intensivo para reducir el proyecto a 39 días? ¿a 38 días? ¿a 37 días?

d) Encuéntrese la red de tiempo mínimo—costo mínimo.

La complejidad de las redes CPM está más afectada por las interrelaciones que el número de nodos. Por ejemplo, considérese el proyecto siguiente:

Actividad Normal Intensivo Normal IntensivoA (1,2) 8 7 10.000 12.000 B (1,3) 15 10 12.000 17.000 C (1,4) 12 6 13.000 14.000 D (2,3) 9 9 7.000 7.000 E (2,5) 11 9 2.000 4.000 F (3,6) 9 8 5.000 7.000 G (4,3) 9 7 14.000 16.000 H (4,7) 13 12 8.000 10.000 I (5,6) 7 5 6.000 10.000 J (5,8) 15 11 9.000 10.000 K (6,8) 10 5 3.000 8.000 L (7,6) 4 3 7.000 8.000 M (7,8) 12 9 5.000 6.000