practica1.docx

3
Técnicas de Optimización en Ingeniería, Máster Oficial en Tecnologías de la Información y las Comunicaciones, curso 2006/2007. Práctica 1. Programación lineal y cuadrática usando Matlab. Matlab ofrece programas para solucionar problemas de programación lineal y cuadrática, mediante las librerías en la toolbox de optimización. Cualquier versión de Matlab a partir de la 5.3 tiene disponible estas funciones. Programación Lineal: La función de Matlab para resolver problemas de programación lineal es “linprog”. Como podéis ver en la ayuda de Matlab, esta función resuelve el siguiente problema: min(c T x) x Ax b Así pues hay que poner el problema como un problema de minimización, con restricciones de igualdad o menor-igual. La función se invoca desde Matlab o desde un archivo .m como [x,fval,r]=linprog(c,A,b,Aeq,beq,LB,UB), con A, b, condiciones de menor-igual, Aeq, beq, condiciones de igualdad, LB cota inferior para las x, UB cota superior para las x. Ejercicio 1: Resolver el siguente programa lineal con la función linprog de Matlab min(z 80x 1 60x 2 ) 0.2x 1 0.32x 2 0.25 x 1 x 2 1 x i 0 Ejercicio 2: Resolver el siguente programa lineal con la función linprog de Matlab

Transcript of practica1.docx

Page 1: practica1.docx

Técnicas de Optimización en Ingeniería,Máster Oficial en Tecnologías de la Información y las Comunicaciones, curso 2006/2007.

Práctica 1. Programación lineal y cuadrática usando Matlab.

Matlab ofrece programas para solucionar problemas de programación lineal y cuadrática, mediante las librerías en la toolbox de optimización. Cualquier versión de Matlab a partir de la 5.3 tiene disponible estas funciones.

Programación Lineal:

La función de Matlab para resolver problemas de programación lineal es “linprog”. Como podéis ver en la ayuda de Matlab, esta función resuelve el siguiente problema:

min(cT x)x

Ax b

Así pues hay que poner el problema como un problema de minimización, con restricciones de igualdad o menor-igual.

La función se invoca desde Matlab o desde un archivo .m como [x,fval,r]=linprog(c,A,b,Aeq,beq,LB,UB), con A, b, condiciones de menor-igual, Aeq, beq, condiciones de igualdad, LB cota inferior para las x, UB cota superior para las x.

Ejercicio 1: Resolver el siguente programa lineal con la función linprog de Matlab

min(z 80x1 60x2 )0.2x1 0.32x2 0.25

x1 x2 1xi 0

Ejercicio 2: Resolver el siguente programa lineal con la función linprog de Matlab

max(z 3x1 5x2 )x1 4

x2 63x1 2x2 18

xi 0

Page 2: practica1.docx

Nota: Ten cuidado con la función, hay que maximizarla, y recuerda que Matlab minimiza por defecto. Si no hay restricciones de igualdad introduce matrices vacías [] para Aeq y beq.

Ejercicio 3: Resolver el siguente programa lineal con la función linprog de Matlab

min(z x1 x2 )x1 5x2 5

2x1 x2 4

xi 0

Programación cuadrática:

La función de Matlab para resolver problemas de programación lineal es “quadprog”. Como podéis ver en la ayuda de Matlab, esta función resuelve el siguiente problema:

min( 1

xT Hx cT x)x 2

Ax b

La función se invoca desde Matlab o desde un archivo .m como [x,fval,r]=quadprog(H,c,A,b,Aeq,beq,LB,UB,x0), con A, b, condiciones de menor- igual, Aeq, beq, condiciones de igualdad, LB cota inferior para las x, UB cota superior para las x, x0 punto inicial para la optimización (si conocido).

Ejercicio 4: Resolver el siguiente problema:

2 2 2

max( z 10x1

20x2 30x3 10x1 x2 8x1 x3 6x2 x3 x1 2x2 x3 )x1 2x2 x3 10

xi 0