ソルバの追加方法
ここではソルバの追加方法を説明します.
1. ソルバの実装
ソルバを実装する.
Gitリポジトリとして実装することを強く推奨. (以下,Gitリポジトリとして実装するものとして手順を説明)
2. Submoduleとして追加
以下の手順でソルバを追加する.
cd solvers
git submodule add [your git repository] [target folder name]
これで,solvers/[target folder name]
にソルバが追加される.
3. Pythonスクリプトの追加
-
solvers/[target folder name]/
以下に適当なpythonスクリプトを配置. -
solve
メソッドとstop
メソッドを実装.
-
solve
メソッド- 引数: params
- params['problem']: 問題の文字列
- params['timeout']: 問題を解くときのタイムアウト時間[s]
- 戻り値: [dict形式]
- 'status': done/failed/timeout
- 'solution': 答え
- 引数: params
-
stop
メソッド-
solve
メソッドが実行中場合,強制的に実行を中止するコマンド -
solve
メソッドを中止させる方法-
solve
メソッド内でsubprocess
を使って外部コマンドを実行している場合,terminate
を使ってSIGTERMシグナルを実行中のプロセスに送信する. -
solve
メソッド内でループ処理を使って結果取得をポーリングしている場合,ループ処理内でstop_flag
変数を監視するようにする.stop
メソッドからstop_flag
を書き換えることで,外部から処理を停止できる.
-
-
- 実装上のお約束
- ファイルに書き出しても良いけれど,[target folder name]フォルダ内に書き出すこと.
-
stop
メソッドを実装し,このメソッドが呼び出されたら必ず処理を停止させること.