필터 지우기
필터 지우기

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

조회 수: 21 (최근 30일)
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.

채택된 답변

MathWorks Support Team
MathWorks Support Team 2018년 4월 18일
편집: MathWorks Support Team 2018년 4월 18일
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
Jonathan Kwang
Jonathan Kwang 2016년 11월 17일
편집: MathWorks Support Team 2021년 2월 1일
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 2018년 6월 5일
편집: Alberto Mora 2018년 6월 5일
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)?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Genetic Algorithm에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by