Commit Graph

120 Commits

Author SHA1 Message Date
Laurent Perron
9d1803cee2 [CP-SAT] bugfixes; more work on cuts on graphs 2022-04-07 17:59:22 +02:00
Laurent Perron
2a5a2b7069 remove types warnings; add stronger scheduling cuts 2022-04-06 17:33:00 +02:00
Laurent Perron
c82cfdc9ad remove map_util from most of the code; absl::make_unique and absl::optional -> stl version 2022-03-09 09:08:40 +01:00
Laurent Perron
19667205a2 std::set/map -> absl::btree_set/map 2022-02-25 09:47:39 +01:00
Laurent Perron
8fe2df9a18 [CP-SAT] regenerates all includes; improve core solver when the objective is pseudo-boolean 2022-02-15 18:00:11 +01:00
Laurent Perron
89ea9e4eeb [CP-SAT] improve presolve on combinations of linear constraints; stricter validation of models coming from MPSolver; remove some contentions on the mutex regulating workers new info shared centrally; remove wrongs DCHECKs in the expansion phase; rewrite multithreading and workers control; allows specifying which workers to run in the portfolio; periodically import shared info in lb_tree_search 2022-02-09 10:52:29 +01:00
Laurent Perron
321d02c17c more strong integer types; use them in CP-SAT; polish shaving code; remove 1 overflow in cuts 2022-02-07 14:31:18 +01:00
Laurent Perron
068a71104a [CP-SAT] fix cumulative presolve; use strong_index 2022-02-04 14:20:08 +01:00
Corentin Le Molgat
4defaa23ed Export strong_int.h 2022-01-31 18:44:25 +01:00
Laurent Perron
c80b2c1154 [CP-SAT] add utilities to inspect the objective scaling, and get better back-scaling of the internal objective; fix a few corner bugs in presolve/postsolve/checker 2021-11-28 13:04:58 +01:00
Laurent Perron
cfeb2e49d7 [CP-SAT] Reservoir constraint uses affine expression for the time part; rename fields in the reservoir constraint 2021-11-25 14:53:05 +01:00
Laurent Perron
50e38f1750 [CP-SAT] accept affine expressions as argument of AllDiff 2021-11-23 21:38:20 +01:00
Laurent Perron
9a5986631e [CP-SAT] improve modulo propagator 2021-10-28 15:44:12 +02:00
Laurent Perron
99a06cf328 [CP-SAT] remove division expansion; implement general division propagator; improve internal APIs; fix bug and simplify code on lb_tree_search 2021-10-27 13:22:27 +02:00
Laurent Perron
93c7e252eb [CP-SAT] Cleanup propagator API 2021-10-25 16:30:57 +02:00
Laurent Perron
1eec259105 [CP-SAT] Cleanup intervals (remove start/size/end fields, remove _view from the other ones); change demands and capacity of the cumulative constraint to affine expressions; remove the experimental energies field from the cumulative constraint; first pass at detecting linear encoding of product of variab;es. This happens when both variables are encoded by the same literals, in an exactly_one relation; speed up the lb_tree_search worker 2021-10-20 19:50:09 +02:00
Laurent Perron
d5c777ddfa [CP-SAT] detect connected components in the model and start using the info in LNS; display var/constraints stats during search; simplify model loader; improve presolve 2021-10-16 14:48:43 +02:00
Laurent Perron
1ea133254a [CP-SAT] improve scheduling default search 2021-09-13 14:09:11 +02:00
Laurent Perron
8aa13ac64a [CP-SAT] revamp interval APIs 2021-09-08 21:19:57 +02:00
Laurent Perron
cb9565edd7 improve clause cleaning; polish max affine cut code 2021-08-12 15:25:35 +02:00
Laurent Perron
5879441a97 [CP-SAT] add quadratic term to the linear constraint builder 2021-07-01 17:44:12 +02:00
Laurent Perron
1fbe3b8f0d fix routes constraints 2021-06-17 22:22:00 +02:00
Laurent Perron
dd85ab7a03 [CP-SAT] reorganize loader/linear_relaxation/cut code; improve SchedulingConstraintHelper; fix/speedup diffn propagation and cuts 2021-06-04 08:35:20 +02:00
Laurent Perron
00ad4a5bee [CP-SAT] implement lb_tree search; speedup diffn (presolve, propagation); implement median search; remove unused affine relation during presolve; add sub-solver search statistics 2021-05-25 23:05:12 +02:00
Laurent Perron
8f307d1483 [CP-SAT] Fix wrong unsat; reduce model copy in LNS 2021-04-08 18:26:14 +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
0b284082aa inactive code for detecting symmetries in CP-SAT models; tweak linearization of ExactlyOne constraints; add a few TODOs on exactly one constraints 2021-01-20 14:55:36 +01:00
Laurent Perron
c80eec373b [CP-SAT] Change semantics/API of the reservoir constraint; added presolve on the reservoir constraint; experimental propagator for the reservoir constraint; fix #2293 2020-12-24 06:41:44 +01:00
Laurent Perron
cccc1b8120 more input validation, internal changes in the scheduling engine to accept affine expression in intervals 2020-12-04 17:50:43 +01:00
Laurent Perron
d5c7c48e79 int_type_indexed_vector -> strong_vector; polish cp-sat probing workers 2020-11-19 00:17:26 +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
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
fee3fbe3ab better treatment of 'infinite' propagation loops 2020-10-07 18:57:18 +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
4a1e29fafb polish first scheduling cuts; fix bugs in workers synchro; fix rage bug in scheduling; fix inconsistent optimal value; fix #2153 2020-09-12 17:48:48 +02:00
Laurent Perron
7268ce5589 add incremental in-search preprocessing to SAT; fix #2040; fix rare check in glop 2020-06-03 12:07:07 +02:00
Laurent Perron
581d5606e0 fix #2005; massive rewrite of pure sat processing; RINS/RENS improvements in CP-SAT; get rid of base/status.h in favor of the absl version 2020-05-06 18:22:10 +02:00
Laurent Perron
e1c1828b62 fix sat presolve with complex encoding interactions; speed-up scheduling code 2020-02-24 17:10:20 +01: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
e9342c2bc5 used strongly typed reversible data structures 2020-01-21 11:00:12 +01:00
Laurent Perron
dc3d9ccf84 internal improvemensts 2019-12-05 16:36:11 +01:00
Laurent Perron
42676d6535 update base libraries; improve sat internals 2019-11-25 12:02:25 +01:00
Laurent Perron
2ff000ab9a bump abseil to the latest version, adapt the code all around 2019-11-20 14:28:11 -08:00
Laurent Perron
b60ed00a8f speedup sat probing 2019-10-23 17:35:31 +02:00
Laurent Perron
d0081e5409 more work on CP-SAT internals 2019-09-27 17:01:54 +02:00