FICO
FICO Xpress Optimization Examples Repository
FICO Optimization Community FICO Xpress Optimization Home
Back to examples browserPrevious exampleNext example

Apply an integer fixing heuristic to a MIP problem

Description

We take the power generation problem stored in hpw15.mps which seeks to optimise the operating pattern of a group of electricity generators. We solve this MIP with a very loose integer tolerance and then fix all binary and integer variables to their rounded integer values, changing both their lower and upper bounds. We then solve the resulting LP.

The results are displayed on screen and the problem statistics stored in a logfile.


roundint_java.zip[download all files]

Source Files
By clicking on a file name, a preview is opened at the bottom of this page.
RoundInt.java[download]

Data Files





hpw15.mps

NAME          HPW15   
ROWS
 N  cost    
 G  dmd___01
 G  dmd___02
 G  dmd___03
 G  dmd___04
 G  dmd___05
 G  nosu__01
 G  nosu__02
 G  nosu__03
 G  nosu__04
 G  nosu__05
 G  cont0102
 G  cont0103
 G  cont0104
 G  cont0105
 G  cont0202
 G  cont0203
 G  cont0204
 G  cont0205
 G  cont0302
 G  cont0303
 G  cont0304
 G  cont0305
 G  cont1_01
 G  cont1_02
 G  cont1_03
 G  lx__0101
 G  lx__0102
 G  lx__0103
 G  lx__0104
 G  lx__0105
 G  lx__0201
 G  lx__0202
 G  lx__0203
 G  lx__0204
 G  lx__0205
 G  lx__0301
 G  lx__0302
 G  lx__0303
 G  lx__0304
 G  lx__0305
 L  ux__0101
 L  ux__0102
 L  ux__0103
 L  ux__0104
 L  ux__0105
 L  ux__0201
 L  ux__0202
 L  ux__0203
 L  ux__0204
 L  ux__0205
 L  ux__0301
 L  ux__0302
 L  ux__0303
 L  ux__0304
 L  ux__0305
COLUMNS
    n___0101  cost         -4.200000   nosu__01      2.000000
    n___0101  cont0102      1.000000   cont1_01     -1.000000
    n___0101  lx__0101      -.850000   ux__0101     -2.000000
    n___0201  cost          5.849999   nosu__01      1.750000
    n___0201  cont0202      1.000000   cont1_02     -1.000000
    n___0201  lx__0201     -1.250000   ux__0201     -1.750000
    n___0301  cost         -9.000000   nosu__01      4.000000
    n___0301  cont0302      1.000000   cont1_03     -1.000000
    n___0301  lx__0301     -1.500000   ux__0301     -4.000000
    n___0102  cost         -2.100000   nosu__02      2.000000
    n___0102  cont0102     -1.000000   cont0103      1.000000
    n___0102  lx__0102      -.850000   ux__0102     -2.000000
    n___0202  cost          2.925000   nosu__02      1.750000
    n___0202  cont0202     -1.000000   cont0203      1.000000
    n___0202  lx__0202     -1.250000   ux__0202     -1.750000
    n___0302  cost         -4.500000   nosu__02      4.000000
    n___0302  cont0302     -1.000000   cont0303      1.000000
    n___0302  lx__0302     -1.500000   ux__0302     -4.000000
    n___0103  cost         -4.200000   nosu__03      2.000000
    n___0103  cont0103     -1.000000   cont0104      1.000000
    n___0103  lx__0103      -.850000   ux__0103     -2.000000
    n___0203  cost          5.849999   nosu__03      1.750000
    n___0203  cont0203     -1.000000   cont0204      1.000000
    n___0203  lx__0203     -1.250000   ux__0203     -1.750000
    n___0303  cost         -9.000000   nosu__03      4.000000
    n___0303  cont0303     -1.000000   cont0304      1.000000
    n___0303  lx__0303     -1.500000   ux__0303     -4.000000
    n___0104  cost         -2.100000   nosu__04      2.000000
    n___0104  cont0104     -1.000000   cont0105      1.000000
    n___0104  lx__0104      -.850000   ux__0104     -2.000000
    n___0204  cost          2.925000   nosu__04      1.750000
    n___0204  cont0204     -1.000000   cont0205      1.000000
    n___0204  lx__0204     -1.250000   ux__0204     -1.750000
    n___0304  cost         -4.500000   nosu__04      4.000000
    n___0304  cont0304     -1.000000   cont0305      1.000000
    n___0304  lx__0304     -1.500000   ux__0304     -4.000000
    n___0105  cost         -4.200000   nosu__05      2.000000
    n___0105  cont0105     -1.000000   cont1_01      1.000000
    n___0105  lx__0105      -.850000   ux__0105     -2.000000
    n___0205  cost          5.849999   nosu__05      1.750000
    n___0205  cont0205     -1.000000   cont1_02      1.000000
    n___0205  lx__0205     -1.250000   ux__0205     -1.750000
    n___0305  cost         -9.000000   nosu__05      4.000000
    n___0305  cont0305     -1.000000   cont1_03      1.000000
    n___0305  lx__0305     -1.500000   ux__0305     -4.000000
    s___0101  cost          2.000000   cont1_01      1.000000
    s___0201  cost          1.000000   cont1_02      1.000000
    s___0301  cost           .500000   cont1_03      1.000000
    s___0102  cost          2.000000   cont0102      1.000000
    s___0202  cost          1.000000   cont0202      1.000000
    s___0302  cost           .500000   cont0302      1.000000
    s___0103  cost          2.000000   cont0103      1.000000
    s___0203  cost          1.000000   cont0203      1.000000
    s___0303  cost           .500000   cont0303      1.000000
    s___0104  cost          2.000000   cont0104      1.000000
    s___0204  cost          1.000000   cont0204      1.000000
    s___0304  cost           .500000   cont0304      1.000000
    s___0105  cost          2.000000   cont0105      1.000000
    s___0205  cost          1.000000   cont0205      1.000000
    s___0305  cost           .500000   cont0305      1.000000
    x___0101  cost         12.000000   dmd___01      1.000000
    x___0101  lx__0101      1.000000   ux__0101      1.000000
    x___0201  cost          7.800000   dmd___01      1.000000
    x___0201  lx__0201      1.000000   ux__0201      1.000000
    x___0301  cost         18.000000   dmd___01      1.000000
    x___0301  lx__0301      1.000000   ux__0301      1.000000
    x___0102  cost          6.000000   dmd___02      1.000000
    x___0102  lx__0102      1.000000   ux__0102      1.000000
    x___0202  cost          3.900000   dmd___02      1.000000
    x___0202  lx__0202      1.000000   ux__0202      1.000000
    x___0302  cost          9.000000   dmd___02      1.000000
    x___0302  lx__0302      1.000000   ux__0302      1.000000
    x___0103  cost         12.000000   dmd___03      1.000000
    x___0103  lx__0103      1.000000   ux__0103      1.000000
    x___0203  cost          7.800000   dmd___03      1.000000
    x___0203  lx__0203      1.000000   ux__0203      1.000000
    x___0303  cost         18.000000   dmd___03      1.000000
    x___0303  lx__0303      1.000000   ux__0303      1.000000
    x___0104  cost          6.000000   dmd___04      1.000000
    x___0104  lx__0104      1.000000   ux__0104      1.000000
    x___0204  cost          3.900000   dmd___04      1.000000
    x___0204  lx__0204      1.000000   ux__0204      1.000000
    x___0304  cost          9.000000   dmd___04      1.000000
    x___0304  lx__0304      1.000000   ux__0304      1.000000
    x___0105  cost         12.000000   dmd___05      1.000000
    x___0105  lx__0105      1.000000   ux__0105      1.000000
    x___0205  cost          7.800000   dmd___05      1.000000
    x___0205  lx__0205      1.000000   ux__0205      1.000000
    x___0305  cost         18.000000   dmd___05      1.000000
    x___0305  lx__0305      1.000000   ux__0305      1.000000
RHS
    RHS00001  dmd___01     15.000000   dmd___02     30.000000
    RHS00001  dmd___03     25.000000   dmd___04     40.000000
    RHS00001  dmd___05     27.000000   nosu__01     17.250000
    RHS00001  nosu__02     34.500000   nosu__03     28.750000
    RHS00001  nosu__04     46.000000   nosu__05     31.049999
BOUNDS
 UI BND0001   n___0101     12.000000
 UI BND0001   n___0201     10.000000
 UI BND0001   n___0301      5.000000
 UI BND0001   n___0102     12.000000
 UI BND0001   n___0202     10.000000
 UI BND0001   n___0302      5.000000
 UI BND0001   n___0103     12.000000
 UI BND0001   n___0203     10.000000
 UI BND0001   n___0303      5.000000
 UI BND0001   n___0104     12.000000
 UI BND0001   n___0204     10.000000
 UI BND0001   n___0304      5.000000
 UI BND0001   n___0105     12.000000
 UI BND0001   n___0205     10.000000
 UI BND0001   n___0305      5.000000
 UI BND0001   s___0101     12.000000
 UI BND0001   s___0201     10.000000
 UI BND0001   s___0301      5.000000
 UI BND0001   s___0102     12.000000
 UI BND0001   s___0202     10.000000
 UI BND0001   s___0302      5.000000
 UI BND0001   s___0103     12.000000
 UI BND0001   s___0203     10.000000
 UI BND0001   s___0303      5.000000
 UI BND0001   s___0104     12.000000
 UI BND0001   s___0204     10.000000
 UI BND0001   s___0304      5.000000
 UI BND0001   s___0105     12.000000
 UI BND0001   s___0205     10.000000
 UI BND0001   s___0305      5.000000
ENDATA

Back to examples browserPrevious exampleNext example