|
1 | 1 | """
|
2 |
| - choose!(m::Model, n::Int, vars::VariableRef...; mode) |
| 2 | + choose!(m::Model, n::Union{Int,VariableRef}, vars::VariableRef...; mode::Symbol=:exactly, name::String="") |
3 | 3 |
|
4 | 4 | Add constraint to select n elements from the list of variables. Options for mode
|
5 |
| -are `:at_least`, `:at_most`, `:exactly`. |
| 5 | +are `:at_least`, `:at_most`, `:exactly`. Alternately, if `n` is a Binary variable, |
| 6 | +it becomes the RHS of the constraint. If `name` is provided, it will be converted |
| 7 | +to a Symbol and stored in the object dictionary. |
6 | 8 | """
|
7 |
| -function choose!(m::Model, n::Int, vars::VariableRef...; mode=:exactly, name="") |
| 9 | +function choose!(m::Model, n::Int, vars::VariableRef...; mode::Symbol=:exactly, name::String="") |
8 | 10 | @assert length(vars) >= n "Not enough variables passed."
|
9 | 11 | @assert all(is_valid.(m, vars)) "Invalid VariableRefs passed."
|
10 | 12 | add_selection!(m, n, vars...; mode, name)
|
11 | 13 | end
|
12 |
| -function choose!(m::Model, var::VariableRef, vars::VariableRef...; mode=:exactly, name="") |
| 14 | +function choose!(m::Model, var::VariableRef, vars::VariableRef...; mode::Symbol=:exactly, name::String="") |
13 | 15 | @assert all(is_valid.(m, vcat(var,vars...))) "Invalid VariableRefs passed."
|
14 | 16 | add_selection!(m, var, vars...; mode, name)
|
15 | 17 | end
|
|
0 commit comments