18
www.aimms.com Solving MINLP problems with AIMMS Pittsburgh June 4, 2014 Marcel Hunting AIMMS Software Developer

Solving MINLP problems with AIMMS

  • Upload
    leyna

  • View
    39

  • Download
    7

Embed Size (px)

DESCRIPTION

Solving MINLP problems with AIMMS. Pittsburgh June 4, 2014 Marcel Hunting AIMMS Software Developer. Overview. Introducing AIMMS Generated Math Program (GMP) Outer Approximation AIMMS Presolver Implement Branch-and-Bound. AIMMS Modeling Structure. - PowerPoint PPT Presentation

Citation preview

Page 1: Solving MINLP problems with AIMMS

www.aimms.com

Solving MINLP problems with AIMMS

PittsburghJune 4, 2014

Marcel Hunting AIMMS Software Developer

Page 2: Solving MINLP problems with AIMMS

www.aimms.com

Overview

• Introducing AIMMS

• Generated Math Program (GMP)

• Outer Approximation

• AIMMS Presolver

• Implement Branch-and-Bound

Page 3: Solving MINLP problems with AIMMS

www.aimms.com

AIMMS Modeling Structure• AIMMS, integrated &

interactive modeling system– Modeling language, integrated

GUI, direct access to solvers,advanced deployment options,and extensive development tools

Page 4: Solving MINLP problems with AIMMS

www.aimms.com

AIMMS Modeling Structure• AIMMS, integrated &

interactive modeling system– Modeling language, integrated

GUI, direct access to solvers,advanced deployment options,and extensive development tools

Page 5: Solving MINLP problems with AIMMS

www.aimms.com

Model generation

Variables:JobSchedule(j,s)StartTime(s,m)TimeSpan

Constraints:OneJobPerSchedule(s)OneSchedulePerJob(j)MachineStartTime(s,m)ScheduleStartTime(s,m)

Columns:

c0 … c48

c49 … c118

c119

Rows:

r0 … r6

r7 … r13

r14 … r76

r77 … r136

Solve

Page 6: Solving MINLP problems with AIMMS

www.aimms.com

Generated MP

Matrix• generated columns

• generated rows

• generated matrix coefficients

• mappings from/to variables and constraints

Solution Repository

1

• solution status

• level values

• [basis information]

2

• solution status

• level values

• [basis information]

. . .

Pool of Solver Sessions

1

• solver

• option settings

2

• solver

• option settings

. . .

Symbolic MP

• symbolic variables

• symbolic constraints

Generated Math Program (GMP)

Page 7: Solving MINLP problems with AIMMS

www.aimms.com

Basic GMP

Normally: solve MathProgram;

GMP: myGMP := GMP::Instance::Generate(MathProgram); GMP::Instance::Solve(myGMP);

Modify: GMP::Column::SetUpperBound(myGMP,StartTime(s1,m1),5);

Page 8: Solving MINLP problems with AIMMS

www.aimms.com

Selection of GMP functions• GMP::Instance:: Generate, Solve, Copy, FixColumns,

CreateFeasibilityProblem, CreatePresolved

• GMP::Column:: Add, Delete, Freeze, SetLowerBound

• GMP::Row:: Add, Delete, SetRightHandSide

• GMP::Coefficient:: Set, Get, SetQuadratic, GetQuadratic

• GMP::Solution:: Copy, SendToModel, GetColumnValue

• GMP::Linearization:: Add, Delete

• GMP::SolverSession:: Execute, AsynchronousExecute

Page 9: Solving MINLP problems with AIMMS

www.aimms.com

Outer Approximation module

• Module: GMPOuterApproximation

• Call:

myGMP := GMP::Instance::Generate( myMathProgram ) ; GMPOuterApprox::DoOuterApproximation( myGMP );

• Uses AIMMS presolver by default

• Can be combined with Multi-start module

• Quesada & Grossmann (1992) version for convex MINLP• Uses lazy constraints callback• Uses nested solve

Page 10: Solving MINLP problems with AIMMS

www.aimms.com

Results AOA - COA

Problem AOA COABatchS151208M 17 6BatchS201210M 41 6CLay0205H 17 5CLay0305H 31 8FLay04H 33 2FLay05H > 3hr 172fo7_2 54 11fo9 1161 5183netmod_dol2 388 63netmod_kar1 142 5no7_ar3_1 142 265

Problem AOA COAo7 4494 629o7_ar4_1 2923 643RSyn0840M04H 7 8RSyn0840M04M 33 15SLay08H 63 5SLay09M 48 5SLay10H > 3hr 505Syn40M04H 2 2trimloss4 356 17Water0303 13 5Water0303R 22 12

Page 11: Solving MINLP problems with AIMMS

www.aimms.com

Results COA: 1 versus 4 Threads

Problem 1 thr 4 thrCLay0305H 8 3FLay05H 172 62fo7_2 11 5fo9 5183 937netmod_dol2 63 22no7_ar3_1 265 33o7 629 323

Problem 1 thr 4 thro7_ar4_1 643 432RSyn0840M04H 8 8RSyn0840M04M 15 7SLay09H 17 24SLay10H 505 191trimloss4 17 13Water0303R 12 13

Page 12: Solving MINLP problems with AIMMS

www.aimms.com

AIMMS Presolver

• Delete redundant constraints & fixed variables

• Bound Tightening - Feasibility based – Variable x: range [0,inf) -► range [10,55]– Linear & nonlinear constraints

• Improve coefficients (possibly using probing)

• Linearize quadratic constraints

Page 13: Solving MINLP problems with AIMMS

www.aimms.com

Linearize quadratic constraints

Constraint ( binary, and continuous or integer)

Linearization:

∑𝑘𝑎𝑘𝑧𝑘=𝑥∑

𝑖𝑑𝑖 𝑦 𝑖with𝐿≤∑

𝑖𝑑𝑖 𝑦 𝑖≤𝑈

Page 14: Solving MINLP problems with AIMMS

www.aimms.com

Branch-and-Bound

MINLP problem with binary variables x(i) and y(i,j).

Implement branching; choose most fractional column.

gmpBB: Generated Math Program for a node in B&B tree

Page 15: Solving MINLP problems with AIMMS

www.aimms.com

Branchingfor (i) do xLev(i) := GMP::Column::GetColumnValue( gmpBB, 1, x(i) ); xHalfGap(i) := abs( xLev(i) - 0.5 );endfor;xMostFractionalColumn := ArgMin( i, xHalfGap(i) );

for (i,j) do yLev(i,j) := GMP::Column::GetColumnValue( gmpBB, 1, y(i,j) ); yHalfGap(i,j) := abs( yLev(i,j) - 0.5 );endfor;yMostFractionalColumn := ArgMin( (i,j), yHalfGap(i,j) );

MostFractionalColumn := …

Page 16: Solving MINLP problems with AIMMS

www.aimms.com

Branching - Improved Vars := { ‘x’, ‘y’ }; ColNrs := GMP::Instance::GetColumnNumbers( gmpBB, Vars );

For example: ColNrs = {3,4,…,10,20,21,…,43} index: c

for (c) do Lev(c) := GMP::Column::GetColumnValue( gmpBB, 1, c ); HalfGap(c) := abs( Lev(c) - 0.5 );endfor;

MostFractionalColumn := ArgMin( c, HalfGap(c) );

Page 17: Solving MINLP problems with AIMMS

www.aimms.com

Branching - Improved Vars := AllIntegerVariables;ColNrs := GMP::Instance::GetColumnNumbers( gmpBB, Vars );

For example: ColNrs = {3,4,…,10,20,21,…,43} index: c

for (c) do Lev(c) := GMP::Column::GetColumnValue( gmpBB, 1, c ); HalfGap(c) := abs( Lev(c) - 0.5 );endfor;

MostFractionalColumn := ArgMin( c, HalfGap(c) );

Page 18: Solving MINLP problems with AIMMS

www.aimms.com