close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

TolGlpk: Interfaz Tol para resolver problemas de programación lineal

Los problemas de programación lineal son muy frecuentes en la práctica. El paquete TolGlpk brinda una interfaz para resolver este tipo de problemas desde Tol basado en la biblioteca Glpk. Permite especificar el tipo de las variables: binarias, enteras o continuas; y opcionalmente se puede definir un criterio de parada: el número máximo de iteraciones o el tiempo máximo de ejecución.

Supongamos por ejemplo el siguiente problema:

maximize:

subject to: 3 x_1 + 4 x_2 + 2 x_3 ≤ 60

2 x_1 + 4 x_2 + 3 x_3

2 x_1 +

x_1 + 3 x_2 + 2 x_3 ≤ 80

x_2 + 2 x_3 ≤ 40

x_1, x_2, x_3 are non-negative real numbers

Su solución a través de TolGplk:

#Require TolGlpk;

Matrix C = Col(2, 4, 3);

Matrix A = Col(3, 2, 1) | Col(4, 1, 3) | Col(2, 2, 2);

Matrix L = Constant(3, 1, -Inf);

Matrix U = Col(60, 40, 80);

Matrix Lx = Constant(3, 1, 0);

Matrix Ux = Constant(3, 1, Inf);

Set Options = Real Maximize = 1; Real maxSec = 30*60 ?;

Set result = TolGlpk::solveLP(C, A, L, U, Lx, Ux, Options);

Para una formulación general de un problema de programación lineal:

z = Ct*Xs, sujeto a las restricciones: Xa=A*Xs, L≤Xa≤U, Lx≤Xs≤Ux; donde z es la función objetivo, C es el vector de costos, Xs son las variables estructurales (Matriz mx1), Xa son las variables auxiliares (Matriz nx1), L y U son las cotas inferiores y superiores (si existen) de las variables auxiliares, Lx y Ux son las cotas inferiores y superiores (si existen) de las variables estructurales y A es la matriz de restricciones (matriz mxn).

Su solución por medio de TolGlpk:

Set result = TolGlpk::solveLP(C, A, L, U, Lx, Ux, Options);

Last modified 13 years ago Last modified on Jun 14, 2012, 2:49:11 PM