Is there a work around to use gamultiobj with linear constraints and binary variables?

조회 수: 6 (최근 30일)
Hi,
I'm trying to minimize a linear and several quadratic functions with gamultiobj like the following:
y(8)= ((Befaehiger(:,2).*VF2(8,:)') .* x')'*(1+ (VF1(8,:)'.*x')' * FCM*0.1)'-0.23;
y(9)= x*Befaehiger(:,1);
Befaehiger,FCM, VF1 and VF2 are arrays. x are the binary variables.
My optimization problem has also linear inequality constraints.
Unfortunately my variables are binary. So when using 'PopulationType','bitstring' constraints are not supported. Setting variables as integers (intcon), combined with using bounds 0 and 1 is, also not possible with gamultiobj.
Does someone know a way to use gamultiobj (or another way) to minimize these functions with binary variables?
Thank you for reading
Steffen
  댓글 수: 4
Brendan Hamm
Brendan Hamm 2016년 9월 14일
Apologies, I was thinking of ga when I mentioned (alluded to) intcon earlier. I can't see a way to forces this to work with gamultiobj. Is x very large in size? What are the dimensions of the arrays?
Steffen Kuehl
Steffen Kuehl 2016년 9월 14일
No need for apologies. I'm glad for any help. I have 342 variables (x). The arrays are the same size (342,1), besides FCM which is (342,342). So I am guessing there is no multiobjective optimization algorithm in Matlab that can handle binary variables and linear inequality constraints. I was hoping there would be a work around or a different solution. Can you think of any other approach for this problem that might work?

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

채택된 답변

Brendan Hamm
Brendan Hamm 2016년 9월 15일
I was thinking if the problem was not too large we could directly compute all 2^n possibilities. Obviously this is not something we would want to do. So, I looked into Walter's suggestion and was able to implement a smaller example.
The implementation I created is not guaranteed to work well with large problems as there is the possibility of having to re-sample data many times to satisfy the constraints. You would likely need to implement some specific re-sampling which is more probable to produce constraint satisfying points.
Please see the attached files. The main file is PopExample.m.
Up-voting Walter for his suggestion.
  댓글 수: 1
Steffen Kuehl
Steffen Kuehl 2016년 9월 16일
Thank you for your work and time! This is going to help me a lot! I actually do have a rather large problem, but you already gave the answer to that aswell. Thanks to you again, Steffen

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

추가 답변 (1개)

Walter Roberson
Walter Roberson 2016년 9월 14일
The standard approach for this is to not use integer constraints, but instead to specify population generators that only happen to return integer values.
  댓글 수: 4
Steffen Kuehl
Steffen Kuehl 2016년 9월 16일
Thank you for your idea! In combination with Brendans answer I am able to solve my problem. Thank you, Steffen

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

제품

Community Treasure Hunt

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

Start Hunting!

Translated by