Commit Graph

116 Commits

Author SHA1 Message Date
Laurent Perron
044bc5ebce speed up sat scheduling code 2023-10-25 17:05:22 +02:00
Laurent Perron
a7b26f6d8d [CP-SAT] new example; regroup some linear code 2023-09-23 10:16:08 +02:00
Laurent Perron
b8f224a8e1 [CP-SAT] tweak default search; improve scheduling cuts; move no_overlap_2d cuts in its own file; improve feasibility_jump; improve and speedup presolve 2023-09-21 13:07:09 +02:00
Laurent Perron
5024c23691 [CP-SAT] new lns (graph_dec_lns); internal code cleaning 2023-06-22 15:43:31 +02:00
Laurent Perron
24ea806809 [CP-SAT] work on scheduling 2023-06-14 15:13:14 +02:00
Laurent Perron
224a38f87f cleanup code 2023-05-24 11:42:11 +02:00
Laurent Perron
0f58934ab8 re-add diffn checker 2023-05-12 18:17:23 +02:00
Laurent Perron
d5938972fc [CP-SAT] remove dead code; fix bug in zero-half cut 2023-05-11 22:06:00 +02:00
Laurent Perron
b45067a569 fix #3770 2023-05-11 21:09:09 +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
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
329c7b1270 [CP-SAT] polish alldiff expansion and cuts; improve cut tooling 2023-02-03 16:13:06 +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
49fbfe55af [CP-SAT] fix sat_interface after new parameter validation; support symmetry detection for bool_and with multiple enforcement literals 2022-11-18 16:54:28 +01:00
Laurent Perron
1dcb7e84f8 [CP-SAT] rewrite square relaxation on cut generation; remove dead presolve code 2022-10-13 12:53:55 +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
363a6fb198 [CP-SAT] more work on experimental linear propagation; fix #3483; start cleaning up the synchronization code 2022-10-03 18:12:14 +02:00
Laurent Perron
ba53ce319b [CP-SAT] fix experimental linear code; indent; do not create lb_tree_search when model does not contain objective; fix slow termination 2022-09-27 18:04:47 +02:00
Laurent Perron
5b44519e94 [CP-SAT] various bugfixes from fuzzer 2022-08-29 17:47:30 +02:00
Laurent Perron
0f122297a9 fix scheduling cuts 2022-08-21 18:05:35 +02:00
Laurent Perron
0b0f33b8ce [CP-SAT] add diophantine equation solver; improve CumulativeTimeTable cuts 2022-08-18 17:32:24 +02:00
Laurent Perron
29a9e59653 [CP-SAT] more dual reductions 2022-07-28 00:22:33 +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
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
1deadc71d7 [CP-SAT] Improve scheduling lns; use linearized energy in cumulative_energy; more presolve with linear + at_most/exactly one constraints; validate a few more parameters 2022-05-31 15:40:47 +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
d99e3c679c fix #3253 2022-04-25 15:35:31 +02:00
Laurent Perron
5b87373be5 [CP-SAT] work on scheduling cuts 2022-04-21 17:29:56 +02:00
Laurent Perron
20b1c7eeab [CP-SAT] Speedup timetable, fix bug in base SAT engine, improve scheduling cuts 2022-04-20 17:38:59 +02:00
Laurent Perron
3ba6968b67 [CP-SAT] improve scheduling cuts and explanations 2022-04-14 16:42:13 +02:00
Laurent Perron
2a5a2b7069 remove types warnings; add stronger scheduling cuts 2022-04-06 17:33:00 +02:00
Laurent Perron
2df403eff8 fix fuzzer bugs 2022-03-26 16:40:53 +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
a1b369d4c8 [CP-SAT] speedup presolve; fix platform non determinism fix @2056; add symmetry detection for model with scheduling constraints 2022-01-08 14:44:59 +01:00
Laurent Perron
bd1b682010 [CP-SAT] presolve remove size 0 intervals from no_overlap; no_overlap_2d improvements to the propagator; remove spurrious check in linear_relaxation; improve code the code of energetic cuts; force 1 worker when using assumptions 2021-12-22 09:52:46 +01:00
Laurent Perron
457cc1432e [CP-SAT] add lifted energetic cuts for no_overlap_2d; remove implicit ctor BoolVar -> IntVar; better presolve for LinMax; improve reservoir doc 2021-12-17 10:28:26 +01:00
Laurent Perron
0c22a715b2 [CP-SAT] improve doc on C++ builder API; rewrite python API to remove the DoubleLinearExpr class 2021-12-14 17:15:17 +01:00
Laurent Perron
9989323661 [CP-SAT] Polish NoOverlap2d new code 2021-12-13 14:24:57 +01:00
Laurent Perron
dbe177a0fb [CP-SAT] Support optional intervals in no_overlap_2d; add energetic cut to no_overlap_2d; disable cumulative relaxation of no_overlap_2d by default; fix #3012 2021-12-13 10:47:57 +01:00
Laurent Perron
50e38f1750 [CP-SAT] accept affine expressions as argument of AllDiff 2021-11-23 21:38:20 +01:00
Laurent Perron
5b1a99e330 [CP-SAT] allow double coefficients in the objective 2021-11-19 00:28:44 +01:00
Laurent Perron
b42582de27 [CP-SAT] better use of symmetries; better presolve of products; add affine API in the python API; fix linearization of products 2021-11-16 23:55:30 +01:00
Laurent Perron
fc4cbe4a34 [CP-SAT] polish no_overlap_2d relaxation code 2021-11-15 19:42:38 +01:00
Laurent Perron
62088d593b [CP-SAT] polish code 2021-11-14 17:24:37 +01:00
Laurent Perron
f76c909bc4 [CP-SAT] add no_overlap_2d linear relaxation 2021-11-14 15:45:37 +01:00
Laurent Perron
3c591609bf [CP-SAT] change primal integral to gap integral; change arguments of product, division, modulo to be affine expression instead of variables 2021-11-13 08:38:21 +01:00
Laurent Perron
5b6ecfcc0b fix #2889 2021-11-10 11:54:27 +01:00