问题解决了一部分...就是BCC模型已经解决拉. 填入红色程序就行..但还是有关于OR的问题...那位兄弟了解阿
/*MODEL BUILDING (%MODEL)*/
%macro model;
%local i j j0;
data MODEL1;
%let _nUnit=&_nDmu;
array NYarray(&_nOutput)$ NY1-NY&_nOutput ;
array AYarray(&_nOutput) AY1-AY&_nOutput;
array NXarray(&_nInput) $ NX1-NX&_NInput ;
array AXarray(&_nInput) AX1-AX&_nInput;
array Jarray(&_nUnit) U1-U&_nUnit ;
length _row_ $ 50 _col_ $ 50 _type_ $ 8 ;
keep _row_ _col_ _type_ _coef_ ;
J0=&jj; /* Jo is unit under assessment*/
if &_Orienta='InputMin' then do;
_type_='MIN';
_row_ ='OBJ';
_col_='.';
_coef_=.;
output;
_type_='.';
_row_ ='OBJ';
_col_ ='FI';
_coef_=1;
output;
_type_='.';
_row_ ='OBJ';
_col_='_rhs_';
_coef_=0;
output;
end;
link ReadNX;
do j= 1 to &_nUnit;
link ReadAX;
do i= 1 to &_nInput;
_col_='LA' || put(j,3.);
_row_=NXarray(i);
_type_='.';
_coef_=AXarray(i);
output;
if j=J0 then do;
select(&_Orienta);
when('InputMin') do;
_row_=NXarray(i);
_type_='.';
_coef_=-AXarray(i);
_col_='FI';
output;
_col_='_rhs_';
_row_=NXarray(i);
_type_='LE'; /*LE*/;
_coef_=0;
output;
end;
when('OutputMax') do;
_row_=NXarray(i);
_type_='LE';
_coef_=AXarray(i);
_col_='_rhs_';
output;
end;
otherwise;
end;
end;
end;
_
col_='LA' || put(j,3.); _row_='sum'; _type_='.'; _coef_=1; output; end; _col_='_rhs_'; _row_='sum'; _type_='EQ'; _coef_=1; output;ReadNX: set NX; return;
ReadAX: set AX; return;
run;
[此贴子已经被作者于2008-6-5 23:46:07编辑过]