用ga算法时加上constraint_ueq 给出的值仍会过界
Opened this issue · 5 comments
wakinghour commented
用ga算法时加上constraint_ueq 给出的值仍会过界
willwang97 commented
我也出现这种情况,怎么修改都没用,GA和其他算法都一样约束无效
wakinghour commented
我也出现这种情况,怎么修改都没用,GA和其他算法都一样约束无效
我看了下 应该是给过界值惩罚 而不是不取
wakinghour commented
我也是这种情况
我看了下 应该是给过界值惩罚 而不是不取
willwang97 commented
好的谢谢
shen-jiabin commented
看了下源码,ga对于约束的实现方式,是向目标函数增加一个很大的惩罚项(1e5 * 不满足约束的个数),所以如果你的目标函数本身量级就很大,约束基本就不生效了;
建议的操作是:把目标函数的量级调小,同时加大迭代次数,迭代到后面一般就可以保证约束的实现了