# Cbc JuMP set constraints

**URL:** <https://discourse.julialang.org/t/cbc-jump-set-constraints/67570>\
**Category:** Optimization (Mathematical)\
**Tags:** question, jump\
**Created:** [September 2, 2021, 12:20pm UTC](https://discourse.julialang.org/t/cbc-jump-set-constraints/67570 "2021-09-02T12:20:18Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![giulia](https://avatars.discourse-cdn.com/v4/letter/g/d07c76/32.png) [@giulia](https://discourse.julialang.org/u/giulia)\
**Post date:** [September 2, 2021, 12:20pm UTC](https://discourse.julialang.org/t/cbc-jump-set-constraints/67570/1 "2021-09-02T12:20:18Z")

</div>

Hello, I am trying to create a simple optimization model using JuMP and Cbc.  
My code is following:

`using JuMP, Cbc`  
`m = Model(Cbc.Optimizer)`  
`@variable(m, x1)`  
`@variable(m, x2)`  
`@constraint(m, constraint1, x1 * x2 == 1)`  
`@objective(m, Min, x1 + x2)`  
`JuMP.optimize!(m)`

When I try to create the constraint, I get following error:  
`MOI.ScalarQuadraticFunction{Float64}`-in-`MOI.EqualTo{Float64}` constraints are not supported and cannot be bridged into supported constrained variables and constraints.

How can I solve this?

---

<div class="post-metadata">

**Author:** ![mike\_k](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mike_k/32/211864_2.png) [@mike\_k](https://discourse.julialang.org/u/mike_k)\
**Post date:** [September 2, 2021, 2:31pm UTC](https://discourse.julialang.org/t/cbc-jump-set-constraints/67570/2 "2021-09-02T14:31:17Z")

</div>

Welcome!  
Your constraint is non-linear. Have you tried the macro `@NLconstraint` instead of `@constraint`?

The section about non-linear modelling in the JuMP documentation is [here.](https://jump.dev/JuMP.jl/stable/manual/nlp/) Let me remark my comment is just a guess, because I have never used JuMP for non-linear models.

---

<div class="post-metadata">

**Author:** ![giulia](https://avatars.discourse-cdn.com/v4/letter/g/d07c76/32.png) [@giulia](https://discourse.julialang.org/u/giulia)\
**Post date:** [September 2, 2021, 3:10pm UTC](https://discourse.julialang.org/t/cbc-jump-set-constraints/67570/3 "2021-09-02T15:10:15Z")

</div>

Thank you, with `@NLconstraint` it creates the constraint.  
The optimization does not work because it is a linear solver (I guess from new error I got), but if I use a non linear solver it works. Thank you

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [September 2, 2021, 10:03pm UTC](https://discourse.julialang.org/t/cbc-jump-set-constraints/67570/4 "2021-09-02T22:03:59Z")

</div>

I’ve opened an issue to improve the error message: [https://github.com/jump-dev/JuMP.jl/issues/2680](https://github.com/jump-dev/JuMP.jl/issues/2680). The current error is confusing and isn’t good at explaining why this didn’t work.

Your problem is that Cbc does not support quadratic constraints.

Since your problem is a non-convex quadratic constraint, your options are Gurobi.jl or Ipopt.jl. In both cases the syntax you have is correct. No need for `@NLconstraint`.
