makotan _at_ gmail dot com

将棋のプロがコンピュータに負けたようにエンジニアがコンピュータに負ける時代が来るのか?

100%自動生成ネタから派生したふつーの人っぽい発言を見て考えたこと

将棋のアルゴリズムというかアプローチ

定石を大量に集めて、コンピュータの計算能力で最適と思われる解を作り出す
っていうのが将棋のアルゴリズムの勝ちパターンなハズ。
ここでのポイントは

  • オリジナルは大量の定石
  • その組み合わせをコンピュータが大量の計算で頑張ること
  • 結果がコンピュータに判断できること(これが無いと計算結果の有効具合が判断できない)

そのままプログラミングに適用するとどうなるか?

まずは比較的単純なプログラミングの場合で、大量の定石がなんらかの形で集まってるとする
その状況下でも、組み合わせ結果をコンピュータが正しいことを判断できなければ意味が無い
すなわち、結果の正当性をどうやって確認するのかがポイントになる

そこで思い出すTDD

まずはテストを書く
コンピュータがそのテストに適合する定石を見つけ出し、組み合わせテストを通す
更にテストを追加する
すると、さらにコンピュータがそのテストに適合する定石を見つけ出し、組み合わせテストを通す
くりかえす
うーんなんかうまくいきそうな気がする(誇張)

本当に作れるか?

現時点ででいうと、100%の自動生成は非現実的だとおもう
ただし、ある程度なら自動生成は出来る気がする。最大の課題は定石なんだけどね
ということで、作ってみたいw