Optimization Service

最佳化

線性最佳化服務,用於建立和解決線性和混合整數線性程式的模型。

類別

名稱簡短說明
LinearOptimizationConstraint儲存形式為 lowerBound ≤ Sum(a(i) x(i)) ≤ upperBound 形式線性限制的物件,其中 lowerBoundupperBound 是常數,a(i) 是常數係數,x(i) 是變數 (未知)。
LinearOptimizationEngine用來建立模型及解決線性程式模型的引擎。
LinearOptimizationService線性最佳化服務,用於建立和解決線性和混合整數線性程式的模型。
LinearOptimizationSolution線性程式的解法。
Status解決方案的狀態。
VariableType引擎建立的變數類型。

LinearOptimizationConstraint

方法

方法傳回類型簡短說明
setCoefficient(variableName, coefficient)LinearOptimizationConstraint設定限制中變數的係數。

LinearOptimizationEngine

方法

方法傳回類型簡短說明
addConstraint(lowerBound, upperBound)LinearOptimizationConstraint在模型中新增線性限制。
addConstraints(lowerBounds, upperBounds, variableNames, coefficients)LinearOptimizationEngine對模型新增批次限制。
addVariable(name, lowerBound, upperBound)LinearOptimizationEngine將新的連續變數新增至模型。
addVariable(name, lowerBound, upperBound, type)LinearOptimizationEngine將新變數新增至模型。
addVariable(name, lowerBound, upperBound, type, objectiveCoefficient)LinearOptimizationEngine將新變數新增至模型。
addVariables(names, lowerBounds, upperBounds, types, objectiveCoefficients)LinearOptimizationEngine將批次中的變數新增至模型。
setMaximization()LinearOptimizationEngine設定最佳化方向,盡量提高線性目標函式。
setMinimization()LinearOptimizationEngine設定最佳化方向,盡量減少線性目標函式。
setObjectiveCoefficient(variableName, coefficient)LinearOptimizationEngine在線性目標函式中設定變數的係數。
solve()LinearOptimizationSolution解決目前的線性程式預設期限 30 秒。
solve(seconds)LinearOptimizationSolution解決目前的線性程式問題。

LinearOptimizationService

屬性

屬性類型說明
StatusStatus解題工具狀態。
VariableTypeVariableType解題工具建立的變數類型。

方法

方法傳回類型簡短說明
createEngine()LinearOptimizationEngine建立用於解決線性程式 (可能混合整數程式) 的引擎。

LinearOptimizationSolution

方法

方法傳回類型簡短說明
getObjectiveValue()Number取得目前解決方案中目標函式的值。
getStatus()Status取得解決方案的狀態。
getVariableValue(variableName)Number從上次呼叫 LinearOptimizationEngine.solve() 所建立的解決方案中,取得變數的值。
isValid()Boolean判定解決方案是「可行」還是「最佳」。

Status

屬性

屬性類型說明
OPTIMALEnum找到最佳解決方案時的狀態。
FEASIBLEEnum找到可行 (不一定是最佳) 解決方案時顯示的狀態。
INFEASIBLEEnum無法使用目前的模型時的狀態 (沒有解決方案)。
UNBOUNDEDEnum目前模型未繫結的狀態。
ABNORMALEnum因非預期原因找不到解決方案時的狀態。
MODEL_INVALIDEnum模型無效時的狀態。
NOT_SOLVEDEnum尚未呼叫 LinearOptimizationEngine.solve() 時的狀態。

VariableType

屬性

屬性類型說明
INTEGEREnum只能接受整數值的變數類型。
CONTINUOUSEnum可採用任何實際值的變數類型。