← 戻る

GDD2011のDevQuizを解いてみた

2011-09-13

gdd2011

Google Developer Day 2011に参加するための DevQuiz というクイズがあるのですが、それを解いてみました。

今年の問題は、

という 3 本立てになっていて、スライドパズル以外は満点であたりまえ、スライドパズルをどれだけ解くか、という勝負でした。

で、どうだったかというと、いろいろトラブルがありつつも、なんとかスライドパズルを 1472 問解いて、ボーダーラインは超えたようです。

どんなトラブルがあったかというと、

という感じでした。特にメイン PC が壊れたときは、どうしようかと思いました。 結局 Amazon EC2 で c1.xlarge インスタンスを作って、2 時間だけ回してパワー不足を補いました。

また、途中まで全然計画とか立てずに、闇雲に探索していたので、それでかなり時間をロスしていました。 盤面が小さい、解きやすい問題から解いていった方が良かったです。

今回の反省点は、

という点でした。

やっつけなコードですが、一応アップしておきます。 探索は、深さ優先の反復深化でやってます。 A*も試したんですが、 今回のデータ構造だと Open リストが膨れてしまい、メモリに乗らなくなる感じでした。

もうちょっと時間があれば、データを切り詰めたり(std::string 使ってる時点でありえない)、 評価関数を凝ったり、いろいろできたとは思うのですが、まあ、こんなもんかなーと。