We believe we found a reason for the performance variation observed with the OC_hplusLP configuration.
For this config, the LP constraints are created in the file delete_relaxation_rr_constraints.cc. In the implementation of the new interface, this file was modified to avoid adding redundant constraints to the model. Apparently, removing these constraints can reduce performance, particularly in the miconic domain.
We did the following experiment: the redundant constraints in delete_relaxation_rr_constraints.cc are added in line 353, which looks like this:
lp::LPConstraint constraint(0, 1)
This line adds a constraint of the form 0 <= a^{T}x <= 1. We replaced this line with
lp::LPConstraint constraint(0, infinity)
which adds a constraint of the form 0 <= a^{T}x.
We then compared the baseline and this modified version on the miconic domain. Notice that we are not testing the new interface here, but only baseline Fast Downward with and without a simple modification.
Results: https://ai.dmi.unibas.ch/_experiments/ai/downward/issue1224/data/sprint2026_lpsolvers-issue_1224-eval/
Coverage with CPLEX dropped from 121 to 114, and with SoPLEX from 104 to 93.
For comparison, in the previous experiment comparing the baseline with the new interface, CPLEX coverage dropped from 121 to 114, and SoPLEX from 103 to 94.
In summary, the observed variation for config OC_hplusLP in the miconic domain seems related to these redundant constraints that are not being added.
|