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_t(int64_t)>)
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_t(int64_t, int64_t)>)
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_t(int64_t, int64_t, int64_t)>)
28 // note: Java does not provide TernaryOperator so we provide it.
30 // Used to wrap std::function<int64_t(int, int)>
31 // note: Java does not provide it, so we provide it.
33 
34 // Used to wrap IndexFilter1 (std::function<bool(int64_t)>)
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_t, int64_t, int64_t)>
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_t)>)
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(SWIGTYPE_p_absl__Duration time) {
2228  long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time));
2229  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2230  }
2231 
2232  public RegularLimit makeTimeLimit(long time_in_ms) {
2233  long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_1(swigCPtr, this, time_in_ms);
2234  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2235  }
2236 
2241  long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2242  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2243  }
2244 
2249  long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2250  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2251  }
2252 
2257  long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2258  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2259  }
2260 
2264  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2265  long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check, cumulative);
2266  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2267  }
2268 
2272  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check) {
2273  long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check);
2274  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2275  }
2276 
2280  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions) {
2281  long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions);
2282  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2283  }
2284 
2289  long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2290  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2291  }
2292 
2293  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2294  long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2295  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2296  }
2297 
2298  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2299  long cPtr = mainJNI.Solver_makeLimit__SWIG_5(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2300  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2301  }
2302 
2303  public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2304  long cPtr = mainJNI.Solver_makeLimit__SWIG_6(swigCPtr, this, time, branches, failures, solutions);
2305  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2306  }
2307 
2312  byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2313  if (buf == null || buf.length == 0) {
2314  return null;
2315  }
2316  try {
2318  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2319  throw new RuntimeException(
2320  "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2321  }
2322 }
2323 
2327  public SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2) {
2328  long cPtr = mainJNI.Solver_makeLimit__SWIG_7(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2329  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2330  }
2331 
2335  public ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance) {
2336  long cPtr = mainJNI.Solver_MakeImprovementLimit(swigCPtr, this, IntVar.getCPtr(objective_var), objective_var, maximize, objective_scaling_factor, objective_offset, improvement_rate_coefficient, improvement_rate_solutions_distance);
2337  return (cPtr == 0) ? null : new ImprovementSearchLimit(cPtr, false);
2338  }
2339 
2343  public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2344  long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2345  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2346  }
2347 
2351  public SearchMonitor makeSearchLog(int branch_period) {
2352  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2353  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2354  }
2355 
2359  public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2360  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2361  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2362  }
2363 
2367  public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2368  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2369  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2370  }
2371 
2375  public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2376  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2377  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2378  }
2379 
2383  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2384  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2385  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2386  }
2387 
2391  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2392  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2393  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2394  }
2395 
2399  public SearchMonitor makeSearchTrace(String prefix) {
2400  long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2401  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2402  }
2403 
2407  public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2408  long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2409  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2410  }
2411 
2412  public SearchMonitor makeExitSearchCallback(Runnable callback) {
2413  long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2414  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2415  }
2416 
2417  public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2418  long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2419  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2420  }
2421 
2426  long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2427  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2428  }
2429 
2434  long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2435  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2436  }
2437 
2442  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2443  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2444  }
2445 
2447  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2448  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2449  }
2450 
2452  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2453  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2454  }
2455 
2457  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2458  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2459  }
2460 
2462  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);
2463  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2464  }
2465 
2469  public Decision makeAssignVariableValue(IntVar var, long val) {
2470  long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2471  return (cPtr == 0) ? null : new Decision(cPtr, false);
2472  }
2473 
2475  long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2476  return (cPtr == 0) ? null : new Decision(cPtr, false);
2477  }
2478 
2480  long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2481  return (cPtr == 0) ? null : new Decision(cPtr, false);
2482  }
2483 
2484  public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2485  long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2486  return (cPtr == 0) ? null : new Decision(cPtr, false);
2487  }
2488 
2490  long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2491  return (cPtr == 0) ? null : new Decision(cPtr, false);
2492  }
2493 
2495  long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2496  return (cPtr == 0) ? null : new Decision(cPtr, false);
2497  }
2498 
2499  public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2500  long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2501  return (cPtr == 0) ? null : new Decision(cPtr, false);
2502  }
2503 
2505  long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
2506  return (cPtr == 0) ? null : new Decision(cPtr, false);
2507  }
2508 
2509  public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
2510  long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
2511  return (cPtr == 0) ? null : new Decision(cPtr, false);
2512  }
2513 
2518  long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2519  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2520  }
2521 
2523  long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2524  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2525  }
2526 
2528  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);
2529  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2530  }
2531 
2533  long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
2534  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2535  }
2536 
2541  long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2542  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2543  }
2544 
2546  long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2547  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2548  }
2549 
2551  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);
2552  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2553  }
2554 
2556  long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
2557  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2558  }
2559 
2563  public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
2564  long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
2565  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2566  }
2567 
2568  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
2569  long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
2570  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2571  }
2572 
2573  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
2574  long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
2575  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2576  }
2577 
2581  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
2582  long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
2583  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2584  }
2585 
2586  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
2587  long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
2588  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2589  }
2590 
2591  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2592  long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
2593  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2594  }
2595 
2596  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2597  long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
2598  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2599  }
2600 
2602  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
2603  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2604  }
2605 
2607  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
2608  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2609  }
2610 
2614  public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
2615  long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
2616  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2617  }
2618 
2619  public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
2620  long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
2621  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2622  }
2623 
2624  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
2625  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);
2626  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2627  }
2628 
2629  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
2630  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);
2631  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2632  }
2633 
2637  public Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker) {
2638  long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2639  return (cPtr == 0) ? null : new Decision(cPtr, false);
2640  }
2641 
2645  public Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker) {
2646  long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2647  return (cPtr == 0) ? null : new Decision(cPtr, false);
2648  }
2649 
2653  public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
2654  long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2655  return (cPtr == 0) ? null : new Decision(cPtr, false);
2656  }
2657 
2661  public Decision makeRankLastInterval(SequenceVar sequence, int index) {
2662  long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2663  return (cPtr == 0) ? null : new Decision(cPtr, false);
2664  }
2665 
2669  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
2670  long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
2671  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2672  }
2673 
2677  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
2678  long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
2679  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2680  }
2681 
2685  public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
2686  long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
2687  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2688  }
2689 
2690  public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
2691  long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
2692  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2693  }
2694 
2699  long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
2700  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2701  }
2702 
2707  long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
2708  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2709  }
2710 
2715  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
2716  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2717  }
2718 
2720  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
2721  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2722  }
2723 
2725  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
2726  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2727  }
2728 
2730  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);
2731  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2732  }
2733 
2735  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);
2736  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2737  }
2738 
2740  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
2741  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2742  }
2743 
2747  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
2748  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
2749  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2750  }
2751 
2752  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
2753  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
2754  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2755  }
2756 
2757  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
2758  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);
2759  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2760  }
2761 
2762  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
2763  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);
2764  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2765  }
2766 
2767  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
2768  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);
2769  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2770  }
2771 
2772  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
2773  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
2774  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2775  }
2776 
2781  long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2782  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2783  }
2784 
2789  long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2790  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2791  }
2792 
2796  public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
2797  long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
2798  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2799  }
2800 
2801  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
2802  long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
2803  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2804  }
2805 
2806  public LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op) {
2807  long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
2808  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2809  }
2810 
2811  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
2812  long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
2813  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2814  }
2815 
2819  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
2820  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
2821  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2822  }
2823 
2824  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
2825  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
2826  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2827  }
2828 
2833  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
2834  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2835  }
2836 
2840  public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
2841  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
2842  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2843  }
2844 
2849  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
2850  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2851  }
2852 
2854  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
2855  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2856  }
2857 
2859  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
2860  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2861  }
2862 
2867  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
2868  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2869  }
2870 
2875  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
2876  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2877  }
2878 
2882  public LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize) {
2883  long cPtr = mainJNI.Solver_MultiArmedBanditConcatenateOperators(swigCPtr, this, ops, memory_coefficient, exploration_coefficient, maximize);
2884  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2885  }
2886 
2891  long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
2892  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2893  }
2894 
2899  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2900  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2901  }
2902 
2904  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2905  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2906  }
2907 
2911  public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
2912  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);
2913  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2914  }
2915 
2917  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2918  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2919  }
2920 
2925  long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
2926  return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
2927  }
2928 
2933  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);
2934  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2935  }
2936 
2938  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);
2939  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2940  }
2941 
2943  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, LocalSearchFilterManager.getCPtr(filter_manager), filter_manager);
2944  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2945  }
2946 
2948  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);
2949  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2950  }
2951 
2953  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);
2954  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2955  }
2956 
2958  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, LocalSearchFilterManager.getCPtr(filter_manager), filter_manager);
2959  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2960  }
2961 
2966  long cPtr = mainJNI.Solver_MakeAcceptFilter(swigCPtr, this);
2967  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2968  }
2969 
2971  long cPtr = mainJNI.Solver_MakeRejectFilter(swigCPtr, this);
2972  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2973  }
2974 
2976  long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
2977  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2978  }
2979 
2980  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum) {
2981  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, filter_enum);
2982  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2983  }
2984 
2985  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum) {
2986  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, secondary_vars, values, filter_enum);
2987  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2988  }
2989 
2993  public void topPeriodicCheck() {
2994  mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
2995  }
2996 
3000  public int topProgressPercent() {
3001  return mainJNI.Solver_topProgressPercent(swigCPtr, this);
3002  }
3003 
3007  public void pushState() {
3008  mainJNI.Solver_pushState(swigCPtr, this);
3009  }
3010 
3011  public void popState() {
3012  mainJNI.Solver_popState(swigCPtr, this);
3013  }
3014 
3018  public int searchDepth() {
3019  return mainJNI.Solver_searchDepth(swigCPtr, this);
3020  }
3021 
3025  public int searchLeftDepth() {
3026  return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
3027  }
3028 
3032  public int solveDepth() {
3033  return mainJNI.Solver_solveDepth(swigCPtr, this);
3034  }
3035 
3039  public long rand64(long size) {
3040  return mainJNI.Solver_rand64(swigCPtr, this, size);
3041  }
3042 
3046  public int rand32(int size) {
3047  return mainJNI.Solver_rand32(swigCPtr, this, size);
3048  }
3049 
3053  public void reSeed(int seed) {
3054  mainJNI.Solver_reSeed(swigCPtr, this, seed);
3055  }
3056 
3060  public void exportProfilingOverview(String filename) {
3061  mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3062  }
3063 
3067  public String localSearchProfile() {
3068  return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3069  }
3070 
3074  public boolean currentlyInSolve() {
3075  return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3076  }
3077 
3081  public int constraints() {
3082  return mainJNI.Solver_constraints(swigCPtr, this);
3083  }
3084 
3088  public void accept(ModelVisitor visitor) {
3089  mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3090  }
3091 
3093  long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3094  return (cPtr == 0) ? null : new Decision(cPtr, false);
3095  }
3096 
3100  public void clear_fail_intercept() {
3101  mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3102  }
3103 
3107  public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3108  mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3109  }
3110 
3114  public boolean UseFastLocalSearch() {
3115  return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3116  }
3117 
3121  public boolean hasName(PropagationBaseObject object) {
3122  return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3123  }
3124 
3128  public Demon registerDemon(Demon demon) {
3129  long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3130  return (cPtr == 0) ? null : new Demon(cPtr, false);
3131  }
3132 
3137  long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3138  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3139  }
3140 
3145  long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3146  return (cPtr == 0) ? null : new IntVar(cPtr, false);
3147  }
3148 
3153  long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3154  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3155  }
3156 
3160  public ModelCache cache() {
3161  long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3162  return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3163  }
3164 
3168  public boolean instrumentsDemons() {
3169  return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3170  }
3171 
3175  public boolean isProfilingEnabled() {
3176  return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3177  }
3178 
3183  return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3184  }
3185 
3189  public boolean instrumentsVariables() {
3190  return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3191  }
3192 
3196  public boolean nameAllVariables() {
3197  return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3198  }
3199 
3203  public String model_name() {
3204  return mainJNI.Solver_model_name(swigCPtr, this);
3205  }
3206 
3211  long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3212  return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3213  }
3214 
3219  mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
3220  }
3221 
3226  long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
3227  return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
3228  }
3229 
3234  mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
3235  }
3236 
3241  long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
3242  return (cPtr == 0) ? null : new Assignment(cPtr, false);
3243  }
3244 
3248  public void ClearLocalSearchState() {
3249  mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
3250  }
3251 
3255  public void setTmpVector(long[] value) {
3256  mainJNI.Solver_tmpVector_set(swigCPtr, this, value);
3257  }
3258 
3262  public long[] getTmpVector() {
3263  return mainJNI.Solver_tmpVector_get(swigCPtr, this);
3264 }
3265 
3270  long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
3271  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3272  }
3273 
3277  public void finishCurrentSearch() {
3278  mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
3279  }
3280 
3281  public void restartCurrentSearch() {
3282  mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
3283  }
3284 
3288  public void shouldFail() {
3289  mainJNI.Solver_shouldFail(swigCPtr, this);
3290  }
3291 
3292  public void checkFail() {
3293  mainJNI.Solver_checkFail(swigCPtr, this);
3294  }
3295 
3299  public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
3300  // IntVarStrategy
3308  public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
3312  public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
3316  public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
3320  public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
3324  public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
3328  public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
3332  public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
3336  public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
3340  public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
3344  public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
3348  public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
3352  public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
3356  public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
3360  public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
3361 
3362  // IntValueStrategy
3370  public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
3374  public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
3378  public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
3382  public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
3386  public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
3390  public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
3394  public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
3398  public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
3399 
3400  // EvaluatorStrategy
3408  public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
3412  public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
3413 
3414  // SequenceStrategy
3419  public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
3420  public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
3421  public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
3422  public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
3423 
3424  // IntervalStrategy
3432  public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
3436  public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
3440  public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
3444  public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
3445 
3446  // LocalSearchOperators
3454  public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
3458  public final static int OROPT = mainJNI.Solver_OROPT_get();
3462  public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
3466  public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
3470  public final static int CROSS = mainJNI.Solver_CROSS_get();
3474  public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
3478  public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
3482  public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
3486  public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
3490  public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
3494  public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
3498  public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
3502  public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
3506  public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
3510  public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
3514  public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
3515 
3516  // EvaluatorLocalSearchOperators
3524  public final static int LK = mainJNI.Solver_LK_get();
3528  public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
3532  public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
3533 
3534  // LocalSearchFilterBound
3542  public final static int GE = mainJNI.Solver_GE_get();
3546  public final static int LE = mainJNI.Solver_LE_get();
3550  public final static int EQ = mainJNI.Solver_EQ_get();
3551 
3552  // DemonPriority
3560  public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
3564  public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
3568  public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
3569 
3570  // BinaryIntervalRelation
3578  public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
3582  public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
3586  public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
3590  public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
3594  public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
3598  public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
3602  public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
3606  public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
3610  public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
3611 
3612  // UnaryIntervalRelation
3620  public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
3624  public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
3628  public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
3632  public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
3636  public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
3640  public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
3644  public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
3648  public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
3649 
3650  // DecisionModification
3658  public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
3662  public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
3666  public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
3670  public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
3674  public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
3675 
3676  // MarkerType
3681  public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
3682  public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
3683  public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
3684  public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
3685 
3686  // SolverState
3694  public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
3698  public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
3702  public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
3706  public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
3710  public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
3714  public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
3715 
3716  // OptimizationDirection
3721  public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
3722  public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
3723  public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
3724 
3725 }
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:2739
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 searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:3025
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:3390
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2412
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:933
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:728
String toString()
misc debug string.
Definition: Solver.java:410
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:3324
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:3312
LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:2882
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:552
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3136
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:1921
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:240
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1213
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:864
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3060
void newSearch(DecisionBuilder db)
Definition: Solver.java:324
static final int LK
This enum is used in Solver::MakeOperator associated with an evaluator to specify the neighborhood to...
Definition: Solver.java:3524
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:3462
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2461
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:2819
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1488
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Definition: Solver.java:2293
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
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:656
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-le...
Definition: Solver.java:3000
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:800
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
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:2924
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:1817
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2065
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
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:367
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:2840
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2399
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:3542
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:2629
Solver Class A solver represents the main computation engine.
Definition: Solver.java:57
static final int STARTS_AT
t starts at d, i.e.
Definition: Solver.java:3636
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1759
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1472
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:3466
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2456
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3046
A Decision represents a choice point in the search tree.
Definition: Decision.java:14
Constraint makeLessOrEqual(IntExpr expr, long value)
expr <= value
Definition: Solver.java:1053
String model_name()
Returns the name of the model.
Definition: Solver.java:3203
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1037
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:680
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2203
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:3344
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:616
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:664
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:888
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1093
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
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2280
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2118
IntVar [] makeIntVarArray(int count, long min, long max, String name)
Definition: Solver.java:106
IntervalVar [] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional)
Definition: Solver.java:132
boolean isProfilingEnabled()
Returns whether we are profiling the solver.
Definition: Solver.java:3175
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:2685
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:3348
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
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:2747
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1252
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1399
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:3632
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1480
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:3610
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:925
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:3007
Solver(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:61
boolean checkAssignment(Assignment solution)
Checks whether the given assignment satisfies all relevant constraints.
Definition: Solver.java:382
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
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
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
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:672
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1173
IntervalVar [] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional, String name)
Definition: Solver.java:148
DecisionBuilder makeLocalSearchPhase(SequenceVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:2916
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2407
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2219
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
static final int ENDS_AFTER_END
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between the two...
Definition: Solver.java:3578
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2001
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:3386
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2527
void set_optimization_direction(int direction)
Definition: Solver.java:505
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:752
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1354
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:2669
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3160
static long memoryUsage()
Current memory usage in bytes.
Definition: Solver.java:417
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
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:332
IntVar [] makeIntVarArray(int count, long min, long max)
Definition: Solver.java:98
IntExpr makeElement(long[] values, IntVar index)
values[index]
Definition: Solver.java:712
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:301
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:776
A Demon is the base element of a propagation queue.
Definition: Demon.java:14
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2150
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1302
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1069
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2078
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2484
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2033
Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2637
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1560
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:584
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:3233
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1277
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1391
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum)
Definition: Solver.java:2980
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:3328
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:2832
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
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:2619
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
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1282
boolean checkConstraint(Constraint ct)
Checks whether adding this constraint will lead to an immediate failure.
Definition: Solver.java:389
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 MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:3474
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:3408
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
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 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
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
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:473
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:2858
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:2573
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1307
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1464
LocalSearchFilter makeVariableDomainFilter()
Definition: Solver.java:2975
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1197
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sear...
Definition: Solver.java:2248
void setTmpVector(long[] value)
Unsafe temporary vector.
Definition: Solver.java:3255
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
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 ENDS_AT
t ends at d, i.e.
Definition: Solver.java:3624
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
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
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an inte...
Definition: Solver.java:3620
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:2327
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1205
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2017
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1272
IntVar [] makeBoolVarArray(int count, String name)
Definition: Solver.java:123
void newSearch(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:328
static final int AVOID_DATE
STARTS_AFTER or ENDS_BEFORE, i.e.
Definition: Solver.java:3648
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2474
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3210
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
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
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1109
long [] getTmpVector()
Unsafe temporary vector.
Definition: Solver.java:3262
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1661
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:2903
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2094
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
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2288
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:3490
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1005
Base class of all search limits.
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2596
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1077
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1754
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:648
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2441
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:909
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:3340
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:568
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:2952
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2272
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:3320
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:3698
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2469
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:2606
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:3374
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:3706
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1404
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Definition: Solver.java:2298
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1257
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
Filter manager: when a move is made, filters are executed to decide whether the solution is feasible ...
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
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:528
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2757
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3107
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3182
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
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1292
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:2752
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:2788
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1297
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:3586
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
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1061
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
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
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:941
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:200
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:704
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:3498
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
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1777
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:3582
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:2601
long fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:494
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
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2806
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:2801
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:3550
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3189
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:1801
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:760
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2311
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:3674
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:744
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:2714
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:560
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:965
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:2911
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3394
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:824
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:688
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:600
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
NOLINT The PropagationBaseObject is a subclass of BaseObject that is also friend to the Solver class.
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler)
Prevent cycles.
Definition: Solver.java:1640
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver ...
Definition: Solver.java:3288
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1456
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
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1386
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2256
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2126
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:2942
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:957
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:2540
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2591
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
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:3336
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2734
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum)
Definition: Solver.java:2985
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:2624
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2041
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2264
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:445
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:2677
RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time)
Creates a search limit that constrains the running time.
Definition: Solver.java:2227
int state()
State of the solver.
Definition: Solver.java:396
Demon makeConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1346
This struct holds all parameters for the default search.
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:2898
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:452
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:3356
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
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:320
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:696
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:840
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:808
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:3458
The class IntExpr is the base of all integer expressions in constraint programming.
Definition: IntExpr.java:14
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:2653
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:2853
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:592
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:2532
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:720
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:3606
A search monitor is a simple set of callbacks to monitor all search events.
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:3432
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:520
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:3240
Cast constraints are special channeling constraints designed to keep a variable in sync with an expre...
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
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
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1287
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:313
static final int ASSIGN_MAX_VALUE
Selects the max value of the selected variable.
Definition: Solver.java:3382
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:480
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:632
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2724
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1013
A DecisionBuilder is responsible for creating the search tree.
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:2947
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:3658
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:3352
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:973
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:3316
Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2645
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2367
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
long neighbors()
The number of neighbors created.
Definition: Solver.java:466
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Definition: Solver.java:2303
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:2719
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2489
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1247
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1021
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:2568
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:2586
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:501
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1312
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1648
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1229
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2359
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
RegularLimit makeTimeLimit(long time_in_ms)
Definition: Solver.java:2232
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1441
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2073
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2343
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:340
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:309
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
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:2509
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1029
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:1889
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1317
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:3454
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:3277
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3196
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2009
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
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:2874
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:3546
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
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2494
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:3666
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:371
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:2690
This class is used to manage a pool of solutions.
IntVar makeIntVar(long min, long max)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:536
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:2698
This class encapsulates an objective.
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1267
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2134
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
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1653
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2086
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:3299
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:1929
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1141
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:989
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than right.
Definition: Solver.java:1584
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:2555
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:2932
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2811
boolean solve(DecisionBuilder db)
Definition: Solver.java:297
This class represent a reversible FIFO structure.
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
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:3444
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3114
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1552
static com.google.ortools.constraintsolver.RegularLimitParameters parseFrom(java.nio.ByteBuffer data)
A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in r...
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:3308
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:3419
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:917
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1045
Implements a complete cache for model elements: expressions and constraints.
Definition: ModelCache.java:14
A sequence variable is a variable whose domain is a set of possible orderings of the interval variabl...
This exceptions signal that a failure has been raised in the C++ world.
Definition: Solver.java:88
IntExpr makeDifference(long value, IntExpr expr)
value - expr
Definition: Solver.java:640
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1496
static com.google.ortools.constraintsolver.ConstraintSolverParameters parseFrom(java.nio.ByteBuffer data)
static final int CROSS_DATE
STARTS_BEFORE and ENDS_AFTER at the same time, i.e.
Definition: Solver.java:3644
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3144
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:438
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1237
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:981
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:3370
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:1785
Classes to which this template function can be applied to as of 04/2014.
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2767
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:768
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2190
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2417
static final int NOT_SET
Optimization directions.
Definition: Solver.java:3721
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:2780
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3168
long stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:487
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2479
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2499
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1181
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1417
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:832
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3053
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1133
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3039
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
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var(...
Definition: Solver.java:168
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:2957
An Assignment is a variable -> domains mapping, used to report solutions to the user.
Definition: Assignment.java:14
LocalSearchOperator makeOperator(IntVar[] vars, int op)
Local Search Operators.
Definition: Solver.java:2796
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:459
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2433
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2425
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:3528
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:3032
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:2383
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2211
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:997
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:576
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:544
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:872
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch ...
Definition: Solver.java:3074
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:792
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:3470
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:3378
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1157
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2049
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1165
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:1897
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:2375
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2110
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3128
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1221
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1125
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1362
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:3514
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:3640
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1085
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
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1189
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:2661
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:3482
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:2706
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2729
This class is the root class of all solution collectors.
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:3360
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3081
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2762
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
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:3594
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:2866
Represents a function that accepts two int-valued arguments and produces a long-valued result.
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
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:431
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1451
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:3510
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
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
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3088
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3067
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:3702
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:3598
static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters()
Create a ConstraintSolverParameters proto with all the default values.
Definition: Solver.java:263
IntExpr makeScalProd(IntVar[] vars, int[] coefs)
scalar product
Definition: Solver.java:624
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:305
static final int MAKEINACTIVE
Operator which makes path nodes inactive.
Definition: Solver.java:3478
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:3506
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:3436
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1242
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branches...
Definition: Solver.java:2351
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:3710
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2451
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1262
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1330
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:2391
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:3714
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:3269
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states ...
Definition: Solver.java:3681
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:3248
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:3218
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:893
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:2890
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:2563
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:3486
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2025
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
ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance)
Limits the search based on the improvements of 'objective_var'.
Definition: Solver.java:2335
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1772
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
IntExpr makeSum(IntVar[] vars)
sum of all vars.
Definition: Solver.java:608
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2545
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3121
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:3628
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:3590
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:3602
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:2824
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2550
com.google.ortools.constraintsolver.ConstraintSolverParameters parameters()
Stored Parameters.
Definition: Solver.java:247
boolean solveAndCommit(DecisionBuilder db)
Definition: Solver.java:363
RegularLimit makeBranchesLimit(long branches)
Creates a search limit that constrains the number of branches explored in the search tree.
Definition: Solver.java:2240
void fail()
Abandon the current branch in the search tree.
Definition: Solver.java:403
Represents a predicate (boolean-valued function) uppon three.
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:3440
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:2517
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2142
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3398
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:880
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 makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1568
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1412
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1322
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:3225
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:3564
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2522
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:3494
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:816
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
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:2848
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 DELAYED_PRIORITY
This enum represents the three possible priorities for a demon in the Solver queue.
Definition: Solver.java:3560
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2446
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:2581
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:1937
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:3412
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:3018
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1370
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3152
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:3332
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:375
Constraint makeMapDomain(IntVar var, IntVar[] actives)
This constraint maps the domain of 'var' onto the array of variables 'actives'.
Definition: Solver.java:1717
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1101
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
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:2937
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:3694
Usual limit based on wall_time, number of explored branches and number of failures in the search tree...
static final int KEEP_LEFT
Right branches are ignored.
Definition: Solver.java:3662
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:3502
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:336
DecisionBuilder makePhase(IntVar v0, int var_str, int val_str)
Shortcuts for small arrays.
Definition: Solver.java:2614
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:3532
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:949
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 final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:3670
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:424
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:784
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:3568
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to ch...
Definition: Solver.java:2993
LocalSearchFilter MakeAcceptFilter()
Local Search Filters.
Definition: Solver.java:2965
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:901
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:2772
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1446
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:1905
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2102
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1149