[討論] ga(基因演算法)中如何限制變數為偶數

看板MATLAB作者 (GN boy)時間12年前 (2013/06/20 03:16), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/2 (看更多)
大家好,我目前想將變數限制為偶數,目前的程式碼如下 function [c, ceq] = simple_constraint(x) a=mod(x,2) c = [a] ceq = []; end x0=[16]; % 初始值 lb=x0; % 下限 ub=x0+24; % 上限 options = gaoptimset('PlotFcns', {@gaplotbestf,@gaplotstopping},... 'PopulationSize',10,'Generations',10); %控制選項 Constraint=@simple_constraint; [x,fval,exitflag]=ga(@myFun,1,[],[],[],[],lb,ub,Constraint,[1],options) ga會將變數代入myfun並傳回目標值 但是ga仍然會找不是偶數的x代入myfun,有沒有其他方法可以限制變數只選偶數呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.170.50

06/20 09:03, , 1F
做一個myfun2,這函數先把x改成偶數再呼叫myfun
06/20 09:03, 1F

06/20 14:33, , 2F
謝謝,這樣的確可行!
06/20 14:33, 2F
文章代碼(AID): #1HmWDsyX (MATLAB)
文章代碼(AID): #1HmWDsyX (MATLAB)