Commit Graph

118 Commits

Author SHA1 Message Date
Laurent Perron
ebb88d9c50 [CP-SAT] fix corner cases in presolve; rewrite part of the cut management; automatic fixes 2023-05-30 23:25:31 +02:00
Laurent Perron
224a38f87f cleanup code 2023-05-24 11:42:11 +02:00
Laurent Perron
8f2d5de90b [CP-SAT] fix #3706, add experimental work-stealing workers, fix minor bugs; improve subsolver multi-thread code 2023-03-15 11:54:58 +01:00
Laurent Perron
e544d1d5e6 [CP-SAT] add debugging facilities; fix a few minor bugs 2023-03-02 17:05:04 +04:00
Laurent Perron
11f7c04f6c [CP-SAT] small memory reduction 2023-02-17 13:56:37 +01:00
Laurent Perron
0945e9a6fb [CP-SAT] export num integers in the stats; optimize large linear constraints 2023-02-16 15:31:27 +01:00
Laurent Perron
9efd6b02ca [CP-SAT] fix encoding bug 2023-02-15 09:23:11 -08:00
Laurent Perron
34161f7cff [CP-SAT] reduce memory used in the integer encoding; fix worker info not being displayed in the log 2023-02-14 17:35:45 -08:00
Laurent Perron
acda5d226d [CP-SAT] reduce memory usage of integer variables; add option to save model in binary format 2023-02-09 16:18:46 -08:00
Laurent Perron
d2657d29a0 [CP-SAT] add lin_max presolve; fix bug in int_prod 2022-11-21 15:35:30 +01:00
Laurent Perron
b43a75c88c [CP-SAT] fix integer reasons; use fast_hash to fingerprint equations 2022-11-17 16:28:49 +01:00
Laurent Perron
500cc2c701 [CP-SAT] polish scheduling code; add experimental new linear propagator 2022-09-23 18:09:18 +02:00
Laurent Perron
70abbdf825 [CP-SAT] IsModelUnsat -> ModelIsUnsat; fix bug with variables with holes in domain; fix cumulative energetic cut with makespan 2022-09-21 13:35:11 +02:00
Laurent Perron
4a0cf8b9e7 [CP-SAT] fix detection of makespan interval; add more presolve on nearly equivalent constraints 2022-07-19 23:30:50 +02:00
Laurent Perron
4c82ba2192 [CP-SAT] Improve linearization of product; cleanup presolve code around removable variables 2022-06-29 17:04:58 +02:00
Laurent Perron
87ca4f58ad [CP-SAT] bump license years; fix scheduling cuts; improve lb_tree_search 2022-06-16 15:21:00 +02:00
Laurent Perron
8af04faff5 [CP-SAT] introduce decomposed energy and use it in scheduling propagation and cuts; remove duplicate code in presolve; simplify the name of a few parameters; add SchedulingDemandHelper class; re-enable model status in search log 2022-06-16 07:45:19 +02:00
Laurent Perron
d99e3c679c fix #3253 2022-04-25 15:35:31 +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
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
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
8f5bfbc252 [CP-SAT] Fix performance bug on product/square cuts; polish new interval code 2021-09-10 15:11:11 +02:00
Laurent Perron
cc6c89823c better treatment of solution hints; add checks 2021-08-25 16:35:47 +02:00
slowy07
2e0ec51049 fix: typo spelling grammar 2021-08-16 10:49:00 +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
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
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
Laurent Perron
bad5c2032b int64 -> int64_t 2021-03-04 18:26:01 +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
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
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
e28a499b0f [CP-SAT] improve feasibility pump; improve scaling of linear model; internal improvements 2020-07-05 00:29:47 +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
6d61ac1cb0 query the domain from an IntVar in Python/Java/C# + tests; small speedup of sat reversible data structures 2020-01-24 12:20:08 -08:00
Laurent Perron
e9342c2bc5 used strongly typed reversible data structures 2020-01-21 11:00:12 +01:00