2009-08-25 17 views
4

Excelでソルバーと組み合わせて使用​​するモデルを作成しました。それは主に動作します。唯一の問題は、Solverがバイナリとして適切に制約されたセルを実際に処理していないことです。解決策が見つかったら、実際には0.9999996,1.0000000003,0.0000017などの数字が表示されます。Excelソルバーがバイナリ制約に従わない

Mac OS XでExcel 2004を使用しています。アイデアはありますか?

答えて

2

コンピュータの有限精度と最適化アルゴリズムの性質上、ソルバには公差があります。ソルバーパラメータダイアログボックスのオプションボタンを選択してから、精度を上げようとします。 0.000001~0.00000001)。これがうまくいくかどうかはわかりませんが、試してみる価値があります。

私の会社は、商用グレードソルバーをWhat'sBestというExcelに接続します。上記がうまくいかない場合は、それを考慮することができます。詳細は、www.lindo.comを参照してください。

+0

実際には、デフォルトの精度は5です。私は0に変更し、動作しているようです。変数がバイナリでなければならないとすれば、私は精度を持つ必要があります。 :Sありがとう! –

9

バイナリ値が0または1から離れている場合は、ソルバーウィンドウのオプションに移動し、[Integrity制約を無視する]チェックボックスがオンになっているかどうかを確認する必要があります。

+0

これは私のために働く解決策でした。 – ChrisC

1

問題がない可能性がありますが、ExcelソルバーでデフォルトでオンになっているオプションにチェックボックスIgnore Integer Constraintsがあることに注意してください。少なくとも、Mac用Excel 2011のコピーの場合はそうです。

2

時間枠内または反復回数内で解を見つけることができない場合(または正解がない場合)、バイナリ回答は返されません。

一つの可能​​な回避策は、はあなたが、どのように正確にあなたがを必要とする答えを解決しようとしている問題の種類に応じて、少数の細胞(細胞の中で最も小さい値を持つ、おそらくものを設定することですバイナリではなく、<=1>=0の制約で計算しています)。あなたが提供したイメージが表示されないので、私はあなたが何をしていたのかがはっきりしていません。例として

、あなたは22の合計解決しようとしている場合(これは、

(下記参照バイナリとして設定されていない細胞についてSUMPRODUCTでセルを設定する人であってもよいです。) )何の解決策を持っていない、あなたが起動します。

9 1 
9 1 
9 1 
6 1 
3 1 

あなたはバイナリとして第2列のすべての値を設定した場合、あなたがしてしまいます:あなたはバイナリとして最初に3を設定した場合

9 0.5625 
9 0.5625 
9 0.5625 
6 0.708333333 
3 0.854166667 

、そして最後のt応じて、

9 0 
9 1 
9 1 
6 0.333333333 
3 0.666666667 

あなたが手動1と最後の二つの一方及び他方の0を設定するために使用することができる最後の2行= 4、のためのSUMPRODUCTを:として<=1 & >=0号、あなたが終わりますターゲットのわずかに下または上の答えを望むかどうか。

2

私は同様の問題を抱えていました。ソルバーオプションに行き、 "Use automatic scaling"をチェックすることで解決できました。私はこれがあなたの問題を解決するかどうかは分かりませんが、試してみる価値はありません。

関連する問題