トップ > ユーザーサポート > 累積修正パッチ > NUOPT 7 用累積修正パッチ

NUOPT 7 用累積修正パッチ

注意 : 本パッチは NUOPT 7 用です。NUOPT 7 以外をお使いの方は本パッチを適用しないでください!

本ページでは NUOPT 7 で発見された不具合の修正および新機能の追加のためのパッチに関する情報を掲載しております。

累積修正パッチの詳細な情報

本パッチでは次の不具合の修正および新機能の追加がされています。

wcsp 適用時、標準出力および .sol ファイルへ出力される目的関数値が不正確な件

All_constraints_satisfied (制約をすべて満たす解が発見された) で終了した際に、標準出力( VALUE_OF_OBJECTIVE... ) と .sol に出力する目的関数値が最終状態よりも悪いものとなる不具合の修正です。計算そのものおよび SIMPLE の Objective オブジェクトの値と解の出力は正常です。

wcsp の乱数の種を与える機能の追加

モデル中、solve() の前に

    wcspRandomSeed = 任意の正の整数値;

と与えると乱数の種が与えられます。wcsp においては、単一の試行に時間をかけるよりも、乱数の種を変更して複数回の実行を行う方がよりよい解を出力できます。

求解の結果、変数に微小な値が入っている場合、丸めるという処理を追加

解において整数値となってしかるべき値が内部の数値誤差を反映し、整数値前後 1.0e-13 程度の値として出力されてしまうのを修正します。最も近い整数値との差が 1.0e-12 以下なら丸めます。.sol ファイルへもこの丸められた値が出力されます。

SIMPLE 形式データファイル(.dat)へパラメータ名のスコープ機能の追加

.dat ファイルの冒頭で、

    _objectID_ = "スコープ名";

と記述することにより、その .dat ファイル内のパラメータ(変数)名に対して指定したスコープ名が修飾されます。

モデル側では、GlobalIDSet 型の定義により、それ以降のパラメータ(変数)名へスコープ名を修飾させることができ、スコープ名+パラメータ(変数)名の組み合わせで、.dat ファイルのパラメータへアクセスすることが出来ます。

(ex.) Scope1 というスコープ名の foo という名前のパラメータ
    GlobalIDSet setIOname2("Scope1");
    Parameter foo(name="foo");

また、以下の関数も同時に追加されました。

    Expression::val::outputCSVrow("出力名");

求解後に「指定スコープ名.csv」というファイルが生成され、この中に指定出力名で値が出力されます。

(ex.) Scope2.csv というファイルへ変数 foo の値を出力
    GlobalIDSet setIOname2("Scope2");
    Variable foo(name="foo");
    foo.val.outputCSVrow("foo");

内点法(trust region)で internal error が発生する不具合

内点法(trust region)で internal error の発生を抑えます。信頼領域法での信頼領域半径の計算に問題があるのを修正しました。

日本語表示が文字化けする不具合

アルゴリズムに WCSP を選択すると NUOPT GUI 内の表示ウィンドウが一部文字化けします。この問題点を解消します。

NUOPT/Global で内点法を利用すると Constraint Violated のエラー出力される不具合

NUOPT GUI が Administrator 権限以外のユーザで利用できない不具合

インストールマニュアルの「2.9 別のユーザでも使えるようにする設定」の手順通りに設定をしても、Administrator 権限以外のユーザで利用できないという不具合の修正を行います。

Boolean の解釈に関する不具合(2005年12月13日追加)

以下の Boolean の解釈に関する不具合の修正を行います。
  1. Boolean(DiscreteVariable == Parameter) の展開で Parameter が 0 になってしまう。
  2. Boolean(Table[DiscreteVariable] == Parameter) で "Impossible" が出てしまう。
  3. 添え字付き集合の要素を用いて Boolean の中に用いると実行時エラーが発生する。

複数求解時の初期値代入に関する不具合(2005年12月13日追加)

モデルファイルで複数回 solve() を行う場合、二度目以降の solve() 前の Variable の初期値代入がスキップされてしまう不具合の修正を行います。

整数性を満たさない場合の前処理に関する不具合(2005年12月13日追加)

混合整数計画問題において、整数変数の整数条件が満たされないことが前処理で判明した場合、その情報を正しく伝えずに NUOPT が落ちてしまう不具合の修正を行います。

累積修正パッチの適用方法

本パッチの適用方法につきましてはこちらのダウンロードページをご覧ください。