Commit Graph

160 Commits

Author SHA1 Message Date
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
20b1c7eeab [CP-SAT] Speedup timetable, fix bug in base SAT engine, improve scheduling cuts 2022-04-20 17:38:59 +02:00
Laurent Perron
2a5a2b7069 remove types warnings; add stronger scheduling cuts 2022-04-06 17:33:00 +02:00
Laurent Perron
1605046dba remove diffn energetic propagator, use the cumulative_energy overload checker 2022-03-21 17:37:47 +01:00
Laurent Perron
0274d021cc [CP-SAT] reduce amount of logging 2022-02-11 13:40:22 +01:00
Laurent Perron
aba1f15139 polish 2022-02-09 14:07:25 +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
ac28232456 [CP-SAT] rewrite probing search; fix bug with missing propagation on the first binary clause learned 2022-02-05 10:39:14 +01:00
Laurent Perron
068a71104a [CP-SAT] fix cumulative presolve; use strong_index 2022-02-04 14:20:08 +01:00
Laurent Perron
f339e626bd [CP-SAT] code cleaning; add probing info to the log 2022-01-26 15:54:33 +01:00
Laurent Perron
22e1f47e0a [CP-SAT] more presolve on small linear constraints; share clauses of size 2 across workers 2022-01-26 10:07:13 +01:00
Laurent Perron
ab519a8339 [CP-SAT] ignore names in presolved model 2022-01-24 13:35:16 +01:00
Laurent Perron
ed482ad165 rework on linear inequality dominance and inclusion 2022-01-21 12:01:23 +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
0fa4545ed5 [CP-SAT] fix int_prod presolve; better checker; better treatment of floating point constraints (from the linear solver) and objective 2021-12-08 11:48:02 +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
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
f317305497 remove dead code 2021-10-21 14:35:28 +02:00
Laurent Perron
4482483be3 [CP-SAT] remove dead code 2021-10-21 13:37:15 +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
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
bc2ab43d03 [CP-SAT] various fixes for corner cases in presolve, checker; added some presolve for all_diff and bool_xor; internal cleanup 2021-09-27 19:40:36 +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
Laurent Perron
a18d290bd7 [CP-SAT] fix more corner cases in checker and presolve 2021-09-01 11:53:03 +02:00
Corentin Le Molgat
454bb2cb44 fix .Net and Java build 2021-08-27 13:27:33 +02:00
Laurent Perron
cc6c89823c better treatment of solution hints; add checks 2021-08-25 16:35:47 +02:00
Laurent Perron
a6e92bef4e change default number of cores for CP-SAT to zero, which will tell the solver to use the number of available cores 2021-08-20 13:39:24 +02:00
Laurent Perron
f10a3e781b [CP-SAT] add int_abs cuts; parametrize the max domain size to encode size 2 eq/neq constraints using clauses; tweak clause deletions policy 2021-08-18 11:20:51 +02:00
slowy07
2e0ec51049 fix: typo spelling grammar 2021-08-16 10:49:00 +02:00
Laurent Perron
43da47a463 [CP-SAT] polish no_overlap presolve; add LinearExpr.Affine() API in java/C#; tweak LinearExpr C++ API 2021-06-09 11:16:48 +02:00
Laurent Perron
1c41f16019 [CP-SAT] Improve presolve for diffn and no_overlap 2021-06-08 10:41:40 +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
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
4d1b9d227f capture CP-SAT log in python/java/.NET; visual tweak of the log; tweak the logging facilities for CP-SAT 2021-03-11 21:07:17 +01:00
Laurent Perron
9de99d789e improve logging facilities, use it in the CP-SAT solver 2021-03-10 11:40:28 +01:00
Laurent Perron
4e47a4b46c fix #2314 2021-03-01 11:44:33 +01:00
Laurent Perron
c820e87945 polish cp-sat service 2021-02-20 14:28:47 +01:00
Laurent Perron
0ebe02b199 enable symmetry detection by default 2021-02-15 10:13:35 +01:00
Laurent Perron
dfe40729e2 [CP-SAT] compute symmetries during presolve; save them in the cp_model.proto 2021-02-07 00:46:28 +01:00
Laurent Perron
111f43b139 add deterministic time limit to the graph symmetry finder; improve support for scheduling constraints in regular LNS for CP-SAT; improve symmetry detection for CP-SAT 2021-02-03 15:39:48 +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
3f177174a8 [CP-SAT] rewrite random management; experimental support for affine expressions in the interval definition; cache precedence literals and constraints across reservoir constraints; fix presolve for the element constraint 2020-12-18 10:16:56 +01:00
Laurent Perron
ad194e85fb polish probing code 2020-11-19 18:12:18 +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
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