Excel(エクセル)のソルバーの性能の違いがわかりにくいけど、調べた

線型計画法関連のソルバーについては知識がかなり軽薄なので、この際
まとめておこうと思う.

公式ホームページの解説によれば、

https://support.office.com/ja-jp/article/ソルバーを使って問題を定義し、解決する-5d1a388f-079d-43ac-a7eb-f63e45925040

excel.png

質問している人もいるけどあんまりいい回答は得られていなさそう.

https://answers.microsoft.com/ja-jp/msoffice/forum/all/%E3%82%BD%E3%83%AB%E3%83%90%E3%83%BC%E3%82%A2/0e31c7f0-aa44-4afd-a5ac-66b848f5839b

 

シンプレックスLP (線型計画法の一手法.高校で習うやつ)は、
めっちゃ早いし、答えがあれば必ず最も良い解になることが保証されています.
一方で使えるタイミングが限られます.
上記に書かれているように使えるのは全部の式が

XXX >= 5A + 6B + C

と(線形の式になるように)書かれているような場合のみです.
以下のような(非線形な)式が入っている場合は×

XXX >= AB + B^2 + e^(-C) + log(D) + A^2

GRG非線形(一般化簡約勾配)は、
シンプレックスLPより使えるケース(ガクガクな式でなければOK.非線形OK)が多いです.
ただ、やや遅いのとガクガクな式(ある値で突然値が大きく変わる関数IF, ABS, LOOKUP等)は×であること、
確かに一つの解かもだけど一番良い解になるとは限らない(複雑な条件では見つける可能性も低い)と言った欠点があります.
この手法は少しずつ良さそうな方向に向かって答えを更新していって更新する必要がなくなったときに答えを吐き出します.
(時間をかければシンプレックスLPが解ける問題(線形な問題)は同じ値になることが多い)

エボリューショナリー(遺伝的アルゴリズム)は、
GRG非線形のようによりよい答えが得られるように更新しながら答えを見つける方法ですが、
最もいい解を探すように動きます.
これも同様に遅いですが、どんな状況の設定でも最も良い答えを導く可能性(あくまで可能性.時間かけてもダメな場合もある)があります.GRGは数学的により値に更新してくれますが、エボリューショナリーは数学的に必ずしもよい答えに更新できることが保証されていません.
エボリューショナリーの場合は、何個かの候補を持っていて、それで一番よかったやつを使ってその亜種を次の答えにしてまた次の一番よかったやつを探します.
要はある程度いいと思われる答えを少し変えたらもっとよくなるかも!と思って答えを変えているので、どんな条件でも解けます.

ってな感じなはずです.
間違っていたらコメントください.

すごい簡単な式(変数が一つだけ掛け算されているだけの塊を足し算しただけ. 式の数は関係ありません)問題はシンプレックスLPで解いて、
そうじゃない問題は、GRGがデフォルトで
答えが出なさそうならエボリューショナリーで良さげな解をもらうって感じ?

 

About the author

コメントを残す