HydLaの使い方

Hyroseの使い方

数式処理ソフトウェアの利用方法

  • 現在のHyroseでは,求解時に数式処理ソフトウェアとしてMathematicaやREDUCEを利用する必要がある
  • これらを利用するためには,それぞれ下記の準備を行い,使うソフトをsolverオプションで指定する

Mathematica

  • バージョン7以降のインストールが必要.8が推奨
    • Mathematica8でないとエラーの発生する例題も確認されている(2011/12/21)
  • Mathematicaのパスが通っていれば使用可能
    • より具体的には,「math」とコマンドを打ってMathematicaが起動できれば,Hyroseは動作可能
      • 「math」コマンド以外で起動する場合には,「--mathlink」オプションでのlinknameの後のコマンド名をmathから該当名に変えればよい
      • GUI環境なら,起動するMathematicaの実行ファイルを毎回指定することもできる

REDUCE

  • 20101007版(それ以降の版には未対応)のインストールが必要
  • REDUCEを数式処理ソルバとして使う場合、以下の手順に従う
  1. REDUCEのインストール手順
    • windows系OS
      • sourceforgeのサイトからソースコード(reduce-windows64-20101007.zip または reduce-windows32-20101007.zip)をダウンロードして解凍する
      • (64bit版のREDUCEを実行するにはmingw-w64-gcc-4.6.3-runtime-2.0.1-shared-ada-20120322.7zのbin/ のDLLが必要)
    • linux系OS
      • sourceforgeのサイトからソースコード(reduce-algebra-20101007.tar.bz2)をダウンロードして、実行ファイルを作成する
      • ソケット通信時にsleep関数が原因のボトルネックが存在するため、パッチを当てて対処する必要がある
        1. wget http://jaist.dl.sourceforge.net/project/reduce-algebra/reduce-algebra-20101007.tar.bz2
        2. bzip2 -dc reduce-algebra-20101007.tar.bz2 | tar xvf -
        3. cd reduce-algebra-20101007/
        4. (reduce-algebra-20101007/ディレクトリに filepatch.txt をコピー)
        5. patch -d csl/cslbase/ < patch.txt
        6. ./configure --with-csl --without-gui
        7. make
      • このmakeによって/cslbuild/[各OSの名前]/csl/reduce に実行ファイルが生成される
  2. REDUCEによるHyrose実行手順
    • hydla実行ファイルと同じディレクトリの sr.sh を使って、REDUCEの起動、終了と共にHyroseを実行する
    • [REDUCE_PATH]に生成したreduceのパスを設定すること
    • windows系の場合、cygwinを使って実行する
      • 例としてREDUCEの解凍場所を「C:\reduce-i686-pc-windows-20101007\」にした場合、[REDUCE_PATH]には「/cygdrive/c/reduce-i686-pc-windows-20101007/」と書く
    • 実行例

      sh sr.sh examples/bouncing_particle.hydla -s r -t 1

    • [補足] linux版のREDUCEサーバは非同期通信に対応しているため、裏で起動しておけばsr.shなしでhyroseを実行出来る
      • サーバ起動例

        [REDUCE_PATH]/reduce -w -F- &

主要なオプション

オプションデフォルト値説明
-h [--help]※1.ヘルプを表示
--version※1.バージョンを表示
-d [--debug]デバッグ出力を行う
-c [--comprehensive]大局的デバッグ出力を行う
--area""局所的デバッグ出力を行う.
--profile※未実装.プロファイリング(性能解析)を行う
-p [--parallel]※未実装.並列実行を行う
--dump-parse-tree※1.構文木を表示
--dump-module-set-list※1.解候補モジュール集合の集合をリスト表示
--dump-module-set-list-noinit※未実装.dump-module-set-listの結果から,時刻0のみで成り立つ制約だけからなるモジュールを省いたものを表示
--dump-module-set-graph※1.解候補モジュール集合の集合を,包含関係を含めて表示.graphvizで描画可能
--dump-module-set-graph-noinit※未実装.dump-module-set-list-noinitのグラフ版
--dump-in-progressシミュレーションと並行して各フェーズを表示.全解探索時には見辛い
--fail-stopASSERT文に記述された条件が違反したら,すべての場合についてシミュレーションを中断する(全解探索時以外無意味)
-v [ --output-variables ]""値を出力する変数を指定する
空文字列なら,出現するすべての変数を出力する
指定方法は※2
-m [--method]sシミュレーションの方法.sで新数式処理,lで旧数式処理,bで数値処理を行う.s以外は現在動作保証されていない
-s [--solver]m使用するソルバー(数式処理ソフトウェア)の指定
mでMathematicaを使用,rでReduceを使用
それぞれの使用方法については,数式処理ソフトウェアの利用方法を参照
--nd全解探索モードを実行
--in※未実装.インタラクティブ実行モード
-f [--output-format]t出力フォーマットの指定.nで数値,tで数式,iで区間値,mでMathematicaプロット用の出力
--output-interval1/10※3.数値出力時,出力を行う時間の間隔
--output-precision5数値出力時,出力を行う数値の有効桁数.デフォルトでは5
--continuity3デフォルトで有効になる連続性の強さ指定.
0: 連続性無し.現状ではほとんど動かない.
1: 制約ストア中に出現した最大微分回数未満のものを連続とする.
2: IPでは3を,PPでは1を採用.
3: 制約ストアにその変数についての言及が無かったら,直前の変数の動きをそのまま引き継ぐ.(プログラム中の最大微分回数+1の値を0とする)
-t [--time] n1※3.シミュレーション終了時刻
--step n-1シミュレーションステップ数.負数は無限
-i [ --interlanguage]※未実装.中間言語の出力
-a [ --approx]-1※動作保証不可.近似モードの指定
負数なら近似無し,正数ならその精度で近似
--mathlink※4※動作保証不可.MathLinkの起動時の引数
  • ※1 出力だけを行い,シミュレーションを開始しない
  • ※2 [変数名]_[微分回数]_[変数名]_[微分回数]_…_[変数名]_[微分回数]の形式で指定.例えば,yとy'を出力したいなら, y_0_y_1と指定する
  • ※3 0.1のように小数を指定されると動作保証が行えないので,1/10のように分数表記を用いる
  • ※4 -linkmode launch -linkname 'math -mathlink'

Attach file: filepatch.txt 258 download [Information]
Last-modified: 2017-03-02 (Thu) 02:41:11 (205d)