www.gusucode.com > matlab的GA工具箱与vc混和实现遗传算法源码程序 > f552.cpp
#include "matlib.h" #pragma hdrstop #include "f552.h" Mm f552(Mm sol, Mm options, i_o_t, Mm& sol__o, Mm& eval__o) { begin_scope sol.setname("sol"); options.setname("options"); dMm(eval_); dMm(x1); dMm(x2); dMm(r1); dMm(r2); dMm(g1); dMm(g2); call_stack_begin; // nargin, nargout entry code double old_nargin=nargin_val; if (!nargin_set) nargin_val=2.0; nargin_set=0; double old_nargout=nargout_val; if (!nargout_set) nargout_val=2.0; nargout_set=0; // translated code x1 = sol(1.0); x2 = sol(2.0); r1 = 0.1; r2 = 0.8; //约束条件 g1 = x1-2.0*x2+1.0; g2 = power(x1,2.0)/4.0-power(x2,2.0)+1.0; //加惩罚项的适值 if (istrue((g1>=0.0))&&istrue((g2>=0.0))) { eval_ = power((x1-2.0),2.0)+power((x2-1.0),2.0); } else { eval_ = power((x1-2.0),2.0)+power((x2-1.0),2.0)+r1*g1+r2*g2; eval_ = -eval_; } call_stack_end; // nargin, nargout exit code nargin_val=old_nargin; nargout_val=old_nargout; // function exit code sol.setname(NULL); options.setname(NULL); sol__o=sol; eval__o=eval_; return x_M; end_scope } Mm f552(Mm sol, Mm options) { begin_scope double old_nargin=nargin_val; nargin_val=2.0; nargin_set=1; double old_nargout=nargout_val; nargout_val=1.0; nargout_set=1; dMm(sol__o); dMm(eval__o); f552(sol, options, i_o, sol__o, eval__o); nargout_val=old_nargout; nargin_val=old_nargin; return(sol__o); end_scope }