Skip to content

Conversation

@maartenflippo
Copy link

No description provided.

IgnaceBleukx and others added 30 commits April 16, 2025 11:48
* add proper warnings for setting parameters at solve time

* add test for checking if user-warning is raised

* add optional init kwargs in SolverLookup

* update warning

* update tests

* remove extra spaces
…Mpy#630)

* Support constants for Element decomposition

* Add more general approach to handling constant Element indices

* Prevent OR-Tools error by converting integer to constant intvar

* Decompose only intersection between idx and array bounds

* Use better get_bounds for non-expressions

* Fix decomposition (off-by-one + process comments)

* Improve implies typing

* Refactor test

* Fix utils.implies

* Use is_[true,false]_cst

* Linting

* Simplify fixed integer case Element for OT-Tools

* Refactor Element decomp using loop
* z3 collect user vars

* minizinc post user vars

* Add unit test

* Exclude test for pysat and pysdd

---
Co-authored-by: Tias Guns <tias@ulyssis.org>
* rework (start of) docs of solvers, based on readthedocs rendering/flow

* gurobi: missing line

* Fix section title

underline must be at least as long, otherwise links are broken

* Wrong solver name

* Small changes

typos, rst syntax, consistent wording, ...

* Add example codeblock to solver interface

* exact summary wording streamline

* add pysat direct instructions again for uniformity at this point

* remove poorly explained capabilities from solver docs for now

---------

Co-authored-by: Thomas Sergeys <thomas.s2000@hotmail.com>
* add missing documentation in global constraints and functions files

* add API quickstart page

* doc improvements

* from quickstart to summary sheet, work in progress

* docs update part 2

* rework summary part 2

* fix link to modeling page from summary.rst

* wrap the shape examples in code format for visibility

* Fix Element cross reference

* Add small example on reification

earlier in the quickstart only implication was mentioned, never the word reification

---------

Co-authored-by: Tias Guns <tias@ulyssis.org>
Co-authored-by: Thomas Sergeys <thomas.s2000@hotmail.com>
* Remove `flake8` code style checker (seemingly unused?)

* Bump setup-python action

* Use optional dependencies in CI

* Fix xdist dependency
* make sure sub is turned into a wsum

* add test
Co-authored-by: Thomas Sergeys <thomas.s2000@hotmail.com>
* Handle non-positive time limit with valueerror

* tests

* don't need the double if-statement
If empty=True is not set upon env creation, .start() is already called internally causing prints to stdout (like licence status). This messes up other printing if gurobi is imported for first time.
Co-authored-by: Thomas Sergeys <thomas.s2000@hotmail.com>
* linear objectives contain no negboolviews

* add testcases

---------

Co-authored-by: OrestisLomis <orestis.lomisg7@gmail.com>
Co-authored-by: Tias Guns <tias@ulyssis.org>
* fix in nvalueexceptn for 1 value range

* ensure bvars is array

* double check shape when making aux vars

* comment for readability

---------

Co-authored-by: IgnaceBleukx <ignace.bleukx@kuleuven.be>
* fix empty clause

* add comment
* Changelog backport previous releases

* Add GitHub compare links
* optional dependency all solvers

* Documentation for adding new solver to setup.py
* Fix failing test if `pysat` is not installed

* Update reasons for test skip

* Fix pysat availability check

* Skip tests with decorator

* Fix import

* Decorator to skip entire testcase class

* More test to skip

* Missing importlib

* Reusable decorators

* Without brackets?

* Revert "Without brackets?"

This reverts commit 61119a7.

* Remove decorator argument

* Combine pytest skip into decorator

* Missing comment

* Remove unnecessary import

---------

Co-authored-by: Hendrik 'Henk' Bierlee <bierlee.henk@gmail.com>
* Move setuptools required dependency

Checks whether solvers are supported make use of pkg_resources

* Setup README encoding

pip install -e failed on windows system
* Add setuptools to required deps in setup.py

* Skip test if pysat not installed

* assertEquals -> assertEqual

* Solution limit for gurobi

* Ignore more tests if pysat not installed

* changelog

* Add new commits to changelog

* Group similar changes in changelog

* Small reformulation in changelog
* do safening before returning decomposition of inverse

* perf

* fix intendation

* re-enable inverse in testsuite

* fix comment
* check if __bool__ is called on expression

* fix failing tests

* add explicit testcases for container testing

* override __bool__ in comparison

* fix blocking clause in minizinc

* fix minizinc solution translation

* remove wrong test (tests if True == True...)

* ensure reproducability of linearize tests

* process review

* update valueerror
IgnaceBleukx and others added 10 commits May 20, 2025 15:09
* MDD constraint

* Regular constraint

* tests MDD constraint

* tests regular constraint

* modify regular and mdd decomposition to be correct if negated (removed symmetries linked to auxilliary vars)

* root node is the start of the first transition

* Improvement doc to MDD constraint

* Improvement doc to MDD constraint (typo)

* Improvement doc to Regular constraint (typo)

* Improvement tests MDD/Regular (typo)

* test_constraints for MDD and regular

* cleanup regular implementation

* add regular to ortools

* add regular to choco

* update tests

* fix choco interface

* fix bound for arguments to regular cons

* update docs on regular

* process review on regular

* enable for all solvers again

* remove duplicate IfThenElse

---------

Co-authored-by: hverhaeghe <helene.verhaeghe27@gmail.com>
* OR-Tools correct state reporting for CSP

* Fix choco solveAll timelimit

attempted to set time limit before solver object was created

* Missing argval imports

* Standardised solver state for solve()

* Standardised solver state for solveAll()

* Add solver status instructions to template

* update gcs

* add tests

* pysat also optimal, even w/o obj

* update pysdd

* solve from model instead of solver obj

* add semantics of status to docs

* update test for solveAll

* Small typos in docs

* Update solve status

use feasible for CSP instead of optimal

* Update solveAll

* Update test

* Update another test

* Disable test for pysdd

* Update status documentation

---------

Co-authored-by: IgnaceBleukx <ignace.bleukx@kuleuven.be>
* Add callbacks

* typo

---------

Co-authored-by: Tias Guns <tias@ulyssis.org>
* check if __bool__ is called on expression

* fix failing tests

* add explicit testcases for container testing

* override __bool__ in comparison

* fix blocking clause in minizinc

* fix minizinc solution translation

* remove wrong test (tests if True == True...)

* ensure reproducability of linearize tests

* process review

* update valueerror

* add get_repr() function to expressions

* finish merge conflict after cherry ppicking

* update solver interfaces

* update transformations

* forgot one

* update get_repr

* actually save something too...

* update default

* make more use of expr_dict in tranformations

* pass expr_dict everywhere

* do not make expr_dict

* add cse to all solvers and catch duplicate expressions

* remove get_repr

* further removal of get_repr

* avoid objects in memory during hash

* fix flatten_constraint

* proper test in decompose

* start of tests, wip

* no_partial_functions does not need expr_dict

* update tests

* revert solver interfaces

* update test

* cosmetic

* cleanup and merge master

* undo whitespace changes

* undo whitespace changes

* undo whitespace changes

* undo whitespace changes

* undo whitespace changes

* whitspace

* whitespace

* whitespace

* whitespace

* undo double-constraint optim

* consistency and fast path optim

* remove duplicate constraint from linearize

* rename to csemap

---------

Co-authored-by: wout4 <wout.vanroose@gmail.com>
Co-authored-by: Tias Guns <tias@ulyssis.org>
* add failing test

* fix numpy comparison

* add tests for booleans too

* check of numpy bools
@maartenflippo maartenflippo merged commit 0d6d82e into master May 26, 2025
1 check failed
@maartenflippo maartenflippo deleted the CPMpy-master branch May 26, 2025 13:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants