年末年始は「石畳職人Z」に挑戦してみませんか

これは、NSEGアドベントカレンダーの12/1のエントリーです。なのでNSEGな人々向け。

高専プロコンがありました

今年の10月11-12日(体育の日の三連休)に、長野市全国高等専門学校プログラミングコンテストがありました。詳しくはサイトの説明をみてほしいんですけど、ようは、高専生がソフトウェアの企画や実装で競い合う大会です。

なんで、これを高専ではなくてNSEGのアドベントカレンダーにエントリーさせてるかと言うと、終わってから気づいたんですよね。「ああ、NSEG方面に宣伝しておけばよかった」と。

せっかくの地元での大会、次を待ってたら半世紀後になってしまうということでいちOBがいろいろ企画を持ち込んだ結果、やること多すぎて他のことに気が回らなくて後手になってしまいました。ごめんなさい。

OB戦がありました

今回、初めての試みとして競技部門のOB戦を行いました。高専プロコンは課題・自由・競技の3部門で構成されていて、競技部門は事前にルールが公表されたゲームをコンピュータの力を使って(使わなくてもよい)解き競うものです。OB戦は大会と同日同会場で、OBたちが同じゲームに挑むものです。

どんなゲームだったかは、参加者のひとりが体験記に書いているので、こちらをみてください。「石畳職人Z」という、一言で言うと、善光寺の石畳をモチーフにしたポリオミノの敷き詰め問題の亜種です。

ちなみに学生の大会のほうは

  • 使える電源はチームあたり150Wまで
  • 使える計算機はノートパソコン3台まで
  • 無線通信および会場外との通信は不可

という制限がありますが、OB戦ではこれら制限を撤廃して、会場の物理制約内であればどんな計算リソースを使ってもよい、としました。もちろん外部との通信もOKです。

その結果集まったのは7チーム。

20コアとか300コアとか変な計算機つかってるのがいるのはOB戦ならではです。しかも、20コアと300コアの直接対決がありました。

なんか知ってる人いますねえ。どんな結果だったかはお察し下さい。

上の体験記にもあるように、優勝したのは「石んの会」です。4コアってありますけど、使ってる計算機が4コアってだけでプログラムはまったく並列化してなかったらしいです。アルゴリズム超重要!

OB(Out of Bounds)戦のススメ

さて、ここからが本題です。(遅い)

実は、高専プロコンの競技部門のゲームの詳細なルールは公開されていてだれでも参照できます。

また、「プロコン練習場」としてサンプル問題と答え合わせができるシステムも公開されてて誰でも使うことができます。(OB戦で使った問題も投稿済み)

さらに、ソルバープログラムを公開してるチームがあって、参考にすることができます。OB戦参加チームは全チーム公開してます。

つまり、だれでも石畳職人Zのソルバープログラムを作ることができる環境があるのです。
というわけで、NSEGのみなさん年末年始休みの自由研究でこの問題にぜひ挑戦してみてはどうでしょう?信毎元旦号のパズルを解くよりもスリリングなお正月が過ごせると思います。

そのうちゲームサーバのプログラムも公開されると思います。

ゲームサーバが公開されたら、NSEG大会ができますね。別の意味のOB(Out of Bounds)戦です。