Commit Graph

91 Commits

Author SHA1 Message Date
Laurent Perron
bb6e091027 Switch parameters to proto3, propagate to all code, offer support in all languages 2016-02-03 15:15:58 +01:00
Laurent Perron
ff606941b0 lots of improvements:
- improve bop and sat performance
  - improve precision (tolerance) in glop
  - cp: improve performance of the element constraint (normal, and increasing)
  - cp: remove Action class, replace with functions, add API to replace demons by functions
2015-10-23 13:45:43 +02:00
Laurent Perron
ebd7b92d3f update most of the API from callbacks to std::function, port python, java and C# 2015-08-13 16:00:54 +02:00
Vincent Furnon
c72e5e727c CP Solver: small code cleanups. 2015-05-06 13:05:28 +02:00
Vincent Furnon
04095cc28e virtual to override change of the Constraint Solver code. 2015-04-16 15:49:51 +02:00
lperron@google.com
a8082e47eb small sync 2014-08-15 16:56:56 +00:00
lperron@google.com
e4b23d884f implement small sum~ 2014-07-18 21:32:02 +00:00
lperron@google.com
8d345e48c3 implemented small max constraint 2014-07-18 00:29:58 +00:00
lperron@google.com
5734fdf486 create small min constraint 2014-07-18 00:14:31 +00:00
lperron@google.com
1a4efa2e54 add empty line after licence part, in glop, implement portable floating point exceptions 2014-07-09 15:18:27 +00:00
lperron@google.com
98cd32d785 updated c++ code 2014-07-09 11:10:20 +00:00
lperron@google.com
ce01e69227 disable gcd check 2014-06-26 13:20:11 +00:00
lperron@google.com
ec712bc80e use GCD argument to fail early in positive boolean scalprod eq cst 2014-06-26 12:47:09 +00:00
lperron@google.com
bee77f38af recognize opposite of boolean scal prod 2014-06-26 12:32:22 +00:00
lperron@google.com
617af77115 minor rewrite; implement saving first solution heuristics for routing 2014-06-11 22:16:31 +00:00
lperron@google.com
6eeb140ec6 Do not create large boolean scal prod expr, crr, create the var instead 2014-05-25 16:34:08 +00:00
lperron@google.com
5224afc5cf speedup bacp 2014-05-25 02:29:50 +00:00
lperron@google.com
95b8a789ef deep linearize all scal prod apis 2014-05-24 21:03:56 +00:00
lperron@google.com
e10756dedc Linearize MakeScalProdEquality 2014-05-24 01:58:15 +00:00
lperron@google.com
9d1d8f3d26 upgrade in the base library (strings::Join now supports int and int64 vectors), file operations uses status; improve the code on symmetries; API for assumptions on sat 2014-05-13 12:56:44 +00:00
lperron@google.com
c6e148de2e fix 2014-05-12 08:55:11 +00:00
lperron@google.com
21bb097f2b shortcut when parsing scalprod 2014-05-12 06:53:10 +00:00
lperron@google.com
e670f9c46b new operator in routing (MakeActiveAndRelocate); first pass at replace concise_iterator by c++11 for 2014-04-15 09:38:36 +00:00
lperron@google.com
edce56744b symmetry breaking in local search, potential huge speedups in case there were many empty routes 2014-04-04 09:17:50 +00:00
lperron@google.com
96df1d4c97 sync with internal version; major work on sat solver (symmetries, speedups); speed up on routing library 2014-03-12 17:30:11 +00:00
lperron@google.com
54b10f910a reformat code using clang-format 2014-01-08 12:01:58 +00:00
lperron@google.com
05032ce679 remove using directives, in particular string -> std::string everywhere; speedups in the routing library 2013-12-16 10:24:42 +00:00
lperron@google.com
04f52bf0bb type corrections; improve code for Circuit/SubCircuit; Improve performance of routing moves/filters 2013-12-11 16:02:19 +00:00
lperron@google.com
aaa6627131 scoped_ptr -> unique_ptr; complete rewrite of expressions on top of interval variables; cleanup of cost data structures in the routing library; misc cleaning (keys in hash_maps are now const) 2013-12-05 09:29:08 +00:00
lperron@google.com
a103e53ba8 code cleaning; bug fix in MakeScalProd with zero coefs 2013-10-18 13:50:35 +00:00
lperron@google.com
936dad1e7f DebugStringVector->JoinDebugStringPtr; fix overflow in disjunctive and path cumul; fix routing model inside the sequence var 2013-10-17 08:58:26 +00:00
lperron@google.com
5700126591 added setup dependent transition times on the disjunctive class; renamed files with - in their names to _; plenty of changes in the base library and modifications in the rest of the code accomodate them; dropped support for vs 2010 by using the brand new c++11 iterators (for (int i : vector_of_ints) {}). This is so neat; removed SetCommandLines on the routing model. I added a temporary API with parameters. This API is not final and will change to its final version soon 2013-10-10 15:23:20 +00:00
lperron@google.com
452eea95cc 30% speedup on oc-roster, propagate constant in x * constant across abs and int_lin_le; Simplify int_lin_le by gcd; replace x + (-y) by x - y; do not create the IntAbsConstraint() always when the argument is a small var 2013-09-19 06:59:49 +00:00
lperron@google.com
ae2b3d6870 simplify scal_prod if all abs(coeeficients) are equals; gains 15% on oc-roster.mzn 2013-09-18 17:07:01 +00:00
lperron@google.com
85b4c80b50 more caching in MakeScalProd, adds small filters to MinConstraint::LeafChanged and MaxConstraint::LeafChanged to avoid calling PushUp 2013-08-01 23:49:28 +00:00
lperron@google.com
fd013b575b more caching in MakeScalProd, adds small filters to MinConstraint::LeafChanged and MaxConstraint::LeafChanged to avoid calling PushUp 2013-08-01 23:38:44 +00:00
lperron@google.com
7d4868e07f a bit a cleanup 2013-08-01 22:17:49 +00:00
lperron@google.com
bc302f16c4 sync with internal code; mostly reindent; implemented very naive circuit constraint. It is actually slower than the expanded version in minizinc; hook up the circuit constraint everywhere (io, flatzinc...) 2013-07-24 00:28:11 +00:00
lperron@google.com
524b955eb1 remove debug code 2013-07-22 18:33:01 +00:00
lperron@google.com
66510d7a85 remove log 2013-07-22 18:31:22 +00:00
lperron@google.com
139199fcb3 abort creating cast variables 2013-07-19 03:47:59 +00:00
lperron@google.com
253cad197a fix 2013-06-18 13:21:15 +00:00
lperron@google.com
0f76f66b81 improve propagation trace; fix bug in x * cst, cst < 0; fix missing propagation on safe interval expressions; speedup local search for slack cost in the routing library; revamp expression linearization in MakeSum and MakeScalProd 2013-06-18 09:43:51 +00:00
lperron@google.com
874aa36ead huge sync with internal version 2013-06-11 14:49:19 +00:00
lperron@google.com
dc1c72ab07 split Enqueue into EnqueueVar and EnqueueDelayedDemon 2012-09-07 15:27:53 +00:00
lperron@google.com
a744c07a3c introspect and linearize MakeSum 2012-09-05 15:52:00 +00:00
lperron@google.com
345ace1f86 clean expr_array code 2012-09-04 21:40:12 +00:00
lperron@google.com
9d2a791457 expose helpers when reinforcing constraints, add README in flatzinc examples to recognize Hakan's contribution; clean up some factory code; recognize special case of distribute as all different 2012-09-03 19:14:18 +00:00
lperron@google.com
2e8530d7eb plenty of bugs found by the minizinc challenge presubmission 2012-08-15 22:22:32 +00:00
lperron@google.com
07db8f9959 adds a lot of missing DebugSring() all around 2012-08-14 18:00:08 +00:00