资源

使用外部数据集(lsoe07)

/**********************************************************************//*                                                                    *//*S A S S A M P L E L I B R A R Y*//*                                                                    *//*姓名:lsoe07*//*标题:使用外部数据集(lsoe07)*//*产品:或*//*系统:所有*//*关键字:或*//*程序:OPTLSO、FCMP、PRINT*//*数据:*//*                                                                    *//*支持:更新:*//*参考:*//*MISC:OPTLSO章节中的示例7*//*本地搜索优化书籍*//*                                                                    *//**********************************************************************/数据变量数据;输入_id_$_lb__ub_;数据线;x1-1000 1000个x2-1000 1000个x3-1000 1000个;数据对象数据;输入_ id _$函数_$传感器_$;数据线;f bard最小值;proc fcmp outlib=sasuser.myfuncs.mypkg;功能栏(x1、x2、x3);数组y[15]/nosym(0.14 0.18 0.22 0.25 0.290.32 0.35 0.39 0.37 0.580.73 0.96 1.34 2.10 4.39);fx=0;do k=1至15;vk=16-k;wk=最小值(k,vk);fxk=y[k]-(x1+k/(vk*x2+wk*x3));fx=fx+fxk**2;结束;收益(0.5*fx);endsub;运行;选项cmplib=sasuser.myfuncs;程序optlsoprimalout=溶液变量=vardata目标=objdata;性能nthreads=2;运行;proc打印数据=解决方案;运行;数据barddata;输入y@@;数据线;0.14 0.18 0.22 0.25 0.290.32 0.35 0.39 0.37 0.580.73 0.96 1.34 2.10 4.39;数据变量数据;输入_ id$_ lb_ ub_;数据线;x1-1000 1000个x2-1000 1000个x3-1000 1000个;数据对象数据;输入_ id _$函数_$传感器_$;数据线;f bard最小值;proc fcmp outlib=sasuser.myfuncs.mypkg;功能栏(x1、x2、x3);数组y[15]/nosym;rc=读数组(‘硬数据’,y);fx=0;do k=1至15;dk=(16-k)*x2+最小值(k,16-k)*x3;fxk=y[k]-(x1+k/dk);fx=fx+fxk**2;结束;收益(0.5*fx);endsub;运行;选项cmplib=sasuser.myfuncs;程序optlsoprimalout=溶液变量=vardata目标=objdata;readarray巴达塔;运行;proc打印数据=解决方案;运行;数据变量数据;输入_ id$_ lb_ ub_;数据线;x1-1000 1000个x2-1000 1000个x3-1000 1000个;数据barddata;k=_n_;输入y@@;数据线;0.14 0.18 0.22 0.25 0.290.32 0.35 0.39 0.37 0.580.73 0.96 1.34 2.10 4.39;数据对象数据;输入_ id _$函数_$传感器_$数据集_$;数据线;fx吟游诗人min-barddata;proc fcmp outlib=sasuser.myfuncs.mypkg;功能栏(x1,x2,x3,k,y);vk=16-k;wk=最小值(k,vk);fxk=y-(x1+k/(vk*x2+wk*x3));返回(0.5*fxk**2);endsub;运行;选项cmplib=sasuser.myfuncs;程序optlsoprimalout=溶液变量=vardata目标=objdata;性能节点=2个nthreads=8;运行;proc打印数据=解决方案;运行;