Está en la página 1de 22

Programaci´on Lineal con Matlab

Arturo Vega Gonz´alez

a.vega@ugto.mx

Division de Ciencias e Ingenier´ıas Universidad de Guanajuato Campus Le´on

Universidad de Guanajuato, DCI, Campus Le´on

Octubre 8, 2013

1 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Contenido

1 Programaci´on Lineal M´etodo gr´afico M´etodo algebraico / simplex

Universidad de Guanajuato, DCI, Campus Le´on

2 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

Programaci´on Lineal

La programaci´on lineal se aplica a modelos de optimizaci´on en los que las funciones objetivo y restricci´on son estrictamente lineales. Para su soluci´on se cuenta con:

1 M´etodo gr´afico

2 M´etodo algebraico

3 M´etodo simplex

Universidad de Guanajuato, DCI, Campus Le´on

3 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

Ecuaciones Generales

Funci´on objetivo a minimizar o maximizar

Z = c 1 x 1 + c 2 x 2 + c 3 x 3 +

Restricciones (sujeta a:)

a i1 x 1 + a i2 x 2 + ··· + a in x n a i1 x 1 + a i2 x 2 + ··· + a in x n a i1 x 1 + a i2 x 2 + ··· + a in x n

x j

Universidad de Guanajuato, DCI, Campus Le´on

= b i b i

b

i

0

4 / 22

+ c n x n

i

=

1, 2, ··· , p

i

=

p

+

1, ··· , r

i

=

r

+ 1, ··· , m

j = 1, 2, ··· , n

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

Ecuaciones Generales

Donde:

x 1 , x 2 ,

,

x n : niveles de actividad sujetas a alguna manipulaci´on,

variables reales o variables de decisi´on.

c i : coeficientes de costo

a ij : coeficientes estructurales

b i : disponibilidad de recursos

Universidad de Guanajuato, DCI, Campus Le´on

5 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo gr´afico

M´etodo gr´afico

Determinaci´on del espacio de soluciones que define todas las soluciones factibles del modelo.Lineal M´etodo gr´afico M´etodo gr´afico Representaci´on gr´afica de cada restricci´on y

que define todas las soluciones factibles del modelo. Representaci´on gr´afica de cada restricci´on y

Representaci´on gr´afica de cada restricci´on y determinar el espacio que cumple con todas las restricciones.

Determinaci´on de la soluci´on ´optima, entre todos los puntos factibles del espacio de soluciones.el espacio que cumple con todas las restricciones. 1 Evaluar la funci´on objetivo Z en cada

1 Evaluar la funci´on objetivo Z en cada una de las esquinas del espacio de soluciones factibles.

2 Usando la funci´on objetivo para determinar la esquina del espacio de soluciones factible que la optimiza.

Universidad de Guanajuato, DCI, Campus Le´on

6 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo gr´afico

M´etodo Gr´afico (1)

Lineal M´etodo gr´afico M´etodo Gr´afico (1) Utilizando plot pause on ; x = − 1:1:7; %

Utilizando plot

pause

on

;

x

= 1:1:7; %

i n t e r v a l o

para

generar

l a s

r e c t a s

z=(215.x )/4;

% funci´on

a

maximizar

%

r e s t r i c c i o n e s

 

R1

=

(24 6.x ) / 4 ;

 

R2

=

(6x ) / 2 ;

R3

=

1+x ;

f

o r

r =1:

length

( x )

% constantes

 
 

R4 ( r )

=

2 ;

R5 ( r )

=

0 ;

R6 ( r )

=

0 ;

end

 

%g r a f i c a

de

l a s

func io ne s

considerando

igualdades

f i g u r e

( 1

)

;

plot

(x , z ,’k ’ ) ;

hold

on ;

p

l o t ( x , R1, ’ b ’ ,

x

, R2, ’ b

,

x

, R3, ’ m’ , x , R4, ’ m’ ) ;

p

l o t (R5 , x , ’ r ’ ,

x , R6, ’ r ’ )

;

g

r i d

on

Universidad de Guanajuato, DCI, Campus Le´on

7 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo gr´afico

M´etodo Gr´afico (1)

Lineal M´etodo gr´afico M´etodo Gr´afico (1) Universidad de Guanajuato, DCI, Campus Le´on 8 / 22 P

Universidad de Guanajuato, DCI, Campus Le´on

8 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo gr´afico

M´etodo Gr´afico (1)

Lineal M´etodo gr´afico M´etodo Gr´afico (1) Universidad de Guanajuato, DCI, Campus Le´on 9 / 22 P

Universidad de Guanajuato, DCI, Campus Le´on

9 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo gr´afico

M´etodo Gr´afico (2)

Lineal M´etodo gr´afico M´etodo Gr´afico (2) Utilizando area y meshgrid %p r o blema de l

Utilizando area y meshgrid

%p r o blema

de

l a

s

p i n t u r a s

 

x

=

0 : 8 ;

 

% rango

para

l a

g r a f i c a

y1

=

max ( ( 2 4

6x )

/ 4

, 0

)

;

%

6 x

+

4 y

<=

24

y2

=

max((6 x ) / 2 , 0 ) ;

 

%

x

+

2 y

<=

6

y3

=

max (1

+

x

, 0 )

;

% x

+

y

<=

1

y4

= max (2

, 0 ) ones

( 1

, 9

) ;

 

%

y

<=

2

ytop

 

=

min ( [

y1 ;

y2 ;

y3 ;

 

y4

]

)

;

de

minimos

area

(x

, ytop ) ;

 

%

se

% vector r e l l e n a

l a

area

 

hold

on ;

[ u

v

]

= meshgrid (0:8 ,

0

: 8

)

;

%

rango

de

l a

g r a f i c a

rango

contour (u , v ,5u +

4v ) ;

 

% evaluar

z

en

e l

def

hold

 

o f f ;

Universidad de Guanajuato, DCI, Campus Le´on

10 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo gr´afico

M´etodo Gr´afico (2)

Lineal M´etodo gr´afico M´etodo Gr´afico (2) Universidad de Guanajuato, DCI, Campus Le´on 11 / 22 P

Universidad de Guanajuato, DCI, Campus Le´on

11 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Usando linprog

El comando linprog del toolbox de optimizaci´on implementa el algoritmo simplex linprog del toolbox de optimizaci´on implementa el algoritmo simplex

Soluciona problemas de la formatoolbox de optimizaci´on implementa el algoritmo simplex Minimizar: Z = c 1 x 1 + c

Minimizar:

Z = c 1 x 1 + c 2 x 2 + c 3 x 3 +

Restricciones (sujeta a:)

a i1 x 1 + a i2 x 2 + ··· + a in x n

Universidad de Guanajuato, DCI, Campus Le´on

12 / 22

b i

+ c n x n

i = 1, 2, ··· , m

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Usando linprog

Par´ametrosLineal M´etodo algebraico / simplex Usando linprog Minimizar : Z = f ∗ x Restricciones (sujeta

Minimizar:

Z = f x

Restricciones (sujeta a:)

A x

b

f : vector con los coeficientes costo c i : vector con los coeficientes costo c i

A: Matriz con los coeficientes estructurales a i j : Matriz con los coeficientes estructurales a ij

b: vector con la disponibilidad de recursos b i : vector con la disponibilidad de recursos b i

Universidad de Guanajuato, DCI, Campus Le´on

13 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Ejemplo

Problema de las pinturas:

Maximizar:

Z = 5x 1 + 4x 2

Restricciones (sujeta a:)

6x 1 + 4x 2 x 1 + 2x 2 x 1 + x 2 x x

j

2

Universidad de Guanajuato, DCI, Campus Le´on

24

6

1

2

0

14 / 22

j = 1, 2

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Ejemplo

1 Si es problema de maximizaci´on se convierte en un problema de minimizaci´on Minimizar:

Z = 5x 1 4x 2

Restricciones (sujeta a:)

6x 1 + 4x 2 x 1 + 2x 2 x 1 + x 2 x x

j

2

Universidad de Guanajuato, DCI, Campus Le´on

24

6

1

2

0

15 / 22

j = 1, 2

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Ejemplo

Lineal M´etodo algebraico / simplex Ejemplo Codificaci´on: se definen los vectores y se invoca el

Codificaci´on: se definen los vectores y se invoca el comando linprog

%p r o blema

de

l

a s

p i n t u r a s

 

f

= [5

4]

;

%

c o e f i c i e n t e s

de

costo

(Z)

A=[6

4; 1

2;1

1; 0

1;1

0; 0

1]

;

%

r e s t r i c c i o n e s

b

=

[ 2 4 ;

6;

1;

2;

0;

0 ] ;

%

r e c u r s o s

 

r=l i n p r o g ( f

,A, b ) ;

%

r

c o n t i e n e

 

s o l

.

x i

Z

= f r

;

%

v a l o r

´optimo

de

Z

( ganancia )

Universidad de Guanajuato, DCI, Campus Le´on

16 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Ejemplo

Salida

Salida

>>

r

r

=

 

3.0000

1.5000

>>

Z

Z

=

 

21.0000

>>

Universidad de Guanajuato, DCI, Campus Le´on

17 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Problema 1

Considere: Maximizar:

Z = x 1 + x 2

Restricciones (sujeta a:)

5x 1 + 3x 2 3x 1 + 5x 2 x

j

15

15

0

j = 1, 2

1 Utilice Matlab para graficar las restricciones

2 Utilice linprog para encontrar la soluci´on

Universidad de Guanajuato, DCI, Campus Le´on

18 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Problema 2

Considere: Maximizar:

Z = 143x 1 + 60x 2

Restricciones (sujeta a:)

x 1 + x 2 110x 1 + 30x 2 120x 1 + 210x 2 x

j

75

4000

15000

0

j = 1, 2

1 Utilice Matlab para graficar las restricciones

2 Utilice linprog para encontrar la soluci´on

Universidad de Guanajuato, DCI, Campus Le´on

19 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

Problema 3

Considere: Problema de la dieta (libro) Minimizar:

Z = 0.3x 1 + 0.9x 2

Restricciones (sujeta a:)

x 1 + x 2 0.21x 1 0.3x 2 0.03x 1 0.01x 2 x

j

800

0

15000

0

j = 1, 2

1 Utilice Matlab para graficar las restricciones

2 Utilice linprog para encontrar la soluci´on

Universidad de Guanajuato, DCI, Campus Le´on

20 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

M´as sobre linprog

Minimizar:

Restricciones (sujeta a:)

Z = f x

A x

b

A eq x = b eq

lb

x

ub

linprog ( f , A , b , A e q , b e q , (f ,A,b,A eq ,b eq ,lb,ub)

linprog ( f , A , b , A e q , b e q , (f ,A,b,A eq ,b eq ,lb,ub,x 0 )

= linprog ( f , A , b , A e q , b e q linprog (f ,A,b,A eq ,b eq ,lb,ub,x 0 ,opciones)

x =

x =

x

Universidad de Guanajuato, DCI, Campus Le´on

21 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013

Programaci´on Lineal

M´etodo algebraico / simplex

M´as sobre linprog

Minimizar:

Z = f x

Restricciones (sujeta a:)

A eq x x

= b eq

0

x Restricciones (sujeta a:) A e q ∗ x x = b e q 0 x

x = linprog (f ,[],[],A eq ,b eq , zeros(size(f )),[])

Universidad de Guanajuato, DCI, Campus Le´on

22 / 22

Programaci´on Lineal con Matlab Octubre 8, 2013