Bi-objective simplex linear programming algorithm
revised_simplex.m
Write a linear programming problem as
Input arguments:
Amatrix, coefficients of left-side of equality constraints.bcolumn vector, right-side of equality constraints.crow vector, coefficients of minimize objective function.max_iterinteger, maximum iterations of either phase 1 or phase 2 of revised simplex.toldouble, tolerance when calculating the reduced cost of revised simplex.
Returned values:
solvedinteger, same asexitflagof MATLABlinprog. (only implemented -3, -2, 0, 1)xcolumn vector, optimal feasible solution.
biobjective_simplex.m
Write a linear programming problem as
Input arguments:
Amatrix, coefficients of left-side of equality constraints.bcolumn vector, right-side of equality constraints.c2-row matrix, coefficients of minimize objective functions, where each row corresponds to an objective.max_iterinteger, maximum iterations of either stage 1 or stage 2 of bi-objective simplex.toldouble, tolerance when calculating the reduced cost of revised simplex.
Returned values:
-
solvedinteger, same asexitflagof MATLABlinprog. (only implemented -3, -2, 0, 1) -
xmatrix, where each column is an optimal feasible solution corresponds to a value of$\lambda$ . -
lambdarow vector. It lists the thresholds of$\lambda$ , which decreases from 1 to 0, that makes the feasible basis of$\bar{c} = \lambda c_1 + (1 - \lambda) c_2$ changes.