"Xpress" (最適化メソッド)
詳細
は,線形,二次,二次制約付き二次,二階の,実変数および混合整数変数を持つ円錐問題のための商用最適化ソルバである.- Xpressのライセンスに関する情報は,Xpressのライセンスを取得するを参照されたい.
- Method"Xpress"は,任意の凸最適化関数で,また適切な問題についてはNMinimizeおよび関連関数で使うことができる.
- 次は,"Xpress"法の可能なオプションと対応するデフォルト値である.
-
MaxIterations Automatic 使用する最大反復回数 Tolerance Automatic 内部比較で使用する許容範囲
例題
すべて開く すべて閉じる例 (2)
スコープ (11)
適用可能な関数 (6)
NMaximizeを"Xpress"法で使い,線形制約条件に従って
を最大化する:
NMaximize[{1 - Abs[x + 2 y], {x + y == 1, x - y ≤ 2}}, {x, y}, Method -> "Xpress"]ConvexOptimizationを"Xpress"法で使い,
に従って
を最小化する:
ConvexOptimization[Norm[{x, 2 y}], {x + y == 1}, {x, y}, Method -> "Xpress"]ConvexOptimization[Norm[{x, 2 y}], {x + y == 1}, {x, y}, {"PrimalMinimumValue", "PrimalMinimizer"}, Method -> "Xpress"]ConicOptimizationを"Xpress"法で使い,
に従って
を最小化する:
ConicOptimization[x + 2 y, {x^2 + y^2 ≤ 1}, {x, y}, Method -> "Xpress"]SecondOrderConeOptimizationを使い,
に従って
を最小化する:
SecondOrderConeOptimization[x + y, {Norm[{x, y}] ≤ 1, y ≥ 0}, {x, y}, Method -> "Xpress"]c = {1, 1};
{Subscript[a, 1], Subscript[b, 1], Subscript[α, 1], Subscript[β, 1]} = {{{1, 0}, {0, 1}}, 0, 0, 1};
{Subscript[a, 2], Subscript[b, 2], Subscript[α, 2], Subscript[β, 2]} = {0, 0, {0, 1}, 0};SecondOrderConeOptimization[c, {{Subscript[a, 1], Subscript[b, 1], Subscript[α, 1], Subscript[β, 1]}, {Subscript[a, 2], Subscript[b, 2], Subscript[α, 2], Subscript[β, 2]}}, Method -> "Xpress"]QuadraticOptimizationを使い,
および
に従って
を最小化する:
QuadraticOptimization[x^2 + y^2, {x + y == 2, 0 ≤ y ≤ 2}, {x, y}, Method -> "Xpress"]{q, c} = {{{2, 0}, {0, 2}}, {0, 0}};
{a, b} = {{{0, 1}, {0, -1}}, {0, 2}};
{Subscript[a, eq], Subscript[b, eq]} = {{{1, 1}}, {-2}};QuadraticOptimization[{q, c}, {a, b}, {Subscript[a, eq], Subscript[b, eq]}, Method -> "Xpress"]LinearOptimizationを使い,
に従って
を最小化する:
LinearOptimization[x + y, {x + 2y ≥ 3, x ≥ -1}, {x, y}, Method -> "Xpress"]LinearOptimization[{1, 1}.v, {{1, 2}, {1, 0}}.v{3, -1}, v, Method -> "Xpress"]スケーラブルな問題 (5)
制約条件
に従ってTotal[x]を最小化する.ただし,
は非負の値のベクトル変数である:
n = 1000;
m = 2000;BlockRandom[constants = {a == RandomReal[1, {m, n}], b == RandomReal[1, m]}, RandomSeeding -> 123];LinearOptimization[Total[x], {constants, a.x + b1}, {
x∈Vectors[n, NonNegativeReals]}, "PrimalMinimumValue", Method -> "Xpress"]//AbsoluteTiming制約条件
に従ってTotal[x]を最小化する.ただし,
は非負の整数値ベクトルである:
n = 200;
m = 100;BlockRandom[constants = {a == RandomReal[1, {m, n}], b == RandomReal[1, m]}, RandomSeeding -> 123];LinearOptimization[Total[x], {constants, a.x + b1}, {
x∈Vectors[n, NonNegativeIntegers]}, "PrimalMinimumValue", Method -> "Xpress"]//AbsoluteTiming制約条件
に従ってTotal[x]を最小化する.ただし,
はベクトル変数である:
n = 1000;
m = 1500;BlockRandom[constants = {a == RandomReal[1, {m, n}], b == RandomReal[1, m]}, RandomSeeding -> 123];SecondOrderConeOptimization[Total[x], {constants, Norm[a.x - b] ≤ 10}, x, "PrimalMinimumValue", Method -> "Xpress"]//AbsoluteTiming1,000次元単位球体内の点の整数値座標の合計を最小化する:
n = 1000;SecondOrderConeOptimization[Total[x], Norm[x] ≤ 1, x∈Vectors[n, Integers], "PrimalMinimumValue", Method -> "Xpress"]//AbsoluteTiming半定値対称行列
について,制約条件
に従って
を最小にする:
n = 1000;
m = 500;
Q = SparseArray[{{i_, i_} -> 10, {i_, j_} /; Abs[i - j] == 10 -> -1}, {n, n}];
BlockRandom[constants = {a == RandomReal[1, {m, n}], b == RandomReal[1, m]}, RandomSeeding -> 123];QuadraticOptimization[x.Q.x, {constants, a.x + b1}, x, "PrimalMinimumValue", Method -> "Xpress"]//AbsoluteTimingテクニカルノート
関連するガイド
-
▪
- 凸最適化
関連するワークフロー
- Xpressのライセンスを取得する
関連するワークフロー
▪