150 Commits

Author SHA1 Message Date
Laurent Perron
20410d28b5 improve integer <-> literal encoding; fix energy reason in diffn 2019-02-20 17:08:36 +01:00
Laurent Perron
8042642540 [CP-SAT] improve presolve; new random-restart strategy; improve integer encoding 2019-02-14 16:44:57 +01:00
Laurent Perron
fec0768323 use Pseudo-cost in parallel search; change automata to automaton in cp_model.proto 2019-02-01 18:32:13 +01:00
Laurent Perron
5827eadbcc speedup sat internals; fix bug with model with one trivially false XOr constraint 2019-01-09 11:25:49 +01:00
Laurent Perron
3055dcaa50 reorganize info sharing in parallel search 2018-12-21 13:59:58 +01:00
Laurent Perron
f7fc84791a reorganize bound sharing code 2018-12-20 15:18:09 +01:00
Laurent Perron
4342c010f6 improve info sharing between bounds, reorganize code, fix bug in presolve found by lns 2018-12-19 16:05:16 +01:00
Laurent Perron
b7980e7bb2 work on info sharing between workers; disable bounds sharing in parameters 2018-12-18 11:42:14 +01:00
Laurent Perron
14096d7cf0 polish bound sharing code 2018-12-17 16:50:15 +01:00
Laurent Perron
a510e8e19b tentative variable bound sharing between threads 2018-12-16 23:18:40 +01:00
Laurent Perron
daa1cfa828 lazy reasons for linear constraints 2018-12-14 15:20:16 +01:00
Laurent Perron
b70c189167 minor fix in CP element; improve time limit support of CP-SAT during presolve; clean up lower bound sharing code in parallel CP-SAT 2018-12-10 17:33:20 +01:00
Laurent Perron
49816f439b experimental objective lower bound sharing in // CP-SAT search 2018-12-06 17:16:54 +01:00
Laurent Perron
ee3520a5a1 remove GG_LL_FORMAT from code; reorganize SAT-LP connection; fix bug in routing library 2018-12-03 14:26:31 +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
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
Laurent Perron
68dee31810 fix 2018-10-02 14:09:29 +02: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
ae5e4fd5c1 optim on the sat solver 2018-09-24 11:08:10 +02:00
Laurent Perron
53863acd62 [SAT/Java] ILiteral -> Literal; [SAT] fix a few english mistakes 2018-09-14 13:24:34 +02:00
Laurent Perron
01815e2d6d fix bug in the sat scheduling code found by the rcpsp 2018-09-13 16:26:03 +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
70e73d8754 clang-format 2018-06-08 16:40:43 +02:00
Laurent Perron
78743bdb1c fix bug when solving without presolve 2018-06-04 17:44:18 +02:00
Laurent Perron
df333efbcd rewrite drat checker for sat; make fz presolve deterministic; more optims on sat internals 2018-05-03 15:00:06 +02:00
Laurent Perron
8623fc3580 speed up sat cumulative; add namespaces to base library + fix code 2018-04-11 13:00:30 +02:00
Laurent Perron
12c8d9dbc0 change the LP relaxation in the sat/circuit constraint; change API to accept a sparse set of arcs instead of next variables 2018-01-17 13:11:14 +01:00
Laurent Perron
88ef3d0302 remove std:: from std::min|max in comments; performance improvements on the SAT, bug fixes 2018-01-10 13:21:06 +01:00
Laurent Perron
8d7320b962 deep sync with base library; prepare for abseil.io integration 2017-12-08 14:52:49 +01:00
Laurent Perron
4cd6ecccb3 revisit time limit; add special sigint handler; fix bug in sat presolve with enforcement literals 2017-12-06 11:23:11 +01:00
Laurent Perron
86cd5bd83f fix a bug with optional integer variables in sat; change reason protocol 2017-11-20 11:35:29 +01:00
Laurent Perron
4f3bedfd34 experimental weighted circuit constraint for sat; improve sat internal for performance; add visualization library for IPython on sat/python 2017-11-17 11:27:29 +01:00
Laurent Perron
2c7a8bf8f6 change copyright date 2017-10-17 13:08:10 +02:00
Laurent Perron
086640da72 move graph code around; improve sat code 2017-09-29 15:08:48 +02:00
Laurent Perron
2003500276 improve sat performance 2017-09-06 10:18:51 +02:00
Laurent Perron
e42ef1e06e cleanups and minor syncs; sat: add LP guided heuristics 2017-08-03 10:20:59 -07:00
Laurent Perron
7155047b85 cleanup includes in sat 2017-07-27 11:28:55 -07:00
Laurent Perron
c6f128db17 simplify sat internals 2017-07-24 10:31:53 -07:00
Laurent Perron
7b357a2263 regroup all reversible integer value in a single repository 2017-07-06 04:56:28 -07:00
Laurent Perron
37eb235c56 internal improvements of the sat solver; change in the cp_model proto to support linear objective 2017-06-28 14:33:56 +02:00
Laurent Perron
0e50e4f5b8 work on sat; misc sync 2017-06-21 11:40:11 +02:00
Laurent Perron
6609fac882 AC all different in the SAT solver; change the way integer variables are encoded on top of boolean variables in the SAT solver; change protobuf utilities 2017-06-08 12:33:16 +02:00
Laurent Perron
cbd8ba8641 introduce array slices and use them in sat 2017-06-01 16:28:29 +02:00
Laurent Perron
e3d72e5b3b add cp_model proto to the sat solver 2017-05-29 14:45:17 +02:00
Laurent Perron
f8246cd16d improve performance on sat solver 2017-05-16 10:43:07 +02:00
Laurent Perron
c7d9318c75 more cleanup 2017-04-28 16:17:22 +02:00
Laurent Perron
8c08d72260 replace hash_map and hash_set by unordered_map and unordered_set 2017-04-27 17:34:24 +02:00
Laurent Perron
4db7d3bc4e remove hash_map/hash_set; replace with std::unordered_map|set 2017-04-27 14:14:05 +02:00
Laurent Perron
66b8d23079 move src to ortools; simplified python generation; remove some namespaces in the ortools/base helper files 2017-04-26 17:30:25 +02:00