ノート
訪問者数 2041      最終更新 2007-12-16 (日) 12:01:02

EPMRを読んでみる(2)

⇒ EPMRを読んでみる(1):ノート/EPMRを見る1

起動時のコマンドラインパラメタ(引数)を手がかりにして読む

まず、-n を手がかりにして考える。

-n integer The number of independent optimization attempts
   The default value is 10, which is intended for routine cases. For difficult
   cases, values up to 100 are worth trying. The program will stop before the
   completion of the number of runs specified here if a solution is obtained
   that has a correlation coefficient that exceeds a specified threshold (flag t,

below).

この-nで決められるパラメタは、main.cppの82-84行目で

               case 'n':
                   epmr.SetOption( "attempts", optarg );
                   break;

であるから、attemptsを設定している。確かにデフォルト値は Epmr.cppの97行目で

    defaultOptions[ "attempts" ] = "10"; // maximum runs to attempt

としている。更に、Epmr.cppの407行目(Initializeの中)で

    nAttempts = GetIntegerOptionValue( "attempts" );

として、変数nAttemptsに設定されている。

但し、Epmr.cppのReconcileOptions() の702-705行目で

   // change attempts to one if no global optimizer
   if ( options[ "optimizer.global" ] == "none" ) {
       if ( options[ "attempts" ] == defaultOptions[ "attempts" ] )
           SetOption( "attempts", "1" );

としている。つまり、もしoptimizer.globalがnoneで、attemptsがデフォルト値(10)であれば、attemptsを1に修正してしまう(1トライしかしない)。

では、nAttemptsはどう参照されているか?


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-16 (日) 12:01:02 (3625d)