決勝で使用されたレースコースについて

決勝で使われたレースコースについて,複数の決勝進出チームの方から,決勝ルールに記載されているコースジェネレータで生成されたものではないのではないかという指摘を受けました.

確認したところ,決勝のレースコースは確かにcourse_generator.pyを用いて生成されていました.ただし,blocks/およびlogos/で定義されているレースコースのパーツは取り込まずに生成が行われていました.

このように生成されたレースコースは,形式的には決勝ルールを逸脱していたとはいえないため,今回の決勝の結果自体は正当なものであると考え,再試合や結果の調整等は行いません.どうかご理解ください.

一方で,決勝ルールの「コースジェネレータによって生成する」がパーツを取り込むことも含むことは明記はしていないものの,予選で用いられたコースや,決勝ルールドキュメントからの「コースジェネレータ」へのリンク先がcourse_generator.py自体ではなくこのファイルを含むディレクトリであることも考慮すれば,パーツを取り込むことも含むと理解するのが自然です.実際,そのことを前提にAIを最適化した参加チームは多く,それらの最適化が無駄になってしまったことについて,決勝参加チームの皆様にお詫びいたします.

パーツを取り込まずにコース生成を行ったのは意図したものではなく,作業ミスによるものです.course_generator.pyは,ワーキングディレクトリ上にblocks/logos/が存在すると,これらのディレクトリ内にあるファイルをレースコースのパーツとして取り込む仕様です.しかし,決勝用のレースコースを生成する際,当該スクリプトは誤ってこれらのディレクトリが存在しないディレクトリ上で実行されていました.また,対戦結果の確認作業においても,この事実に気付くことができませんでした.

再発防止のため,提出から結果発表の間にもう少し余裕を持たせたスケジュールを組み,より慎重な確認を行えるようにすること,予選や決勝のルールに即したテスト環境を事前に提供すること(これの意味するところはゲームにより異なりますが,今回であれば,予選や決勝で用いる予定の設定により生成されたレースコースを例としていくつか示しておくこと)などを考えております.また,作業コストや公平性の観点から難しい面もありますが,明らかに挙動がおかしい提出プログラムについては,提出者に確認をとるようにすることも検討します.

決勝のレースコースに関しては,決勝ページに「(ゲームルールは予選と同じです)」の記述があったため,コース長が予選と同じだと思っていたというコメントもいただきました(実際は予選のコース長は50以上100以下,決勝は100以上200以下).「ゲームルール」「予選ルール」「決勝ルール」はそれぞれ別のルールであり,コースサイズはゲームルールではなく予選・決勝ルールで規定されているため,上記括弧書きの記載によらず,コース長が予選と決勝で異なることは明記していたと考えておりますが,一部の方に誤解を与えてしまっていたようです.今後,ルールの提示方法の改善につとめます.

以上,決勝実施に関する不手際により不本意な結果に終わってしまった決勝参加チームの皆様に改めてお詫びするとともに,決勝の結果に関する処置についてご理解いただきますようお願い申し上げます.

SamurAI Coding 2018-19 Committee