Access to automatic reformulations created internally by BilevelJump


I was wondering if there is a possibility to access the automatic reformulations that BilevelJump creates internally to solve the bilinear model. In particular, I would like to access (1) the dual of the lower level and (2) the strong duality constraint that Julia should create when using mode=BilevelJuMP.StrongDualityMode() . This can be useful for me to do some checks.

Thank you

You’d need to look at the source code of BilevelJuMP. I don’t think this is publicly accessible and documented, but @joaquimg might have some pointers.

If you have a bilevel model such as:

model = BilevelModel(...)

you can pass keyword arguments while optimizing:

    lower_prob = "lower.lp",
    upper_prob = "upper.lp",
    bilevel_prob = "bilevel.lp",
1 Like