このブログは、株式会社フィックスターズのエンジニアが、あらゆるテーマについて自由に書いているブログです。
[2018/01/10 アップデート] 社内プロコン説明書を第1.06版に更新しました。
こんにちは。エンジニアの二木です。
毎年開催しているフィックスターズ社内プログラミングコンテストですが、今年も開催されました。今回のお題は『量子リバーシ』です。開催期間は、今年の11月30日から来年の2月2日となっており、約2ヶ月ありますので、余裕をもって取り組めるのではないでしょうか。
詳しい内容については社内プログラミングコンテストの説明(PDF)をご覧ください。
量子リバーシとは、今回のコンテストのために作ったオリジナルのゲームのことです。弊社では今年から量子コンピューティングに力を入れていることもあり、量子をモチーフとして取り入れてみました。
量子三目並べというゲームが既に存在するのですが、その量子に関するルールをリバーシ(オセロ)に取り入れて拡張したゲームになっています。単純な三目並べでも量子のルールが加わることでかなり難しくなりますが、リバーシに適用すると極端に難度が上がります。しかし、心配には及びません。というのも、人では複雑すぎて理解できないことでもコンピュータならばそれが扱えるからです。そして、人が扱えない問題に対処できるコンピュータを扱うことができるのが我々エンジニアです。存分に腕を振るいましょう!
まずは、量子リバーシのルールを簡単に説明します。
通常のリバーシは裏表が白と黒になっている石を使います。量子リバーシでは量子石と古典石の2種類の石が存在します。量子石は存在がまだ確定していません。存在が確定した量子石は古典石と呼ばれ、こちらは通常のリバーシの石と同様の扱いになります。
量子石は2個で1組となっており、自分の手番ではこの2個の量子石を盤上に打つことになります。この1組の量子石のどちらか一方が古典石に変わる時、もう一方は消滅します。
6×6マスの盤上で黒白交互に量子石2個を古典石が置かれていないマスに別々に置いていきます。同じ手番に置いた量子石同士および同じマスにある量子石同士は繋がっているとみなし、それらが循環するように繋がれば循環エンタングルメントが発生したといいます。循環エンタングルメントが発生した量子石のあるマスでは、量子石から古典石に変化します。古典石に変化する際、リバーシのルールが適用され、相手の古典石を自分の古典石で挟み込むことができたら相手の古典石が自分の古典石に変わります。これを繰り返していき、最後は6×6=36マスすべてが黒か白の古典石で埋まることになります。そして、より多くの古典石を得た方が勝ちになります。
詳しいルールは説明書を読んでいただくとして、簡単な2つの対戦例をGIFアニメーションにして示しておきます。それぞれ、初期配置から8手と4手となっており、手順は短いのですが雰囲気は伝わるのではないでしょうか。緑で示している石が量子石、下線が引かれた黒で表現されている石が古典石になります。
本コンテストは基本的には社内イベントとなるのですが、社員の紹介により社外の方でも参加できるようになっています。もし興味のある方は説明書に記載されている問い合わせ先にコンタクトをお願いします。
また、今年度から匿名での参加ができるようになったので、より参加しやすくなったと思います。
毎年、上位入賞者に賞品を用意しています。今年は、Tegra X1が組み込まれているNintendo Switch、ソニーの電子ペーパー学習マルチリモコン、スマートスピーカーGoogle Homeなどが予定されています。参加賞としてオリジナルデザインTシャツが参加者全員にもれなく貰えます。
結果発表会は来年の2月に予定しています。同時に懇親会も行いますので、技術トークに花を咲かせましょう!
毎年恒例の社内プロコンなのですが、問題のアイデアを思いつくまでがなかなか大変で、今年も苦労しました。それだけに、こちらが想像もしなかった工夫された解法が示されたりすると、とても嬉しい気持ちになります。「知らないことを知る」のは、大切なことですね。
コンピュータビジョンセミナーvol.2 開催のお知らせ - ニュース一覧 - 株式会社フィックスターズ in Realizing Self-Driving Cars with General-Purpose Processors 日本語版
[…] バージョンアップに伴い、オンラインセミナーを開催します。 本セミナーでは、...
【Docker】NVIDIA SDK Managerでエラー無く環境構築する【Jetson】 | マサキノート in NVIDIA SDK Manager on Dockerで快適なJetsonライフ
[…] 参考:https://proc-cpuinfo.fixstars.com/2019/06/nvidia-sdk-manager-on-docker/ […]...
Windowsカーネルドライバを自作してWinDbgで解析してみる① - かえるのほんだな in Windowsデバイスドライバの基本動作を確認する (1)
[…] 参考:Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo ...
2021年版G検定チートシート | エビワークス in ニューラルネットの共通フォーマット対決! NNEF vs ONNX
[…] ONNX(オニキス):Open Neural Network Exchange formatフレームワーク間のモデル変換ツー...
YOSHIFUJI Naoki in CUDAデバイスメモリもスマートポインタで管理したい
ありがとうございます。別に型にこだわる必要がないので、ユニバーサル参照を受けるよ...