2017-01-14 4 views
0

ソルバーを使用して、より大きなセットのサブセットからターゲット合計を探したいとします。 (16個の数字の10個のサブセット)。私はソルバーにあまり慣れていないので、自分の制約を設定する最良の方法が不明です。Excelソルバー数値セットのサブセットからターゲット合計を検索する

私は、セットA、B、C、D、Eの中に5つのカテゴリーの番号を持っています。16のセットにはこれらのカテゴリーの異なる組み合わせが含まれていますが、ターゲットサブセットの合計には定義されたメークアップがあります。 A、B B、C、C、C、(BまたはC)、D、E

私はこれらのルールをソルバーにどのように導入するのですか?

二次的に、私はソルバーが1つの解決策を思いついていることを知っています。ターゲットに最も近いソリューションの範囲を得る方法はありますか?だから、私がターゲットをかなり生産していないセットを持っていれば、ターゲットに最も近い3つのソリューション(プラスまたはマイナス)を見ることができましたか?

ありがとうございました。

+0

私はあなたの問題と期待される結果の例を挙げる必要があると思います。セット内の数字を区別するものは何ですか? – OldUgly

+0

数字はすべて似ていますが(0.00)、商品の組み合わせなどの異なるカテゴリに割り当てられています。私はこのグループから合計106.36を見つけたい : A1 19.6 A2 1.60 B1 9.02 B2 18.00 B3 14.48 B4 0.00 B5 8.27 B6 10.27 C1 12.85 C2 4.90 C3 4.45 C4 8.60 A1、B1、B2、C3、C4、C5、B5、B6、D1、E1 0: C5 18.95 C6 0.00 D1 0.45 E1 9.00 試行錯誤が私に完全一致を与えましたしかし、時には正確な一致(丸め、不完全なデータ)がないので、Top X Nearest matchesを作成したいのです。たとえば、私は別のセットで試行錯誤しましたが、私の合計は-06でした。 –

答えて

0

TL/DR - あなたの問題をセットアップする方法は次のとおりです。 "近い"一連の回答を取得することは、Solverの対象外です。あなたはVBAでそれを行うことができます。 (編集 - 追加定義された化粧用に設定)

コメント

「数は各カテゴリから選択しなければならない」、または「数はカテゴリXから選択しなければならない」についての基準が存在しないようです。むしろ、それぞれが1つのカテゴリに属していますが、特定の合計を提供する数字の組み合わせを見つけたい場合は、後でカテゴリを調べてください。

あなたがあなたのコメントで提供された情報から、最初の問題のセットアップ

は、私が...

enter image description here

列A(カテゴリー)と列B(バリュー)は、次のまとめあなたが提供した情報です。列C(選択)は0または1のみです。列D(結果)は、乗算=B2*C2が書き込まれます。

F2は、列Dの合計です.G2は、この合計の目標値です(指定したとおり)。 H2は計算=(F2-G2)^2の二乗誤差です。

これは、ソルバーの設定です...

enter image description here

  • セット目的:$H$2に設定されている - 計算の二乗誤差を
  • へ:最小に設定されています。 Value Of:0を選択できますが、正確な答えがない場合は失敗する可能性があります。
  • 変数セルを変更することによって:$C$2:$C$17または列Cに設定されます。
  • 制約の対象:$C$2:$C$17 = binaryを含みます。これにより、値は0または1のいずれかになります。
  • 解決法を選択:[進化]に設定します。 GRG Nonlinearはこの種の問題を解決することがありますが、Evolutionaryよりもはるかに時間がかかります。

結果は以下のとおりです。報告した内容とは異なります。私はあなたの結果を強制する場合、私はそれが「わかりますので

enter image description here

検索の近くには、

ソルバーは、オプティマイザで結果... CalcTotal(どこかにおそらく転写エラー)のための106.61を取得しますあなたの目的に最も適した「答え」を選択します。

さまざまな回答を提供するためには、異なる目的を提供する必要があります。

たとえば、C1を使用するソリューションを強制したいが、依然として目的に最も近いソリューションが必要な場合があります。セットアップがその例で...この溶液で... ...このよう

enter image description here

enter image description here

を見えるかもしれません、私は「変更することにより、可変細胞から$C$10を除外しました: "と" Subject to Constraints: "フィールドから入力します。同じことを達成するもう1つの方法は、元のフィールド値を変更せずに、追加の制約$C$10 = 1を追加することでした。

また、カテゴリBから正確に2つの値を選択するソリューションが必要な場合もあります。各カテゴリから選択した値の合計を含むように設定を変更し、制約を追加することができます。あなたがのための基準を決定した場合はここで設定アルゴリズム

を作る...

enter image description here

...と対応する結果...

enter image description here

ですあなたが探しているソリューションの範囲では、ソルバーの設定、ソリューションの取得、およびレビューのために「選択された列」。

このトラックを追いたい場合は、このサイトで提供されている他のソリューションを見て、何かを設定して問題があれば新しい質問をしてください。

編集 - あなたの基準の一つ

を逃した私はあなたの文に対処逃した - 「ターゲット・サブセットの合計が、定義された化粧持ち:A、B、B、C、C、C、(BまたはC)を、(BまたはC)、D、E "

この例では、各カテゴリの合計を含む設定を使用して、これらの制約を指定できます。

  • $ G $ 4 = 1
  • $ G $ 5 < = 4
  • $ G $ 5> = 2
  • $ G $ 6 < = 5
  • $ G $ 6>を= 3
  • 最初のパスの$ G $ J = 1
  • $ G $ 8 = 1

、それA1、B2、B3、C1、C3、C4、C5、C6、D1、E1の合計が106.38であった。

+0

ありがとう、@OldUgly、非常に役に立つ。 –

+0

ソルバーは、「変数セルを変更することによって:」セルに最大200個のセルしか使用できないことに注意してください。つまり、問題が非常に大きくなった場合、別のツールが必要になります。 – OldUgly

関連する問題