7 votes
Accepted

Which solvers should I use to solve large, but extremely sparse LP problems with 100-500 thousand variables?

One of the best-performing free LP solvers exploiting sparsity is HiGHS (https://github.com/ERGO-Code/HiGHS). It allows passing a starting point. For comparing relative performance of a number of LP ...
Michael Feldmeier's user avatar
5 votes

For an ILP relaxed to LP is the LP solution objective always less than the ILP solution?

If the integer linear programming is a minimization problem then whose linear relaxation is a lower bound for the original MILP model, and for the maximization problem it is an upper bound. In the ...
A.Omidi's user avatar
  • 8,187
5 votes

Which solvers should I use to solve large, but extremely sparse LP problems with 100-500 thousand variables?

Based on the Mittelmann benchmarks, I would agree that HiGHS is a contender, as is Clp (which is faster than HiGHS on some test problems, slower on others). You might also want to look at SCIP, which ...
prubin's user avatar
  • 37.5k
4 votes

How to handle strict inequalities?

In practice, most solvers are implemented to use fast but inexact floating-point arithmetic and thus can only ever guarantee to satisfying the optimality conditions of your problem to within some ...
Henrik Alsing Friberg's user avatar
3 votes
Accepted

Formulation of binary constraint with the least binary variables for linear programming

You want to impose the following two logical constraints: $$ \begin{align} \delta_{t-1} = 1 \wedge \delta_t = 0 &\implies \beta_t = 1 \tag{1} \\ \neg (\delta_{t-1} = 1 \wedge \delta_t = 0) &\...
joni's user avatar
  • 1,477
3 votes
Accepted

Optimization Problem with a Penalty Factor

You have two separate objectives: maximizing terminal value $A$ and minimizing (or at least reducing) initial investment $P.$ You might want to search the web using the phrases "bicriterion ...
prubin's user avatar
  • 37.5k
2 votes

How to handle strict inequalities?

I'm not aware of a special name for those kind of problems. In order to solve it in practice, you might add a small constant numerical tolerance $\varepsilon > 0$, e.g. $\varepsilon = 10^{-8}$, and ...
joni's user avatar
  • 1,477
2 votes

Linearizing if else conditions in ILP

Besides @RobPratt's answer, the first condition would be (for simplicity I omitted indices $i$ and $j$ and continued with only two $y$ variables: $$ x \implies (y_1 \oplus y_2) $$ $$ \lnot x \lor (y_1 ...
A.Omidi's user avatar
  • 8,187
2 votes
Accepted

Linearizing if else conditions in ILP

Your first constraint enforces more than was asked. When $X_{ij}=0$, it forces $\sum_k Y_{jk}=0$, hence $Y_{jk}=0$ for all $k$. To enforce only $$X_{ij}=1 \implies \sum_k Y_{jk}=1,$$ you can instead ...
RobPratt's user avatar
  • 29.8k
1 vote
Accepted

how do I find the dual when a variable has an upper bound?

You can imagine the upper bound for the variable is another constraint. $\max: c^Tx$ $\text{s.t.}$ $Ax = 0$ --> $π_1$ $x ≤ d$ --> $π_2$ $0 ≤ x$ Therefore, you will obtain the following dual form....
ytsao's user avatar
  • 116
1 vote

How to select intermediate nodes in a network?

Option 1: Run Dijkstra's algorithm first. Then you will have a grid of positive numbers that you can use for additional constraints. E.g. require a positive number to know that a path is available ...
Brannon's user avatar
  • 857

Only top scored, non community-wiki answers of a minimum length are eligible