0

こんにちは、linprogを使用した次のコードがあります

for K = 1:3;
   for M = 1:3; 

      PV_output(:,:,K) = real(PV_power_output(:,:,K));
      PV =reshape(PV_output(:,:,1),8760,1); 
      WT_output(:,:,M) =  WT_power_output(:,:,M);
      WT = reshape(WT_output(:,:,1),8760,1);
    PVenergy = sum(sum(PV_output(:,:,1)));
   WTenergy = sum(sum(WT_power_output(:,:,1)));
   % Linprog
   f = [((CRF*CC_PV)/PVenergy)+OM_PV; ((CRF*CC_WT)/WTenergy)+OM_WT];
   A(:,:) = [-PV  -WT];
   b(:,:)  = -0.25.*Demand(:);
   lb = zeros(2,1);
 ub = [max_PV_area/PV_area; max_WT_area/WT_area]';
   [x(:,K,M), fval, exitflag] = linprog(f,A,b,[],[],lb,ub)
    end
end

ここで、PV = 8760x2、WT = 8760 x 2、x = 2x1 です。このプログラムを実行すると、最適化は終了フラグ 1 で収束しますが、x1 =0 の値と特定の整数に等しい x2 の値のどちらかが得られます。

出力が結果の混合を与えないのはなぜですか (つまり、x1 と x2 の両方の非ゼロ値?

4

1 に答える 1

2

線形計画法ソルバーは、制約によって定義されたポリトープの頂点で解を返すためです。最適解は常にそのような頂点にあります。

于 2012-06-19T17:04:26.300 に答える