I would like to ask 2 questions about the reformulation of the complementary slackness with Fortuny-Amat and McCarl done by BilevelJump with the following setting
How to define the bigM for the primal constraints? I noticed that primal_big_M=vp is used as the bigM of the primal variables while the reformulation automatically determines other bigMs for the primal constraints, starting from vp.
(note that dual_big_M = vd is used as the bigM for the dual constraints)
So mode=BilevelJuMP.BigMMode(; with_slack = false, primal_big_M = Inf, dual_big_M = Inf)
and mode=BilevelJuMP.FortunyAmatMcCarlMode(primal_big_M = vp, dual_big_M = vd)
are equivalent because with_slack = false is the default for both.