96 Commits

Author SHA1 Message Date
Laurent Perron
4a8c993703 [CP-SAT] better detection of encoding and element constraint; improve linearization for them; start rewriting postsolve code; misc presolve improvements; remove bounds from CpSolverResponse; support storing multiple solutions in CpSolverResponse 2021-10-01 13:44:11 +02:00
Laurent Perron
703f4c52d6 fix 2021-09-29 16:36:42 +02:00
Laurent Perron
6758c73d2f fix 2021-09-29 16:18:52 +02:00
Laurent Perron
80987d328b [CP-SAT] rewrite element expand; improve lin_max linear relaxation; detect value element and add linear relaxation; plenty of bug fixes 2021-07-23 21:59:20 +02:00
Mizux Seiha
8bb54b04ef Bump Copyright to 2021
FYI:
find ortools \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/\(Copyright 2010\)-2018/\1-2021/g'
2021-04-01 21:00:53 +02:00
Corentin Le Molgat
a40143cdd2 cpp: Migrate int64 to int64_t 2021-04-01 20:20:43 +02:00
Laurent Perron
bad5c2032b int64 -> int64_t 2021-03-04 18:26:01 +01:00
Laurent Perron
7ed855af90 remove near zero terms when converting MIP models for CP-SAT; add small presolve, and root node propagation 2020-11-16 17:01:21 +01:00
Laurent Perron
94d61a273b [GLOP] add solution polishing to increase its integrality; [CP-SAT] new stats exported, fix java samples, add quick_restart_no_lp to search diversification 2020-11-16 08:44:14 +01:00
Laurent Perron
6467dc69b0 reformat the code; [CP-SAT] add dominated columns presolve 2020-10-28 13:42:51 +01:00
Mizux Seiha
20d0496bfb reapply google format 2020-10-23 00:45:17 +02:00
Laurent Perron
a4258f2bdf switch flags setters and getters to the absl format 2020-10-21 00:21:54 +02:00
Laurent Perron
bcb7b3073d large synchro with internal code: linear solver: introduce intermediate SCIP layer called gscip; sat: more work on slow propagation detection; base: remove statusor, use abseil version; constraint solver: more work on internal local search 2020-10-18 16:38:25 +02:00
Laurent Perron
76871a4403 fix bugs in CP-SAT 2020-10-06 17:57:20 +02:00
Laurent Perron
484aafb903 A few fixes on CP-SAT; work on scheduling LP cuts 2020-10-01 18:08:34 +02:00
Laurent Perron
456a73d213 improve cut numerical precision; speed up presolve; fix bug with inverse constraint expansion 2020-02-03 16:21:57 +01:00
Laurent Perron
45a04053e4 polish integer reasons 2020-01-20 10:51:53 +01:00
Laurent Perron
76cf068598 remove most of flatzinc presolve; fix missing presolve in cp-sat; improve cut managements in cp-sat 2020-01-07 16:51:46 +01:00
Laurent Perron
f9f2d7b5b4 [CP-SAT] improve presolve; improve linear subsystem 2019-12-16 12:34:56 +01:00
Laurent Perron
248210b21c full sync cp-sat 2019-10-25 14:26:16 +02:00
Laurent Perron
8572f97c28 reindent cp_model.py; fix Domain swig; rename test 2019-05-17 10:27:41 +02:00
Laurent Perron
95e89c5175 more work on CP-SAT presolve, and CP-SAT - GLOP connection 2019-05-14 17:55:28 +02:00
Laurent Perron
39cae88902 add new routing LS operator; add Abs() propagator + presolve to CP-SAT; cache RINS info in CP-SAT 2019-04-25 18:12:35 +02:00
Laurent Perron
9038067e67 minor improvements in CP-SAT 2019-02-28 17:07:29 +01:00
Laurent Perron
7c87356c17 internal cleaning 2019-02-28 15:42:50 +01:00
Laurent Perron
c122f20fa7 [CP-SAT] Implemented division with numerator and target spanning across 0, and constant denominator 2019-02-28 13:30:10 +01:00
Laurent Perron
c0b4ac617c speed IntegerSumLe in CP-SAT 2019-01-07 18:04:31 +01:00
Laurent Perron
295ffdbfcf small speedup in CP-SAT integer expressions 2019-01-07 15:41:24 +01:00
Laurent Perron
3055dcaa50 reorganize info sharing in parallel search 2018-12-21 13:59:58 +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
daa1cfa828 lazy reasons for linear constraints 2018-12-14 15:20:16 +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
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
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
8623fc3580 speed up sat cumulative; add namespaces to base library + fix code 2018-04-11 13:00:30 +02: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
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
c91cba70c9 simplify sat internals; add propagator for x*x in sat 2017-07-21 11:13:10 -07:00
Laurent Perron
7b357a2263 regroup all reversible integer value in a single repository 2017-07-06 04:56:28 -07: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
f8246cd16d improve performance on sat solver 2017-05-16 10:43:07 +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