English Japanese
  リリースノート - 2006年2月

Xpress-MP 2006A リリースノート
Xpress-MP 2005B リリースノート
Xpress-MP 2005A リリースノート


2004 以前のリリースからアップデートされる場合は、リリース 2004A 〜 2004D のリリースノートも
ご確認下さい。




リリース 2006A の新機能


Xpress-Optimizer 17.00.02
  • ソリューションファイルは自動生成されません。ソリューションファイルは、XPRSwritebinsol関数を使って手動で生成する必要があり、XPRSreadbinsol関数を使ってメモリにリロードすることができます。
  • Xpressコンソールを再作成しました。変更点および改善点は、
    • タブ補完が可能です。
    • 'help' コマンドによるヘルプを改善しました。
    • Optimizerライブラリへの動的リンクが可能となりました。
    • 入力ファイルの1行目を問題名として特定することはできません。"probname="を使用して下さい。
    • ホストオペレーティングシステムのシェルコマンド、 例えばcd、dirにアクセスすることができます。
    • TCLシェルとして実装されています(Windowsプラットフォームのtcl84.dllに新たに依存します)。
  • 並列処理でのMIPコードは、ツリー内カットを生成します。新しいSHAREMATRIXコントロールを1に設定すると、古いコードで動作させることができます。
  • 新しく追加したXPRSpostsolve関数は、プレゾルブ後の状態のMIPおよびLPを、プレゾルブ前のオリジナルの状態に戻すことができます。
  • 新しく追加したXPRSgetmipsol関数は、最後に分かったMIP解の主問題の値を取得することができます。ソリューションファイルが消去されるときに、整数解コールバックを使用する必要はありません。
  • 新しく追加したXPRSgetlpsol関数は、現在メモリ上にあるLP解の主問題および双対問題の値を取得することができます。メモリおよびソリューションファイルから読み取るために使用するXPRSgetsolは古いので、XPRSgetlpsol呼び出しに置き換えて下さい。
  • 新しく追加したXPRSloadmipsol関数は、これまでに分かっているMIP解をXpressにロードすることができます。
  • 新しく追加したXPRSinterrupt関数は、Xpressコールバック関数から呼び出し、最適化プロセスを停止させることができます。
  • 新しく追加したXPRSgetcoef関数は、単一のマトリクス係数の値を取得することができます。
  • カットマネージャは、並列処理のコードでも動作するように変更しました。そのため、カットのリストを返すXPRS関数はすべて、XPRScut構造体へのポインタのリストを返します。
  • Xpressは無限の整数を扱うことができ、整数の最大サイズに制限されることはありません。
  • 規模の大きい問題に対するバリアアルゴリズムを、一部改善しました。
  • 主問題および双対問題のアルゴリズムに対するパフォーマンスを改善し、因数分解の速度を向上させました。
  • 一部のMIP問題に対するパフォーマンスを良くし、プレゾルブを改善しました。
  • 一部の問題において、より良い解法を用いることにより、ヒューリスティックスを改善しました。フィージビリティポンプヒューリスティックも追加され、HEURSELECTを127に設定することで実行できます。
  • ダイビングヒューリスティックスにより、MIQP問題を解くことができます。
  • XPRS_IIS属性の名前がXPRS_NUMIISに変わりました。
  • 追加したXPRS_DUALIZEコントロールによって、問題をバリアアルゴリズムで解く場合に双対化することができます。
  • XPRSgetbasisおよびXPRSloadbasis関数は、変数が基底であることを示す3の状態を持ちます。
  • MIPのパフォーマンスは、弊社のベンチマークテストセットにおいて、平均で20%速度が改善されました。
  • CPKEEPALLCUTS、CPMAXCUTS、CPMAXELEMSおよびREL10STYLEコントロールを削除しました。
  • OLDNAMESコントロールは今後サポートしません。
  • OBJFIXED属性を削除しました。
  • 新しく追加したXPRSsetdefaultcontrol関数は、単一コントロールを初期値に戻すために使用することができます。
  • 新しく追加したXPRSaddsetsおよびXPRSdelsets関数は、特別な順序集合を追加したり削除したりすることができます。EXTRASETSおよびEXTRASETELEMSコントロールを、SPARESETSおよびSPARESETELEMS属性と共に新たに追加しました。
Xpress-Mosel 1.6.2

コンパイラー/ランタイムライブラリ
  • .NETインターフェース:xprmdn-helper.dllは必要がなく、代わりに新しいxprmdn-c-helper.dllが必要になります。
モジュール mmsystem 1.6.1
  • 新しい 'setenv' プロシージャ:このプロシージャを使用する環境変数セットは、'getenv' を使ってアクセスすることができ、'openpipe' または 'system' によって開始したプロセスに対して使用することができます。
  • Windows上でのIOドライバの実装を改善しました。
  • 'system' プロシージャは、開始したプログラムの出力およびエラーストリームを適切に扱います。
  • このモジュールは、setenv、getenvおよびsystem関数を含むIMCIを公開します。
モジュール mmxprs 1.4.4
  • Optimizer 17.0 をサポートします。
  • コントロールパラメータ 'xprs_iis' の名前が 'xprs_numiis' に変わりました。
  • コントロールパラメータ 'xprs_dualize' を新たに追加しました。
  • コントロールパラメータcpkeepallcuts、cpmaxcuts、cpmaxelems、objfixedおよびrel10styleを削除しました。
モジュール mmsystem 1.6.0
  • SLPvalidateプロシージャはSLP解を検証します。
  • SLPsetuserfuncaddressは、アドレスに対する16進文字の文字列を受け付けます。
  • 式の中の一般的な算術演算("+0" または "*1"など)を分類し、簡素化しています。
モジュール mmsystem 1.6.2
  • 'SQLDisconnect' が呼び出され、SQLdebugが有効になるとメッセージが表示されます。
Xpress-BCL 3.0.1

  • マトリクスジェネレーターが新しくなりました(カラムの順序はデフォルトで固定され、setcolorderを使って異なる順序に入れ替えることもできます)。
  • 新しいJavaインターフェースでは、C言語のエラーハンドリングをJavaの例外処理に置き換えました。BCL Javaは、問題を生成する前に、新しいXPRBのインスタンスを生成して明示的に初期化する必要があります。XPRBprob(String name) コンストラクタはXPRB.newProb(String name)メソッドになります。これまで 'int' を返していた一部のメソッド(主にset...)は 'void' 型になります。さらに、Xpress-Optimizerの問題に直接アクセスすることができます。既存のBCL Javaプログラムをこのバージョンで動作させるためには、以下の変更が必要になります:
      		Initialization with previous versions:
          			XPRBprob prob;
          			prob = new XPRBprob("myproblem");
    
      		Initialization now:
          			XPRB bcl;
          			XPRBprob prob;
    
          			bcl = new XPRB();
          			prob = bcl.newProb("myproblem");
    
  • Javaインターフェースに対する変更の概要:
    • XPRBlicense、XPRBerror、XPRBlicenseErrorおよびXPRBcutクラスを新たに追加しました。
    • XPRB.init()が削除され、コンストラクタXPRB()になります。
    • XPRBprob(String name)コンストラクタは、XPRB.newProb(String name)になります。
    • XPRB/XPRBprobの新しいsetOutputStreamメソッドは、出力ストリームを処理します。
    • 戻り値の型がintからvoidに変わりました: XPRB:setMsgLevel、setRealFmt、setColOrder XPRBctr:setType、setRange、setModCut、setTerm、addTerm、delTerm XPRBprob:setMsgLevel、setRealFmt、setColOrder、setObj、loadBasis、setSense、exportProb、writeDir、loadMat、solve、minim、maxim、sync、setDictionarySize XPRBsos:setDir、addElement、delElement XPRBvar:setType、setUB、setLB、setLim、fix、setDir
    • XPRBprobのgetXPRSprob、setCutMode、newCut、addCuts、resetメソッドを新たに追加しました。
    • XPRBctrのgetActメソッドを新たに追加しました。
    • XPRBlinExpのgetSol、setTerm、delTermメソッドを新たに追加しました。
    • XPRBquadExpのsetTerm、delTermメソッドを新たに追加しました。
  • Javaインターフェースの新機能の詳細:
    • 出力ストリームのリダイレクション(XPRB/XPRBprobのsetOutputStreamメソッド)については、Java/UGExpl/xbexpl3.javaの使用例を参照して下さい。
    • JavaインターフェースはOEMライセンシングも処理します(新しいXPRBlicenseクラス)。
    • BCL Javaから直接Xpress-Optimizerの問題にアクセスできます:XPRBprob.getXPRSprob()を使ってアクセスします;Optimizerの問題にアクセスする前にXpress-Optimizer JavaはXPRS.init()で初期化する必要があります。Java/UGExpl/xbcontr1.javaおよびxbcontr2.javaの使用例を参照して下さい。BCLからOptimizerのパラメータを設定したり取得したりするためのメソッドはサポートしていません。
    • BCL(Optimizerではありません)でメモリが不足すると、自動的にガーベッジコレクタが開始されます;ガーベッジコレクションが必ず必要となる多重問題の実行では、さらにOptimizerの問題をクリアするか、またはXPRBprob.reset()を使う必要があります。
    • XPRBlinExp.getSol()メソッド(Javaのみ)、linExpおよびquadExpのsetTerm/delTermメソッド(C++およびJava)を新たに追加しました。
  • Cのカット機能を文書化し、C++およびJavaに対応する機能を追加しました。カットは、XPRBcut型(C++およびJavaではXPRBcutクラス)を持ち、XPRBctrに似ていますが名前は持ちません。その代わりに整数の分類値を設定することができます。カットは、BCLの問題には記憶されず、XPRBaddcuts(XPRBprob.addCuts)が呼ばれると、直ちにOptimizerの問題に送られます。
  • 新しいXPRBgetact(C++/Java:XPRBctr.getAct())関数は、線形制約におけるアクティビティ値を取得します。
  • XPRBresetprob関数(C++/JavaではXPRBprob.resetメソッド)はソリューション情報を解放し、Optimizerの問題を削除します。
  • 新しい使用例:
    • 目標計画法:*/AdvExpl/xbgoalobj.*
    • カット関数の使用:*/AdvExpl/xbelsc.* and */UGExpl/xbcutex.*
    • JavaからXpress-Optimizerへのアクセス:Java/UGExpl/xbcontr*.java
    • Javaでの初期化、エラー処理、出力ストリームへのリダイレクション:Java/UGExpl/xbexpl3.java
Xpress-IVE 1.17.02

  • Windows XPのXPの外観および特徴を取り込みました。
  • 高度な検索が可能な、Mosel配列に対するテーブルベースのビューを用意しました。
  • Excelなどのために、CSV形式でのクリップボードへの保存またはコピーを可能としました。
  • IVEエディタは、任意の既知のファイルタイプに対し、保持したカラーシンタックスとともにHTMLのバージョンを保存することができます。
  • 新しく記憶されたエンティティリストは、既存のエンティティツリーを補完します。
  • 直前に調べたエンティティのヒストリにすばやくアクセスすることができます。
  • 編集をしたロケーションのヒストリを保持し、Moselモデル内の「ホットスポット」間の移動ができます。
  • エディタで右クリックをすると、単語のすべての候補をすばやく見つけることができます。
  • 新しいモデルはテンプレートから始めます。
  • Moselモジュールからの警告は、起動時に表示されます。
  • Optimizerを起動せずにマトリクスをロードし調査することができます。
  • Moselモジュールでの型のプロパティを表示します。
Xpress-SP 1.3.1

  • Xpress-SPはXpressMPパッケージに統合されます。
  • Xpress-SPは、不確実性を含む最適化問題を解くための確率的計画法のツールです。Xpress-SPでは、将来の変化に対するリスクを回避するため、最適化問題に不確実性を組み込んで、サプライチェーンマネジメント、エネルギー、金融、輸送などで起こる問題をモデル化し、解くために使うことができます。最適化問題に不確実性を組み込むことによって、Xpress-SPは保守的な計画の間接費を削減し、未対応の対象に対する不利益を減らし、より高いサービスレベルや利益を達成し、優れたリソース管理を可能にします。
Xpress-SLP 1.22

  • 新しいXSLPsaveas関数は、.svfおよび.svx.の名前で保存します。
  • 新しい整数の属性XSLP_DELTASは、拡大により生成されたデルタベクトルの数を保持します。
  • 新しいXSLPgetptrattribute関数は、SLP問題のポインタの一部に対するアドレス(参照)を返します。
  • 分析デリバティブを計算する新しい方法が含まれ、一般的なタイプの式に対するこれまでの方法(または数値デリバティブ)よりも、非常に速く計算することができます。
  • XSLPwriteprobは、"p"フラグによってユーザが定義できる精度を受け付けます。
  • 内部関数PARAMを使って、式の中でメモリコントロールパラメータにアクセスすることができます。
  • 新しい整数のコントロールパラメータXSLP_SAVEALLによって、SLPを繰り返すたびに、問題をマトリクス+ベーシスとして、または保存ファイルとして繰り返し保存することができます。
  • デフォルトで、二番目のSLPの繰り返しの前に、質の悪い初期評価に伴う問題を減らすため、一番目と同様に問題は再設計されます。
  • Optimizerのコントロールおよび属性は、対応するXSLPxxxxxxcontrolおよびXSLPxxxxxxattribute関数を通じて設定したりアクセスしたりすることができます。
Xpress-XAD 1.1.0

  • システムメニュー(Alt+Space)からオプションを選択して、任意のXADウィンドウのスクリーンショットをとったり、即座に印刷したりすることができます。
  • XADsavescreenshot()を使って、Moselから任意のXADオブジェクトのスクリーンショットをとることができます。
  • ドロップリスト、ツリー、スクロールバーオブジェクトが新たに追加されました。
  • 新しい関数XADid()は、オブジェクトに対して自動的にIDを生成します。
  • キャンバスでは、楕円形の円グラフ、弦および円弧を描画できます。
  • マルチリストは、カラム名をクリックして並べ替えをすることができます。コーディングの必要はありません。
  • 仮想マルチリストは、セルデータを取得するためにコールバックを使用します。大規模および/または動的リストに向いています。
  • ウィンドウにメニューを持たせることができます。XADwindowaddmenu()を参照して下さい。
  • XADchoosefile()はファイルの拡張子をサポートします。
  • キャンバスは、スムーズテキストや図形の外観に対するアンチエイリアシングをサポートします("xad_highquality")。
  • 高品質モードでは、キャンバスは任意の原画に対し、透明度のレベルをサポートします("xad_transparency")。
  • この他、細かな点を多数改善しました。



リリース 2006A の修正点


Xpress-Optimizer 17.00.02

  • javaインターフェースライブラリjavaxprs.dll(またはlibjavaxprs.so)は、対応するxprs.jarとともにのみ使用することができます。
  • javaインターフェースは、マスターのXPRSprobオブジェクトから、マルチスレッドのオプティマイザーによって生成されたスレーブのXPRSprobsに、コールバックを正しくコピーします。
  • .NETインターフェースにおいて、コールバックを設定した後、同じコールバックを他のものに設定しても機能しなくなることはありません。
Xpress-Mosel 1.6.2

コンパイラーライブラリ
  • 集合要素に対する単項制約は正しくコンパイルされます。
ランタイムライブラリ
  • AIX上でMoselは、異なるバイトオーダーのアーキテクチャによるbimファイルを読み取ることができます。
  • 大きな負の数は初期化ブロックで正しく解釈されます。
モジュールmmodbc 1.6.2
  • mmodbc関数は、入力パラメータの妥当性をチェックします。
Xpress-BCL 3.0.0

  • XPRBsetmsglevel(C++/Java:XPRB/XPRBprobのsetMsgLevelメソッド)のmsglevelに対する値の意味が新しく変わりました:
    0 これまで通り、出力なし
    1 印刷エラーのみ(Optimizerの他の出力なし)
    2 印刷エラーおよび警告(Optimizerの他の出力なし)
    3 エラーおよび警告+Optimizerログ(新たなデフォルト値)
    4 すべての出力
  • Javaに対するメモリ管理を修正しました。
  • MIPディレクティブの擬似コストに対するデフォルト値を正しくしました。
  • Javaで、XPRBの複数インスタンスが連動できるようになりました。
Xpress-IVE 1.17.02

  • デバッガのインクルードファイルに対するステップインおよびステップアウトが正しく動作します。
  • IVEは大きいアドレスを認識します。
  • MoselおよびOptimizerの停止は、すばやく効率的です。
  • 印刷時に余分なページは追加されません。
  • この他、細かい修正を行いました。
Xpress-SLP 1.22

  • XSLPgetversion、XSLPgetcoefおよびXSLPpreparseformulaにおいて、NULLは不要な引数として受け付けられます。
  • XSLPcopycontrolsおよびXSLPcopycallbacksは、共に新しい問題と古い問題の同じ箇所を特定し、エラーメッセージを生成します。
  • XSLPscalingは、線形問題を拡大せずに使用することができます。
  • XSLPconstructを通して2回目の拡大をしてもエラーにはなりません。警告メッセージが表示され実行は継続されます。
  • OLEインターフェースからユーザ関数(主にExcelのスプレッドシートおよびマクロ)へのエラーメッセージには、OLEからのエラーコードを含みます。
  • XSLP_VALIDATIONINDEX_AおよびXSLP_VALIDATIONINDEX_Rは、コントロールではなく2つの属性とみなされます。以前のバージョンとの互換性を保つため、XSLPgetdblcontrolは正しい結果を返します。
  • XSLPgetintcontrolは、メモリコントロールパラメータと共に呼び出すと、(初期値を返す代わりに)メモリ割り当ての現在の値を返します。
  • XSLPreviseは、FR型の境界を受け付けます。
  • MISLPでのメモリリークを修正しました。これまでは、最適でない整数解が見つかると、メモリの一部が間違って保持されていました。
Xpress-XAD 1.1.0

  • 間違ったパラメータ/初期化していないオブジェクトが原因で、クラッシュすることはありません。




リリース 2005B の新機能


Xpress-Mosel 1.6.1

コンパイラーライブラリ
  • ブレークポイントメーカーが、'repeat' および 'while' ループの条件文の前に挿入されています。これにより、これらのループ条件のプロファイリングが可能になります。
モジュール mmxprs 1.4.3
  • 'setcallback' は 'cutlog callback' をサポートします。
  • 問題のあったコールバック 'topcutmgr' を削除しました。
Xpress-IVE 1.16.20

  • IVE デバッガーの条件付きブレークポイントを拡張しました。
Xpress-SLP 1.21

  • XSLPcalluserfunc は、関数に必要なすべての引数が提供されていることをチェックし、不適合があればエラーを生成します。
モジュール mmxslp 1.4.1
  • SLPcalluserfunc の引数は、任意の型のインデックスセットの配列とすることができます。これまでは 1 から n までの範囲のみ使用できました。
  • タイプ"M"(多価)のユーザー関数を、SLPDATA 関数で使用することができます。


リリース 2005B の修正点


Xpress-Optimizer 16.10.02
  • 不正確なコスト削減を、主としてより良く扱うことができます。
  • 無限の半連続変数を本バージョンでは扱うことができます。
  • カットスケーリングに伴う問題を修正しました。
  • 因数分解中のリサイズに伴う問題を修正しました。
  • LP 解析が中断されると正確な MIP の状態を返します。
  • ヒューリスティックスを呼ぶかどうかを判断する際、空の列は無視します。
  • メモリで組み込まれるファイルからのローディングディレクティブについての問題を修正しました。
  • ユーザーが追加したカットに伴う問題を修正しました。
  • Linux でのソリューションパスの安定性を改善しました。
  • バリアの因数分解サイズにおける 2GB の制限を解除しました。
  • バリアを伴う QP 問題解決の安定性を改善しました。
  • バリアのゼロサイズ因数分解に伴う問題を修正しました。
  • 半連続変数のプレゾルブに伴う問題を修正しました。
  • 枝探索のバリアの再最適化に伴う問題を修正しました。
.NET インターフェース
  • MaxSlave コントロールは技術的に古いため削除しました。
Java インターフェース
  • XPRSprob にファイナル宣言はなく、特別なコンストラクタ関数を持ちます。
Xpress-Mosel 1.6.0

コンパイラーライブラリ
  • サブルーチン呼び出しのコンパイルについての問題を修正しました。
  • 'S=T' タイプの定数セット定義は、オリジナルセットの確定はしません(すなわち、定数 'S=T' に対して T は不変となります)。
ランタイムライブラリ
  • 演算子 'in' は、MAX_INT を含むレンジセットにも正しく適用されます。
  • モジュールマネジャーは、モジュールのバージョン番号がオーバーフローしているかどうかを制御します。
プロファイラ
  • プロファイラは、repeat/while ループの条件文にかかった時間を正確に計算します。
Java インターフェース
  • XPRMArrayOfBooleans および XPRMSetOfBooleans クラスが、xprm.jar で参照できなくなることはありません。
モジュール mmxprs 1.4.3
  • ファイル名を要求する関数に空文字列が渡されると、クラッシュする可能性がある点を修正しました。
  • ベーシスのセーブとロードの間に制約または変数が削除されたときの、ベーシスのマネジメントについての問題を修正しました。
  • ディレクティブ中の擬似コストに対する初期値は、コントロールパラメータ XPRS_PSEUDOCOST の値です(これまでの値は 0)。
  • コールバックからのオプティマイザーの問題を修正しようとするとエラーになります。
モジュール mmodbc 1.6.1
  • 64bit プラットフォームでのバッファサイズの計算についての潜在的な問題を修正しました。
モジュール mmjobs 1.0.1
  • 'run' の呼び出しでモデルを終了させてもクラッシュしません。
.NET インターフェース 1.0.3
  • OEM ライセンシング関数は正しく static 宣言がしてあるため、呼び出し可能です。
  • ライセンシングエラーの扱いが改善されています。
  • モデルパラメータは、IsReadable および IsWriteable プロパティに対し 'true' を返します。
  • モジュールがサポートしていない IO ドライバに対し、IoDriver モジュールプロパティにアクセスしてもクラッシュしません。
  • XPRM.IODrivers プロパティは期待通りの動作をします。
  • Mosel ソースファイルのコンパイル時に、より適切なコンパイルエラーを提供します。
  • モデルを明示的に破棄したときには、より効果的なガーベッジコレクションを行います。
Xpress-IVE 1.16.20

  • オプティマイザーダイアログは、フォントサイズに関係なく正しくレイアウトされます。
  • オプティマイザーダイアログにストラテジーを設定すると、より適切なエラー報告が得られます。
  • シンタックスエラーは常にファイルと正確に一致します。
  • インクルードファイルに関してのデバッガーの機能を用意しました。
  • すべてのエディタのプロパティが保存されます。
  • その他多数の修正および更新を行いました。
Xpress-SLP 1.21

  • Excel スプレッドシートのユーザー関数が提供する派生物は、正しい順に復元され保存されます。これまでは、これらを移行しても多価関数の場合には正しく動作しませんでした。
  • XSLPsetcbslpdestroy によるコールバックセットは、SLP 問題が破棄されると常に呼ばれます。これまでは、ユーザー関数が定義された場合のみ呼ばれていました。
  • ユーザー仕様の多価関数は、それ自体として認識されます。これまでは、システムが多価として認識した関数のみが受け付けられていました。
  • XSLPcalluserfunc が呼び出す多価関数が、正しい値を返します。これまでは、値が失われたり、メモリが破壊されたりすることがありました。
  • XSLPcalluserfunc が呼び出す関数が、すべてのあり得る引数が要求されなければ、誤った引数を受け取る場合がありました。これは修正されており、"DOUBLE,INTEGER,,,,DOUBLE" という形式の関数宣言は正しく動作します。
モジュールmmxslp 1.4.1
  • SLP ソリューション関数は、純粋な線形問題にも利用できます。これまでは、問題に SLP コンポーネントがなければゼロが返されていました。
  • Xvitems への割当てからのメモリリークを修正しました。
  • SLPloadprob 実行中の断続的なメモリ破壊を修正しました。
  • SLPcalluserfunc から呼ばれた多価関数は、正しい数の結果を返します。
  • 多次元 XV に必要なスペースの計算が正確になりました。これまでは1000以上のエントリを必要とする XV はクラッシュの原因となる場合がありました。


リリース 2005A の新機能


Xpress-Optimizer 16.01.02
  • 二重対価表示のアルゴリズムを改善しました。難しい LP 問題でも、大規模なスピードの向上をもたらす結果となりました。
  • 単純な因数分解のスピードと安定性を改善しました。
  • バリアアルゴリズムが必要とするメモリが減少しています。
  • カットの生成を改善しました。
Java インターフェース
  • StringHolder/IntHolder/DoubleHolder クラスに toString() を実装しました。
Xpress-Mosel 1.6.0

本リリースでは Mosel デバッガーインターフェースを公開します。これにより Mosel モデルステートメントを順次実行することができ、ローカルシンボルの値にアクセスすることができます。コマンドラインインタープリタは、このインターフェースに基づく適切なデバッガーを提供します。デバッガーとは別に、'display' コマンドが 'print' コマンドになりました。これは式のエバリュエーターです。例えば、次のように扱うことができます:

print round(getsol(x(1,1)))+getact(C1)

Mosel コンソール
  • 'delete' コマンドの名前が 'unload' に変わりました。
  • 'display' コマンドは 'print' になります:この新しいコマンドは(実数上の)演算式および論理式をサポートします。サポートする関数は: getparam, ceil, floor, round, abs, getsol, getsize, getrcost, getdual, getslack, getact です。配列に用いることができる関数もあります。例えば、'x' を mpvar の配列であるとすると:
    • print x : x の各変数のアドレス値を表示します。
    • print getsol(x) : x の変数のソリューション値を表示します。
    • print getrcost(x) : x の変数の減少コストを表示します。
    このコマンドの出力は、Mosel のデータファイルフォーマットと互換性があり、'>>' 演算子を使ってファイルに追加することができます(例えば、print getsol(x) >> mysol.txt )。
  • 'compile' コマンド:新しいオプション '-G' を指定すると、bim ファイルにトレース情報が含まれます。
  • 新しいコマンド 'option' は 'realfmt' および 'zerotol' オプションを変更します:これらの使用は、対応する Vima パラメータに似ています。 最初のオプションは、実数を表示するためのフォーマットとして使用します。2番目のオプションは、式の評価をするときの数値間の比較に用います。また、数値を表示するときに値が 0 とみなせるかどうかをチェックするためにも使用します。
  • 新しいコマンド 'debug' は、モデルの実行をデバッガーから開始します。このコマンドは、モデルをオプション '-G' を指定してコンパイルすることを必要とします。このモードでは、コマンドラインインタープリタは異なるコマンドセットを指定することができます:
    • bcondition bk [cond]: 特定のブレークポイントに条件を設定(または解除)します。
    • break [fctname]|[line [file]]: ブレークポイントを特定の場所に設定します。
    • breakpoints: すべてのブレークポイントを一覧表示します。
    • continue: 実行を継続します。
    • delete [bkn]: 特定のブレークポイントを削除します(0 はすべて削除)。
    • display expression: 各中断で表示される式を保存します。
    • down [nblevel]: スタックを下がります(nblevel 回)。
    • exportprob [-pms] [filename [objective]]: 最後に生成されたマトリクスを表示します。
    • info symbol: シンボル情報。
    • list [[start] nblines]: 現在のロケーションから10行表示します。
    • next [line [file]]: 次のステートメントまで(関数呼び出しはスキップ)、または指定したロケーションまで継続します。
    • option name [[=]value]: インタープリタのオプションを表示したり変更したりします。
    • print expression: 指定した式の値を表示します。
    • quit: デバッグセッションを終了します。
    • step: 次のステートメントまで(関数呼び出しを含む)継続します。
    • undisplay [disp]: 表示リストから、指定された行またはすべての行を削除します。
    • up [nblevel]: スタックを上がります(nblevel 回)。
    • where: コールスタックを表示します。
  • 新しいコマンド 'profile' は、('-G' を指定してコンパイルした)モデルの実行をプロファイルします。ソースファイルが 'm.mos' のモデルを実行した場合、実行後にこのコマンドを実行すると 'm.mos.prof' を生成します。モデルの各行の前に、その行が実行された回数、ステートメントの所要時間(オプション -p を使用した場合は全所要時間に対するパーセンテージ)、およびステートメントが最後に実行された時までの経過時間が表示されます。
  • 'run', 'exec', 'system' および 'debug' に渡すパラメータにスペースが含まれていても、引用符をつける必要はありません。
ランタイムライブラリ
  • ** 新しい .NET インターフェース
  • 新しい IO ドライバ 'null':書き込みに対する出力はなく、読み込みに対しては空のファイルとなります。
  • 新しい IO ドライバ 'tee':出力ストリームを複写します(例えば、次のファイルは log1, log2 を開き、コンソールにコピーを送ります:'tee:log1&log2&' )。
  • mem IO ドライバは名前をつけたブロックに使用し、メモリの初期量を指定することができます(例えば、 "mem:tutu/2048")。
  • 新しいセットの確定メカニズムにより、集合要素へのアクセスの効率が向上します(例えば動的配列を保存するときに使用します)。
  • ファイルがサイレントモードで開かれても、読み込みエラー(例えば 'readln' を使用しているとき)は表示されません。
  • 生成された名前(例えば exportprob または loadnames に対する名前)は、プロシージャを実行したときに使用できるローカル名を含みます(モデルは -G を指定してコンパイルしなければなりません)。グローバルシンボルを含むローカルシンボルは、先頭にキャラクタ '~' がつきます。
  • デバッガー API の新しい関数は、dbg_runmod, dbg_getnblndx, dbg_getlocation, dbg_findproclndx, dbg_setstacklev, dbg_clearbrkp です。
  • 'getdsoparam' は、ライブラリポインタが NULL であれば(この場合、これまでは失敗していました)、ViMa パラメータの値('realfmt' など)を返します。
  • 'getnextdsoparam' ライブラリポインタが NULL であれば(この場合、これまでは失敗していました)、ViMa パラメータ('realfmt' など)を返します。
  • 'findident' は、デバッガーから使用するとローカルシンボルを返します。
  • 実行中、モジュールの実行コンテキストをデュプリケートしないように ViMa を修正しました。
コンパイラーライブラリ
  • ** 新しい .NET インターフェース
  • 新しいオプション '-G' を指定すると、bim ファイルにトレース情報が含まれます。
  • プリプロセッサディレクティブ "#[line] n filename" はパーサーがサポートします。この機能のおかげで、C プリプロセッサによって前処理をしたモデル、例えば m4 を、エラーメッセージ内のソースのロケーションを失うことなく、Mosel コンパイラに直接渡すことができます。
  • デバッグのための新しいプロシージャ 'assert(cond)' :条件 'cond' が false なら、エラーメッセージとともに実行は終了します。コンパイラオプション 'keepassert' を使用しなければ、デバッグオプション( -g または -G )が使用されていない場合、これらのステートメントは自動的に削除されます。
  • コンパイル時に評価され、'getparam' を使ってアクセスすることができる新しいパーサーパラメータは、parser_line(パースした行)、parser_file(パースしたファイル名)、parser_date(現在日付)、parser_time(現在時刻)、parser_version(Mosel バージョン)です。
  • 基本的な Boolean 式を簡略化しました(例えば、't=true' => 't')。
  • 整数定数演算の結果がオーバーフローした場合、実数に変換します。
Java インターフェース
  • デバッガーAPIを追加しました。
  • 問題のあった XPRM.license(int,string) の代わりに XPRM.license(string) を使用します。
実施例
  • 新しい実施例 mmcover.java および mmcover.c は、デバッガーインターフェースを使用して、基本的なソースカバレッジテストツールを実装しています。
ネイティブインターフェース
  • 新しいサービス 'on exit' は、モデルの実行が終了したときに呼ばれます。
モジュール mmetc 1.4.2
  • 疎配列の出力におけるパフォーマンスを改善しました。
モジュール mmjobs バージョン 1.0.0(新モジュール)

このモジュールは、1つのモデルから複数のモデルをロードして、それらを同時に実行できる Model および Event の型を定義します。同期化メカニズムは、提供されたイベントスキーム、およびメモリを通してデータを転送する特別な IO ドライバを使って実装することができます。

モジュール mmodbc 1.6.0
  • Windows 64 をサポートします。
  • Posix システム下で、iODBC または unixODBC のどちらかを使用することができます:ドライバマネージャは実行時にロードされます。
  • 疎配列の出力におけるパフォーマンスを改善しました。
モジュール mmsystem 1.6.0
  • 新しい IO ドライバ 'pipe' は、外部プログラムの出力/入力をストリームとして使用します。
  • 新しいプロシージャ 'openpipe' は、入力および出力ストリームを外部プログラムに接続します。
  • 'gettime' は、モジュールの初期化から(実行の開始から)の経過時間を返します。
  • Posix システム下では、'gettime' は(CPU 時間に使われた)経過時間を返します。
モジュール mmxprs 1.4.2
  • パラメータ XPRS_MAXSLAVES の名前が XPRS_MIPTHREADS に変わりました。
  • 追加したコントロールパラメータは、XPRS_HEURDIVESTRATEGY, XPRS_HEURSELECT です。
  • maxiis のデュプリケート定義を削除しました。
  • 'initglobal' は、最初の LP の前(これまでは global の前)に呼び出されます。


Xpress-IVE 1.16.0
  • Mosel デバッガーおよびプロファイラは全面的なロギング機能を持ちます。
  • 並列処理での MIP をサポートします。
  • ディプロイメントウィザードは、C, Java, Visual Basic に加えて、VB.NET および C# でも動作します。
  • カラムビューの変数名をクリックすると、対応する列が表示されます。
  • IVE エディタからのカラー印刷をサポートします。


Xpress-SLP 1.20

  • XSLPgetversion は、問題を生成しなくてもメジャーおよびマイナーバージョン番号を返します。
  • 新しい収束判定(「拡張収束連続許容」)は、拡張した基準での収束後、改善が認められなければ最適化を終了します。
  • 新しいメモリコントロール変数を使って、直接メモリ領域の大きさを知ることができます。
  • 新しい関数 XSLPuprintmemory は、メモリサイズおよび対応するコントロール変数を知らせます。
  • XSLP_CASCADE に対する新しいビット設定は、二次対象物の一部である SLP 変数の値をリセットします。
  • 新しいオプションは、可能なかぎり数値デリバティブの代わりに分析デリバティブを使用します。
  • 最初のステップ境界を無限にすることが可能になり(1.0E20)、ステップ境界がデルタに当てられるのを防ぎます。
  • "mps" は、拡張 MPS フォーマットマトリクスファイルに対するデフォルトの拡張子とみなされます。
Mosel モジュール mmxslp 1.3.9
  • 問題がまだロードされていなくても、settype プロシージャは genctrs と、gettype は genctrs と共に実行されます。
  • gexp([array of] xvitem) は、XV を直接式に含むことができます。
  • 新しいメモリコントロール変数を使って、直接メモリ領域の大きさを知ることができます。
  • 単一および多次元の XV は同様に記述します(これまで、単一の XV は名前で、多次元の XV は配列の最初の xvitem を使って表していましたが、現状ではすべて最初の xvitem を使って表すことができます)。


Xpress アプリケーションディベロッパー 1.0.0
  • Xpress アプリケーションディベロッパー(XAD)は、Xpress-Mosel モデリングおよびプログラミング言語を新たに拡張したものです。Xpress アプリケーションディベロッパーは、標準ユーザーインターフェースを作成するための一連の関数およびプロシージャを備えた Mosel の機能を拡張しています。このため Mosel は、問題の数学表現からユーザーインターフェースの開発まで、完全な最適化アプリケーション開発のためのモデリングおよびプログラミング言語として使用することができます。



リリース 2005A の修正点


Xpress-Optimizer 16.01.02
  • MIP の並列処理中にコールバックから XPRSgetsol を呼び出してもスレッドセーフになります。
  • MIP のプレゾルブに伴う問題を修正しました。
  • 基本部分のプレゾルブに伴う問題を修正しました
Java インターフェース
  • エラー条件がなければクラッシュしません。
  • MIP スレッドコールバックの追加/破棄の信頼性を高めました。
  • 最新のオプティマイザーのリリースに対し、XPRSconstants を更新しました。


Xpress-Mosel 1.6.0


ランタイムライブラリ
  • ロードライバは、ラベルの最初のキャラクタがアルファベットのシンボルでなければ削除します。
  • 'T:=[true,false,...]' という形式の割当てが、一般的なエラーを引き起こすことはありません。
  • セットの扱いについての問題を修正しました(64bit のみ)。
  • 'mem:' で取得したメモリブロックで 'fdelete' を使用しても、ドライバはメモリを破壊しません。
コンパイラーライブラリ
  • ステートメント 'write("")' は無視されます(無効なコードは生成しません)。
  • 合計での定数状態の扱いについての問題を修正しました。
  • 関数パラメータとして使用するタプルを正しく扱います。
Java インターフェース
  • Java の OEM ライセンスの扱いについての問題を修正しました。
VB インターフェース
  • OEM ライセンスのパス名から後続のスペースを削除します(固定長文字列の使用を容易にします)。
モジュール mmquad 1.2.2
  • qexp クローナーについての問題を修正しました。
モジュール mmjava 1.0.1
  • 'jraw' は、ラベルの最初のキャラクタを削除しません。


Xpress-IVE 1.16.0
  • マトリクス表示に関係するクラッシュを修正しました。
  • カット生成中のものを含むヒューリスティックソリューションが、MIP のサーチグラフに表示されます。
  • BB ツリーで特別な順序集合が指定されます。
  • 列のビューに目的関数が表示されます。
  • ツールチップが、数秒ではなく2分間表示されます。


Xpress-SLP 1.20

  • 他の目的関数の許容テストとの一貫性を保つため、XSLP_OBJTOL_A および XSLP_OBJTOL_R の名前が XSLP_XTOL_A および XSLP_XTOL_R に変わりました。もとの名前でも当面は動作します。
  • ルートノードが先の最適化を繰り返さないように、MISLP に対する初期設定を変更しました。
  • XSLP_ITOL テストにおける正および負の構成要素を、要素のみの兆候よりも、寄与(要素×カラムの動き)の兆候に基づいて再定義しました。
  • XSLP_STOL テストは、制約の限界値が XSLP_TOLMV より小さいときだけ実行されます。
  • XSLPwriteprob のテキストフォーマットは、空の列、レンジおよび無限の下限を正しく扱います。二次対象物は、(Q マトリクスとしてではなく)真の形で書かれます。科学的なフォーマットを使って書かれた係数の主要な数字が削除されることはありません。
  • SLP プレゾルブを書き換えました。速度が向上し、以前のバージョンでのエラーをいくつか修正しています。
Mosel モジュール mmxslp 1.3.9
  • SLPDATA ステートメントで参照し、(未初期化または非表示)マトリクスで定義されていない genctr は無視されます。
  • getname(genctr) は正しい結果を返します(これまでは、隣接する名前を返していました)。
  • 式の中の余分なゼロを削除します。
  • 二次対象物の定数表現に正しくアクセスします。
  • マトリクスの第1列は、強制的な制約または決定列として定義することができます。
  • gexp の名前がつく関数(例えば F(gexp1))が、gexp をオーバーライトするエラーを修正しました。
  • 多次元 XV を含むマトリクスを生成する際のメモリリークを修正しました。



[ホーム] [お問い合わせ] [お客様エリア] [検索] [サイトマップ] [リンク] [プリント用]
  © 2005 Dash Optimization
[ホーム]
[お客様エリア]
関連トピック
ダウンロードリリース 2005B
2004A 〜 2004D のリリースノート