Ubiquity Generator Framework: Current Status via a SCIP Application - - PowerPoint PPT Presentation

ubiquity generator framework
SMART_READER_LITE
LIVE PREVIEW

Ubiquity Generator Framework: Current Status via a SCIP Application - - PowerPoint PPT Presentation

Ubiquity Generator Framework: Current Status via a SCIP Application Example Yuji Shinano Zuse Institute Berlin 16.01.2019 1 14.01.2019 First intenational UG workshop 2019, Berlin, Germany Outline Notes about the UG design and its dynamic


slide-1
SLIDE 1

Ubiquity Generator Framework:

Current Status via a SCIP Application Example

First intenational UG workshop 2019, Berlin, Germany

Yuji Shinano Zuse Institute Berlin

16.01.2019

14.01.2019

1

slide-2
SLIDE 2

Outline

Ø Notes about the UG design and its dynamic load balancing Ø Main computational results of ParaSCIP and ParaXpress

l

Solving previously unsolvable instances of MIP Ø Some other projects with ParaSCIP

l

A new feature of SCIP is going to be parallelized

l

An application of ug[SCIP,*] libraries Ø How UG applications were developed Ø Future plan Ø Concluding remarks

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 2

slide-3
SLIDE 3

Outline

Ø Notes about the UG design and its dynamic load balancing

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 3

slide-4
SLIDE 4

Initial design of ParaSCIP

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 4

Solver Solver

LoadCoordinator Solver Solver LoadCoordinator Solver Solver MasterBalancer

statuses pool statuses pool

LoadCoordinator statuses Send a node to the LoadCoordinator

Two Layered Load Balancing

Goal: run with 10,000 cores

slide-5
SLIDE 5

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 5

slide-6
SLIDE 6

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 6

slide-7
SLIDE 7

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 7

slide-8
SLIDE 8

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 8

slide-9
SLIDE 9

Runtime behavior: timtab2 – 240 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 9

600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 1.3e+06 1.4e+06 1.5e+06 1.6e+06 10000 20000 30000 40000 50000 60000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs 1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 10000 20000 30000 40000 50000 60000 100 200 300 400 500 600 700 800 900 1000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1

slide-10
SLIDE 10

Runtime behavior: timtab2 – 4096 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 10

600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 1.3e+06 1.4e+06 1.5e+06 1.6e+06 1000 2000 3000 4000 5000 6000 7000 8000 9000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs

1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 1000 2000 3000 4000 5000 6000 7000 8000 9000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1

slide-11
SLIDE 11

Runtime behavior: timtab2 – 10000 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 11

600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 1.3e+06 1.4e+06 1.5e+06 1.6e+06 5000 10000 15000 20000 25000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs 1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 5000 10000 15000 20000 25000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1

slide-12
SLIDE 12

Ø Algorithmic improvements

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 12

slide-13
SLIDE 13

Runtime behavior: timtab2 (improved) – 4096 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 13

600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 1.3e+06 1.4e+06 1.5e+06 1.6e+06 500 1000 1500 2000 2500 3000 3500 4000 4500 5000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs

0.1 1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1 # nodes recevied/sec # nodes sent/sec

slide-14
SLIDE 14

Runtime behavior: timtab2 (improved) – 10000 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 14

600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 1.3e+06 1.4e+06 1.5e+06 1.6e+06 2000 4000 6000 8000 10000 12000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs

1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 2000 4000 6000 8000 10000 12000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1 # nodes recevied/sec # nodes sent/sec

slide-15
SLIDE 15

Runtime behavior: timtab2 (improved2) – 10000 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 15

600000 700000 800000 900000 1e+06 1.1e+06 1.2e+06 1.3e+06 1.4e+06 500 1000 1500 2000 2500 3000 3500 4000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs 0.01 0.1 1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 500 1000 1500 2000 2500 3000 3500 4000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1 # nodes recevied/sec # nodes sent/sec

slide-16
SLIDE 16

Ø Improvements of transfer methods (with racing ramp-ups)

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 16

slide-17
SLIDE 17

Runtime behavior: timtab2 (racing) – 4096 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 17

1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 500 1000 1500 2000 2500 3000 3500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1 # nodes recevied/sec # nodes sent/sec

600000 800000 1e+06 1.2e+06 1.4e+06 1.6e+06 1.8e+06 500 1000 1500 2000 2500 3000 3500

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs

slide-18
SLIDE 18

Runtime behavior: timtab2 (racing) – 10000 cores

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 18

600000 800000 1e+06 1.2e+06 1.4e+06 1.6e+06 1.8e+06 500 1000 1500 2000 2500 3000 3500 4000

Objective Function Value Computing Time (sec.) Incumbents Optimal Global LBs

0.1 1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 500 1000 1500 2000 2500 3000 3500 4000 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1 # nodes recevied/sec # nodes sent/sec

slide-19
SLIDE 19

Outline

Ø Main computational results of ParaSCIP and ParaXpress

l

Solving previously unsolvable instances of MIP

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 19

slide-20
SLIDE 20

Solving open instances from MIPLIB2003

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 20

ds, stp3d were solved by ParaSCIP Last instances solved. Four instances are still open. 6 instances have not been solved 7 Years

  • ds – 656 constraints, 67,732 binary variables
  • stp3d – 159,488 constraints, 204,880 binary variables

After applying SCIP presolving 9 times: 88,388 constraints, 123,637 binary variables

slide-21
SLIDE 21

Solving open instances from MIPLIB2003

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 21

ds, stp3d were solved by ParaSCIP Last instances solved. Four instances are still open. ds: Set partitioning problem originating from public transport service planning.

This instance was solved by a first implementation of ParaSCIP using up to 2048 cores of HLRN- II(http://www.hlrn.de). ParaSCIP, mainly developed by Yuji Shinano, is an extension of SCIP and realizes a parallelization on a distributed memory computing environment. For being able to interrupt and warmstart the computations, ParaSCIP has a checkpoint mechanism. Therefore, selected subproblems are stored as warm start information, which allows to virtually run ParaSCIP, although the HLRN-II environment imposes a time limit

  • f 48 hours per run. It took approximately 86 hours to solve this instance.
slide-22
SLIDE 22

Solving open instances from MIPLIB2003

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 22

ds, stp3d were solved by ParaSCIP Last instances solved. Four instances are still open. stp3d: 3D Steiner Tree packing problem (VLSI routing problem in a multi-layer grid graph)

This instance was solved by a first implementation of ParaSCIP using up to 2048 cores of HLRN-II(http://www.hlrn.de). ParaSCIP, mainly developed by Yuji Shinano, is an extension of SCIP and realizes a parallelization on a distributed memory computing environment. For being able to interrupt and warmstart the computations, ParaSCIP has a checkpoint

  • mechanism. Therefore, selected subproblems are stored as warm start information, which allows to virtually run

ParaSCIP, although the HLRN-II environment imposes a time limit of 48 hours per run. The problem was presolved several times with SCIP presolving techniques. After that, it took approximately 114 hours to solve this instance.

slide-23
SLIDE 23

Restarted runs vs. single run

Ø Which run was efficient from a view point of solving ds?

l

restarted runs: [STAGE 1(old)]

l

approximated comp. time: 86 [h]

l

real resource requested time: 96 [h]

l

cumulative time: 181,248 [h] Ø single run: [STAGE 2(new)]

l

  • comp. time:

76[h]

l

cumulative time: 4096 x 76 = 311,296 [h] Answer is “restarted runs”

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 23

run cores time[h] 1 512 4 2 1024 5 3 2048 10 4 2048 7 5 2048 4 6 2048 5 7 2048 4 8 2048 5 9 2048 5 10 2048 4 11 2048 4 12 2048 5 13 2048 10 14 2048 4 15 2048 4 16 2048 12 17 2048 4 Summary 96 Accumulated time 181248

HLRN II supercomputer (SGI Altix ICE 8200EX) maximum cores for a job: 4096

slide-24
SLIDE 24

FiberSCIP and its paper

Ø Preliminary results were presented in MIPLIB2010 paper (Started working in 2010) Ø Computational results had been checked two years

l

87 instances of many different setttings with five repeated runs

l

All numbers in the supplement were checked carefully Ø Submitted the paper in 2013 Ø Publish the paper in 2018

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 24

slide-25
SLIDE 25

What does scale up do for a hard instance? (dano3mip)

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 25

0.1 1 10 100 1000 10000 100000 1e+06 1e+07 1e+08 10000 20000 30000 40000 50000 60000 70000 80000 90000

# Nodes / # Active Solvers + 1 Computing Time (sec.)

0.01 1 100 10000 1e+06 1e+08 1e+10 5000 10000 15000 20000 25000 30000 35000 40000 45000

# Nodes / # Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers + 1 # nodes recevied/sec # nodes sent/sec Ramp-up

Large scale can break down problem into solvable sub-MIPs

  • n HLRN III

by using 17,088 cores starting from 33,332 branch-and-bound nodes

  • n Titan

by using 35,200 cores starting from 33,481 branch-and-bound nodes

slide-26
SLIDE 26

The biggest and the longest computation

First intenational UG workshop 2019, Berlin, Germany 26

Solving rmine10: 48 restarted runs with 6,144 to 80,000 cores

1 100 10000 1x106 1x108 1x1010 1x106 2x106 3x106 4x106 5x106 6x106 7x106 10000 20000 30000 40000 50000 60000 70000 80000 90000

Number of Nodes Number of Active Solvers + 1 Computing Time (sec.)

# nodes left # active solvers # nodes in check-point file

  • 1916
  • 1915.5
  • 1915
  • 1914.5
  • 1914
  • 1913.5
  • 1913
  • 1912.5
  • 1912

1x106 2x106 3x106 4x106 5x106 6x106 7x106

Objective Function Value Computing Time (sec.) Incumbents Global LBs

How upper and lower bounds evolved How open nodes and active solvers evolved

Titan with 80,000 cores The others: HLRN III It took about 75 days and 5,660 years of CPU core hours! UG can handle up to 80,000 MPI process

16.01.2019

slide-27
SLIDE 27

ParaXpress: Need to corporate with Xpress developers

16.01.2019 First intenational UG workshop 2019, Berlin, Germany

waiting: running: Base solver I/O , presolve

LoadCoordinator Solver 1 Solver 2 Solver 3 Solver 4 Solver n

presolved instance presolved instance presolved instance presolved instance

27

Presolve again with added bound changes

min{c00Tx00 : A00x00 ≤ b00, l00 ≤ x00 ≤ u00, for all x00

j ∈ Zn00, j ∈ I00}

<latexit sha1_base64="JMgJVJU5DukesAYgXclOJbzq7g=">AD6HichVHLbtQwFL2T8CjDY6awKWJjMSpigUZOhQTqpQN7PqatqLujBLX07p1Hko8o7ZWNixZsasQKypVFeIz2PADLPoJFcsisWHBnSQSgiqZa8W+Pveck2vbi5RMNKVnNcu+cvXa9Ykb9Zu3bt9pNCfvribhIOaiw0MVxuemwglA9HRUiuxHsXC9T0l1ry9l6P62lDEiQyDFX0QiU3f3Q5kX3JXI9SbrL1lvgyY4V1jWGZnYrGVsiWvsjn1Df1TtJ36ykabrfLeWRWfKivFolZEoQr7z+hKgx4nHmgypz5nvhvumHMXGVImVW+XMBmQ7EI8z7xJuyYoZ6N3zn9d1V7a7Zom2ZBLidOkbSgiIWweQoMtiAEDgPwQUAGnMFLiQ4NsABChFim2AQizGTWV1ACnXUDpAlkOEiuofzNu42CjTA/cgzydQc/6Lwi1FJYJp+p5/pBf1Gv9Bz+rvUy2Qeo14OcPVyrYh6jXdTy7/GqnxcNez8VX2rKEPz7NeJfYeZcjoFDzXDw+PLpZnl6bNI3pMf2D/n+gZ/YonCIY/+cmiWPoIdXwA5/rvpyszrQd2nYWn7bm5ounmIAH8BAe430/gzl4BQvQAV47txrWlHXf3rXf20f2h5xq1QrNPfgn7OM/yLsmlw=</latexit><latexit sha1_base64="JMgJVJU5DukesAYgXclOJbzq7g=">AD6HichVHLbtQwFL2T8CjDY6awKWJjMSpigUZOhQTqpQN7PqatqLujBLX07p1Hko8o7ZWNixZsasQKypVFeIz2PADLPoJFcsisWHBnSQSgiqZa8W+Pveck2vbi5RMNKVnNcu+cvXa9Ykb9Zu3bt9pNCfvribhIOaiw0MVxuemwglA9HRUiuxHsXC9T0l1ry9l6P62lDEiQyDFX0QiU3f3Q5kX3JXI9SbrL1lvgyY4V1jWGZnYrGVsiWvsjn1Df1TtJ36ykabrfLeWRWfKivFolZEoQr7z+hKgx4nHmgypz5nvhvumHMXGVImVW+XMBmQ7EI8z7xJuyYoZ6N3zn9d1V7a7Zom2ZBLidOkbSgiIWweQoMtiAEDgPwQUAGnMFLiQ4NsABChFim2AQizGTWV1ACnXUDpAlkOEiuofzNu42CjTA/cgzydQc/6Lwi1FJYJp+p5/pBf1Gv9Bz+rvUy2Qeo14OcPVyrYh6jXdTy7/GqnxcNez8VX2rKEPz7NeJfYeZcjoFDzXDw+PLpZnl6bNI3pMf2D/n+gZ/YonCIY/+cmiWPoIdXwA5/rvpyszrQd2nYWn7bm5ounmIAH8BAe430/gzl4BQvQAV47txrWlHXf3rXf20f2h5xq1QrNPfgn7OM/yLsmlw=</latexit><latexit sha1_base64="JMgJVJU5DukesAYgXclOJbzq7g=">AD6HichVHLbtQwFL2T8CjDY6awKWJjMSpigUZOhQTqpQN7PqatqLujBLX07p1Hko8o7ZWNixZsasQKypVFeIz2PADLPoJFcsisWHBnSQSgiqZa8W+Pveck2vbi5RMNKVnNcu+cvXa9Ykb9Zu3bt9pNCfvribhIOaiw0MVxuemwglA9HRUiuxHsXC9T0l1ry9l6P62lDEiQyDFX0QiU3f3Q5kX3JXI9SbrL1lvgyY4V1jWGZnYrGVsiWvsjn1Df1TtJ36ykabrfLeWRWfKivFolZEoQr7z+hKgx4nHmgypz5nvhvumHMXGVImVW+XMBmQ7EI8z7xJuyYoZ6N3zn9d1V7a7Zom2ZBLidOkbSgiIWweQoMtiAEDgPwQUAGnMFLiQ4NsABChFim2AQizGTWV1ACnXUDpAlkOEiuofzNu42CjTA/cgzydQc/6Lwi1FJYJp+p5/pBf1Gv9Bz+rvUy2Qeo14OcPVyrYh6jXdTy7/GqnxcNez8VX2rKEPz7NeJfYeZcjoFDzXDw+PLpZnl6bNI3pMf2D/n+gZ/YonCIY/+cmiWPoIdXwA5/rvpyszrQd2nYWn7bm5ounmIAH8BAe430/gzl4BQvQAV47txrWlHXf3rXf20f2h5xq1QrNPfgn7OM/yLsmlw=</latexit><latexit sha1_base64="JMgJVJU5DukesAYgXclOJbzq7g=">AD6HichVHLbtQwFL2T8CjDY6awKWJjMSpigUZOhQTqpQN7PqatqLujBLX07p1Hko8o7ZWNixZsasQKypVFeIz2PADLPoJFcsisWHBnSQSgiqZa8W+Pveck2vbi5RMNKVnNcu+cvXa9Ykb9Zu3bt9pNCfvribhIOaiw0MVxuemwglA9HRUiuxHsXC9T0l1ry9l6P62lDEiQyDFX0QiU3f3Q5kX3JXI9SbrL1lvgyY4V1jWGZnYrGVsiWvsjn1Df1TtJ36ykabrfLeWRWfKivFolZEoQr7z+hKgx4nHmgypz5nvhvumHMXGVImVW+XMBmQ7EI8z7xJuyYoZ6N3zn9d1V7a7Zom2ZBLidOkbSgiIWweQoMtiAEDgPwQUAGnMFLiQ4NsABChFim2AQizGTWV1ACnXUDpAlkOEiuofzNu42CjTA/cgzydQc/6Lwi1FJYJp+p5/pBf1Gv9Bz+rvUy2Qeo14OcPVyrYh6jXdTy7/GqnxcNez8VX2rKEPz7NeJfYeZcjoFDzXDw+PLpZnl6bNI3pMf2D/n+gZ/YonCIY/+cmiWPoIdXwA5/rvpyszrQd2nYWn7bm5ounmIAH8BAe430/gzl4BQvQAV47txrWlHXf3rXf20f2h5xq1QrNPfgn7OM/yLsmlw=</latexit>

All feasible solutions need to be converted back for the original instance All transfer data need to be converted back for the presolved instance

(l0

i, u0 i)

<latexit sha1_base64="10xjq4eOhr7+RYqPaKofHT4jWfI=">ACl3ichVHLgRBFD3ae7wG2IzMSEkMrktEmJDSMTSYJAYJt2tUNGvdPdMQmd+wA+QWJGIiH+wseAHLHyCWJLYWLjT04l4305XnTr3nlunqnTXlH5A9FCj1NbVNzQ2NSdaWtvaO5KdXSu+U/QMkTMc0/HWdM0XprRFLpCBKdZcT2iWbopVfW+2kl8tCc+Xjr0c7Ltiw9J2bLktDS1gqpAcHTI3w3zUJ/TEVjnvetIS5YIcSRV/TgwXkmnKUBSp70CNQRpxLDjJC+SxBQcGirAgYCNgbEKDz986VBc5jYQMucxklFeoIwEa4tcJbhCY3aPx1erceszetKTz9SG7yLyb/HyhQG6J4u6Znu6Ioe6e3XmHUo+Jln2e9qhVuoeOwZ+n1X5XFc4DdD9WfngNsYyLyKtm7GzGVUxhVfeng6HlpcnEgHKQzemL/p/RAN3wCu/RinGfF4gkS/ADq1+v+DlZGMypl1OxYenomfom9KEfQ3zf45jGPBaQ432PcY1b3Cm9ypQyp8xXS5WaWNONT6Fk3wGYB56k</latexit><latexit sha1_base64="10xjq4eOhr7+RYqPaKofHT4jWfI=">ACl3ichVHLgRBFD3ae7wG2IzMSEkMrktEmJDSMTSYJAYJt2tUNGvdPdMQmd+wA+QWJGIiH+wseAHLHyCWJLYWLjT04l4305XnTr3nlunqnTXlH5A9FCj1NbVNzQ2NSdaWtvaO5KdXSu+U/QMkTMc0/HWdM0XprRFLpCBKdZcT2iWbopVfW+2kl8tCc+Xjr0c7Ltiw9J2bLktDS1gqpAcHTI3w3zUJ/TEVjnvetIS5YIcSRV/TgwXkmnKUBSp70CNQRpxLDjJC+SxBQcGirAgYCNgbEKDz986VBc5jYQMucxklFeoIwEa4tcJbhCY3aPx1erceszetKTz9SG7yLyb/HyhQG6J4u6Znu6Ioe6e3XmHUo+Jln2e9qhVuoeOwZ+n1X5XFc4DdD9WfngNsYyLyKtm7GzGVUxhVfeng6HlpcnEgHKQzemL/p/RAN3wCu/RinGfF4gkS/ADq1+v+DlZGMypl1OxYenomfom9KEfQ3zf45jGPBaQ432PcY1b3Cm9ypQyp8xXS5WaWNONT6Fk3wGYB56k</latexit><latexit sha1_base64="10xjq4eOhr7+RYqPaKofHT4jWfI=">ACl3ichVHLgRBFD3ae7wG2IzMSEkMrktEmJDSMTSYJAYJt2tUNGvdPdMQmd+wA+QWJGIiH+wseAHLHyCWJLYWLjT04l4305XnTr3nlunqnTXlH5A9FCj1NbVNzQ2NSdaWtvaO5KdXSu+U/QMkTMc0/HWdM0XprRFLpCBKdZcT2iWbopVfW+2kl8tCc+Xjr0c7Ltiw9J2bLktDS1gqpAcHTI3w3zUJ/TEVjnvetIS5YIcSRV/TgwXkmnKUBSp70CNQRpxLDjJC+SxBQcGirAgYCNgbEKDz986VBc5jYQMucxklFeoIwEa4tcJbhCY3aPx1erceszetKTz9SG7yLyb/HyhQG6J4u6Znu6Ioe6e3XmHUo+Jln2e9qhVuoeOwZ+n1X5XFc4DdD9WfngNsYyLyKtm7GzGVUxhVfeng6HlpcnEgHKQzemL/p/RAN3wCu/RinGfF4gkS/ADq1+v+DlZGMypl1OxYenomfom9KEfQ3zf45jGPBaQ432PcY1b3Cm9ypQyp8xXS5WaWNONT6Fk3wGYB56k</latexit><latexit sha1_base64="10xjq4eOhr7+RYqPaKofHT4jWfI=">ACl3ichVHLgRBFD3ae7wG2IzMSEkMrktEmJDSMTSYJAYJt2tUNGvdPdMQmd+wA+QWJGIiH+wseAHLHyCWJLYWLjT04l4305XnTr3nlunqnTXlH5A9FCj1NbVNzQ2NSdaWtvaO5KdXSu+U/QMkTMc0/HWdM0XprRFLpCBKdZcT2iWbopVfW+2kl8tCc+Xjr0c7Ltiw9J2bLktDS1gqpAcHTI3w3zUJ/TEVjnvetIS5YIcSRV/TgwXkmnKUBSp70CNQRpxLDjJC+SxBQcGirAgYCNgbEKDz986VBc5jYQMucxklFeoIwEa4tcJbhCY3aPx1erceszetKTz9SG7yLyb/HyhQG6J4u6Znu6Ioe6e3XmHUo+Jln2e9qhVuoeOwZ+n1X5XFc4DdD9WfngNsYyLyKtm7GzGVUxhVfeng6HlpcnEgHKQzemL/p/RAN3wCu/RinGfF4gkS/ADq1+v+DlZGMypl1OxYenomfom9KEfQ3zf45jGPBaQ432PcY1b3Cm9ypQyp8xXS5WaWNONT6Fk3wGYB56k</latexit>

min{c0Tx0 : A0x0 ≤ b0, l0 ≤ x0 ≤ u0, for all x0

j ∈ Zn0, j ∈ I0}

<latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="bs8QlLljyYde7WbNFuyzJm+ZMk=">ACVXichVG7SgNBFD1ZX3F9JMFGsAmGiFW4a6NYCTaWeZgHxB2N6Mu2ewu5tADP5AWgsLKwUR8TNs/AGL9DZiGcHGwrubgKiod5iZM2fm3DlzR3NMw/OJBhFpYnJqeiY6K8/NywuLsfh8ybPbri6Kum3abkVTPWEalij6hm+KiuMKtaWZoqw1d4P9cke4nmFb+37XEbWemQZh4au+kxl6/EUZSiM5E+gjEK47DjNzhAzZ0tNGCgAWfsQkVHrcqFBAc5mroMecyMsJ9gVPIrG3zKcEnVGabPB7xqjpmLV4HOb1QrfMtJneXlUmk6ZFuaUgPdEfP9P5rl6YI/DS5VkbaYVTj/WXC2/qlo8+zj+VP3p2chtkKvBnt3QiZ4hT7Sd07Oh4XtfLq3Rlf0wv4vaUD3/AKr86pf50T+AjLX/le7Z+gtJFRKPkCFGsYBXrXOZN7GAPWRT5ugb6OIs8SbKUGP2TFBl/WAJfQlr6AYJh7c=</latexit><latexit sha1_base64="8ov7DBxIpnGSfT7+D72nu94Lyfc=">ADm3ichVFNb9QwEJ0fJSl0C0nJC4WVEPaOVwadVTERd6Qf3abkXdXcWutzV1nMjJrlos/4H+AQ6cQEIV4mdw4cIRUH8C4lgkLhyYza6EoFmYKPH4zXsvMzbPtMoLSs+CifDS5StXJ6/Vrk/duDldn5naytOeFbIpUp3abR7nUisjm4UqtNzOrIwTrmWLHz4a1Ft9aXOVms3iOJO7SbxvVFeJuECoMxMs0QZ5kTbOVbaOSv3PMusSqR3LImLg7zrNr3R+0KBlkiD6vwajLTkvCqyn2ixwrGW/WqrVjC0yPXTS2JtSa+2qDzjDBlSDkg5+6pbztTxUO/IXOlug3fqc/SBi2DXEyiUTILo1hN6fAYA9SENCDBCQYKDXEOzw5EQCFDbBcYhYzVdYleKihtocsiYwY0UP87uNuZ4Qa3A81It8C8aX4tKAnP0E31Lz+kH+o5+pT/HernSY9DLMa58qJVZ/rk9saP/6oSXAs4+K36Z8FdGx7FVh71mJDKYQ3/+YvzjaX1OXePvqbfsP9X9Iy+xwlM/7t4sybX0INLyD6+7gvJlsPGhFtRGsUJuEO3IV5POYFWIbHsApNEMFp8DH4HwJ58MnYXN4VRPB6M5uwR8Rtn4B7T0Kug=</latexit><latexit sha1_base64="8ov7DBxIpnGSfT7+D72nu94Lyfc=">ADm3ichVFNb9QwEJ0fJSl0C0nJC4WVEPaOVwadVTERd6Qf3abkXdXcWutzV1nMjJrlos/4H+AQ6cQEIV4mdw4cIRUH8C4lgkLhyYza6EoFmYKPH4zXsvMzbPtMoLSs+CifDS5StXJ6/Vrk/duDldn5naytOeFbIpUp3abR7nUisjm4UqtNzOrIwTrmWLHz4a1Ft9aXOVms3iOJO7SbxvVFeJuECoMxMs0QZ5kTbOVbaOSv3PMusSqR3LImLg7zrNr3R+0KBlkiD6vwajLTkvCqyn2ixwrGW/WqrVjC0yPXTS2JtSa+2qDzjDBlSDkg5+6pbztTxUO/IXOlug3fqc/SBi2DXEyiUTILo1hN6fAYA9SENCDBCQYKDXEOzw5EQCFDbBcYhYzVdYleKihtocsiYwY0UP87uNuZ4Qa3A81It8C8aX4tKAnP0E31Lz+kH+o5+pT/HernSY9DLMa58qJVZ/rk9saP/6oSXAs4+K36Z8FdGx7FVh71mJDKYQ3/+YvzjaX1OXePvqbfsP9X9Iy+xwlM/7t4sybX0INLyD6+7gvJlsPGhFtRGsUJuEO3IV5POYFWIbHsApNEMFp8DH4HwJ58MnYXN4VRPB6M5uwR8Rtn4B7T0Kug=</latexit><latexit sha1_base64="WdRjzyQtY2jqLVwtqI9pxgCDbTA=">ADpnichVE9b9RAEB3HQMLxkQs0SDQrTkEp0GlMA0p1gQYalK/LRWRzh9fZS5asP7T2nRJW/gP8AQoqkFCE+Bk0NJSA8hMQZBoKJjzWUIQH4xl7+yb95ndkWiVZohHjtT7pmz56ZnztcuXLx0ebY+d2UjQcmkO0g1rHZFH4qtYpkO1OZlpuJkX4otOyI/fujemcoTariaD07TOR26O9Gq8CPyOoN+e0eKgiboOutbyws0bu5DwxKpS5aGf7aV9u57n+UG3gsEW2VIVXk3mWjJRVbnF9ETBZKtBtRUPRXxg+7FhvtYsrzboPWVcRawYUAj7O/aqIpHfmPmw+o28l69gU0sgp1OvDJpQBnLcf0IOxADAEMIAQJEWSUa/AhpWcLPEBICNsGS5ihTBV1CTnUSDsgliSGT+g+fXdpt1WiEe1HnmhDugvml5DSgbz+Anf4gl+wHf4FX9O9LKFx6iXQ1rFWCuT3uza2s/qsKac1g7fqnz1n0Ie7Ra+Kek8KZDRFMNYPn704WVtcnbc38TV+o/5f4TG+pwmi4fgzYpcfQk1ugDv7+M+nWzcbnrY9Faw0bpXsUMXIcbsEDnfQda8ACWoQ2Bc+R8dD47X9wF95Hbdjtj6pRTaq7CH+E+QV4XQvJ</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit><latexit sha1_base64="W8ZrOn3UyByfIjqz2nlFlRnGvrQ=">ADpnichVHLbtQwFL1peJTh0SlskNhYjIq6QCOnQgJ1NcAGNqiv6VTUnSF2Pa2p40SJZ9Ri5Qf4ARasQEIV4jPYsGEJqJ+AWBaJDQvuZCIhaAZulPj63HNO7rV5olVmKT3ypvxTp8+cnT5XO3/h4qWZ+uzl9SwepEK2RazjdIOHmdTKyLZVsuNJVhxLXs8L37o3pnKNMxWbNHiRyKwp3jOorEVqEerNei0XKMCe6zrHCzqVyO2dJqiKZOxaFdjfru7U8z/e7FQySO5W4dVkpiXhVZWbRE8UTLYaVFuxiMf7rh+nJNSa5NUGvaeEKUOKATl3j/OuM1U89BszH1a3kfqDdqkRZCTSVAmDShjKa4fAoNtiEHACKQYMBiriGEDJ9NCIBCgtgWOMRSzFRl5BDbUDZElkhIju4XcHd5slanA/8swKtcC/aHxTVBKYo5/oW3pMP9B39Cv9OdHLFR6jXg5w5WOtTHoz6+u/vivKsLVwu5v1T97tCHO0WvCntPCmQ0hRjrh89eHK8ursy5G/Q1/Yb9v6JH9D1OYIbfxZtlufISangBwd/HfTJZX2gGtBks32q07pVXMQ3X4DrM43nfhY8gCVog/AOvY/eZ+LP+8/8t+Z0yd8krNFfgj/Ce/AHmdC80=</latexit>

min{cTx : Ax ≤ b, l ≤ x ≤ u, for all xj ∈ Zn, j ∈ I}

<latexit sha1_base64="zizyCePbNpR/n01lIWlRxUylmJQ=">ACyHichVFNb9QwEJ2GAmX56EIvSFwsVkUcVqsJQgL1VOgFeurXthVNu4qNtzV1nCjxLrtYuXDsH+ihJ5AQv0ZXOAHcOhPQBw4FAmQODCbREJQARPFfvM8b/xs80SrzCIejXmnxk+fOTtxrnb+wsVLk/XLV1azuJcK2RaxjtN1HmZSKyPbVlkt15NUhHXco3vzo3W1/oyzVRsVuwkZtRuG1UV4nQEtWpiyBSJnBiywVRaHeyrlvJ8wGbYfcGLNCS8SbTBSjTXpMFEY8HrhunLNSa5WzQecICZVih59w9yrecyZusZB+yIO/UG9jCIthJ4FegAVUsxPXEMBjiEFADyKQYMAS1hBCRt8G+ICQELcJjriUkCrWJeRQI2PqiRVhMTu0rhN2UbFGspHPbNCLWgXTX9KSgbT+AHf4DG+w0P8iD/+2sVPUZehjTzUiuTzuTe1eWv/1VFNFvY+aX6p2cLXbhbeFXkPSmY0SlEqe8/2z9enlmadjfwJX4i/y/wCN/SCUz/i3i1KJcOoEYP4P953SfB6q2Wjy1/8XZj9n71FBNwDa7DTbrvOzALD2AB2rTve/gM3+C7N+8l3lNvWJZ6Y5VmCn4L7/lPtGivDw=</latexit><latexit sha1_base64="zizyCePbNpR/n01lIWlRxUylmJQ=">ACyHichVFNb9QwEJ2GAmX56EIvSFwsVkUcVqsJQgL1VOgFeurXthVNu4qNtzV1nCjxLrtYuXDsH+ihJ5AQv0ZXOAHcOhPQBw4FAmQODCbREJQARPFfvM8b/xs80SrzCIejXmnxk+fOTtxrnb+wsVLk/XLV1azuJcK2RaxjtN1HmZSKyPbVlkt15NUhHXco3vzo3W1/oyzVRsVuwkZtRuG1UV4nQEtWpiyBSJnBiywVRaHeyrlvJ8wGbYfcGLNCS8SbTBSjTXpMFEY8HrhunLNSa5WzQecICZVih59w9yrecyZusZB+yIO/UG9jCIthJ4FegAVUsxPXEMBjiEFADyKQYMAS1hBCRt8G+ICQELcJjriUkCrWJeRQI2PqiRVhMTu0rhN2UbFGspHPbNCLWgXTX9KSgbT+AHf4DG+w0P8iD/+2sVPUZehjTzUiuTzuTe1eWv/1VFNFvY+aX6p2cLXbhbeFXkPSmY0SlEqe8/2z9enlmadjfwJX4i/y/wCN/SCUz/i3i1KJcOoEYP4P953SfB6q2Wjy1/8XZj9n71FBNwDa7DTbrvOzALD2AB2rTve/gM3+C7N+8l3lNvWJZ6Y5VmCn4L7/lPtGivDw=</latexit><latexit sha1_base64="zizyCePbNpR/n01lIWlRxUylmJQ=">ACyHichVFNb9QwEJ2GAmX56EIvSFwsVkUcVqsJQgL1VOgFeurXthVNu4qNtzV1nCjxLrtYuXDsH+ihJ5AQv0ZXOAHcOhPQBw4FAmQODCbREJQARPFfvM8b/xs80SrzCIejXmnxk+fOTtxrnb+wsVLk/XLV1azuJcK2RaxjtN1HmZSKyPbVlkt15NUhHXco3vzo3W1/oyzVRsVuwkZtRuG1UV4nQEtWpiyBSJnBiywVRaHeyrlvJ8wGbYfcGLNCS8SbTBSjTXpMFEY8HrhunLNSa5WzQecICZVih59w9yrecyZusZB+yIO/UG9jCIthJ4FegAVUsxPXEMBjiEFADyKQYMAS1hBCRt8G+ICQELcJjriUkCrWJeRQI2PqiRVhMTu0rhN2UbFGspHPbNCLWgXTX9KSgbT+AHf4DG+w0P8iD/+2sVPUZehjTzUiuTzuTe1eWv/1VFNFvY+aX6p2cLXbhbeFXkPSmY0SlEqe8/2z9enlmadjfwJX4i/y/wCN/SCUz/i3i1KJcOoEYP4P953SfB6q2Wjy1/8XZj9n71FBNwDa7DTbrvOzALD2AB2rTve/gM3+C7N+8l3lNvWJZ6Y5VmCn4L7/lPtGivDw=</latexit><latexit sha1_base64="zizyCePbNpR/n01lIWlRxUylmJQ=">ACyHichVFNb9QwEJ2GAmX56EIvSFwsVkUcVqsJQgL1VOgFeurXthVNu4qNtzV1nCjxLrtYuXDsH+ihJ5AQv0ZXOAHcOhPQBw4FAmQODCbREJQARPFfvM8b/xs80SrzCIejXmnxk+fOTtxrnb+wsVLk/XLV1azuJcK2RaxjtN1HmZSKyPbVlkt15NUhHXco3vzo3W1/oyzVRsVuwkZtRuG1UV4nQEtWpiyBSJnBiywVRaHeyrlvJ8wGbYfcGLNCS8SbTBSjTXpMFEY8HrhunLNSa5WzQecICZVih59w9yrecyZusZB+yIO/UG9jCIthJ4FegAVUsxPXEMBjiEFADyKQYMAS1hBCRt8G+ICQELcJjriUkCrWJeRQI2PqiRVhMTu0rhN2UbFGspHPbNCLWgXTX9KSgbT+AHf4DG+w0P8iD/+2sVPUZehjTzUiuTzuTe1eWv/1VFNFvY+aX6p2cLXbhbeFXkPSmY0SlEqe8/2z9enlmadjfwJX4i/y/wCN/SCUz/i3i1KJcOoEYP4P953SfB6q2Wjy1/8XZj9n71FBNwDa7DTbrvOzALD2AB2rTve/gM3+C7N+8l3lNvWJZ6Y5VmCn4L7/lPtGivDw=</latexit>

Original

First: restricted presolved instance Current: presolved instance

slide-28
SLIDE 28

FiberXpress: UG Solver threads with Xpress threads

First intenational UG workshop 2019, Berlin, Germany 28

Shared Memory FiberXpress process UG Solver thread Xpress thread thread thread thread UG Solver thread Xpress thread thread thread thread UG Solver thread Xpress thread thread thread thread UG Solver thread Xpress thread thread thread thread LoadCoordinator thread

Shared Memory Machine (PC) : CPU core

Xpress

UG 4 Xpress 4

Internal Parallelization Of Xpress

Berthold T., Farmer J., Heinz S., Perregaard M. (2016) Parallelization of the FICO Xpress-

  • Optimizer. In: Greuel GM., Koch T.,

Paule P., Sommese A. (eds) Mathematical Software – ICMS

  • 2016. ICMS 2016. Lecture Notes in

Computer Science, vol 9725. Springer, Cham

16.01.2019

slide-29
SLIDE 29

ParaXpress: UG Solver processes with Xpress threads

First intenational UG workshop 2019, Berlin, Germany 29

ug[Xpress,MPI] : ParaXpress

u

A powerful massively parallel MIP solver

u Can handle, hopefully efficiently, up to

80,000 (MPI processes ) x 24 (threads) = 1,920,000 (cores)

Shared Memory Shared Memory

ParaXpress

Load- Coordinator Process Xpress thread thread thread thread UG Solver process Xpress thread thread thread thread UG Solver process Xpress thread thread thread thread UG Solver process Xpress thread thread thread thread

Processing Element or Compute node

UG Solver process Xpress thread thread thread thread UG Solver process Xpress thread thread thread thread UG Solver process Xpress thread thread thread thread UG Solver process Xpress thread thread thread thread

Processing Element or Compute node

Connection network : CPU core

16.01.2019

slide-30
SLIDE 30

Computational results of FiberXpress

First intenational UG workshop 2019, Berlin, Germany 30

Computing Time (sec.) # of solved instances

Ø Xpress 8.3 and UG-0.8.4 – dev. Ø 28 core Intel Xeon CPU E5-2690 v4 CPUs at 2.6 GHz with 35MB cache and 128GB memory Ø 52 instances from Tree test set from MIPLIB2010 (6 instances were solved at root by Xpress 16) Ø Geometric mean (Time out is counted as 7200 sec.) 37: Xpress 16

Xpress 16 Price of externalization is dramatically decreased time limit 7200 sec Racing settings: 25 parameter settings + random seed

16.01.2019

slide-31
SLIDE 31

Computational results of ParaXpress

First intenational UG workshop 2019, Berlin, Germany 31

Ø Solving timtab2 from MIPLIB2003 Ø The experimental implementation Ø Xpress 7.9 and UG-0.8.2 Ø HLRN III: Cray XC30 with 24 core Intel E5-2695 v2 CPUs at 2.4GHz, 64GB Memory per computing node 6144 cores are used Ø New implementation Ø Xpress 8.3 and UG-0.8.4 – dev. Ø ISM Supercomputer System "I”: SGI ICE X with 12 cores Intel Xeon E5-2697v2 at 2.7GHz (2CPUs), 128GB memory per computing node Ø 192 cores are used

Computing Time (sec.) Gap(%) Gap(%) Computing Time (sec.)

16.01.2019

slide-32
SLIDE 32

Solving open instances from MIPLIB2010

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 32

http://miplib2010.zib.de

MIPLIB2010 was published HLRN II -> HLRN III 7,000 cores -> 43,000 cores New ParaXpress

ParaXpress started

slide-33
SLIDE 33

Solving open instances from MIPLIB2017

Ø Open instances which could not be generated any feasible solution for all solvers

ISM (Institute of Statistical Mathematics) supercomputer, which is a HPE SGI 8600 with 384 compute nodes, each node has two Intel Xeon Gold 6154 3.0GHz CPUs (18 cores×2) sharing 384GB of memory, by using ParaSCIP and ParaXpress

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 33

slide-34
SLIDE 34

ParaXpress (= ug[Xpress, MPI]) status

Ø ParaXpress can be upgraded new version of Xpress without UG code change Ø ParaXpress is ready to run on over a million CPU cores!

l

We need an application in which the optimal solution is very important in the research field

First intenational UG workshop 2019, Berlin, Germany 34 16.01.2019

slide-35
SLIDE 35

Outline

Ø Some other projects with ParaSCIP

l

A new feature of SCIP is going to be parallelized

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 35

slide-36
SLIDE 36

A new feature of SCIP (Added by Stephen J. Maher )

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 36

slide-37
SLIDE 37

A new feature of SCIP (Added by Stephen J. Maher )

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 37

slide-38
SLIDE 38

Outline

l

An application of ug[SCIP,*] libraries

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 38

slide-39
SLIDE 39

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 39

Overview

[1] K. Kimura and H. Waki: Minimization of Akaike’s information criterion in linear regression analysis via mixed integer nonlinear program. OMS, 33(3), 633‒649, 2018. [2] K. Kimura: Application of a mixed integer nonlinear programming approach to variable selection in logistic regression. JORSJ, 62(1), to appear.

Problems AIC-based variable selection in linear regression and logistic regression mixed integer nonlinear programming problems (MINLP) Algorithm proposed in [1, 2] Branch-and-bound (B&B) algorithm using SCIP and UG Developed additional plugins: Relaxation handler (to compute lower bounds efficiently) Primal heuristics (to find good solutions early) Branching rules (to reduce branch-and-bound nodes)

Developed by Keiji Kimura

slide-40
SLIDE 40

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 40

Direct Objective Optimization in Variable Selection : the goodness-of-fit (how well a model fits a given dataset) : a penalty for the number of variables

Problems

Variable Selection provides a simple statistical model finds a subset of relevant variables improves prediction performance min

β,z

f(β) + λ X

j∈J

zj s.t. zj = 0 ⇒ βj = 0 ∀j ∈ J, βj ∈ R, zj ∈ {0, 1} ∀j ∈ J. f λ P zj(λ > 0) The problems in [1, 2] are of the following form

[1] K. Kimura and H. Waki: Minimization of Akaike’s information criterion in linear regression analysis via mixed integer nonlinear program. OMS, 33(3), 633‒649, 2018. [2] K. Kimura: Application of a mixed integer nonlinear programming approach to variable selection in logistic regression. JORSJ, 62(1), to appear.

Developed by Keiji Kimura

slide-41
SLIDE 41

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 41

Numerical Experiments in [2]

[2] K. Kimura: Application of a mixed integer nonlinear programming approach to variable selection in logistic regression. JORSJ, 62(1), to appear.

Problem: AIC-based variable selection in logistic regression Comparison of Approaches: Customized B&B algorithm [2]

  • using SCIP and UG

Piecewise linear approximation approach [Sato, et al., 2016]

  • using CPLEX to solve MILP problems
  • employing existing heuristics for initial solutions

Benchmark datasets: UCI machine learning repository

(https://archive.ics.uci.edu/ml/)

slide-42
SLIDE 42

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 42

Numerical Experiments in [2]

[2] K. Kimura: Application of a mixed integer nonlinear programming approach to variable selection in logistic regression. JORSJ, 62(1), to appear.

Approach 1: Customized B&B algorithm [2] (SCIP and UG) Approach 2: Piecewise linear approximation approach (CPLEX) : the number of observations : the number of candidates for variables n p

(16 threads) Approach 1 Approach 2 Name n p AIC Time(s) AIC Time(s) bumps 2584 22 1097.1 20.0 1098.1 41.5 breast-P 194 34 147.0 25.8 147.0 112.4 biodeg 1055 42 653.3 221.5 653.3 >5000 stat-G 1000 62 958.2 >5000 958.2 >5000 madelon 2000 500 2502.1 >5000 2504.0 >5000

slide-43
SLIDE 43

Outline

Ø How UG applications were developed

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 43

slide-44
SLIDE 44

Instantiated parallel solvers by UG

Ø Single thread base solver

l

ParaSCIP: ug[SCIP, MPI], FiberSCIP: ug[SCIP, Pthreads/C++11]

Ø Multi-threaded base solver

l

ParaXpress: ug[Xpress, MPI], FiberXpress: ug[Xpress, Pthreads/C++11] Ø Concorde: TSP solver

l

ug[Concorde, MPI], ug[Concorde, Pthreds/C++11]

l

ug[Concorde/MPI, MPI]

  • Concorde/MPI has developed by Utz-Uwe Haus

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 44

The following solvers have developed by Yuji Shinano cooperated with each solver developers

slide-45
SLIDE 45

Instantiated parallel solvers by UG

Ø Multi-threaded base solver

l

ParaNUOPT: ug[NUOPT, MPI], FiberNUOPT: ug[NUOPT, Pthreads/C++11]

  • Only tested with single thread NUOPT

Ø Distributed base solver

l

ug[PIPS-SBB, MPI]

  • PIPS-SBB: a distributed memory solver for Stochastic MIP

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 45

The following solvers have developed by each base solver developers. Skelton code was distributed. Design and coding together with Yuji Shinano about one week in the beginning

slide-46
SLIDE 46

Skelton code

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 46

Rename: baseSolver->your_solver_name, Fill codes for all virtual functions baseSolverParaCommPointHdlr.cpp: CommPoint is a callback of solver to communicate with LoadCorrdinator

slide-47
SLIDE 47

Built parallel solvers with ug[SCIP,*] libraries

Ø ug[SCIP-Jack,*]

l

Parallel solvers for solving Steiner Tree Problems Ø ug[SCIP-SDP,*]

l

Parallel solvers for solving Mixed Integer Semidefinite Programs

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 47

The following solvers have developed by each SCIP plugins developers. Debugged with Yuji Shinano

slide-48
SLIDE 48

Outline

Ø Future plan

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 48

slide-49
SLIDE 49

Plan for UG 1.0

Ø If you have your own state-of-the-art solver, please try to parallelize it with UG Ø If you have SCIP application, please try to parallelize it with ug[SCIP,*] libraries Ø Second UG workshop will be held in two years, since “Sustainable Infrastructures for Archiving and Publishing High- Performance Optimization Software” is three years project

l

Right after the workshop, UG 1.0 would be released

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 49

We hope to have feedbacks from user side

slide-50
SLIDE 50

Outline

Ø Concluding remarks

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 50

slide-51
SLIDE 51

Concluding remarks

Ø A research platform for parallel branch-and-bound

l

Users can run all parallel solvers by themselves for fair direct comparison

  • source codes are publically available
  • test data are publically available

16.01.2019 First intenational UG workshop 2019, Berlin, Germany 51