필터 지우기
필터 지우기

Nonlinear constraints in ga and gamultiobj with binary variables.

조회 수: 2 (최근 30일)
Opt User
Opt User 2016년 10월 19일
댓글: Walter Roberson 2016년 10월 21일
Does the population type 'bitstring' allow for the use of nonlinear constraints in ga and/or gamultiobj?
I have been attempting to use it in ga and failed. If nonlinear constraints cannot be used in these cases, then my question is: I can easily change my objective function for a penalty function (following the same references used in matlab documentation for the augmented lagrangian genetic algorithm), but the penalty parameters require general information about the ga (current iteration, best fitness, etc). I think some of this information may be stored using global variables in my objective function, but I was wondering if there is some way I can retrieve the genetic algorithm variables used by the ga() to my objective function workspace while ga is running.
Thanks.

답변 (1개)

Walter Roberson
Walter Roberson 2016년 10월 19일
Does the population type 'bitstring' allow for the use of nonlinear constraints in ga and/or gamultiobj?
No.
The way to proceed was to provide your own custom functions for initial population and mutation and crossover which always return integer results according to your needs; those can be used with non-linear constraints because you will not tell ga that you are running with integer constraints.
  댓글 수: 4
Opt User
Opt User 2016년 10월 21일
Yes, it worked using a continuous population and constraining all variables to integers between 0 and 1. But I wonder if there is any convergence advantage to this approach. Originally I was setting all my constraints as penalty terms of my objective function and using the bitstrign setting and it seems like I was obtaining faster convergence.
Walter Roberson
Walter Roberson 2016년 10월 21일
If you do not use the custom crossover and mutation and initial population, if you just round() the values in the function as you use them, then the ga will wander around trying (for example) 0.82 and 0.87 trying to find places that give better results, not understanding that you need to go to 0.499* to change the effective value. bitstring and intcons only use the exact values, but they do so by dropping in integer-constrained hybrid and mutation and population functions.

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

카테고리

Help CenterFile Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by