资源

入门示例(lsog01)

/**********************************************************************//*                                                                    *//*S A S S A M P L E L I B R A R Y*//*                                                                    *//*名称:lsog01*//*标题:入门示例(lsog01)*//*产品:或*//*系统:所有*//*关键字:或*//*项目:FCMP、OPTLSO*//*数据:*//*                                                                    *//*支持:更新:*//*参考:*//*MISC:《快速入门》的OPTLSO章节中的示例*//*本地搜索优化书籍*//*                                                                    *//**********************************************************************/标题“PROC OPTLSO”;title 3“一个有界约束问题,Branin函数”;/*一个有界约束问题*/数据变量数据;输入_ id$_ lb_ ub_;数据线;x1-5 10个x2 0 15;proc fcmp outlib=sasuser.myfuncs.mypkg;功能膜(x1,x2);pi=常数(‘pi’);y1=(x2-(5.1/(4*pi**2))*x1*x1+5*x1/pi-6)**2;y2=10*(1-1/(8*pi))*cos(x1);返回(y1+y2+10);endsub;运行;数据对象数据;输入_ id _$函数_$传感器_$;数据线;f branin最小值;选项cmplib=sasuser.myfuncs;程序optlsoprimalout=溶液变量=vardata目标=objdata;性能nthreads=4;运行;proc打印数据=解决方案;运行;title3“决策变量的线性约束”;/*决策变量的线性约束*/数据林达;输入id _$_ lb_ x1 x2 _ ub_;数据线;a1。1 1  0.6;程序optlso变量=vardata目标=objdatalincon=lindata;运行;标题3“决策变量的非线性约束”;/*决策变量的非线性约束*/数据条件;输入_ id$_ lb_ ub_;数据线;第14章。;proc fcmp outlib=sasuser.myfuncs.mypkg;函数c1(x1,x2);返回(x1**2-2*x2);endsub;运行;程序optlso变量=vardata目标=objdatalincon=林达塔nlincon=条件;运行;title 3“最大可能性示例”;/*最大可能性示例*/数据lkhvar;输入id$lb;数据线;亩。西格玛0;数据lkhobj1;输入_ id _$函数_$传感器_$;数据线;f loglkh1最大值;proc fcmp outlib=sasuser.myfuncs.mypkg;函数loglkh1(mu,sigma);数组x[5]/nosym(1 3 4 5 7);s=0;do j=1至5;s=s-log(西格玛)-0.5*((x[j]-mu)/西格玛)**2;结束;退货;endsub;运行;程序optlso变量=lkhvar目标=lkhobj1;运行;数据日志数据;输入x@@;数据线;1 3 4 5 7;数据lkhobj2;输入_ id _$函数_$传感器_$数据集_$;数据线;f loglkh2 max日志数据;proc fcmp outlib=sasuser.myfuncs.mypkg;函数loglkh2(mu,sigma,x);返回值(-log(sigma)-0.5*((x-mu)/sigma)**2);endsub;运行;程序optlso变量=lkhvar目标=lkhobj2;运行;数据lkhobj3;输入_ id _$函数_$传感器_$数据集_$;数据线;f loglkh3 max日志数据;proc fcmp outlib=sasuser.myfuncs.mypkg;函数loglkh3(x,sigma,mu);返回值(-log(sigma)-0.5*((x-mu)/sigma)**2);endsub;运行;程序optlso变量=lkhvar目标=lkhobj3;运行;数据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;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;数据_全部_;bval=巴德(1,2,3);放置bval=;运行;