Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
vagabond
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jon Shahen
vagabond
Commits
66843e69
Commit
66843e69
authored
Apr 06, 2020
by
Jonathan Shahen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updating to CPLEX 12.8
parent
9c411ba9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
60 deletions
+29
-60
src/vagabond/reduction/ilp/ReduceToILP.java
src/vagabond/reduction/ilp/ReduceToILP.java
+0
-1
src/vagabond/testing/CPLEXTests.java
src/vagabond/testing/CPLEXTests.java
+29
-59
No files found.
src/vagabond/reduction/ilp/ReduceToILP.java
View file @
66843e69
...
...
@@ -6,7 +6,6 @@ import java.util.logging.Level;
import
java.util.logging.Logger
;
import
ilog.concert.IloException
;
import
ilog.cplex.IloCplex
;
import
ilog.opl.*
;
import
vagabond.pieces.*
;
import
vagabond.reduction.ReduceTo
;
...
...
src/vagabond/testing/CPLEXTests.java
View file @
66843e69
...
...
@@ -3,7 +3,7 @@ package vagabond.testing;
import
org.junit.Test
;
import
ilog.concert.*
;
import
ilog.
cplex
.IloCplex
;
import
ilog.
opl
.IloCplex
;
/**
* Simple example (provided by IBM, modified by Jonathan Shahen) to try and run a couple tests through CPLEX
...
...
@@ -40,16 +40,12 @@ public class CPLEXTests {
int
nvars
=
x
.
length
;
for
(
int
j
=
0
;
j
<
nvars
;
++
j
)
{
cplex
.
output
().
println
(
"Variable "
+
j
+
": Value = "
+
x
[
j
]
+
" Reduced cost = "
+
dj
[
j
]);
cplex
.
output
().
println
(
"Variable "
+
j
+
": Value = "
+
x
[
j
]
+
" Reduced cost = "
+
dj
[
j
]);
}
int
ncons
=
slack
.
length
;
for
(
int
i
=
0
;
i
<
ncons
;
++
i
)
{
cplex
.
output
().
println
(
"Constraint "
+
i
+
": Slack = "
+
slack
[
i
]
+
" Pi = "
+
pi
[
i
]);
cplex
.
output
().
println
(
"Constraint "
+
i
+
": Slack = "
+
slack
[
i
]
+
" Pi = "
+
pi
[
i
]);
}
}
cplex
.
end
();
...
...
@@ -83,16 +79,12 @@ public class CPLEXTests {
int
nvars
=
x
.
length
;
for
(
int
j
=
0
;
j
<
nvars
;
++
j
)
{
cplex
.
output
().
println
(
"Variable "
+
j
+
": Value = "
+
x
[
j
]
+
" Reduced cost = "
+
dj
[
j
]);
cplex
.
output
().
println
(
"Variable "
+
j
+
": Value = "
+
x
[
j
]
+
" Reduced cost = "
+
dj
[
j
]);
}
int
ncons
=
slack
.
length
;
for
(
int
i
=
0
;
i
<
ncons
;
++
i
)
{
cplex
.
output
().
println
(
"Constraint "
+
i
+
": Slack = "
+
slack
[
i
]
+
" Pi = "
+
pi
[
i
]);
cplex
.
output
().
println
(
"Constraint "
+
i
+
": Slack = "
+
slack
[
i
]
+
" Pi = "
+
pi
[
i
]);
}
}
cplex
.
end
();
...
...
@@ -126,16 +118,12 @@ public class CPLEXTests {
int
nvars
=
x
.
length
;
for
(
int
j
=
0
;
j
<
nvars
;
++
j
)
{
cplex
.
output
().
println
(
"Variable "
+
j
+
": Value = "
+
x
[
j
]
+
" Reduced cost = "
+
dj
[
j
]);
cplex
.
output
().
println
(
"Variable "
+
j
+
": Value = "
+
x
[
j
]
+
" Reduced cost = "
+
dj
[
j
]);
}
int
ncons
=
slack
.
length
;
for
(
int
i
=
0
;
i
<
ncons
;
++
i
)
{
cplex
.
output
().
println
(
"Constraint "
+
i
+
": Slack = "
+
slack
[
i
]
+
" Pi = "
+
pi
[
i
]);
cplex
.
output
().
println
(
"Constraint "
+
i
+
": Slack = "
+
slack
[
i
]
+
" Pi = "
+
pi
[
i
]);
}
}
cplex
.
end
();
...
...
@@ -155,30 +143,24 @@ public class CPLEXTests {
//
// using the IloMPModeler API
static
void
populateByRow
(
IloMPModeler
model
,
IloNumVar
[][]
var
,
IloRange
[][]
rng
)
throws
IloException
{
double
[]
lb
=
{
0.0
,
0.0
,
0.0
};
double
[]
ub
=
{
40.0
,
Double
.
MAX_VALUE
,
Double
.
MAX_VALUE
};
String
[]
varname
=
{
"x1"
,
"x2"
,
"x3"
};
static
void
populateByRow
(
IloMPModeler
model
,
IloNumVar
[][]
var
,
IloRange
[][]
rng
)
throws
IloException
{
double
[]
lb
=
{
0.0
,
0.0
,
0.0
};
double
[]
ub
=
{
40.0
,
Double
.
MAX_VALUE
,
Double
.
MAX_VALUE
};
String
[]
varname
=
{
"x1"
,
"x2"
,
"x3"
};
IloNumVar
[]
x
=
model
.
numVarArray
(
3
,
lb
,
ub
,
varname
);
var
[
0
]
=
x
;
double
[]
objvals
=
{
1.0
,
2.0
,
3.0
};
double
[]
objvals
=
{
1.0
,
2.0
,
3.0
};
model
.
addMaximize
(
model
.
scalProd
(
x
,
objvals
));
rng
[
0
]
=
new
IloRange
[
2
];
rng
[
0
][
0
]
=
model
.
addLe
(
model
.
sum
(
model
.
prod
(-
1.0
,
x
[
0
]),
model
.
prod
(
1.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])),
20.0
,
"c1"
);
rng
[
0
][
1
]
=
model
.
addLe
(
model
.
sum
(
model
.
prod
(
1.0
,
x
[
0
]),
model
.
prod
(-
3.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])),
30.0
,
"c2"
);
rng
[
0
][
0
]
=
model
.
addLe
(
model
.
sum
(
model
.
prod
(-
1.0
,
x
[
0
]),
model
.
prod
(
1.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])),
20.0
,
"c1"
);
rng
[
0
][
1
]
=
model
.
addLe
(
model
.
sum
(
model
.
prod
(
1.0
,
x
[
0
]),
model
.
prod
(-
3.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])),
30.0
,
"c2"
);
}
static
void
populateByColumn
(
IloMPModeler
model
,
IloNumVar
[][]
var
,
IloRange
[][]
rng
)
throws
IloException
{
static
void
populateByColumn
(
IloMPModeler
model
,
IloNumVar
[][]
var
,
IloRange
[][]
rng
)
throws
IloException
{
IloObjective
obj
=
model
.
addMaximize
();
rng
[
0
]
=
new
IloRange
[
2
];
...
...
@@ -189,41 +171,29 @@ public class CPLEXTests {
IloRange
r1
=
rng
[
0
][
1
];
var
[
0
]
=
new
IloNumVar
[
3
];
var
[
0
][
0
]
=
model
.
numVar
(
model
.
column
(
obj
,
1.0
).
and
(
model
.
column
(
r0
,
-
1.0
).
and
(
model
.
column
(
r1
,
1.0
))),
0.0
,
40.0
,
"x1"
);
var
[
0
][
1
]
=
model
.
numVar
(
model
.
column
(
obj
,
2.0
).
and
(
model
.
column
(
r0
,
1.0
).
and
(
model
.
column
(
r1
,
-
3.0
))),
0.0
,
Double
.
MAX_VALUE
,
"x2"
);
var
[
0
][
2
]
=
model
.
numVar
(
model
.
column
(
obj
,
3.0
).
and
(
model
.
column
(
r0
,
1.0
).
and
(
model
.
column
(
r1
,
1.0
))),
0.0
,
Double
.
MAX_VALUE
,
"x3"
);
var
[
0
][
0
]
=
model
.
numVar
(
model
.
column
(
obj
,
1.0
).
and
(
model
.
column
(
r0
,
-
1.0
).
and
(
model
.
column
(
r1
,
1.0
))),
0.0
,
40.0
,
"x1"
);
var
[
0
][
1
]
=
model
.
numVar
(
model
.
column
(
obj
,
2.0
).
and
(
model
.
column
(
r0
,
1.0
).
and
(
model
.
column
(
r1
,
-
3.0
))),
0.0
,
Double
.
MAX_VALUE
,
"x2"
);
var
[
0
][
2
]
=
model
.
numVar
(
model
.
column
(
obj
,
3.0
).
and
(
model
.
column
(
r0
,
1.0
).
and
(
model
.
column
(
r1
,
1.0
))),
0.0
,
Double
.
MAX_VALUE
,
"x3"
);
}
static
void
populateByNonzero
(
IloMPModeler
model
,
IloNumVar
[][]
var
,
IloRange
[][]
rng
)
throws
IloException
{
double
[]
lb
=
{
0.0
,
0.0
,
0.0
};
double
[]
ub
=
{
40.0
,
Double
.
MAX_VALUE
,
Double
.
MAX_VALUE
};
static
void
populateByNonzero
(
IloMPModeler
model
,
IloNumVar
[][]
var
,
IloRange
[][]
rng
)
throws
IloException
{
double
[]
lb
=
{
0.0
,
0.0
,
0.0
};
double
[]
ub
=
{
40.0
,
Double
.
MAX_VALUE
,
Double
.
MAX_VALUE
};
IloNumVar
[]
x
=
model
.
numVarArray
(
3
,
lb
,
ub
);
var
[
0
]
=
x
;
double
[]
objvals
=
{
1.0
,
2.0
,
3.0
};
double
[]
objvals
=
{
1.0
,
2.0
,
3.0
};
model
.
add
(
model
.
maximize
(
model
.
scalProd
(
x
,
objvals
)));
rng
[
0
]
=
new
IloRange
[
2
];
rng
[
0
][
0
]
=
model
.
addRange
(-
Double
.
MAX_VALUE
,
20.0
);
rng
[
0
][
1
]
=
model
.
addRange
(-
Double
.
MAX_VALUE
,
30.0
);
rng
[
0
][
0
].
setExpr
(
model
.
sum
(
model
.
prod
(-
1.0
,
x
[
0
]),
model
.
prod
(
1.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])));
rng
[
0
][
1
].
setExpr
(
model
.
sum
(
model
.
prod
(
1.0
,
x
[
0
]),
model
.
prod
(-
3.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])));
rng
[
0
][
0
].
setExpr
(
model
.
sum
(
model
.
prod
(-
1.0
,
x
[
0
]),
model
.
prod
(
1.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])));
rng
[
0
][
1
].
setExpr
(
model
.
sum
(
model
.
prod
(
1.0
,
x
[
0
]),
model
.
prod
(-
3.0
,
x
[
1
]),
model
.
prod
(
1.0
,
x
[
2
])));
x
[
0
].
setName
(
"x1"
);
x
[
1
].
setName
(
"x2"
);
...
...
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