Java Reference

Java Reference

Solver.java
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 4.0.1
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 package com.google.ortools.constraintsolver;
10 
13 
14 // Used to wrap DisplayCallback (std::function<std::string()>)
15 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html
16 import java.util.function.Supplier;
17 // Used to wrap std::function<bool()>
18 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/BooleanSupplier.html
19 import java.util.function.BooleanSupplier;
20 
21 // Used to wrap IndexEvaluator1 (std::function<int64(int64)>)
22 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongUnaryOperator.html
23 import java.util.function.LongUnaryOperator;
24 // Used to wrap IndexEvaluator2 (std::function<int64(int64, int64)>)
25 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongBinaryOperator.html
26 import java.util.function.LongBinaryOperator;
27 // Used to wrap IndexEvaluator3 (std::function<int64(int64, int64, int64)>)
28 // note: Java does not provide TernaryOperator so we provide it.
30 // Used to wrap std::function<int64(int, int)>
31 // note: Java does not provide it, so we provide it.
33 
34 // Used to wrap IndexFilter1 (std::function<bool(int64)>)
35 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongPredicate.html
36 import java.util.function.LongPredicate;
37 
38 // Used to wrap std::function<bool(int64, int64, int64)>
39 // note: Java does not provide TernaryPredicate so we provide it
41 
42 // Used to wrap std::function<void(Solver*)>
43 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
44 import java.util.function.Consumer;
45 
46 // Used to wrap ObjectiveWatcher (std::function<void(int64)>)
47 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongConsumer.html
48 import java.util.function.LongConsumer;
49 
50 // Used to wrap Closure (std::function<void()>)
51 // see https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html
52 import java.lang.Runnable;
53 
57 public class Solver {
58  private transient long swigCPtr;
59  protected transient boolean swigCMemOwn;
60 
61  protected Solver(long cPtr, boolean cMemoryOwn) {
62  swigCMemOwn = cMemoryOwn;
63  swigCPtr = cPtr;
64  }
65 
66  protected static long getCPtr(Solver obj) {
67  return (obj == null) ? 0 : obj.swigCPtr;
68  }
69 
70  @SuppressWarnings("deprecation")
71  protected void finalize() {
72  delete();
73  }
74 
75  public synchronized void delete() {
76  if (swigCPtr != 0) {
77  if (swigCMemOwn) {
78  swigCMemOwn = false;
79  mainJNI.delete_Solver(swigCPtr);
80  }
81  swigCPtr = 0;
82  }
83  }
84 
88  public static class FailException extends Exception {
89  public FailException() {
90  super();
91  }
92 
93  public FailException(String message) {
94  super(message);
95  }
96  }
97 
98  public IntVar[] makeIntVarArray(int count, long min, long max) {
99  IntVar[] array = new IntVar[count];
100  for (int i = 0; i < count; ++i) {
101  array[i] = makeIntVar(min, max);
102  }
103  return array;
104  }
105 
106  public IntVar[] makeIntVarArray(int count, long min, long max, String name) {
107  IntVar[] array = new IntVar[count];
108  for (int i = 0; i < count; ++i) {
109  String var_name = name + i;
110  array[i] = makeIntVar(min, max, var_name);
111  }
112  return array;
113  }
114 
115  public IntVar[] makeBoolVarArray(int count) {
116  IntVar[] array = new IntVar[count];
117  for (int i = 0; i < count; ++i) {
118  array[i] = makeBoolVar();
119  }
120  return array;
121  }
122 
123  public IntVar[] makeBoolVarArray(int count, String name) {
124  IntVar[] array = new IntVar[count];
125  for (int i = 0; i < count; ++i) {
126  String var_name = name + i;
127  array[i] = makeBoolVar(var_name);
128  }
129  return array;
130  }
131 
133  long start_min,
134  long start_max,
135  long duration,
136  boolean optional) {
137  IntervalVar[] array = new IntervalVar[count];
138  for (int i = 0; i < count; ++i) {
139  array[i] = makeFixedDurationIntervalVar(start_min,
140  start_max,
141  duration,
142  optional,
143  "");
144  }
145  return array;
146  }
147 
149  long start_min,
150  long start_max,
151  long duration,
152  boolean optional,
153  String name) {
154  IntervalVar[] array = new IntervalVar[count];
155  for (int i = 0; i < count; ++i) {
156  array[i] = makeFixedDurationIntervalVar(start_min,
157  start_max,
158  duration,
159  optional,
160  name + i);
161  }
162  return array;
163  }
164 
168  static public class IntegerCastInfo {
169  private transient long swigCPtr;
170  protected transient boolean swigCMemOwn;
171 
172  protected IntegerCastInfo(long cPtr, boolean cMemoryOwn) {
173  swigCMemOwn = cMemoryOwn;
174  swigCPtr = cPtr;
175  }
176 
177  protected static long getCPtr(IntegerCastInfo obj) {
178  return (obj == null) ? 0 : obj.swigCPtr;
179  }
180 
181  @SuppressWarnings("deprecation")
182  protected void finalize() {
183  delete();
184  }
185 
186  public synchronized void delete() {
187  if (swigCPtr != 0) {
188  if (swigCMemOwn) {
189  swigCMemOwn = false;
190  mainJNI.delete_Solver_IntegerCastInfo(swigCPtr);
191  }
192  swigCPtr = 0;
193  }
194  }
195 
196  public IntegerCastInfo() {
197  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_0(), true);
198  }
199 
201  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_1(IntVar.getCPtr(v), v, IntExpr.getCPtr(e), e, Constraint.getCPtr(c), c), true);
202  }
203 
204  public void setVariable(IntVar value) {
205  mainJNI.Solver_IntegerCastInfo_variable_set(swigCPtr, this, IntVar.getCPtr(value), value);
206  }
207 
208  public IntVar getVariable() {
209  long cPtr = mainJNI.Solver_IntegerCastInfo_variable_get(swigCPtr, this);
210  return (cPtr == 0) ? null : new IntVar(cPtr, false);
211  }
212 
213  public void setExpression(IntExpr value) {
214  mainJNI.Solver_IntegerCastInfo_expression_set(swigCPtr, this, IntExpr.getCPtr(value), value);
215  }
216 
218  long cPtr = mainJNI.Solver_IntegerCastInfo_expression_get(swigCPtr, this);
219  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
220  }
221 
222  public void setMaintainer(Constraint value) {
223  mainJNI.Solver_IntegerCastInfo_maintainer_set(swigCPtr, this, Constraint.getCPtr(value), value);
224  }
225 
227  long cPtr = mainJNI.Solver_IntegerCastInfo_maintainer_get(swigCPtr, this);
228  return (cPtr == 0) ? null : new Constraint(cPtr, false);
229  }
230 
231  }
232 
236  public Solver(String name) {
237  this(mainJNI.new_Solver__SWIG_0(name), true);
238  }
239 
241  this(mainJNI.new_Solver__SWIG_1(name, parameters.toByteArray()), true);
242  }
243 
248  byte[] buf = mainJNI.Solver_parameters(swigCPtr, this);
249  if (buf == null || buf.length == 0) {
250  return null;
251  }
252  try {
254  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
255  throw new RuntimeException(
256  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
257  }
258 }
259 
264  byte[] buf = mainJNI.Solver_defaultSolverParameters();
265  if (buf == null || buf.length == 0) {
266  return null;
267  }
268  try {
270  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
271  throw new RuntimeException(
272  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
273  }
274 }
275 
279  public void addConstraint(Constraint c) {
280  mainJNI.Solver_addConstraint(swigCPtr, this, Constraint.getCPtr(c), c);
281  }
282 
286  public void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr) {
287  mainJNI.Solver_addCastConstraint(swigCPtr, this, CastConstraint.getCPtr(constraint), constraint, IntVar.getCPtr(target_var), target_var, IntExpr.getCPtr(expr), expr);
288  }
289 
293  public boolean solve(DecisionBuilder db, SearchMonitor[] monitors) {
294  return mainJNI.Solver_solve__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
295  }
296 
297  public boolean solve(DecisionBuilder db) {
298  return mainJNI.Solver_solve__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
299  }
300 
301  public boolean solve(DecisionBuilder db, SearchMonitor m1) {
302  return mainJNI.Solver_solve__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
303  }
304 
305  public boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2) {
306  return mainJNI.Solver_solve__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
307  }
308 
310  return mainJNI.Solver_solve__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
311  }
312 
314  return mainJNI.Solver_solve__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3, SearchMonitor.getCPtr(m4), m4);
315  }
316 
320  public void newSearch(DecisionBuilder db, SearchMonitor[] monitors) {
321  mainJNI.Solver_newSearch__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
322  }
323 
324  public void newSearch(DecisionBuilder db) {
325  mainJNI.Solver_newSearch__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
326  }
327 
329  mainJNI.Solver_newSearch__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
330  }
331 
333  mainJNI.Solver_newSearch__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
334  }
335 
337  mainJNI.Solver_newSearch__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
338  }
339 
341  mainJNI.Solver_newSearch__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3, SearchMonitor.getCPtr(m4), m4);
342  }
343 
344  public boolean nextSolution() {
345  return mainJNI.Solver_nextSolution(swigCPtr, this);
346  }
347 
348  public void restartSearch() {
349  mainJNI.Solver_restartSearch(swigCPtr, this);
350  }
351 
352  public void endSearch() {
353  mainJNI.Solver_endSearch(swigCPtr, this);
354  }
355 
359  public boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors) {
360  return mainJNI.Solver_solveAndCommit__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
361  }
362 
363  public boolean solveAndCommit(DecisionBuilder db) {
364  return mainJNI.Solver_solveAndCommit__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
365  }
366 
368  return mainJNI.Solver_solveAndCommit__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
369  }
370 
372  return mainJNI.Solver_solveAndCommit__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
373  }
374 
376  return mainJNI.Solver_solveAndCommit__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
377  }
378 
382  public boolean checkAssignment(Assignment solution) {
383  return mainJNI.Solver_checkAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
384  }
385 
389  public boolean checkConstraint(Constraint ct) {
390  return mainJNI.Solver_checkConstraint(swigCPtr, this, Constraint.getCPtr(ct), ct);
391  }
392 
396  public int state() {
397  return mainJNI.Solver_state(swigCPtr, this);
398  }
399 
403  public void fail() {
404  mainJNI.Solver_fail(swigCPtr, this);
405  }
406 
410  public String toString() {
411  return mainJNI.Solver_toString(swigCPtr, this);
412  }
413 
417  public static long memoryUsage() {
418  return mainJNI.Solver_memoryUsage();
419  }
420 
424  public long wallTime() {
425  return mainJNI.Solver_wallTime(swigCPtr, this);
426  }
427 
431  public long branches() {
432  return mainJNI.Solver_branches(swigCPtr, this);
433  }
434 
438  public long solutions() {
439  return mainJNI.Solver_solutions(swigCPtr, this);
440  }
441 
445  public long unchecked_solutions() {
446  return mainJNI.Solver_unchecked_solutions(swigCPtr, this);
447  }
448 
452  public long demon_runs(int p) {
453  return mainJNI.Solver_demon_runs(swigCPtr, this, p);
454  }
455 
459  public long failures() {
460  return mainJNI.Solver_failures(swigCPtr, this);
461  }
462 
466  public long neighbors() {
467  return mainJNI.Solver_neighbors(swigCPtr, this);
468  }
469 
473  public long filteredNeighbors() {
474  return mainJNI.Solver_filteredNeighbors(swigCPtr, this);
475  }
476 
480  public long acceptedNeighbors() {
481  return mainJNI.Solver_acceptedNeighbors(swigCPtr, this);
482  }
483 
487  public long stamp() {
488  return mainJNI.Solver_stamp(swigCPtr, this);
489  }
490 
494  public long fail_stamp() {
495  return mainJNI.Solver_fail_stamp(swigCPtr, this);
496  }
497 
501  public int optimization_direction() {
502  return mainJNI.Solver_optimization_direction(swigCPtr, this);
503  }
504 
505  public void set_optimization_direction(int direction) {
506  mainJNI.Solver_set_optimization_direction(swigCPtr, this, direction);
507  }
508 
512  public IntVar makeIntVar(long min, long max, String name) {
513  long cPtr = mainJNI.Solver_makeIntVar__SWIG_0(swigCPtr, this, min, max, name);
514  return (cPtr == 0) ? null : new IntVar(cPtr, false);
515  }
516 
520  public IntVar makeIntVar(long[] values, String name) {
521  long cPtr = mainJNI.Solver_makeIntVar__SWIG_1(swigCPtr, this, values, name);
522  return (cPtr == 0) ? null : new IntVar(cPtr, false);
523  }
524 
528  public IntVar makeIntVar(int[] values, String name) {
529  long cPtr = mainJNI.Solver_makeIntVar__SWIG_2(swigCPtr, this, values, name);
530  return (cPtr == 0) ? null : new IntVar(cPtr, false);
531  }
532 
536  public IntVar makeIntVar(long min, long max) {
537  long cPtr = mainJNI.Solver_makeIntVar__SWIG_3(swigCPtr, this, min, max);
538  return (cPtr == 0) ? null : new IntVar(cPtr, false);
539  }
540 
544  public IntVar makeIntVar(long[] values) {
545  long cPtr = mainJNI.Solver_makeIntVar__SWIG_4(swigCPtr, this, values);
546  return (cPtr == 0) ? null : new IntVar(cPtr, false);
547  }
548 
552  public IntVar makeIntVar(int[] values) {
553  long cPtr = mainJNI.Solver_makeIntVar__SWIG_5(swigCPtr, this, values);
554  return (cPtr == 0) ? null : new IntVar(cPtr, false);
555  }
556 
560  public IntVar makeBoolVar(String name) {
561  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_0(swigCPtr, this, name);
562  return (cPtr == 0) ? null : new IntVar(cPtr, false);
563  }
564 
568  public IntVar makeBoolVar() {
569  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_1(swigCPtr, this);
570  return (cPtr == 0) ? null : new IntVar(cPtr, false);
571  }
572 
576  public IntVar makeIntConst(long val, String name) {
577  long cPtr = mainJNI.Solver_makeIntConst__SWIG_0(swigCPtr, this, val, name);
578  return (cPtr == 0) ? null : new IntVar(cPtr, false);
579  }
580 
584  public IntVar makeIntConst(long val) {
585  long cPtr = mainJNI.Solver_makeIntConst__SWIG_1(swigCPtr, this, val);
586  return (cPtr == 0) ? null : new IntVar(cPtr, false);
587  }
588 
592  public IntExpr makeSum(IntExpr left, IntExpr right) {
593  long cPtr = mainJNI.Solver_makeSum__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
594  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
595  }
596 
600  public IntExpr makeSum(IntExpr expr, long value) {
601  long cPtr = mainJNI.Solver_makeSum__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
602  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
603  }
604 
608  public IntExpr makeSum(IntVar[] vars) {
609  long cPtr = mainJNI.Solver_makeSum__SWIG_2(swigCPtr, this, vars);
610  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
611  }
612 
616  public IntExpr makeScalProd(IntVar[] vars, long[] coefs) {
617  long cPtr = mainJNI.Solver_makeScalProd__SWIG_0(swigCPtr, this, vars, coefs);
618  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
619  }
620 
624  public IntExpr makeScalProd(IntVar[] vars, int[] coefs) {
625  long cPtr = mainJNI.Solver_makeScalProd__SWIG_1(swigCPtr, this, vars, coefs);
626  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
627  }
628 
632  public IntExpr makeDifference(IntExpr left, IntExpr right) {
633  long cPtr = mainJNI.Solver_makeDifference__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
634  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
635  }
636 
640  public IntExpr makeDifference(long value, IntExpr expr) {
641  long cPtr = mainJNI.Solver_makeDifference__SWIG_1(swigCPtr, this, value, IntExpr.getCPtr(expr), expr);
642  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
643  }
644 
648  public IntExpr makeOpposite(IntExpr expr) {
649  long cPtr = mainJNI.Solver_makeOpposite(swigCPtr, this, IntExpr.getCPtr(expr), expr);
650  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
651  }
652 
656  public IntExpr makeProd(IntExpr left, IntExpr right) {
657  long cPtr = mainJNI.Solver_makeProd__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
658  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
659  }
660 
664  public IntExpr makeProd(IntExpr expr, long value) {
665  long cPtr = mainJNI.Solver_makeProd__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
666  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
667  }
668 
672  public IntExpr makeDiv(IntExpr expr, long value) {
673  long cPtr = mainJNI.Solver_makeDiv__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
674  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
675  }
676 
680  public IntExpr makeDiv(IntExpr numerator, IntExpr denominator) {
681  long cPtr = mainJNI.Solver_makeDiv__SWIG_1(swigCPtr, this, IntExpr.getCPtr(numerator), numerator, IntExpr.getCPtr(denominator), denominator);
682  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
683  }
684 
688  public IntExpr makeAbs(IntExpr expr) {
689  long cPtr = mainJNI.Solver_makeAbs(swigCPtr, this, IntExpr.getCPtr(expr), expr);
690  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
691  }
692 
696  public IntExpr makeSquare(IntExpr expr) {
697  long cPtr = mainJNI.Solver_makeSquare(swigCPtr, this, IntExpr.getCPtr(expr), expr);
698  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
699  }
700 
704  public IntExpr makePower(IntExpr expr, long n) {
705  long cPtr = mainJNI.Solver_makePower(swigCPtr, this, IntExpr.getCPtr(expr), expr, n);
706  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
707  }
708 
712  public IntExpr makeElement(long[] values, IntVar index) {
713  long cPtr = mainJNI.Solver_makeElement__SWIG_0(swigCPtr, this, values, IntVar.getCPtr(index), index);
714  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
715  }
716 
720  public IntExpr makeElement(int[] values, IntVar index) {
721  long cPtr = mainJNI.Solver_makeElement__SWIG_1(swigCPtr, this, values, IntVar.getCPtr(index), index);
722  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
723  }
724 
728  public IntExpr makeElement(LongUnaryOperator values, IntVar index) {
729  long cPtr = mainJNI.Solver_makeElement__SWIG_2(swigCPtr, this, values, IntVar.getCPtr(index), index);
730  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
731  }
732 
736  public IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index) {
737  long cPtr = mainJNI.Solver_makeMonotonicElement(swigCPtr, this, values, increasing, IntVar.getCPtr(index), index);
738  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
739  }
740 
744  public IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2) {
745  long cPtr = mainJNI.Solver_makeElement__SWIG_3(swigCPtr, this, values, IntVar.getCPtr(index1), index1, IntVar.getCPtr(index2), index2);
746  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
747  }
748 
752  public IntExpr makeElement(IntVar[] vars, IntVar index) {
753  long cPtr = mainJNI.Solver_makeElement__SWIG_4(swigCPtr, this, vars, IntVar.getCPtr(index), index);
754  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
755  }
756 
760  public IntExpr makeIndexExpression(IntVar[] vars, long value) {
761  long cPtr = mainJNI.Solver_makeIndexExpression(swigCPtr, this, vars, value);
762  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
763  }
764 
768  public Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var) {
769  long cPtr = mainJNI.Solver_makeIfThenElseCt(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(then_expr), then_expr, IntExpr.getCPtr(else_expr), else_expr, IntVar.getCPtr(target_var), target_var);
770  return (cPtr == 0) ? null : new Constraint(cPtr, false);
771  }
772 
776  public IntExpr makeMin(IntVar[] vars) {
777  long cPtr = mainJNI.Solver_makeMin__SWIG_0(swigCPtr, this, vars);
778  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
779  }
780 
784  public IntExpr makeMin(IntExpr left, IntExpr right) {
785  long cPtr = mainJNI.Solver_makeMin__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
786  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
787  }
788 
792  public IntExpr makeMin(IntExpr expr, long value) {
793  long cPtr = mainJNI.Solver_makeMin__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
794  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
795  }
796 
800  public IntExpr makeMin(IntExpr expr, int value) {
801  long cPtr = mainJNI.Solver_makeMin__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
802  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
803  }
804 
808  public IntExpr makeMax(IntVar[] vars) {
809  long cPtr = mainJNI.Solver_makeMax__SWIG_0(swigCPtr, this, vars);
810  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
811  }
812 
816  public IntExpr makeMax(IntExpr left, IntExpr right) {
817  long cPtr = mainJNI.Solver_makeMax__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
818  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
819  }
820 
824  public IntExpr makeMax(IntExpr expr, long value) {
825  long cPtr = mainJNI.Solver_makeMax__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
826  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
827  }
828 
832  public IntExpr makeMax(IntExpr expr, int value) {
833  long cPtr = mainJNI.Solver_makeMax__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
834  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
835  }
836 
840  public IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost) {
841  long cPtr = mainJNI.Solver_makeConvexPiecewiseExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, early_cost, early_date, late_date, late_cost);
842  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
843  }
844 
848  public IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step) {
849  long cPtr = mainJNI.Solver_makeSemiContinuousExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, fixed_charge, step);
850  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
851  }
852 
856  public IntExpr makeModulo(IntExpr x, long mod) {
857  long cPtr = mainJNI.Solver_makeModulo__SWIG_0(swigCPtr, this, IntExpr.getCPtr(x), x, mod);
858  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
859  }
860 
865  long cPtr = mainJNI.Solver_makeModulo__SWIG_1(swigCPtr, this, IntExpr.getCPtr(x), x, IntExpr.getCPtr(mod), mod);
866  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
867  }
868 
872  public IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value) {
873  long cPtr = mainJNI.Solver_makeConditionalExpression(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(expr), expr, unperformed_value);
874  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
875  }
876 
881  long cPtr = mainJNI.Solver_makeTrueConstraint(swigCPtr, this);
882  return (cPtr == 0) ? null : new Constraint(cPtr, false);
883  }
884 
889  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_0(swigCPtr, this);
890  return (cPtr == 0) ? null : new Constraint(cPtr, false);
891  }
892 
893  public Constraint makeFalseConstraint(String explanation) {
894  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_1(swigCPtr, this, explanation);
895  return (cPtr == 0) ? null : new Constraint(cPtr, false);
896  }
897 
901  public Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar) {
902  long cPtr = mainJNI.Solver_makeIsEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
903  return (cPtr == 0) ? null : new Constraint(cPtr, false);
904  }
905 
909  public IntVar makeIsEqualCstVar(IntExpr var, long value) {
910  long cPtr = mainJNI.Solver_makeIsEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
911  return (cPtr == 0) ? null : new IntVar(cPtr, false);
912  }
913 
918  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
919  return (cPtr == 0) ? null : new Constraint(cPtr, false);
920  }
921 
926  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
927  return (cPtr == 0) ? null : new IntVar(cPtr, false);
928  }
929 
933  public Constraint makeEquality(IntExpr left, IntExpr right) {
934  long cPtr = mainJNI.Solver_makeEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
935  return (cPtr == 0) ? null : new Constraint(cPtr, false);
936  }
937 
941  public Constraint makeEquality(IntExpr expr, long value) {
942  long cPtr = mainJNI.Solver_makeEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
943  return (cPtr == 0) ? null : new Constraint(cPtr, false);
944  }
945 
949  public Constraint makeEquality(IntExpr expr, int value) {
950  long cPtr = mainJNI.Solver_makeEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
951  return (cPtr == 0) ? null : new Constraint(cPtr, false);
952  }
953 
957  public Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar) {
958  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
959  return (cPtr == 0) ? null : new Constraint(cPtr, false);
960  }
961 
965  public IntVar makeIsDifferentCstVar(IntExpr var, long value) {
966  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value);
967  return (cPtr == 0) ? null : new IntVar(cPtr, false);
968  }
969 
974  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
975  return (cPtr == 0) ? null : new IntVar(cPtr, false);
976  }
977 
982  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
983  return (cPtr == 0) ? null : new Constraint(cPtr, false);
984  }
985 
990  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
991  return (cPtr == 0) ? null : new Constraint(cPtr, false);
992  }
993 
997  public Constraint makeNonEquality(IntExpr expr, long value) {
998  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
999  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1000  }
1001 
1005  public Constraint makeNonEquality(IntExpr expr, int value) {
1006  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1007  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1008  }
1009 
1013  public Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1014  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1015  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1016  }
1017 
1021  public IntVar makeIsLessOrEqualCstVar(IntExpr var, long value) {
1022  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1023  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1024  }
1025 
1030  long cPtr = mainJNI.Solver_makeIsLessOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1031  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1032  }
1033 
1038  long cPtr = mainJNI.Solver_makeIsLessOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1039  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1040  }
1041 
1046  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1047  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1048  }
1049 
1053  public Constraint makeLessOrEqual(IntExpr expr, long value) {
1054  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1055  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1056  }
1057 
1061  public Constraint makeLessOrEqual(IntExpr expr, int value) {
1062  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1063  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1064  }
1065 
1069  public Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1070  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1071  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1072  }
1073 
1077  public IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value) {
1078  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1079  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1080  }
1081 
1086  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1087  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1088  }
1089 
1094  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1095  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1096  }
1097 
1102  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1103  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1104  }
1105 
1109  public Constraint makeGreaterOrEqual(IntExpr expr, long value) {
1110  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1111  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1112  }
1113 
1117  public Constraint makeGreaterOrEqual(IntExpr expr, int value) {
1118  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1119  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1120  }
1121 
1126  long cPtr = mainJNI.Solver_makeIsGreaterCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1127  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1128  }
1129 
1133  public IntVar makeIsGreaterCstVar(IntExpr var, long value) {
1134  long cPtr = mainJNI.Solver_makeIsGreaterCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1135  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1136  }
1137 
1141  public IntVar makeIsGreaterVar(IntExpr left, IntExpr right) {
1142  long cPtr = mainJNI.Solver_makeIsGreaterVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1143  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1144  }
1145 
1150  long cPtr = mainJNI.Solver_makeIsGreaterCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1151  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1152  }
1153 
1157  public Constraint makeGreater(IntExpr left, IntExpr right) {
1158  long cPtr = mainJNI.Solver_makeGreater__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1159  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1160  }
1161 
1165  public Constraint makeGreater(IntExpr expr, long value) {
1166  long cPtr = mainJNI.Solver_makeGreater__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1167  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1168  }
1169 
1173  public Constraint makeGreater(IntExpr expr, int value) {
1174  long cPtr = mainJNI.Solver_makeGreater__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1175  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1176  }
1177 
1181  public Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b) {
1182  long cPtr = mainJNI.Solver_makeIsLessCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1183  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1184  }
1185 
1189  public IntVar makeIsLessCstVar(IntExpr var, long value) {
1190  long cPtr = mainJNI.Solver_makeIsLessCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1191  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1192  }
1193 
1197  public IntVar makeIsLessVar(IntExpr left, IntExpr right) {
1198  long cPtr = mainJNI.Solver_makeIsLessVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1199  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1200  }
1201 
1205  public Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b) {
1206  long cPtr = mainJNI.Solver_makeIsLessCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1207  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1208  }
1209 
1213  public Constraint makeLess(IntExpr left, IntExpr right) {
1214  long cPtr = mainJNI.Solver_makeLess__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1215  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1216  }
1217 
1221  public Constraint makeLess(IntExpr expr, long value) {
1222  long cPtr = mainJNI.Solver_makeLess__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1223  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1224  }
1225 
1229  public Constraint makeLess(IntExpr expr, int value) {
1230  long cPtr = mainJNI.Solver_makeLess__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1231  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1232  }
1233 
1237  public Constraint makeSumLessOrEqual(IntVar[] vars, long cst) {
1238  long cPtr = mainJNI.Solver_makeSumLessOrEqual(swigCPtr, this, vars, cst);
1239  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1240  }
1241 
1242  public Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst) {
1243  long cPtr = mainJNI.Solver_makeSumGreaterOrEqual(swigCPtr, this, vars, cst);
1244  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1245  }
1246 
1247  public Constraint makeSumEquality(IntVar[] vars, long cst) {
1248  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_0(swigCPtr, this, vars, cst);
1249  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1250  }
1251 
1252  public Constraint makeSumEquality(IntVar[] vars, IntVar var) {
1253  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_1(swigCPtr, this, vars, IntVar.getCPtr(var), var);
1254  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1255  }
1256 
1257  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst) {
1258  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1259  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1260  }
1261 
1262  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst) {
1263  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1264  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1265  }
1266 
1267  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target) {
1268  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_2(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1269  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1270  }
1271 
1272  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target) {
1273  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_3(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1274  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1275  }
1276 
1277  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst) {
1278  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_0(swigCPtr, this, vars, coeffs, cst);
1279  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1280  }
1281 
1282  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst) {
1283  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_1(swigCPtr, this, vars, coeffs, cst);
1284  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1285  }
1286 
1287  public Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst) {
1288  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1289  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1290  }
1291 
1292  public Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst) {
1293  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1294  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1295  }
1296 
1297  public Constraint makeMinEquality(IntVar[] vars, IntVar min_var) {
1298  long cPtr = mainJNI.Solver_makeMinEquality(swigCPtr, this, vars, IntVar.getCPtr(min_var), min_var);
1299  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1300  }
1301 
1302  public Constraint makeMaxEquality(IntVar[] vars, IntVar max_var) {
1303  long cPtr = mainJNI.Solver_makeMaxEquality(swigCPtr, this, vars, IntVar.getCPtr(max_var), max_var);
1304  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1305  }
1306 
1307  public Constraint makeElementEquality(long[] vals, IntVar index, IntVar target) {
1308  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_0(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1309  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1310  }
1311 
1312  public Constraint makeElementEquality(int[] vals, IntVar index, IntVar target) {
1313  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_1(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1314  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1315  }
1316 
1317  public Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target) {
1318  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_2(swigCPtr, this, vars, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1319  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1320  }
1321 
1322  public Constraint makeElementEquality(IntVar[] vars, IntVar index, long target) {
1323  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_3(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1324  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1325  }
1326 
1330  public Constraint makeAbsEquality(IntVar var, IntVar abs_var) {
1331  long cPtr = mainJNI.Solver_makeAbsEquality(swigCPtr, this, IntVar.getCPtr(var), var, IntVar.getCPtr(abs_var), abs_var);
1332  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1333  }
1334 
1338  public Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target) {
1339  long cPtr = mainJNI.Solver_makeIndexOfConstraint(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1340  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1341  }
1342 
1347  long cPtr = mainJNI.Solver_makeConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1348  return (cPtr == 0) ? null : new Demon(cPtr, false);
1349  }
1350 
1355  long cPtr = mainJNI.Solver_makeDelayedConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1356  return (cPtr == 0) ? null : new Demon(cPtr, false);
1357  }
1358 
1362  public Demon makeClosureDemon(Runnable closure) {
1363  long cPtr = mainJNI.Solver_makeClosureDemon(swigCPtr, this, closure);
1364  return (cPtr == 0) ? null : new Demon(cPtr, false);
1365  }
1366 
1370  public Constraint makeBetweenCt(IntExpr expr, long l, long u) {
1371  long cPtr = mainJNI.Solver_makeBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1372  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1373  }
1374 
1378  public Constraint makeNotBetweenCt(IntExpr expr, long l, long u) {
1379  long cPtr = mainJNI.Solver_makeNotBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1380  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1381  }
1382 
1386  public Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b) {
1387  long cPtr = mainJNI.Solver_makeIsBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u, IntVar.getCPtr(b), b);
1388  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1389  }
1390 
1391  public IntVar makeIsBetweenVar(IntExpr v, long l, long u) {
1392  long cPtr = mainJNI.Solver_makeIsBetweenVar(swigCPtr, this, IntExpr.getCPtr(v), v, l, u);
1393  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1394  }
1395 
1399  public Constraint makeMemberCt(IntExpr expr, long[] values) {
1400  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1401  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1402  }
1403 
1404  public Constraint makeMemberCt(IntExpr expr, int[] values) {
1405  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1406  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1407  }
1408 
1412  public Constraint makeNotMemberCt(IntExpr expr, long[] values) {
1413  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1414  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1415  }
1416 
1417  public Constraint makeNotMemberCt(IntExpr expr, int[] values) {
1418  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1419  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1420  }
1421 
1425  public Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends) {
1426  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1427  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1428  }
1429 
1433  public Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends) {
1434  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1435  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1436  }
1437 
1441  public Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar) {
1442  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1443  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1444  }
1445 
1446  public Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar) {
1447  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1448  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1449  }
1450 
1451  public IntVar makeIsMemberVar(IntExpr expr, long[] values) {
1452  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1453  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1454  }
1455 
1456  public IntVar makeIsMemberVar(IntExpr expr, int[] values) {
1457  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1458  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1459  }
1460 
1464  public Constraint makeCount(IntVar[] vars, long value, long max_count) {
1465  long cPtr = mainJNI.Solver_makeCount__SWIG_0(swigCPtr, this, vars, value, max_count);
1466  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1467  }
1468 
1472  public Constraint makeCount(IntVar[] vars, long value, IntVar max_count) {
1473  long cPtr = mainJNI.Solver_makeCount__SWIG_1(swigCPtr, this, vars, value, IntVar.getCPtr(max_count), max_count);
1474  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1475  }
1476 
1480  public Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards) {
1481  long cPtr = mainJNI.Solver_makeDistribute__SWIG_0(swigCPtr, this, vars, values, cards);
1482  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1483  }
1484 
1488  public Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards) {
1489  long cPtr = mainJNI.Solver_makeDistribute__SWIG_1(swigCPtr, this, vars, values, cards);
1490  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1491  }
1492 
1496  public Constraint makeDistribute(IntVar[] vars, IntVar[] cards) {
1497  long cPtr = mainJNI.Solver_makeDistribute__SWIG_2(swigCPtr, this, vars, cards);
1498  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1499  }
1500 
1504  public Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size) {
1505  long cPtr = mainJNI.Solver_makeDistribute__SWIG_3(swigCPtr, this, vars, card_min, card_max, card_size);
1506  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1507  }
1508 
1512  public Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max) {
1513  long cPtr = mainJNI.Solver_makeDistribute__SWIG_4(swigCPtr, this, vars, card_min, card_max);
1514  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1515  }
1516 
1520  public Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max) {
1521  long cPtr = mainJNI.Solver_makeDistribute__SWIG_5(swigCPtr, this, vars, card_min, card_max);
1522  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1523  }
1524 
1528  public Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max) {
1529  long cPtr = mainJNI.Solver_makeDistribute__SWIG_6(swigCPtr, this, vars, values, card_min, card_max);
1530  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1531  }
1532 
1536  public Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max) {
1537  long cPtr = mainJNI.Solver_makeDistribute__SWIG_7(swigCPtr, this, vars, values, card_min, card_max);
1538  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1539  }
1540 
1544  public Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum) {
1545  long cPtr = mainJNI.Solver_makeDeviation(swigCPtr, this, vars, IntVar.getCPtr(deviation_var), deviation_var, total_sum);
1546  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1547  }
1548 
1553  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_0(swigCPtr, this, vars);
1554  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1555  }
1556 
1560  public Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation) {
1561  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_1(swigCPtr, this, vars, stronger_propagation);
1562  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1563  }
1564 
1568  public Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value) {
1569  long cPtr = mainJNI.Solver_makeAllDifferentExcept(swigCPtr, this, vars, escape_value);
1570  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1571  }
1572 
1576  public Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted) {
1577  long cPtr = mainJNI.Solver_makeSortingConstraint(swigCPtr, this, vars, sorted);
1578  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1579  }
1580 
1584  public Constraint makeLexicalLess(IntVar[] left, IntVar[] right) {
1585  long cPtr = mainJNI.Solver_makeLexicalLess(swigCPtr, this, left, right);
1586  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1587  }
1588 
1593  long cPtr = mainJNI.Solver_makeLexicalLessOrEqual(swigCPtr, this, left, right);
1594  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1595  }
1596 
1601  long cPtr = mainJNI.Solver_makeInversePermutationConstraint(swigCPtr, this, left, right);
1602  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1603  }
1604 
1609  long cPtr = mainJNI.Solver_makeIndexOfFirstMaxValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1610  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1611  }
1612 
1617  long cPtr = mainJNI.Solver_makeIndexOfFirstMinValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1618  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1619  }
1620 
1624  public Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars) {
1625  long cPtr = mainJNI.Solver_makeNullIntersect(swigCPtr, this, first_vars, second_vars);
1626  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1627  }
1628 
1632  public Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value) {
1633  long cPtr = mainJNI.Solver_makeNullIntersectExcept(swigCPtr, this, first_vars, second_vars, escape_value);
1634  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1635  }
1636 
1640  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler) {
1641  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_0(swigCPtr, this, nexts, active, sink_handler);
1642  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1643  }
1644 
1648  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active) {
1649  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_1(swigCPtr, this, nexts, active);
1650  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1651  }
1652 
1653  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths) {
1654  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_2(swigCPtr, this, nexts, active, sink_handler, assume_paths);
1655  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1656  }
1657 
1661  public Constraint makeCircuit(IntVar[] nexts) {
1662  long cPtr = mainJNI.Solver_makeCircuit(swigCPtr, this, nexts);
1663  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1664  }
1665 
1670  long cPtr = mainJNI.Solver_makeSubCircuit(swigCPtr, this, nexts);
1671  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1672  }
1673 
1677  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1678  long cPtr = mainJNI.Solver_makePathCumul__SWIG_0(swigCPtr, this, nexts, active, cumuls, transits);
1679  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1680  }
1681 
1685  public Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1686  long cPtr = mainJNI.Solver_makeDelayedPathCumul(swigCPtr, this, nexts, active, cumuls, transits);
1687  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1688  }
1689 
1693  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator) {
1694  long cPtr = mainJNI.Solver_makePathCumul__SWIG_1(swigCPtr, this, nexts, active, cumuls, transit_evaluator);
1695  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1696  }
1697 
1701  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator) {
1702  long cPtr = mainJNI.Solver_makePathCumul__SWIG_2(swigCPtr, this, nexts, active, cumuls, slacks, transit_evaluator);
1703  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1704  }
1705 
1709  public Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status) {
1710  long cPtr = mainJNI.Solver_makePathConnected(swigCPtr, this, nexts, sources, sinks, status);
1711  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1712  }
1713 
1717  public Constraint makeMapDomain(IntVar var, IntVar[] actives) {
1718  long cPtr = mainJNI.Solver_makeMapDomain(swigCPtr, this, IntVar.getCPtr(var), var, actives);
1719  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1720  }
1721 
1726  long cPtr = mainJNI.Solver_makeAllowedAssignment(swigCPtr, this, vars, IntTupleSet.getCPtr(tuples), tuples);
1727  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1728  }
1729 
1733  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states) {
1734  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_0(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1735  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1736  }
1737 
1741  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states) {
1742  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_1(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1743  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1744  }
1745 
1749  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1750  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1751  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1752  }
1753 
1754  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1755  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1756  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1757  }
1758 
1759  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1760  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1761  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1762  }
1763 
1767  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1768  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1769  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1770  }
1771 
1772  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1773  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1774  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1775  }
1776 
1777  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1778  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1779  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1780  }
1781 
1785  public Pack makePack(IntVar[] vars, int number_of_bins) {
1786  long cPtr = mainJNI.Solver_makePack(swigCPtr, this, vars, number_of_bins);
1787  return (cPtr == 0) ? null : new Pack(cPtr, false);
1788  }
1789 
1793  public IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name) {
1794  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_0(swigCPtr, this, start_min, start_max, duration, optional, name);
1795  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1796  }
1797 
1801  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name) {
1802  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_1(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, name);
1803  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1804  }
1805 
1809  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name) {
1810  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_2(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, IntVar.getCPtr(performed_variable), performed_variable, name);
1811  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1812  }
1813 
1817  public IntervalVar makeFixedInterval(long start, long duration, String name) {
1818  long cPtr = mainJNI.Solver_makeFixedInterval(swigCPtr, this, start, duration, name);
1819  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1820  }
1821 
1825  public IntervalVar makeIntervalVar(long start_min, long start_max, long duration_min, long duration_max, long end_min, long end_max, boolean optional, String name) {
1826  long cPtr = mainJNI.Solver_makeIntervalVar(swigCPtr, this, start_min, start_max, duration_min, duration_max, end_min, end_max, optional, name);
1827  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1828  }
1829 
1834  long cPtr = mainJNI.Solver_makeMirrorInterval(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1835  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1836  }
1837 
1841  public IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
1842  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1843  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1844  }
1845 
1849  public IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
1850  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1851  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1852  }
1853 
1857  public IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
1858  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1859  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1860  }
1861 
1865  public IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
1866  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1867  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1868  }
1869 
1874  long cPtr = mainJNI.Solver_makeIntervalRelaxedMin(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1875  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1876  }
1877 
1882  long cPtr = mainJNI.Solver_makeIntervalRelaxedMax(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1883  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1884  }
1885 
1890  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t), t, r, d);
1891  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1892  }
1893 
1898  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2);
1899  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1900  }
1901 
1906  long cPtr = mainJNI.Solver_makeIntervalVarRelationWithDelay(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2, delay);
1907  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1908  }
1909 
1914  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2, IntVar.getCPtr(alt), alt);
1915  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1916  }
1917 
1922  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2);
1923  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1924  }
1925 
1930  long cPtr = mainJNI.Solver_makeDisjunctiveConstraint(swigCPtr, this, intervals, name);
1931  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
1932  }
1933 
1938  long cPtr = mainJNI.Solver_makeStrictDisjunctiveConstraint(swigCPtr, this, intervals, name);
1939  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
1940  }
1941 
1945  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name) {
1946  long cPtr = mainJNI.Solver_makeCumulative__SWIG_0(swigCPtr, this, intervals, demands, capacity, name);
1947  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1948  }
1949 
1953  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name) {
1954  long cPtr = mainJNI.Solver_makeCumulative__SWIG_1(swigCPtr, this, intervals, demands, capacity, name);
1955  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1956  }
1957 
1961  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name) {
1962  long cPtr = mainJNI.Solver_makeCumulative__SWIG_2(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
1963  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1964  }
1965 
1969  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name) {
1970  long cPtr = mainJNI.Solver_makeCumulative__SWIG_3(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
1971  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1972  }
1973 
1977  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name) {
1978  long cPtr = mainJNI.Solver_makeCumulative__SWIG_4(swigCPtr, this, intervals, demands, capacity, name);
1979  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1980  }
1981 
1985  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name) {
1986  long cPtr = mainJNI.Solver_makeCumulative__SWIG_5(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
1987  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1988  }
1989 
1993  public Constraint makeCover(IntervalVar[] vars, IntervalVar target_var) {
1994  long cPtr = mainJNI.Solver_makeCover(swigCPtr, this, vars, IntervalVar.getCPtr(target_var), target_var);
1995  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1996  }
1997 
2002  long cPtr = mainJNI.Solver_makeEquality__SWIG_3(swigCPtr, this, IntervalVar.getCPtr(var1), var1, IntervalVar.getCPtr(var2), var2);
2003  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2004  }
2005 
2010  long cPtr = mainJNI.Solver_makeAssignment__SWIG_0(swigCPtr, this);
2011  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2012  }
2013 
2018  long cPtr = mainJNI.Solver_makeAssignment__SWIG_1(swigCPtr, this, Assignment.getCPtr(a), a);
2019  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2020  }
2021 
2026  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2027  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2028  }
2029 
2034  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_1(swigCPtr, this);
2035  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2036  }
2037 
2042  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2043  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2044  }
2045 
2050  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_1(swigCPtr, this);
2051  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2052  }
2053 
2057  public SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize) {
2058  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, maximize);
2059  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2060  }
2061 
2066  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_1(swigCPtr, this, maximize);
2067  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2068  }
2069 
2073  public SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize) {
2074  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, solution_count, maximize);
2075  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2076  }
2077 
2078  public SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize) {
2079  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_1(swigCPtr, this, solution_count, maximize);
2080  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2081  }
2082 
2087  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2088  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2089  }
2090 
2095  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_1(swigCPtr, this);
2096  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2097  }
2098 
2102  public OptimizeVar makeMinimize(IntVar v, long step) {
2103  long cPtr = mainJNI.Solver_makeMinimize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2104  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2105  }
2106 
2110  public OptimizeVar makeMaximize(IntVar v, long step) {
2111  long cPtr = mainJNI.Solver_makeMaximize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2112  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2113  }
2114 
2118  public OptimizeVar makeOptimize(boolean maximize, IntVar v, long step) {
2119  long cPtr = mainJNI.Solver_makeOptimize(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step);
2120  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2121  }
2122 
2126  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step) {
2127  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2128  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2129  }
2130 
2134  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step) {
2135  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2136  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2137  }
2138 
2142  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step) {
2143  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2144  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2145  }
2146 
2150  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step) {
2151  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2152  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2153  }
2154 
2158  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step) {
2159  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_0(swigCPtr, this, maximize, sub_objectives, weights, step);
2160  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2161  }
2162 
2166  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step) {
2167  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_1(swigCPtr, this, maximize, sub_objectives, weights, step);
2168  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2169  }
2170 
2174  public SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor) {
2175  long cPtr = mainJNI.Solver_makeTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, vars, keep_tenure, forbid_tenure, tabu_factor);
2176  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2177  }
2178 
2182  public SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure) {
2183  long cPtr = mainJNI.Solver_makeGenericTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, tabu_vars, forbid_tenure);
2184  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2185  }
2186 
2190  public SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature) {
2191  long cPtr = mainJNI.Solver_makeSimulatedAnnealing(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, initial_temperature);
2192  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2193  }
2194 
2198  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor) {
2199  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_0(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, penalty_factor);
2200  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2201  }
2202 
2203  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor) {
2204  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_1(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, secondary_vars, penalty_factor);
2205  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2206  }
2207 
2211  public SearchMonitor makeLubyRestart(int scale_factor) {
2212  long cPtr = mainJNI.Solver_makeLubyRestart(swigCPtr, this, scale_factor);
2213  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2214  }
2215 
2219  public SearchMonitor makeConstantRestart(int frequency) {
2220  long cPtr = mainJNI.Solver_makeConstantRestart(swigCPtr, this, frequency);
2221  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2222  }
2223 
2227  public RegularLimit makeTimeLimit(long time_in_ms) {
2228  long cPtr = mainJNI.Solver_makeTimeLimit(swigCPtr, this, time_in_ms);
2229  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2230  }
2231 
2236  long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2237  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2238  }
2239 
2244  long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2245  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2246  }
2247 
2252  long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2253  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2254  }
2255 
2259  public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2260  long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, time, branches, failures, solutions);
2261  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2262  }
2263 
2267  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2268  long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2269  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2270  }
2271 
2275  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2276  long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2277  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2278  }
2279 
2284  long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2285  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2286  }
2287 
2292  byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2293  if (buf == null || buf.length == 0) {
2294  return null;
2295  }
2296  try {
2298  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2299  throw new RuntimeException(
2300  "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2301  }
2302 }
2303 
2307  public SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2) {
2308  long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2309  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2310  }
2311 
2315  public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2316  long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2317  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2318  }
2319 
2323  public SearchMonitor makeSearchLog(int branch_period) {
2324  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2325  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2326  }
2327 
2331  public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2332  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2333  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2334  }
2335 
2339  public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2340  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2341  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2342  }
2343 
2347  public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2348  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2349  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2350  }
2351 
2355  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2356  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2357  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2358  }
2359 
2363  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2364  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2365  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2366  }
2367 
2371  public SearchMonitor makeSearchTrace(String prefix) {
2372  long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2373  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2374  }
2375 
2379  public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2380  long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2381  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2382  }
2383 
2384  public SearchMonitor makeExitSearchCallback(Runnable callback) {
2385  long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2386  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2387  }
2388 
2389  public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2390  long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2391  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2392  }
2393 
2398  long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2399  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2400  }
2401 
2406  long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2407  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2408  }
2409 
2414  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2415  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2416  }
2417 
2419  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2420  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2421  }
2422 
2424  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2425  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2426  }
2427 
2429  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2430  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2431  }
2432 
2434  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_4(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3, SymmetryBreaker.getCPtr(v4), v4);
2435  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2436  }
2437 
2441  public Decision makeAssignVariableValue(IntVar var, long val) {
2442  long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2443  return (cPtr == 0) ? null : new Decision(cPtr, false);
2444  }
2445 
2447  long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2448  return (cPtr == 0) ? null : new Decision(cPtr, false);
2449  }
2450 
2452  long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2453  return (cPtr == 0) ? null : new Decision(cPtr, false);
2454  }
2455 
2456  public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2457  long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2458  return (cPtr == 0) ? null : new Decision(cPtr, false);
2459  }
2460 
2462  long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2463  return (cPtr == 0) ? null : new Decision(cPtr, false);
2464  }
2465 
2467  long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2468  return (cPtr == 0) ? null : new Decision(cPtr, false);
2469  }
2470 
2471  public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2472  long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2473  return (cPtr == 0) ? null : new Decision(cPtr, false);
2474  }
2475 
2477  long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
2478  return (cPtr == 0) ? null : new Decision(cPtr, false);
2479  }
2480 
2481  public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
2482  long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
2483  return (cPtr == 0) ? null : new Decision(cPtr, false);
2484  }
2485 
2490  long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2491  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2492  }
2493 
2495  long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2496  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2497  }
2498 
2500  long cPtr = mainJNI.Solver_compose__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3, DecisionBuilder.getCPtr(db4), db4);
2501  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2502  }
2503 
2505  long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
2506  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2507  }
2508 
2513  long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2514  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2515  }
2516 
2518  long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2519  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2520  }
2521 
2523  long cPtr = mainJNI.Solver_tryDecisions__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3, DecisionBuilder.getCPtr(db4), db4);
2524  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2525  }
2526 
2528  long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
2529  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2530  }
2531 
2535  public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
2536  long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
2537  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2538  }
2539 
2540  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
2541  long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
2542  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2543  }
2544 
2545  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
2546  long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
2547  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2548  }
2549 
2553  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
2554  long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
2555  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2556  }
2557 
2558  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
2559  long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
2560  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2561  }
2562 
2563  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2564  long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
2565  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2566  }
2567 
2568  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2569  long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
2570  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2571  }
2572 
2574  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
2575  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2576  }
2577 
2579  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
2580  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2581  }
2582 
2586  public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
2587  long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
2588  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2589  }
2590 
2591  public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
2592  long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
2593  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2594  }
2595 
2596  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
2597  long cPtr = mainJNI.Solver_makePhase__SWIG_9(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, IntVar.getCPtr(v2), v2, var_str, val_str);
2598  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2599  }
2600 
2601  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
2602  long cPtr = mainJNI.Solver_makePhase__SWIG_10(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, IntVar.getCPtr(v2), v2, IntVar.getCPtr(v3), v3, var_str, val_str);
2603  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2604  }
2605 
2609  public Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker) {
2610  long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2611  return (cPtr == 0) ? null : new Decision(cPtr, false);
2612  }
2613 
2617  public Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker) {
2618  long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2619  return (cPtr == 0) ? null : new Decision(cPtr, false);
2620  }
2621 
2625  public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
2626  long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2627  return (cPtr == 0) ? null : new Decision(cPtr, false);
2628  }
2629 
2633  public Decision makeRankLastInterval(SequenceVar sequence, int index) {
2634  long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2635  return (cPtr == 0) ? null : new Decision(cPtr, false);
2636  }
2637 
2641  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
2642  long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
2643  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2644  }
2645 
2649  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
2650  long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
2651  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2652  }
2653 
2657  public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
2658  long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
2659  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2660  }
2661 
2662  public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
2663  long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
2664  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2665  }
2666 
2671  long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
2672  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2673  }
2674 
2679  long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
2680  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2681  }
2682 
2687  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
2688  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2689  }
2690 
2692  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
2693  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2694  }
2695 
2697  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
2698  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2699  }
2700 
2702  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2, SearchMonitor.getCPtr(monitor3), monitor3);
2703  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2704  }
2705 
2707  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2, SearchMonitor.getCPtr(monitor3), monitor3, SearchMonitor.getCPtr(monitor4), monitor4);
2708  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2709  }
2710 
2712  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
2713  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2714  }
2715 
2719  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
2720  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
2721  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2722  }
2723 
2724  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
2725  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
2726  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2727  }
2728 
2729  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
2730  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
2731  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2732  }
2733 
2734  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
2735  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2, SearchMonitor.getCPtr(monitor3), monitor3);
2736  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2737  }
2738 
2739  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
2740  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2, SearchMonitor.getCPtr(monitor3), monitor3, SearchMonitor.getCPtr(monitor4), monitor4);
2741  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2742  }
2743 
2744  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
2745  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
2746  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2747  }
2748 
2753  long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2754  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2755  }
2756 
2761  long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2762  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2763  }
2764 
2768  public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
2769  long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
2770  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2771  }
2772 
2773  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
2774  long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
2775  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2776  }
2777 
2778  public LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op) {
2779  long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
2780  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2781  }
2782 
2783  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
2784  long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
2785  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2786  }
2787 
2791  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
2792  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
2793  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2794  }
2795 
2796  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
2797  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
2798  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2799  }
2800 
2805  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
2806  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2807  }
2808 
2812  public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
2813  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
2814  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2815  }
2816 
2821  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
2822  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2823  }
2824 
2826  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
2827  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2828  }
2829 
2831  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
2832  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2833  }
2834 
2839  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
2840  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2841  }
2842 
2847  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
2848  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2849  }
2850 
2855  long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
2856  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2857  }
2858 
2863  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2864  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2865  }
2866 
2868  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2869  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2870  }
2871 
2875  public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
2876  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_2(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, DecisionBuilder.getCPtr(first_solution_sub_decision_builder), first_solution_sub_decision_builder, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2877  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2878  }
2879 
2881  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2882  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2883  }
2884 
2889  long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
2890  return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
2891  }
2892 
2897  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_0(swigCPtr, this, IntVar.getCPtr(objective), objective, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder);
2898  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2899  }
2900 
2902  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_1(swigCPtr, this, IntVar.getCPtr(objective), objective, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit);
2903  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2904  }
2905 
2907  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_2(swigCPtr, this, IntVar.getCPtr(objective), objective, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit, filters);
2908  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2909  }
2910 
2912  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_3(swigCPtr, this, IntVar.getCPtr(objective), objective, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder);
2913  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2914  }
2915 
2917  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_4(swigCPtr, this, IntVar.getCPtr(objective), objective, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit);
2918  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2919  }
2920 
2922  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_5(swigCPtr, this, IntVar.getCPtr(objective), objective, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit, filters);
2923  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2924  }
2925 
2930  long cPtr = mainJNI.Solver_MakeAcceptFilter(swigCPtr, this);
2931  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2932  }
2933 
2935  long cPtr = mainJNI.Solver_MakeRejectFilter(swigCPtr, this);
2936  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2937  }
2938 
2940  long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
2941  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2942  }
2943 
2944  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum) {
2945  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, filter_enum);
2946  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2947  }
2948 
2949  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum) {
2950  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, secondary_vars, values, filter_enum);
2951  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2952  }
2953 
2957  public void topPeriodicCheck() {
2958  mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
2959  }
2960 
2964  public int topProgressPercent() {
2965  return mainJNI.Solver_topProgressPercent(swigCPtr, this);
2966  }
2967 
2971  public void pushState() {
2972  mainJNI.Solver_pushState(swigCPtr, this);
2973  }
2974 
2975  public void popState() {
2976  mainJNI.Solver_popState(swigCPtr, this);
2977  }
2978 
2982  public int searchDepth() {
2983  return mainJNI.Solver_searchDepth(swigCPtr, this);
2984  }
2985 
2989  public int searchLeftDepth() {
2990  return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
2991  }
2992 
2996  public int solveDepth() {
2997  return mainJNI.Solver_solveDepth(swigCPtr, this);
2998  }
2999 
3003  public long rand64(long size) {
3004  return mainJNI.Solver_rand64(swigCPtr, this, size);
3005  }
3006 
3010  public int rand32(int size) {
3011  return mainJNI.Solver_rand32(swigCPtr, this, size);
3012  }
3013 
3017  public void reSeed(int seed) {
3018  mainJNI.Solver_reSeed(swigCPtr, this, seed);
3019  }
3020 
3024  public void exportProfilingOverview(String filename) {
3025  mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3026  }
3027 
3031  public String localSearchProfile() {
3032  return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3033  }
3034 
3038  public boolean currentlyInSolve() {
3039  return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3040  }
3041 
3045  public int constraints() {
3046  return mainJNI.Solver_constraints(swigCPtr, this);
3047  }
3048 
3052  public void accept(ModelVisitor visitor) {
3053  mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3054  }
3055 
3057  long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3058  return (cPtr == 0) ? null : new Decision(cPtr, false);
3059  }
3060 
3064  public void clear_fail_intercept() {
3065  mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3066  }
3067 
3071  public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3072  mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3073  }
3074 
3078  public boolean UseFastLocalSearch() {
3079  return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3080  }
3081 
3085  public boolean hasName(PropagationBaseObject object) {
3086  return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3087  }
3088 
3092  public Demon registerDemon(Demon demon) {
3093  long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3094  return (cPtr == 0) ? null : new Demon(cPtr, false);
3095  }
3096 
3101  long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3102  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3103  }
3104 
3109  long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3110  return (cPtr == 0) ? null : new IntVar(cPtr, false);
3111  }
3112 
3117  long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3118  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3119  }
3120 
3124  public ModelCache cache() {
3125  long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3126  return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3127  }
3128 
3132  public boolean instrumentsDemons() {
3133  return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3134  }
3135 
3139  public boolean isProfilingEnabled() {
3140  return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3141  }
3142 
3147  return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3148  }
3149 
3153  public boolean instrumentsVariables() {
3154  return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3155  }
3156 
3160  public boolean nameAllVariables() {
3161  return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3162  }
3163 
3167  public String model_name() {
3168  return mainJNI.Solver_model_name(swigCPtr, this);
3169  }
3170 
3175  long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3176  return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3177  }
3178 
3183  mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
3184  }
3185 
3190  long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
3191  return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
3192  }
3193 
3198  mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
3199  }
3200 
3205  long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
3206  return (cPtr == 0) ? null : new Assignment(cPtr, false);
3207  }
3208 
3212  public void ClearLocalSearchState() {
3213  mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
3214  }
3215 
3219  public void setTmp_vector_(long[] value) {
3220  mainJNI.Solver_tmp_vector__set(swigCPtr, this, value);
3221  }
3222 
3226  public long[] getTmp_vector_() {
3227  return mainJNI.Solver_tmp_vector__get(swigCPtr, this);
3228 }
3229 
3234  long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
3235  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3236  }
3237 
3241  public void finishCurrentSearch() {
3242  mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
3243  }
3244 
3245  public void restartCurrentSearch() {
3246  mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
3247  }
3248 
3252  public void shouldFail() {
3253  mainJNI.Solver_shouldFail(swigCPtr, this);
3254  }
3255 
3256  public void checkFail() {
3257  mainJNI.Solver_checkFail(swigCPtr, this);
3258  }
3259 
3263  public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
3264  // IntVarStrategy
3272  public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
3276  public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
3280  public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
3284  public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
3288  public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
3292  public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
3296  public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
3300  public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
3304  public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
3308  public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
3312  public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
3316  public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
3320  public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
3324  public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
3325 
3326  // IntValueStrategy
3334  public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
3338  public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
3342  public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
3346  public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
3350  public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
3354  public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
3358  public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
3362  public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
3363 
3364  // EvaluatorStrategy
3372  public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
3376  public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
3377 
3378  // SequenceStrategy
3383  public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
3384  public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
3385  public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
3386  public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
3387 
3388  // IntervalStrategy
3396  public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
3400  public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
3404  public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
3408  public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
3409 
3410  // LocalSearchOperators
3418  public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
3422  public final static int OROPT = mainJNI.Solver_OROPT_get();
3426  public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
3430  public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
3434  public final static int CROSS = mainJNI.Solver_CROSS_get();
3438  public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
3442  public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
3446  public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
3450  public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
3454  public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
3458  public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
3462  public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
3466  public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
3470  public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
3474  public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
3478  public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
3479 
3480  // EvaluatorLocalSearchOperators
3488  public final static int LK = mainJNI.Solver_LK_get();
3492  public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
3496  public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
3497 
3498  // LocalSearchFilterBound
3506  public final static int GE = mainJNI.Solver_GE_get();
3510  public final static int LE = mainJNI.Solver_LE_get();
3514  public final static int EQ = mainJNI.Solver_EQ_get();
3515 
3516  // DemonPriority
3524  public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
3528  public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
3532  public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
3533 
3534  // BinaryIntervalRelation
3542  public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
3546  public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
3550  public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
3554  public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
3558  public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
3562  public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
3566  public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
3570  public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
3574  public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
3575 
3576  // UnaryIntervalRelation
3584  public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
3588  public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
3592  public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
3596  public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
3600  public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
3604  public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
3608  public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
3612  public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
3613 
3614  // DecisionModification
3622  public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
3626  public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
3630  public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
3634  public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
3638  public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
3639 
3640  // MarkerType
3645  public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
3646  public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
3647  public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
3648  public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
3649 
3650  // SolverState
3658  public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
3662  public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
3666  public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
3670  public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
3674  public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
3678  public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
3679 
3680  // OptimizationDirection
3685  public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
3686  public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
3687  public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
3688 
3689 }
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2049
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:340
RegularLimit makeBranchesLimit(long branches)
Creates a search limit that constrains the number of branches explored in the search tree.
Definition: Solver.java:2235
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1552
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2471
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:832
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:200
static final int AVOID_DATE
STARTS_AFTER or ENDS_BEFORE, i.e.
Definition: Solver.java:3612
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:2670
IntExpr makeSum(IntVar[] vars)
sum of all vars.
Definition: Solver.java:608
Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status)
Constraint enforcing that status[i] is true iff there's a path defined on next variables from sources...
Definition: Solver.java:1709
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2456
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3031
IntExpr makeDifference(long value, IntExpr expr)
value - expr
Definition: Solver.java:640
Constraint makeIndexOfFirstMinValueConstraint(IntVar index, IntVar[] vars)
Creates a constraint that binds the index variable to the index of the first variable with the minimu...
Definition: Solver.java:1616
A constraint is the main modeling object.
Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits)
Delayed version of the same constraint: propagation on the nexts variables is delayed until all const...
Definition: Solver.java:1685
static final int CHOOSE_MIN_SLACK_RANK_FORWARD
Definition: Solver.java:3385
static final int ENDS_AT
t ends at d, i.e.
Definition: Solver.java:3588
void clear_fail_intercept()
Internal.
Definition: Solver.java:3064
SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure)
Creates a Tabu Search based on the vars |vars|.
Definition: Solver.java:2182
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1399
IntVar[] makeIntVarArray(int count, long min, long max, String name)
Definition: Solver.java:106
boolean solveAndCommit(DecisionBuilder db)
Definition: Solver.java:363
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1277
boolean solve(DecisionBuilder db)
Definition: Solver.java:297
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1272
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:367
static com.google.ortools.constraintsolver.ConstraintSolverParameters parseFrom(java.nio.ByteBuffer data)
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2522
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1141
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3160
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:3233
DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str)
Returns a decision builder which assigns values to variables which minimize the values returned by th...
Definition: Solver.java:2641
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:2578
This class encapsulates an objective.
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3052
DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str)
Returns a decision builder which assigns values to variables which minimize the values returned by th...
Definition: Solver.java:2649
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3100
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1247
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:2760
static final int INTERVAL_SET_TIMES_BACKWARD
Selects the variable with the highest ending time of all variables, and fixes the ending time to this...
Definition: Solver.java:3408
void popState()
Definition: Solver.java:2975
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2778
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1560
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1754
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3017
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1013
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2142
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:1801
Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted)
Creates a constraint binding the arrays of variables "vars" and "sorted_vars": sorted_vars[0] must be...
Definition: Solver.java:1576
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:981
Solver(String name)
Solver API.
Definition: Solver.java:236
Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars)
Creates a constraint that states that all variables in the first vector are different from all variab...
Definition: Solver.java:1624
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:3546
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2441
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:544
void newSearch(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:328
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2499
static final int REVERSIBLE_ACTION
Definition: Solver.java:3648
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:240
Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval c...
Definition: Solver.java:1953
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:872
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2211
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to ch...
Definition: Solver.java:2957
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3132
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilter[] filters)
Definition: Solver.java:2906
static long memoryUsage()
Current memory usage in bytes.
Definition: Solver.java:417
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1005
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which will create a search tree where each decision builder is called from...
Definition: Solver.java:2512
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:672
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:305
Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum)
Deviation constraint: sum_i |n * vars[i] - total_sum| <= deviation_var and sum_i vars[i] == total_sum...
Definition: Solver.java:1544
Represents a function that accepts two int-valued arguments and produces a long-valued result.
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:3466
IntExpr makeModulo(IntExpr x, long mod)
General piecewise-linear function expression, built from f(x) where f is piecewise-linear.
Definition: Solver.java:856
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3045
void fail()
Abandon the current branch in the search tree.
Definition: Solver.java:403
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2389
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2, IntVar alt)
This constraint implements a temporal disjunction between two interval vars t1 and t2.
Definition: Solver.java:1913
SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier< String > display_callback)
Creates a search monitor that will also print the result of the display callback.
Definition: Solver.java:2363
void setMaintainer(Constraint value)
Definition: Solver.java:222
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:2838
Constraint makeCover(IntervalVar[] vars, IntervalVar target_var)
This constraint states that the target_var is the convex hull of the intervals.
Definition: Solver.java:1993
Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends)
expr should not be in the list of forbidden intervals [start[i]..end[i]].
Definition: Solver.java:1425
Implements a complete cache for model elements: expressions and constraints.
Definition: ModelCache.java:14
void setExpression(IntExpr value)
Definition: Solver.java:213
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:864
static final int CROSS_DATE
STARTS_BEFORE and ENDS_AFTER at the same time, i.e.
Definition: Solver.java:3608
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1287
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:760
IntExpr makeScalProd(IntVar[] vars, int[] coefs)
scalar product
Definition: Solver.java:624
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2094
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2291
static final int CHOOSE_STATIC_GLOBAL_BEST
This enum is used by Solver::MakePhase to specify how to select variables and values during the searc...
Definition: Solver.java:3372
Model visitor.
The class IntExpr is the base of all integer expressions in constraint programming.
Definition: IntExpr.java:14
static final int CHOOSE_RANDOM_RANK_FORWARD
Definition: Solver.java:3386
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Creates a search limit which can either apply cumulatively or search-by-search.
Definition: Solver.java:2275
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:3400
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3085
void restartSearch()
Definition: Solver.java:348
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2568
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1317
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:2996
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1441
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2065
Constraint makeSubCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path for those that do not loop upon them...
Definition: Solver.java:1669
void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr)
Adds 'constraint' to the solver and marks it as a cast constraint, that is, a constraint created call...
Definition: Solver.java:286
Constraint makeNotBetweenCt(IntExpr expr, long l, long u)
(expr < l || expr > u) This constraint is lazy as it will not make holes in the domain of variables.
Definition: Solver.java:1378
static final int ASSIGN_CENTER_VALUE
Selects the first possible value which is the closest to the center of the domain of the selected var...
Definition: Solver.java:3354
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name)
Creates an interval var with a fixed duration, and performed_variable.
Definition: Solver.java:1809
SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var)
OptimizeVar Search Logs At each solution, this monitor will also display the 'opt_var' value.
Definition: Solver.java:2355
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1282
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:3342
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2134
void setTmp_vector_(long[] value)
Unsafe temporary vector.
Definition: Solver.java:3219
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Version reducing calls to wall timer by estimating number of remaining calls.
Definition: Solver.java:2267
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:3462
IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose end is synchronized with the end of another inter...
Definition: Solver.java:1865
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:696
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:1897
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:3276
IntExpr makeElement(long[] values, IntVar index)
values[index]
Definition: Solver.java:712
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2009
IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index)
Function based element.
Definition: Solver.java:736
static final int OUTSIDE_SEARCH
This enum represents the state of the solver w.r.t.
Definition: Solver.java:3658
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:2830
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:2558
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3362
Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states)
This constraint create a finite automaton that will check the sequence of variables vars.
Definition: Solver.java:1733
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1037
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1149
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:2678
Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2609
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1292
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1496
static final int MAKEINACTIVE
Operator which makes path nodes inactive.
Definition: Solver.java:3442
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2413
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1653
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size)
This constraint states that all the boxes must not overlap.
Definition: Solver.java:1767
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:704
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:600
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:3496
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:949
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:3241
long[] getTmp_vector_()
Unsafe temporary vector.
Definition: Solver.java:3226
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:2591
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2371
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step)
NestedOptimize will collapse a search tree described by a decision builder 'db' and a set of monitors...
Definition: Solver.java:2719
static final int MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:3438
Solver(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:61
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:3434
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:3570
IntegerCastInfo()
Definition: Solver.java:196
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2446
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1307
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:3604
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:2540
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2433
static final int ASSIGN_MAX_VALUE
Selects the max value of the selected variable.
Definition: Solver.java:3346
FailException(String message)
Definition: Solver.java:93
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:584
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:560
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:2888
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters)
Variant with a sub_decison_builder specific to the first solution.
Definition: Solver.java:2875
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1267
Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1528
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branches...
Definition: Solver.java:2323
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:1817
The class IntVar is a subset of IntExpr.
IntVar[] makeBoolVarArray(int count)
Definition: Solver.java:115
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:3474
Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name)
This constraint enforces that, for any integer t, the sum of demands corresponding to an interval con...
Definition: Solver.java:1985
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:840
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:2825
IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose start is synchronized with the end of another int...
Definition: Solver.java:1849
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3024
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1029
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1257
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2466
Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator)
Creates a constraint which accumulates values along a path such that: cumuls[next[i]] = cumuls[i] + t...
Definition: Solver.java:1701
IntegerCastInfo(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:172
String model_name()
Returns the name of the model.
Definition: Solver.java:3167
Decision balancing_decision()
Definition: Solver.java:3056
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3146
Represents a predicate (boolean-valued function) uppon three.
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1221
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:2711
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:2724
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:3470
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:1905
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1446
A sequence variable is a variable whose domain is a set of possible orderings of the interval variabl...
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1173
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:501
Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator)
Creates a constraint which accumulates values along a path such that: cumuls[next[i]] = cumuls[i] + t...
Definition: Solver.java:1693
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:3674
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2423
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional)
Definition: Solver.java:132
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2739
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3174
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum)
Definition: Solver.java:2944
Constraint makeIndexOfFirstMaxValueConstraint(IntVar index, IntVar[] vars)
Creates a constraint that binds the index variable to the index of the first variable with the maximu...
Definition: Solver.java:1608
long fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:494
Decision makeFailDecision()
Definition: Solver.java:2476
A DecisionBuilder is responsible for creating the search tree.
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum)
Definition: Solver.java:2949
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:1937
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:332
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:792
void endSearch()
Definition: Solver.java:352
static final int INT_VAR_DEFAULT
This enum describes the strategy used to select the next branching variable at each node during the s...
Definition: Solver.java:3272
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:784
static final int INTERVAL_DEFAULT
This enum describes the straregy used to select the next interval variable and its value to be fixed.
Definition: Solver.java:3396
boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors)
SolveAndCommit using a decision builder and up to three search monitors, usually one for the objectiv...
Definition: Solver.java:359
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:3212
This class is used to manage a pool of solutions.
This exceptions signal that a failure has been raised in the C++ world.
Definition: Solver.java:88
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:2662
IntervalVar makeIntervalRelaxedMax(IntervalVar interval_var)
Creates and returns an interval variable that wraps around the given one, relaxing the max start and ...
Definition: Solver.java:1881
LocalSearchFilter MakeAcceptFilter()
Local Search Filters.
Definition: Solver.java:2929
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1362
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1772
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:473
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1297
Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends)
expr should not be in the list of forbidden intervals [start[i]..end[i]].
Definition: Solver.java:1433
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional, String name)
Definition: Solver.java:148
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3003
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:941
void addConstraint(Constraint c)
Adds the constraint 'c' to the model.
Definition: Solver.java:279
Constraint makeGreaterOrEqual(IntExpr expr, int value)
expr >= value
Definition: Solver.java:1117
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sear...
Definition: Solver.java:2243
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:2601
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:768
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2166
static final int CHOOSE_MIN_SIZE_LOWEST_MIN
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of pos...
Definition: Solver.java:3288
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:336
static final int SEQUENCE_SIMPLE
Definition: Solver.java:3384
Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name)
This constraint enforces that, for any integer t, the sum of demands corresponding to an interval con...
Definition: Solver.java:1977
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:1889
A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in r...
LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:2812
IntVar[] makeIntVarArray(int count, long min, long max)
Definition: Solver.java:98
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:528
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:880
static final int INTERVAL_SET_TIMES_FORWARD
Selects the variable with the lowest starting time of all variables, and fixes its starting time to t...
Definition: Solver.java:3404
LocalSearchFilter MakeRejectFilter()
Definition: Solver.java:2934
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2428
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2158
Decision makeRankFirstInterval(SequenceVar sequence, int index)
Returns a decision that tries to rank first the ith interval var in the sequence variable.
Definition: Solver.java:2625
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3116
Constraint getMaintainer()
Definition: Solver.java:226
static final int CHOOSE_MIN_SIZE_HIGHEST_MAX
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of pos...
Definition: Solver.java:3300
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:2545
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2283
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:965
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1133
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1412
LocalSearchFilter makeVariableDomainFilter()
Definition: Solver.java:2939
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:3263
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1252
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:2804
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:2573
DecisionBuilder makePhase(IntVar v0, int var_str, int val_str)
Shortcuts for small arrays.
Definition: Solver.java:2586
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:752
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:901
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:3566
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:3284
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1205
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:431
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:3562
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor)
Creates a Guided Local Search monitor.
Definition: Solver.java:2198
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:576
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:3383
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:3670
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2110
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2126
IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name)
Creates an interval var with a fixed duration.
Definition: Solver.java:1793
A Demon is the base element of a propagation queue.
Definition: Demon.java:14
Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states)
This constraint create a finite automaton that will check the sequence of variables vars.
Definition: Solver.java:1741
static final int ENDS_AFTER_END
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between the two...
Definition: Solver.java:3542
boolean checkAssignment(Assignment solution)
Checks whether the given assignment satisfies all relevant constraints.
Definition: Solver.java:382
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1093
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:3514
This struct holds all parameters for the default search.
Usual limit based on wall_time, number of explored branches and number of failures in the search tree...
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1125
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:824
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2461
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:816
static final int CHOOSE_MIN_SIZE_HIGHEST_MIN
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of pos...
Definition: Solver.java:3292
void set_optimization_direction(int direction)
Definition: Solver.java:505
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:2862
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2379
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:3528
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:3596
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:3446
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:3304
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:2752
IntervalVar makeMirrorInterval(IntervalVar interval_var)
Creates an interval var that is the mirror image of the given one, that is, the interval var obtained...
Definition: Solver.java:1833
IntervalVar makeIntervalVar(long start_min, long start_max, long duration_min, long duration_max, long end_min, long end_max, boolean optional, String name)
Creates an interval var by specifying the bounds on start, duration, and end.
Definition: Solver.java:1825
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:2657
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2315
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2734
This class represent a reversible FIFO structure.
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:917
boolean nextSolution()
Definition: Solver.java:344
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:2489
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1069
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1370
SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2057
static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters()
Create a ConstraintSolverParameters proto with all the default values.
Definition: Solver.java:263
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:2691
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2339
An Assignment is a variable -> domains mapping, used to report solutions to the user.
Definition: Assignment.java:14
Constraint makeLessOrEqual(IntExpr expr, long value)
expr <= value
Definition: Solver.java:1053
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:2481
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:3418
Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name)
This constraint enforces that, for any integer t, the sum of the demands corresponding to an interval...
Definition: Solver.java:1969
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:3458
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:997
static final int CHOOSE_PATH
Selects the next unbound variable on a path, the path being defined by the variables: var[i] correspo...
Definition: Solver.java:3324
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2190
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:2896
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:438
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1386
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:3312
static final int STARTS_AT
t starts at d, i.e.
Definition: Solver.java:3600
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver ...
Definition: Solver.java:3252
Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2617
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:808
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:3510
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:520
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2563
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3124
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:2901
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:2846
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2783
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:3189
IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose start is synchronized with the start of another i...
Definition: Solver.java:1841
Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1568
SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier< String > display_callback)
At each solution, this monitor will display the 'var' value and the result of display_callback.
Definition: Solver.java:2347
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:3550
NOLINT The PropagationBaseObject is a subclass of BaseObject that is also friend to the Solver class.
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1488
static final int SIMPLE_MARKER
Definition: Solver.java:3646
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:320
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2150
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:632
int searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:2989
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1237
static final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:3634
DecisionBuilder makeLocalSearchPhase(SequenceVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:2880
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:989
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:648
Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1520
IntExpr getExpression()
Definition: Solver.java:217
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:3197
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3358
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:1929
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:459
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:2916
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2086
SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2)
Creates a search limit that is reached when either of the underlying limit is reached.
Definition: Solver.java:2307
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:3662
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator)
var_val1_val2_comparator(var, val1, val2) is true iff assigning value "val1" to variable "var" is bet...
Definition: Solver.java:2553
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1456
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2259
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:2527
A Decision represents a choice point in the search tree.
Definition: Decision.java:14
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:3450
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:3204
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1417
static final int KEEP_LEFT
Right branches are ignored.
Definition: Solver.java:3626
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:957
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:371
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:2867
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1197
Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits)
Creates a constraint which accumulates values along a path such that: cumuls[next[i]] = cumuls[i] + t...
Definition: Solver.java:1677
Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1512
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:3630
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1061
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:888
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2219
Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target)
This constraint is a special case of the element constraint with an array of integer variables,...
Definition: Solver.java:1338
Demon makeConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1346
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2418
This class is the root class of all solution collectors.
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:2911
IntVar getVariable()
Definition: Solver.java:208
IntVar[] makeBoolVarArray(int count, String name)
Definition: Solver.java:123
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:973
Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1536
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1404
A search monitor is a simple set of callbacks to monitor all search events.
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler)
Prevent cycles.
Definition: Solver.java:1640
Constraint makeAllowedAssignment(IntVar[] vars, IntTupleSet tuples)
This method creates a constraint where the graph of the relation between the variables is given in ex...
Definition: Solver.java:1725
static com.google.ortools.constraintsolver.RegularLimitParameters parseFrom(java.nio.ByteBuffer data)
IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose end is synchronized with the start of another int...
Definition: Solver.java:1857
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:3426
Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value)
Creates a constraint that states that all variables in the first vector are different from all variab...
Definition: Solver.java:1632
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2405
static final int NOT_SET
Optimization directions.
Definition: Solver.java:3685
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2451
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1472
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch ...
Definition: Solver.java:3038
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:2744
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2706
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:3666
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables)
Creates a large neighborhood search operator which creates fragments (set of relaxed variables) with ...
Definition: Solver.java:2791
Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1504
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2494
LocalSearchOperator makeOperator(IntVar[] vars, int op)
Local Search Operators.
Definition: Solver.java:2768
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3071
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:680
String toString()
misc debug string.
Definition: Solver.java:410
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2078
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:3478
int state()
State of the solver.
Definition: Solver.java:396
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1312
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilter[] filters)
Definition: Solver.java:2921
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:3492
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1777
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:3622
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:933
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1213
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:3554
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3078
Represents an operation upon three.
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1354
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:375
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:3422
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:800
Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval c...
Definition: Solver.java:1961
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1109
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2001
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1077
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:3506
Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval c...
Definition: Solver.java:1945
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:3334
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:728
FailException()
Definition: Solver.java:89
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:309
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:3558
com.google.ortools.constraintsolver.ConstraintSolverParameters parameters()
Stored Parameters.
Definition: Solver.java:247
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1262
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2251
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1101
IntervalVar makeIntervalRelaxedMin(IntervalVar interval_var)
Creates and returns an interval variable that wraps around the given one, relaxing the min start and ...
Definition: Solver.java:1873
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:2596
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:3338
Cast constraints are special channeling constraints designed to keep a variable in sync with an expre...
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2102
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1302
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1165
static final int CHOICE_POINT
Definition: Solver.java:3647
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2118
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:2796
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2517
static final int CHOOSE_MAX_REGRET_ON_MIN
Among unbound variables, select the variable with the largest gap between the first and the second va...
Definition: Solver.java:3320
Local Search Filters are used for fast neighbor pruning.
RegularLimit makeTimeLimit(long time_in_ms)
Creates a search limit that constrains the running time given in milliseconds.
Definition: Solver.java:2227
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2701
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:2820
Constraint makeInversePermutationConstraint(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that 'left' and 'right' both represent permutations of [0....
Definition: Solver.java:1600
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:592
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1661
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:3574
static final int LK
This enum is used in Solver::MakeOperator associated with an evaluator to specify the neighborhood to...
Definition: Solver.java:3488
LocalSearchOperator makeNeighborhoodLimit(LocalSearchOperator op, long limit)
Creates a local search operator that wraps another local search operator and limits the number of nei...
Definition: Solver.java:2854
SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor)
MetaHeuristics which try to get the search out of local optima.
Definition: Solver.java:2174
void checkFail()
Definition: Solver.java:3256
Definition: Pack.java:18
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:2504
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1451
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2033
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2729
IntVar makeIntVar(long min, long max)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:536
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1085
void restartCurrentSearch()
Definition: Solver.java:3245
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1242
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2397
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:3592
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:3678
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:1921
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1759
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:424
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3010
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:893
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states ...
Definition: Solver.java:3645
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:3280
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:3532
long neighbors()
The number of neighbors created.
Definition: Solver.java:466
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:301
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:2535
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:445
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3092
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:720
static final int MINIMIZATION
Definition: Solver.java:3687
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:3308
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1322
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:664
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1189
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1045
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2384
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1464
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2696
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3108
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:313
static final int DELAYED_PRIORITY
This enum represents the three possible priorities for a demon in the Solver queue.
Definition: Solver.java:3524
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2073
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:1785
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1480
boolean checkConstraint(Constraint ct)
Checks whether adding this constraint will lead to an immediate failure.
Definition: Solver.java:389
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:688
Interval variables are often used in scheduling.
Constraint makeMapDomain(IntVar var, IntVar[] actives)
This constraint maps the domain of 'var' onto the array of variables 'actives'.
Definition: Solver.java:1717
long stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:487
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var(...
Definition: Solver.java:168
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:2971
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1181
IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step)
Semi continuous Expression (x <= 0 -> f(x) = 0; x > 0 -> f(x) = ax + b) a >= 0 and b >= 0.
Definition: Solver.java:848
void setVariable(IntVar value)
Definition: Solver.java:204
DecisionBuilder makeSolveOnce(DecisionBuilder db)
SolveOnce will collapse a search tree described by a decision builder 'db' and a set of monitors and ...
Definition: Solver.java:2686
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:909
void newSearch(DecisionBuilder db)
Definition: Solver.java:324
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:3454
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:3350
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an inte...
Definition: Solver.java:3584
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:2982
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1330
Decision makeRankLastInterval(SequenceVar sequence, int index)
Returns a decision that tries to rank last the ith interval var in the sequence variable.
Definition: Solver.java:2633
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1391
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1648
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:3376
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:3430
static final int CHOOSE_MIN_SIZE_LOWEST_MAX
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of pos...
Definition: Solver.java:3296
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:3316
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2017
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:776
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than right.
Definition: Solver.java:1584
Constraint makeLexicalLessOrEqual(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than or equal to right.
Definition: Solver.java:1592
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1157
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:3182
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2025
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1021
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3153
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:744
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:480
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:2773
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2041
Solver Class A solver represents the main computation engine.
Definition: Solver.java:57
IntVar makeIntVar(long min, long max, String name)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:512
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2203
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:656
Base class of all search limits.
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2331
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:568
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-le...
Definition: Solver.java:2964
boolean solve(DecisionBuilder db, SearchMonitor[] monitors)
Solves the problem using the given DecisionBuilder and returns true if a solution was found and accep...
Definition: Solver.java:293
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:3638
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:616
boolean isProfilingEnabled()
Returns whether we are profiling the solver.
Definition: Solver.java:3139
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:552
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1229
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:452
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:925
static final int MAXIMIZATION
Definition: Solver.java:3686
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size)
This constraint states that all the boxes must not overlap.
Definition: Solver.java:1749