Is it possible to solve a mixed-integer multi-objective optimization problem using Global Optimization Toolbox?
21 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MathWorks Support Team
el 25 de Oct. de 2013
Editada: MathWorks Support Team
el 1 de Feb. de 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.
Respuesta aceptada
MathWorks Support Team
el 18 de Abr. de 2018
Editada: MathWorks Support Team
el 18 de Abr. de 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 comentarios
Jonathan Kwang
el 17 de Nov. de 2016
Editada: MathWorks Support Team
el 1 de Feb. de 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
el 5 de Jun. de 2018
Editada: Alberto Mora
el 5 de Jun. de 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)?
Más respuestas (0)
Ver también
Categorías
Más información sobre Genetic Algorithm en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!