Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
A
adc2019-system
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • adc2019
  • adc2019-system
  • Wiki
  • adding solver

adding solver

Last edited by Kento HASEGAWA Jul 28, 2019
Page history

ソルバの追加方法

ここではソルバの追加方法を説明します.

1. ソルバの実装

ソルバを実装する.

Gitリポジトリとして実装することを強く推奨. (以下,Gitリポジトリとして実装するものとして手順を説明)

2. Submoduleとして追加

以下の手順でソルバを追加する.

cd solvers
git submodule add [your git repository] [target folder name]

これで,solvers/[target folder name]にソルバが追加される.

3. Pythonスクリプトの追加

  1. solvers/[target folder name]/以下に適当なpythonスクリプトを配置.
  2. solveメソッドとstopメソッドを実装.
  • solveメソッド
    • 引数: params
      • params['problem']: 問題の文字列
      • params['timeout']: 問題を解くときのタイムアウト時間[s]
    • 戻り値: [dict形式]
      • 'status': done/failed/timeout
      • 'solution': 答え
  • stopメソッド
    • solveメソッドが実行中場合,強制的に実行を中止するコマンド
    • solveメソッドを中止させる方法
      • solveメソッド内でsubprocessを使って外部コマンドを実行している場合,terminateを使ってSIGTERMシグナルを実行中のプロセスに送信する.
      • solveメソッド内でループ処理を使って結果取得をポーリングしている場合,ループ処理内でstop_flag変数を監視するようにする.stopメソッドからstop_flagを書き換えることで,外部から処理を停止できる.
  • 実装上のお約束
    • ファイルに書き出しても良いけれど,[target folder name]フォルダ内に書き出すこと.
    • stopメソッドを実装し,このメソッドが呼び出されたら必ず処理を停止させること.
Clone repository
  • adding solver
  • Home
  • pynq setup
  • raspi accesspoint
  • runnnig on localhost
  • solver setup
  • ultra96 debian setup
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.