Commit Graph

134 Commits

Author SHA1 Message Date
Laurent Perron
701cc87e1e backport from main: sat, graph, lp_data, glop 2024-09-13 13:29:25 -07:00
Laurent Perron
76f2f4c383 [CP-SAT] internal protocol improvements; bug fixes 2024-09-03 18:19:19 +02:00
Laurent Perron
99d869a4a1 [CP-SAT] more span; minor scheduling optims 2024-08-02 19:57:27 +02:00
Laurent Perron
21a75638c2 partial sync with main (without the routing part) 2024-07-12 13:56:11 +02:00
Laurent Perron
ec453aafb6 [CP-SAT] fix best bound callback non C++ code; more work on pseudo-costs 2024-05-30 10:52:46 +02:00
Laurent Perron
d28edd701c [CP-SAT] code cleanup; more pseudo-cost experimental code; add objective best bound callback 2024-05-30 10:52:46 +02:00
Laurent Perron
4fa0d282ac [CP-SAT] fix overflow in search heuristic evaluation; improve pseudo-cost implementation; use it in lb_tree_search; propagate hints when creating encoding literals 2024-05-30 10:52:46 +02:00
Laurent Perron
9339193629 [CP-SAT] fixes and speed improvements 2024-02-15 08:46:38 +01:00
Laurent Perron
b2ea6266f6 [CP-SAT] code cleanup: remove optional integer variables 2024-01-23 14:15:38 +01:00
Mizux Seiha
a76bf1c5dd bump license boilerplate 2024-01-04 13:43:15 +01:00
Laurent Perron
946f9453d9 [CP-SAT] more code cleanup; add inline log callbacks for C++ 2023-12-21 09:37:59 +01:00
Laurent Perron
5bd09c376e [CP-SAT] fix c++ decision strategy API; fix #4013; tweak in processing and its parameters; tweak energetic diffn code 2023-12-12 16:20:02 +01:00
Laurent Perron
47fcebdea6 [CP-SAT] fix sharing bug where some fixed Boolean variables were not shared; use new no_overlap_2d propagator in scheduling workers; improve probing code 2023-12-06 14:15:16 +01:00
Laurent Perron
00fd31bd6d [CP-SAT] rewrite clause management; improve probing by probing clauses and at_most_ones from the SAT engine; experimental no_overlap_2d energetic propagator code 2023-12-04 15:06:08 +01:00
Laurent Perron
ddec42c60c enable simplification in probing 2023-11-27 11:36:33 +01:00
Laurent Perron
990fc9eb4a [CP-SAT] simplify clauses periodically (off by default); remove pure sat code path 2023-11-22 14:48:08 +01:00
Laurent Perron
199af98e3f [CP-SAT] fix feasibility_jump bug 2023-11-02 18:06:20 +01:00
Laurent Perron
185b77cea0 [CP-SAT] limit effort in feasibility_jump; new experimental scheduling search on cumulative 2023-10-29 15:31:06 +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
9e2770f8bd [CP-SAT] extensive work on scheduling; add new cumulative with profile example 2023-10-08 11:21:00 +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
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
ff8e0d249b tweak subsolvers list; add focus on terms parameters to lb_objective_search; fix bug in shared_tree 2023-08-09 14:25:48 -07: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
09d534a2b7 [CP-SAT] rewrite Rins/Rens; fix #3825; cleanups 2023-06-17 12:10:17 +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
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
e9f9404923 Remove logging code; use absl one 2023-01-31 20:46:43 +01:00
Laurent Perron
5035573759 [CP-SAT] better symmetry handling; more robust LP search 2022-12-15 13:25:41 +01:00
Laurent Perron
e4c6bbb327 [CP-SAT] better expand_objective during presolve; improved implementation of obj_lb_search; refactor search code 2022-12-15 10:37:30 +01:00
Laurent Perron
c08b48d25b [CP-SAT] improve oveflow detection in cuts; fix fingerprint; add objective_lb_search 2022-12-12 17:19:20 +01:00
Laurent Perron
1ca305fa1c [CP-SAT] improve processing of hints; fix bug with median_value heuristic; misc cleanup 2022-11-15 16:47:05 +01:00
Laurent Perron
8948fcc24b [CP-SAT] cleaning 2022-10-17 17:11:59 +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
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
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
29662f2006 [CP-SAT] Improve assumptions algorithm; tweak lb_tree_search 2022-02-17 16:20:21 +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
fca9e871d3 simplify previous code 2022-02-11 15:02:47 +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
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
19760f2791 [CP-SAT] polish shaving/probing code 2022-02-05 17:25:28 +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
f339e626bd [CP-SAT] code cleaning; add probing info to the log 2022-01-26 15:54:33 +01:00
Laurent Perron
18d001912d remove ortools/base/random.h|cc; adapt code everywhere; increase robustness of glop preprocessor 2021-12-06 14:03:19 +01:00