x + y + z + w + q = 5000
0 <= x, x は500の倍数
0 <= y, y <= 2500
0 <= z, z <= 500, zは100の倍数
0 <= w
q <= 0, -500 <= q
上記条件の答えから
x × 14 + y × 13 + z × 12 + w × 11 + q × (-10)
の答えが一番小さい組み合わせを計算で出したいと思っています。
最終的にはExcelのマクロで計算したいので、
そこまでお願いできればありがたいですが、
計算式だけでも構いません。
よろしくお願いします。
線形計画法ですね
以下のURLの手順で数式と値を入力して
目標値で最小値を選べばすぐに計算できます
http://kogures.com/hitoshi/webtext/or-lp-solver/index.html
補足します
基本的には
目的関数 = x * 14 + y * 13 + z * 12 + w * 11 + q * (-10)
とおいて線形計画法のソルバーを使うだけですが
具体的な手順としては,次のように式の変形,条件の追加が必要です
まず
x + y + z + w + q = 5000 から q = 5000 - (x+y+z+w)
xは500の倍数だから x=(500*A)
zは100の倍数だから z=(100*B)
ということで
目的関数 = (500*A) * 14 + y * 13 + (100*B) * 12 + w * 11 + ( 5000 - ( (500 * A)+y+(100*B) +w) ) * (-10)
と変形しておきます
あとは条件として
Aは整数
0<=A
Bは整数
0<=B, B<=5
0 <= y, y <= 2500
0 <= w
q <= 0, -500 <= q
を入力して
目的関数の最小値を選んで計算します
線形計画法ですね
以下のURLの手順で数式と値を入力して
目標値で最小値を選べばすぐに計算できます
http://kogures.com/hitoshi/webtext/or-lp-solver/index.html
補足します
基本的には
目的関数 = x * 14 + y * 13 + z * 12 + w * 11 + q * (-10)
とおいて線形計画法のソルバーを使うだけですが
具体的な手順としては,次のように式の変形,条件の追加が必要です
まず
x + y + z + w + q = 5000 から q = 5000 - (x+y+z+w)
xは500の倍数だから x=(500*A)
zは100の倍数だから z=(100*B)
ということで
目的関数 = (500*A) * 14 + y * 13 + (100*B) * 12 + w * 11 + ( 5000 - ( (500 * A)+y+(100*B) +w) ) * (-10)
と変形しておきます
あとは条件として
Aは整数
0<=A
Bは整数
0<=B, B<=5
0 <= y, y <= 2500
0 <= w
q <= 0, -500 <= q
を入力して
目的関数の最小値を選んで計算します
ご回答ありがとうございます。Excelにゾルバーを入れて試したところうまくいきました。ありがとうございました。
「もっとも値が少ない数式」とは、①値が小さい事ですか?、②答え(値)の’かず’がすくない事ですか?
①は値が’0’か’負の絶対値の大きな数’を出す式
②は答えの無い式(0個)
と考えてよいでしょうか
ご回答ありがとうございます。Excelにゾルバーを入れて試したところうまくいきました。説明不足で申し訳ありません。ありがとうございました。
ご回答ありがとうございます。Excelにゾルバーを入れて試したところうまくいきました。ありがとうございました。
2016/02/26 16:31:41