組織のトップダウン・ボトムアップと動的計画法

組織あり方としてトップダウンというものとボトムアップというものがあります。全知全能の神がいるならトップダウンで上手くいくと思います。

しかし、下に降りてくると現実と合わないことが明らかになったり、降りてくる間に現実が変わっていたりします。この場合にはボトムの人がうまいこと調整するものだと思います。トップの人は「報告しろ」「施策をうて」「なんとかしろ」と下達しているのかもしれませんが、これはボトムアップでしょう。*1

トップダウンの号令がボトムアップで反響して再びトップダウンで打ち返す。これを繰り返しが常でしょう。号令が引数で報告が返り値の関数を再帰的に呼び出しているイメージである。

原理的にはこのプロセスを繰り返すことは動的計画法に相当するもので全体的な最適解が得られそうに思われる。全体最適部分最適という言葉が良くわからないのは、全体最適を実現させるためには任意の部分がそれぞれ最適化されていなければならないという点である。つまり、全体最適部分最適は矛盾したものではないということだ。

しかし、実際には部分最適化と呼べるような現象は起こる。これは不思議である。

おそらく上記で仮定していることが間違っていると思われる。考えうるのは、

  • 再帰的に呼び出される関数のどこかで比較の計算を誤っていて最適解を選んでいない
  • 誤った数値を引数として指定している
  • 誤った数値を返り値として返している
  • まだ計算の途中で解は出ていない

といったものであろうか。

最初の3つはバグだ。動的計画法は数値の多少のエラーは許容できるようなロバストアルゴリズムなのか?それはちょっと分からないし、エラーを少なくする方法も私は知らない。

最後のは計算を効率化するしかない。これにはメモ化が有効であるということは分かっている。つまり、他で答えが出ている問題の解決策を独自に考える必要ないということだ。その問題は世の中的に解決しているだろというのを議論するのはすごく無駄です。答えが出ているのだからそれをそのまま使えば良いのです。

上手く行っている事例を真似ることは組織の全体最適にも役に立つ可能性があることが示唆されました。

動的計画法 POD版 (数学ライブラリー)

動的計画法 POD版 (数学ライブラリー)

*1:なんとかしろも正しいと思っていますよ。