Cap II_.pdf

47
Programación Lineal Capitulo II Investigación Operativa I M.Sc. Ing. Gregorio Fernando Ureña Mérida http://www.sistemas.edu.bo/furena/ [email protected]

Transcript of Cap II_.pdf

Programación Lineal

Capitulo II – Investigación Operativa I

M.Sc. Ing. Gregorio Fernando Ureña Mérida

http://www.sistemas.edu.bo/furena/

[email protected]

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

Un modelo de programación lineal busca

maximizar o minimizar una función lineal,

sujeta a un conjunto de restricciones

lineales.

Un modelo de programación lineal esta

compuesto de lo siguiente:

* Un conjunto de variables de decisión

* Una función objetivo

* Un conjunto de restricciones

* Ciertos problemas se describen fácilmente a través

de la programación lineal.

* Muchos problemas pueden aproximarse a modelos

lineales.

* La salida generada por el programa que resuelve el

modelo de programación lineal entrega información

útil para responder nuevas condiciones sobre el “qué

pasa si”.

LA IMPORTANCIA DE LA PROGRAMACIÓN LINEAL

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

El problema general es asignar recursos limitados

entre actividades competitivas de la mejor

manera posible (óptima).

Este problema incluye elegir el nivel de ciertas

actividades que compiten por recursos escasos

necesarios para realizarlas

INTRODUCCIÓN A LA PROGRAMACIÓN LINEAL

El adjetivo lineal significa que todas las funciones

matemáticas del modelo deber ser funciones lineales.

En este caso, las palabra programación no se

refiere a programación en computadoras; en esencia

es un sinónimo de planeación. Así, la programación

lineal trata la planeación de las actividades para

obtener un resultado óptimo.

nn xcxcxcz Opt 2211

021

2211

11212111

n

mnmnmm

nn

x,,x,x

bxaxaxa

bxaxaxa

.a.s

MODELO GENERAL DE PL

z: función objetivo

CT (c1,...,cn): vector de coeficientes de la f.o.

XT (x1,...,xn): vector de variables de decisión

A (...,aij,...): matriz de coeficientes técnicos

b (b1,...,bm): vector de demandas

Matricialmente,

Opt CTX

s.a.

AX b

x 0

Forma canónica

MODELO GENERAL DE PL

Los términos clave son recursos y actividades,

en donde m denota el número de distintos tipos

de recursos que se pueden usar y n denota el

número de actividades bajo consideración.

MODELO GENERAL DE PL

ESTRUCTURA DE UN MODELO DE PL

1. Función objetivo. Consiste en optimizar el objetivo que persigue una situación la cual es una función lineal de las diferentes actividades del problema, la función objetivo se maximizar o minimiza.

2. Variables de decisión. Son las incógnitas del problema. La definición de las variables es el punto clave y básicamente consiste en los niveles de todas las actividades que pueden llevarse a cabo en el problema a formular.

3. Restricciones Estructurales. Diferentes

requisitos que debe cumplir cualquier

solución para que pueda llevarse a cabo,

dichas restricciones pueden ser de

capacidad, mercado, materia prima,

calidad, balance de materiales, etc.

4. Condición técnica. Todas las variables deben tomar valores positivos, o en algunos casos puede ser que algunas variables tomen valores negativos.

ESTRUCTURA DE UN MODELO DE PL

CONJUNTO DE SOLUCIONES FACTIBLES PARA EL MODELO LINEAL.

El conjunto de puntos que satisface todas las

restricciones del modelo es llamado:

REGION

FACTIBLE

USANDO UN GRAFICO SE

PUEDEN REPRESENTAR

TODAS LAS RESTRICCIONES,

LA FUNCION OBJETIVO Y LOS

TRES TIPOS DE PUNTOS DE

FACTIBILIDAD

Método Grafico

• El procedimiento del método grafico incluye

dos pasos básicos:

1.Determinar el espacio de solución que

definen las soluciones factibles que

satisfacen todas las restricciones del

modelo.

2.Determinar la solución optima de entre

todos los puntos en el espacio de la

solución factible.

• Este procedimiento se describe tanto para

una función objetivo de maximización, como

de minimización.

1200

600

The Plastic constraint

Factible

Restricción del plástico:

2X1+X2<=1200

X2

No Factible

Horas de Producción

3X1+4X2<=2400

Restricción del total de producción: X1+X2<=800

600

800

Restricción del exceso de producción:

X1-X2<=450

• Tipos de puntos de factibilidad

Punto Inferior

Punto Medio

Punto Extremo

X1

600

800

1200

400 600 800

X2

X1

comenzar con una ganancia dada de = $2,000...

Utilid. = $

000

2,

Entonces aumente la ganancia...

3, 4,

...y continúe hasta que salga de la región factible

Ganancia =$5040

600

800

1200

400 600 800

X2

X1

Se toma un valor cercano al

punto óptimo

Feasible

region Región

Factible

Región no

factible

Soluciones óptimas y puntos extremos.

* Si un problema de programación lineal tiene una solución

óptima, entonces esta corresponde a un punto extremo.

Múltiples soluciones óptimas.

* Cuando existen múltiples soluciones óptimas implica que

la función objetivo es una recta paralela a uno de los lados

de la región factible.

* Cualquier promedio ponderado de la solución óptima es

también una solución óptima.

MODELO SIN SOLUCIÓN ÓPTIMA

• No factible: Ocurre cuando en el

modelo no hay ningún punto de

factible.

• No acotado: Ocurre cuando el objetivo

puede crecer infinitamente (objetivo a

maximizar).

INFACTIBILIDAD

Ningún punto se encuentra,

simultáneamente, sobre la línea la línea y

1

2

3 1

2 3

SOLUCIÓN NO ACOTADA

LA SOLUCIÓN GRÁFICA

5

4

2

2 4 5

Región factible

Restricción de vitamina D

Restricción de vitamina A

Restricción de hierro

SOLUCIÓN PARA PROBLEMAS LINEALES CON MUCHAS VARIABLES DE DECISIÓN USANDO EL COMPUTADOR

• Los paquetes de programas lineales resuelven

grandes modelos lineales.

• La mayoría de los software usan la técnica

algebraica llamada algoritmo Simplex.

• Los paquetes incluyen:

• El criterio de la función objetivo (Max o Min).

• El tipo de cada restricción: .

• Los coeficientes reales para el problema.

, ,

LA SOLUCIÓN GENERADA POR UN SOFTWARE DE PROGRAMACIÓN LINEAL INCLUYE:

• Los valores óptimos de la función objetivo.

• Los valores óptimos de las variables de decisión.

• La minimización del costo para los coeficientes de la

función objetivo.

• Los rangos de optimización para los coeficientes de la

función objetivo.

• La cantidad de holgura o exceso sobre cada

restricción.

• Los precios sombra (o dual) para las restricciones.

• Los rangos de factibilidad para el coeficiente del lado

derecho.

FORMAS EQUIVALENTES DE LA PROGRAMACION LINEAL

• Regla 1.

– Maximizar cX es equivalente a Minimizar –cX

– Minimizar cX es equivalente a Maximizar –cX

• Regla 2.

– La desigualdad AX ≤ b es equivalente a la desigualdad -AX ≥ -b.

– La desigualdad AX ≥ b es equivalente a la desigualdad -AX ≤ -b.

• Regla 3.

– Toda igualdad de la forma AX=b, puede descomponerse como la intersección de dos desigualdades AX ≤ b y AX ≥ b.

FORMAS EQUIVALENTES DE LA PROGRAMACION LINEAL

• Regla 4.

– Toda desigualdad de la forma AX ≤ b puede convertirse en

igualdad mediante la adición de un vector S, llamado vector de holgura compuesta por m componentes, todas

no-negativas es decir:

0

.

.

0

0

.

.

2

1

mS

S

S

S

FORMAS EQUIVALENTES DE LA PROGRAMACION LINEAL

– Toda desigualdad de la forma AX ≥ b puede convertirse en

igualdad mediante la resta de un vector E, llamado vector

de exceso o superfluo compuesta por m componentes,

todas no-negativas es decir:

0

.

.

0

0

.

.

2

1

mE

E

E

E

FORMAS EQUIVALENTES DE LA PROGRAMACION LINEAL

• Regla 5.

– Una variable no restringida, aquella que puede tomar toda

clase de valores positivos, cero y negativos, puede escribirse como la diferencia de dos variables no-

negativas.

METODO SIMPLEX

• Paso 1.

– Dado cualquier programa lineal transfórmese por medio

del uso de las reglas de equivalencia 1, 2, 3 y 5 a el PL a la forma canónica.

XcZMax

Sujeto a:

bXA

0X

METODO SIMPLEX

• Paso 2.

– Re-escriba la función objetivo de la siguiente manera

• Paso 3.

– Aplicando la regla de equivalencia 4, convierta todas las desigualdades en igualdades adicionando al PL variables

de holgura. Quedando convertida la forma canónica en:

0 XcZ

0 XcZ

bSXA

0X

0S

METODO SIMPLEX

• Paso 4.

– Constrúyase una tabla o tableau con los coeficientes del PL

como se muestra a continuación:

Z x1 x2 ………. xn s1 s2 ..…… sm

1 -c 0 0

0 A I b

METODO SIMPLEX

• Paso 5.

– Seleccione como vector de entrada aquella variable no

básica cuya componente zj-cj en el reglon 0 se la mas negativa para un PL Max y la mas positiva para un PL

Min.

– Si no hay ningún candidato de entrada, es decir que

todas las componentes zj-cj de las variables no básicas en el reglon 0 son ≥ 0 la solución mostrada en el tableau es

optimo.

– En caso de que exista un empate entre varias variables no

básicas que pueden entrar a la base, esto debe romperse de manera arbitraria, es decir seleccione a cualquiera de

las variables no básicas candidatas.

METODO SIMPLEX

• Paso 6.

– Una vez seleccionada la comuna aj que entrara a la nueva

base, seleccione el vector de salida ar que corresponde una variable básica actual utilizando la siguiente regla:

– En caso de que todas las componentes Ykj sean ≤ 0, la

solución del PL es no acotada.

0kj

kj

B

krj

BY

Y

XMin

Y

Xkr

METODO SIMPLEX

• Paso 7.

– La intersección en el tableau de la columna que entra y la

que sale determina el elemento pivote Yrj. Aplicando operaciones matriciales elementales sobre el elemento

pivote convierta la columna aj en un vector unitario ur, es

decir ceros en toda la columna incluyendo la componente

zj-cj y un uno en Yrj.

– Regrese al paso 5.

METODO PENALIZACION (M)

• Paso 1.

– Modifique las restricciones de tal manera que el lado

derecho de cada restricción sea no negativo. Esto requiere que se multiplique cada restricción con un lado

derecho negativo por -1. Recuerde que al multiplicar una

desigualdad por un numero negativo, se invierte el

sentido de la desigualdad.

• Paso 1’.

– Identifique cada restricción que es ahora (luego del paso

1) una igualdad o un desigualdad ≥. En el Paso 3,

añadiremos una variable artificial a cada una de estas

restricciones.

METODO PENALIZACION (M)

• Paso 2.

– Transforme cada restricción de desigualdad a la forma

estándar. Esto significa que si la restricción i es una restricción ≤, añadiremos una variable de holgura si, y si

la restricción i es una restricción ≥, restaremos una

variable de exceso ei.

• Paso 3.

– Si (después del paso 1’) la restricción i es una igualdad o una desigualdad ≥, añada una variable artificial ai a la

restricción i. también añada la restricción de signo ai ≥ 0.

METODO PENALIZACION (M)

• Paso 4.

– Sea M un numero positivo muy grande. Si el PL es un problema

min, añada (para cada variable artificial) Mai a la función

objetivo. Si el PL es un problema max, añada (para cada variable

artificial) -Mai a la función objetivo.

• Paso 5.

– Ya que cada variable artificial estará en la base inicial, se debe

eliminar todas las variables artificiales del reglon 0 antes de

empezar el algoritmo simples. Esto asegura que empecemos con

una forma canónica. Para escoger la variable que entra, hay que

recordar que M es un numero positivo muy grande. Ahora, con el

método simplex, resuelva el problema transformado. Si todas las

variables artificiales son iguales a cero en la solución optima,

hemos encontrado la solución optima para el problema original.

Si cualquier variable artificial es positiva en una solución

optima, el problema original es no factible.

METODO DOBLE FASE

• Paso 1.

– Modifique las restricciones de tal manera que el lado

derecho de cada restricción sea no negativo. Esto requiere que se multiplique por -1 cada restricción con

un lado derecho negativo

• Paso 1’.

– Identifique cada restricción que es ahora (luego del paso

1) una igualdad o un desigualdad ≥. En el Paso 3, añadiremos una variable artificial a cada una de estas

restricciones.

METODO DOBLE FASE

• Paso 2.

– Transforme cada restricción que sea desigualdad a la forma estándar. Esto significa que si la restricción i es una restricción ≤, añadiremos una variable de holgura si, y si la restricción i es una restricción ≥, restaremos una variable de exceso ei.

• Paso 3.

– Si (después del paso 1’) la restricción i es una desigualdad ≥ o una igualdad, añada una variable artificial ai a la restricción i. también añada la restricción de signo ai ≥ 0.

• Paso 4.

– Por el momento, ignore la función objetivo del PL original. En su lugar, resuelva un PL cuya función objetivo es min w’ = (la suma de todas las variables artificiales). Esto se llama el PL Fase I. La solución del PL Fase I hará las variables artificiales iguales a cero.

METODO DOBLE FASE

• Ya que cada ai ≥ 0, la solución del PL Fase I

corresponderá a una de los tres casos siguientes:

a) El optimo valor de w’ es mayor que cero. En este caso, el

PL original no tiene una solución factible.

b) El valor optimo de w’ es igual a cero, y no hay variables artificiales en la base optima de la Fase I. En este caso,

omitimos todas las columnas que corresponden a las

variables artificiales, en el cuadro optimo de la Fase I.

Ahora combinamos la función objetivo original con las

restricciones del cuadro optimo de la Fase I. Esto produce el PL Fase II. La solución optima del PL Fase II,

es la solución optima para el PL original.

METODO DOBLE FASE

c) El optimo valor de w’ es igual a cero, y por lo menos una

variable artificial esta en la base optima de la Fase I. En

este caso, podemos encontrar la solución optima para el

PL original, si al final de la Fase I, omitimos, del cuadro optimo de la Fase I, todas las variables artificiales no

básicas y cualquier variable del problema original con un

coeficiente negativo en el reglon 0 del cuadro optimo de

la Fase I.

DUALIDAD

• Asociada a cualquier estructura canónica o forma

estándar de programación lineal

s.a.

denominado problema primario o primal

XcZMax

bXA

0X

DUALIDAD

• se tiene definida la siguiente estructura

s.a.

denominada problema dual

YbGMinT

TTcYA

0Y

DUALIDAD

• La siguiente tabla muestra una descripción de cada uno

de los componentes del problema primal y dual.

Problema

Componente Dimensión Característica

Primal X

c b

A Z

0

Vector columna con n elementos

Vector reglon con n elementos Vector columna con m elementos

Matriz m por n Escalar

Vector columna con n ceros

Vector de variables de actividad

primal Vector de precios unitarios primales

Vector de disponibilidad de recursos primales

Matriz de coeficientes tecnológicos

función objetivo primal

Dual Y

cT bT

AT G

0

Vector columna con m elementos

Transpuesta del vector c, o sea, vector columna con n

elementos Transpuesta del vector b, o sea,

vector reglon con m

elementos Transpuesta de la matriz A ,o sea,

Matriz n por m Escalar

Vector columna con m ceros

Vector de variables de actividad

duales Vector de disponibilidad de recursos

duales Vector de precios unitarios duales

Matriz de coeficientes tecnológicos

función objetivo dual

DUALIDAD

• USOS DE LA FORMULACION DEL MODELO DUAL

a) Resolver problemas lineales que tienen mas restricciones

que actividades. Al aplicarse la dualidad a un problema primal donde m > n, se obtiene otro programa lineal

donde el numero de filas n es menor al numero de

columnas m.

b) Hacer interpretaciones económicas de las soluciones optimas de los problemas de programación lineal.

c) Generar nuevos algoritmos para la solución de problemas

de redes de optimización.

d) Generar métodos como el dual simples para el análisis de

sensibilidad de los problemas de programación lineal.

DUALIDAD

• La siguiente tabla proporciona un mecanismo para la

obtención del modelo dual asociado a su modelo primal.

Primal Dual

Max Min

Restricción i ≤ bi Restricción i = bi Restricción i ≥ bi

Variable i ≥ 0 Variable i no restringida

Variable i ≤ 0

Min Max

Variable i ≥ 0 Variable i no restringida

Variable i ≤ 0

Restricción i ≥ ci Restricción i = ci

Restricción i ≤ ci

METODO DUAL SIMPLEX

• Paso 1.

– Empiece con un tableau donde todas las zj-cj ≥ 0, para

toda j en A

• Paso 2.

– Si XBi ≥ 0 para toda variable básica donde i varia de 1 a

m, el tableau actual es optimo. Si no, se debe seleccionar

como vector de salida de la base, aquel cuyo valor de XBi

sea el valor mas negativo.

METODO DUAL SIMPLEX

• Paso 3.

– El vector ak de entrada será aquel que satisfaga la siguiente regla:

• Paso 4. – La columna ak se convierte en el vector unitario ui con el pivote

Yij igual a uno. Los cambios se levan a cabo con operaciones matriciales elementales. Regrese al paso 2 y repítase hasta que las condiciones de optimalidad se cumplan.

• Si durante la aplicación del paso 3, todos los elementos Yij ≥0, el programa original no tiene solución.

0,...,1

ij

ij

jj

njik

kk YY

czMax

Y

cz