Is it possible to solve a mixed-integer multi-objective optimization problem using Global Optimization Toolbox?

19 views (last 30 days)
I am trying to solve a multi-objective optimization problem by constraining certain variables to be integer. However, I have seen that in the Global Optimization Toolbox there only exist the following options:
1. The GA function allows you to solve mixed-integer optimization problems of a single objective function,
2. The GAMULTIOBJ function allows you to solve multi-objective optimization problems without integer constraints.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 18 Apr 2018
Edited: MathWorks Support Team on 18 Apr 2018
To perform mixed-integer programming using the GAMULTIOBJ function, create a custom creation function, a custom mutation function and a custom crossover function that generate only integer outputs for the required variables. Then, use the GAOPTIMSET function to set the "CreationFcn", "MutationFcn" and "CrossoverFcn" options to the custom functions, as shown in the following code:
options = gaoptimset('CreationFcn',@your_creationfcn,'MutationFcn',@your_mutationfcn, 'CrossoverFcn', @your_crossoverfcn);
[x,fval] = gamultiobj(fitnessFcn, nVars, A, b, Aeq, beq, lb, ub, options);
See the attached example files in "exampleIntGAMULTIOBJ". To run the example, run the following command on the MATLAB command window:
exampleIntGAMULTIOBJ
The general idea here is to take an approach based on a continuous parameter space strategy and make it integer based on well-placed calls to the rounding functions, FLOOR and CEIL.
Restrictions:
1. Before running GAMULTIOBJ, make sure that given the bound and inequality constraints imposed, there exist values where the integer constraints can be satisfied. For example, consider the following case where x(1) is an integer, the lower bound is [2.1, 3] and the upper bound is [2.4, 10]. In this case there are no feasible solutions as there are no integers values for x(1) in the range [2.1, 2.4].
2. Note that in the attached example files there are only bound constraints and that the Pareto-optimal solutions satisfy the given bound constraints.
3. It is possible to add inequality constraints to the example. However, GAMULTIOBJ is not guaranteed to find a Pareto set where all the points are feasible.
  2 Comments
Jonathan Kwang
Jonathan Kwang on 17 Nov 2016
Edited: MathWorks Support Team on 1 Feb 2021
Hi Aravind,
If you need help with a particular error you are receiving please contact MathWorks Technical Support by using the following link:
Alberto Mora
Alberto Mora on 5 Jun 2018
Edited: Alberto Mora on 5 Jun 2018
Two questions:
1) Does the function ("int_crossoverarithmetic","int_mutation","int_pop") fit for any generic optimization? When I use these functions in my optimization, do I just have to modify the IntCon parameter? Do I have to pay attention to other things apart IntCon?
2) Do I make a (big) mistake if I do not use these functions and I simply keep manage a continous variable to the GA, while inside the fitness function I transform the continous in a discrete variable, without make attention to other stuff (eg mutation etc)?

Sign in to comment.

More Answers (0)

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!