pychoco: all-inclusive Python bindings for the Choco-solver constraint programming library
Constraint Programming (CP) is a well-established and powerful Artificial Intelligence (AI) paradigm for modelling and solving complex combinatorial problems (Rossi et al., 2006). Many CP solvers are currently available, and despite a generally shared common base, each solver exhibits specific featu...
Uložené v:
| Vydané v: | Journal of open source software Ročník 10; číslo 113; s. 8847 |
|---|---|
| Hlavní autori: | , |
| Médium: | Journal Article |
| Jazyk: | English |
| Vydavateľské údaje: |
Open Journals
29.09.2025
|
| Predmet: | |
| ISSN: | 2475-9066, 2475-9066 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | Constraint Programming (CP) is a well-established and powerful Artificial Intelligence (AI) paradigm for modelling and solving complex combinatorial problems (Rossi et al., 2006). Many CP solvers are currently available, and despite a generally shared common base, each solver exhibits specific features that make it more or less suited to certain types of problems and tasks. Performance and flexibility are important features of CP solvers, which is why most state-of-the-art solvers rely on statically typed and compiled programming languages, such as Java or C++. Because of this, CP has long remained a niche field that is difficult for non-specialists to access. Recently, the emergence of high-level, solver-independent modelling languages such as MiniZinc (Nethercote et al., 2007), XCSP³ (Audemard et al., 2020), and CPMpy (Guns, 2019) has made CP more accessible by allowing users to seamlessly use state-of-the-art solvers from user-friendly interpreted languages such as Python. To make CP even more accessible to a wider audience, we developed pychoco, a Python library that provides an all-inclusive binding to the Java Choco-solver library (Prud’homme & Fages, 2022). By all-inclusive, we mean thatpychoco has no external dependencies and does not require the installation of Choco-solver or Java on the user’s system. The choice of Python was motivated by its widespread use in the data science and AI communities, as well as its extensive use in education. The pychoco Python library supports almost all features of Choco-solver, is regularly updated, and is automatically built and distributed through PyPI for Linux, Windows, and MacOSX at each release. As a result, pychoco can seamlessly integrate into high-level constraint modelling Python libraries such as CPMpy (Guns, 2019) and PyCSP³ (Lecoutre & Szczepanski, 2024). Moreover, users who need to use features specific to Choco-solver (e.g., graph variables and constraints) can now rely on pychoco without prior knowledge of Java programming. We believe that along with initiatives such as CPMpy and PyCSP, the availability of CP technologies in the Python ecosystem will foster new uses and the appropriation of CP by a wider scientific and industrial public. |
|---|---|
| AbstractList | Constraint Programming (CP) is a well-established and powerful Artificial Intelligence (AI) paradigm for modelling and solving complex combinatorial problems (Rossi et al., 2006). Many CP solvers are currently available, and despite a generally shared common base, each solver exhibits specific features that make it more or less suited to certain types of problems and tasks. Performance and flexibility are important features of CP solvers, which is why most state-of-the-art solvers rely on statically typed and compiled programming languages, such as Java or C++. Because of this, CP has long remained a niche field that is difficult for non-specialists to access. Recently, the emergence of high-level, solver-independent modelling languages such as MiniZinc (Nethercote et al., 2007), XCSP³ (Audemard et al., 2020), and CPMpy (Guns, 2019) has made CP more accessible by allowing users to seamlessly use state-of-the-art solvers from user-friendly interpreted languages such as Python. To make CP even more accessible to a wider audience, we developed pychoco, a Python library that provides an all-inclusive binding to the Java Choco-solver library (Prud’homme & Fages, 2022). By all-inclusive, we mean thatpychoco has no external dependencies and does not require the installation of Choco-solver or Java on the user’s system. The choice of Python was motivated by its widespread use in the data science and AI communities, as well as its extensive use in education. The pychoco Python library supports almost all features of Choco-solver, is regularly updated, and is automatically built and distributed through PyPI for Linux, Windows, and MacOSX at each release. As a result, pychoco can seamlessly integrate into high-level constraint modelling Python libraries such as CPMpy (Guns, 2019) and PyCSP³ (Lecoutre & Szczepanski, 2024). Moreover, users who need to use features specific to Choco-solver (e.g., graph variables and constraints) can now rely on pychoco without prior knowledge of Java programming. We believe that along with initiatives such as CPMpy and PyCSP, the availability of CP technologies in the Python ecosystem will foster new uses and the appropriation of CP by a wider scientific and industrial public. |
| Author | Justeau-Allaire, Dimitri Prud’homme, Charles |
| Author_xml | – sequence: 1 givenname: Dimitri orcidid: 0000-0003-4129-0764 surname: Justeau-Allaire fullname: Justeau-Allaire, Dimitri – sequence: 2 givenname: Charles orcidid: 0000-0002-4546-9027 surname: Prud’homme fullname: Prud’homme, Charles |
| BackLink | https://hal.science/hal-05360978$$DView record in HAL |
| BookMark | eNpNkMFKAzEQhoNUsNaefIFcRbYm2SSbeCtFrVDQg168LNl0tpuyTUqyLvTt3bYinmYYvpnh_67RyAcPCN1SMmOUEvGwDSnNiFK8uEBjxguRaSLl6F9_haYpbQkhVEkmKR2jr_3BNsGGR2zaNnPett_J9YDfD10TPK6cXzu_SbgOEXcN4MURzlJoe4jYBp-6aJzv8D6GTTS73QDj1lXRxMMNuqxNm2D6Wyfo8_npY7HMVm8vr4v5KrOUFEXGuLC84nqdE600W1NQyprcKqioMFBXWhSME6lpBdSAhCFqnRsQHBQDbvIJujvfbUxb7qPbDb_LYFy5nK_K44yIXBJdqJ4O7P2ZtXGQFaH-W6CkPFksjxbLk8X8B-f-aB4 |
| Cites_doi | 10.1007/978-3-319-44953-1_47 10.1007/s10601-019-09307-9 10.1007/s10601-015-9235-5 10.1145/3381449 10.1007/978-3-540-74970-7_38 10.1007/978-3-319-44953-1_37 10.21105/joss.04708 10.1016/j.agsy.2024.104154 10.1016/j.biocon.2024.110799 10.48550/arXiv.2009.00326 10.1007/978-1-4419-1644-0_14 10.1007/BF00143881 |
| ContentType | Journal Article |
| Copyright | licence_http://creativecommons.org/publicdomain/zero |
| Copyright_xml | – notice: licence_http://creativecommons.org/publicdomain/zero |
| DBID | AAYXX CITATION 1XC VOOES |
| DOI | 10.21105/joss.08847 |
| DatabaseName | CrossRef Hyper Article en Ligne (HAL) Hyper Article en Ligne (HAL) (Open Access) |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-9066 |
| ExternalDocumentID | oai:HAL:hal-05360978v1 10_21105_joss_08847 |
| GroupedDBID | AAFWJ AAYXX ADBBV AFPKN ALMA_UNASSIGNED_HOLDINGS BCNDV CITATION GROUPED_DOAJ M~E OK1 1XC VOOES |
| ID | FETCH-LOGICAL-c1077-245c4b49d309892d1e88ca3c8eb15aefb957240691be1ae6e105f3ae54e82e4a3 |
| ISSN | 2475-9066 |
| IngestDate | Wed Dec 10 12:50:51 EST 2025 Sat Nov 29 07:25:46 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | true |
| Issue | 113 |
| Keywords | pychoco |
| Language | English |
| License | http://creativecommons.org/licenses/by/4.0 licence_http://creativecommons.org/publicdomain/zero/: http://creativecommons.org/publicdomain/zero |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c1077-245c4b49d309892d1e88ca3c8eb15aefb957240691be1ae6e105f3ae54e82e4a3 |
| ORCID | 0000-0003-4129-0764 0000-0002-4546-9027 |
| OpenAccessLink | http://dx.doi.org/10.21105/joss.08847 |
| ParticipantIDs | hal_primary_oai_HAL_hal_05360978v1 crossref_primary_10_21105_joss_08847 |
| PublicationCentury | 2000 |
| PublicationDate | 2025-09-29 |
| PublicationDateYYYYMMDD | 2025-09-29 |
| PublicationDate_xml | – month: 09 year: 2025 text: 2025-09-29 day: 29 |
| PublicationDecade | 2020 |
| PublicationTitle | Journal of open source software |
| PublicationYear | 2025 |
| Publisher | Open Journals |
| Publisher_xml | – name: Open Journals |
| References | Prud’homme (prudhomme_2022) 2022; 7 Hooker (hooker_2016) 2016 Vismara (vismara_2016) 2016; 21 Michail (michail_2020) 2020; 46 Wallace (wallace_1996) 1996; 1 Gerault (gerault_2016) 2016 Deléglise (deleglise_2024) 2024; 299 Nethercote (nethercote_2007) 2007; 4741 Bleukx (bleukx_2024) 2024 Challand (challand_2025) 2025; 222 Guns (guns_2019) 2019; 19 Barahona (barahona_2011) 2011 Audemard (audemard_2020) 2020; 25 (rossi_2006) 2006; 2 Lecoutre (lecoutre_2024) 2024 Hotz (hotz_2024) 2024; 3812 |
| References_xml | – year: 2016 ident: hooker_2016 article-title: Finding alternative musical scales publication-title: International conference on principles and practice of constraint programming doi: 10.1007/978-3-319-44953-1_47 – volume: 2 volume-title: Handbook of constraint programming year: 2006 ident: rossi_2006 – volume: 25 issn: 1572-9354 issue: 1 year: 2020 ident: audemard_2020 article-title: XCSP3 and its ecosystem publication-title: Constraints doi: 10.1007/s10601-019-09307-9 – volume: 21 issue: 4 year: 2016 ident: vismara_2016 article-title: Constrained global optimization for wine blending publication-title: Constraints doi: 10.1007/s10601-015-9235-5 – volume: 46 issue: 2 year: 2020 ident: michail_2020 article-title: JGraphT—a Java library for graph data structures and algorithms publication-title: ACM Transactions on Mathematical Software (TOMS) doi: 10.1145/3381449 – volume: 4741 year: 2007 ident: nethercote_2007 article-title: MiniZinc: Towards a standard CP modelling language publication-title: Principles and Practice of Constraint Programming – CP 2007 doi: 10.1007/978-3-540-74970-7_38 – year: 2016 ident: gerault_2016 article-title: Constraint programming models for chosen key differential cryptanalysis publication-title: International conference on principles and practice of constraint programming doi: 10.1007/978-3-319-44953-1_37 – volume: 7 issn: 2475-9066 issue: 78 year: 2022 ident: prudhomme_2022 article-title: Choco-solver: A Java library for constraint programming publication-title: Journal of Open Source Software doi: 10.21105/joss.04708 – year: 2024 ident: bleukx_2024 article-title: Efficient modeling of half-reified global constraints publication-title: The 23rd workshop on constraint modelling and reformulation, date: 2024/09/02-2024/09/02, location: Gerona, spain – volume: 222 issn: 0308-521X year: 2025 ident: challand_2025 article-title: Combining constraint programming and a participatory approach to design agroecological cropping systems publication-title: Agricultural Systems doi: 10.1016/j.agsy.2024.104154 – volume: 299 issn: 0006-3207 year: 2024 ident: deleglise_2024 article-title: Integrating multi-objective optimization and ecological connectivity to strengthen Peru’s protected area system towards the 30*2030 target publication-title: Biological Conservation doi: 10.1016/j.biocon.2024.110799 – year: 2024 ident: lecoutre_2024 article-title: PyCSP3: Modeling combinatorial constrained problems in Python doi: 10.48550/arXiv.2009.00326 – volume: 19 year: 2019 ident: guns_2019 article-title: Increasing modeling language convenience with a universal n-dimensional array, CPpy as Python-embedded example publication-title: Proceedings of the 18th workshop on constraint modelling and reformulation at CP (modref 2019) – year: 2011 ident: barahona_2011 article-title: Bioinformatics: A challenge to constraint programming publication-title: Hybrid optimization doi: 10.1007/978-1-4419-1644-0_14 – volume: 1 issn: 1383-7133 issue: 1-2 year: 1996 ident: wallace_1996 article-title: Practical applications of constraint programming publication-title: Constraints doi: 10.1007/BF00143881 – volume: 3812 year: 2024 ident: hotz_2024 article-title: Exploiting large language models for the automated generation of constraint satisfaction problems |
| SSID | ssj0001862611 |
| Score | 2.3045752 |
| Snippet | Constraint Programming (CP) is a well-established and powerful Artificial Intelligence (AI) paradigm for modelling and solving complex combinatorial problems... |
| SourceID | hal crossref |
| SourceType | Open Access Repository Index Database |
| StartPage | 8847 |
| SubjectTerms | Artificial Intelligence Computer Science |
| Title | pychoco: all-inclusive Python bindings for the Choco-solver constraint programming library |
| URI | https://hal.science/hal-05360978 |
| Volume | 10 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVAON databaseName: DOAJ Directory of Open Access Journals customDbUrl: eissn: 2475-9066 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001862611 issn: 2475-9066 databaseCode: DOA dateStart: 20160101 isFulltext: true titleUrlDefault: https://www.doaj.org/ providerName: Directory of Open Access Journals – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-9066 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001862611 issn: 2475-9066 databaseCode: M~E dateStart: 20160101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1LbxMxELbSwoELlJco0MpCvVUWu147a3OLCqiHUvVQpIrLau111KB0E-VFERK_nRmvvdlURWoPvWwiy97XfJnxTL6ZIeSAG7RLQjI-zB0TOtNMa2vghwe2xiiX6KbO7El-eqouLvRZr_cn5sKsxnldq-trPX1QUcMYCBtTZ-8h7vakMADfQehwBLHD8U6Cn6JGsxOfxTwes1Ftx0vPUT_7jXUCDs3IJ7LMW4LhEU5ncFPwqMhCn_u2EYtI3brCYEII9vxnK4stuA6bvwHgY7j4Va4ptdguzJVLNgC8hTj4Z0yqmo1arTxbVpFzoS8nV03f9sAD6EYluEQKRQhdeOXFRS6ZTvqhzPUtY1H7Jl2UpVlHmSrVFOO8qeXRZ8WKGD8xDTOJszZrad-wcS3zEHwev7zAxYVfvEUe8Vxq5AN--9sJ0KGv5_s3t_fd5Hf69R_XF9_Y0WxdxoC836Cc75CnQRx00CDiOem5-gV5Frt20KDEX5IfASCf6AY8aAMPGuFBAR4U4EG78KBreNAOPGiAxyvy_euX86NjFjpsMAtuf864kFYYoass0UrzKnVK2TKzCiy4LN3QaJn73OjUuLR0fQdPPsxKJ4VT3Ikye02260nt3hAK88GzNoabzAnY5SqjnZWVASNWVaXJd8lBfEvFtCmkUtwijF3yAd5gOwOLnx8PTgocA3PRx6yjVfr2bud6R56sofmebC9mS7dHHtvVYjSf7fvoy76X-T-Ne3k3 |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=pychoco%3A+all-inclusive+Python+bindings+for+the+Choco-solver+constraint+programming+library&rft.jtitle=Journal+of+open+source+software&rft.au=Justeau-Allaire%2C+Dimitri&rft.au=Prud%E2%80%99homme%2C+Charles&rft.date=2025-09-29&rft.issn=2475-9066&rft.eissn=2475-9066&rft.volume=10&rft.issue=113&rft.spage=8847&rft_id=info:doi/10.21105%2Fjoss.08847&rft.externalDBID=n%2Fa&rft.externalDocID=10_21105_joss_08847 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-9066&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-9066&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-9066&client=summon |