Clear Filters
Clear Filters

Integer programming optimization solving non linear objective function with linear equality and inequality constraints using Optimization Toolbox.

7 views (last 30 days)
How to use optimization toolbox to find integer solutions for the decision variables from a non linear objective problem with linear constraints (both equality and inequality)?
eg. we can achieve so using genetic algorithm using mixed integer programming method.
Or any another way to go?

Answers (1)

Sameer
Sameer on 14 Aug 2024 at 4:46
Hi Ankit
To find integer solutions for decision variables in a nonlinear objective problem with linear constraints using MATLAB's Optimization Toolbox, you can use the ga function (genetic algorithm) for mixed-integer programming.
Steps to achieve it:
  1. Define the Objective Function: Create a function file or anonymous function that computes the value of your objective function.
  2. Set Up the Constraints: Define the linear inequality and equality constraints in matrix form.
  3. Define Bounds: Set the lower and upper bounds for the decision variables.
  4. Specify Integer Constraints: Indicate which variables are required to be integers.
  5. Set Genetic Algorithm Options: Customize the genetic algorithm options if needed.
  6. Run the Genetic Algorithm: Call the ga function with the defined parameters.
Below is an example implementation:
% Linear Inequality Constraints
A = [1, 2, 3; -1, -2, -3];
b = [10; -10];
% Linear Equality Constraints
Aeq = [1, 1, 1];
beq = [5];
% Bounds
lb = [0, 0, 0];
ub = [10, 10, 10];
% Integer Constraints
intcon = [1, 2, 3];
% Genetic Algorithm Options
options = optimoptions('ga', 'Display', 'iter');
% Run Genetic Algorithm
[x, fval] = ga(@objfun, 3, A, b, Aeq, beq, lb, ub, [], intcon, options);
% Display Results
disp('Optimal Solution:');
disp(x);
disp('Objective Function Value:');
disp(fval);
% Objective Function
function f = objfun(x)
f = x(1)^2 + x(2)^2 + x(3);
end
Alternative Approaches
While the genetic algorithm is a powerful method for mixed-integer nonlinear problems, other approaches can be used depending on the specific nature of the problem:
  • Mixed-Integer Nonlinear Programming (MINLP) solvers: Tools like intlinprog (for linear objectives) or third-party solvers like BARON, KNITRO, or BONMIN.
  • Simulated Annealing (simulannealbnd): Another global optimization technique that can handle integer constraints.
  • Particle Swarm Optimization (particleswarm): Suitable for mixed-integer problems and can be configured similarly to ga.
I hope this helps!
Sameer

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!