I’m solving many linear optimization problems that differ in variable bounds, but share the same constraints. There is no objective, i.e, I’m just looking for a feasible solution in each case. I’m using MultiFloats.Float64x8
arithmetic (basically a tuple of eight Float64 values).
The Tulip.jl solver seems to be able to be customized for exploiting structure in the constraint matrix, but I’d appreciate some pointers as to how to accomplish that.
This is the LP formulation notation used in Tulip’s documentation:
In my case:
l
andu
(the variable bound vectors) are both finiteb
is zero- Elements of
A
are integers, with magnitudes varying from0
and1
to “so big that BigInts are necessary to exactly represent it” - The number of variables that I’m mostly interested in is 65536 (
n == 2^16
) - There’s a parameter
d
, such thatm == n - d
.d
can range from one to about thirty. - The matrix
A
is a block matrix formed by concatenating matricesA0
andI(m)
, soA == hcat(A0, I(m))
.I(m)
is an identity matrix of orderm
. A0
is a rectangular dense matrix withm
rows and justd
columns- Elements of
A0
are nonzero.
Are there any additional properties of my problems that I should look for?
Any advice for how to utilize this structure of my problems, if it looks like there’s some structure that might be exploitable?