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...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Journal of open source software Ročník 10; číslo 113; s. 8847
Hlavní autori: Justeau-Allaire, Dimitri, Prud’homme, Charles
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