解の質

解の質に関する情報にアクセスするための Java API のメソッドについて説明します。

CPLEX オプティマイザーは、有限精度演算を使用して解を計算します。これによる数値エラーを補正するために、許容範囲を使用して、計算後の解が実行可能性または最適性の条件にどの程度まで違反してよいかを示します。例えば、solve メソッドによって計算された解は、実際には、アクティブ・モデルで指定された境界にわずかに違反する可能性があります。

IloCplex では、解の質を分析できるようにするメソッド getQuality が用意されています。クラス IloCplex.QualityType には、いくつかの品質測定が定義されています。例えば、cplex.solve によって見つかった解の変数またはスラックの最大境界違反を照会するためには、以下のように、getQuality を呼び出します。


IloCplex.QualityType inf = cplex.getQuality(IloCplex.QualityType.MaxPrimalInfeas);

double       maxinfeas = inf.getValue();

この最大実行不可能性が発生する変数または制約は、inf.getNumVar または inf.getRange (2 つのうちのいずれかは null を返す) によって照会できます。さまざまなオプティマイザーによって生成された解では、すべての品質測定が使用できるわけではありません。詳しくは、「CPLEX Java API 解説書」を参照してください。