Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
revised-submissions-final
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
miplib2017
revised-submissions-final
Commits
12cde804
Commit
12cde804
authored
Feb 27, 2019
by
Gregor Hendel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
model data for liu instance
parent
e3235815
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
274 additions
and
0 deletions
+274
-0
liu8_9.mai
miplib2010_liu/models/liu8_9.mai
+210
-0
liumip.dat
miplib2010_liu/models/liumip.dat
+11
-0
liumip.mod
miplib2010_liu/models/liumip.mod
+53
-0
No files found.
miplib2010_liu/models/liu8_9.mai
0 → 100644
View file @
12cde804
From xiaowenl@twolf13.ee.washington.edu Mon Aug 7 11:55 PDT 1995
Received: from dizzy.cplex.com (dizzy) by sierra with ESMTP
(1.37.109.16/16.2) id AA057161731; Mon, 7 Aug 1995 11:55:31 -0700
Return-Path: <xiaowenl@twolf13.ee.washington.edu>
Received: from twolf13.ee.washington.edu by dizzy.cplex.com via SMTP (950511.SGI.8.6.12.PATCH526/cplex.950313)
for <ed@cplex.com> id NAA29552; Mon, 7 Aug 1995 13:35:14 -0400
Received: by twolf13.ee.washington.edu
(5.65/UW-NDC Revision: 2.30 ) id AA04565; Mon, 7 Aug 1995 10:33:52 -0700
From: Xiaowen Liu <xiaowenl@twolf13.ee.washington.edu>
Message-Id: <9508071733.AA04565@twolf13.ee.washington.edu>
Subject: questions about MIP
To: ed@sierra
Date: Mon, 7 Aug 1995 10:33:52 -0700 (PDT)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 911
Status: RO
Hi Ed,
I presented my problem using CPLEX two months ago. It never
gives me an optimal result when the integer variables are large.
I think CPLEX ran too fast and didn't try enough branches.
Is there any parameter I can set to let CPLEX run slower?
Right now, I don't care the running time so much, but I
do care about the final result.
The parameters I set in my running experiment is:
1. set mip strategy backtrack 1.0
2. set mip strategy nodeselect 2
3. set mip strategy variableselect 1
The above settings gives me the best result I have got so far.
Unfortunately, they are still not optimal.
I need your help to figure it out. Any suggestions and comments
will be highly appreciated. Thank you.
Xiaowen
-------------
Xiaowen Liu
Electrial Engineering Bldg, Rm #329
University of Washington
Box 352500
Seattle, WA 98195-2500
Email: xiaowenl@twolf13.ee.washington.edu
Tel: (206)685-8678 (O)
From xiaowenl@twolf13.ee.washington.edu Wed Aug 9 11:30 PDT 1995
Received: from twolf13.ee.washington.edu by sierra with SMTP
(1.37.109.16/16.2) id AA105933003; Wed, 9 Aug 1995 11:30:03 -0700
Return-Path: <xiaowenl@twolf13.ee.washington.edu>
Received: by twolf13.ee.washington.edu
(5.65/UW-NDC Revision: 2.30 ) id AA10877; Wed, 9 Aug 1995 11:26:46 -0700
From: Xiaowen Liu <xiaowenl@twolf13.ee.washington.edu>
Message-Id: <9508091826.AA10877@twolf13.ee.washington.edu>
Subject: Re: questions about MIP
To: ed@sierra (Ed Klotz)
Date: Wed, 9 Aug 1995 11:26:45 -0700 (PDT)
Cc: Xiaowenl@twolf13.ee.washington.edu
In-Reply-To: <199508091650.AA102567032@sierra> from "Ed Klotz" at Aug 9, 95 09:50:32 am
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 599
Status: RO
Hi Ed,
Thank you very much for your mail.
I slightly changed my formulation. I can get 1360 by setting
backtracking 1
nodeselect 2
variableselect 1
But this is not optimal yet.
I am going to mail you a brief description of my problem formulation
in my next mail. If you have any questions about that, please let me
know. Also, I will send you a new LP format file I have current.
Thank you very much.
Xiaowen
--
Xiaowen Liu
Electrial Engineering Bldg, Rm #329
University of Washington
Box 352500
Seattle, WA 98195-2500
Email: xiaowenl@twolf13.ee.washington.edu
Tel: (206)685-8678 (O)
From xiaowenl@twolf13.ee.washington.edu Wed Aug 9 11:31 PDT 1995
Received: from twolf13.ee.washington.edu by sierra with SMTP
(1.37.109.16/16.2) id AA106013090; Wed, 9 Aug 1995 11:31:30 -0700
Return-Path: <xiaowenl@twolf13.ee.washington.edu>
Received: by twolf13.ee.washington.edu
(5.65/UW-NDC Revision: 2.30 ) id AA10887; Wed, 9 Aug 1995 11:28:13 -0700
From: Xiaowen Liu <xiaowenl@twolf13.ee.washington.edu>
Message-Id: <9508091828.AA10887@twolf13.ee.washington.edu>
Subject: problem formulation
To: eklotz@sierra
Date: Wed, 9 Aug 1995 11:28:13 -0700 (PDT)
Cc: xiaowenl@twolf13.ee.washington.edu (Xiaowen Liu)
X-Mailer: ELM [version 2.4 PL23]
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Length: 3598
Status: RO
Hi Ed,
The following is a brief description of my problem formulation.
I am working on the floorplan and placement problem in the
physical design of VLSI circuits. The floorplan and placement
is to place a set of rectangular modules(or blocks) on a chip.
we know the initial topology of the modules, and want to locally
swap the modules and/or orientate the modules such that the total
area of the chip is minimized and there is no overlaps between
between any two modules.
We are trying to use Integer Programming to optimize the area.
The problem formulation is described in the following.
To prevent overlapping of modules i and j, it is required that
at least one of the following linear inequalities holds:
Xi + Wi <= Xj; /* i is to the left of j */
Xi - Wj >= Xj; /* i is to the right of j */
Yi + Hi <= Yj; /* i is below j */
Yi - Hj >= Yj; /* i is abover j */ (1)
where Xi, Yi, Xj, Yj is the continuous variables denote the position
of the lower left corners of the modules i and j with respect to the
center of coordinates. Wi, Hi is the width and height of module i,
which is known values.
In order to ensure that at least on of above inequalities always holds
we introduce two 0-1 integer variables XXiXj and YYiYj, now we consider
the following system of linear inequalities for any pair of modules i and j:
Xi + Wi <= Xj + W * ( XXiXj + YYiYj);
Xi - Wj >= Xj - W * (1 - XXiXj + YYiYj);
Yi + Hi <= Yj + H * (1 + XXiXj - YYiYj);
Yi - Hj >= Yj - H * (2 - XXiXj - YYiYj); (2)
where W = Sum(Wi), H = Sum(Hi).
Assume that X_STAR and Y_STAR are the final width and height of the chip,
we need to optimize the area X_STAR * Y_STAR. If we know the range of the
aspect ratio of X_STAR and Y_STAR to be 0.85 to 1.15, we can linearize the
quadratic problem to a linear problem:
Minimize: 0.495 * X_STAR + 0.5014 * Y_STAR
The additional constraints are:
Xi >= 0, Yi >= 0,
X_STAR >= Xi + Wi,
Y_STAR >= Yi + Hi, for all modules. (3)
The above is the first formulation of our problem. In order to achieve
better floorplan, we allow the rotation of the blocks by introduce another
0-1 integer variable Zi, where Zi = 0 when i block is placed in its initial
orientation and Zi = 1 when block i is rotated 90 degree. The constraints (1)
is rewritten in the following form:
Xi + Zi*Hi + (1-Zi)*Wi <= Xj + M*(XXiXj + YYiYj);
Xi - Zj*Hj - (1-Zj)*Wj >= Xj - M*(1 - XXiYj + YYiYj);
Yi + Zi*Wi + (1-Zi)*Hi <= Yj + M(1 + XXiXj - YYiYj);
Yi - Zj*Wj - (1-Zj)*Hj >= Yj - M(2 - XXiYj - YYiYj); (4)
and the constraints (3) is rewritten as:
Xi >= 0, Yi >= 0,
Xi + (1 - Zi)*Wi + Zi*Hi <= X_STAR,
Yi + Zi*Wi + (1 - Zi)*Hi <= Y_STAR, for all modules (5)
Because we have the initial topology of the modules, we only allow the
local modules to swap. So to local module pairs they have constraints (4),
where there are two integer variables to ensure nonoverlapping.
To the modules are very far away, their topology is fixed, which means these
pairs of modules need only one of inequalities of (1) to guarantee the non-
overlapping.
To this problem formulation, I tried to come up a priority order of the integer
variables. Because the position of a module if more important than the orientation
of a module, I set all the XXiXj and YYiYj variables priority 5 and all Zi variables
to the default value. But from the experiments I have done, I can't see any
improvement.
Xiaowen
--
Xiaowen Liu
Electrial Engineering Bldg, Rm #329
University of Washington
Box 352500
Seattle, WA 98195-2500
Email: xiaowenl@twolf13.ee.washington.edu
Tel: (206)685-8678 (O)
miplib2010_liu/models/liumip.dat
0 → 100644
View file @
12cde804
nbRects = 33;
bigM = 8398;
//bigM = 1200; // based on easily obtained feasible solution
// with objective 1200
width = [118,356,132,560,132,314,182,132,84,182,182,370,118,118,118,118,
160,294,196,140,140,174,118,182,160,378,336,126,210,182,132,132,174];
height = [84,118,140,132,314,140,350,294,118,202,202,182,118,126,336,266,
118,118,118,496,406,118,48,118,140,118,132,378,210,98,314,230,132];
miplib2010_liu/models/liumip.mod
0 → 100644
View file @
12cde804
// MIP formulation of liu.lp
int nbRects = ...;
int bigM = ...;
range
Rectangles = 1..nbRects;
int width[Rectangles] = ...;
int height[Rectangles] = ...;
int totwidth = sum(i in 1..nbRects) width[i];
int totheight = sum (i in 1..nbRects) height[i];
//int maxlength = totwidth*(totwidth > totheight) +
// totheight*(totheight >= totwidth);
dvar int+ x[Rectangles]; //in 0..maxlength;
dvar int+ y[Rectangles]; //in 0..maxlength;
dvar int+ ystar; // in 0..maxlength; // max (width, height) of resulting rectangle
dvar int rotate[Rectangles] in 0..1;
dvar int XX[Rectangles,Rectangles] in 0..1;
dvar int YY[Rectangles,Rectangles] in 0..1;
minimize
ystar;
subject to {
// Forbid overlap of rectangles while allowing 90 degree rotations.
forall(ordered i, j in Rectangles) {
x[i] + rotate[i]*height[i] + (1 - rotate[i])*width[i] <=
x[j] + bigM * (XX[i,j] + YY[i,j]);
x[j] + rotate[j]*height[j] + (1 - rotate[j])*width[j] <=
x[i] + bigM * (1 + YY[i,j] - XX[i,j]);
y[i] + (1 - rotate[i])*height[i] + rotate[i]*width[i] <=
y[j] + bigM * (1 + XX[i,j] - YY[i,j]);
y[j] + (1 - rotate[j])*height[j] + rotate[j]*width[j] <=
y[i] + bigM * (2 - (XX[i,j] + YY[i,j]));
};
// ystar must satisfy its description (see above).
forall(i in Rectangles) {
ystar >= x[i] + rotate[i]*height[i] + (1 - rotate[i])*width[i];
ystar >= y[i] + rotate[i]*width[i] + (1 - rotate[i])*height[i];
};
};
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment