FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browserNext example

Introductory examples

Description
Introductory examples from the whitepaper 'Robust Optimization with Xpress'. Topics covered by the examples:
  • Price of robustness: cost_of_robustness.mos (calculating the cost of having uncertainty in the model)
  • Working with nominal values:

    nominalvalue_0base.mos (simple robust model without nominal values);

    nominalvalue_2base.mos (simple robust model with a nominal valued uncertain);

    nominalvalue_none.mos (uncertainty as an addition to a coefficient);

    nominalvalue_rule2.mos (using uncertains with nominal value as coefficients);

    nominalvalue_shift1.mos (basic version without nominal values);

    nominalvalue_shift2.mos (defining nominal values);

    nominalvalue_shift3.mos (substituting the effect of the nominal values);

    nominalvalue_simple.mos (uncertainty as a coefficient)
  • Overlapping uncertainty:

    overlapping_cardinality.mos (cardinality constraint with overlapping uncertainty sets);

    overlapping_polyhedral.mos, overlapping_polyhedral2.mos (polyhedral uncertainty set with overlapping use in robust constraints)
  • Working with scenarios:

    scenario_simple.mos (simple robust optimization model with scenario based uncertainty);

    scenario_simple_deterministic.mos (deterministic version of the simple scenario problem)
  • Special cases:

    careful_equalities.mos (robust problem with equality constraint);

    careful_unbounded_uncertain.mos (robust problem with an unbounded uncertain)
Further explanation of this example: Whitepaper 'Robust Optimization with Xpress', Section 1 Introduction


Source Files





cost_of_robustness.mos

(!******************************************************
   Mosel Example Problems
   ======================   

   Example model for the 
   Robust Optimization with Xpress white paper

   (c) 2014 Fair Isaac Corporation
       
*******************************************************!)
model PriceRobustness
  uses "mmrobust"                    ! Load the robust library

  declarations
    x : mpvar
    u : uncertain
  end-declarations

  0 <= u
  u <= 3

  (1+u)*x <= 1

  maximize(XPRS_NOMINAL, x)
  nominal_objective := getobjval
  writeln("Objective at nominal values:", nominal_objective );

  maximize(x)
  robust_objective := getobjval
  writeln("Robust objective:", robust_objective );
  writeln("Price of robustness:", nominal_objective - robust_objective );
  writeln("Worst value of uncertain:", u.sol)

end-model

Back to examples browserNext example