OPTIMIZE.VALUE OpenBI
The objective of a plan in use, such as its margin or its cost, solved again with other values for its parameters.
Group: Operations research. OpenBI’s own: DAX has no function of this name.
Syntax
OPTIMIZE.VALUE ( <name> [, <parameter>, <value>] … )
| Parameter | Type | Description |
|---|---|---|
name | Text | The plan's name: the Operations Research notebook it was saved from. |
parameter | Text optional, repeatable | The name of one of the plan's parameters. Not case-sensitive. |
value | Number optional, repeatable | The value that parameter takes in this solve. |
Returns
Number. The best value of the plan's objective with those values: the most margin, or the least cost, its limits allow.
Remarks
- It solves the plan as
OPTIMIZEdoes, with the same rules for the name and the pairs of parameters and values, and returns the objective alone: a card's number. - Without parameters it is the objective of the plan as approved. The difference between the two is what the change is worth:
OPTIMIZE.VALUE ( "Production plan", "Bergen hours", 1760 ) - OPTIMIZE.VALUE ( "Production plan" ). - Raising a limit the plan does not use up changes nothing; raising one it does use up is worth that limit's shadow price for each unit, as long as the same limits stay binding.
- Values for which no plan meets the limits make it an error, not a blank.
Compared with DAX
An OpenBI function: DAX has none like it, so a measure or query that uses it works in OpenBI only, not in Power BI or Analysis Services.
Examples
The margin now, and with 160 more hours in Bergen
The Example Brewery as it ships has no plan in use (its Production plan example becomes one only once a person approves a version), so here the query is an error. With a plan in use, the first is the approved plan's margin and the second the margin with the hours changed.
EVALUATE
ROW (
"Margin", OPTIMIZE.VALUE ( "Production plan" ),
"Bergen +10 %", OPTIMIZE.VALUE ( "Production plan", "Bergen hours", 1760 )
)
Result: an error.