Is it possible to solve a mixed-integer multi-objective optimization problem using Global Optimization Toolbox?
21 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 25 Okt. 2013
Bearbeitet: MathWorks Support Team
am 1 Feb. 2021
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.
Akzeptierte Antwort
MathWorks Support Team
am 18 Apr. 2018
Bearbeitet: MathWorks Support Team
am 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 Kommentare
Jonathan Kwang
am 17 Nov. 2016
Bearbeitet: MathWorks Support Team
am 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
am 5 Jun. 2018
Bearbeitet: Alberto Mora
am 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)?
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Genetic Algorithm finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!