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

NUOPT 8 用累積修正パッチ

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

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

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

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

単体法において基底行列の条件が悪いときに LU 分解が失敗し、Internal Error(コード 7)で終了する不具合

MIP においてタイムオーバーなどの理由で中断した際に、リークが起きる不具合

同一のモジュールで連続して MIP を解いていると、2 回目以降で暫定解が発見されにくくなる不具合

非常に特殊なケースにおいて、本来整数値となるべき値がぶれてしまう不具合

本来整数値となるべき値がぶれてしまい、丸め前の途中の値が SIMPLE に解として渡ってしまう問題を解決します。

非線形計画問題と二次計画問題を続けて解いている際に、2 回目以降の二次計画問題が(二次でない)非線形計画問題だと誤って判断して、求解不能となる場合がある不具合

非線形の目的関数と二次の目的関数を定義し、非線形(trust region)、二次(asqp)の順で解くと、asqp の適応範囲であるにも関わらず、NUOPT が非線形計画問題だと誤って判断して、

<<SIMPLE 194>> NUOPTの重大エラー: "<<NUOPT 15>> simplex/asqp misapplied to NLP."

というエラーを出力して計算できないという問題を解決します。

稀に NUOPT の最適化に入る前に、実行モジュールがスタックオーバーフローエラーを起こして停止してしまう不具合

すべて非線形な制約の場合に実行不可能性原因判定処理に入ると、impossible が出力されて止まってしまう不具合

特殊な環境下で、 %%%%% の行があるとモデル部分が無視される不具合

環境変数に system32 が入っていないなどの特殊な環境では、モデル記述中に

%%%%% #include <time.h> %%%%%

のように %%%%% の行があると、誤った実行形式が作成され、

<<NUOPT 3>> no variables in this model.

というエラーを出力することがあります。この問題を修正します。

wcsp の効率化(wcsp のときには、ヘッセ行列算出用ワークエリアを作成しない)

wcsp で解いているのに、非線形計画問題なら ヘッセ行列算出の前処理を行い、メモリが足らず、エラーとなることがあります。wcsp を解法として選択している場合には、ヘッセ行列 を作成しないことでメモリーの効率化を図ります。

内点法の途中経過を出力する(新機能)

内点法の反復毎の結果をファイル出力します。

setNuoptWatchFile("output.csv");
solve();

solve() 以前で、setNuoptWatchFile としファイルを設定すると、たとえば、以下のような CSV ファイルが生成されます。(例題プロジェクト Hock & Schttkowski No.7 の場合)


"itr.","変数1","変数2","目的関数","hock7.smp:7"
0,2.0000000000e+000,2.0000000000e+000 ,-3.9056208757e-001,2.9000000000e+001
1,1.8192935971e+000,3.7817339206e+000 ,-2.3208356478e+000,3.2876139115e+001
2,1.3813205412e+000,5.5182275631e+000 ,-4.4507460346e+000,3.8907569521e+001
...

順に、反復回数、変数1 の値、変数2 の値、目的関数の値、制約式(7 行目)の値を表しています。このテーブルの縦横は反復回数、変数の数、制約式の数に応じて変化します。

solveQP を使うと、結果のサマリー表示でアプリケーションエラーとなる不具合 (2006 年 12 月 18 日追加)

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

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