Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Universidad de Guanajuato, DCI, Campus León 1 / 22
Contenido 1 Programación Lineal Método gráfico Universidad de Guanajuato, DCI, Campus León 2 / 22
Programación Lineal La programación lineal se aplica a modelos de optimización en los que las funciones objetivo y restricción son estrictamente lineales. Para su solución se cuenta con: 1 Método gráfico 2 Método algebraico 3 Método simplex Universidad de Guanajuato, DCI, Campus León 3 / 22
Ecuaciones Generales Función objetivo a minimizar o maximizar Restricciones (sujeta a:) Z = c 1 x 1 + c 2 x 2 + c 3 x 3 +... + c n x n a i1 x 1 + a i2 x 2 + + a in x n = b i i = 1, 2,, p a i1 x 1 + a i2 x 2 + + a in x n b i i = p + 1,, r a i1 x 1 + a i2 x 2 + + a in x n b i i = r + 1,, m x j 0 j = 1, 2,, n Universidad de Guanajuato, DCI, Campus León 4 / 22
Ecuaciones Generales Donde: x 1, x 2,..., x n : niveles de actividad sujetas a alguna manipulación, variables reales o variables de decisión. c i : coeficientes de costo a ij : coeficientes estructurales b i : disponibilidad de recursos Universidad de Guanajuato, DCI, Campus León 5 / 22
Método gráfico Método gráfico Determinación del espacio de soluciones que define todas las soluciones factibles del modelo. Representación gráfica de cada restricción y determinar el espacio que cumple con todas las restricciones. Determinación de la solución óptima, entre todos los puntos factibles del espacio de soluciones. 1 Evaluar la función objetivo Z en cada una de las esquinas del espacio de soluciones factibles. 2 Usando la función objetivo para determinar la esquina del espacio de soluciones factible que la optimiza. Universidad de Guanajuato, DCI, Campus León 6 / 22
Método gráfico Método Gráfico (1) Utilizando plot pause on ; x = 1:1:7; % i n t e r v a l o para g e n e r a r l a s r e c t a s z =(21 5. x ) / 4 ; % f u n c i ó n a maximizar % r e s t r i c c i o n e s R1 = (24 6. x ) / 4 ; R2 = (6 x ) / 2 ; R3 = 1+x ; f o r r =1: l e n g t h ( x ) % c o n s t a n t e s R4 ( r ) = 2 ; R5 ( r ) = 0 ; R6 ( r ) = 0 ; end %g r a f i c a de l a s f u n c i o n e s c o n s i d e r a n d o i g u a l d a d e s f i g u r e ( 1 ) ; p l o t ( x, z, k ) ; h o l d 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ón 7 / 22
Método gráfico Método Gráfico (1) Universidad de Guanajuato, DCI, Campus León 8 / 22
Método gráfico Método Gráfico (1) Universidad de Guanajuato, DCI, Campus León 9 / 22
Método gráfico Método Gráfico (2) Utilizando area y meshgrid %problema 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 ((24 6 x ) / 4, 0 ) ; % 6x + 4y <= 24 y2 = max((6 x ) / 2, 0 ) ; % x + 2y <= 6 y3 = max(1 + x, 0 ) ; % x + y <= 1 y4 = max(2,0) ones ( 1, 9 ) ; % y <= 2 ytop = min ( [ y1 ; y2 ; y3 ; y4 ] ) ; % v e c t o r de minimos a r e a ( x, ytop ) ; % se r e l l e n a l a a r e a hold on ; [ u v ] = meshgrid ( 0 : 8, 0 : 8 ) ; % rango de l a g r a f i c a c o n t o u r ( u, v, 5 u + 4 v ) ; % e v a l u a r z en e l rango d e f hold o f f ; Universidad de Guanajuato, DCI, Campus León 10 / 22
Método gráfico Método Gráfico (2) Universidad de Guanajuato, DCI, Campus León 11 / 22
Usando linprog El comando linprog del toolbox de optimización implementa el algoritmo simplex Soluciona problemas de la forma Minimizar: Restricciones (sujeta a:) Z = c 1 x 1 + c 2 x 2 + c 3 x 3 +... + c n x n a i1 x 1 + a i2 x 2 + + a in x n b i i = 1, 2,, m Universidad de Guanajuato, DCI, Campus León 12 / 22
Usando linprog Parámetros Minimizar: Restricciones (sujeta a:) Z = f x A x b f: vector con los coeficientes costo c i A: Matriz con los coeficientes estructurales a ij b: vector con la disponibilidad de recursos b i Universidad de Guanajuato, DCI, Campus León 13 / 22
Ejemplo Problema de las pinturas: Maximizar: Z = 5x 1 + 4x 2 Restricciones (sujeta a:) 6x 1 + 4x 2 24 x 1 + 2x 2 6 x 1 + x 2 1 x 2 2 x j 0 j = 1, 2 Universidad de Guanajuato, DCI, Campus León 14 / 22
Ejemplo 1 Si es problema de maximización se convierte en un problema de minimización Minimizar: Restricciones (sujeta a:) Z = 5x 1 4x 2 6x 1 + 4x 2 24 x 1 + 2x 2 6 x 1 + x 2 1 x 2 2 x j 0 j = 1, 2 Universidad de Guanajuato, DCI, Campus León 15 / 22
Ejemplo Codificación: se definen los vectores y se invoca el comando linprog %problema 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 c o s t o (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 óptimo de Z ( g a n a n c i a ) Universidad de Guanajuato, DCI, Campus León 16 / 22
Ejemplo Salida >> r r = >> Z Z = >> 3.0000 1.5000 21.0000 Universidad de Guanajuato, DCI, Campus León 17 / 22
Problema 1 Considere: Maximizar: Z = x 1 + x 2 Restricciones (sujeta a:) 5x 1 + 3x 2 15 3x 1 + 5x 2 15 x j 0 j = 1, 2 1 Utilice Matlab para graficar las restricciones 2 Utilice linprog para encontrar la solución Universidad de Guanajuato, DCI, Campus León 18 / 22
Problema 2 Considere: Maximizar: Restricciones (sujeta a:) Z = 143x 1 + 60x 2 x 1 + x 2 75 110x 1 + 30x 2 4000 120x 1 + 210x 2 15000 x j 0 j = 1, 2 1 Utilice Matlab para graficar las restricciones 2 Utilice linprog para encontrar la solución Universidad de Guanajuato, DCI, Campus León 19 / 22
Problema 3 Considere: Problema de la dieta (libro) Minimizar: Restricciones (sujeta a:) Z = 0.3x 1 + 0.9x 2 x 1 + x 2 800 0.21x 1 0.3x 2 0 0.03x 1 0.01x 2 15000 x j 0 j = 1, 2 1 Utilice Matlab para graficar las restricciones 2 Utilice linprog para encontrar la solución Universidad de Guanajuato, DCI, Campus León 20 / 22
Más sobre linprog Minimizar: Restricciones (sujeta a:) Z = f x A x b A eq x = b eq lb x ub x = linprog(f,a,b,a eq,b eq,lb,ub) x = linprog(f,a,b,a eq,b eq,lb,ub,x 0 ) x = linprog(f,a,b,a eq,b eq,lb,ub,x 0,opciones) Universidad de Guanajuato, DCI, Campus León 21 / 22
Más sobre linprog Minimizar: Restricciones (sujeta a:) Z = f x A eq x = b eq x 0 x = linprog(f,[],[],a eq,b eq, zeros(size(f)),[]) Universidad de Guanajuato, DCI, Campus León 22 / 22