# JuMP: allunique as a constraint?

**URL:** <https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569>\
**Category:** Optimization (Mathematical)\
**Created:** [March 7, 2018, 2:37pm UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569 "2018-03-07T14:37:02Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![yoeljacobsen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yoeljacobsen/32/3655_2.png) [@yoeljacobsen](https://discourse.julialang.org/u/yoeljacobsen)\
**Post date:** [March 7, 2018, 2:37pm UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/1 "2018-03-07T14:37:02Z")

</div>

How may I write a constraint for a list of variables requiring all to have unique integer values?

---

<div class="post-metadata">

**Author:** ![Juser](https://avatars.discourse-cdn.com/v4/letter/j/34f0e0/32.png) [@Juser](https://discourse.julialang.org/u/Juser)\
**Post date:** [March 16, 2018, 8:13pm UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/2 "2018-03-16T20:13:10Z")

</div>

I have done very little with constraints in JuMP, but I believe it allows for non-linear constraints. For each of your variables, could you not define a constraint that its minimum distance from the other variables is positive?

---

<div class="post-metadata">

**Author:** ![miles.lubin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/miles.lubin/32/279_2.png) [@miles.lubin](https://discourse.julialang.org/u/miles.lubin)\
**Post date:** [March 17, 2018, 1:50am UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/3 "2018-03-17T01:50:57Z")

</div>

JuMP does not support modeling the “all unique” constraint nor does it connect to constraint programming solvers. This may change in the future. For now I would recommend systems like [MiniZinc](http://www.minizinc.org/).

---

<div class="post-metadata">

**Author:** ![ccoffrin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ccoffrin/32/400_2.png) [@ccoffrin](https://discourse.julialang.org/u/ccoffrin)\
**Post date:** [March 17, 2018, 1:59am UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/4 "2018-03-17T01:59:35Z")

</div>

The constraint “all unique” is typically called “[all different](http://sofdem.github.io/gccat/gccat/Calldifferent.html)”.

There is a variety of work discussing MIP encodings, which could be implemented in JuMP.

If your problem is primarily combinatorial, I also would recommend systems like MiniZinc.

---

<div class="post-metadata">

**Author:** ![yoeljacobsen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yoeljacobsen/32/3655_2.png) [@yoeljacobsen](https://discourse.julialang.org/u/yoeljacobsen)\
**Post date:** [March 17, 2018, 5:06pm UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/5 "2018-03-17T17:06:29Z")

</div>

Thank you.

---

<div class="post-metadata">

**Author:** ![ErkinK](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/erkink/32/20712_2.png) [@ErkinK](https://discourse.julialang.org/u/ErkinK)\
**Post date:** [January 1, 2021, 10:57pm UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/6 "2021-01-01T22:57:47Z")

</div>

Is there any update on this constraint or do you still recommend MiniZinc?

---

<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:** [January 4, 2021, 8:35am UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/7 "2021-01-04T08:35:01Z")

</div>

You could try: [GitHub - Wikunia/ConstraintSolver.jl: ConstraintSolver in Julia: Blog posts -\>](https://github.com/Wikunia/ConstraintSolver.jl)

---

<div class="post-metadata">

**Author:** ![ErkinK](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/erkink/32/20712_2.png) [@ErkinK](https://discourse.julialang.org/u/ErkinK)\
**Post date:** [January 4, 2021, 11:01am UTC](https://discourse.julialang.org/t/jump-allunique-as-a-constraint/9569/8 "2021-01-04T11:01:51Z")

</div>

Thank you Oscar.
