きんどるでついポチッとしてしまった「マッチ箱の脳」という一般向けの人工知能の入門書を読んでみたところ、第1章のおやつの例が気に入ったのでゴリっと作りました。

2014-07-31 15.58.26

おやつ3賢人 | おやつ購入支援ウェブアプリ

おやつの金額と内容量から設定された予算内で効用を最大化する組み合わせを計算します。 評価は金額と内容量の総計に加えて種類の多さに応じて係数を掛けます。 ただし、金額の総額が予算を上回った場合は評価は0とします。

このおやつの組み合わせを遺伝子とし、遺伝子のグループを世代交代させて結果を導きます。このとき、それなりの計算回数をループで回すためWebWorkerを使っています。デフォルトでは256の遺伝子を256世代交代させています。試した限りでは1000x1000ぐらいで計算に時間がかかりはじめるようです。

低いスコアで収束してしまうことがあるので3回計算させて3つの回答を表示するようにしています。それを3人の賢者に見立ててみました。

今回はおやつなので内容量(とバリエーションの多さ)を評価していますが、数値化可能なら他にも応用できるんじゃないかな。