Commit Graph

101 Commits

Author SHA1 Message Date
Anders Kaseorg
0dffe7f5c5 python: Allow negated literals in LinearExpression
Booleans are already considered integers with value 0 or 1, so it’s
natural to expect negated booleans to be considered integers with
value 1 or 0.

This makes it more convenient to define an antisymmetric array of
booleans: you no longer have to choose between not being able to use
greater[j, i] = greater[i, j].Not() in linear expressions and not
being able to use greater[j, i] = 1 - greater[i, j] in boolean
constraints.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-01-08 15:48:19 -08:00
Laurent Perron
e6b5b590c9 fix #1001 2019-01-03 21:21:33 +01:00
Laurent Perron
20fbf5614c for time in objective printer 2018-12-30 20:04:35 +01:00
Laurent Perron
0eae67a2ee fix display of objective 2018-12-28 09:14:13 +01:00
Laurent Perron
fedf3d4ff4 revamp and simplify swig support, force typed enums for C# and Java for all except the constraint_solver/routing module; port examples; Fix SAT on very large problems 2018-12-11 17:03:03 +01:00
Laurent Perron
589047ce90 python support int64 -> int64_t 2018-12-10 13:35:41 +01:00
Laurent Perron
49816f439b experimental objective lower bound sharing in // CP-SAT search 2018-12-06 17:16:54 +01:00
Laurent Perron
f2573d33b1 Fix merge abseil - v6.10 2018-11-30 14:48:55 +01:00
Corentin Le Molgat
b027e57e95 dotnet: Remove reference to dotnet release command
- Currently not implemented...

Add abseil patch

- Add patches/absl-config.cmake

Makefile: Add abseil-cpp on unix

- Force abseil-cpp SHA1 to 45221cc
  note: Just before the PR #136 which break all CMake

Makefile: Add abseil-cpp on windows

- Force abseil-cpp SHA1 to 45221cc
  note: Just before the PR #136 which break all CMake

CMake: Add abseil-cpp

- Force abseil-cpp SHA1 to 45221cc
  note: Just before the PR #136 which break all CMake

port to absl: C++ Part

- Fix warning with the use of ABSL_MUST_USE_RESULT
  > The macro must appear as the very first part of a function
    declaration or definition:
    ...
    Note: past advice was to place the macro after the argument list.
  src: dependencies/sources/abseil-cpp-master/absl/base/attributes.h:418
- Rename enum after windows clash
- Remove non compact table constraints
- Change index type from int64 to int in routing library
- Fix file_nonport compilation on windows
- Fix another naming conflict with windows (NO_ERROR is a macro)
- Cleanup hash containers; work on sat internals
- Add optional_boolean sub-proto

Sync cpp examples with internal code
- reenable issue173 after reducing number of loops

port to absl: Python Part

- Add back cp_model.INT32_MIN|MAX for examples

Update Python examples

- Add random_tsp.py
- Run words_square example
- Run magic_square in python tests

port to absl: Java Part

- Fix compilation of the new routing parameters in java
- Protect some code from SWIG parsing

Update Java Examples

port to absl: .Net Part

Update .Net examples

work on sat internals; Add C++ CP-SAT CpModelBuilder API; update sample code and recipes to use the new API; sync with internal code

Remove VS 2015 in Appveyor-CI

- abseil-cpp does not support VS 2015...

improve tables

upgrade C++ sat examples to use the new API; work on sat internals

update license dates

rewrite jobshop_ft06_distance.py to use the CP-SAT solver

rename last example

revert last commit

more work on SAT internals

fix
2018-11-30 14:48:55 +01:00
Laurent Perron
5d26ad890f sync examples 2018-11-21 11:00:26 -08:00
Laurent Perron
3cfcd810cc Add CpModel.Validate() in C#, Python, Java 2018-11-21 08:43:50 -08:00
Laurent Perron
44e52c1ef8 mostly PascalCase -> sname_case 2018-11-20 05:44:21 -08:00
Laurent Perron
a5ae202fc0 add Abs API on the CP-SAT solver (all languages) 2018-11-19 14:03:44 -08:00
Laurent Perron
7c01a9f4ad reindent cp_model.py and visualization.py 2018-11-18 11:14:23 -08:00
Corentin Le Molgat
47fefdc3bb Remove tab from CMakeLists.txt
- Mandatory to follow google internal convention
2018-11-13 10:12:02 +01:00
Laurent Perron
87b9d55b21 update license headers 2018-11-10 18:00:53 +01:00
Laurent Perron
e323bba2e7 backport sat improvements from the abseil branch 2018-11-05 16:24:47 +01:00
Corentin Le Molgat
8c104ff831 Python fix cp_model.py doc 2018-10-30 16:08:19 +01:00
Mark Gritter
896d239238 Add Constraint return value to methods that were documented to return it. 2018-10-30 09:32:02 +01:00
Laurent Perron
4e893e5080 remove solow-halim glop preprocessor as the interface has changed a lot; add a proper domain class for CP-SAT integer variables, rewrite preprocessor and other parts of the solver to use it 2018-10-02 10:35:52 +02:00
Laurent Perron
6b7036832b add missing API on CP-SAT Java interface; polish doc 2018-09-25 13:23:27 +02:00
Laurent Perron
b1da9320f9 enable objective lower bound (when minimizing) on the SAT solver in Python, Java, C#; change objective_value to be double (as in C++) for these languages. 2018-09-20 11:30:19 +02:00
Laurent Perron
c4c6cb6141 remove all optional integer variables from sat code; allow multiple enforcement literals for a few constraints 2018-09-12 16:58:19 +02:00
Laurent Perron
428e272ccc add ModelStats and CpSolverResponseStats for SAT/{Python|Java|C#}; enable multiple enforcement literals for a few constraints; small fixes, typo corrections 2018-09-12 15:07:23 +02:00
Laurent Perron
e888d1cfc4 fix english 2018-09-06 16:56:47 +02:00
Laurent Perron
fcc6a58cf0 improve doc of sat/python 2018-09-06 16:48:13 +02:00
Laurent Perron
d8a3013c5b more work on sat doc, change threshold to choose the LB branching in the sat solver 2018-09-06 15:15:10 +02:00
Laurent Perron
88f3724e27 update sat python doc 2018-09-06 13:13:53 +02:00
Laurent Perron
48df402a6e rewrite CP-SAT solver output during search; improve SAT/Python doc and reference manual 2018-09-06 11:30:04 +02:00
Laurent Perron
f4ed40ec2b improve sat python reference manual 2018-09-05 23:17:21 +02:00
Laurent Perron
ecd1e4b41c improve sat python reference manual 2018-09-05 23:10:44 +02:00
Laurent Perron
8f3c6ae4cb improve sat python reference manual 2018-09-05 22:56:54 +02:00
Laurent Perron
944026c588 improve sat python reference manual 2018-09-05 22:55:21 +02:00
Laurent Perron
60995fe87c improve sat python reference manual 2018-09-05 22:52:59 +02:00
Laurent Perron
36393a1733 remove useless python __init__ 2018-09-05 10:57:27 +02:00
Laurent Perron
9a116eba39 remove SolutionObserver is sat/swig_helper.h; rename WithObserver into WithCallback 2018-09-04 18:47:10 +02:00
Laurent Perron
5824112e27 fix issue 260 for the CP-SAT solver 2018-09-01 08:48:43 +02:00
Laurent Perron
651e44cf0a remove OptionalIntVar from the sat Python API 2018-08-31 16:56:55 +02:00
Laurent Perron
14b0e5de45 fix python sat boolean value method in solution callback. 2018-08-30 17:50:37 +02:00
Laurent Perron
e8d5858e67 revamp sat python solution callback, adds the ability to stop search from the solution callback. 2018-08-30 16:27:58 +02:00
Laurent Perron
4caaef3c23 deep sync with base library renaming; lint checking; Speedup sat; new crash procedure for glop 2018-08-28 11:19:49 +02:00
Laurent Perron
cb884c7ddf added channeling sample in sat cookbook 2018-08-13 09:42:31 -07:00
Laurent Perron
b535ae2ab1 polish doc; add more methods to java sat modeling layer 2018-08-08 16:48:26 -07:00
Laurent Perron
823148593e improve cp_model.py doc 2018-08-07 12:09:19 -07:00
Laurent Perron
507cfbea26 revisit Java SAT API; follow Java naming conventions 2018-08-03 16:42:45 -07:00
Laurent Perron
80694b8513 various fixes 2018-08-01 13:14:06 -07:00
Laurent Perron
fb309a2527 [API Change] Remove support for optional int vars in reservoir, use parallel array of boolean literals to indicate presence 2018-08-01 10:17:48 -07:00
Laurent Perron
7f574ac63f add name method to python/C# sat IntVar/IntervalVar 2018-07-16 15:11:18 -07:00
Laurent Perron
bd04f656b3 rename MODEL_SAT to FEASIBLE, MODEL_UNSAT to INFEASIBLE 2018-07-02 15:35:40 +02:00
Laurent Perron
c7bfe03769 allow solver.Value() and solver.BooleanValue() to accept integer arguments 2018-06-20 11:34:20 +02:00