资源

优化约束(mpex18)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:mpex18*//*标题:优化约束(mpex18)*//*产品:或*//*系统:所有*//*过程:CLP、OPTMODEL、TRANSPOSE*//*数据:*//*                                                             *//*支持:更新:*//*参考编号:*//*MISC:数学规划示例18*//*示例手册*//*                                                             *//***************************************************************/数据a_data;输入一个@@;数据线;9 13 -14 17 13 -19 23 21;%设b=37;/*将宏变量n填充为决策变量的数量*/%让dsid=%sysfunc(打开(a_data));%设n=%sysfunc(属性(&dsid,NOBS));%设rc=%sysfunc(关闭(&dsid));proc转置数据=a_data-out=trans(drop=_name_)前缀=x;运行;数据condata_feas(drop=j);长度类型$8;数组x[&n];集合变换;_type_=“le”;_相对湿度=&b;产出;do j=1 to&n;x[j]=1;结束;_type_=“二进制”;_相对湿度=。;产出;运行;proc clp data=condata_feas out=out _feas allsolns usecondatavars=1;运行;数据条件信息;设置condata_feas;如果N_=1,则执行;_type_=“ge”;_rhs_=_rhs_+1;结束;运行;proc clp data=condata_infeas out=out_infeas-allsolns使用condatavars=1;运行;过程操作模型;设置VARS;设置VARS0=VARS联合{0};编号{VARS0};将数据a_data读入VARS=[_N_]a;a[0]=&b;设置FEAS_POINTS;num x区域{feas_POINTS,VARS};将数据out_feas读入feas_POINTS=[_N_]{VARS}<x_feas[_N_,j]=col('x'||j)>中的j;设置INFEAS_POINTS;numx_infeas{infeas_POINTS,VARS};将数据out_infoas读入infeas_POINTS=[_N_]{VARS}中的j<x_infeas[_N_,j]=列('x'||j)>;var刻度{VARS0}>=0;VARS0}中的impvar Alpha{j=a[j]*刻度[j];con Feas_con{Feas_POINTS中的点}:VARS}Alpha[j]*x_feas[point,j]<=Alpha[0]中的和{j;con Infeas_con{Infeas_POINTS}中的点:VARS}Alpha[j]*x_infeas[point,j]>=Alpha[0]+1中的和{j;最小目标1=abs(a[0])*刻度[0];解决;打印缩放Alpha;最小目标2=VARS中的总和{j}abs(a[j])*量表[j];解决;打印缩放Alpha;退出;