カルマンフィルター

あなたが一番好きなアルゴリズムを教えてください。 また、その理由やどんな点が好きなのかも教えてください。 - 人力検索はてな
http://q.hatena.ne.jp/1195950564

「あなたが一番好きなアルゴリズムは何か」という質問に半分ジョークで答えると、「自分が考えたアルゴリズム(複数)とその基盤になったモンテカルロ粒子フィルターのアルゴリズムが一番好きです」になるのですが、それだと皆さんにバカにされそうなので、まじめに考えます。

上記のジョークを除外して考えると、一番好きなアルゴリズムはカルマンフィルターなのではないかと思います。

さて、カルマンフィルターとは何かなのですが・・・・

まず、空を飛んでいる飛行機を観測して、その位置を知りたいとします。

問題は我われの手元には観測データしかないという点です。

そして、観測データには(1)観測誤差、(2)システムの誤差の二つが含まれています(システム誤差というのは、例えば飛行機が飛ぶ時に、気流の変化などにより、飛行機が飛ぶ速度が必ずしも一定ではないこと(など)から生じます)。

で、飛行機の真の位置を知りたいならば「観測データから、観測誤差を引いて、さらにシステムの誤差も引く」必要があります。

カルマンフィルターは「観測データから、観測誤差を引いて、さらにシステムの誤差も引く」効率的なアルゴリズムです。

これがあったからこそ、アポロ計画で人類は月にも行けました。

20世紀が生んだ最高のアルゴリズムのうちの一つだと思います。