アルゴリズムデザインコンテスト2018(ADC2018)回答チェックツール (nlcheck.py)
ダウンロード
nlcheck.py
チェックツール本体
nlclean.py
おまけ機能1(最短経路へのLINEの引き直し)を使用するのに必要なファイル
nldraw.py
おまけ機能2(グラフィック出力)を使用するのに必要なファイル
使用方法
書式例: nlcheck.py --input FILE1 --target FILE2
引数: (-i, -t以外はオプション)
-h|--help
-d|--debug
-v|--verbose
-i|--input FILE1 : 問題ファイル(入力)
-t|--target FILE2 : 回答ファイル(入力)
-c|--clean FILE3 : 最短経路で線を引き直した回答ファイル(出力)
-p|--png FILE4 : 回答のグラフィックデータファイル(出力、PNG形式)
-g|--gif FILE5 : 回答のグラフィックデータファイル(出力、GIF形式)
(注) 回答ファイルはファイルの末尾以外に空行を含めないこと。
実行例:
% nlcheck.py --input Q1.txt --target A1.txt
judge = [True, 0.0070921985815602835]
% nlcheck.py --input Q1.txt --target A1_ng.txt
check_5: found disjoint line(s)
judge = [False, 0.0]
Trueなら正解、Falseなら不正解。
数値は解の品質の値(不正解の場合0.0)
注意事項:
このプログラムを実行するためには、PythonとNumPyが必要です。
また、回答のグラフィックファイルを出力するにはpython-gdが必要です。
Python、NumPy、python-gdのインストール方法は、ネット検索してみて
ください。
使用目的
ADC2018の各参加チームは、本ツールを使用して、事前に以下の確認を行って 頂く様にお願いします。
-
自作問題のフォーマットの確認
当日提供予定の自作問題とその回答を本ツールにかけてTrueが返ることを 確認する。問題のフォーマット確認が目的であるため、回答は当日使用予定の ソルバーの出力でなくても構わない。 -
ソルバーの出力フォーマットの確認
自作の問題を当日使用予定のソルバーで解き、問題とソルバーの出力した回答を 本ツールにかけてTrueが返ることを確認する。ソルバーの出力のフォーマット 確認が目的であるため、問題は当日提供予定のものでなくても構わない。
チェックの内容
- チェック1. 問題の数字の位置に、同じ数字が置かれている。
- チェック2. 問題にはない数字があってはいけない。
- チェック3. 問題の数字の位置が、線の端点である。
- チェック4. 線は枝分かれしない。
- チェック5. 線はつながっている。
(注) ADC2016では「1本のLINEが複数のビアを通ってはいけない」という規則が あったが、ADC2018では1本のLINEが複数のビアを通っても構わないので、 注意すること
おまけ機能
以下の機能が実装されていますので、必要に応じてご活用下さい。
-
最短経路へのLINEの引き直し
LINEの番号順に、最短経路にLINEを引き直す機能です(-cオプション)。SATなどを 使用して解を求める場合に、LINEの端点と接続されていない線が引かれる場合が ありますが、その様な不要な(規則に違反する)LINEも削除されます。 -
グラフィック出力
回答ファイルを、PNG形式、または、GIF形式のグラフィックデータとして出力します。
(-p、または、-gオプション)
Copyright (c) 2018 DAシンポジウム実行委員会