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.2
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 package com.google.ortools.constraintsolver;
10 
13 
14 // Used to wrap DisplayCallback (std::function<std::string()>)
15 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html
16 import java.util.function.Supplier;
17 // Used to wrap std::function<bool()>
18 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/BooleanSupplier.html
19 import java.util.function.BooleanSupplier;
20 
21 // Used to wrap IndexEvaluator1 (std::function<int64(int64)>)
22 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongUnaryOperator.html
23 import java.util.function.LongUnaryOperator;
24 // Used to wrap IndexEvaluator2 (std::function<int64(int64, int64)>)
25 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongBinaryOperator.html
26 import java.util.function.LongBinaryOperator;
27 // Used to wrap IndexEvaluator3 (std::function<int64(int64, int64, int64)>)
28 // note: Java does not provide TernaryOperator so we provide it.
30 // Used to wrap std::function<int64(int, int)>
31 // note: Java does not provide it, so we provide it.
33 
34 // Used to wrap IndexFilter1 (std::function<bool(int64)>)
35 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongPredicate.html
36 import java.util.function.LongPredicate;
37 
38 // Used to wrap std::function<bool(int64, int64, int64)>
39 // note: Java does not provide TernaryPredicate so we provide it
41 
42 // Used to wrap std::function<void(Solver*)>
43 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
44 import java.util.function.Consumer;
45 
46 // Used to wrap ObjectiveWatcher (std::function<void(int64)>)
47 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongConsumer.html
48 import java.util.function.LongConsumer;
49 
50 // Used to wrap Closure (std::function<void()>)
51 // see https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html
52 import java.lang.Runnable;
53 
73 public class Solver {
74  private transient long swigCPtr;
75  protected transient boolean swigCMemOwn;
76 
77  protected Solver(long cPtr, boolean cMemoryOwn) {
78  swigCMemOwn = cMemoryOwn;
79  swigCPtr = cPtr;
80  }
81 
82  protected static long getCPtr(Solver obj) {
83  return (obj == null) ? 0 : obj.swigCPtr;
84  }
85 
86  @SuppressWarnings("deprecation")
87  protected void finalize() {
88  delete();
89  }
90 
91  public synchronized void delete() {
92  if (swigCPtr != 0) {
93  if (swigCMemOwn) {
94  swigCMemOwn = false;
95  mainJNI.delete_Solver(swigCPtr);
96  }
97  swigCPtr = 0;
98  }
99  }
100 
104  public static class FailException extends Exception {
105  public FailException() {
106  super();
107  }
108 
109  public FailException(String message) {
110  super(message);
111  }
112  }
113 
114  public IntVar[] makeIntVarArray(int count, long min, long max) {
115  IntVar[] array = new IntVar[count];
116  for (int i = 0; i < count; ++i) {
117  array[i] = makeIntVar(min, max);
118  }
119  return array;
120  }
121 
122  public IntVar[] makeIntVarArray(int count, long min, long max, String name) {
123  IntVar[] array = new IntVar[count];
124  for (int i = 0; i < count; ++i) {
125  String var_name = name + i;
126  array[i] = makeIntVar(min, max, var_name);
127  }
128  return array;
129  }
130 
131  public IntVar[] makeBoolVarArray(int count) {
132  IntVar[] array = new IntVar[count];
133  for (int i = 0; i < count; ++i) {
134  array[i] = makeBoolVar();
135  }
136  return array;
137  }
138 
139  public IntVar[] makeBoolVarArray(int count, String name) {
140  IntVar[] array = new IntVar[count];
141  for (int i = 0; i < count; ++i) {
142  String var_name = name + i;
143  array[i] = makeBoolVar(var_name);
144  }
145  return array;
146  }
147 
149  long start_min,
150  long start_max,
151  long duration,
152  boolean optional) {
153  IntervalVar[] array = new IntervalVar[count];
154  for (int i = 0; i < count; ++i) {
155  array[i] = makeFixedDurationIntervalVar(start_min,
156  start_max,
157  duration,
158  optional,
159  "");
160  }
161  return array;
162  }
163 
165  long start_min,
166  long start_max,
167  long duration,
168  boolean optional,
169  String name) {
170  IntervalVar[] array = new IntervalVar[count];
171  for (int i = 0; i < count; ++i) {
172  array[i] = makeFixedDurationIntervalVar(start_min,
173  start_max,
174  duration,
175  optional,
176  name + i);
177  }
178  return array;
179  }
180 
187  static public class IntegerCastInfo {
188  private transient long swigCPtr;
189  protected transient boolean swigCMemOwn;
190 
191  protected IntegerCastInfo(long cPtr, boolean cMemoryOwn) {
192  swigCMemOwn = cMemoryOwn;
193  swigCPtr = cPtr;
194  }
195 
196  protected static long getCPtr(IntegerCastInfo obj) {
197  return (obj == null) ? 0 : obj.swigCPtr;
198  }
199 
200  @SuppressWarnings("deprecation")
201  protected void finalize() {
202  delete();
203  }
204 
205  public synchronized void delete() {
206  if (swigCPtr != 0) {
207  if (swigCMemOwn) {
208  swigCMemOwn = false;
209  mainJNI.delete_Solver_IntegerCastInfo(swigCPtr);
210  }
211  swigCPtr = 0;
212  }
213  }
214 
215  public IntegerCastInfo() {
216  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_0(), true);
217  }
218 
220  this(mainJNI.new_Solver_IntegerCastInfo__SWIG_1(IntVar.getCPtr(v), v, IntExpr.getCPtr(e), e, Constraint.getCPtr(c), c), true);
221  }
222 
223  public void setVariable(IntVar value) {
224  mainJNI.Solver_IntegerCastInfo_variable_set(swigCPtr, this, IntVar.getCPtr(value), value);
225  }
226 
227  public IntVar getVariable() {
228  long cPtr = mainJNI.Solver_IntegerCastInfo_variable_get(swigCPtr, this);
229  return (cPtr == 0) ? null : new IntVar(cPtr, false);
230  }
231 
232  public void setExpression(IntExpr value) {
233  mainJNI.Solver_IntegerCastInfo_expression_set(swigCPtr, this, IntExpr.getCPtr(value), value);
234  }
235 
237  long cPtr = mainJNI.Solver_IntegerCastInfo_expression_get(swigCPtr, this);
238  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
239  }
240 
241  public void setMaintainer(Constraint value) {
242  mainJNI.Solver_IntegerCastInfo_maintainer_set(swigCPtr, this, Constraint.getCPtr(value), value);
243  }
244 
246  long cPtr = mainJNI.Solver_IntegerCastInfo_maintainer_get(swigCPtr, this);
247  return (cPtr == 0) ? null : new Constraint(cPtr, false);
248  }
249 
250  }
251 
255  public Solver(String name) {
256  this(mainJNI.new_Solver__SWIG_0(name), true);
257  }
258 
260  this(mainJNI.new_Solver__SWIG_1(name, parameters.toByteArray()), true);
261  }
262 
267  byte[] buf = mainJNI.Solver_parameters(swigCPtr, this);
268  if (buf == null || buf.length == 0) {
269  return null;
270  }
271  try {
273  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
274  throw new RuntimeException(
275  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
276  }
277 }
278 
283  byte[] buf = mainJNI.Solver_defaultSolverParameters();
284  if (buf == null || buf.length == 0) {
285  return null;
286  }
287  try {
289  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
290  throw new RuntimeException(
291  "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
292  }
293 }
294 
330  public void addConstraint(Constraint c) {
331  mainJNI.Solver_addConstraint(swigCPtr, this, Constraint.getCPtr(c), c);
332  }
333 
339  public void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr) {
340  mainJNI.Solver_addCastConstraint(swigCPtr, this, CastConstraint.getCPtr(constraint), constraint, IntVar.getCPtr(target_var), target_var, IntExpr.getCPtr(expr), expr);
341  }
342 
386  public boolean solve(DecisionBuilder db, SearchMonitor[] monitors) {
387  return mainJNI.Solver_solve__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
388  }
389 
390  public boolean solve(DecisionBuilder db) {
391  return mainJNI.Solver_solve__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
392  }
393 
394  public boolean solve(DecisionBuilder db, SearchMonitor m1) {
395  return mainJNI.Solver_solve__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
396  }
397 
398  public boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2) {
399  return mainJNI.Solver_solve__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
400  }
401 
403  return mainJNI.Solver_solve__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
404  }
405 
407  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);
408  }
409 
421  public void newSearch(DecisionBuilder db, SearchMonitor[] monitors) {
422  mainJNI.Solver_newSearch__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
423  }
424 
425  public void newSearch(DecisionBuilder db) {
426  mainJNI.Solver_newSearch__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
427  }
428 
430  mainJNI.Solver_newSearch__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
431  }
432 
434  mainJNI.Solver_newSearch__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
435  }
436 
438  mainJNI.Solver_newSearch__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
439  }
440 
442  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);
443  }
444 
445  public boolean nextSolution() {
446  return mainJNI.Solver_nextSolution(swigCPtr, this);
447  }
448 
449  public void restartSearch() {
450  mainJNI.Solver_restartSearch(swigCPtr, this);
451  }
452 
453  public void endSearch() {
454  mainJNI.Solver_endSearch(swigCPtr, this);
455  }
456 
468  public boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors) {
469  return mainJNI.Solver_solveAndCommit__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
470  }
471 
472  public boolean solveAndCommit(DecisionBuilder db) {
473  return mainJNI.Solver_solveAndCommit__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
474  }
475 
477  return mainJNI.Solver_solveAndCommit__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
478  }
479 
481  return mainJNI.Solver_solveAndCommit__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
482  }
483 
485  return mainJNI.Solver_solveAndCommit__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
486  }
487 
491  public boolean checkAssignment(Assignment solution) {
492  return mainJNI.Solver_checkAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
493  }
494 
500  public boolean checkConstraint(Constraint ct) {
501  return mainJNI.Solver_checkConstraint(swigCPtr, this, Constraint.getCPtr(ct), ct);
502  }
503 
507  public int state() {
508  return mainJNI.Solver_state(swigCPtr, this);
509  }
510 
514  public void fail() {
515  mainJNI.Solver_fail(swigCPtr, this);
516  }
517 
521  public String toString() {
522  return mainJNI.Solver_toString(swigCPtr, this);
523  }
524 
528  public static long memoryUsage() {
529  return mainJNI.Solver_memoryUsage();
530  }
531 
536  public long wallTime() {
537  return mainJNI.Solver_wallTime(swigCPtr, this);
538  }
539 
543  public long branches() {
544  return mainJNI.Solver_branches(swigCPtr, this);
545  }
546 
550  public long solutions() {
551  return mainJNI.Solver_solutions(swigCPtr, this);
552  }
553 
557  public long unchecked_solutions() {
558  return mainJNI.Solver_unchecked_solutions(swigCPtr, this);
559  }
560 
564  public long demon_runs(int p) {
565  return mainJNI.Solver_demon_runs(swigCPtr, this, p);
566  }
567 
571  public long failures() {
572  return mainJNI.Solver_failures(swigCPtr, this);
573  }
574 
578  public long neighbors() {
579  return mainJNI.Solver_neighbors(swigCPtr, this);
580  }
581 
585  public long filteredNeighbors() {
586  return mainJNI.Solver_filteredNeighbors(swigCPtr, this);
587  }
588 
592  public long acceptedNeighbors() {
593  return mainJNI.Solver_acceptedNeighbors(swigCPtr, this);
594  }
595 
600  public long stamp() {
601  return mainJNI.Solver_stamp(swigCPtr, this);
602  }
603 
607  public long fail_stamp() {
608  return mainJNI.Solver_fail_stamp(swigCPtr, this);
609  }
610 
614  public int optimization_direction() {
615  return mainJNI.Solver_optimization_direction(swigCPtr, this);
616  }
617 
618  public void set_optimization_direction(int direction) {
619  mainJNI.Solver_set_optimization_direction(swigCPtr, this, direction);
620  }
621 
625  public IntVar makeIntVar(long min, long max, String name) {
626  long cPtr = mainJNI.Solver_makeIntVar__SWIG_0(swigCPtr, this, min, max, name);
627  return (cPtr == 0) ? null : new IntVar(cPtr, false);
628  }
629 
633  public IntVar makeIntVar(long[] values, String name) {
634  long cPtr = mainJNI.Solver_makeIntVar__SWIG_1(swigCPtr, this, values, name);
635  return (cPtr == 0) ? null : new IntVar(cPtr, false);
636  }
637 
641  public IntVar makeIntVar(int[] values, String name) {
642  long cPtr = mainJNI.Solver_makeIntVar__SWIG_2(swigCPtr, this, values, name);
643  return (cPtr == 0) ? null : new IntVar(cPtr, false);
644  }
645 
649  public IntVar makeIntVar(long min, long max) {
650  long cPtr = mainJNI.Solver_makeIntVar__SWIG_3(swigCPtr, this, min, max);
651  return (cPtr == 0) ? null : new IntVar(cPtr, false);
652  }
653 
657  public IntVar makeIntVar(long[] values) {
658  long cPtr = mainJNI.Solver_makeIntVar__SWIG_4(swigCPtr, this, values);
659  return (cPtr == 0) ? null : new IntVar(cPtr, false);
660  }
661 
665  public IntVar makeIntVar(int[] values) {
666  long cPtr = mainJNI.Solver_makeIntVar__SWIG_5(swigCPtr, this, values);
667  return (cPtr == 0) ? null : new IntVar(cPtr, false);
668  }
669 
673  public IntVar makeBoolVar(String name) {
674  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_0(swigCPtr, this, name);
675  return (cPtr == 0) ? null : new IntVar(cPtr, false);
676  }
677 
681  public IntVar makeBoolVar() {
682  long cPtr = mainJNI.Solver_makeBoolVar__SWIG_1(swigCPtr, this);
683  return (cPtr == 0) ? null : new IntVar(cPtr, false);
684  }
685 
689  public IntVar makeIntConst(long val, String name) {
690  long cPtr = mainJNI.Solver_makeIntConst__SWIG_0(swigCPtr, this, val, name);
691  return (cPtr == 0) ? null : new IntVar(cPtr, false);
692  }
693 
697  public IntVar makeIntConst(long val) {
698  long cPtr = mainJNI.Solver_makeIntConst__SWIG_1(swigCPtr, this, val);
699  return (cPtr == 0) ? null : new IntVar(cPtr, false);
700  }
701 
705  public IntExpr makeSum(IntExpr left, IntExpr right) {
706  long cPtr = mainJNI.Solver_makeSum__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
707  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
708  }
709 
713  public IntExpr makeSum(IntExpr expr, long value) {
714  long cPtr = mainJNI.Solver_makeSum__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
715  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
716  }
717 
721  public IntExpr makeSum(IntVar[] vars) {
722  long cPtr = mainJNI.Solver_makeSum__SWIG_2(swigCPtr, this, vars);
723  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
724  }
725 
729  public IntExpr makeScalProd(IntVar[] vars, long[] coefs) {
730  long cPtr = mainJNI.Solver_makeScalProd__SWIG_0(swigCPtr, this, vars, coefs);
731  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
732  }
733 
737  public IntExpr makeScalProd(IntVar[] vars, int[] coefs) {
738  long cPtr = mainJNI.Solver_makeScalProd__SWIG_1(swigCPtr, this, vars, coefs);
739  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
740  }
741 
745  public IntExpr makeDifference(IntExpr left, IntExpr right) {
746  long cPtr = mainJNI.Solver_makeDifference__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
747  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
748  }
749 
753  public IntExpr makeDifference(long value, IntExpr expr) {
754  long cPtr = mainJNI.Solver_makeDifference__SWIG_1(swigCPtr, this, value, IntExpr.getCPtr(expr), expr);
755  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
756  }
757 
761  public IntExpr makeOpposite(IntExpr expr) {
762  long cPtr = mainJNI.Solver_makeOpposite(swigCPtr, this, IntExpr.getCPtr(expr), expr);
763  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
764  }
765 
769  public IntExpr makeProd(IntExpr left, IntExpr right) {
770  long cPtr = mainJNI.Solver_makeProd__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
771  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
772  }
773 
777  public IntExpr makeProd(IntExpr expr, long value) {
778  long cPtr = mainJNI.Solver_makeProd__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
779  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
780  }
781 
785  public IntExpr makeDiv(IntExpr expr, long value) {
786  long cPtr = mainJNI.Solver_makeDiv__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
787  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
788  }
789 
793  public IntExpr makeDiv(IntExpr numerator, IntExpr denominator) {
794  long cPtr = mainJNI.Solver_makeDiv__SWIG_1(swigCPtr, this, IntExpr.getCPtr(numerator), numerator, IntExpr.getCPtr(denominator), denominator);
795  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
796  }
797 
801  public IntExpr makeAbs(IntExpr expr) {
802  long cPtr = mainJNI.Solver_makeAbs(swigCPtr, this, IntExpr.getCPtr(expr), expr);
803  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
804  }
805 
809  public IntExpr makeSquare(IntExpr expr) {
810  long cPtr = mainJNI.Solver_makeSquare(swigCPtr, this, IntExpr.getCPtr(expr), expr);
811  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
812  }
813 
817  public IntExpr makePower(IntExpr expr, long n) {
818  long cPtr = mainJNI.Solver_makePower(swigCPtr, this, IntExpr.getCPtr(expr), expr, n);
819  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
820  }
821 
825  public IntExpr makeElement(long[] values, IntVar index) {
826  long cPtr = mainJNI.Solver_makeElement__SWIG_0(swigCPtr, this, values, IntVar.getCPtr(index), index);
827  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
828  }
829 
833  public IntExpr makeElement(int[] values, IntVar index) {
834  long cPtr = mainJNI.Solver_makeElement__SWIG_1(swigCPtr, this, values, IntVar.getCPtr(index), index);
835  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
836  }
837 
843  public IntExpr makeElement(LongUnaryOperator values, IntVar index) {
844  long cPtr = mainJNI.Solver_makeElement__SWIG_2(swigCPtr, this, values, IntVar.getCPtr(index), index);
845  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
846  }
847 
856  public IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index) {
857  long cPtr = mainJNI.Solver_makeMonotonicElement(swigCPtr, this, values, increasing, IntVar.getCPtr(index), index);
858  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
859  }
860 
864  public IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2) {
865  long cPtr = mainJNI.Solver_makeElement__SWIG_3(swigCPtr, this, values, IntVar.getCPtr(index1), index1, IntVar.getCPtr(index2), index2);
866  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
867  }
868 
872  public IntExpr makeElement(IntVar[] vars, IntVar index) {
873  long cPtr = mainJNI.Solver_makeElement__SWIG_4(swigCPtr, this, vars, IntVar.getCPtr(index), index);
874  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
875  }
876 
881  public IntExpr makeIndexExpression(IntVar[] vars, long value) {
882  long cPtr = mainJNI.Solver_makeIndexExpression(swigCPtr, this, vars, value);
883  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
884  }
885 
889  public Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var) {
890  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);
891  return (cPtr == 0) ? null : new Constraint(cPtr, false);
892  }
893 
897  public IntExpr makeMin(IntVar[] vars) {
898  long cPtr = mainJNI.Solver_makeMin__SWIG_0(swigCPtr, this, vars);
899  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
900  }
901 
905  public IntExpr makeMin(IntExpr left, IntExpr right) {
906  long cPtr = mainJNI.Solver_makeMin__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
907  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
908  }
909 
913  public IntExpr makeMin(IntExpr expr, long value) {
914  long cPtr = mainJNI.Solver_makeMin__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
915  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
916  }
917 
921  public IntExpr makeMin(IntExpr expr, int value) {
922  long cPtr = mainJNI.Solver_makeMin__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
923  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
924  }
925 
929  public IntExpr makeMax(IntVar[] vars) {
930  long cPtr = mainJNI.Solver_makeMax__SWIG_0(swigCPtr, this, vars);
931  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
932  }
933 
937  public IntExpr makeMax(IntExpr left, IntExpr right) {
938  long cPtr = mainJNI.Solver_makeMax__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
939  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
940  }
941 
945  public IntExpr makeMax(IntExpr expr, long value) {
946  long cPtr = mainJNI.Solver_makeMax__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
947  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
948  }
949 
953  public IntExpr makeMax(IntExpr expr, int value) {
954  long cPtr = mainJNI.Solver_makeMax__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
955  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
956  }
957 
961  public IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost) {
962  long cPtr = mainJNI.Solver_makeConvexPiecewiseExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, early_cost, early_date, late_date, late_cost);
963  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
964  }
965 
970  public IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step) {
971  long cPtr = mainJNI.Solver_makeSemiContinuousExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, fixed_charge, step);
972  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
973  }
974 
981  public IntExpr makeModulo(IntExpr x, long mod) {
982  long cPtr = mainJNI.Solver_makeModulo__SWIG_0(swigCPtr, this, IntExpr.getCPtr(x), x, mod);
983  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
984  }
985 
990  long cPtr = mainJNI.Solver_makeModulo__SWIG_1(swigCPtr, this, IntExpr.getCPtr(x), x, IntExpr.getCPtr(mod), mod);
991  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
992  }
993 
997  public IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value) {
998  long cPtr = mainJNI.Solver_makeConditionalExpression(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(expr), expr, unperformed_value);
999  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1000  }
1001 
1006  long cPtr = mainJNI.Solver_makeTrueConstraint(swigCPtr, this);
1007  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1008  }
1009 
1014  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_0(swigCPtr, this);
1015  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1016  }
1017 
1018  public Constraint makeFalseConstraint(String explanation) {
1019  long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_1(swigCPtr, this, explanation);
1020  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1021  }
1022 
1026  public Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1027  long cPtr = mainJNI.Solver_makeIsEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1028  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1029  }
1030 
1034  public IntVar makeIsEqualCstVar(IntExpr var, long value) {
1035  long cPtr = mainJNI.Solver_makeIsEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1036  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1037  }
1038 
1043  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1044  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1045  }
1046 
1051  long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1052  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1053  }
1054 
1058  public Constraint makeEquality(IntExpr left, IntExpr right) {
1059  long cPtr = mainJNI.Solver_makeEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1060  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1061  }
1062 
1066  public Constraint makeEquality(IntExpr expr, long value) {
1067  long cPtr = mainJNI.Solver_makeEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1068  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1069  }
1070 
1074  public Constraint makeEquality(IntExpr expr, int value) {
1075  long cPtr = mainJNI.Solver_makeEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1076  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1077  }
1078 
1082  public Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar) {
1083  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1084  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1085  }
1086 
1090  public IntVar makeIsDifferentCstVar(IntExpr var, long value) {
1091  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1092  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1093  }
1094 
1099  long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1100  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1101  }
1102 
1107  long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1108  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1109  }
1110 
1115  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1116  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1117  }
1118 
1122  public Constraint makeNonEquality(IntExpr expr, long value) {
1123  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1124  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1125  }
1126 
1130  public Constraint makeNonEquality(IntExpr expr, int value) {
1131  long cPtr = mainJNI.Solver_makeNonEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1132  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1133  }
1134 
1138  public Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1139  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1140  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1141  }
1142 
1146  public IntVar makeIsLessOrEqualCstVar(IntExpr var, long value) {
1147  long cPtr = mainJNI.Solver_makeIsLessOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1148  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1149  }
1150 
1155  long cPtr = mainJNI.Solver_makeIsLessOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1156  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1157  }
1158 
1163  long cPtr = mainJNI.Solver_makeIsLessOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1164  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1165  }
1166 
1171  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1172  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1173  }
1174 
1178  public Constraint makeLessOrEqual(IntExpr expr, long value) {
1179  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1180  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1181  }
1182 
1186  public Constraint makeLessOrEqual(IntExpr expr, int value) {
1187  long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1188  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1189  }
1190 
1194  public Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1195  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1196  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1197  }
1198 
1202  public IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value) {
1203  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1204  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1205  }
1206 
1211  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1212  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1213  }
1214 
1219  long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1220  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1221  }
1222 
1227  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1228  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1229  }
1230 
1234  public Constraint makeGreaterOrEqual(IntExpr expr, long value) {
1235  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1236  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1237  }
1238 
1242  public Constraint makeGreaterOrEqual(IntExpr expr, int value) {
1243  long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1244  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1245  }
1246 
1251  long cPtr = mainJNI.Solver_makeIsGreaterCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1252  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1253  }
1254 
1258  public IntVar makeIsGreaterCstVar(IntExpr var, long value) {
1259  long cPtr = mainJNI.Solver_makeIsGreaterCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1260  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1261  }
1262 
1266  public IntVar makeIsGreaterVar(IntExpr left, IntExpr right) {
1267  long cPtr = mainJNI.Solver_makeIsGreaterVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1268  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1269  }
1270 
1275  long cPtr = mainJNI.Solver_makeIsGreaterCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1276  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1277  }
1278 
1282  public Constraint makeGreater(IntExpr left, IntExpr right) {
1283  long cPtr = mainJNI.Solver_makeGreater__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1284  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1285  }
1286 
1290  public Constraint makeGreater(IntExpr expr, long value) {
1291  long cPtr = mainJNI.Solver_makeGreater__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1292  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1293  }
1294 
1298  public Constraint makeGreater(IntExpr expr, int value) {
1299  long cPtr = mainJNI.Solver_makeGreater__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1300  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1301  }
1302 
1306  public Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b) {
1307  long cPtr = mainJNI.Solver_makeIsLessCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1308  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1309  }
1310 
1314  public IntVar makeIsLessCstVar(IntExpr var, long value) {
1315  long cPtr = mainJNI.Solver_makeIsLessCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1316  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1317  }
1318 
1322  public IntVar makeIsLessVar(IntExpr left, IntExpr right) {
1323  long cPtr = mainJNI.Solver_makeIsLessVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1324  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1325  }
1326 
1330  public Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b) {
1331  long cPtr = mainJNI.Solver_makeIsLessCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1332  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1333  }
1334 
1338  public Constraint makeLess(IntExpr left, IntExpr right) {
1339  long cPtr = mainJNI.Solver_makeLess__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1340  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1341  }
1342 
1346  public Constraint makeLess(IntExpr expr, long value) {
1347  long cPtr = mainJNI.Solver_makeLess__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1348  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1349  }
1350 
1354  public Constraint makeLess(IntExpr expr, int value) {
1355  long cPtr = mainJNI.Solver_makeLess__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1356  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1357  }
1358 
1362  public Constraint makeSumLessOrEqual(IntVar[] vars, long cst) {
1363  long cPtr = mainJNI.Solver_makeSumLessOrEqual(swigCPtr, this, vars, cst);
1364  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1365  }
1366 
1367  public Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst) {
1368  long cPtr = mainJNI.Solver_makeSumGreaterOrEqual(swigCPtr, this, vars, cst);
1369  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1370  }
1371 
1372  public Constraint makeSumEquality(IntVar[] vars, long cst) {
1373  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_0(swigCPtr, this, vars, cst);
1374  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1375  }
1376 
1377  public Constraint makeSumEquality(IntVar[] vars, IntVar var) {
1378  long cPtr = mainJNI.Solver_makeSumEquality__SWIG_1(swigCPtr, this, vars, IntVar.getCPtr(var), var);
1379  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1380  }
1381 
1382  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst) {
1383  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1384  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1385  }
1386 
1387  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst) {
1388  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1389  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1390  }
1391 
1392  public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target) {
1393  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_2(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1394  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1395  }
1396 
1397  public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target) {
1398  long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_3(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1399  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1400  }
1401 
1402  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst) {
1403  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_0(swigCPtr, this, vars, coeffs, cst);
1404  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1405  }
1406 
1407  public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst) {
1408  long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_1(swigCPtr, this, vars, coeffs, cst);
1409  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1410  }
1411 
1412  public Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst) {
1413  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1414  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1415  }
1416 
1417  public Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst) {
1418  long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1419  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1420  }
1421 
1422  public Constraint makeMinEquality(IntVar[] vars, IntVar min_var) {
1423  long cPtr = mainJNI.Solver_makeMinEquality(swigCPtr, this, vars, IntVar.getCPtr(min_var), min_var);
1424  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1425  }
1426 
1427  public Constraint makeMaxEquality(IntVar[] vars, IntVar max_var) {
1428  long cPtr = mainJNI.Solver_makeMaxEquality(swigCPtr, this, vars, IntVar.getCPtr(max_var), max_var);
1429  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1430  }
1431 
1432  public Constraint makeElementEquality(long[] vals, IntVar index, IntVar target) {
1433  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_0(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1434  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1435  }
1436 
1437  public Constraint makeElementEquality(int[] vals, IntVar index, IntVar target) {
1438  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_1(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1439  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1440  }
1441 
1442  public Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target) {
1443  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_2(swigCPtr, this, vars, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1444  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1445  }
1446 
1447  public Constraint makeElementEquality(IntVar[] vars, IntVar index, long target) {
1448  long cPtr = mainJNI.Solver_makeElementEquality__SWIG_3(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1449  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1450  }
1451 
1455  public Constraint makeAbsEquality(IntVar var, IntVar abs_var) {
1456  long cPtr = mainJNI.Solver_makeAbsEquality(swigCPtr, this, IntVar.getCPtr(var), var, IntVar.getCPtr(abs_var), abs_var);
1457  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1458  }
1459 
1466  public Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target) {
1467  long cPtr = mainJNI.Solver_makeIndexOfConstraint(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1468  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1469  }
1470 
1476  long cPtr = mainJNI.Solver_makeConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1477  return (cPtr == 0) ? null : new Demon(cPtr, false);
1478  }
1479 
1486  long cPtr = mainJNI.Solver_makeDelayedConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1487  return (cPtr == 0) ? null : new Demon(cPtr, false);
1488  }
1489 
1493  public Demon makeClosureDemon(Runnable closure) {
1494  long cPtr = mainJNI.Solver_makeClosureDemon(swigCPtr, this, closure);
1495  return (cPtr == 0) ? null : new Demon(cPtr, false);
1496  }
1497 
1501  public Constraint makeBetweenCt(IntExpr expr, long l, long u) {
1502  long cPtr = mainJNI.Solver_makeBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1503  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1504  }
1505 
1512  public Constraint makeNotBetweenCt(IntExpr expr, long l, long u) {
1513  long cPtr = mainJNI.Solver_makeNotBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1514  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1515  }
1516 
1520  public Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b) {
1521  long cPtr = mainJNI.Solver_makeIsBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u, IntVar.getCPtr(b), b);
1522  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1523  }
1524 
1525  public IntVar makeIsBetweenVar(IntExpr v, long l, long u) {
1526  long cPtr = mainJNI.Solver_makeIsBetweenVar(swigCPtr, this, IntExpr.getCPtr(v), v, l, u);
1527  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1528  }
1529 
1534  public Constraint makeMemberCt(IntExpr expr, long[] values) {
1535  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1536  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1537  }
1538 
1539  public Constraint makeMemberCt(IntExpr expr, int[] values) {
1540  long cPtr = mainJNI.Solver_makeMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1541  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1542  }
1543 
1547  public Constraint makeNotMemberCt(IntExpr expr, long[] values) {
1548  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1549  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1550  }
1551 
1552  public Constraint makeNotMemberCt(IntExpr expr, int[] values) {
1553  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1554  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1555  }
1556 
1560  public Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends) {
1561  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1562  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1563  }
1564 
1568  public Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends) {
1569  long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1570  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1571  }
1572 
1576  public Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar) {
1577  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1578  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1579  }
1580 
1581  public Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar) {
1582  long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1583  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1584  }
1585 
1586  public IntVar makeIsMemberVar(IntExpr expr, long[] values) {
1587  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1588  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1589  }
1590 
1591  public IntVar makeIsMemberVar(IntExpr expr, int[] values) {
1592  long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1593  return (cPtr == 0) ? null : new IntVar(cPtr, false);
1594  }
1595 
1599  public Constraint makeCount(IntVar[] vars, long value, long max_count) {
1600  long cPtr = mainJNI.Solver_makeCount__SWIG_0(swigCPtr, this, vars, value, max_count);
1601  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1602  }
1603 
1607  public Constraint makeCount(IntVar[] vars, long value, IntVar max_count) {
1608  long cPtr = mainJNI.Solver_makeCount__SWIG_1(swigCPtr, this, vars, value, IntVar.getCPtr(max_count), max_count);
1609  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1610  }
1611 
1615  public Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards) {
1616  long cPtr = mainJNI.Solver_makeDistribute__SWIG_0(swigCPtr, this, vars, values, cards);
1617  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1618  }
1619 
1623  public Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards) {
1624  long cPtr = mainJNI.Solver_makeDistribute__SWIG_1(swigCPtr, this, vars, values, cards);
1625  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1626  }
1627 
1631  public Constraint makeDistribute(IntVar[] vars, IntVar[] cards) {
1632  long cPtr = mainJNI.Solver_makeDistribute__SWIG_2(swigCPtr, this, vars, cards);
1633  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1634  }
1635 
1640  public Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size) {
1641  long cPtr = mainJNI.Solver_makeDistribute__SWIG_3(swigCPtr, this, vars, card_min, card_max, card_size);
1642  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1643  }
1644 
1650  public Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max) {
1651  long cPtr = mainJNI.Solver_makeDistribute__SWIG_4(swigCPtr, this, vars, card_min, card_max);
1652  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1653  }
1654 
1660  public Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max) {
1661  long cPtr = mainJNI.Solver_makeDistribute__SWIG_5(swigCPtr, this, vars, card_min, card_max);
1662  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1663  }
1664 
1670  public Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max) {
1671  long cPtr = mainJNI.Solver_makeDistribute__SWIG_6(swigCPtr, this, vars, values, card_min, card_max);
1672  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1673  }
1674 
1680  public Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max) {
1681  long cPtr = mainJNI.Solver_makeDistribute__SWIG_7(swigCPtr, this, vars, values, card_min, card_max);
1682  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1683  }
1684 
1691  public Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum) {
1692  long cPtr = mainJNI.Solver_makeDeviation(swigCPtr, this, vars, IntVar.getCPtr(deviation_var), deviation_var, total_sum);
1693  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1694  }
1695 
1701  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_0(swigCPtr, this, vars);
1702  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1703  }
1704 
1710  public Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation) {
1711  long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_1(swigCPtr, this, vars, stronger_propagation);
1712  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1713  }
1714 
1719  public Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value) {
1720  long cPtr = mainJNI.Solver_makeAllDifferentExcept(swigCPtr, this, vars, escape_value);
1721  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1722  }
1723 
1741  public Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted) {
1742  long cPtr = mainJNI.Solver_makeSortingConstraint(swigCPtr, this, vars, sorted);
1743  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1744  }
1745 
1750  public Constraint makeLexicalLess(IntVar[] left, IntVar[] right) {
1751  long cPtr = mainJNI.Solver_makeLexicalLess(swigCPtr, this, left, right);
1752  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1753  }
1754 
1760  long cPtr = mainJNI.Solver_makeLexicalLessOrEqual(swigCPtr, this, left, right);
1761  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1762  }
1763 
1771  long cPtr = mainJNI.Solver_makeInversePermutationConstraint(swigCPtr, this, left, right);
1772  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1773  }
1774 
1780  long cPtr = mainJNI.Solver_makeIndexOfFirstMaxValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1781  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1782  }
1783 
1789  long cPtr = mainJNI.Solver_makeIndexOfFirstMinValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1790  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1791  }
1792 
1799  public Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars) {
1800  long cPtr = mainJNI.Solver_makeNullIntersect(swigCPtr, this, first_vars, second_vars);
1801  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1802  }
1803 
1811  public Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value) {
1812  long cPtr = mainJNI.Solver_makeNullIntersectExcept(swigCPtr, this, first_vars, second_vars, escape_value);
1813  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1814  }
1815 
1827  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler) {
1828  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_0(swigCPtr, this, nexts, active, sink_handler);
1829  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1830  }
1831 
1843  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active) {
1844  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_1(swigCPtr, this, nexts, active);
1845  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1846  }
1847 
1848  public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths) {
1849  long cPtr = mainJNI.Solver_makeNoCycle__SWIG_2(swigCPtr, this, nexts, active, sink_handler, assume_paths);
1850  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1851  }
1852 
1856  public Constraint makeCircuit(IntVar[] nexts) {
1857  long cPtr = mainJNI.Solver_makeCircuit(swigCPtr, this, nexts);
1858  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1859  }
1860 
1866  long cPtr = mainJNI.Solver_makeSubCircuit(swigCPtr, this, nexts);
1867  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1868  }
1869 
1876  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1877  long cPtr = mainJNI.Solver_makePathCumul__SWIG_0(swigCPtr, this, nexts, active, cumuls, transits);
1878  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1879  }
1880 
1885  public Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1886  long cPtr = mainJNI.Solver_makeDelayedPathCumul(swigCPtr, this, nexts, active, cumuls, transits);
1887  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1888  }
1889 
1898  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator) {
1899  long cPtr = mainJNI.Solver_makePathCumul__SWIG_1(swigCPtr, this, nexts, active, cumuls, transit_evaluator);
1900  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1901  }
1902 
1911  public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator) {
1912  long cPtr = mainJNI.Solver_makePathCumul__SWIG_2(swigCPtr, this, nexts, active, cumuls, slacks, transit_evaluator);
1913  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1914  }
1915 
1921  public Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status) {
1922  long cPtr = mainJNI.Solver_makePathConnected(swigCPtr, this, nexts, sources, sinks, status);
1923  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1924  }
1925 
1931  public Constraint makeMapDomain(IntVar var, IntVar[] actives) {
1932  long cPtr = mainJNI.Solver_makeMapDomain(swigCPtr, this, IntVar.getCPtr(var), var, actives);
1933  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1934  }
1935 
1943  long cPtr = mainJNI.Solver_makeAllowedAssignment(swigCPtr, this, vars, IntTupleSet.getCPtr(tuples), tuples);
1944  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1945  }
1946 
1956  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states) {
1957  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_0(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1958  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1959  }
1960 
1970  public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states) {
1971  long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_1(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1972  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1973  }
1974 
1985  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1986  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1987  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1988  }
1989 
1990  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1991  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1992  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1993  }
1994 
1995  public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1996  long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1997  return (cPtr == 0) ? null : new Constraint(cPtr, false);
1998  }
1999 
2010  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
2011  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2012  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2013  }
2014 
2015  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
2016  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2017  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2018  }
2019 
2020  public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
2021  long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2022  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2023  }
2024 
2032  public Pack makePack(IntVar[] vars, int number_of_bins) {
2033  long cPtr = mainJNI.Solver_makePack(swigCPtr, this, vars, number_of_bins);
2034  return (cPtr == 0) ? null : new Pack(cPtr, false);
2035  }
2036 
2043  public IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name) {
2044  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_0(swigCPtr, this, start_min, start_max, duration, optional, name);
2045  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2046  }
2047 
2052  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name) {
2053  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_1(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, name);
2054  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2055  }
2056 
2061  public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name) {
2062  long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_2(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, IntVar.getCPtr(performed_variable), performed_variable, name);
2063  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2064  }
2065 
2069  public IntervalVar makeFixedInterval(long start, long duration, String name) {
2070  long cPtr = mainJNI.Solver_makeFixedInterval(swigCPtr, this, start, duration, name);
2071  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2072  }
2073 
2078  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) {
2079  long cPtr = mainJNI.Solver_makeIntervalVar(swigCPtr, this, start_min, start_max, duration_min, duration_max, end_min, end_max, optional, name);
2080  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2081  }
2082 
2088  long cPtr = mainJNI.Solver_makeMirrorInterval(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2089  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2090  }
2091 
2098  public IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
2099  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2100  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2101  }
2102 
2109  public IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
2110  long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2111  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2112  }
2113 
2120  public IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
2121  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2122  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2123  }
2124 
2131  public IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
2132  long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2133  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2134  }
2135 
2156  long cPtr = mainJNI.Solver_makeIntervalRelaxedMin(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2157  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2158  }
2159 
2180  long cPtr = mainJNI.Solver_makeIntervalRelaxedMax(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2181  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2182  }
2183 
2189  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t), t, r, d);
2190  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2191  }
2192 
2197  long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2);
2198  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2199  }
2200 
2208  long cPtr = mainJNI.Solver_makeIntervalVarRelationWithDelay(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2, delay);
2209  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2210  }
2211 
2218  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2, IntVar.getCPtr(alt), alt);
2219  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2220  }
2221 
2227  long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2);
2228  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2229  }
2230 
2236  long cPtr = mainJNI.Solver_makeDisjunctiveConstraint(swigCPtr, this, intervals, name);
2237  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2238  }
2239 
2246  long cPtr = mainJNI.Solver_makeStrictDisjunctiveConstraint(swigCPtr, this, intervals, name);
2247  return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2248  }
2249 
2261  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name) {
2262  long cPtr = mainJNI.Solver_makeCumulative__SWIG_0(swigCPtr, this, intervals, demands, capacity, name);
2263  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2264  }
2265 
2277  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name) {
2278  long cPtr = mainJNI.Solver_makeCumulative__SWIG_1(swigCPtr, this, intervals, demands, capacity, name);
2279  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2280  }
2281 
2293  public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name) {
2294  long cPtr = mainJNI.Solver_makeCumulative__SWIG_2(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2295  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2296  }
2297 
2309  public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name) {
2310  long cPtr = mainJNI.Solver_makeCumulative__SWIG_3(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2311  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2312  }
2313 
2323  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name) {
2324  long cPtr = mainJNI.Solver_makeCumulative__SWIG_4(swigCPtr, this, intervals, demands, capacity, name);
2325  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2326  }
2327 
2337  public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name) {
2338  long cPtr = mainJNI.Solver_makeCumulative__SWIG_5(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2339  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2340  }
2341 
2349  public Constraint makeCover(IntervalVar[] vars, IntervalVar target_var) {
2350  long cPtr = mainJNI.Solver_makeCover(swigCPtr, this, vars, IntervalVar.getCPtr(target_var), target_var);
2351  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2352  }
2353 
2358  long cPtr = mainJNI.Solver_makeEquality__SWIG_3(swigCPtr, this, IntervalVar.getCPtr(var1), var1, IntervalVar.getCPtr(var2), var2);
2359  return (cPtr == 0) ? null : new Constraint(cPtr, false);
2360  }
2361 
2366  long cPtr = mainJNI.Solver_makeAssignment__SWIG_0(swigCPtr, this);
2367  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2368  }
2369 
2374  long cPtr = mainJNI.Solver_makeAssignment__SWIG_1(swigCPtr, this, Assignment.getCPtr(a), a);
2375  return (cPtr == 0) ? null : new Assignment(cPtr, false);
2376  }
2377 
2382  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2383  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2384  }
2385 
2391  long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_1(swigCPtr, this);
2392  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2393  }
2394 
2399  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2400  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2401  }
2402 
2408  long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_1(swigCPtr, this);
2409  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2410  }
2411 
2418  public SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize) {
2419  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, maximize);
2420  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2421  }
2422 
2431  long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_1(swigCPtr, this, maximize);
2432  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2433  }
2434 
2440  public SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize) {
2441  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, solution_count, maximize);
2442  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2443  }
2444 
2445  public SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize) {
2446  long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_1(swigCPtr, this, solution_count, maximize);
2447  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2448  }
2449 
2454  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2455  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2456  }
2457 
2463  long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_1(swigCPtr, this);
2464  return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2465  }
2466 
2470  public OptimizeVar makeMinimize(IntVar v, long step) {
2471  long cPtr = mainJNI.Solver_makeMinimize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2472  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2473  }
2474 
2478  public OptimizeVar makeMaximize(IntVar v, long step) {
2479  long cPtr = mainJNI.Solver_makeMaximize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2480  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2481  }
2482 
2486  public OptimizeVar makeOptimize(boolean maximize, IntVar v, long step) {
2487  long cPtr = mainJNI.Solver_makeOptimize(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step);
2488  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2489  }
2490 
2495  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step) {
2496  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2497  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2498  }
2499 
2504  public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step) {
2505  long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2506  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2507  }
2508 
2512  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step) {
2513  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2514  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2515  }
2516 
2520  public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step) {
2521  long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2522  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2523  }
2524 
2528  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step) {
2529  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_0(swigCPtr, this, maximize, sub_objectives, weights, step);
2530  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2531  }
2532 
2536  public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step) {
2537  long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_1(swigCPtr, this, maximize, sub_objectives, weights, step);
2538  return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2539  }
2540 
2559  public SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor) {
2560  long cPtr = mainJNI.Solver_makeTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, vars, keep_tenure, forbid_tenure, tabu_factor);
2561  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2562  }
2563 
2568  public SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure) {
2569  long cPtr = mainJNI.Solver_makeGenericTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, tabu_vars, forbid_tenure);
2570  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2571  }
2572 
2576  public SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature) {
2577  long cPtr = mainJNI.Solver_makeSimulatedAnnealing(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, initial_temperature);
2578  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2579  }
2580 
2585  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor) {
2586  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_0(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, penalty_factor);
2587  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2588  }
2589 
2590  public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor) {
2591  long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_1(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, secondary_vars, penalty_factor);
2592  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2593  }
2594 
2600  public SearchMonitor makeLubyRestart(int scale_factor) {
2601  long cPtr = mainJNI.Solver_makeLubyRestart(swigCPtr, this, scale_factor);
2602  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2603  }
2604 
2609  public SearchMonitor makeConstantRestart(int frequency) {
2610  long cPtr = mainJNI.Solver_makeConstantRestart(swigCPtr, this, frequency);
2611  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2612  }
2613 
2617  public RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time) {
2618  long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time));
2619  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2620  }
2621 
2622  public RegularLimit makeTimeLimit(long time_in_ms) {
2623  long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_1(swigCPtr, this, time_in_ms);
2624  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2625  }
2626 
2632  long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2633  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2634  }
2635 
2641  long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2642  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2643  }
2644 
2650  long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2651  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2652  }
2653 
2658  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2659  long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check, cumulative);
2660  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2661  }
2662 
2667  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check) {
2668  long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check);
2669  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2670  }
2671 
2676  public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions) {
2677  long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions);
2678  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2679  }
2680 
2685  long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2686  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2687  }
2688 
2689  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2690  long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2691  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2692  }
2693 
2694  public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2695  long cPtr = mainJNI.Solver_makeLimit__SWIG_5(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2696  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2697  }
2698 
2699  public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2700  long cPtr = mainJNI.Solver_makeLimit__SWIG_6(swigCPtr, this, time, branches, failures, solutions);
2701  return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2702  }
2703 
2708  byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2709  if (buf == null || buf.length == 0) {
2710  return null;
2711  }
2712  try {
2714  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2715  throw new RuntimeException(
2716  "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2717  }
2718 }
2719 
2725  public SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2) {
2726  long cPtr = mainJNI.Solver_makeLimit__SWIG_7(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2727  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2728  }
2729 
2734  public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2735  long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2736  return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2737  }
2738 
2743  public SearchMonitor makeSearchLog(int branch_period) {
2744  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2745  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2746  }
2747 
2751  public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2752  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2753  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2754  }
2755 
2760  public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2761  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2762  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2763  }
2764 
2769  public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2770  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2771  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2772  }
2773 
2778  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2779  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2780  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2781  }
2782 
2787  public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2788  long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2789  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2790  }
2791 
2796  public SearchMonitor makeSearchTrace(String prefix) {
2797  long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2798  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2799  }
2800 
2804  public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2805  long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2806  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2807  }
2808 
2809  public SearchMonitor makeExitSearchCallback(Runnable callback) {
2810  long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2811  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2812  }
2813 
2814  public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2815  long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2816  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2817  }
2818 
2823  long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2824  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2825  }
2826 
2831  long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2832  return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2833  }
2834 
2839  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2840  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2841  }
2842 
2844  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2845  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2846  }
2847 
2849  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2850  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2851  }
2852 
2854  long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2855  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2856  }
2857 
2859  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);
2860  return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2861  }
2862 
2866  public Decision makeAssignVariableValue(IntVar var, long val) {
2867  long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2868  return (cPtr == 0) ? null : new Decision(cPtr, false);
2869  }
2870 
2872  long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2873  return (cPtr == 0) ? null : new Decision(cPtr, false);
2874  }
2875 
2877  long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2878  return (cPtr == 0) ? null : new Decision(cPtr, false);
2879  }
2880 
2881  public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2882  long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2883  return (cPtr == 0) ? null : new Decision(cPtr, false);
2884  }
2885 
2887  long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2888  return (cPtr == 0) ? null : new Decision(cPtr, false);
2889  }
2890 
2892  long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2893  return (cPtr == 0) ? null : new Decision(cPtr, false);
2894  }
2895 
2896  public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2897  long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2898  return (cPtr == 0) ? null : new Decision(cPtr, false);
2899  }
2900 
2902  long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
2903  return (cPtr == 0) ? null : new Decision(cPtr, false);
2904  }
2905 
2906  public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
2907  long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
2908  return (cPtr == 0) ? null : new Decision(cPtr, false);
2909  }
2910 
2922  long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2923  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2924  }
2925 
2927  long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2928  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2929  }
2930 
2932  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);
2933  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2934  }
2935 
2937  long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
2938  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2939  }
2940 
2959  long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2960  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2961  }
2962 
2964  long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2965  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2966  }
2967 
2969  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);
2970  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2971  }
2972 
2974  long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
2975  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2976  }
2977 
2982  public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
2983  long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
2984  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2985  }
2986 
2987  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
2988  long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
2989  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2990  }
2991 
2992  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
2993  long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
2994  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2995  }
2996 
3001  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
3002  long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
3003  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3004  }
3005 
3006  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
3007  long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
3008  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3009  }
3010 
3011  public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
3012  long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
3013  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3014  }
3015 
3016  public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
3017  long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
3018  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3019  }
3020 
3022  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
3023  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3024  }
3025 
3027  long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
3028  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3029  }
3030 
3034  public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
3035  long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
3036  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3037  }
3038 
3039  public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
3040  long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
3041  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3042  }
3043 
3044  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
3045  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);
3046  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3047  }
3048 
3049  public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
3050  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);
3051  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3052  }
3053 
3061  public Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker) {
3062  long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
3063  return (cPtr == 0) ? null : new Decision(cPtr, false);
3064  }
3065 
3073  public Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker) {
3074  long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
3075  return (cPtr == 0) ? null : new Decision(cPtr, false);
3076  }
3077 
3082  public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
3083  long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
3084  return (cPtr == 0) ? null : new Decision(cPtr, false);
3085  }
3086 
3091  public Decision makeRankLastInterval(SequenceVar sequence, int index) {
3092  long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
3093  return (cPtr == 0) ? null : new Decision(cPtr, false);
3094  }
3095 
3103  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
3104  long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
3105  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3106  }
3107 
3117  public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
3118  long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
3119  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3120  }
3121 
3125  public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
3126  long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
3127  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3128  }
3129 
3130  public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
3131  long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
3132  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3133  }
3134 
3140  long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
3141  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3142  }
3143 
3149  long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
3150  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3151  }
3152 
3160  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
3161  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3162  }
3163 
3165  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
3166  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3167  }
3168 
3170  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
3171  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3172  }
3173 
3175  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);
3176  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3177  }
3178 
3180  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);
3181  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3182  }
3183 
3185  long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
3186  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3187  }
3188 
3198  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
3199  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
3200  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3201  }
3202 
3203  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
3204  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
3205  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3206  }
3207 
3208  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
3209  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);
3210  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3211  }
3212 
3213  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
3214  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);
3215  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3216  }
3217 
3218  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
3219  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);
3220  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3221  }
3222 
3223  public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
3224  long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
3225  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3226  }
3227 
3233  long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
3234  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3235  }
3236 
3242  long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
3243  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3244  }
3245 
3249  public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
3250  long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
3251  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3252  }
3253 
3254  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
3255  long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
3256  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3257  }
3258 
3259  public LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op) {
3260  long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
3261  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3262  }
3263 
3264  public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
3265  long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
3266  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3267  }
3268 
3278  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
3279  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
3280  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3281  }
3282 
3283  public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
3284  long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
3285  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3286  }
3287 
3296  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
3297  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3298  }
3299 
3308  public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
3309  long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
3310  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3311  }
3312 
3345  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
3346  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3347  }
3348 
3350  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
3351  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3352  }
3353 
3355  long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
3356  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3357  }
3358 
3364  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
3365  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3366  }
3367 
3374  long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
3375  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3376  }
3377 
3386  long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
3387  return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3388  }
3389 
3416  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3417  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3418  }
3419 
3421  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3422  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3423  }
3424 
3428  public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
3429  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);
3430  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3431  }
3432 
3434  long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3435  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3436  }
3437 
3442  long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
3443  return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
3444  }
3445 
3450  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);
3451  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3452  }
3453 
3455  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);
3456  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3457  }
3458 
3460  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);
3461  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3462  }
3463 
3465  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);
3466  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3467  }
3468 
3470  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);
3471  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3472  }
3473 
3475  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);
3476  return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3477  }
3478 
3483  long cPtr = mainJNI.Solver_MakeAcceptFilter(swigCPtr, this);
3484  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3485  }
3486 
3488  long cPtr = mainJNI.Solver_MakeRejectFilter(swigCPtr, this);
3489  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3490  }
3491 
3493  long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
3494  return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3495  }
3496 
3497  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum) {
3498  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, filter_enum);
3499  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3500  }
3501 
3502  public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum) {
3503  long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, secondary_vars, values, filter_enum);
3504  return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3505  }
3506 
3508  long cPtr = mainJNI.Solver_MakeLocalSearchFilterManager(swigCPtr, this, filters);
3509  return (cPtr == 0) ? null : new LocalSearchFilterManager(cPtr, false);
3510  }
3511 
3516  public void topPeriodicCheck() {
3517  mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
3518  }
3519 
3525  public int topProgressPercent() {
3526  return mainJNI.Solver_topProgressPercent(swigCPtr, this);
3527  }
3528 
3534  public void pushState() {
3535  mainJNI.Solver_pushState(swigCPtr, this);
3536  }
3537 
3538  public void popState() {
3539  mainJNI.Solver_popState(swigCPtr, this);
3540  }
3541 
3546  public int searchDepth() {
3547  return mainJNI.Solver_searchDepth(swigCPtr, this);
3548  }
3549 
3554  public int searchLeftDepth() {
3555  return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
3556  }
3557 
3562  public int solveDepth() {
3563  return mainJNI.Solver_solveDepth(swigCPtr, this);
3564  }
3565 
3569  public long rand64(long size) {
3570  return mainJNI.Solver_rand64(swigCPtr, this, size);
3571  }
3572 
3576  public int rand32(int size) {
3577  return mainJNI.Solver_rand32(swigCPtr, this, size);
3578  }
3579 
3583  public void reSeed(int seed) {
3584  mainJNI.Solver_reSeed(swigCPtr, this, seed);
3585  }
3586 
3592  public void exportProfilingOverview(String filename) {
3593  mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3594  }
3595 
3599  public String localSearchProfile() {
3600  return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3601  }
3602 
3608  public boolean currentlyInSolve() {
3609  return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3610  }
3611 
3616  public int constraints() {
3617  return mainJNI.Solver_constraints(swigCPtr, this);
3618  }
3619 
3623  public void accept(ModelVisitor visitor) {
3624  mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3625  }
3626 
3628  long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3629  return (cPtr == 0) ? null : new Decision(cPtr, false);
3630  }
3631 
3635  public void clear_fail_intercept() {
3636  mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3637  }
3638 
3643  public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3644  mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3645  }
3646 
3650  public boolean UseFastLocalSearch() {
3651  return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3652  }
3653 
3657  public boolean hasName(PropagationBaseObject object) {
3658  return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3659  }
3660 
3664  public Demon registerDemon(Demon demon) {
3665  long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3666  return (cPtr == 0) ? null : new Demon(cPtr, false);
3667  }
3668 
3673  long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3674  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3675  }
3676 
3681  long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3682  return (cPtr == 0) ? null : new IntVar(cPtr, false);
3683  }
3684 
3690  long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3691  return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3692  }
3693 
3697  public ModelCache cache() {
3698  long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3699  return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3700  }
3701 
3705  public boolean instrumentsDemons() {
3706  return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3707  }
3708 
3712  public boolean isProfilingEnabled() {
3713  return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3714  }
3715 
3720  return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3721  }
3722 
3726  public boolean instrumentsVariables() {
3727  return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3728  }
3729 
3733  public boolean nameAllVariables() {
3734  return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3735  }
3736 
3740  public String model_name() {
3741  return mainJNI.Solver_model_name(swigCPtr, this);
3742  }
3743 
3748  long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3749  return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3750  }
3751 
3757  mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
3758  }
3759 
3764  long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
3765  return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
3766  }
3767 
3773  mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
3774  }
3775 
3780  long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
3781  return (cPtr == 0) ? null : new Assignment(cPtr, false);
3782  }
3783 
3787  public void ClearLocalSearchState() {
3788  mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
3789  }
3790 
3797  public void setTmp_vector_(long[] value) {
3798  mainJNI.Solver_tmp_vector__set(swigCPtr, this, value);
3799  }
3800 
3807  public long[] getTmp_vector_() {
3808  return mainJNI.Solver_tmp_vector__get(swigCPtr, this);
3809 }
3810 
3816  long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
3817  return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3818  }
3819 
3823  public void finishCurrentSearch() {
3824  mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
3825  }
3826 
3827  public void restartCurrentSearch() {
3828  mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
3829  }
3830 
3835  public void shouldFail() {
3836  mainJNI.Solver_shouldFail(swigCPtr, this);
3837  }
3838 
3839  public void checkFail() {
3840  mainJNI.Solver_checkFail(swigCPtr, this);
3841  }
3842 
3846  public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
3847  // IntVarStrategy
3856  public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
3860  public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
3866  public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
3870  public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
3879  public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
3888  public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
3897  public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
3906  public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
3913  public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
3920  public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
3926  public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
3932  public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
3937  public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
3942  public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
3943 
3944  // IntValueStrategy
3953  public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
3957  public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
3961  public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
3965  public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
3969  public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
3975  public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
3980  public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
3985  public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
3986 
3987  // EvaluatorStrategy
4007  public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
4014  public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
4015 
4016  // SequenceStrategy
4021  public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
4022  public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
4023  public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
4024  public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
4025 
4026  // IntervalStrategy
4035  public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
4039  public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
4044  public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
4049  public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
4050 
4051  // LocalSearchOperators
4068  public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
4085  public final static int OROPT = mainJNI.Solver_OROPT_get();
4089  public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
4099  public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
4111  public final static int CROSS = mainJNI.Solver_CROSS_get();
4120  public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
4128  public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
4137  public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
4145  public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
4158  public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
4168  public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
4173  public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
4179  public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
4190  public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
4196  public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
4206  public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
4207 
4208  // EvaluatorLocalSearchOperators
4220  public final static int LK = mainJNI.Solver_LK_get();
4229  public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
4238  public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
4239 
4240  // LocalSearchFilterBound
4251  public final static int GE = mainJNI.Solver_GE_get();
4255  public final static int LE = mainJNI.Solver_LE_get();
4260  public final static int EQ = mainJNI.Solver_EQ_get();
4261 
4262  // DemonPriority
4273  public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
4277  public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
4281  public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
4282 
4283  // BinaryIntervalRelation
4292  public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
4296  public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
4300  public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
4304  public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
4308  public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
4312  public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
4316  public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
4320  public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
4326  public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
4327 
4328  // UnaryIntervalRelation
4337  public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
4341  public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
4345  public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
4349  public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
4353  public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
4357  public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
4363  public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
4369  public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
4370 
4371  // DecisionModification
4384  public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
4390  public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
4396  public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
4401  public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
4406  public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
4407 
4408  // MarkerType
4414  public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
4415  public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
4416  public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
4417  public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
4418 
4419  // SolverState
4427  public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
4431  public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
4435  public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
4439  public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
4443  public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
4447  public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
4448 
4449  // OptimizationDirection
4454  public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
4455  public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
4456  public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
4457 
4458 }
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2407
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:441
RegularLimit makeBranchesLimit(long branches)
Creates a search limit that constrains the number of branches explored in the search tree.
Definition: Solver.java:2631
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1700
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2896
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:953
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:219
static final int AVOID_DATE
STARTS_AFTER or ENDS_BEFORE, i.e.
Definition: Solver.java:4369
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:3139
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3459
IntExpr makeSum(IntVar[] vars)
sum of all vars.
Definition: Solver.java:721
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 source...
Definition: Solver.java:1921
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2881
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3599
IntExpr makeDifference(long value, IntExpr expr)
value - expr
Definition: Solver.java:753
Constraint makeIndexOfFirstMinValueConstraint(IntVar index, IntVar[] vars)
Creates a constraint that binds the index variable to the index of the first variable with the minim...
Definition: Solver.java:1788
A constraint is the main modeling object.
Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits)
Delayed version of the same constraint: propagation on the nexts variables is delayed until all cons...
Definition: Solver.java:1885
static final int CHOOSE_MIN_SLACK_RANK_FORWARD
Definition: Solver.java:4023
static final int ENDS_AT
t ends at d, i.e.
Definition: Solver.java:4341
void clear_fail_intercept()
Internal.
Definition: Solver.java:3635
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:2568
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1534
IntVar[] makeIntVarArray(int count, long min, long max, String name)
Definition: Solver.java:122
boolean solveAndCommit(DecisionBuilder db)
Definition: Solver.java:472
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1402
boolean solve(DecisionBuilder db)
Definition: Solver.java:390
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1397
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:476
static com.google.ortools.constraintsolver.ConstraintSolverParameters parseFrom(java.nio.ByteBuffer data)
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2968
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1266
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3733
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:3815
DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str)
Returns a decision builder which assigns values to variables which minimize the values returned by t...
Definition: Solver.java:3103
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:3026
This class encapsulates an objective.
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3623
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 t...
Definition: Solver.java:3117
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3672
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1372
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:3241
static final int INTERVAL_SET_TIMES_BACKWARD
Selects the variable with the highest ending time of all variables, and fixes the ending time to thi...
Definition: Solver.java:4049
void popState()
Definition: Solver.java:3538
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3259
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1710
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1990
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3474
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3583
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1138
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2512
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:2052
Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted)
Creates a constraint binding the arrays of variables "vars" and "sorted_vars": sorted_vars[0] must b...
Definition: Solver.java:1741
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:1106
Solver(String name)
Solver API.
Definition: Solver.java:255
Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars)
Creates a constraint that states that all variables in the first vector are different from all varia...
Definition: Solver.java:1799
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:4296
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2866
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:657
void newSearch(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:429
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2931
static final int REVERSIBLE_ACTION
Definition: Solver.java:4417
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:259
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 ...
Definition: Solver.java:2277
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:997
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2600
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to c...
Definition: Solver.java:3516
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3705
static long memoryUsage()
Current memory usage in bytes.
Definition: Solver.java:528
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1130
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which will create a search tree where each decision builder is called fro...
Definition: Solver.java:2958
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:785
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:398
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_s...
Definition: Solver.java:1691
Represents a function that accepts two int-valued arguments and produces a long-valued result.
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:4179
IntExpr makeModulo(IntExpr x, long mod)
General piecewise-linear function expression, built from f(x) where f is piecewise-linear.
Definition: Solver.java:981
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:2658
Filter manager: when a move is made, filters are executed to decide whether the solution is feasible...
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:2667
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3616
void fail()
Abandon the current branch in the search tree.
Definition: Solver.java:514
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2814
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2, IntVar alt)
This constraint implements a temporal disjunction between two interval vars t1 and t2.
Definition: Solver.java:2217
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:2787
void setMaintainer(Constraint value)
Definition: Solver.java:241
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNei...
Definition: Solver.java:3363
Constraint makeCover(IntervalVar[] vars, IntervalVar target_var)
This constraint states that the target_var is the convex hull of the intervals.
Definition: Solver.java:2349
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:1560
Implements a complete cache for model elements: expressions and constraints.
Definition: ModelCache.java:17
void setExpression(IntExpr value)
Definition: Solver.java:232
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:989
static final int CROSS_DATE
STARTS_BEFORE and ENDS_AFTER at the same time, i.e.
Definition: Solver.java:4363
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1412
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:881
IntExpr makeScalProd(IntVar[] vars, int[] coefs)
scalar product
Definition: Solver.java:737
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2462
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2707
static final int CHOOSE_STATIC_GLOBAL_BEST
This enum is used by Solver::MakePhase to specify how to select variables and values during the sear...
Definition: Solver.java:4007
Model visitor.
The class IntExpr is the base of all integer expressions in constraint programming.
Definition: IntExpr.java:20
static final int CHOOSE_RANDOM_RANK_FORWARD
Definition: Solver.java:4024
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Definition: Solver.java:2689
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:4039
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3657
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:2676
void restartSearch()
Definition: Solver.java:449
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:3016
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1442
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:3562
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1576
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assign...
Definition: Solver.java:2430
Constraint makeSubCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path for those that do not loop upon the...
Definition: Solver.java:1865
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 cal...
Definition: Solver.java:339
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:1512
static final int ASSIGN_CENTER_VALUE
Selects the first possible value which is the closest to the center of the domain of the selected va...
Definition: Solver.java:3975
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:2061
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:2778
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1407
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:3961
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2504
void setTmp_vector_(long[] value)
Unsafe temporary vector.
Definition: Solver.java:3797
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Definition: Solver.java:2694
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:4173
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 inte...
Definition: Solver.java:2131
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:809
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:2196
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:3860
IntExpr makeElement(long[] values, IntVar index)
values[index]
Definition: Solver.java:825
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2365
IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index)
Function based element.
Definition: Solver.java:856
static final int OUTSIDE_SEARCH
This enum represents the state of the solver w.r.t.
Definition: Solver.java:4427
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:3354
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:3006
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3985
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:1956
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1162
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1274
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:3148
Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:3061
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1417
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1631
static final int MAKEINACTIVE
Operator which makes path nodes inactive.
Definition: Solver.java:4128
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2838
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1848
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:2010
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:817
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:713
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:4238
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:1074
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:3823
long[] getTmp_vector_()
Unsafe temporary vector.
Definition: Solver.java:3807
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:3039
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2796
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 monitor...
Definition: Solver.java:3198
static final int MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:4120
Solver(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:77
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:4111
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:4320
IntegerCastInfo()
Definition: Solver.java:215
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2871
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1432
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:4357
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:2987
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2858
static final int ASSIGN_MAX_VALUE
Selects the max value of the selected variable.
Definition: Solver.java:3965
FailException(String message)
Definition: Solver.java:109
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:697
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:673
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:3441
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:3428
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1392
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:1670
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branche...
Definition: Solver.java:2743
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:2069
The class IntVar is a subset of IntExpr.
IntVar[] makeBoolVarArray(int count)
Definition: Solver.java:131
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:4196
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 co...
Definition: Solver.java:2337
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:961
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:3349
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 in...
Definition: Solver.java:2109
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3592
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1154
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1382
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2891
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] + ...
Definition: Solver.java:1911
IntegerCastInfo(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:191
String model_name()
Returns the name of the model.
Definition: Solver.java:3740
Decision balancing_decision()
Definition: Solver.java:3627
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3719
Represents a predicate (boolean-valued function) uppon three.
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1346
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:3184
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:3203
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:4190
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:2207
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1581
A sequence variable is a variable whose domain is a set of possible orderings of the interval variab...
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1298
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:614
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] + ...
Definition: Solver.java:1898
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:4443
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2848
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional)
Definition: Solver.java:148
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:3218
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3747
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum)
Definition: Solver.java:3497
Constraint makeIndexOfFirstMaxValueConstraint(IntVar index, IntVar[] vars)
Creates a constraint that binds the index variable to the index of the first variable with the maxim...
Definition: Solver.java:1779
long fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:607
Decision makeFailDecision()
Definition: Solver.java:2901
A DecisionBuilder is responsible for creating the search tree.
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum)
Definition: Solver.java:3502
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2245
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:433
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:913
void endSearch()
Definition: Solver.java:453
static final int INT_VAR_DEFAULT
This enum describes the strategy used to select the next branching variable at each node during the ...
Definition: Solver.java:3856
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:905
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:4035
boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors)
SolveAndCommit using a decision builder and up to three search monitors, usually one for the objecti...
Definition: Solver.java:468
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:3787
This class is used to manage a pool of solutions.
This exceptions signal that a failure has been raised in the C++ world.
Definition: Solver.java:104
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:3130
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:2179
LocalSearchFilter MakeAcceptFilter()
Local Search Filters.
Definition: Solver.java:3482
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1493
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:2015
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:585
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1422
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:1568
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional, String name)
Definition: Solver.java:164
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3569
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:1066
void addConstraint(Constraint c)
Adds the constraint 'c' to the model.
Definition: Solver.java:330
Constraint makeGreaterOrEqual(IntExpr expr, int value)
expr >= value
Definition: Solver.java:1242
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sea...
Definition: Solver.java:2640
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:3049
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:889
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2536
static final int CHOOSE_MIN_SIZE_LOWEST_MIN
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of po...
Definition: Solver.java:3879
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:437
static final int SEQUENCE_SIMPLE
Definition: Solver.java:4022
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 co...
Definition: Solver.java:2323
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:2188
A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in ...
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:3308
IntVar[] makeIntVarArray(int count, long min, long max)
Definition: Solver.java:114
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:641
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:1005
static final int INTERVAL_SET_TIMES_FORWARD
Selects the variable with the lowest starting time of all variables, and fixes its starting time to ...
Definition: Solver.java:4044
LocalSearchFilter MakeRejectFilter()
Definition: Solver.java:3487
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2853
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2528
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:3082
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3689
Constraint getMaintainer()
Definition: Solver.java:245
static final int CHOOSE_MIN_SIZE_HIGHEST_MAX
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of po...
Definition: Solver.java:3906
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:2992
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2684
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:1090
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1258
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1547
LocalSearchFilter makeVariableDomainFilter()
Definition: Solver.java:3492
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:3846
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1377
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:3295
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:3021
DecisionBuilder makePhase(IntVar v0, int var_str, int val_str)
Shortcuts for small arrays.
Definition: Solver.java:3034
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:872
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:1026
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:4316
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:3870
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1330
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:543
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:4312
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:2585
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:689
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:4021
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:4439
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2478
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2495
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:2043
A Demon is the base element of a propagation queue.
Definition: Demon.java:22
Definition: Assignment.java:9
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:1970
static final int ENDS_AFTER_END
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between the tw...
Definition: Solver.java:4292
boolean checkAssignment(Assignment solution)
Checks whether the given assignment satisfies all relevant constraints.
Definition: Solver.java:491
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1218
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:4260
This struct holds all parameters for the default search.
Usual limit based on wall_time, number of explored branches and number of failures in the search tre...
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1250
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:945
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2886
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:937
static final int CHOOSE_MIN_SIZE_HIGHEST_MIN
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of po...
Definition: Solver.java:3888
void set_optimization_direction(int direction)
Definition: Solver.java:618
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:3415
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2804
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:4277
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:4349
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:4137
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:3913
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:3232
IntervalVar makeMirrorInterval(IntervalVar interval_var)
Creates an interval var that is the mirror image of the given one, that is, the interval var obtaine...
Definition: Solver.java:2087
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:2078
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:3125
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2734
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:3213
This class represent a reversible FIFO structure.
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:1042
boolean nextSolution()
Definition: Solver.java:445
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:2921
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1194
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1501
SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assign...
Definition: Solver.java:2418
static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters()
Create a ConstraintSolverParameters proto with all the default values.
Definition: Solver.java:282
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:3164
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2760
An Assignment is a variable -> domains mapping, used to report solutions to the user.
Definition: Assignment.java:15
Constraint makeLessOrEqual(IntExpr expr, long value)
expr <= value
Definition: Solver.java:1178
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:2906
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:4068
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 interva...
Definition: Solver.java:2309
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:4168
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:1122
static final int CHOOSE_PATH
Selects the next unbound variable on a path, the path being defined by the variables: var[i] corresp...
Definition: Solver.java:3942
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2576
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:3449
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:550
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1520
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:3926
static final int STARTS_AT
t starts at d, i.e.
Definition: Solver.java:4353
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver...
Definition: Solver.java:3835
Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:3073
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:929
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:4255
LocalSearchFilterManager MakeLocalSearchFilterManager(LocalSearchFilter[] filters)
Definition: Solver.java:3507
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:633
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:3011
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3697
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3454
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNei...
Definition: Solver.java:3373
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3264
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:3763
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 ...
Definition: Solver.java:2098
Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1719
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:2769
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:4300
NOLINT The PropagationBaseObject is a subclass of BaseObject that is also friend to the Solver clas...
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1623
static final int SIMPLE_MARKER
Definition: Solver.java:4415
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:421
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2520
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:745
int searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:3554
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1362
static final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:4401
DecisionBuilder makeLocalSearchPhase(SequenceVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3433
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:1114
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:761
Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1660
IntExpr getExpression()
Definition: Solver.java:236
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:3772
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:3980
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2235
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:571
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3469
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2453
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:2725
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:4431
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 be...
Definition: Solver.java:3001
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1591
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Definition: Solver.java:2699
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:2973
A Decision represents a choice point in the search tree.
Definition: Decision.java:15
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:4145
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:3779
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1552
static final int KEEP_LEFT
Right branches are ignored.
Definition: Solver.java:4390
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:1082
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:480
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3420
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1322
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] + ...
Definition: Solver.java:1876
Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1650
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:4396
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1186
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:1013
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2609
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:1466
Demon makeConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of...
Definition: Solver.java:1475
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2843
This class is the root class of all solution collectors.
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:3464
IntVar getVariable()
Definition: Solver.java:227
IntVar[] makeBoolVarArray(int count, String name)
Definition: Solver.java:139
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:1098
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:1680
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1539
A search monitor is a simple set of callbacks to monitor all search events.
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler)
Prevent cycles.
Definition: Solver.java:1827
Constraint makeAllowedAssignment(IntVar[] vars, IntTupleSet tuples)
This method creates a constraint where the graph of the relation between the variables is given in e...
Definition: Solver.java:1942
static com.google.ortools.constraintsolver.RegularLimitParameters parseFrom(java.nio.ByteBuffer data)
IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose end is synchronized with the start of another in...
Definition: Solver.java:2120
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:4089
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 varia...
Definition: Solver.java:1811
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2830
static final int NOT_SET
Optimization directions.
Definition: Solver.java:4454
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2876
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1607
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch...
Definition: Solver.java:3608
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:3223
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:3179
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:4435
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:3278
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:1640
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2926
LocalSearchOperator makeOperator(IntVar[] vars, int op)
Local Search Operators.
Definition: Solver.java:3249
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3643
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:793
String toString()
misc debug string.
Definition: Solver.java:521
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2445
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:4206
int state()
State of the solver.
Definition: Solver.java:507
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1437
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:4229
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:2020
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:4384
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:1058
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1338
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:4304
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3650
Represents an operation upon three.
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of...
Definition: Solver.java:1485
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:484
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:4085
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:921
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 ...
Definition: Solver.java:2293
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1234
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2357
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1202
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:4251
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 ...
Definition: Solver.java:2261
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:3953
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:843
FailException()
Definition: Solver.java:105
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:402
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:4308
com.google.ortools.constraintsolver.ConstraintSolverParameters parameters()
Stored Parameters.
Definition: Solver.java:266
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1387
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2649
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1226
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:2155
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:3044
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:3957
Cast constraints are special channeling constraints designed to keep a variable in sync with an expr...
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2470
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1427
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1290
static final int CHOICE_POINT
Definition: Solver.java:4416
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2486
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:3283
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2963
static final int CHOOSE_MAX_REGRET_ON_MIN
Among unbound variables, select the variable with the largest gap between the first and the second v...
Definition: Solver.java:3937
Local Search Filters are used for fast neighbor pruning.
RegularLimit makeTimeLimit(long time_in_ms)
Definition: Solver.java:2622
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:3174
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:3344
Constraint makeInversePermutationConstraint(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that 'left' and 'right' both represent permutations of [0....
Definition: Solver.java:1770
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:705
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1856
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:4326
static final int LK
This enum is used in Solver::MakeOperator associated with an evaluator to specify the neighborhood t...
Definition: Solver.java:4220
LocalSearchOperator makeNeighborhoodLimit(LocalSearchOperator op, long limit)
Creates a local search operator that wraps another local search operator and limits the number of ne...
Definition: Solver.java:3385
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:2559
void checkFail()
Definition: Solver.java:3839
Definition: Pack.java:18
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:2936
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1586
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2390
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:3208
IntVar makeIntVar(long min, long max)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:649
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1210
void restartCurrentSearch()
Definition: Solver.java:3827
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1367
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2822
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:4345
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:4447
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:2226
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1995
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:536
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3576
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:1018
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states...
Definition: Solver.java:4414
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:3866
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:4281
long neighbors()
The number of neighbors created.
Definition: Solver.java:578
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:394
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:2982
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:557
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3664
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:833
static final int MINIMIZATION
Definition: Solver.java:4456
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:3920
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1447
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:777
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1314
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1170
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2809
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1599
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:3169
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3680
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:406
static final int DELAYED_PRIORITY
This enum represents the three possible priorities for a demon in the Solver queue.
Definition: Solver.java:4273
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2440
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:2032
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1615
boolean checkConstraint(Constraint ct)
Checks whether adding this constraint will lead to an immediate failure.
Definition: Solver.java:500
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:801
Interval variables are often used in scheduling.
Constraint makeMapDomain(IntVar var, IntVar[] actives)
This constraint maps the domain of 'var' onto the array of variables 'actives'.
Definition: Solver.java:1931
long stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:600
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var...
Definition: Solver.java:187
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:3534
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1306
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:970
void setVariable(IntVar value)
Definition: Solver.java:223
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:3159
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:1034
void newSearch(DecisionBuilder db)
Definition: Solver.java:425
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:4158
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:3969
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an int...
Definition: Solver.java:4337
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:3546
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1455
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:3091
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1525
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1843
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:4014
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:4099
static final int CHOOSE_MIN_SIZE_LOWEST_MAX
Among unbound variables, select the variable with the smallest size, i.e., the smallest number of po...
Definition: Solver.java:3897
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:3932
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2373
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:897
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than right.
Definition: Solver.java:1750
Constraint makeLexicalLessOrEqual(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than or equal to right.
Definition: Solver.java:1759
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1282
RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time)
Creates a search limit that constrains the running time.
Definition: Solver.java:2617
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:3756
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2381
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1146
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3726
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:864
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:592
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:3254
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2398
Solver Class A solver represents the main computation engine.
Definition: Solver.java:73
IntVar makeIntVar(long min, long max, String name)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:625
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2590
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:769
Base class of all search limits.
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2751
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:681
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-l...
Definition: Solver.java:3525
boolean solve(DecisionBuilder db, SearchMonitor[] monitors)
Solves the problem using the given DecisionBuilder and returns true if a solution was found and acce...
Definition: Solver.java:386
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:4406
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:729
boolean isProfilingEnabled()
Returns whether we are profiling the solver.
Definition: Solver.java:3712
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:665
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1354
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:564
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:1050
static final int MAXIMIZATION
Definition: Solver.java:4455
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:1985