Java Reference

Java Reference

Solver.java
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 4.0.1
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 package com.google.ortools.constraintsolver;
10 
13 
14 // Used to wrap DisplayCallback (std::function<std::string()>)
15 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html
16 import java.util.function.Supplier;
17 // Used to wrap std::function<bool()>
18 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/BooleanSupplier.html
19 import java.util.function.BooleanSupplier;
20 
21 // Used to wrap IndexEvaluator1 (std::function<int64_t(int64_t)>)
22 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongUnaryOperator.html
23 import java.util.function.LongUnaryOperator;
24 // Used to wrap IndexEvaluator2 (std::function<int64_t(int64_t, int64_t)>)
25 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongBinaryOperator.html
26 import java.util.function.LongBinaryOperator;
27 // Used to wrap IndexEvaluator3 (std::function<int64_t(int64_t, int64_t, int64_t)>)
28 // note: Java does not provide TernaryOperator so we provide it.
30 // Used to wrap std::function<int64_t(int, int)>
31 // note: Java does not provide it, so we provide it.
33 
34 // Used to wrap IndexFilter1 (std::function<bool(int64_t)>)
35 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongPredicate.html
36 import java.util.function.LongPredicate;
37 
38 // Used to wrap std::function<bool(int64_t, int64_t, int64_t)>
39 // note: Java does not provide TernaryPredicate so we provide it
41 
42 // Used to wrap std::function<void(Solver*)>
43 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
44 import java.util.function.Consumer;
45 
46 // Used to wrap ObjectiveWatcher (std::function<void(int64_t)>)
47 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongConsumer.html
48 import java.util.function.LongConsumer;
49 
50 // Used to wrap Closure (std::function<void()>)
51 // see https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html
52 import java.lang.Runnable;
53 
54 // Used to keep alive java references to objects passed to the C++ layer.
55 import java.util.HashSet;
56 
60 public class Solver {
61  private transient long swigCPtr;
62  protected transient boolean swigCMemOwn;
63 
64  protected Solver(long cPtr, boolean cMemoryOwn) {
65  swigCMemOwn = cMemoryOwn;
66  swigCPtr = cPtr;
67  }
68 
69  protected static long getCPtr(Solver obj) {
70  return (obj == null) ? 0 : obj.swigCPtr;
71  }
72 
73  @SuppressWarnings("deprecation")
74  protected void finalize() {
75  delete();
76  }
77 
78  public synchronized void delete() {
79  if (swigCPtr != 0) {
80  if (swigCMemOwn) {
81  swigCMemOwn = false;
82  mainJNI.delete_Solver(swigCPtr);
83  }
84  swigCPtr = 0;
85  }
86  }
87 
91  public static class FailException extends Exception {
92  public FailException() {
93  super();
94  }
95 
96  public FailException(String message) {
97  super(message);
98  }
99  }
100 
101  public IntVar[] makeIntVarArray(int count, long min, long max) {
102  IntVar[] array = new IntVar[count];
103  for (int i = 0; i < count; ++i) {
104  array[i] = makeIntVar(min, max);
105  }
106  return array;
107  }
108 
109  public IntVar[] makeIntVarArray(int count, long min, long max, String name) {
110  IntVar[] array = new IntVar[count];
111  for (int i = 0; i < count; ++i) {
112  String var_name = name + i;
113  array[i] = makeIntVar(min, max, var_name);
114  }
115  return array;
116  }
117 
118  public IntVar[] makeBoolVarArray(int count) {
119  IntVar[] array = new IntVar[count];
120  for (int i = 0; i < count; ++i) {
121  array[i] = makeBoolVar();
122  }
123  return array;
124  }
125 
126  public IntVar[] makeBoolVarArray(int count, String name) {
127  IntVar[] array = new IntVar[count];
128  for (int i = 0; i < count; ++i) {
129  String var_name = name + i;
130  array[i] = makeBoolVar(var_name);
131  }
132  return array;
133  }
134 
136  long start_min,
137  long start_max,
138  long duration,
139  boolean optional) {
140  IntervalVar[] array = new IntervalVar[count];
141  for (int i = 0; i < count; ++i) {
142  array[i] = makeFixedDurationIntervalVar(start_min,
143  start_max,
144  duration,
145  optional,
146  "");
147  }
148  return array;
149  }
150 
152  long start_min,
153  long start_max,
154  long duration,
155  boolean optional,
156  String name) {
157  IntervalVar[] array = new IntervalVar[count];
158  for (int i = 0; i < count; ++i) {
159  array[i] = makeFixedDurationIntervalVar(start_min,
160  start_max,
161  duration,
162  optional,
163  name + i);
164  }
165  return array;
166  }
167 
168  // Ensure that the GC doesn't collect any DecisionBuilder set from Java
169  // as the underlying C++ class stores a shallow copy
170  private HashSet<DecisionBuilder> keepAliveDecisionBuilders;
172  if (keepAliveDecisionBuilders == null) {
173  keepAliveDecisionBuilders = new HashSet<DecisionBuilder>();
174  }
175  keepAliveDecisionBuilders.add(db);
176  }
178  for (DecisionBuilder db : dbs) {
180  }
181  }
182 
186  static public class IntegerCastInfo {
187  private transient long swigCPtr;
188  protected transient boolean swigCMemOwn;
189 
190  protected IntegerCastInfo(long cPtr, boolean cMemoryOwn) {
191  swigCMemOwn = cMemoryOwn;
192  swigCPtr = cPtr;
193  }
194 
195  protected static long getCPtr(IntegerCastInfo obj) {
196  return (obj == null) ? 0 : obj.swigCPtr;
197  }
198 
199  @SuppressWarnings("deprecation")
200  protected void finalize() {
201  delete();
202  }
203 
204  public synchronized void delete() {
205  if (swigCPtr != 0) {
206  if (swigCMemOwn) {
207  swigCMemOwn = false;
208  mainJNI.delete_Solver_IntegerCastInfo(swigCPtr);
209  }
210  swigCPtr = 0;
211  }
212  }
213 
214  public IntegerCastInfo() {
215  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_0(), true);
216  }
217 
219  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_1(IntVar.getCPtr(v), v, IntExpr.getCPtr(e), e, Constraint.getCPtr(c), c), true);
220  }
221 
222  public void setVariable(IntVar value) {
223  mainJNI.Solver_IntegerCastInfo_variable_set(swigCPtr, this, IntVar.getCPtr(value), value);
224  }
225 
226  public IntVar getVariable() {
227  long cPtr = mainJNI.Solver_IntegerCastInfo_variable_get(swigCPtr, this);
228  return (cPtr == 0) ? null : new IntVar(cPtr, false);
229  }
230 
231  public void setExpression(IntExpr value) {
232  mainJNI.Solver_IntegerCastInfo_expression_set(swigCPtr, this, IntExpr.getCPtr(value), value);
233  }
234 
236  long cPtr = mainJNI.Solver_IntegerCastInfo_expression_get(swigCPtr, this);
237  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
238  }
239 
240  public void setMaintainer(Constraint value) {
241  mainJNI.Solver_IntegerCastInfo_maintainer_set(swigCPtr, this, Constraint.getCPtr(value), value);
242  }
243 
245  long cPtr = mainJNI.Solver_IntegerCastInfo_maintainer_get(swigCPtr, this);
246  return (cPtr == 0) ? null : new Constraint(cPtr, false);
247  }
248 
249  }
250 
254  public Solver(String name) {
255  this(mainJNI.new_Solver__SWIG_0(name), true);
256  }
257 
259  this(mainJNI.new_Solver__SWIG_1(name, parameters.toByteArray()), true);
260  }
261 
266  byte[] buf = mainJNI.Solver_parameters(swigCPtr, this);
267  if (buf == null || buf.length == 0) {
268  return null;
269  }
270  try {
272  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
273  throw new RuntimeException(
274  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
275  }
276 }
277 
282  byte[] buf = mainJNI.Solver_defaultSolverParameters();
283  if (buf == null || buf.length == 0) {
284  return null;
285  }
286  try {
288  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
289  throw new RuntimeException(
290  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
291  }
292 }
293 
297  public void addConstraint(Constraint c) {
298  mainJNI.Solver_addConstraint(swigCPtr, this, Constraint.getCPtr(c), c);
299  }
300 
304  public void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr) {
305  mainJNI.Solver_addCastConstraint(swigCPtr, this, CastConstraint.getCPtr(constraint), constraint, IntVar.getCPtr(target_var), target_var, IntExpr.getCPtr(expr), expr);
306  }
307 
311  public boolean solve(DecisionBuilder db, SearchMonitor[] monitors) {
312  try {
313  return mainJNI.Solver_solve__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
314  } finally {
316  }
317  }
318 
319  public boolean solve(DecisionBuilder db) {
320  try {
321  return mainJNI.Solver_solve__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
322  } finally {
324  }
325  }
326 
327  public boolean solve(DecisionBuilder db, SearchMonitor m1) {
328  try {
329  return mainJNI.Solver_solve__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
330  } finally {
332  }
333  }
334 
335  public boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2) {
336  try {
337  return mainJNI.Solver_solve__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
338  } finally {
340  }
341  }
342 
344  try {
345  return mainJNI.Solver_solve__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
346  } finally {
348  }
349  }
350 
352  try {
353  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);
354  } finally {
356  }
357  }
358 
362  public void newSearch(DecisionBuilder db, SearchMonitor[] monitors) {
363  try {
364  mainJNI.Solver_newSearch__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
365  } finally {
367  }
368  }
369 
370  public void newSearch(DecisionBuilder db) {
371  try {
372  mainJNI.Solver_newSearch__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
373  } finally {
375  }
376  }
377 
379  try {
380  mainJNI.Solver_newSearch__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
381  } finally {
383  }
384  }
385 
387  try {
388  mainJNI.Solver_newSearch__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
389  } finally {
391  }
392  }
393 
395  try {
396  mainJNI.Solver_newSearch__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
397  } finally {
399  }
400  }
401 
403  try {
404  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);
405  } finally {
407  }
408  }
409 
410  public boolean nextSolution() {
411  return mainJNI.Solver_nextSolution(swigCPtr, this);
412  }
413 
414  public void restartSearch() {
415  mainJNI.Solver_restartSearch(swigCPtr, this);
416  }
417 
418  public void endSearch() {
419  mainJNI.Solver_endSearch(swigCPtr, this);
420  }
421 
425  public boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors) {
426  try {
427  return mainJNI.Solver_solveAndCommit__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
428  } finally {
430  }
431  }
432 
433  public boolean solveAndCommit(DecisionBuilder db) {
434  try {
435  return mainJNI.Solver_solveAndCommit__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
436  } finally {
438  }
439  }
440 
442  try {
443  return mainJNI.Solver_solveAndCommit__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
444  } finally {
446  }
447  }
448 
450  try {
451  return mainJNI.Solver_solveAndCommit__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
452  } finally {
454  }
455  }
456 
458  try {
459  return mainJNI.Solver_solveAndCommit__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
460  } finally {
462  }
463  }
464 
468  public boolean checkAssignment(Assignment solution) {
469  return mainJNI.Solver_checkAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
470  }
471 
475  public boolean checkConstraint(Constraint ct) {
476  return mainJNI.Solver_checkConstraint(swigCPtr, this, Constraint.getCPtr(ct), ct);
477  }
478 
482  public int state() {
483  return mainJNI.Solver_state(swigCPtr, this);
484  }
485 
489  public void fail() {
490  mainJNI.Solver_fail(swigCPtr, this);
491  }
492 
496  public String toString() {
497  return mainJNI.Solver_toString(swigCPtr, this);
498  }
499 
503  public static long memoryUsage() {
504  return mainJNI.Solver_memoryUsage();
505  }
506 
510  public long wallTime() {
511  return mainJNI.Solver_wallTime(swigCPtr, this);
512  }
513 
517  public long branches() {
518  return mainJNI.Solver_branches(swigCPtr, this);
519  }
520 
524  public long solutions() {
525  return mainJNI.Solver_solutions(swigCPtr, this);
526  }
527 
531  public long unchecked_solutions() {
532  return mainJNI.Solver_unchecked_solutions(swigCPtr, this);
533  }
534 
538  public long demon_runs(int p) {
539  return mainJNI.Solver_demon_runs(swigCPtr, this, p);
540  }
541 
545  public long failures() {
546  return mainJNI.Solver_failures(swigCPtr, this);
547  }
548 
552  public long neighbors() {
553  return mainJNI.Solver_neighbors(swigCPtr, this);
554  }
555 
559  public long filteredNeighbors() {
560  return mainJNI.Solver_filteredNeighbors(swigCPtr, this);
561  }
562 
566  public long acceptedNeighbors() {
567  return mainJNI.Solver_acceptedNeighbors(swigCPtr, this);
568  }
569 
573  public long stamp() {
574  return mainJNI.Solver_stamp(swigCPtr, this);
575  }
576 
580  public long fail_stamp() {
581  return mainJNI.Solver_fail_stamp(swigCPtr, this);
582  }
583 
587  public int optimization_direction() {
588  return mainJNI.Solver_optimization_direction(swigCPtr, this);
589  }
590 
591  public void set_optimization_direction(int direction) {
592  mainJNI.Solver_set_optimization_direction(swigCPtr, this, direction);
593  }
594 
598  public IntVar makeIntVar(long min, long max, String name) {
599  long cPtr = mainJNI.Solver_makeIntVar__SWIG_0(swigCPtr, this, min, max, name);
600  return (cPtr == 0) ? null : new IntVar(cPtr, false);
601  }
602 
606  public IntVar makeIntVar(long[] values, String name) {
607  long cPtr = mainJNI.Solver_makeIntVar__SWIG_1(swigCPtr, this, values, name);
608  return (cPtr == 0) ? null : new IntVar(cPtr, false);
609  }
610 
614  public IntVar makeIntVar(int[] values, String name) {
615  long cPtr = mainJNI.Solver_makeIntVar__SWIG_2(swigCPtr, this, values, name);
616  return (cPtr == 0) ? null : new IntVar(cPtr, false);
617  }
618 
622  public IntVar makeIntVar(long min, long max) {
623  long cPtr = mainJNI.Solver_makeIntVar__SWIG_3(swigCPtr, this, min, max);
624  return (cPtr == 0) ? null : new IntVar(cPtr, false);
625  }
626 
630  public IntVar makeIntVar(long[] values) {
631  long cPtr = mainJNI.Solver_makeIntVar__SWIG_4(swigCPtr, this, values);
632  return (cPtr == 0) ? null : new IntVar(cPtr, false);
633  }
634 
638  public IntVar makeIntVar(int[] values) {
639  long cPtr = mainJNI.Solver_makeIntVar__SWIG_5(swigCPtr, this, values);
640  return (cPtr == 0) ? null : new IntVar(cPtr, false);
641  }
642 
646  public IntVar makeBoolVar(String name) {
647  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_0(swigCPtr, this, name);
648  return (cPtr == 0) ? null : new IntVar(cPtr, false);
649  }
650 
654  public IntVar makeBoolVar() {
655  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_1(swigCPtr, this);
656  return (cPtr == 0) ? null : new IntVar(cPtr, false);
657  }
658 
662  public IntVar makeIntConst(long val, String name) {
663  long cPtr = mainJNI.Solver_makeIntConst__SWIG_0(swigCPtr, this, val, name);
664  return (cPtr == 0) ? null : new IntVar(cPtr, false);
665  }
666 
670  public IntVar makeIntConst(long val) {
671  long cPtr = mainJNI.Solver_makeIntConst__SWIG_1(swigCPtr, this, val);
672  return (cPtr == 0) ? null : new IntVar(cPtr, false);
673  }
674 
678  public IntExpr makeSum(IntExpr left, IntExpr right) {
679  long cPtr = mainJNI.Solver_makeSum__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
680  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
681  }
682 
686  public IntExpr makeSum(IntExpr expr, long value) {
687  long cPtr = mainJNI.Solver_makeSum__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
688  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
689  }
690 
694  public IntExpr makeSum(IntVar[] vars) {
695  long cPtr = mainJNI.Solver_makeSum__SWIG_2(swigCPtr, this, vars);
696  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
697  }
698 
702  public IntExpr makeScalProd(IntVar[] vars, long[] coefs) {
703  long cPtr = mainJNI.Solver_makeScalProd__SWIG_0(swigCPtr, this, vars, coefs);
704  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
705  }
706 
710  public IntExpr makeScalProd(IntVar[] vars, int[] coefs) {
711  long cPtr = mainJNI.Solver_makeScalProd__SWIG_1(swigCPtr, this, vars, coefs);
712  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
713  }
714 
718  public IntExpr makeDifference(IntExpr left, IntExpr right) {
719  long cPtr = mainJNI.Solver_makeDifference__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
720  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
721  }
722 
726  public IntExpr makeDifference(long value, IntExpr expr) {
727  long cPtr = mainJNI.Solver_makeDifference__SWIG_1(swigCPtr, this, value, IntExpr.getCPtr(expr), expr);
728  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
729  }
730 
734  public IntExpr makeOpposite(IntExpr expr) {
735  long cPtr = mainJNI.Solver_makeOpposite(swigCPtr, this, IntExpr.getCPtr(expr), expr);
736  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
737  }
738 
742  public IntExpr makeProd(IntExpr left, IntExpr right) {
743  long cPtr = mainJNI.Solver_makeProd__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
744  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
745  }
746 
750  public IntExpr makeProd(IntExpr expr, long value) {
751  long cPtr = mainJNI.Solver_makeProd__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
752  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
753  }
754 
758  public IntExpr makeDiv(IntExpr expr, long value) {
759  long cPtr = mainJNI.Solver_makeDiv__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
760  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
761  }
762 
766  public IntExpr makeDiv(IntExpr numerator, IntExpr denominator) {
767  long cPtr = mainJNI.Solver_makeDiv__SWIG_1(swigCPtr, this, IntExpr.getCPtr(numerator), numerator, IntExpr.getCPtr(denominator), denominator);
768  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
769  }
770 
774  public IntExpr makeAbs(IntExpr expr) {
775  long cPtr = mainJNI.Solver_makeAbs(swigCPtr, this, IntExpr.getCPtr(expr), expr);
776  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
777  }
778 
782  public IntExpr makeSquare(IntExpr expr) {
783  long cPtr = mainJNI.Solver_makeSquare(swigCPtr, this, IntExpr.getCPtr(expr), expr);
784  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
785  }
786 
790  public IntExpr makePower(IntExpr expr, long n) {
791  long cPtr = mainJNI.Solver_makePower(swigCPtr, this, IntExpr.getCPtr(expr), expr, n);
792  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
793  }
794 
798  public IntExpr makeElement(long[] values, IntVar index) {
799  long cPtr = mainJNI.Solver_makeElement__SWIG_0(swigCPtr, this, values, IntVar.getCPtr(index), index);
800  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
801  }
802 
806  public IntExpr makeElement(int[] values, IntVar index) {
807  long cPtr = mainJNI.Solver_makeElement__SWIG_1(swigCPtr, this, values, IntVar.getCPtr(index), index);
808  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
809  }
810 
814  public IntExpr makeElement(LongUnaryOperator values, IntVar index) {
815  long cPtr = mainJNI.Solver_makeElement__SWIG_2(swigCPtr, this, values, IntVar.getCPtr(index), index);
816  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
817  }
818 
822  public IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index) {
823  long cPtr = mainJNI.Solver_makeMonotonicElement(swigCPtr, this, values, increasing, IntVar.getCPtr(index), index);
824  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
825  }
826 
830  public IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2) {
831  long cPtr = mainJNI.Solver_makeElement__SWIG_3(swigCPtr, this, values, IntVar.getCPtr(index1), index1, IntVar.getCPtr(index2), index2);
832  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
833  }
834 
838  public IntExpr makeElement(IntVar[] vars, IntVar index) {
839  long cPtr = mainJNI.Solver_makeElement__SWIG_4(swigCPtr, this, vars, IntVar.getCPtr(index), index);
840  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
841  }
842 
846  public IntExpr makeIndexExpression(IntVar[] vars, long value) {
847  long cPtr = mainJNI.Solver_makeIndexExpression(swigCPtr, this, vars, value);
848  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
849  }
850 
854  public Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var) {
855  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);
856  return (cPtr == 0) ? null : new Constraint(cPtr, false);
857  }
858 
862  public IntExpr makeMin(IntVar[] vars) {
863  long cPtr = mainJNI.Solver_makeMin__SWIG_0(swigCPtr, this, vars);
864  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
865  }
866 
870  public IntExpr makeMin(IntExpr left, IntExpr right) {
871  long cPtr = mainJNI.Solver_makeMin__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
872  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
873  }
874 
878  public IntExpr makeMin(IntExpr expr, long value) {
879  long cPtr = mainJNI.Solver_makeMin__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
880  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
881  }
882 
886  public IntExpr makeMin(IntExpr expr, int value) {
887  long cPtr = mainJNI.Solver_makeMin__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
888  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
889  }
890 
894  public IntExpr makeMax(IntVar[] vars) {
895  long cPtr = mainJNI.Solver_makeMax__SWIG_0(swigCPtr, this, vars);
896  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
897  }
898 
902  public IntExpr makeMax(IntExpr left, IntExpr right) {
903  long cPtr = mainJNI.Solver_makeMax__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
904  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
905  }
906 
910  public IntExpr makeMax(IntExpr expr, long value) {
911  long cPtr = mainJNI.Solver_makeMax__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
912  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
913  }
914 
918  public IntExpr makeMax(IntExpr expr, int value) {
919  long cPtr = mainJNI.Solver_makeMax__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
920  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
921  }
922 
926  public IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost) {
927  long cPtr = mainJNI.Solver_makeConvexPiecewiseExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, early_cost, early_date, late_date, late_cost);
928  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
929  }
930 
934  public IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step) {
935  long cPtr = mainJNI.Solver_makeSemiContinuousExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, fixed_charge, step);
936  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
937  }
938 
942  public IntExpr makeModulo(IntExpr x, long mod) {
943  long cPtr = mainJNI.Solver_makeModulo__SWIG_0(swigCPtr, this, IntExpr.getCPtr(x), x, mod);
944  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
945  }
946 
951  long cPtr = mainJNI.Solver_makeModulo__SWIG_1(swigCPtr, this, IntExpr.getCPtr(x), x, IntExpr.getCPtr(mod), mod);
952  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
953  }
954 
958  public IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value) {
959  long cPtr = mainJNI.Solver_makeConditionalExpression(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(expr), expr, unperformed_value);
960  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
961  }
962 
967  long cPtr = mainJNI.Solver_makeTrueConstraint(swigCPtr, this);
968  return (cPtr == 0) ? null : new Constraint(cPtr, false);
969  }
970 
975  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_0(swigCPtr, this);
976  return (cPtr == 0) ? null : new Constraint(cPtr, false);
977  }
978 
979  public Constraint makeFalseConstraint(String explanation) {
980  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_1(swigCPtr, this, explanation);
981  return (cPtr == 0) ? null : new Constraint(cPtr, false);
982  }
983 
987  public Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar) {
988  long cPtr = mainJNI.Solver_makeIsEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
989  return (cPtr == 0) ? null : new Constraint(cPtr, false);
990  }
991 
995  public IntVar makeIsEqualCstVar(IntExpr var, long value) {
996  long cPtr = mainJNI.Solver_makeIsEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
997  return (cPtr == 0) ? null : new IntVar(cPtr, false);
998  }
999 
1004  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1005  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1006  }
1007 
1012  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1013  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1014  }
1015 
1019  public Constraint makeEquality(IntExpr left, IntExpr right) {
1020  long cPtr = mainJNI.Solver_makeEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1021  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1022  }
1023 
1027  public Constraint makeEquality(IntExpr expr, long value) {
1028  long cPtr = mainJNI.Solver_makeEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1029  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1030  }
1031 
1035  public Constraint makeEquality(IntExpr expr, int value) {
1036  long cPtr = mainJNI.Solver_makeEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1037  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1038  }
1039 
1043  public Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar) {
1044  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1045  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1046  }
1047 
1051  public IntVar makeIsDifferentCstVar(IntExpr var, long value) {
1052  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1053  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1054  }
1055 
1060  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1061  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1062  }
1063 
1068  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1069  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1070  }
1071 
1076  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1077  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1078  }
1079 
1083  public Constraint makeNonEquality(IntExpr expr, long value) {
1084  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1085  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1086  }
1087 
1091  public Constraint makeNonEquality(IntExpr expr, int value) {
1092  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1093  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1094  }
1095 
1099  public Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1100  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1101  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1102  }
1103 
1107  public IntVar makeIsLessOrEqualCstVar(IntExpr var, long value) {
1108  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1109  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1110  }
1111 
1116  long cPtr = mainJNI.Solver_makeIsLessOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1117  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1118  }
1119 
1124  long cPtr = mainJNI.Solver_makeIsLessOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1125  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1126  }
1127 
1132  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1133  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1134  }
1135 
1139  public Constraint makeLessOrEqual(IntExpr expr, long value) {
1140  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1141  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1142  }
1143 
1147  public Constraint makeLessOrEqual(IntExpr expr, int value) {
1148  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1149  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1150  }
1151 
1155  public Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1156  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1157  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1158  }
1159 
1163  public IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value) {
1164  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1165  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1166  }
1167 
1172  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1173  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1174  }
1175 
1180  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1181  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1182  }
1183 
1188  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1189  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1190  }
1191 
1195  public Constraint makeGreaterOrEqual(IntExpr expr, long value) {
1196  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1197  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1198  }
1199 
1203  public Constraint makeGreaterOrEqual(IntExpr expr, int value) {
1204  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1205  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1206  }
1207 
1212  long cPtr = mainJNI.Solver_makeIsGreaterCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1213  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1214  }
1215 
1219  public IntVar makeIsGreaterCstVar(IntExpr var, long value) {
1220  long cPtr = mainJNI.Solver_makeIsGreaterCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1221  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1222  }
1223 
1227  public IntVar makeIsGreaterVar(IntExpr left, IntExpr right) {
1228  long cPtr = mainJNI.Solver_makeIsGreaterVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1229  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1230  }
1231 
1236  long cPtr = mainJNI.Solver_makeIsGreaterCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1237  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1238  }
1239 
1243  public Constraint makeGreater(IntExpr left, IntExpr right) {
1244  long cPtr = mainJNI.Solver_makeGreater__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1245  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1246  }
1247 
1251  public Constraint makeGreater(IntExpr expr, long value) {
1252  long cPtr = mainJNI.Solver_makeGreater__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1253  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1254  }
1255 
1259  public Constraint makeGreater(IntExpr expr, int value) {
1260  long cPtr = mainJNI.Solver_makeGreater__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1261  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1262  }
1263 
1267  public Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b) {
1268  long cPtr = mainJNI.Solver_makeIsLessCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1269  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1270  }
1271 
1275  public IntVar makeIsLessCstVar(IntExpr var, long value) {
1276  long cPtr = mainJNI.Solver_makeIsLessCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1277  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1278  }
1279 
1283  public IntVar makeIsLessVar(IntExpr left, IntExpr right) {
1284  long cPtr = mainJNI.Solver_makeIsLessVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1285  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1286  }
1287 
1291  public Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b) {
1292  long cPtr = mainJNI.Solver_makeIsLessCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1293  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1294  }
1295 
1299  public Constraint makeLess(IntExpr left, IntExpr right) {
1300  long cPtr = mainJNI.Solver_makeLess__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1301  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1302  }
1303 
1307  public Constraint makeLess(IntExpr expr, long value) {
1308  long cPtr = mainJNI.Solver_makeLess__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1309  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1310  }
1311 
1315  public Constraint makeLess(IntExpr expr, int value) {
1316  long cPtr = mainJNI.Solver_makeLess__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1317  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1318  }
1319 
1323  public Constraint makeSumLessOrEqual(IntVar[] vars, long cst) {
1324  long cPtr = mainJNI.Solver_makeSumLessOrEqual(swigCPtr, this, vars, cst);
1325  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1326  }
1327 
1328  public Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst) {
1329  long cPtr = mainJNI.Solver_makeSumGreaterOrEqual(swigCPtr, this, vars, cst);
1330  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1331  }
1332 
1333  public Constraint makeSumEquality(IntVar[] vars, long cst) {
1334  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_0(swigCPtr, this, vars, cst);
1335  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1336  }
1337 
1338  public Constraint makeSumEquality(IntVar[] vars, IntVar var) {
1339  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_1(swigCPtr, this, vars, IntVar.getCPtr(var), var);
1340  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1341  }
1342 
1343  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst) {
1344  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1345  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1346  }
1347 
1348  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst) {
1349  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1350  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1351  }
1352 
1353  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target) {
1354  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_2(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1355  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1356  }
1357 
1358  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target) {
1359  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_3(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1360  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1361  }
1362 
1363  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst) {
1364  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_0(swigCPtr, this, vars, coeffs, cst);
1365  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1366  }
1367 
1368  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst) {
1369  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_1(swigCPtr, this, vars, coeffs, cst);
1370  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1371  }
1372 
1373  public Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst) {
1374  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1375  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1376  }
1377 
1378  public Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst) {
1379  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1380  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1381  }
1382 
1383  public Constraint makeMinEquality(IntVar[] vars, IntVar min_var) {
1384  long cPtr = mainJNI.Solver_makeMinEquality(swigCPtr, this, vars, IntVar.getCPtr(min_var), min_var);
1385  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1386  }
1387 
1388  public Constraint makeMaxEquality(IntVar[] vars, IntVar max_var) {
1389  long cPtr = mainJNI.Solver_makeMaxEquality(swigCPtr, this, vars, IntVar.getCPtr(max_var), max_var);
1390  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1391  }
1392 
1393  public Constraint makeElementEquality(long[] vals, IntVar index, IntVar target) {
1394  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_0(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1395  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1396  }
1397 
1398  public Constraint makeElementEquality(int[] vals, IntVar index, IntVar target) {
1399  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_1(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1400  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1401  }
1402 
1403  public Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target) {
1404  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_2(swigCPtr, this, vars, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1405  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1406  }
1407 
1408  public Constraint makeElementEquality(IntVar[] vars, IntVar index, long target) {
1409  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_3(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1410  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1411  }
1412 
1416  public Constraint makeAbsEquality(IntVar var, IntVar abs_var) {
1417  long cPtr = mainJNI.Solver_makeAbsEquality(swigCPtr, this, IntVar.getCPtr(var), var, IntVar.getCPtr(abs_var), abs_var);
1418  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1419  }
1420 
1424  public Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target) {
1425  long cPtr = mainJNI.Solver_makeIndexOfConstraint(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1426  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1427  }
1428 
1433  long cPtr = mainJNI.Solver_makeConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1434  return (cPtr == 0) ? null : new Demon(cPtr, false);
1435  }
1436 
1441  long cPtr = mainJNI.Solver_makeDelayedConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1442  return (cPtr == 0) ? null : new Demon(cPtr, false);
1443  }
1444 
1448  public Demon makeClosureDemon(Runnable closure) {
1449  long cPtr = mainJNI.Solver_makeClosureDemon(swigCPtr, this, closure);
1450  return (cPtr == 0) ? null : new Demon(cPtr, false);
1451  }
1452 
1456  public Constraint makeBetweenCt(IntExpr expr, long l, long u) {
1457  long cPtr = mainJNI.Solver_makeBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1458  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1459  }
1460 
1464  public Constraint makeNotBetweenCt(IntExpr expr, long l, long u) {
1465  long cPtr = mainJNI.Solver_makeNotBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1466  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1467  }
1468 
1472  public Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b) {
1473  long cPtr = mainJNI.Solver_makeIsBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u, IntVar.getCPtr(b), b);
1474  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1475  }
1476 
1477  public IntVar makeIsBetweenVar(IntExpr v, long l, long u) {
1478  long cPtr = mainJNI.Solver_makeIsBetweenVar(swigCPtr, this, IntExpr.getCPtr(v), v, l, u);
1479  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1480  }
1481 
1485  public Constraint makeMemberCt(IntExpr expr, long[] values) {
1486  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1487  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1488  }
1489 
1490  public Constraint makeMemberCt(IntExpr expr, int[] values) {
1491  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1492  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1493  }
1494 
1498  public Constraint makeNotMemberCt(IntExpr expr, long[] values) {
1499  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1500  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1501  }
1502 
1503  public Constraint makeNotMemberCt(IntExpr expr, int[] values) {
1504  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1505  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1506  }
1507 
1511  public Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends) {
1512  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1513  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1514  }
1515 
1519  public Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends) {
1520  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1521  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1522  }
1523 
1527  public Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar) {
1528  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1529  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1530  }
1531 
1532  public Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar) {
1533  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1534  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1535  }
1536 
1537  public IntVar makeIsMemberVar(IntExpr expr, long[] values) {
1538  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1539  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1540  }
1541 
1542  public IntVar makeIsMemberVar(IntExpr expr, int[] values) {
1543  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1544  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1545  }
1546 
1550  public Constraint makeCount(IntVar[] vars, long value, long max_count) {
1551  long cPtr = mainJNI.Solver_makeCount__SWIG_0(swigCPtr, this, vars, value, max_count);
1552  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1553  }
1554 
1558  public Constraint makeCount(IntVar[] vars, long value, IntVar max_count) {
1559  long cPtr = mainJNI.Solver_makeCount__SWIG_1(swigCPtr, this, vars, value, IntVar.getCPtr(max_count), max_count);
1560  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1561  }
1562 
1566  public Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards) {
1567  long cPtr = mainJNI.Solver_makeDistribute__SWIG_0(swigCPtr, this, vars, values, cards);
1568  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1569  }
1570 
1574  public Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards) {
1575  long cPtr = mainJNI.Solver_makeDistribute__SWIG_1(swigCPtr, this, vars, values, cards);
1576  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1577  }
1578 
1582  public Constraint makeDistribute(IntVar[] vars, IntVar[] cards) {
1583  long cPtr = mainJNI.Solver_makeDistribute__SWIG_2(swigCPtr, this, vars, cards);
1584  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1585  }
1586 
1590  public Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size) {
1591  long cPtr = mainJNI.Solver_makeDistribute__SWIG_3(swigCPtr, this, vars, card_min, card_max, card_size);
1592  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1593  }
1594 
1598  public Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max) {
1599  long cPtr = mainJNI.Solver_makeDistribute__SWIG_4(swigCPtr, this, vars, card_min, card_max);
1600  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1601  }
1602 
1606  public Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max) {
1607  long cPtr = mainJNI.Solver_makeDistribute__SWIG_5(swigCPtr, this, vars, card_min, card_max);
1608  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1609  }
1610 
1614  public Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max) {
1615  long cPtr = mainJNI.Solver_makeDistribute__SWIG_6(swigCPtr, this, vars, values, card_min, card_max);
1616  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1617  }
1618 
1622  public Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max) {
1623  long cPtr = mainJNI.Solver_makeDistribute__SWIG_7(swigCPtr, this, vars, values, card_min, card_max);
1624  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1625  }
1626 
1630  public Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum) {
1631  long cPtr = mainJNI.Solver_makeDeviation(swigCPtr, this, vars, IntVar.getCPtr(deviation_var), deviation_var, total_sum);
1632  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1633  }
1634 
1639  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_0(swigCPtr, this, vars);
1640  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1641  }
1642 
1646  public Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation) {
1647  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_1(swigCPtr, this, vars, stronger_propagation);
1648  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1649  }
1650 
1654  public Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value) {
1655  long cPtr = mainJNI.Solver_makeAllDifferentExcept(swigCPtr, this, vars, escape_value);
1656  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1657  }
1658 
1662  public Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted) {
1663  long cPtr = mainJNI.Solver_makeSortingConstraint(swigCPtr, this, vars, sorted);
1664  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1665  }
1666 
1670  public Constraint makeLexicalLess(IntVar[] left, IntVar[] right) {
1671  long cPtr = mainJNI.Solver_makeLexicalLess(swigCPtr, this, left, right);
1672  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1673  }
1674 
1679  long cPtr = mainJNI.Solver_makeLexicalLessOrEqual(swigCPtr, this, left, right);
1680  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1681  }
1682 
1687  long cPtr = mainJNI.Solver_makeInversePermutationConstraint(swigCPtr, this, left, right);
1688  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1689  }
1690 
1695  long cPtr = mainJNI.Solver_makeIndexOfFirstMaxValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1696  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1697  }
1698 
1703  long cPtr = mainJNI.Solver_makeIndexOfFirstMinValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1704  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1705  }
1706 
1710  public Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars) {
1711  long cPtr = mainJNI.Solver_makeNullIntersect(swigCPtr, this, first_vars, second_vars);
1712  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1713  }
1714 
1718  public Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value) {
1719  long cPtr = mainJNI.Solver_makeNullIntersectExcept(swigCPtr, this, first_vars, second_vars, escape_value);
1720  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1721  }
1722 
1726  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler) {
1727  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_0(swigCPtr, this, nexts, active, sink_handler);
1728  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1729  }
1730 
1734  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active) {
1735  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_1(swigCPtr, this, nexts, active);
1736  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1737  }
1738 
1739  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths) {
1740  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_2(swigCPtr, this, nexts, active, sink_handler, assume_paths);
1741  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1742  }
1743 
1747  public Constraint makeCircuit(IntVar[] nexts) {
1748  long cPtr = mainJNI.Solver_makeCircuit(swigCPtr, this, nexts);
1749  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1750  }
1751 
1756  long cPtr = mainJNI.Solver_makeSubCircuit(swigCPtr, this, nexts);
1757  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1758  }
1759 
1763  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1764  long cPtr = mainJNI.Solver_makePathCumul__SWIG_0(swigCPtr, this, nexts, active, cumuls, transits);
1765  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1766  }
1767 
1771  public Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1772  long cPtr = mainJNI.Solver_makeDelayedPathCumul(swigCPtr, this, nexts, active, cumuls, transits);
1773  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1774  }
1775 
1779  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator) {
1780  long cPtr = mainJNI.Solver_makePathCumul__SWIG_1(swigCPtr, this, nexts, active, cumuls, transit_evaluator);
1781  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1782  }
1783 
1787  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator) {
1788  long cPtr = mainJNI.Solver_makePathCumul__SWIG_2(swigCPtr, this, nexts, active, cumuls, slacks, transit_evaluator);
1789  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1790  }
1791 
1795  public Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status) {
1796  long cPtr = mainJNI.Solver_makePathConnected(swigCPtr, this, nexts, sources, sinks, status);
1797  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1798  }
1799 
1803  public Constraint makeMapDomain(IntVar var, IntVar[] actives) {
1804  long cPtr = mainJNI.Solver_makeMapDomain(swigCPtr, this, IntVar.getCPtr(var), var, actives);
1805  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1806  }
1807 
1812  long cPtr = mainJNI.Solver_makeAllowedAssignment(swigCPtr, this, vars, IntTupleSet.getCPtr(tuples), tuples);
1813  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1814  }
1815 
1819  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states) {
1820  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_0(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1821  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1822  }
1823 
1827  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states) {
1828  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_1(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1829  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1830  }
1831 
1835  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1836  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1837  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1838  }
1839 
1840  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1841  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1842  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1843  }
1844 
1845  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1846  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1847  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1848  }
1849 
1853  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1854  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1855  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1856  }
1857 
1858  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1859  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1860  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1861  }
1862 
1863  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1864  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1865  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1866  }
1867 
1871  public Pack makePack(IntVar[] vars, int number_of_bins) {
1872  long cPtr = mainJNI.Solver_makePack(swigCPtr, this, vars, number_of_bins);
1873  return (cPtr == 0) ? null : new Pack(cPtr, false);
1874  }
1875 
1879  public IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name) {
1880  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_0(swigCPtr, this, start_min, start_max, duration, optional, name);
1881  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1882  }
1883 
1887  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name) {
1888  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_1(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, name);
1889  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1890  }
1891 
1895  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name) {
1896  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_2(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, IntVar.getCPtr(performed_variable), performed_variable, name);
1897  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1898  }
1899 
1903  public IntervalVar makeFixedInterval(long start, long duration, String name) {
1904  long cPtr = mainJNI.Solver_makeFixedInterval(swigCPtr, this, start, duration, name);
1905  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1906  }
1907 
1911  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) {
1912  long cPtr = mainJNI.Solver_makeIntervalVar(swigCPtr, this, start_min, start_max, duration_min, duration_max, end_min, end_max, optional, name);
1913  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1914  }
1915 
1920  long cPtr = mainJNI.Solver_makeMirrorInterval(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1921  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1922  }
1923 
1927  public IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
1928  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1929  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1930  }
1931 
1935  public IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
1936  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1937  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1938  }
1939 
1943  public IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
1944  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1945  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1946  }
1947 
1951  public IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
1952  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
1953  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1954  }
1955 
1960  long cPtr = mainJNI.Solver_makeIntervalRelaxedMin(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1961  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1962  }
1963 
1968  long cPtr = mainJNI.Solver_makeIntervalRelaxedMax(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
1969  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
1970  }
1971 
1976  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t), t, r, d);
1977  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1978  }
1979 
1984  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2);
1985  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1986  }
1987 
1992  long cPtr = mainJNI.Solver_makeIntervalVarRelationWithDelay(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2, delay);
1993  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1994  }
1995 
2000  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2, IntVar.getCPtr(alt), alt);
2001  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2002  }
2003 
2008  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2);
2009  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2010  }
2011 
2016  long cPtr = mainJNI.Solver_makeDisjunctiveConstraint(swigCPtr, this, intervals, name);
2017  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2018  }
2019 
2024  long cPtr = mainJNI.Solver_makeStrictDisjunctiveConstraint(swigCPtr, this, intervals, name);
2025  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2026  }
2027 
2031  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name) {
2032  long cPtr = mainJNI.Solver_makeCumulative__SWIG_0(swigCPtr, this, intervals, demands, capacity, name);
2033  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2034  }
2035 
2039  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name) {
2040  long cPtr = mainJNI.Solver_makeCumulative__SWIG_1(swigCPtr, this, intervals, demands, capacity, name);
2041  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2042  }
2043 
2047  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name) {
2048  long cPtr = mainJNI.Solver_makeCumulative__SWIG_2(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2049  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2050  }
2051 
2055  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name) {
2056  long cPtr = mainJNI.Solver_makeCumulative__SWIG_3(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2057  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2058  }
2059 
2063  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name) {
2064  long cPtr = mainJNI.Solver_makeCumulative__SWIG_4(swigCPtr, this, intervals, demands, capacity, name);
2065  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2066  }
2067 
2071  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name) {
2072  long cPtr = mainJNI.Solver_makeCumulative__SWIG_5(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2073  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2074  }
2075 
2079  public Constraint makeCover(IntervalVar[] vars, IntervalVar target_var) {
2080  long cPtr = mainJNI.Solver_makeCover(swigCPtr, this, vars, IntervalVar.getCPtr(target_var), target_var);
2081  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2082  }
2083 
2088  long cPtr = mainJNI.Solver_makeEquality__SWIG_3(swigCPtr, this, IntervalVar.getCPtr(var1), var1, IntervalVar.getCPtr(var2), var2);
2089  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2090  }
2091 
2096  long cPtr = mainJNI.Solver_makeAssignment__SWIG_0(swigCPtr, this);
2097  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2098  }
2099 
2104  long cPtr = mainJNI.Solver_makeAssignment__SWIG_1(swigCPtr, this, Assignment.getCPtr(a), a);
2105  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2106  }
2107 
2112  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2113  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2114  }
2115 
2120  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_1(swigCPtr, this);
2121  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2122  }
2123 
2128  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2129  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2130  }
2131 
2136  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_1(swigCPtr, this);
2137  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2138  }
2139 
2143  public SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize) {
2144  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, maximize);
2145  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2146  }
2147 
2152  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_1(swigCPtr, this, maximize);
2153  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2154  }
2155 
2159  public SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize) {
2160  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, solution_count, maximize);
2161  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2162  }
2163 
2164  public SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize) {
2165  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_1(swigCPtr, this, solution_count, maximize);
2166  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2167  }
2168 
2173  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2174  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2175  }
2176 
2181  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_1(swigCPtr, this);
2182  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2183  }
2184 
2188  public OptimizeVar makeMinimize(IntVar v, long step) {
2189  long cPtr = mainJNI.Solver_makeMinimize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2190  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2191  }
2192 
2196  public OptimizeVar makeMaximize(IntVar v, long step) {
2197  long cPtr = mainJNI.Solver_makeMaximize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2198  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2199  }
2200 
2204  public OptimizeVar makeOptimize(boolean maximize, IntVar v, long step) {
2205  long cPtr = mainJNI.Solver_makeOptimize(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step);
2206  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2207  }
2208 
2212  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step) {
2213  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2214  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2215  }
2216 
2220  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step) {
2221  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2222  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2223  }
2224 
2228  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step) {
2229  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2230  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2231  }
2232 
2236  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step) {
2237  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2238  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2239  }
2240 
2244  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step) {
2245  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_0(swigCPtr, this, maximize, sub_objectives, weights, step);
2246  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2247  }
2248 
2252  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step) {
2253  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_1(swigCPtr, this, maximize, sub_objectives, weights, step);
2254  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2255  }
2256 
2260  public SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor) {
2261  long cPtr = mainJNI.Solver_makeTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, vars, keep_tenure, forbid_tenure, tabu_factor);
2262  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2263  }
2264 
2268  public SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure) {
2269  long cPtr = mainJNI.Solver_makeGenericTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, tabu_vars, forbid_tenure);
2270  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2271  }
2272 
2276  public SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature) {
2277  long cPtr = mainJNI.Solver_makeSimulatedAnnealing(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, initial_temperature);
2278  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2279  }
2280 
2284  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor) {
2285  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_0(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, penalty_factor);
2286  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2287  }
2288 
2289  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor) {
2290  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_1(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, secondary_vars, penalty_factor);
2291  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2292  }
2293 
2297  public SearchMonitor makeLubyRestart(int scale_factor) {
2298  long cPtr = mainJNI.Solver_makeLubyRestart(swigCPtr, this, scale_factor);
2299  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2300  }
2301 
2305  public SearchMonitor makeConstantRestart(int frequency) {
2306  long cPtr = mainJNI.Solver_makeConstantRestart(swigCPtr, this, frequency);
2307  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2308  }
2309 
2313  public RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time) {
2314  long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time));
2315  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2316  }
2317 
2318  public RegularLimit makeTimeLimit(long time_in_ms) {
2319  long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_1(swigCPtr, this, time_in_ms);
2320  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2321  }
2322 
2327  long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2328  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2329  }
2330 
2335  long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2336  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2337  }
2338 
2343  long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2344  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2345  }
2346 
2350  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2351  long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check, cumulative);
2352  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2353  }
2354 
2358  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check) {
2359  long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check);
2360  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2361  }
2362 
2366  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions) {
2367  long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions);
2368  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2369  }
2370 
2375  long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2376  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2377  }
2378 
2379  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2380  long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2381  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2382  }
2383 
2384  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2385  long cPtr = mainJNI.Solver_makeLimit__SWIG_5(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2386  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2387  }
2388 
2389  public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2390  long cPtr = mainJNI.Solver_makeLimit__SWIG_6(swigCPtr, this, time, branches, failures, solutions);
2391  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2392  }
2393 
2398  byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2399  if (buf == null || buf.length == 0) {
2400  return null;
2401  }
2402  try {
2404  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2405  throw new RuntimeException(
2406  "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2407  }
2408 }
2409 
2413  public SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2) {
2414  long cPtr = mainJNI.Solver_makeLimit__SWIG_7(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2415  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2416  }
2417 
2421  public ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance) {
2422  long cPtr = mainJNI.Solver_MakeImprovementLimit(swigCPtr, this, IntVar.getCPtr(objective_var), objective_var, maximize, objective_scaling_factor, objective_offset, improvement_rate_coefficient, improvement_rate_solutions_distance);
2423  return (cPtr == 0) ? null : new ImprovementSearchLimit(cPtr, false);
2424  }
2425 
2429  public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2430  long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2431  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2432  }
2433 
2437  public SearchMonitor makeSearchLog(int branch_period) {
2438  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2439  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2440  }
2441 
2445  public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2446  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2447  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2448  }
2449 
2453  public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2454  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2455  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2456  }
2457 
2461  public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2462  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2463  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2464  }
2465 
2469  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2470  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2471  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2472  }
2473 
2477  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2478  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2479  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2480  }
2481 
2485  public SearchMonitor makeSearchTrace(String prefix) {
2486  long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2487  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2488  }
2489 
2493  public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2494  long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2495  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2496  }
2497 
2498  public SearchMonitor makeExitSearchCallback(Runnable callback) {
2499  long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2500  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2501  }
2502 
2503  public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2504  long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2505  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2506  }
2507 
2512  long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2513  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2514  }
2515 
2520  long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2521  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2522  }
2523 
2528  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2529  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2530  }
2531 
2533  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2534  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2535  }
2536 
2538  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2539  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2540  }
2541 
2543  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2544  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2545  }
2546 
2548  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);
2549  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2550  }
2551 
2555  public Decision makeAssignVariableValue(IntVar var, long val) {
2556  long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2557  return (cPtr == 0) ? null : new Decision(cPtr, false);
2558  }
2559 
2561  long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2562  return (cPtr == 0) ? null : new Decision(cPtr, false);
2563  }
2564 
2566  long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2567  return (cPtr == 0) ? null : new Decision(cPtr, false);
2568  }
2569 
2570  public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2571  long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2572  return (cPtr == 0) ? null : new Decision(cPtr, false);
2573  }
2574 
2576  long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2577  return (cPtr == 0) ? null : new Decision(cPtr, false);
2578  }
2579 
2581  long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2582  return (cPtr == 0) ? null : new Decision(cPtr, false);
2583  }
2584 
2585  public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2586  long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2587  return (cPtr == 0) ? null : new Decision(cPtr, false);
2588  }
2589 
2590  public Decision MakeAssignVariablesValuesOrDoNothing(IntVar[] vars, long[] values) {
2591  long cPtr = mainJNI.Solver_MakeAssignVariablesValuesOrDoNothing(swigCPtr, this, vars, values);
2592  return (cPtr == 0) ? null : new Decision(cPtr, false);
2593  }
2594 
2595  public Decision MakeAssignVariablesValuesOrFail(IntVar[] vars, long[] values) {
2596  long cPtr = mainJNI.Solver_MakeAssignVariablesValuesOrFail(swigCPtr, this, vars, values);
2597  return (cPtr == 0) ? null : new Decision(cPtr, false);
2598  }
2599 
2601  long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
2602  return (cPtr == 0) ? null : new Decision(cPtr, false);
2603  }
2604 
2605  public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
2606  long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
2607  return (cPtr == 0) ? null : new Decision(cPtr, false);
2608  }
2609 
2614  try {
2615  long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2616  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2617  } finally {
2620  }
2621  }
2622 
2624  try {
2625  long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2626  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2627  } finally {
2631  }
2632  }
2633 
2635  try {
2636  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);
2637  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2638  } finally {
2643  }
2644  }
2645 
2647  try {
2648  long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
2649  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2650  } finally {
2652  }
2653  }
2654 
2659  try {
2660  long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2661  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2662  } finally {
2665  }
2666  }
2667 
2669  try {
2670  long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2671  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2672  } finally {
2676  }
2677  }
2678 
2680  try {
2681  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);
2682  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2683  } finally {
2688  }
2689  }
2690 
2692  try {
2693  long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
2694  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2695  } finally {
2697  }
2698  }
2699 
2703  public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
2704  long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
2705  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2706  }
2707 
2708  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
2709  long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
2710  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2711  }
2712 
2713  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
2714  long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
2715  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2716  }
2717 
2721  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
2722  long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
2723  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2724  }
2725 
2726  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
2727  long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
2728  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2729  }
2730 
2731  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2732  long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
2733  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2734  }
2735 
2736  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
2737  long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
2738  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2739  }
2740 
2742  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
2743  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2744  }
2745 
2747  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
2748  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2749  }
2750 
2754  public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
2755  long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
2756  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2757  }
2758 
2759  public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
2760  long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
2761  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2762  }
2763 
2764  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
2765  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);
2766  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2767  }
2768 
2769  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
2770  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);
2771  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2772  }
2773 
2777  public Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker) {
2778  long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2779  return (cPtr == 0) ? null : new Decision(cPtr, false);
2780  }
2781 
2785  public Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker) {
2786  long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
2787  return (cPtr == 0) ? null : new Decision(cPtr, false);
2788  }
2789 
2793  public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
2794  long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2795  return (cPtr == 0) ? null : new Decision(cPtr, false);
2796  }
2797 
2801  public Decision makeRankLastInterval(SequenceVar sequence, int index) {
2802  long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
2803  return (cPtr == 0) ? null : new Decision(cPtr, false);
2804  }
2805 
2809  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
2810  long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
2811  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2812  }
2813 
2817  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
2818  long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
2819  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2820  }
2821 
2825  public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
2826  long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
2827  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2828  }
2829 
2830  public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
2831  long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
2832  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2833  }
2834 
2839  try {
2840  long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
2841  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2842  } finally {
2844  }
2845  }
2846 
2851  long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
2852  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2853  }
2854 
2859  try {
2860  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
2861  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2862  } finally {
2864  }
2865  }
2866 
2868  try {
2869  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
2870  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2871  } finally {
2873  }
2874  }
2875 
2877  try {
2878  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
2879  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2880  } finally {
2882  }
2883  }
2884 
2886  try {
2887  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);
2888  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2889  } finally {
2891  }
2892  }
2893 
2895  try {
2896  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);
2897  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2898  } finally {
2900  }
2901  }
2902 
2904  try {
2905  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
2906  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2907  } finally {
2909  }
2910  }
2911 
2915  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
2916  try {
2917  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
2918  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2919  } finally {
2921  }
2922  }
2923 
2924  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
2925  try {
2926  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
2927  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2928  } finally {
2930  }
2931  }
2932 
2933  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
2934  try {
2935  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);
2936  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2937  } finally {
2939  }
2940  }
2941 
2942  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
2943  try {
2944  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);
2945  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2946  } finally {
2948  }
2949  }
2950 
2951  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
2952  try {
2953  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);
2954  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2955  } finally {
2957  }
2958  }
2959 
2960  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
2961  try {
2962  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
2963  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2964  } finally {
2966  }
2967  }
2968 
2973  long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2974  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2975  }
2976 
2981  long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2982  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2983  }
2984 
2988  public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
2989  long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
2990  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2991  }
2992 
2993  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
2994  long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
2995  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
2996  }
2997 
2998  public LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op) {
2999  long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
3000  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3001  }
3002 
3003  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
3004  long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
3005  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3006  }
3007 
3011  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
3012  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
3013  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3014  }
3015 
3016  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
3017  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
3018  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3019  }
3020 
3025  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
3026  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3027  }
3028 
3032  public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
3033  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
3034  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3035  }
3036 
3041  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
3042  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3043  }
3044 
3046  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
3047  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3048  }
3049 
3051  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
3052  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3053  }
3054 
3059  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
3060  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3061  }
3062 
3067  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
3068  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3069  }
3070 
3074  public LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize) {
3075  long cPtr = mainJNI.Solver_MultiArmedBanditConcatenateOperators(swigCPtr, this, ops, memory_coefficient, exploration_coefficient, maximize);
3076  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3077  }
3078 
3083  long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
3084  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3085  }
3086 
3091  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3092  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3093  }
3094 
3096  try {
3097  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3098  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3099  } finally {
3100  keepAliveDecisionBuilder(first_solution);
3101  }
3102  }
3103 
3107  public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
3108  try {
3109  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);
3110  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3111  } finally {
3112  keepAliveDecisionBuilder(first_solution);
3113  keepAliveDecisionBuilder(first_solution_sub_decision_builder);
3114  }
3115  }
3116 
3118  try {
3119  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3120  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3121  } finally {
3122  keepAliveDecisionBuilder(first_solution);
3123  }
3124  }
3125 
3130  long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
3131  return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
3132  }
3133 
3138  try {
3139  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_0(swigCPtr, this, IntVar.getCPtr(objective), objective, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder);
3140  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3141  } finally {
3142  keepAliveDecisionBuilder(sub_decision_builder);
3143  }
3144  }
3145 
3147  try {
3148  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_1(swigCPtr, this, IntVar.getCPtr(objective), objective, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit);
3149  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3150  } finally {
3151  keepAliveDecisionBuilder(sub_decision_builder);
3152  }
3153  }
3154 
3156  try {
3157  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_2(swigCPtr, this, IntVar.getCPtr(objective), objective, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit, LocalSearchFilterManager.getCPtr(filter_manager), filter_manager);
3158  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3159  } finally {
3160  keepAliveDecisionBuilder(sub_decision_builder);
3161  }
3162  }
3163 
3165  try {
3166  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_3(swigCPtr, this, IntVar.getCPtr(objective), objective, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder);
3167  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3168  } finally {
3169  keepAliveDecisionBuilder(sub_decision_builder);
3170  }
3171  }
3172 
3174  try {
3175  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_4(swigCPtr, this, IntVar.getCPtr(objective), objective, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit);
3176  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3177  } finally {
3178  keepAliveDecisionBuilder(sub_decision_builder);
3179  }
3180  }
3181 
3183  try {
3184  long cPtr = mainJNI.Solver_makeLocalSearchPhaseParameters__SWIG_5(swigCPtr, this, IntVar.getCPtr(objective), objective, SolutionPool.getCPtr(pool), pool, LocalSearchOperator.getCPtr(ls_operator), ls_operator, DecisionBuilder.getCPtr(sub_decision_builder), sub_decision_builder, RegularLimit.getCPtr(limit), limit, LocalSearchFilterManager.getCPtr(filter_manager), filter_manager);
3185  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3186  } finally {
3187  keepAliveDecisionBuilder(sub_decision_builder);
3188  }
3189  }
3190 
3195  long cPtr = mainJNI.Solver_MakeAcceptFilter(swigCPtr, this);
3196  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3197  }
3198 
3200  long cPtr = mainJNI.Solver_MakeRejectFilter(swigCPtr, this);
3201  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3202  }
3203 
3205  long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
3206  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3207  }
3208 
3209  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum) {
3210  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, filter_enum);
3211  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3212  }
3213 
3214  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum) {
3215  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, secondary_vars, values, filter_enum);
3216  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3217  }
3218 
3222  public void topPeriodicCheck() {
3223  mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
3224  }
3225 
3229  public int topProgressPercent() {
3230  return mainJNI.Solver_topProgressPercent(swigCPtr, this);
3231  }
3232 
3236  public void pushState() {
3237  mainJNI.Solver_pushState(swigCPtr, this);
3238  }
3239 
3240  public void popState() {
3241  mainJNI.Solver_popState(swigCPtr, this);
3242  }
3243 
3247  public int searchDepth() {
3248  return mainJNI.Solver_searchDepth(swigCPtr, this);
3249  }
3250 
3254  public int searchLeftDepth() {
3255  return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
3256  }
3257 
3261  public int solveDepth() {
3262  return mainJNI.Solver_solveDepth(swigCPtr, this);
3263  }
3264 
3268  public long rand64(long size) {
3269  return mainJNI.Solver_rand64(swigCPtr, this, size);
3270  }
3271 
3275  public int rand32(int size) {
3276  return mainJNI.Solver_rand32(swigCPtr, this, size);
3277  }
3278 
3282  public void reSeed(int seed) {
3283  mainJNI.Solver_reSeed(swigCPtr, this, seed);
3284  }
3285 
3289  public void exportProfilingOverview(String filename) {
3290  mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3291  }
3292 
3296  public String localSearchProfile() {
3297  return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3298  }
3299 
3303  public boolean currentlyInSolve() {
3304  return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3305  }
3306 
3310  public int constraints() {
3311  return mainJNI.Solver_constraints(swigCPtr, this);
3312  }
3313 
3317  public void accept(ModelVisitor visitor) {
3318  mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3319  }
3320 
3322  long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3323  return (cPtr == 0) ? null : new Decision(cPtr, false);
3324  }
3325 
3329  public void clear_fail_intercept() {
3330  mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3331  }
3332 
3336  public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3337  mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3338  }
3339 
3343  public boolean UseFastLocalSearch() {
3344  return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3345  }
3346 
3350  public boolean hasName(PropagationBaseObject object) {
3351  return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3352  }
3353 
3357  public Demon registerDemon(Demon demon) {
3358  long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3359  return (cPtr == 0) ? null : new Demon(cPtr, false);
3360  }
3361 
3366  long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3367  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3368  }
3369 
3374  long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3375  return (cPtr == 0) ? null : new IntVar(cPtr, false);
3376  }
3377 
3382  long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3383  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3384  }
3385 
3389  public ModelCache cache() {
3390  long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3391  return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3392  }
3393 
3397  public boolean instrumentsDemons() {
3398  return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3399  }
3400 
3404  public boolean isProfilingEnabled() {
3405  return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3406  }
3407 
3412  return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3413  }
3414 
3418  public boolean instrumentsVariables() {
3419  return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3420  }
3421 
3425  public boolean nameAllVariables() {
3426  return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3427  }
3428 
3432  public String model_name() {
3433  return mainJNI.Solver_model_name(swigCPtr, this);
3434  }
3435 
3440  long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3441  return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3442  }
3443 
3448  mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
3449  }
3450 
3455  long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
3456  return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
3457  }
3458 
3463  mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
3464  }
3465 
3470  long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
3471  return (cPtr == 0) ? null : new Assignment(cPtr, false);
3472  }
3473 
3477  public void ClearLocalSearchState() {
3478  mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
3479  }
3480 
3484  public void setTmpVector(long[] value) {
3485  mainJNI.Solver_tmpVector_set(swigCPtr, this, value);
3486  }
3487 
3491  public long[] getTmpVector() {
3492  return mainJNI.Solver_tmpVector_get(swigCPtr, this);
3493 }
3494 
3499  long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
3500  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3501  }
3502 
3506  public void finishCurrentSearch() {
3507  mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
3508  }
3509 
3510  public void restartCurrentSearch() {
3511  mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
3512  }
3513 
3517  public void shouldFail() {
3518  mainJNI.Solver_shouldFail(swigCPtr, this);
3519  }
3520 
3521  public void checkFail() {
3522  mainJNI.Solver_checkFail(swigCPtr, this);
3523  }
3524 
3529  try {
3530  long cPtr = mainJNI.Solver_MakeProfiledDecisionBuilderWrapper(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
3531  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3532  } finally {
3534  }
3535  }
3536 
3540  public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
3541  // IntVarStrategy
3549  public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
3553  public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
3557  public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
3561  public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
3565  public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
3569  public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
3573  public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
3577  public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
3581  public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
3585  public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
3589  public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
3593  public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
3597  public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
3601  public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
3602 
3603  // IntValueStrategy
3611  public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
3615  public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
3619  public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
3623  public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
3627  public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
3631  public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
3635  public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
3639  public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
3640 
3641  // EvaluatorStrategy
3649  public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
3653  public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
3654 
3655  // SequenceStrategy
3660  public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
3661  public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
3662  public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
3663  public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
3664 
3665  // IntervalStrategy
3673  public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
3677  public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
3681  public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
3685  public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
3686 
3687  // LocalSearchOperators
3695  public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
3699  public final static int OROPT = mainJNI.Solver_OROPT_get();
3703  public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
3707  public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
3711  public final static int CROSS = mainJNI.Solver_CROSS_get();
3715  public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
3719  public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
3723  public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
3727  public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
3731  public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
3735  public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
3739  public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
3743  public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
3747  public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
3751  public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
3755  public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
3756 
3757  // EvaluatorLocalSearchOperators
3765  public final static int LK = mainJNI.Solver_LK_get();
3769  public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
3773  public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
3774 
3775  // LocalSearchFilterBound
3783  public final static int GE = mainJNI.Solver_GE_get();
3787  public final static int LE = mainJNI.Solver_LE_get();
3791  public final static int EQ = mainJNI.Solver_EQ_get();
3792 
3793  // DemonPriority
3801  public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
3805  public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
3809  public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
3810 
3811  // BinaryIntervalRelation
3819  public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
3823  public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
3827  public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
3831  public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
3835  public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
3839  public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
3843  public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
3847  public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
3851  public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
3852 
3853  // UnaryIntervalRelation
3861  public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
3865  public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
3869  public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
3873  public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
3877  public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
3881  public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
3885  public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
3889  public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
3890 
3891  // DecisionModification
3899  public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
3903  public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
3907  public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
3911  public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
3915  public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
3916 
3917  // MarkerType
3922  public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
3923  public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
3924  public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
3925  public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
3926 
3927  // SolverState
3935  public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
3939  public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
3943  public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
3947  public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
3951  public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
3955  public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
3956 
3957  // OptimizationDirection
3962  public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
3963  public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
3964  public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
3965 
3966 }
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:2903
IntExpr makeModulo(IntExpr x, long mod)
General piecewise-linear function expression, built from f(x) where f is piecewise-linear.
Definition: Solver.java:942
int searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:3254
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:3631
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2498
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:1019
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:814
String toString()
misc debug string.
Definition: Solver.java:496
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:3565
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:3553
LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:3074
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:638
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3365
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:2007
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:258
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1299
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:950
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3289
void newSearch(DecisionBuilder db)
Definition: Solver.java:370
static final int LK
This enum is used in Solver::MakeOperator associated with an evaluator to specify the neighborhood to...
Definition: Solver.java:3765
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:3703
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2547
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:3011
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1574
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Definition: Solver.java:2379
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:1702
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:742
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-le...
Definition: Solver.java:3229
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:886
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:1771
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:3129
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:1903
void keepAliveDecisionBuilder(DecisionBuilder db)
Definition: Solver.java:171
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2151
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:1662
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:441
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:3032
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2485
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:3783
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:2769
Solver Class A solver represents the main computation engine.
Definition: Solver.java:60
static final int STARTS_AT
t starts at d, i.e.
Definition: Solver.java:3877
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1845
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1558
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:3707
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2542
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3275
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:1139
String model_name()
Returns the name of the model.
Definition: Solver.java:3432
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1123
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:766
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2289
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:3585
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:702
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:750
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:974
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1179
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:1590
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2366
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2204
IntVar [] makeIntVarArray(int count, long min, long max, String name)
Definition: Solver.java:109
IntervalVar [] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional)
Definition: Solver.java:135
boolean isProfilingEnabled()
Returns whether we are profiling the solver.
Definition: Solver.java:3404
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:2825
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:3589
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:1710
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:2915
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1338
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1485
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:3873
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1566
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:3851
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:1011
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:3236
Solver(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:64
boolean checkAssignment(Assignment solution)
Checks whether the given assignment satisfies all relevant constraints.
Definition: Solver.java:468
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:2039
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:1787
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:1819
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:758
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1259
IntervalVar [] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional, String name)
Definition: Solver.java:151
DecisionBuilder makeLocalSearchPhase(SequenceVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3117
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2493
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2305
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:304
static final int ENDS_AFTER_END
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between the two...
Definition: Solver.java:3819
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2087
DecisionBuilder MakeProfiledDecisionBuilderWrapper(DecisionBuilder db)
Activates profiling on a decision builder.
Definition: Solver.java:3528
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:3627
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2634
void set_optimization_direction(int direction)
Definition: Solver.java:591
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:838
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1440
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:2809
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3389
static long memoryUsage()
Current memory usage in bytes.
Definition: Solver.java:503
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2, IntVar alt)
This constraint implements a temporal disjunction between two interval vars t1 and t2.
Definition: Solver.java:1999
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:386
IntVar [] makeIntVarArray(int count, long min, long max)
Definition: Solver.java:101
IntExpr makeElement(long[] values, IntVar index)
values[index]
Definition: Solver.java:798
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:327
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:862
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:2236
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1388
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1155
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2164
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2570
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2119
Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2777
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1646
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:670
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:3462
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1363
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1477
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum)
Definition: Solver.java:3209
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:3569
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:3024
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:1779
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:2759
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:1614
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1368
boolean checkConstraint(Constraint ct)
Checks whether adding this constraint will lead to an immediate failure.
Definition: Solver.java:475
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:1943
static final int MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:3715
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:3649
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:1630
Constraint makeInversePermutationConstraint(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that 'left' and 'right' both represent permutations of [0....
Definition: Solver.java:1686
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:934
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:1795
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:559
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:3050
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:2713
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1393
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1550
LocalSearchFilter makeVariableDomainFilter()
Definition: Solver.java:3204
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1283
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sear...
Definition: Solver.java:2334
void setTmpVector(long[] value)
Unsafe temporary vector.
Definition: Solver.java:3484
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2252
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:1464
static final int ENDS_AT
t ends at d, i.e.
Definition: Solver.java:3865
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:1951
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:2063
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an inte...
Definition: Solver.java:3861
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:2413
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1291
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2103
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1358
IntVar [] makeBoolVarArray(int count, String name)
Definition: Solver.java:126
void newSearch(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:378
static final int AVOID_DATE
STARTS_AFTER or ENDS_BEFORE, i.e.
Definition: Solver.java:3889
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2560
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3439
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:2071
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:1935
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1195
long [] getTmpVector()
Unsafe temporary vector.
Definition: Solver.java:3491
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1747
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3095
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2180
Constraint makeCover(IntervalVar[] vars, IntervalVar target_var)
This constraint states that the target_var is the convex hull of the intervals.
Definition: Solver.java:2079
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2374
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:3731
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1091
Base class of all search limits.
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2736
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1163
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1840
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:734
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2527
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:995
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:3581
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:654
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3173
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2358
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:3561
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:3939
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2555
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:2746
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:3615
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:3947
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1490
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Definition: Solver.java:2384
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1343
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:1835
Filter manager: when a move is made, filters are executed to decide whether the solution is feasible ...
Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval c...
Definition: Solver.java:2047
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:614
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2933
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3336
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3411
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:2260
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1378
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:2924
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:2980
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1383
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:3827
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:1519
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1147
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:1827
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:2055
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:1027
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:218
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:790
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:3739
void addConstraint(Constraint c)
Adds the constraint 'c' to the model.
Definition: Solver.java:297
Constraint makeGreaterOrEqual(IntExpr expr, int value)
expr >= value
Definition: Solver.java:1203
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1863
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:3823
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:2741
long fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:580
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:1959
void keepAliveDecisionBuilder(DecisionBuilder[] dbs)
Definition: Solver.java:177
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:2998
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:2993
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:3791
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3418
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:1887
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:846
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2397
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:3915
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:830
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:2858
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:646
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:1051
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:3107
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3635
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:910
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:774
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:686
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:2268
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:1726
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver ...
Definition: Solver.java:3517
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1542
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:1895
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1472
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2342
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2212
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3155
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:1043
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:2658
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:2731
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:1911
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:3577
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2894
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum)
Definition: Solver.java:3214
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:2764
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2127
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2350
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:531
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:2817
RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time)
Creates a search limit that constrains the running time.
Definition: Solver.java:2313
int state()
State of the solver.
Definition: Solver.java:482
Demon makeConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of ...
Definition: Solver.java:1432
This struct holds all parameters for the default search.
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:3090
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:538
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:3597
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:1424
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:362
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:782
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:926
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:894
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:3699
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:2793
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:3045
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:678
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:2646
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:806
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:3847
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:3673
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:606
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:3469
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:2244
Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1598
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1373
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:351
static final int ASSIGN_MAX_VALUE
Selects the max value of the selected variable.
Definition: Solver.java:3623
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:566
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:718
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:2876
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1099
A DecisionBuilder is responsible for creating the search tree.
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:3164
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:3899
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:3593
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:1059
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:3557
Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:2785
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2453
IntVar makeIntVar(long min, long max, String name)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:598
long neighbors()
The number of neighbors created.
Definition: Solver.java:552
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Definition: Solver.java:2389
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:2867
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2575
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1333
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1107
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:2708
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:2726
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:587
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1398
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1734
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1315
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2445
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:2031
RegularLimit makeTimeLimit(long time_in_ms)
Definition: Solver.java:2318
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1527
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2159
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2429
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:402
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:343
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:1718
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:2605
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1115
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:1975
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1403
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:3695
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:3506
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3425
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2095
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:2284
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:3066
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:3787
SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assignm...
Definition: Solver.java:2143
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2580
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:3907
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:449
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:2830
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:622
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:2838
This class encapsulates an objective.
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1353
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2220
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:1755
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1739
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2172
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:3540
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2015
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1227
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:1075
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than right.
Definition: Solver.java:1670
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:2691
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:3137
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3003
boolean solve(DecisionBuilder db)
Definition: Solver.java:319
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:1919
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:3685
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3343
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1638
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:3549
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:3660
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:1003
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1131
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:91
IntExpr makeDifference(long value, IntExpr expr)
value - expr
Definition: Solver.java:726
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1582
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:3885
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3373
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:524
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1323
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:1067
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:3611
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:1871
Classes to which this template function can be applied to as of 04/2014.
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:2951
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:854
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2276
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2503
static final int NOT_SET
Optimization directions.
Definition: Solver.java:3962
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:2972
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3397
long stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:573
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2565
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2585
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1267
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1503
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:918
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3282
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1219
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3268
Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1606
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var(...
Definition: Solver.java:186
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3182
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:2988
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:545
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2519
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2511
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:3769
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:3261
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:2469
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2297
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:1083
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:662
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:630
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:958
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch ...
Definition: Solver.java:3303
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:878
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:3711
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:3619
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1243
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2135
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1251
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:1983
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:2461
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2196
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3357
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1307
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1211
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1448
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:3755
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:3881
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1171
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:1927
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1275
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:2801
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:3723
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:2850
Decision MakeAssignVariablesValuesOrFail(IntVar[] vars, long[] values)
Definition: Solver.java:2595
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2885
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:3601
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3310
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:2942
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:1853
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:3835
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNeig...
Definition: Solver.java:3058
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:1967
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:517
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1537
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:3751
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:1879
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:1694
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3317
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3296
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:3943
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:3839
static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters()
Create a ConstraintSolverParameters proto with all the default values.
Definition: Solver.java:281
IntExpr makeScalProd(IntVar[] vars, int[] coefs)
scalar product
Definition: Solver.java:710
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:335
static final int MAKEINACTIVE
Operator which makes path nodes inactive.
Definition: Solver.java:3719
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:3747
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:3677
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1328
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branches...
Definition: Solver.java:2437
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:3951
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2537
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1348
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1416
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:2477
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:3955
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:3498
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states ...
Definition: Solver.java:3922
Decision MakeAssignVariablesValuesOrDoNothing(IntVar[] vars, long[] values)
Definition: Solver.java:2590
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:3477
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:3447
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:979
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:3082
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:2703
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:3727
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2111
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:1511
ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance)
Limits the search based on the improvements of 'objective_var'.
Definition: Solver.java:2421
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1858
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:425
IntExpr makeSum(IntVar[] vars)
sum of all vars.
Definition: Solver.java:694
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2668
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3350
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:3869
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:3831
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:3843
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:3016
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2679
com.google.ortools.constraintsolver.ConstraintSolverParameters parameters()
Stored Parameters.
Definition: Solver.java:265
boolean solveAndCommit(DecisionBuilder db)
Definition: Solver.java:433
RegularLimit makeBranchesLimit(long branches)
Creates a search limit that constrains the number of branches explored in the search tree.
Definition: Solver.java:2326
void fail()
Abandon the current branch in the search tree.
Definition: Solver.java:489
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:3681
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:2613
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2228
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3639
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:966
Constraint makeLexicalLessOrEqual(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than or equal to right.
Definition: Solver.java:1678
Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1654
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1498
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1408
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:3454
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:3805
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2623
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:3735
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:902
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:1622
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:3040
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:311
static final int DELAYED_PRIORITY
This enum represents the three possible priorities for a demon in the Solver queue.
Definition: Solver.java:3801
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2532
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:2721
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2023
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:3653
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:3247
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1456
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3381
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:3573
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:457
Constraint makeMapDomain(IntVar var, IntVar[] actives)
This constraint maps the domain of 'var' onto the array of variables 'actives'.
Definition: Solver.java:1803
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1187
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:1763
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3146
IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index)
Function based element.
Definition: Solver.java:822
static final int OUTSIDE_SEARCH
This enum represents the state of the solver w.r.t.
Definition: Solver.java:3935
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:3903
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:3743
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:394
DecisionBuilder makePhase(IntVar v0, int var_str, int val_str)
Shortcuts for small arrays.
Definition: Solver.java:2754
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:3773
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:1035
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:1811
static final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:3911
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:510
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:870
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:3809
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to ch...
Definition: Solver.java:3222
LocalSearchFilter MakeAcceptFilter()
Local Search Filters.
Definition: Solver.java:3194
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:987
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:2960
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1532
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:1991
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2188
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1235