Commit Graph

165 Commits

Author SHA1 Message Date
Laurent Perron
ce58010fb2 memory optimization; speed optimization; fix #4047 2024-01-12 16:31:18 +01:00
Laurent Perron
e9c81911c4 [CP-SAT] memory optimizations; improve no_overlap_2d; change default parameters 2024-01-10 16:42:04 +01:00
Laurent Perron
429f04ab8a [CP-SAT] optimize linear constraint memory; add go code and samples (without any build instructions) 2024-01-08 10:52:30 +01:00
Mizux Seiha
a76bf1c5dd bump license boilerplate 2024-01-04 13:43:15 +01:00
Laurent Perron
fd3c1084c1 [CP-SAT] remove base/cleanup; rewrite code that stores decision strategies to natively use affine expression 2023-12-07 19:17:57 +01:00
Laurent Perron
037a0a8f3e [CP-SAT] reduce memory consumptions for large linear models; fix #3965 2023-11-07 14:07:11 +01:00
Laurent Perron
bcf402180b [CP-SAT] better logging of infeasible constraint during presolve; improved scheduling search 2023-10-27 13:47:04 +02:00
Laurent Perron
ae8bb2dd23 [CP-SAT] rewrite the after solver LP log 2023-10-19 21:58:05 +02:00
Laurent Perron
01dd97f64e [CP-SAT] support int_prod with arity > 2; fix a few bugs, mostly around unsat models; add parameters for lp tolerance; optimize the code on hot spot 2023-10-18 15:47:37 +02:00
Laurent Perron
a7b26f6d8d [CP-SAT] new example; regroup some linear code 2023-09-23 10:16:08 +02:00
Laurent Perron
7d0d173a0f [CP-SAT] optimize feasibility jump; optimize linear presolve; better presolve logging; fix #3917; rewrite and simplify search heuristics code 2023-09-13 18:16:28 +02:00
Laurent Perron
fa6883d544 mostly cleaning: remove integral_types.h and basictypes.h 2023-08-24 14:52:54 +02:00
Laurent Perron
823ce1188c [CP-SAT] better management of cuts; better overflow detection; do not run feasibility_jump if search is globally finished; fix #3842 2023-07-04 14:11:25 +02:00
Laurent Perron
c3fdb12908 Switch algorithms and scheduling python libraries from swig to pybind11; switch protobuf support from forced serialization to pybind11_protobuf -- with patch; [CP-SAT] rewrite cut management; reformat samples with black 2023-06-30 22:49:35 +02:00
Laurent Perron
7ff7fe8a56 [CP-SAT] revisit cut code; add new API to MaxBoundedSubsetSum 2023-06-06 13:14:57 +02:00
Laurent Perron
224a38f87f cleanup code 2023-05-24 11:42:11 +02:00
Laurent Perron
ff3bbcc0b3 [CP-SAT] improve cut management 2023-05-10 17:19:43 +02:00
Laurent Perron
31157e3aaa [CP-SAT] improve cut management 2023-05-06 09:04:12 +02:00
Laurent Perron
8348ec8f94 [CP-SAT] Switch cut code to int128; more work on feasibility_jump and violation_ls 2023-05-03 09:33:50 +02:00
Laurent Perron
dbaef62eb5 [CP-SAT] improvements to feasibility_jump, better presolve on lin_max; tuning 2023-04-21 12:48:03 +02:00
Laurent Perron
f28ee9a594 fix shared worker trees; experimental LS code (just starting). 2023-03-22 19:37:00 +01:00
Laurent Perron
329c7b1270 [CP-SAT] polish alldiff expansion and cuts; improve cut tooling 2023-02-03 16:13:06 +01:00
Laurent Perron
c6fbcf57e4 speed up linear relaxation, cuts code 2023-02-01 17:46:22 +01:00
Laurent Perron
806fcd185e CP-SAT optimize LinMax propagator; linear constraint; adapt pybind11 to new protobuf API 2023-01-27 16:53:53 +01:00
Laurent Perron
49a72a8d67 [CP-SAT] fix #3643 2023-01-25 18:36:12 +01:00
Laurent Perron
73e4f75445 [CP-SAT] rewrite cut massaging procedure (cover, flow, knapsack) 2023-01-24 17:03:43 +01:00
Laurent Perron
77868b5d61 [CP-SAT] rewrite cut helper; add flexibility in all_diff expansion; improve all_diff cut generator and add relaxation 2023-01-16 13:26:55 +01:00
Laurent Perron
2264cb9059 [CP-SAT] more aggregate presolve; fix bug with no_overlap and duplicated intervals; add parameter for the probing time limit; use all threads to find the first solution while the lns workers are idle; tweak lb_tree_search by allowing more glop iterations at the root node 2022-11-29 14:39:27 +01:00
Laurent Perron
256e717b90 [CP-SAT] reorganize synchronization code; improve linear cuts strenthening 2022-10-25 20:31:33 +02:00
Laurent Perron
300e5db82f [CP-SAT] move routing cuts it their own files; more work on new linear propagation 2022-10-11 14:28:56 +02:00
Laurent Perron
44df511ac5 [CP-SAT] bugfixes, better processing of overflows in cuts; add a few more dual reductions 2022-07-04 12:28:55 +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
f119e22b5b [CP-SAT] improve cumulative propagation, use precedence graph; speedup timetable and cumulative_energy; remove reduced_memory parameter 2022-06-23 16:16:17 +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
32d351b96c [CP-SAT] more presolve linear + at_most/exactly_one; tweak scheduling lns code 2022-05-25 16:33:30 +02:00
Laurent Perron
f3b935a371 [CP-SAT] better encoding/compression of the table constraint; better scheduling LNS (follow laborie/nuijten/godard 2005 article; stronger presolve on linear when some variables belong to a at_most_one/exactly_one; improve cut management routine 2022-05-24 07:52:06 +02:00
Laurent Perron
ba15d312ba [CP-SAT] improve cuts diversity; fix infinite loop in the ttef constraint; improve var domination; remove wrong DCHECK 2022-05-11 17:23:59 +02:00
Laurent Perron
3ed32f3dd3 [CP-SAT] Add new scheduling lns; improve cover cuts; improve the propagation of the timetable constraint; speed-up domination detection (abort early if possible); remove deprecated knapsack cut code 2022-05-09 14:44:50 +02:00
Laurent Perron
5b87373be5 [CP-SAT] work on scheduling cuts 2022-04-21 17:29:56 +02:00
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
57a84edf47 backtrack last PR 2022-02-24 17:58:22 +01:00
Laurent Perron
f1191a0e8f maintenance on the CP-SAT core 2022-02-24 17:41:17 +01:00
Laurent Perron
5e41f40c2f remove range-loop warnings from the sat code 2022-02-24 14:17:43 +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
641d3d2c5e [CP-SAT] reuse vectors in cuts; remove dead code; fix bug in abs(x) in domain presolve; fix #3084 2022-01-17 16:31:41 +01:00
Laurent Perron
733a4b5422 [CP-SAT] better processing of double objective; add one more symmetry breaking presolve rule; add objective rounding cut; remove IntegerArgumentProto message 2021-11-19 17:58:53 +01:00
Laurent Perron
34b26eb5b0 [CP-SAT] reorganize linear code; tweak lb_tree_search code 2021-10-29 14:02:25 +02:00
Laurent Perron
3414942957 [CP-SAT] add parameter to control the size of the solution pool; improve expand of multiplications spanning across 0; fix scaling bug 2021-09-14 17:32:15 +02:00