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

algorithmgeneticGlobal Optimization Toolboxmixed-integermulti-objectiveoptimization

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.

Best Answer

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.