Professional Documents
Culture Documents
3
One formulation
(or something like that…):
Variables:
srt 1 if driver r "starts" in period t; 0 othe rwise
ert 1 if driver r "ends" in period t; 0 otherwise
Dr 2 1 if r drives < 2hrs; 0 otherwise
Dr10 1 if r drives > 10 hrs; 0 otherwise
xir 1 if customer i assigned to r; 0 otherwise
ui 1 if customer i not assigned; 0 otherwise
zij 1 if i and j assigned togther; 0 otherwise
4
Min å t e rt s rt å ps D rs pl D rl å Mui å d ( i, j) zij
r ,t r i i, j
s/t
å t e rt s rt MDrs t s r driver's schedule is too short
t
åxr
ir ui 1 i account for each customer
å ts
t
rt M (1 xir ) tipick i, r don't assign i to r if r starts too lat e
6
SSD Stochastic Scenario Decomposition
(Higle, Rayco, Sen ’01)
7
SSD: Salient Features
• New observations – increase master program column dimension
• New cuts – increase master program row dimension
• Column dimension grows is more problematic…
To solve the master program we introduced some column and row
aggregation to reduce the size as follows:
• aggregate most of the cuts (except for two … “new”, “incumbent”)
• represent each column with 4-tuple
– current value
– coefficient in “new” cut
– coefficient in “incumbent” cut
– coefficient in “aggregated” cut
• columns with similar 4-tuples are aggregated
Note: aggregation ignores scenario and stage associated with
column … looks at the “data” and considers only similarities in
the data.
Note also: it worked surprisingly well on a variety of problems.
8
The aggregation scheme used by SSD can be viewed as a form
of “data mining” of the master program matrix.
“Data Mining” is a catch-all phrase – it’s a collection of
techniques used to draw some meaning from a large data set
&/or reduce its storage requirements.
What’s the connection…
Large problems Big Matrices lots of “data”
“VanTran” takes a long time to solve because it’s hard to
choose from “similar” solutions, and lots of “ties” have to be
broken
Perhaps columns can be “clustered” so that tie-breaking can be
postponed until later...
Perhaps the “information” contained in the constraints can be
represented in a compressed form…
9
Variable Clustering
xb , xc are the binary, continuous variables
Ab xb Ac xc r are the constraints … i.e., Ab a1 ,..., an where ai m i
b
If ai iI
are all “close” to each other, replace the columns by a
“clustered” variable, X I (general integer) so that the constraints become:
åI aI X I Ac xc r
1
where
aI å ai X u I || I || (obj. coeffs. similarly defined).
|| I || iI , and I
The resulting MIP has fewer variables, and is likely to spend less time
trying to break ties.
10
A solution to the clustered MIP, can be converted to a solution to
the original MIP (“parsed”) as follows:
Xˆ I 0 xi 0 i I
Xˆ I u I xi 1 i I
11
Two questions—
How should “distance” be defined?
How should variables be “linked” to form clusters?
• Possible “Distance” definitions…
• cityblock: dij å | aki akj |
k
åa akj
2
• euclidean: dij ki
k
• Less standard:
• indicator: dij å1 | aki * akj | where ( u) 1 if u > 0; 0 otherwise
k
• correlation: d ij 1 ( ai , a j )
1
• hamming: dij å | aki akj | percent of coordinates that differ
n k
1
• jaccard:
dij
nnonzeroes
å | aki akj |
k
12
Possible “linking” definitions:
“linking” creates a hierarchical tree that indicates the order in
which clusters are aggregated. Some possible methods for
aggregating two sub-clusters:
13
My initial foray…
14
Some especially good combinations:
The rest…
average ( std dev) 1951.3 217.4 1617.8
(Note: 28 did not return a feasible solution) (260.5) (1283.4) (6708.2)
15
Some significant correlations:
16
Interaction Plot (data means) for Parsed_O
Average Complete Single Ward 50 75 300
2000 Dist
Abs
Cor
1500 Euc
Dist Ham
Ind
1000 Jac
2000 Link
Average
Complete
1500 Single
Link Ward
1000
C utO ff
17
What’s next…
• An obvious next step
– use the solution as an initial solution for the original MIP.
– slight problem: lower bounds are still weak, doesn’t help much
• Obvious questions –
can we “mine” for improved lower bounds?
(maybe, but not ready for prime time …)
18
Experimentation with some MIPLIB problems:
19
Problem Combinations # within 1.5% of best # within 0.01% # w/o initial
known solution of best known solution
solution
10teams 60 60
danoint 72 12 12
egout 72 72 54
fiber 72 *** 69
khb05250 72 68 49
misc06 72 72 0
mod011 72 72 72
rentacar 60 60
rgn 72 49 49
*** when “parsed” solution was used to initialize B&B, optimal solution
identified within 285 nodes, 4300 iterations
20
Combination Summary: # within 1.5% of best known solution
21
Conclusions?
22