hdavid16 / DisjunctiveProgramming.jl

A JuMP extension for Generalized Disjunctive Programming
MIT License
27 stars 3 forks source link

Big-M for nonlinear constraints #20

Closed hdavid16 closed 2 years ago

hdavid16 commented 2 years ago

The following lines in the BMR function fail if there is a nonlinear constraint:

    add_to_function_constant(ref, -M)
    bin_var_ref = variable_by_name(ref.model, string(bin_var[i]))
    set_normalized_coefficient(ref, bin_var_ref , M)

What this is doing is adding the Big-M term to the constraint: i.e., M*(1-bin_var_ref).

However, for NL constraints, this needs to be treated as discussed in #7