From 9d2a51f31b8e6a80492e10612d578d521f63c74e Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 00:30:44 +0200 Subject: [PATCH 01/11] Create 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 _posts/2021-09-18-cp-0-6.md diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md new file mode 100644 index 0000000..5695ac6 --- /dev/null +++ b/_posts/2021-09-18-cp-0-6.md @@ -0,0 +1,55 @@ +--- +layout: post +title: "ConstraintProgrammingExtensions 0.6 is released" +date: 2021-09-18 +categories: [releases] +permalink: /blog/cpe-0.6-release/ +--- + +JuMP and MathOptInterface are mostly oriented towards mathematical optimisation. +However, their interface is amenable to other kinds of formalism, including +constraint programming (CP). Bridging the gap between MOI and constraint programming +is the goal of the +[ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl) +package. + +Discussions for support of constraint programming in the JuMP ecosystem started +[in 2019](https://github.com/jump-dev/JuMP.jl/issues/2014). The original scope +was quite limited, as it only planned to propose some modeling capabilities to +JuMP. However, quite soon, it morphed into a larger proposal of a full +[constraint programming environment](https://github.com/jump-dev/JuMP.jl/issues/2227) +accessible from the same API as JuMP. It also meant giving access to CP solvers. + +Mathematical optimisation models are only based on equality and inequality constraints, +typically linear or convex, with an objective function. Constraint programming +allows more variety in the kind of constraints that are supported, with a +focus on discrete structure: the best-known constraint is probably `all_different`, +which models the fact that several integer-valued variables should take different +values (no two variables are allowed to have the same value). Extremely efficient +solvers can be written for this kind of model. + +In the last few months, the CP ecosystem in JuMP made tremendous progress. + +- The lowest layer, + [ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl), + has [dozens of constraint types available](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/sets/) + and [dozens of bridges between constraints](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/). + It supports the FlatZinc file format, a standard in constraint programming to exchange + models (similar to the LP and MPS formats for linear programming), both to read and + write models, but also to communicate with solvers. It has recently been updated + to be compatible with MOI 0.10. + +- Several solvers are accessible using this API: the pure-Julia + [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/), the industry standard + [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/), and the open-source + [Chuffed](https://github.com/dourouc05/Chuffed.jl/). + +- Other pure-Julia CP solvers have been released, but they do not yet use the same API: + [JuliaConstraints](https://github.com/JuliaConstraints) and + [SeaPerl](https://github.com/corail-research/SeaPearl.jl). + +This is not the end of the journey. Although MOI and JuMP are nearing their 1.0 +release, the CP ecosystem has still a long way to go. In the near term, more +modelling features should be added as extensions to JuMP and more solvers should +be made accessible. In the longer term, CP modelling will also benefit from +the new generation of nonlinear support. From 6c88dfaba86287cb334d18b512b613c4ef8fe7cf Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 01:59:40 +0200 Subject: [PATCH 02/11] Apply suggestions from code review Co-authored-by: Oscar Dowson --- _posts/2021-09-18-cp-0-6.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index 5695ac6..bbdfbb9 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -6,7 +6,7 @@ categories: [releases] permalink: /blog/cpe-0.6-release/ --- -JuMP and MathOptInterface are mostly oriented towards mathematical optimisation. +JuMP and MathOptInterface are oriented towards mathematical optimization. However, their interface is amenable to other kinds of formalism, including constraint programming (CP). Bridging the gap between MOI and constraint programming is the goal of the @@ -17,7 +17,7 @@ Discussions for support of constraint programming in the JuMP ecosystem started [in 2019](https://github.com/jump-dev/JuMP.jl/issues/2014). The original scope was quite limited, as it only planned to propose some modeling capabilities to JuMP. However, quite soon, it morphed into a larger proposal of a full -[constraint programming environment](https://github.com/jump-dev/JuMP.jl/issues/2227) +[constraint programming environment](https://github.com/jump-dev/JuMP.jl/issues/2227), accessible from the same API as JuMP. It also meant giving access to CP solvers. Mathematical optimisation models are only based on equality and inequality constraints, @@ -25,7 +25,7 @@ typically linear or convex, with an objective function. Constraint programming allows more variety in the kind of constraints that are supported, with a focus on discrete structure: the best-known constraint is probably `all_different`, which models the fact that several integer-valued variables should take different -values (no two variables are allowed to have the same value). Extremely efficient +values (no two variables are allowed to have the same value). Efficient solvers can be written for this kind of model. In the last few months, the CP ecosystem in JuMP made tremendous progress. From 8ac57a41d7632b4c72f7ac30582ff5a420b3959c Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 02:00:24 +0200 Subject: [PATCH 03/11] Title and authorship. --- _posts/2021-09-18-cp-0-6.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index bbdfbb9..0cb1334 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -6,6 +6,10 @@ categories: [releases] permalink: /blog/cpe-0.6-release/ --- +# ConstraintProgrammingExtensions 0.6 is released + +_Author: Thibaut Cuvelier (@dourouc05)_ + JuMP and MathOptInterface are oriented towards mathematical optimization. However, their interface is amenable to other kinds of formalism, including constraint programming (CP). Bridging the gap between MOI and constraint programming From 9369b63c4f7ebba905fc571ed6ce8b737dfcaa9c Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 02:01:13 +0200 Subject: [PATCH 04/11] Update 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index 0cb1334..6bc77c4 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -24,7 +24,7 @@ JuMP. However, quite soon, it morphed into a larger proposal of a full [constraint programming environment](https://github.com/jump-dev/JuMP.jl/issues/2227), accessible from the same API as JuMP. It also meant giving access to CP solvers. -Mathematical optimisation models are only based on equality and inequality constraints, +Traditional mathematical optimization models focus on (in)equality constraints, typically linear or convex, with an objective function. Constraint programming allows more variety in the kind of constraints that are supported, with a focus on discrete structure: the best-known constraint is probably `all_different`, From 877224bb80d734d3eff0e7a1dcda3283e14a450d Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 02:05:54 +0200 Subject: [PATCH 05/11] Add links to JuliaCon YouTube. --- _posts/2021-09-18-cp-0-6.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index 6bc77c4..db463b8 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -32,7 +32,8 @@ which models the fact that several integer-valued variables should take differen values (no two variables are allowed to have the same value). Efficient solvers can be written for this kind of model. -In the last few months, the CP ecosystem in JuMP made tremendous progress. +In the last few months, the CP ecosystem in JuMP made tremendous progress, +some of them have been presented at JuliaCon 2021 and its JuMP workshop. - The lowest layer, [ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl), @@ -41,16 +42,19 @@ In the last few months, the CP ecosystem in JuMP made tremendous progress. It supports the FlatZinc file format, a standard in constraint programming to exchange models (similar to the LP and MPS formats for linear programming), both to read and write models, but also to communicate with solvers. It has recently been updated - to be compatible with MOI 0.10. + to be compatible with MOI 0.10. + [It has been presented at the JuliaCon 2021](https://www.youtube.com/watch?v=B0lO6HdlFAw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=104). - Several solvers are accessible using this API: the pure-Julia - [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/), the industry standard - [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/), and the open-source - [Chuffed](https://github.com/dourouc05/Chuffed.jl/). + [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/) + ([it has been presented at the JuliaCon 2021](https://www.youtube.com/watch?v=FXqQc8bi_vw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=101)), + the industry standard [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/), + and the open-source [Chuffed](https://github.com/dourouc05/Chuffed.jl/). - Other pure-Julia CP solvers have been released, but they do not yet use the same API: - [JuliaConstraints](https://github.com/JuliaConstraints) and - [SeaPerl](https://github.com/corail-research/SeaPearl.jl). + [JuliaConstraints](https://github.com/JuliaConstraints) + ([it has been presented at the JuliaCon 2021](https://www.youtube.com/watch?v=G4siuvNMj0c&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=4)) + and [SeaPerl](https://github.com/corail-research/SeaPearl.jl). This is not the end of the journey. Although MOI and JuMP are nearing their 1.0 release, the CP ecosystem has still a long way to go. In the near term, more From ae39f589d0f808f34281ff25c35ca16e39ed38e3 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 02:07:06 +0200 Subject: [PATCH 06/11] Update 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index db463b8..180f047 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -38,7 +38,8 @@ some of them have been presented at JuliaCon 2021 and its JuMP workshop. - The lowest layer, [ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl), has [dozens of constraint types available](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/sets/) - and [dozens of bridges between constraints](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/). + and [dozens of bridges between constraints](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/), + including many bridges to convert CP models into standard MIP models. It supports the FlatZinc file format, a standard in constraint programming to exchange models (similar to the LP and MPS formats for linear programming), both to read and write models, but also to communicate with solvers. It has recently been updated From f3deb3b3094628520cfbbf3d7f7f65913432d01c Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Sat, 18 Sep 2021 14:21:45 +1200 Subject: [PATCH 07/11] Update 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 109 +++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 50 deletions(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index 180f047..269a656 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -1,64 +1,73 @@ --- layout: post -title: "ConstraintProgrammingExtensions 0.6 is released" +title: "An update on constraint programming in JuMP" date: 2021-09-18 categories: [releases] -permalink: /blog/cpe-0.6-release/ +permalink: /blog/constraint-programming-update/ --- -# ConstraintProgrammingExtensions 0.6 is released - _Author: Thibaut Cuvelier (@dourouc05)_ -JuMP and MathOptInterface are oriented towards mathematical optimization. -However, their interface is amenable to other kinds of formalism, including -constraint programming (CP). Bridging the gap between MOI and constraint programming -is the goal of the -[ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl) -package. +JuMP and MathOptInterface are oriented towards traditional mathematical +optimization, encompassing problem classes such mixed-integer linear programs +and conic optimization. However, the MathOptInterface API is amenable to other +kinds of formalism, including constraint programming. + +In constrast to linear or conic programs, constraint programs typically have no +objective function, but a much wider variety of constraints that are supported. +The best-known constraint is probably `all_different`, which models the fact +that several integer-valued variables should take different values (i.e., no two +variables are allowed to have the same value). However, there are a range of +other constraint types, with a focus on describing combinatorial structures. +Efficient solvers have been written for constraint programs. + +There are a few tools for constraint programming outside the Julia ecosystem. +The most popular are [MiniZinc](https://www.minizinc.org) and +[OR-Tools](https://developers.google.com/optimization). -Discussions for support of constraint programming in the JuMP ecosystem started +The goal of the [ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl) +package is to bring first-class support for constraint programming to JuMP and +MathOptInterface. + +Discussions about constraint programming support in the JuMP ecosystem started [in 2019](https://github.com/jump-dev/JuMP.jl/issues/2014). The original scope -was quite limited, as it only planned to propose some modeling capabilities to -JuMP. However, quite soon, it morphed into a larger proposal of a full +was quite limited, as it only planned to propose some modeling capabilities to +JuMP. However, quite soon, it morphed into a larger proposal of a full [constraint programming environment](https://github.com/jump-dev/JuMP.jl/issues/2227), -accessible from the same API as JuMP. It also meant giving access to CP solvers. +accessible from the same API as JuMP, including wrapping various specialized +constraint programming solvers. + +In the last few months, the constraint programming ecosystem in JuMP has made +tremendous progress. Highlights include: + +- The v0.6 release of [ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl). + Highlights of the ConstraintProgrammingExtensions.jl package include: + * set definitions for [dozens of constraint types](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/sets/) + * a number of [bridges](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/), + including many bridges to convert constraint programming models into + standard mixed-integer programming models + * Support for the FlatZinc file format, a standard in constraint programming + to exchange models (similar to the LP and MPS formats for linear programming) -Traditional mathematical optimization models focus on (in)equality constraints, -typically linear or convex, with an objective function. Constraint programming -allows more variety in the kind of constraints that are supported, with a -focus on discrete structure: the best-known constraint is probably `all_different`, -which models the fact that several integer-valued variables should take different -values (no two variables are allowed to have the same value). Efficient -solvers can be written for this kind of model. +- Interfacing several solvers through ConstraintProgrammingExtensions.jl. These + include + * The pure-Julia [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/) + * The industry standard [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/) + * The open-source [Chuffed](https://github.com/dourouc05/Chuffed.jl/) + Other pure-Julia constraint solvers have been released, but they do not yet + use ConstraintProgrammingExtensions API: + * [JuliaConstraints](https://github.com/JuliaConstraints) + * [SeaPerl](https://github.com/corail-research/SeaPearl.jl) -In the last few months, the CP ecosystem in JuMP made tremendous progress, -some of them have been presented at JuliaCon 2021 and its JuMP workshop. +- A session on constraint programming talks at JuMP-dev 2021 + * [The design of MiniZinc](https://www.youtube.com/watch?v=tHi0Jd7vgVA) + * [ConstraintProgrammingExtensions.jl](https://www.youtube.com/watch?v=B0lO6HdlFAw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=104) + * [ConstraintSolver.jl](https://www.youtube.com/watch?v=FXqQc8bi_vw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=101) + * [JuliaConstraints](https://www.youtube.com/watch?v=G4siuvNMj0c&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=4) -- The lowest layer, - [ConstraintProgrammingExtensions.jl](https://github.com/dourouc05/ConstraintProgrammingExtensions.jl), - has [dozens of constraint types available](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/sets/) - and [dozens of bridges between constraints](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/), - including many bridges to convert CP models into standard MIP models. - It supports the FlatZinc file format, a standard in constraint programming to exchange - models (similar to the LP and MPS formats for linear programming), both to read and - write models, but also to communicate with solvers. It has recently been updated - to be compatible with MOI 0.10. - [It has been presented at the JuliaCon 2021](https://www.youtube.com/watch?v=B0lO6HdlFAw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=104). - -- Several solvers are accessible using this API: the pure-Julia - [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/) - ([it has been presented at the JuliaCon 2021](https://www.youtube.com/watch?v=FXqQc8bi_vw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=101)), - the industry standard [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/), - and the open-source [Chuffed](https://github.com/dourouc05/Chuffed.jl/). - -- Other pure-Julia CP solvers have been released, but they do not yet use the same API: - [JuliaConstraints](https://github.com/JuliaConstraints) - ([it has been presented at the JuliaCon 2021](https://www.youtube.com/watch?v=G4siuvNMj0c&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=4)) - and [SeaPerl](https://github.com/corail-research/SeaPearl.jl). - -This is not the end of the journey. Although MOI and JuMP are nearing their 1.0 -release, the CP ecosystem has still a long way to go. In the near term, more -modelling features should be added as extensions to JuMP and more solvers should -be made accessible. In the longer term, CP modelling will also benefit from -the new generation of nonlinear support. +This is not the end of the journey. Although MathOptInterface and JuMP are nearing +their 1.0 release, the constraint programming ecosystem has still a long way to go. +In the near term, more modelling features should be added as extensions to JuMP and +more solvers should be made accessible. In the longer term, constraint +programming modelling will also benefit from the next generation of nonlinear +support. From eb2aa5192b65f128df8641576cd7560670eaac70 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 11:06:05 +0200 Subject: [PATCH 08/11] Apply suggestions from code review Co-authored-by: Oscar Dowson --- _posts/2021-09-18-cp-0-6.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index 269a656..e5609c1 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -11,7 +11,7 @@ _Author: Thibaut Cuvelier (@dourouc05)_ JuMP and MathOptInterface are oriented towards traditional mathematical optimization, encompassing problem classes such mixed-integer linear programs and conic optimization. However, the MathOptInterface API is amenable to other -kinds of formalism, including constraint programming. +kinds of formalism, including [constraint programming](https://en.wikipedia.org/wiki/Constraint_programming). In constrast to linear or conic programs, constraint programs typically have no objective function, but a much wider variety of constraints that are supported. @@ -46,18 +46,18 @@ tremendous progress. Highlights include: * a number of [bridges](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/), including many bridges to convert constraint programming models into standard mixed-integer programming models - * Support for the FlatZinc file format, a standard in constraint programming + * Support for the [FlatZinc file format](https://www.minizinc.org/doc-2.4.3/en/fzn-spec.html), a standard in constraint programming to exchange models (similar to the LP and MPS formats for linear programming) - Interfacing several solvers through ConstraintProgrammingExtensions.jl. These - include + include: * The pure-Julia [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/) * The industry standard [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/) * The open-source [Chuffed](https://github.com/dourouc05/Chuffed.jl/) Other pure-Julia constraint solvers have been released, but they do not yet use ConstraintProgrammingExtensions API: * [JuliaConstraints](https://github.com/JuliaConstraints) - * [SeaPerl](https://github.com/corail-research/SeaPearl.jl) + * [SeaPearl](https://github.com/corail-research/SeaPearl.jl) - A session on constraint programming talks at JuMP-dev 2021 * [The design of MiniZinc](https://www.youtube.com/watch?v=tHi0Jd7vgVA) @@ -65,7 +65,7 @@ tremendous progress. Highlights include: * [ConstraintSolver.jl](https://www.youtube.com/watch?v=FXqQc8bi_vw&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=101) * [JuliaConstraints](https://www.youtube.com/watch?v=G4siuvNMj0c&list=PLP8iPy9hna6Q343_8sSq4f306VGLW4TLK&index=4) -This is not the end of the journey. Although MathOptInterface and JuMP are nearing +This is the start of our journey towards constraint programming in JuMP. Although MathOptInterface and JuMP are nearing their 1.0 release, the constraint programming ecosystem has still a long way to go. In the near term, more modelling features should be added as extensions to JuMP and more solvers should be made accessible. In the longer term, constraint From 3ef57dca165ac49386179de0e30dbea6fad94333 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 11:11:21 +0200 Subject: [PATCH 09/11] Update 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index e5609c1..09c6d9f 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -46,7 +46,7 @@ tremendous progress. Highlights include: * a number of [bridges](http://tcuvelier.be/ConstraintProgrammingExtensions.jl/dev/reference/bridges_sets/), including many bridges to convert constraint programming models into standard mixed-integer programming models - * Support for the [FlatZinc file format](https://www.minizinc.org/doc-2.4.3/en/fzn-spec.html), a standard in constraint programming + * Support for the [FlatZinc file format](https://www.minizinc.org/doc-2.5.5/en/fzn-spec.html), a standard in constraint programming to exchange models (similar to the LP and MPS formats for linear programming) - Interfacing several solvers through ConstraintProgrammingExtensions.jl. These From e2cb84ee94e22c1708a2587d1d78cbd300bae3d3 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sat, 18 Sep 2021 11:12:54 +0200 Subject: [PATCH 10/11] Update 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index 09c6d9f..b4476f3 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -54,6 +54,7 @@ tremendous progress. Highlights include: * The pure-Julia [ConstraintSolver.jl](https://github.com/Wikunia/ConstraintSolver.jl/) * The industry standard [IBM CPLEX CP Optimizer](https://github.com/dourouc05/CPLEXCP.jl/) * The open-source [Chuffed](https://github.com/dourouc05/Chuffed.jl/) + Other pure-Julia constraint solvers have been released, but they do not yet use ConstraintProgrammingExtensions API: * [JuliaConstraints](https://github.com/JuliaConstraints) From 2638602f51c1338508f9bcbf328b38cbb266fae6 Mon Sep 17 00:00:00 2001 From: Oscar Dowson Date: Sun, 19 Sep 2021 16:15:16 +1200 Subject: [PATCH 11/11] Update 2021-09-18-cp-0-6.md --- _posts/2021-09-18-cp-0-6.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2021-09-18-cp-0-6.md b/_posts/2021-09-18-cp-0-6.md index b4476f3..effc6a4 100644 --- a/_posts/2021-09-18-cp-0-6.md +++ b/_posts/2021-09-18-cp-0-6.md @@ -9,7 +9,7 @@ permalink: /blog/constraint-programming-update/ _Author: Thibaut Cuvelier (@dourouc05)_ JuMP and MathOptInterface are oriented towards traditional mathematical -optimization, encompassing problem classes such mixed-integer linear programs +optimization, encompassing problem classes such as mixed-integer linear programs and conic optimization. However, the MathOptInterface API is amenable to other kinds of formalism, including [constraint programming](https://en.wikipedia.org/wiki/Constraint_programming). @@ -70,5 +70,5 @@ This is the start of our journey towards constraint programming in JuMP. Althoug their 1.0 release, the constraint programming ecosystem has still a long way to go. In the near term, more modelling features should be added as extensions to JuMP and more solvers should be made accessible. In the longer term, constraint -programming modelling will also benefit from the next generation of nonlinear -support. +programming modelling will also benefit from the [next generation of nonlinear +support](https://github.com/jump-dev/MathOptInterface.jl/issues/846).