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.0
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 package com.google.ortools.constraintsolver;
10 
13 
14 // Used to wrap DisplayCallback (std::function<std::string()>)
15 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html
16 import java.util.function.Supplier;
17 // Used to wrap std::function<bool()>
18 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/BooleanSupplier.html
19 import java.util.function.BooleanSupplier;
20 
21 // Used to wrap IndexEvaluator1 (std::function<int64(int64)>)
22 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongUnaryOperator.html
23 import java.util.function.LongUnaryOperator;
24 // Used to wrap IndexEvaluator2 (std::function<int64(int64, int64)>)
25 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongBinaryOperator.html
26 import java.util.function.LongBinaryOperator;
27 // Used to wrap IndexEvaluator3 (std::function<int64(int64, int64, int64)>)
28 // note: Java does not provide TernaryOperator so we provide it.
30 // Used to wrap std::function<int64(int, int)>
31 // note: Java does not provide it, so we provide it.
33 
34 // Used to wrap IndexFilter1 (std::function<bool(int64)>)
35 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongPredicate.html
36 import java.util.function.LongPredicate;
37 
38 // Used to wrap std::function<bool(int64, int64, int64)>
39 // note: Java does not provide TernaryPredicate so we provide it
41 
42 // Used to wrap std::function<void(Solver*)>
43 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
44 import java.util.function.Consumer;
45 
46 // Used to wrap ObjectiveWatcher (std::function<void(int64)>)
47 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongConsumer.html
48 import java.util.function.LongConsumer;
49 
50 // Used to wrap Closure (std::function<void()>)
51 // see https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html
52 import java.lang.Runnable;
53 
57 public class Solver {
58  private transient long swigCPtr;
59  protected transient boolean swigCMemOwn;
60 
61  protected Solver(long cPtr, boolean cMemoryOwn) {
62  swigCMemOwn = cMemoryOwn;
63  swigCPtr = cPtr;
64  }
65 
66  protected static long getCPtr(Solver obj) {
67  return (obj == null) ? 0 : obj.swigCPtr;
68  }
69 
70  @SuppressWarnings("deprecation")
71  protected void finalize() {
72  delete();
73  }
74 
75  public synchronized void delete() {
76  if (swigCPtr != 0) {
77  if (swigCMemOwn) {
78  swigCMemOwn = false;
79  mainJNI.delete_Solver(swigCPtr);
80  }
81  swigCPtr = 0;
82  }
83  }
84 
88  public static class FailException extends Exception {
89  public FailException() {
90  super();
91  }
92 
93  public FailException(String message) {
94  super(message);
95  }
96  }
97 
98  public IntVar[] makeIntVarArray(int count, long min, long max) {
99  IntVar[] array = new IntVar[count];
100  for (int i = 0; i < count; ++i) {
101  array[i] = makeIntVar(min, max);
102  }
103  return array;
104  }
105 
106  public IntVar[] makeIntVarArray(int count, long min, long max, String name) {
107  IntVar[] array = new IntVar[count];
108  for (int i = 0; i < count; ++i) {
109  String var_name = name + i;
110  array[i] = makeIntVar(min, max, var_name);
111  }
112  return array;
113  }
114 
115  public IntVar[] makeBoolVarArray(int count) {
116  IntVar[] array = new IntVar[count];
117  for (int i = 0; i < count; ++i) {
118  array[i] = makeBoolVar();
119  }
120  return array;
121  }
122 
123  public IntVar[] makeBoolVarArray(int count, String name) {
124  IntVar[] array = new IntVar[count];
125  for (int i = 0; i < count; ++i) {
126  String var_name = name + i;
127  array[i] = makeBoolVar(var_name);
128  }
129  return array;
130  }
131 
133  long start_min,
134  long start_max,
135  long duration,
136  boolean optional) {
137  IntervalVar[] array = new IntervalVar[count];
138  for (int i = 0; i < count; ++i) {
139  array[i] = makeFixedDurationIntervalVar(start_min,
140  start_max,
141  duration,
142  optional,
143  "");
144  }
145  return array;
146  }
147 
149  long start_min,
150  long start_max,
151  long duration,
152  boolean optional,
153  String name) {
154  IntervalVar[] array = new IntervalVar[count];
155  for (int i = 0; i < count; ++i) {
156  array[i] = makeFixedDurationIntervalVar(start_min,
157  start_max,
158  duration,
159  optional,
160  name + i);
161  }
162  return array;
163  }
164 
168  static public class IntegerCastInfo {
169  private transient long swigCPtr;
170  protected transient boolean swigCMemOwn;
171 
172  protected IntegerCastInfo(long cPtr, boolean cMemoryOwn) {
173  swigCMemOwn = cMemoryOwn;
174  swigCPtr = cPtr;
175  }
176 
177  protected static long getCPtr(IntegerCastInfo obj) {
178  return (obj == null) ? 0 : obj.swigCPtr;
179  }
180 
181  @SuppressWarnings("deprecation")
182  protected void finalize() {
183  delete();
184  }
185 
186  public synchronized void delete() {
187  if (swigCPtr != 0) {
188  if (swigCMemOwn) {
189  swigCMemOwn = false;
190  mainJNI.delete_Solver_IntegerCastInfo(swigCPtr);
191  }
192  swigCPtr = 0;
193  }
194  }
195 
196  public IntegerCastInfo() {
197  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_0(), true);
198  }
199 
201  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_1(IntVar.getCPtr(v), v, IntExpr.getCPtr(e), e, Constraint.getCPtr(c), c), true);
202  }
203 
204  public void setVariable(IntVar value) {
205  mainJNI.Solver_IntegerCastInfo_variable_set(swigCPtr, this, IntVar.getCPtr(value), value);
206  }
207 
208  public IntVar getVariable() {
209  long cPtr = mainJNI.Solver_IntegerCastInfo_variable_get(swigCPtr, this);
210  return (cPtr == 0) ? null : new IntVar(cPtr, false);
211  }
212 
213  public void setExpression(IntExpr value) {
214  mainJNI.Solver_IntegerCastInfo_expression_set(swigCPtr, this, IntExpr.getCPtr(value), value);
215  }
216 
218  long cPtr = mainJNI.Solver_IntegerCastInfo_expression_get(swigCPtr, this);
219  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
220  }
221 
222  public void setMaintainer(Constraint value) {
223  mainJNI.Solver_IntegerCastInfo_maintainer_set(swigCPtr, this, Constraint.getCPtr(value), value);
224  }
225 
227  long cPtr = mainJNI.Solver_IntegerCastInfo_maintainer_get(swigCPtr, this);
228  return (cPtr == 0) ? null : new Constraint(cPtr, false);
229  }
230 
231  }
232 
236  public Solver(String name) {
237  this(mainJNI.new_Solver__SWIG_0(name), true);
238  }
239 
241  this(mainJNI.new_Solver__SWIG_1(name, parameters.toByteArray()), true);
242  }
243 
248  byte[] buf = mainJNI.Solver_parameters(swigCPtr, this);
249  if (buf == null || buf.length == 0) {
250  return null;
251  }
252  try {
254  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
255  throw new RuntimeException(
256  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
257  }
258 }
259 
264  byte[] buf = mainJNI.Solver_defaultSolverParameters();
265  if (buf == null || buf.length == 0) {
266  return null;
267  }
268  try {
270  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
271  throw new RuntimeException(
272  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
273  }
274 }
275 
279  public void addConstraint(Constraint c) {
280  mainJNI.Solver_addConstraint(swigCPtr, this, Constraint.getCPtr(c), c);
281  }
282 
286  public void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr) {
287  mainJNI.Solver_addCastConstraint(swigCPtr, this, CastConstraint.getCPtr(constraint), constraint, IntVar.getCPtr(target_var), target_var, IntExpr.getCPtr(expr), expr);
288  }
289 
293  public boolean solve(DecisionBuilder db, SearchMonitor[] monitors) {
294  return mainJNI.Solver_solve__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
295  }
296 
297  public boolean solve(DecisionBuilder db) {
298  return mainJNI.Solver_solve__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
299  }
300 
301  public boolean solve(DecisionBuilder db, SearchMonitor m1) {
302  return mainJNI.Solver_solve__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
303  }
304 
305  public boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2) {
306  return mainJNI.Solver_solve__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
307  }
308 
310  return mainJNI.Solver_solve__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
311  }
312 
314  return mainJNI.Solver_solve__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3, SearchMonitor.getCPtr(m4), m4);
315  }
316 
320  public void newSearch(DecisionBuilder db, SearchMonitor[] monitors) {
321  mainJNI.Solver_newSearch__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
322  }
323 
324  public void newSearch(DecisionBuilder db) {
325  mainJNI.Solver_newSearch__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
326  }
327 
329  mainJNI.Solver_newSearch__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
330  }
331 
333  mainJNI.Solver_newSearch__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
334  }
335 
337  mainJNI.Solver_newSearch__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
338  }
339 
341  mainJNI.Solver_newSearch__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3, SearchMonitor.getCPtr(m4), m4);
342  }
343 
344  public boolean nextSolution() {
345  return mainJNI.Solver_nextSolution(swigCPtr, this);
346  }
347 
348  public void restartSearch() {
349  mainJNI.Solver_restartSearch(swigCPtr, this);
350  }
351 
352  public void endSearch() {
353  mainJNI.Solver_endSearch(swigCPtr, this);
354  }
355 
359  public boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors) {
360  return mainJNI.Solver_solveAndCommit__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
361  }
362 
363  public boolean solveAndCommit(DecisionBuilder db) {
364  return mainJNI.Solver_solveAndCommit__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
365  }
366 
368  return mainJNI.Solver_solveAndCommit__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
369  }
370 
372  return mainJNI.Solver_solveAndCommit__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
373  }
374 
376  return mainJNI.Solver_solveAndCommit__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
377  }
378 
382  public boolean checkAssignment(Assignment solution) {
383  return mainJNI.Solver_checkAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
384  }
385 
389  public boolean checkConstraint(Constraint ct) {
390  return mainJNI.Solver_checkConstraint(swigCPtr, this, Constraint.getCPtr(ct), ct);
391  }
392 
396  public int state() {
397  return mainJNI.Solver_state(swigCPtr, this);
398  }
399 
403  public void fail() {
404  mainJNI.Solver_fail(swigCPtr, this);
405  }
406 
410  public String toString() {
411  return mainJNI.Solver_toString(swigCPtr, this);
412  }
413 
417  public static long memoryUsage() {
418  return mainJNI.Solver_memoryUsage();
419  }
420 
424  public SWIGTYPE_p_absl__Time Now() {
425  return new SWIGTYPE_p_absl__Time(mainJNI.Solver_Now(swigCPtr, this), true);
426  }
427 
431  public long wallTime() {
432  return mainJNI.Solver_wallTime(swigCPtr, this);
433  }
434 
438  public long branches() {
439  return mainJNI.Solver_branches(swigCPtr, this);
440  }
441 
445  public long solutions() {
446  return mainJNI.Solver_solutions(swigCPtr, this);
447  }
448 
452  public long unchecked_solutions() {
453  return mainJNI.Solver_unchecked_solutions(swigCPtr, this);
454  }
455 
459  public long demon_runs(int p) {
460  return mainJNI.Solver_demon_runs(swigCPtr, this, p);
461  }
462 
466  public long failures() {
467  return mainJNI.Solver_failures(swigCPtr, this);
468  }
469 
473  public long neighbors() {
474  return mainJNI.Solver_neighbors(swigCPtr, this);
475  }
476 
480  public long filteredNeighbors() {
481  return mainJNI.Solver_filteredNeighbors(swigCPtr, this);
482  }
483 
487  public long acceptedNeighbors() {
488  return mainJNI.Solver_acceptedNeighbors(swigCPtr, this);
489  }
490 
494  public java.math.BigInteger stamp() {
495  return mainJNI.Solver_stamp(swigCPtr, this);
496  }
497 
501  public java.math.BigInteger fail_stamp() {
502  return mainJNI.Solver_fail_stamp(swigCPtr, this);
503  }
504 
508  public int optimization_direction() {
509  return mainJNI.Solver_optimization_direction(swigCPtr, this);
510  }
511 
512  public void set_optimization_direction(int direction) {
513  mainJNI.Solver_set_optimization_direction(swigCPtr, this, direction);
514  }
515 
519  public IntVar makeIntVar(long min, long max, String name) {
520  long cPtr = mainJNI.Solver_makeIntVar__SWIG_0(swigCPtr, this, min, max, name);
521  return (cPtr == 0) ? null : new IntVar(cPtr, false);
522  }
523 
527  public IntVar makeIntVar(long[] values, String name) {
528  long cPtr = mainJNI.Solver_makeIntVar__SWIG_1(swigCPtr, this, values, name);
529  return (cPtr == 0) ? null : new IntVar(cPtr, false);
530  }
531 
535  public IntVar makeIntVar(int[] values, String name) {
536  long cPtr = mainJNI.Solver_makeIntVar__SWIG_2(swigCPtr, this, values, name);
537  return (cPtr == 0) ? null : new IntVar(cPtr, false);
538  }
539 
543  public IntVar makeIntVar(long min, long max) {
544  long cPtr = mainJNI.Solver_makeIntVar__SWIG_3(swigCPtr, this, min, max);
545  return (cPtr == 0) ? null : new IntVar(cPtr, false);
546  }
547 
551  public IntVar makeIntVar(long[] values) {
552  long cPtr = mainJNI.Solver_makeIntVar__SWIG_4(swigCPtr, this, values);
553  return (cPtr == 0) ? null : new IntVar(cPtr, false);
554  }
555 
559  public IntVar makeIntVar(int[] values) {
560  long cPtr = mainJNI.Solver_makeIntVar__SWIG_5(swigCPtr, this, values);
561  return (cPtr == 0) ? null : new IntVar(cPtr, false);
562  }
563 
567  public IntVar makeBoolVar(String name) {
568  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_0(swigCPtr, this, name);
569  return (cPtr == 0) ? null : new IntVar(cPtr, false);
570  }
571 
575  public IntVar makeBoolVar() {
576  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_1(swigCPtr, this);
577  return (cPtr == 0) ? null : new IntVar(cPtr, false);
578  }
579 
583  public IntVar makeIntConst(long val, String name) {
584  long cPtr = mainJNI.Solver_makeIntConst__SWIG_0(swigCPtr, this, val, name);
585  return (cPtr == 0) ? null : new IntVar(cPtr, false);
586  }
587 
591  public IntVar makeIntConst(long val) {
592  long cPtr = mainJNI.Solver_makeIntConst__SWIG_1(swigCPtr, this, val);
593  return (cPtr == 0) ? null : new IntVar(cPtr, false);
594  }
595 
599  public IntExpr makeSum(IntExpr left, IntExpr right) {
600  long cPtr = mainJNI.Solver_makeSum__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
601  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
602  }
603 
607  public IntExpr makeSum(IntExpr expr, long value) {
608  long cPtr = mainJNI.Solver_makeSum__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
609  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
610  }
611 
615  public IntExpr makeSum(IntVar[] vars) {
616  long cPtr = mainJNI.Solver_makeSum__SWIG_2(swigCPtr, this, vars);
617  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
618  }
619 
623  public IntExpr makeScalProd(IntVar[] vars, long[] coefs) {
624  long cPtr = mainJNI.Solver_makeScalProd__SWIG_0(swigCPtr, this, vars, coefs);
625  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
626  }
627 
631  public IntExpr makeScalProd(IntVar[] vars, int[] coefs) {
632  long cPtr = mainJNI.Solver_makeScalProd__SWIG_1(swigCPtr, this, vars, coefs);
633  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
634  }
635 
639  public IntExpr makeDifference(IntExpr left, IntExpr right) {
640  long cPtr = mainJNI.Solver_makeDifference__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
641  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
642  }
643 
647  public IntExpr makeDifference(long value, IntExpr expr) {
648  long cPtr = mainJNI.Solver_makeDifference__SWIG_1(swigCPtr, this, value, IntExpr.getCPtr(expr), expr);
649  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
650  }
651 
655  public IntExpr makeOpposite(IntExpr expr) {
656  long cPtr = mainJNI.Solver_makeOpposite(swigCPtr, this, IntExpr.getCPtr(expr), expr);
657  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
658  }
659 
663  public IntExpr makeProd(IntExpr left, IntExpr right) {
664  long cPtr = mainJNI.Solver_makeProd__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
665  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
666  }
667 
671  public IntExpr makeProd(IntExpr expr, long value) {
672  long cPtr = mainJNI.Solver_makeProd__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
673  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
674  }
675 
679  public IntExpr makeDiv(IntExpr expr, long value) {
680  long cPtr = mainJNI.Solver_makeDiv__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
681  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
682  }
683 
687  public IntExpr makeDiv(IntExpr numerator, IntExpr denominator) {
688  long cPtr = mainJNI.Solver_makeDiv__SWIG_1(swigCPtr, this, IntExpr.getCPtr(numerator), numerator, IntExpr.getCPtr(denominator), denominator);
689  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
690  }
691 
695  public IntExpr makeAbs(IntExpr expr) {
696  long cPtr = mainJNI.Solver_makeAbs(swigCPtr, this, IntExpr.getCPtr(expr), expr);
697  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
698  }
699 
703  public IntExpr makeSquare(IntExpr expr) {
704  long cPtr = mainJNI.Solver_makeSquare(swigCPtr, this, IntExpr.getCPtr(expr), expr);
705  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
706  }
707 
711  public IntExpr makePower(IntExpr expr, long n) {
712  long cPtr = mainJNI.Solver_makePower(swigCPtr, this, IntExpr.getCPtr(expr), expr, n);
713  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
714  }
715 
719  public IntExpr makeElement(long[] values, IntVar index) {
720  long cPtr = mainJNI.Solver_makeElement__SWIG_0(swigCPtr, this, values, IntVar.getCPtr(index), index);
721  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
722  }
723 
727  public IntExpr makeElement(int[] values, IntVar index) {
728  long cPtr = mainJNI.Solver_makeElement__SWIG_1(swigCPtr, this, values, IntVar.getCPtr(index), index);
729  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
730  }
731 
735  public IntExpr makeElement(LongUnaryOperator values, IntVar index) {
736  long cPtr = mainJNI.Solver_makeElement__SWIG_2(swigCPtr, this, values, IntVar.getCPtr(index), index);
737  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
738  }
739 
743  public IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index) {
744  long cPtr = mainJNI.Solver_makeMonotonicElement(swigCPtr, this, values, increasing, IntVar.getCPtr(index), index);
745  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
746  }
747 
751  public IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2) {
752  long cPtr = mainJNI.Solver_makeElement__SWIG_3(swigCPtr, this, values, IntVar.getCPtr(index1), index1, IntVar.getCPtr(index2), index2);
753  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
754  }
755 
759  public IntExpr makeElement(IntVar[] vars, IntVar index) {
760  long cPtr = mainJNI.Solver_makeElement__SWIG_4(swigCPtr, this, vars, IntVar.getCPtr(index), index);
761  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
762  }
763 
767  public IntExpr makeIndexExpression(IntVar[] vars, long value) {
768  long cPtr = mainJNI.Solver_makeIndexExpression(swigCPtr, this, vars, value);
769  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
770  }
771 
775  public Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var) {
776  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);
777  return (cPtr == 0) ? null : new Constraint(cPtr, false);
778  }
779 
783  public IntExpr makeMin(IntVar[] vars) {
784  long cPtr = mainJNI.Solver_makeMin__SWIG_0(swigCPtr, this, vars);
785  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
786  }
787 
791  public IntExpr makeMin(IntExpr left, IntExpr right) {
792  long cPtr = mainJNI.Solver_makeMin__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
793  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
794  }
795 
799  public IntExpr makeMin(IntExpr expr, long value) {
800  long cPtr = mainJNI.Solver_makeMin__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
801  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
802  }
803 
807  public IntExpr makeMin(IntExpr expr, int value) {
808  long cPtr = mainJNI.Solver_makeMin__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
809  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
810  }
811 
815  public IntExpr makeMax(IntVar[] vars) {
816  long cPtr = mainJNI.Solver_makeMax__SWIG_0(swigCPtr, this, vars);
817  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
818  }
819 
823  public IntExpr makeMax(IntExpr left, IntExpr right) {
824  long cPtr = mainJNI.Solver_makeMax__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
825  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
826  }
827 
831  public IntExpr makeMax(IntExpr expr, long value) {
832  long cPtr = mainJNI.Solver_makeMax__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
833  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
834  }
835 
839  public IntExpr makeMax(IntExpr expr, int value) {
840  long cPtr = mainJNI.Solver_makeMax__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
841  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
842  }
843 
847  public IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost) {
848  long cPtr = mainJNI.Solver_makeConvexPiecewiseExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, early_cost, early_date, late_date, late_cost);
849  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
850  }
851 
855  public IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step) {
856  long cPtr = mainJNI.Solver_makeSemiContinuousExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, fixed_charge, step);
857  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
858  }
859 
863  public IntExpr makeModulo(IntExpr x, long mod) {
864  long cPtr = mainJNI.Solver_makeModulo__SWIG_0(swigCPtr, this, IntExpr.getCPtr(x), x, mod);
865  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
866  }
867 
872  long cPtr = mainJNI.Solver_makeModulo__SWIG_1(swigCPtr, this, IntExpr.getCPtr(x), x, IntExpr.getCPtr(mod), mod);
873  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
874  }
875 
879  public IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value) {
880  long cPtr = mainJNI.Solver_makeConditionalExpression(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(expr), expr, unperformed_value);
881  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
882  }
883 
888  long cPtr = mainJNI.Solver_makeTrueConstraint(swigCPtr, this);
889  return (cPtr == 0) ? null : new Constraint(cPtr, false);
890  }
891 
896  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_0(swigCPtr, this);
897  return (cPtr == 0) ? null : new Constraint(cPtr, false);
898  }
899 
900  public Constraint makeFalseConstraint(String explanation) {
901  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_1(swigCPtr, this, explanation);
902  return (cPtr == 0) ? null : new Constraint(cPtr, false);
903  }
904 
908  public Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar) {
909  long cPtr = mainJNI.Solver_makeIsEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
910  return (cPtr == 0) ? null : new Constraint(cPtr, false);
911  }
912 
916  public IntVar makeIsEqualCstVar(IntExpr var, long value) {
917  long cPtr = mainJNI.Solver_makeIsEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
918  return (cPtr == 0) ? null : new IntVar(cPtr, false);
919  }
920 
925  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
926  return (cPtr == 0) ? null : new Constraint(cPtr, false);
927  }
928 
933  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
934  return (cPtr == 0) ? null : new IntVar(cPtr, false);
935  }
936 
940  public Constraint makeEquality(IntExpr left, IntExpr right) {
941  long cPtr = mainJNI.Solver_makeEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
942  return (cPtr == 0) ? null : new Constraint(cPtr, false);
943  }
944 
948  public Constraint makeEquality(IntExpr expr, long value) {
949  long cPtr = mainJNI.Solver_makeEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
950  return (cPtr == 0) ? null : new Constraint(cPtr, false);
951  }
952 
956  public Constraint makeEquality(IntExpr expr, int value) {
957  long cPtr = mainJNI.Solver_makeEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
958  return (cPtr == 0) ? null : new Constraint(cPtr, false);
959  }
960 
964  public Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar) {
965  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
966  return (cPtr == 0) ? null : new Constraint(cPtr, false);
967  }
968 
972  public IntVar makeIsDifferentCstVar(IntExpr var, long value) {
973  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value);
974  return (cPtr == 0) ? null : new IntVar(cPtr, false);
975  }
976 
981  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
982  return (cPtr == 0) ? null : new IntVar(cPtr, false);
983  }
984 
989  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
990  return (cPtr == 0) ? null : new Constraint(cPtr, false);
991  }
992 
997  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
998  return (cPtr == 0) ? null : new Constraint(cPtr, false);
999  }
1000 
1004  public Constraint makeNonEquality(IntExpr expr, long value) {
1005  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1006  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1007  }
1008 
1012  public Constraint makeNonEquality(IntExpr expr, int value) {
1013  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1014  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1015  }
1016 
1020  public Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1021  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1022  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1023  }
1024 
1028  public IntVar makeIsLessOrEqualCstVar(IntExpr var, long value) {
1029  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1030  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1031  }
1032 
1037  long cPtr = mainJNI.Solver_makeIsLessOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1038  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1039  }
1040 
1045  long cPtr = mainJNI.Solver_makeIsLessOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1046  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1047  }
1048 
1053  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1054  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1055  }
1056 
1060  public Constraint makeLessOrEqual(IntExpr expr, long value) {
1061  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1062  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1063  }
1064 
1068  public Constraint makeLessOrEqual(IntExpr expr, int value) {
1069  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1070  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1071  }
1072 
1076  public Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1077  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1078  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1079  }
1080 
1084  public IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value) {
1085  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1086  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1087  }
1088 
1093  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1094  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1095  }
1096 
1101  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1102  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1103  }
1104 
1109  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1110  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1111  }
1112 
1116  public Constraint makeGreaterOrEqual(IntExpr expr, long value) {
1117  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1118  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1119  }
1120 
1124  public Constraint makeGreaterOrEqual(IntExpr expr, int value) {
1125  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1126  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1127  }
1128 
1133  long cPtr = mainJNI.Solver_makeIsGreaterCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1134  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1135  }
1136 
1140  public IntVar makeIsGreaterCstVar(IntExpr var, long value) {
1141  long cPtr = mainJNI.Solver_makeIsGreaterCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1142  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1143  }
1144 
1148  public IntVar makeIsGreaterVar(IntExpr left, IntExpr right) {
1149  long cPtr = mainJNI.Solver_makeIsGreaterVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1150  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1151  }
1152 
1157  long cPtr = mainJNI.Solver_makeIsGreaterCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1158  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1159  }
1160 
1164  public Constraint makeGreater(IntExpr left, IntExpr right) {
1165  long cPtr = mainJNI.Solver_makeGreater__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1166  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1167  }
1168 
1172  public Constraint makeGreater(IntExpr expr, long value) {
1173  long cPtr = mainJNI.Solver_makeGreater__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1174  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1175  }
1176 
1180  public Constraint makeGreater(IntExpr expr, int value) {
1181  long cPtr = mainJNI.Solver_makeGreater__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1182  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1183  }
1184 
1188  public Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b) {
1189  long cPtr = mainJNI.Solver_makeIsLessCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1190  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1191  }
1192 
1196  public IntVar makeIsLessCstVar(IntExpr var, long value) {
1197  long cPtr = mainJNI.Solver_makeIsLessCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1198  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1199  }
1200 
1204  public IntVar makeIsLessVar(IntExpr left, IntExpr right) {
1205  long cPtr = mainJNI.Solver_makeIsLessVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1206  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1207  }
1208 
1212  public Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b) {
1213  long cPtr = mainJNI.Solver_makeIsLessCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1214  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1215  }
1216 
1220  public Constraint makeLess(IntExpr left, IntExpr right) {
1221  long cPtr = mainJNI.Solver_makeLess__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1222  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1223  }
1224 
1228  public Constraint makeLess(IntExpr expr, long value) {
1229  long cPtr = mainJNI.Solver_makeLess__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1230  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1231  }
1232 
1236  public Constraint makeLess(IntExpr expr, int value) {
1237  long cPtr = mainJNI.Solver_makeLess__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1238  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1239  }
1240 
1244  public Constraint makeSumLessOrEqual(IntVar[] vars, long cst) {
1245  long cPtr = mainJNI.Solver_makeSumLessOrEqual(swigCPtr, this, vars, cst);
1246  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1247  }
1248 
1249  public Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst) {
1250  long cPtr = mainJNI.Solver_makeSumGreaterOrEqual(swigCPtr, this, vars, cst);
1251  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1252  }
1253 
1254  public Constraint makeSumEquality(IntVar[] vars, long cst) {
1255  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_0(swigCPtr, this, vars, cst);
1256  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1257  }
1258 
1259  public Constraint makeSumEquality(IntVar[] vars, IntVar var) {
1260  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_1(swigCPtr, this, vars, IntVar.getCPtr(var), var);
1261  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1262  }
1263 
1264  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst) {
1265  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1266  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1267  }
1268 
1269  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst) {
1270  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1271  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1272  }
1273 
1274  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target) {
1275  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_2(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1276  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1277  }
1278 
1279  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target) {
1280  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_3(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1281  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1282  }
1283 
1284  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst) {
1285  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_0(swigCPtr, this, vars, coeffs, cst);
1286  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1287  }
1288 
1289  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst) {
1290  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_1(swigCPtr, this, vars, coeffs, cst);
1291  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1292  }
1293 
1294  public Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst) {
1295  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1296  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1297  }
1298 
1299  public Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst) {
1300  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1301  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1302  }
1303 
1304  public Constraint makeMinEquality(IntVar[] vars, IntVar min_var) {
1305  long cPtr = mainJNI.Solver_makeMinEquality(swigCPtr, this, vars, IntVar.getCPtr(min_var), min_var);
1306  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1307  }
1308 
1309  public Constraint makeMaxEquality(IntVar[] vars, IntVar max_var) {
1310  long cPtr = mainJNI.Solver_makeMaxEquality(swigCPtr, this, vars, IntVar.getCPtr(max_var), max_var);
1311  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1312  }
1313 
1314  public Constraint makeElementEquality(long[] vals, IntVar index, IntVar target) {
1315  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_0(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1316  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1317  }
1318 
1319  public Constraint makeElementEquality(int[] vals, IntVar index, IntVar target) {
1320  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_1(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1321  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1322  }
1323 
1324  public Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target) {
1325  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_2(swigCPtr, this, vars, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1326  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1327  }
1328 
1329  public Constraint makeElementEquality(IntVar[] vars, IntVar index, long target) {
1330  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_3(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1331  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1332  }
1333 
1337  public Constraint makeAbsEquality(IntVar var, IntVar abs_var) {
1338  long cPtr = mainJNI.Solver_makeAbsEquality(swigCPtr, this, IntVar.getCPtr(var), var, IntVar.getCPtr(abs_var), abs_var);
1339  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1340  }
1341 
1345  public Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target) {
1346  long cPtr = mainJNI.Solver_makeIndexOfConstraint(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1347  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1348  }
1349 
1354  long cPtr = mainJNI.Solver_makeConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1355  return (cPtr == 0) ? null : new Demon(cPtr, false);
1356  }
1357 
1362  long cPtr = mainJNI.Solver_makeDelayedConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1363  return (cPtr == 0) ? null : new Demon(cPtr, false);
1364  }
1365 
1369  public Demon makeClosureDemon(Runnable closure) {
1370  long cPtr = mainJNI.Solver_makeClosureDemon(swigCPtr, this, closure);
1371  return (cPtr == 0) ? null : new Demon(cPtr, false);
1372  }
1373 
1377  public Constraint makeBetweenCt(IntExpr expr, long l, long u) {
1378  long cPtr = mainJNI.Solver_makeBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1379  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1380  }
1381 
1385  public Constraint makeNotBetweenCt(IntExpr expr, long l, long u) {
1386  long cPtr = mainJNI.Solver_makeNotBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1387  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1388  }
1389 
1393  public Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b) {
1394  long cPtr = mainJNI.Solver_makeIsBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u, IntVar.getCPtr(b), b);
1395  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1396  }
1397 
1398  public IntVar makeIsBetweenVar(IntExpr v, long l, long u) {
1399  long cPtr = mainJNI.Solver_makeIsBetweenVar(swigCPtr, this, IntExpr.getCPtr(v), v, l, u);
1400  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1401  }
1402 
1406  public Constraint makeMemberCt(IntExpr expr, long[] values) {
1407  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1408  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1409  }
1410 
1411  public Constraint makeMemberCt(IntExpr expr, int[] values) {
1412  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1413  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1414  }
1415 
1419  public Constraint makeNotMemberCt(IntExpr expr, long[] values) {
1420  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1421  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1422  }
1423 
1424  public Constraint makeNotMemberCt(IntExpr expr, int[] values) {
1425  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1426  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1427  }
1428 
1432  public Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends) {
1433  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1434  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1435  }
1436 
1440  public Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends) {
1441  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1442  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1443  }
1444 
1448  public Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar) {
1449  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1450  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1451  }
1452 
1453  public Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar) {
1454  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1455  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1456  }
1457 
1458  public IntVar makeIsMemberVar(IntExpr expr, long[] values) {
1459  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1460  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1461  }
1462 
1463  public IntVar makeIsMemberVar(IntExpr expr, int[] values) {
1464  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1465  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1466  }
1467 
1471  public Constraint makeCount(IntVar[] vars, long value, long max_count) {
1472  long cPtr = mainJNI.Solver_makeCount__SWIG_0(swigCPtr, this, vars, value, max_count);
1473  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1474  }
1475 
1479  public Constraint makeCount(IntVar[] vars, long value, IntVar max_count) {
1480  long cPtr = mainJNI.Solver_makeCount__SWIG_1(swigCPtr, this, vars, value, IntVar.getCPtr(max_count), max_count);
1481  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1482  }
1483 
1487  public Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards) {
1488  long cPtr = mainJNI.Solver_makeDistribute__SWIG_0(swigCPtr, this, vars, values, cards);
1489  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1490  }
1491 
1495  public Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards) {
1496  long cPtr = mainJNI.Solver_makeDistribute__SWIG_1(swigCPtr, this, vars, values, cards);
1497  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1498  }
1499 
1503  public Constraint makeDistribute(IntVar[] vars, IntVar[] cards) {
1504  long cPtr = mainJNI.Solver_makeDistribute__SWIG_2(swigCPtr, this, vars, cards);
1505  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1506  }
1507 
1511  public Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size) {
1512  long cPtr = mainJNI.Solver_makeDistribute__SWIG_3(swigCPtr, this, vars, card_min, card_max, card_size);
1513  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1514  }
1515 
1519  public Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max) {
1520  long cPtr = mainJNI.Solver_makeDistribute__SWIG_4(swigCPtr, this, vars, card_min, card_max);
1521  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1522  }
1523 
1527  public Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max) {
1528  long cPtr = mainJNI.Solver_makeDistribute__SWIG_5(swigCPtr, this, vars, card_min, card_max);
1529  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1530  }
1531 
1535  public Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max) {
1536  long cPtr = mainJNI.Solver_makeDistribute__SWIG_6(swigCPtr, this, vars, values, card_min, card_max);
1537  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1538  }
1539 
1543  public Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max) {
1544  long cPtr = mainJNI.Solver_makeDistribute__SWIG_7(swigCPtr, this, vars, values, card_min, card_max);
1545  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1546  }
1547 
1551  public Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum) {
1552  long cPtr = mainJNI.Solver_makeDeviation(swigCPtr, this, vars, IntVar.getCPtr(deviation_var), deviation_var, total_sum);
1553  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1554  }
1555 
1560  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_0(swigCPtr, this, vars);
1561  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1562  }
1563 
1567  public Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation) {
1568  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_1(swigCPtr, this, vars, stronger_propagation);
1569  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1570  }
1571 
1575  public Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value) {
1576  long cPtr = mainJNI.Solver_makeAllDifferentExcept(swigCPtr, this, vars, escape_value);
1577  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1578  }
1579 
1583  public Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted) {
1584  long cPtr = mainJNI.Solver_makeSortingConstraint(swigCPtr, this, vars, sorted);
1585  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1586  }
1587 
1591  public Constraint makeLexicalLess(IntVar[] left, IntVar[] right) {
1592  long cPtr = mainJNI.Solver_makeLexicalLess(swigCPtr, this, left, right);
1593  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1594  }
1595 
1600  long cPtr = mainJNI.Solver_makeLexicalLessOrEqual(swigCPtr, this, left, right);
1601  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1602  }
1603 
1608  long cPtr = mainJNI.Solver_makeInversePermutationConstraint(swigCPtr, this, left, right);
1609  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1610  }
1611 
1616  long cPtr = mainJNI.Solver_makeIndexOfFirstMaxValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1617  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1618  }
1619 
1624  long cPtr = mainJNI.Solver_makeIndexOfFirstMinValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1625  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1626  }
1627 
1631  public Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars) {
1632  long cPtr = mainJNI.Solver_makeNullIntersect(swigCPtr, this, first_vars, second_vars);
1633  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1634  }
1635 
1639  public Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value) {
1640  long cPtr = mainJNI.Solver_makeNullIntersectExcept(swigCPtr, this, first_vars, second_vars, escape_value);
1641  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1642  }
1643 
1647  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler) {
1648  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_0(swigCPtr, this, nexts, active, sink_handler);
1649  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1650  }
1651 
1655  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active) {
1656  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_1(swigCPtr, this, nexts, active);
1657  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1658  }
1659 
1660  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths) {
1661  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_2(swigCPtr, this, nexts, active, sink_handler, assume_paths);
1662  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1663  }
1664 
1668  public Constraint makeCircuit(IntVar[] nexts) {
1669  long cPtr = mainJNI.Solver_makeCircuit(swigCPtr, this, nexts);
1670  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1671  }
1672 
1677  long cPtr = mainJNI.Solver_makeSubCircuit(swigCPtr, this, nexts);
1678  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1679  }
1680 
1684  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1685  long cPtr = mainJNI.Solver_makePathCumul__SWIG_0(swigCPtr, this, nexts, active, cumuls, transits);
1686  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1687  }
1688 
1692  public Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1693  long cPtr = mainJNI.Solver_makeDelayedPathCumul(swigCPtr, this, nexts, active, cumuls, transits);
1694  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1695  }
1696 
1700  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator) {
1701  long cPtr = mainJNI.Solver_makePathCumul__SWIG_1(swigCPtr, this, nexts, active, cumuls, transit_evaluator);
1702  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1703  }
1704 
1708  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator) {
1709  long cPtr = mainJNI.Solver_makePathCumul__SWIG_2(swigCPtr, this, nexts, active, cumuls, slacks, transit_evaluator);
1710  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1711  }
1712 
1716  public Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status) {
1717  long cPtr = mainJNI.Solver_makePathConnected(swigCPtr, this, nexts, sources, sinks, status);
1718  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1719  }
1720 
1724  public Constraint makeMapDomain(IntVar var, IntVar[] actives) {
1725  long cPtr = mainJNI.Solver_makeMapDomain(swigCPtr, this, IntVar.getCPtr(var), var, actives);
1726  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1727  }
1728 
1733  long cPtr = mainJNI.Solver_makeAllowedAssignment(swigCPtr, this, vars, IntTupleSet.getCPtr(tuples), tuples);
1734  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1735  }
1736 
1740  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states) {
1741  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_0(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1742  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1743  }
1744 
1748  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states) {
1749  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_1(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1750  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1751  }
1752 
1756  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1757  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1758  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1759  }
1760 
1761  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1762  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1763  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1764  }
1765 
1766  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1767  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1768  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1769  }
1770 
1774  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1775  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1776  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1777  }
1778 
1779  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1780  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1781  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1782  }
1783 
1784  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1785  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1786  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1787  }
1788 
1792  public Pack makePack(IntVar[] vars, int number_of_bins) {
1793  long cPtr = mainJNI.Solver_makePack(swigCPtr, this, vars, number_of_bins);
1794  return (cPtr == 0) ? null : new Pack(cPtr, false);
1795  }
1796 
1800  public IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name) {
1801  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_0(swigCPtr, this, start_min, start_max, duration, optional, name);
1802  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1803  }
1804 
1808  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name) {
1809  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_1(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, name);
1810  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1811  }
1812 
1816  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name) {
1817  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_2(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, IntVar.getCPtr(performed_variable), performed_variable, name);
1818  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1819  }
1820 
1824  public IntervalVar makeFixedInterval(long start, long duration, String name) {
1825  long cPtr = mainJNI.Solver_makeFixedInterval(swigCPtr, this, start, duration, name);
1826  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1827  }
1828 
1832  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) {
1833  long cPtr = mainJNI.Solver_makeIntervalVar(swigCPtr, this, start_min, start_max, duration_min, duration_max, end_min, end_max, optional, name);
1834  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1835  }
1836 
1841  long cPtr = mainJNI.Solver_makeMirrorInterval(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1842  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1843  }
1844 
1848  public IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
1849  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1850  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1851  }
1852 
1856  public IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
1857  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1858  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1859  }
1860 
1864  public IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
1865  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1866  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1867  }
1868 
1872  public IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
1873  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1874  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1875  }
1876 
1881  long cPtr = mainJNI.Solver_makeIntervalRelaxedMin(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1882  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1883  }
1884 
1889  long cPtr = mainJNI.Solver_makeIntervalRelaxedMax(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1890  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1891  }
1892 
1897  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t), t, r, d);
1898  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1899  }
1900 
1905  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2);
1906  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1907  }
1908 
1913  long cPtr = mainJNI.Solver_makeIntervalVarRelationWithDelay(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2, delay);
1914  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1915  }
1916 
1921  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2, IntVar.getCPtr(alt), alt);
1922  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1923  }
1924 
1929  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2);
1930  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1931  }
1932 
1937  long cPtr = mainJNI.Solver_makeDisjunctiveConstraint(swigCPtr, this, intervals, name);
1938  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
1939  }
1940 
1945  long cPtr = mainJNI.Solver_makeStrictDisjunctiveConstraint(swigCPtr, this, intervals, name);
1946  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
1947  }
1948 
1952  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name) {
1953  long cPtr = mainJNI.Solver_makeCumulative__SWIG_0(swigCPtr, this, intervals, demands, capacity, name);
1954  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1955  }
1956 
1960  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name) {
1961  long cPtr = mainJNI.Solver_makeCumulative__SWIG_1(swigCPtr, this, intervals, demands, capacity, name);
1962  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1963  }
1964 
1968  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name) {
1969  long cPtr = mainJNI.Solver_makeCumulative__SWIG_2(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
1970  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1971  }
1972 
1976  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name) {
1977  long cPtr = mainJNI.Solver_makeCumulative__SWIG_3(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
1978  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1979  }
1980 
1984  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name) {
1985  long cPtr = mainJNI.Solver_makeCumulative__SWIG_4(swigCPtr, this, intervals, demands, capacity, name);
1986  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1987  }
1988 
1992  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name) {
1993  long cPtr = mainJNI.Solver_makeCumulative__SWIG_5(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
1994  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1995  }
1996 
2000  public Constraint makeCover(IntervalVar[] vars, IntervalVar target_var) {
2001  long cPtr = mainJNI.Solver_makeCover(swigCPtr, this, vars, IntervalVar.getCPtr(target_var), target_var);
2002  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2003  }
2004 
2009  long cPtr = mainJNI.Solver_makeEquality__SWIG_3(swigCPtr, this, IntervalVar.getCPtr(var1), var1, IntervalVar.getCPtr(var2), var2);
2010  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2011  }
2012 
2017  long cPtr = mainJNI.Solver_makeAssignment__SWIG_0(swigCPtr, this);
2018  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2019  }
2020 
2025  long cPtr = mainJNI.Solver_makeAssignment__SWIG_1(swigCPtr, this, Assignment.getCPtr(a), a);
2026  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2027  }
2028 
2033  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2034  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2035  }
2036 
2041  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_1(swigCPtr, this);
2042  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2043  }
2044 
2049  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2050  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2051  }
2052 
2057  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_1(swigCPtr, this);
2058  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2059  }
2060 
2064  public SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize) {
2065  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, maximize);
2066  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2067  }
2068 
2073  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_1(swigCPtr, this, maximize);
2074  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2075  }
2076 
2080  public SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize) {
2081  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, solution_count, maximize);
2082  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2083  }
2084 
2085  public SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize) {
2086  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_1(swigCPtr, this, solution_count, maximize);
2087  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2088  }
2089 
2094  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2095  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2096  }
2097 
2102  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_1(swigCPtr, this);
2103  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2104  }
2105 
2109  public OptimizeVar makeMinimize(IntVar v, long step) {
2110  long cPtr = mainJNI.Solver_makeMinimize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2111  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2112  }
2113 
2117  public OptimizeVar makeMaximize(IntVar v, long step) {
2118  long cPtr = mainJNI.Solver_makeMaximize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2119  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2120  }
2121 
2125  public OptimizeVar makeOptimize(boolean maximize, IntVar v, long step) {
2126  long cPtr = mainJNI.Solver_makeOptimize(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step);
2127  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2128  }
2129 
2133  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step) {
2134  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2135  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2136  }
2137 
2141  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step) {
2142  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2143  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2144  }
2145 
2149  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step) {
2150  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2151  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2152  }
2153 
2157  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step) {
2158  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2159  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2160  }
2161 
2165  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step) {
2166  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_0(swigCPtr, this, maximize, sub_objectives, weights, step);
2167  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2168  }
2169 
2173  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step) {
2174  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_1(swigCPtr, this, maximize, sub_objectives, weights, step);
2175  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2176  }
2177 
2181  public SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor) {
2182  long cPtr = mainJNI.Solver_makeTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, vars, keep_tenure, forbid_tenure, tabu_factor);
2183  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2184  }
2185 
2189  public SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure) {
2190  long cPtr = mainJNI.Solver_makeGenericTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, tabu_vars, forbid_tenure);
2191  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2192  }
2193 
2197  public SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature) {
2198  long cPtr = mainJNI.Solver_makeSimulatedAnnealing(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, initial_temperature);
2199  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2200  }
2201 
2205  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor) {
2206  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_0(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, penalty_factor);
2207  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2208  }
2209 
2210  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor) {
2211  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_1(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, secondary_vars, penalty_factor);
2212  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2213  }
2214 
2218  public SearchMonitor makeLubyRestart(int scale_factor) {
2219  long cPtr = mainJNI.Solver_makeLubyRestart(swigCPtr, this, scale_factor);
2220  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2221  }
2222 
2226  public SearchMonitor makeConstantRestart(int frequency) {
2227  long cPtr = mainJNI.Solver_makeConstantRestart(swigCPtr, this, frequency);
2228  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2229  }
2230 
2234  public RegularLimit makeTimeLimit(long time_in_ms) {
2235  long cPtr = mainJNI.Solver_makeTimeLimit(swigCPtr, this, time_in_ms);
2236  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2237  }
2238 
2243  long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2244  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2245  }
2246 
2251  long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2252  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2253  }
2254 
2259  long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2260  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2261  }
2262 
2266  public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2267  long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, time, branches, failures, solutions);
2268  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2269  }
2270 
2274  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2275  long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2276  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2277  }
2278 
2282  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2283  long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2284  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2285  }
2286 
2291  long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2292  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2293  }
2294 
2299  byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2300  if (buf == null || buf.length == 0) {
2301  return null;
2302  }
2303  try {
2305  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2306  throw new RuntimeException(
2307  "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2308  }
2309 }
2310 
2314  public SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2) {
2315  long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2316  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2317  }
2318 
2322  public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2323  long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2324  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2325  }
2326 
2330  public SearchMonitor makeSearchLog(int branch_period) {
2331  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2332  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2333  }
2334 
2338  public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2339  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2340  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2341  }
2342 
2346  public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2347  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2348  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2349  }
2350 
2354  public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2355  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2356  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2357  }
2358 
2362  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2363  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2364  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2365  }
2366 
2370  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2371  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2372  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2373  }
2374 
2378  public SearchMonitor makeSearchTrace(String prefix) {
2379  long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2380  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2381  }
2382 
2386  public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2387  long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2388  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2389  }
2390 
2391  public SearchMonitor makeExitSearchCallback(Runnable callback) {
2392  long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2393  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2394  }
2395 
2396  public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2397  long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2398  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2399  }
2400 
2405  long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2406  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2407  }
2408 
2413  long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2414  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2415  }
2416 
2421  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2422  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2423  }
2424 
2426  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2427  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2428  }
2429 
2431  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2432  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2433  }
2434 
2436  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2437  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2438  }
2439 
2441  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);
2442  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2443  }
2444 
2448  public Decision makeAssignVariableValue(IntVar var, long val) {
2449  long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2450  return (cPtr == 0) ? null : new Decision(cPtr, false);
2451  }
2452 
2454  long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2455  return (cPtr == 0) ? null : new Decision(cPtr, false);
2456  }
2457 
2459  long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2460  return (cPtr == 0) ? null : new Decision(cPtr, false);
2461  }
2462 
2463  public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2464  long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2465  return (cPtr == 0) ? null : new Decision(cPtr, false);
2466  }
2467 
2469  long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2470  return (cPtr == 0) ? null : new Decision(cPtr, false);
2471  }
2472 
2474  long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2475  return (cPtr == 0) ? null : new Decision(cPtr, false);
2476  }
2477 
2478  public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2479  long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2480  return (cPtr == 0) ? null : new Decision(cPtr, false);
2481  }
2482 
2484  long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
2485  return (cPtr == 0) ? null : new Decision(cPtr, false);
2486  }
2487 
2488  public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
2489  long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
2490  return (cPtr == 0) ? null : new Decision(cPtr, false);
2491  }
2492 
2497  long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2498  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2499  }
2500 
2502  long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2503  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2504  }
2505 
2507  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);
2508  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2509  }
2510 
2512  long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
2513  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2514  }
2515 
2520  long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2521  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2522  }
2523 
2525  long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2526  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2527  }
2528 
2530  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);
2531  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2532  }
2533 
2535  long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
2536  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2537  }
2538 
2542  public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
2543  long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
2544  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2545  }
2546 
2547  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
2548  long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
2549  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2550  }
2551 
2552  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
2553  long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
2554  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2555  }
2556 
2560  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
2561  long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
2562  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2563  }
2564 
2565  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
2566  long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
2567  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2568  }
2569 
2570  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2571  long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
2572  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2573  }
2574 
2575  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2576  long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
2577  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2578  }
2579 
2581  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
2582  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2583  }
2584 
2586  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
2587  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2588  }
2589 
2593  public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
2594  long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
2595  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2596  }
2597 
2598  public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
2599  long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
2600  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2601  }
2602 
2603  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
2604  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);
2605  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2606  }
2607 
2608  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
2609  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);
2610  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2611  }
2612 
2616  public Decision makeScheduleOrPostpone(IntervalVar var, long est, long[] marker) {
2617  long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2618  return (cPtr == 0) ? null : new Decision(cPtr, false);
2619  }
2620 
2624  public Decision makeScheduleOrExpedite(IntervalVar var, long est, long[] marker) {
2625  long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2626  return (cPtr == 0) ? null : new Decision(cPtr, false);
2627  }
2628 
2632  public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
2633  long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2634  return (cPtr == 0) ? null : new Decision(cPtr, false);
2635  }
2636 
2640  public Decision makeRankLastInterval(SequenceVar sequence, int index) {
2641  long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2642  return (cPtr == 0) ? null : new Decision(cPtr, false);
2643  }
2644 
2648  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
2649  long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
2650  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2651  }
2652 
2656  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
2657  long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
2658  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2659  }
2660 
2664  public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
2665  long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
2666  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2667  }
2668 
2669  public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
2670  long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
2671  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2672  }
2673 
2678  long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
2679  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2680  }
2681 
2686  long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
2687  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2688  }
2689 
2694  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
2695  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2696  }
2697 
2699  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
2700  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2701  }
2702 
2704  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
2705  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2706  }
2707 
2709  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);
2710  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2711  }
2712 
2714  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);
2715  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2716  }
2717 
2719  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
2720  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2721  }
2722 
2726  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
2727  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
2728  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2729  }
2730 
2731  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
2732  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
2733  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2734  }
2735 
2736  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
2737  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);
2738  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2739  }
2740 
2741  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
2742  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);
2743  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2744  }
2745 
2746  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
2747  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);
2748  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2749  }
2750 
2751  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
2752  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
2753  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2754  }
2755 
2760  long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2761  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2762  }
2763 
2768  long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2769  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2770  }
2771 
2775  public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
2776  long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
2777  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2778  }
2779 
2780  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
2781  long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
2782  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2783  }
2784 
2785  public LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op) {
2786  long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
2787  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2788  }
2789 
2790  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
2791  long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
2792  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2793  }
2794 
2798  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
2799  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
2800  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2801  }
2802 
2803  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
2804  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
2805  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2806  }
2807 
2812  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
2813  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2814  }
2815 
2819  public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
2820  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
2821  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2822  }
2823 
2828  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
2829  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2830  }
2831 
2833  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
2834  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2835  }
2836 
2838  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
2839  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2840  }
2841 
2846  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
2847  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2848  }
2849 
2854  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
2855  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2856  }
2857 
2862  long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
2863  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2864  }
2865 
2870  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2871  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2872  }
2873 
2875  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2876  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2877  }
2878 
2882  public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
2883  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);
2884  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2885  }
2886 
2888  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
2889  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2890  }
2891 
2896  long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
2897  return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
2898  }
2899 
2904  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_0(swigCPtr, this, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder);
2905  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2906  }
2907 
2909  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_1(swigCPtr, this, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit);
2910  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2911  }
2912 
2914  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_2(swigCPtr, this, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit, filters);
2915  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2916  }
2917 
2919  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_3(swigCPtr, this, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder);
2920  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2921  }
2922 
2924  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_4(swigCPtr, this, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit);
2925  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2926  }
2927 
2929  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_5(swigCPtr, this, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit, filters);
2930  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
2931  }
2932 
2937  long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
2938  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
2939  }
2940 
2941  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, IntVar objective, int filter_enum) {
2942  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, IntVar.getCPtr(objective), objective, filter_enum);
2943  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2944  }
2945 
2946  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, LongConsumer delta_objective_callback, IntVar objective, int filter_enum) {
2947  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, values, delta_objective_callback, IntVar.getCPtr(objective), objective, filter_enum);
2948  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2949  }
2950 
2951  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, IntVar objective, int filter_enum) {
2952  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_2(swigCPtr, this, vars, secondary_vars, values, IntVar.getCPtr(objective), objective, filter_enum);
2953  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2954  }
2955 
2956  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, LongConsumer delta_objective_callback, IntVar objective, int filter_enum) {
2957  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_3(swigCPtr, this, vars, secondary_vars, values, delta_objective_callback, IntVar.getCPtr(objective), objective, filter_enum);
2958  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
2959  }
2960 
2964  public void topPeriodicCheck() {
2965  mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
2966  }
2967 
2971  public int topProgressPercent() {
2972  return mainJNI.Solver_topProgressPercent(swigCPtr, this);
2973  }
2974 
2978  public void pushState() {
2979  mainJNI.Solver_pushState(swigCPtr, this);
2980  }
2981 
2982  public void popState() {
2983  mainJNI.Solver_popState(swigCPtr, this);
2984  }
2985 
2989  public int searchDepth() {
2990  return mainJNI.Solver_searchDepth(swigCPtr, this);
2991  }
2992 
2996  public int searchLeftDepth() {
2997  return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
2998  }
2999 
3003  public int solveDepth() {
3004  return mainJNI.Solver_solveDepth(swigCPtr, this);
3005  }
3006 
3010  public long rand64(long size) {
3011  return mainJNI.Solver_rand64(swigCPtr, this, size);
3012  }
3013 
3017  public int rand32(int size) {
3018  return mainJNI.Solver_rand32(swigCPtr, this, size);
3019  }
3020 
3024  public void reSeed(int seed) {
3025  mainJNI.Solver_reSeed(swigCPtr, this, seed);
3026  }
3027 
3031  public void exportProfilingOverview(String filename) {
3032  mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3033  }
3034 
3038  public String localSearchProfile() {
3039  return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3040  }
3041 
3045  public boolean currentlyInSolve() {
3046  return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3047  }
3048 
3052  public int constraints() {
3053  return mainJNI.Solver_constraints(swigCPtr, this);
3054  }
3055 
3059  public void accept(ModelVisitor visitor) {
3060  mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3061  }
3062 
3064  long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3065  return (cPtr == 0) ? null : new Decision(cPtr, false);
3066  }
3067 
3071  public void clear_fail_intercept() {
3072  mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3073  }
3074 
3078  public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3079  mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3080  }
3081 
3085  public boolean UseFastLocalSearch() {
3086  return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3087  }
3088 
3092  public boolean hasName(PropagationBaseObject object) {
3093  return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3094  }
3095 
3099  public Demon registerDemon(Demon demon) {
3100  long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3101  return (cPtr == 0) ? null : new Demon(cPtr, false);
3102  }
3103 
3108  long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3109  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3110  }
3111 
3116  long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3117  return (cPtr == 0) ? null : new IntVar(cPtr, false);
3118  }
3119 
3124  long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3125  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3126  }
3127 
3131  public ModelCache cache() {
3132  long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3133  return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3134  }
3135 
3139  public boolean instrumentsDemons() {
3140  return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3141  }
3142 
3146  public boolean isProfilingEnabled() {
3147  return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3148  }
3149 
3154  return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3155  }
3156 
3160  public boolean instrumentsVariables() {
3161  return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3162  }
3163 
3167  public boolean nameAllVariables() {
3168  return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3169  }
3170 
3174  public String model_name() {
3175  return mainJNI.Solver_model_name(swigCPtr, this);
3176  }
3177 
3182  long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3183  return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3184  }
3185 
3190  mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
3191  }
3192 
3197  long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
3198  return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
3199  }
3200 
3205  mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
3206  }
3207 
3212  long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
3213  return (cPtr == 0) ? null : new Assignment(cPtr, false);
3214  }
3215 
3219  public void ClearLocalSearchState() {
3220  mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
3221  }
3222 
3226  public void setTmp_vector_(long[] value) {
3227  mainJNI.Solver_tmp_vector__set(swigCPtr, this, value);
3228  }
3229 
3233  public long[] getTmp_vector_() {
3234  return mainJNI.Solver_tmp_vector__get(swigCPtr, this);
3235 }
3236 
3241  long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
3242  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3243  }
3244 
3248  public void finishCurrentSearch() {
3249  mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
3250  }
3251 
3252  public void restartCurrentSearch() {
3253  mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
3254  }
3255 
3259  public void shouldFail() {
3260  mainJNI.Solver_shouldFail(swigCPtr, this);
3261  }
3262 
3263  public void checkFail() {
3264  mainJNI.Solver_checkFail(swigCPtr, this);
3265  }
3266 
3270  public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
3271  // IntVarStrategy
3279  public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
3283  public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
3287  public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
3291  public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
3295  public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
3299  public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
3303  public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
3307  public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
3311  public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
3315  public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
3319  public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
3323  public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
3327  public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
3331  public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
3332 
3333  // IntValueStrategy
3341  public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
3345  public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
3349  public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
3353  public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
3357  public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
3361  public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
3365  public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
3369  public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
3370 
3371  // EvaluatorStrategy
3379  public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
3383  public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
3384 
3385  // SequenceStrategy
3390  public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
3391  public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
3392  public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
3393  public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
3394 
3395  // IntervalStrategy
3403  public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
3407  public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
3411  public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
3415  public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
3416 
3417  // LocalSearchOperators
3425  public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
3429  public final static int OROPT = mainJNI.Solver_OROPT_get();
3433  public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
3437  public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
3441  public final static int CROSS = mainJNI.Solver_CROSS_get();
3445  public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
3449  public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
3453  public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
3457  public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
3461  public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
3465  public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
3469  public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
3473  public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
3477  public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
3481  public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
3485  public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
3486 
3487  // EvaluatorLocalSearchOperators
3495  public final static int LK = mainJNI.Solver_LK_get();
3499  public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
3503  public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
3504 
3505  // LocalSearchFilterBound
3513  public final static int GE = mainJNI.Solver_GE_get();
3517  public final static int LE = mainJNI.Solver_LE_get();
3521  public final static int EQ = mainJNI.Solver_EQ_get();
3522 
3523  // DemonPriority
3531  public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
3535  public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
3539  public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
3540 
3541  // BinaryIntervalRelation
3549  public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
3553  public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
3557  public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
3561  public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
3565  public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
3569  public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
3573  public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
3577  public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
3581  public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
3582 
3583  // UnaryIntervalRelation
3591  public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
3595  public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
3599  public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
3603  public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
3607  public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
3611  public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
3615  public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
3619  public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
3620 
3621  // DecisionModification
3629  public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
3633  public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
3637  public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
3641  public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
3645  public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
3646 
3647  // MarkerType
3652  public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
3653  public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
3654  public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
3655  public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
3656 
3657  // SolverState
3665  public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
3669  public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
3673  public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
3677  public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
3681  public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
3685  public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
3686 
3687  // OptimizationDirection
3692  public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
3693  public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
3694  public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
3695 
3696 }
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:2718
IntExpr makeModulo(IntExpr x, long mod)
General piecewise-linear function expression, built from f(x) where f is piecewise-linear.
Definition: Solver.java:863
int searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:2996
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:3361
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2391
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:940
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:735
String toString()
misc debug std::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:3295
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:3283
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:559
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3107
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:1928
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:240
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1220
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:871
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3031
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:3495
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:3433
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2440
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:2798
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1495
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Creates a search limit which can either apply cumulatively or search-by-search.
Definition: Solver.java:2282
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:1623
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:663
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-le...
Definition: Solver.java:2971
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:807
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:1692
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:2895
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:1824
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2072
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:1583
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:2819
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2378
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:3513
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:2608
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:3607
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1766
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1479
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:3437
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2435
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3017
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:1060
String model_name()
Returns the name of the model.
Definition: Solver.java:3174
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1044
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:687
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2210
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:3315
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:623
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:671
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:895
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1100
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:1511
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, IntVar objective, int filter_enum)
Definition: Solver.java:2951
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2125
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:3146
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:2664
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:3319
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:1631
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:2726
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1259
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1406
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:3603
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1487
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:3581
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:932
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:2978
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:2923
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:1960
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:1708
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:1740
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:679
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1180
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:2887
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2386
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2226
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:3549
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2008
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:3357
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2506
void set_optimization_direction(int direction)
Definition: Solver.java:512
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:759
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1361
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:2648
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3131
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:1920
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:719
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:301
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:783
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:2157
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1309
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1076
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2085
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2463
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilter[] filters)
Definition: Solver.java:2928
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2040
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1567
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:591
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:2918
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:3204
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1284
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1398
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:3299
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:2811
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:1700
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:2598
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:1535
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1289
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:1864
static final int MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:3445
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:3379
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:1551
Constraint makeInversePermutationConstraint(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that 'left' and 'right' both represent permutations of [0....
Definition: Solver.java:1607
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:855
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:1716
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:480
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:2837
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:2552
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1314
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1471
LocalSearchFilter makeVariableDomainFilter()
Local Search Filters.
Definition: Solver.java:2936
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1204
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sear...
Definition: Solver.java:2250
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2173
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:1385
static final int ENDS_AT
t ends at d, i.e.
Definition: Solver.java:3595
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:1872
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:1984
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an inte...
Definition: Solver.java:3591
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, LongConsumer delta_objective_callback, IntVar objective, int filter_enum)
Definition: Solver.java:2956
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:2314
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1212
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2024
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1279
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:3619
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2453
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3181
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:1992
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:1856
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1116
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1668
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:2874
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2101
Constraint makeCover(IntervalVar[] vars, IntervalVar target_var)
This constraint states that the target_var is the convex hull of the intervals.
Definition: Solver.java:2000
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2290
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:3461
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1012
Base class of all search limits.
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2575
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1084
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1761
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:655
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2420
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:916
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:3311
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:575
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, LongConsumer delta_objective_callback, IntVar objective, int filter_enum)
Definition: Solver.java:2946
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:3291
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:3669
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2448
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:2585
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:3345
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:3677
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1411
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Version reducing calls to wall timer by estimating number of remaining calls.
Definition: Solver.java:2274
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1264
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:1756
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:1968
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:535
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2736
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3078
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3153
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:2181
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1299
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:2731
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:2767
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1304
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:3557
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:1440
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1068
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:1748
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:1976
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:948
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:200
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:711
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:3469
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:1124
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1784
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:3553
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:2580
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:1880
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2785
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:2780
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:3521
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3160
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:1808
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:767
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2298
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:3645
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:751
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:2693
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:567
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:972
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:2882
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3365
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:831
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:695
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:607
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:2189
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:1647
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver ...
Definition: Solver.java:3259
Decision makeScheduleOrExpedite(IntervalVar var, long est, long[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2624
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1463
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:1816
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1393
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2258
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2133
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:964
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:2519
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2570
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:1832
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:3307
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2713
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:2603
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2048
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:452
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:2656
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:1353
This struct holds all parameters for the default search.
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:2869
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:459
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:3327
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:1345
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:320
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:2903
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:703
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:847
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:815
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:3429
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:2632
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:2832
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:599
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:2511
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:727
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:3577
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:3403
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:527
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:3211
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:2165
Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1519
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1294
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:3353
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:487
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:639
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2703
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1020
A DecisionBuilder is responsible for creating the search tree.
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:3629
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:3323
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:980
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:3287
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2346
IntVar makeIntVar(long min, long max, String name)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:519
long neighbors()
The number of neighbors created.
Definition: Solver.java:473
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2266
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:2698
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2468
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1254
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1028
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:2547
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:2565
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:508
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1319
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1655
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1236
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2338
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:1952
RegularLimit makeTimeLimit(long time_in_ms)
Creates a search limit that constrains the running time given in milliseconds.
Definition: Solver.java:2234
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1448
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2080
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2322
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:1639
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:2488
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1036
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:1896
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1324
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:3425
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:3248
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3167
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2016
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:2205
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:2853
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:3517
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilter[] filters)
Definition: Solver.java:2913
SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2064
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2473
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:3637
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:371
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:2669
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:543
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:2677
This class encapsulates an objective.
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1274
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2141
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:1676
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1660
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2093
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:3270
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:1936
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1148
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:996
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
std::vector<IntVar*>* const sorted); Creates a constraint that enforces that left is lexicographicall...
Definition: Solver.java:1591
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:2534
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2790
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:1840
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:3415
long [] getTmp_vector_()
Unsafe temporary vector.
Definition: Solver.java:3233
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3085
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1559
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:3279
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:3390
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:924
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1052
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:647
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1503
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:3615
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3115
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:445
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1244
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:988
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:3341
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:1792
Local Search Filters are used for fast neighbor pruning.
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2746
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:2908
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:775
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2197
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2396
static final int NOT_SET
Optimization directions.
Definition: Solver.java:3692
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:2759
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3139
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2458
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2478
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1188
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1424
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:839
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3024
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1140
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3010
Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1527
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var(...
Definition: Solver.java:168
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:2775
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:466
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2412
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2404
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:3499
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:3003
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:2362
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2218
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:1004
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:583
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:551
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:879
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch ...
Definition: Solver.java:3045
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:799
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:3441
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:3349
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1164
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2056
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1172
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:1904
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:2354
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2117
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3099
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1228
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1132
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1369
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:3485
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:3611
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1092
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:1848
java.math.BigInteger fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:501
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1196
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:2640
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:3453
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:2685
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2708
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:3331
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3052
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2741
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:1774
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:3565
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:2845
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:1888
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:438
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1458
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:3481
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:1800
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:1615
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3059
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3038
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:3673
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:3569
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:631
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:3449
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:3477
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:3407
Decision makeScheduleOrPostpone(IntervalVar var, long est, long[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2616
void setTmp_vector_(long[] value)
Unsafe temporary vector.
Definition: Solver.java:3226
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1249
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branches...
Definition: Solver.java:2330
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:3681
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2430
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1269
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1337
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:2370
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:3685
SWIGTYPE_p_absl__Time Now()
The 'absolute time' as seen by the solver.
Definition: Solver.java:424
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:3240
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states ...
Definition: Solver.java:3652
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:3219
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:3189
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:900
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:2861
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:2542
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:3457
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2032
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:1432
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1779
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:615
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2524
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3092
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:3599
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:3561
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:3573
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:2803
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2529
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:2242
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:3411
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:2496
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2149
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3369
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:887
Constraint makeLexicalLessOrEqual(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than or equal to right.
Definition: Solver.java:1599
Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1575
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1419
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1329
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:3196
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:3535
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2501
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:3465
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:823
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:1543
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:2827
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:3531
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2425
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:2560
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:1944
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:3383
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:2989
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1377
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3123
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:3303
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:1724
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1108
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:1684
IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index)
Function based element.
Definition: Solver.java:743
static final int OUTSIDE_SEARCH
This enum represents the state of the solver w.r.t.
Definition: Solver.java:3665
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:3633
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:3473
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, IntVar objective, int filter_enum)
Definition: Solver.java:2941
java.math.BigInteger stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:494
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:2593
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:3503
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:956
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:1732
static final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:3641
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:431
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:791
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:3539
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to ch...
Definition: Solver.java:2964
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:908
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:2751
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1453
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:1912
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2109
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1156