Package com.darkcollective.relix.solver
package com.darkcollective.relix.solver
The mathematical-programming SPI: a
LinearProgram
the engine builds, a MathProgrammingSolver a
provider implements, and the
SolverCatalog that discovers one.
The OPTIMIZE operator and COVER EXACT are mixed-integer programs.
The engine's part is turning rows and expressions into coefficients — which rows are
candidates, what a NULL coefficient means, how a constraint operator maps onto a
bound — and none of that is arithmetic a solver should re-decide. What crosses this
seam is therefore numbers only: no row, no expression, no schema.
-
ClassDescriptionOne linear program: an objective to maximise or minimise over a list of decision variables, subject to a list of linear constraints over the same variables.One linear constraint:
Σ coefficients[i]·x[i]related tobound.How a constraint's weighted sum relates to its bound.Whether the objective is to be maximised or minimised.One decision variable: a value in[lower, upper]contributingweightper unit to the objective.The installedMathProgrammingSolvers, discovered withServiceLoader.What a solver has to say about aLinearProgram: it found an optimum, it proved there is none, or it did not decide.The program is proved infeasible — no assignment satisfies its constraints.An optimal assignment.The search did not decide: it failed, hit a limit, found the program unbounded or malformed, or stopped for any other reason short of an answer.