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
9package com.google.ortools.constraintsolver;
10
11import com.google.ortools.constraintsolver.ConstraintSolverParameters;
12import com.google.ortools.constraintsolver.RegularLimitParameters;
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
16import 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
19import java.util.function.BooleanSupplier;
20
21// Used to wrap IndexEvaluator1 (std::function<int64_t(int64_t)>)
22// see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongUnaryOperator.html
23import java.util.function.LongUnaryOperator;
24// Used to wrap IndexEvaluator2 (std::function<int64_t(int64_t, int64_t)>)
25// see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongBinaryOperator.html
26import java.util.function.LongBinaryOperator;
27// Used to wrap IndexEvaluator3 (std::function<int64_t(int64_t, int64_t, int64_t)>)
28// note: Java does not provide TernaryOperator so we provide it.
29import com.google.ortools.constraintsolver.LongTernaryOperator;
30// Used to wrap std::function<int64_t(int, int)>
31// note: Java does not provide it, so we provide it.
32import com.google.ortools.constraintsolver.IntIntToLongFunction;
33
34// Used to wrap IndexFilter1 (std::function<bool(int64_t)>)
35// see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongPredicate.html
36import java.util.function.LongPredicate;
37
38// Used to wrap std::function<bool(int64_t, int64_t, int64_t)>
39// note: Java does not provide TernaryPredicate so we provide it
40import com.google.ortools.constraintsolver.LongTernaryPredicate;
41
42// Used to wrap std::function<void(Solver*)>
43// see https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html
44import java.util.function.Consumer;
45
46// Used to wrap ObjectiveWatcher (std::function<void(int64_t)>)
47// see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongConsumer.html
48import 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
52import java.lang.Runnable;
53
54// Used to keep alive java references to objects passed to the C++ layer.
55import java.util.HashSet;
56
76public class Solver {
77 private transient long swigCPtr;
78 protected transient boolean swigCMemOwn;
79
80 protected Solver(long cPtr, boolean cMemoryOwn) {
81 swigCMemOwn = cMemoryOwn;
82 swigCPtr = cPtr;
83 }
84
85 protected static long getCPtr(Solver obj) {
86 return (obj == null) ? 0 : obj.swigCPtr;
87 }
88
89 @SuppressWarnings("deprecation")
90 protected void finalize() {
91 delete();
92 }
93
94 public synchronized void delete() {
95 if (swigCPtr != 0) {
96 if (swigCMemOwn) {
97 swigCMemOwn = false;
98 mainJNI.delete_Solver(swigCPtr);
99 }
100 swigCPtr = 0;
101 }
102 }
103
107 public static class FailException extends Exception {
108 public FailException() {
109 super();
110 }
111
112 public FailException(String message) {
113 super(message);
114 }
115 }
116
117 public IntVar[] makeIntVarArray(int count, long min, long max) {
118 IntVar[] array = new IntVar[count];
119 for (int i = 0; i < count; ++i) {
120 array[i] = makeIntVar(min, max);
121 }
122 return array;
123 }
124
125 public IntVar[] makeIntVarArray(int count, long min, long max, String name) {
126 IntVar[] array = new IntVar[count];
127 for (int i = 0; i < count; ++i) {
128 String var_name = name + i;
129 array[i] = makeIntVar(min, max, var_name);
130 }
131 return array;
132 }
133
134 public IntVar[] makeBoolVarArray(int count) {
135 IntVar[] array = new IntVar[count];
136 for (int i = 0; i < count; ++i) {
137 array[i] = makeBoolVar();
138 }
139 return array;
140 }
141
142 public IntVar[] makeBoolVarArray(int count, String name) {
143 IntVar[] array = new IntVar[count];
144 for (int i = 0; i < count; ++i) {
145 String var_name = name + i;
146 array[i] = makeBoolVar(var_name);
147 }
148 return array;
149 }
150
152 long start_min,
153 long start_max,
154 long duration,
155 boolean optional) {
156 IntervalVar[] array = new IntervalVar[count];
157 for (int i = 0; i < count; ++i) {
158 array[i] = makeFixedDurationIntervalVar(start_min,
159 start_max,
160 duration,
161 optional,
162 "");
163 }
164 return array;
165 }
166
168 long start_min,
169 long start_max,
170 long duration,
171 boolean optional,
172 String name) {
173 IntervalVar[] array = new IntervalVar[count];
174 for (int i = 0; i < count; ++i) {
175 array[i] = makeFixedDurationIntervalVar(start_min,
176 start_max,
177 duration,
178 optional,
179 name + i);
180 }
181 return array;
182 }
183
184 // Ensure that the GC doesn't collect any DecisionBuilder set from Java
185 // as the underlying C++ class stores a shallow copy
186 private HashSet<DecisionBuilder> keepAliveDecisionBuilders;
188 if (keepAliveDecisionBuilders == null) {
189 keepAliveDecisionBuilders = new HashSet<DecisionBuilder>();
190 }
191 keepAliveDecisionBuilders.add(db);
192 }
194 for (DecisionBuilder db : dbs) {
196 }
197 }
198
205 static public class IntegerCastInfo {
206 private transient long swigCPtr;
207 protected transient boolean swigCMemOwn;
208
209 protected IntegerCastInfo(long cPtr, boolean cMemoryOwn) {
210 swigCMemOwn = cMemoryOwn;
211 swigCPtr = cPtr;
212 }
213
214 protected static long getCPtr(IntegerCastInfo obj) {
215 return (obj == null) ? 0 : obj.swigCPtr;
216 }
217
218 @SuppressWarnings("deprecation")
219 protected void finalize() {
220 delete();
221 }
222
223 public synchronized void delete() {
224 if (swigCPtr != 0) {
225 if (swigCMemOwn) {
226 swigCMemOwn = false;
227 mainJNI.delete_Solver_IntegerCastInfo(swigCPtr);
228 }
229 swigCPtr = 0;
230 }
231 }
232
234 this(mainJNI.new_Solver_IntegerCastInfo__SWIG_0(), true);
235 }
236
238 this(mainJNI.new_Solver_IntegerCastInfo__SWIG_1(IntVar.getCPtr(v), v, IntExpr.getCPtr(e), e, Constraint.getCPtr(c), c), true);
239 }
240
241 public void setVariable(IntVar value) {
242 mainJNI.Solver_IntegerCastInfo_variable_set(swigCPtr, this, IntVar.getCPtr(value), value);
243 }
244
246 long cPtr = mainJNI.Solver_IntegerCastInfo_variable_get(swigCPtr, this);
247 return (cPtr == 0) ? null : new IntVar(cPtr, false);
248 }
249
250 public void setExpression(IntExpr value) {
251 mainJNI.Solver_IntegerCastInfo_expression_set(swigCPtr, this, IntExpr.getCPtr(value), value);
252 }
253
255 long cPtr = mainJNI.Solver_IntegerCastInfo_expression_get(swigCPtr, this);
256 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
257 }
258
259 public void setMaintainer(Constraint value) {
260 mainJNI.Solver_IntegerCastInfo_maintainer_set(swigCPtr, this, Constraint.getCPtr(value), value);
261 }
262
264 long cPtr = mainJNI.Solver_IntegerCastInfo_maintainer_get(swigCPtr, this);
265 return (cPtr == 0) ? null : new Constraint(cPtr, false);
266 }
267
268 }
269
273 public Solver(String name) {
274 this(mainJNI.new_Solver__SWIG_0(name), true);
275 }
276
277 public Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters) {
278 this(mainJNI.new_Solver__SWIG_1(name, parameters.toByteArray()), true);
279 }
280
284 public com.google.ortools.constraintsolver.ConstraintSolverParameters parameters() {
285 byte[] buf = mainJNI.Solver_parameters(swigCPtr, this);
286 if (buf == null || buf.length == 0) {
287 return null;
288 }
289 try {
290 return com.google.ortools.constraintsolver.ConstraintSolverParameters.parseFrom(buf);
291 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
292 throw new RuntimeException(
293 "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
294 }
295}
296
300 public static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters() {
301 byte[] buf = mainJNI.Solver_defaultSolverParameters();
302 if (buf == null || buf.length == 0) {
303 return null;
304 }
305 try {
306 return com.google.ortools.constraintsolver.ConstraintSolverParameters.parseFrom(buf);
307 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
308 throw new RuntimeException(
309 "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
310 }
311}
312
348 public void addConstraint(Constraint c) {
349 mainJNI.Solver_addConstraint(swigCPtr, this, Constraint.getCPtr(c), c);
350 }
351
357 public void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr) {
358 mainJNI.Solver_addCastConstraint(swigCPtr, this, CastConstraint.getCPtr(constraint), constraint, IntVar.getCPtr(target_var), target_var, IntExpr.getCPtr(expr), expr);
359 }
360
404 public boolean solve(DecisionBuilder db, SearchMonitor[] monitors) {
405 try {
406 return mainJNI.Solver_solve__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
407 } finally {
409 }
410 }
411
412 public boolean solve(DecisionBuilder db) {
413 try {
414 return mainJNI.Solver_solve__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
415 } finally {
417 }
418 }
419
420 public boolean solve(DecisionBuilder db, SearchMonitor m1) {
421 try {
422 return mainJNI.Solver_solve__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
423 } finally {
425 }
426 }
427
429 try {
430 return mainJNI.Solver_solve__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
431 } finally {
433 }
434 }
435
437 try {
438 return mainJNI.Solver_solve__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
439 } finally {
441 }
442 }
443
445 try {
446 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);
447 } finally {
449 }
450 }
451
463 public void newSearch(DecisionBuilder db, SearchMonitor[] monitors) {
464 try {
465 mainJNI.Solver_newSearch__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
466 } finally {
468 }
469 }
470
471 public void newSearch(DecisionBuilder db) {
472 try {
473 mainJNI.Solver_newSearch__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
474 } finally {
476 }
477 }
478
480 try {
481 mainJNI.Solver_newSearch__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
482 } finally {
484 }
485 }
486
488 try {
489 mainJNI.Solver_newSearch__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
490 } finally {
492 }
493 }
494
496 try {
497 mainJNI.Solver_newSearch__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
498 } finally {
500 }
501 }
502
504 try {
505 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);
506 } finally {
508 }
509 }
510
511 public boolean nextSolution() {
512 return mainJNI.Solver_nextSolution(swigCPtr, this);
513 }
514
515 public void restartSearch() {
516 mainJNI.Solver_restartSearch(swigCPtr, this);
517 }
518
519 public void endSearch() {
520 mainJNI.Solver_endSearch(swigCPtr, this);
521 }
522
534 public boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors) {
535 try {
536 return mainJNI.Solver_solveAndCommit__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
537 } finally {
539 }
540 }
541
542 public boolean solveAndCommit(DecisionBuilder db) {
543 try {
544 return mainJNI.Solver_solveAndCommit__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
545 } finally {
547 }
548 }
549
551 try {
552 return mainJNI.Solver_solveAndCommit__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
553 } finally {
555 }
556 }
557
559 try {
560 return mainJNI.Solver_solveAndCommit__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
561 } finally {
563 }
564 }
565
567 try {
568 return mainJNI.Solver_solveAndCommit__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
569 } finally {
571 }
572 }
573
577 public boolean checkAssignment(Assignment solution) {
578 return mainJNI.Solver_checkAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
579 }
580
586 public boolean checkConstraint(Constraint ct) {
587 return mainJNI.Solver_checkConstraint(swigCPtr, this, Constraint.getCPtr(ct), ct);
588 }
589
593 public int state() {
594 return mainJNI.Solver_state(swigCPtr, this);
595 }
596
600 public void fail() {
601 mainJNI.Solver_fail(swigCPtr, this);
602 }
603
607 public String toString() {
608 return mainJNI.Solver_toString(swigCPtr, this);
609 }
610
614 public static long memoryUsage() {
615 return mainJNI.Solver_memoryUsage();
616 }
617
622 public long wallTime() {
623 return mainJNI.Solver_wallTime(swigCPtr, this);
624 }
625
629 public long branches() {
630 return mainJNI.Solver_branches(swigCPtr, this);
631 }
632
636 public long solutions() {
637 return mainJNI.Solver_solutions(swigCPtr, this);
638 }
639
643 public long unchecked_solutions() {
644 return mainJNI.Solver_unchecked_solutions(swigCPtr, this);
645 }
646
650 public long demon_runs(int p) {
651 return mainJNI.Solver_demon_runs(swigCPtr, this, p);
652 }
653
657 public long failures() {
658 return mainJNI.Solver_failures(swigCPtr, this);
659 }
660
664 public long neighbors() {
665 return mainJNI.Solver_neighbors(swigCPtr, this);
666 }
667
671 public long filteredNeighbors() {
672 return mainJNI.Solver_filteredNeighbors(swigCPtr, this);
673 }
674
678 public long acceptedNeighbors() {
679 return mainJNI.Solver_acceptedNeighbors(swigCPtr, this);
680 }
681
686 public long stamp() {
687 return mainJNI.Solver_stamp(swigCPtr, this);
688 }
689
693 public long fail_stamp() {
694 return mainJNI.Solver_fail_stamp(swigCPtr, this);
695 }
696
701 return mainJNI.Solver_optimization_direction(swigCPtr, this);
702 }
703
704 public void set_optimization_direction(int direction) {
705 mainJNI.Solver_set_optimization_direction(swigCPtr, this, direction);
706 }
707
711 public IntVar makeIntVar(long min, long max, String name) {
712 long cPtr = mainJNI.Solver_makeIntVar__SWIG_0(swigCPtr, this, min, max, name);
713 return (cPtr == 0) ? null : new IntVar(cPtr, false);
714 }
715
719 public IntVar makeIntVar(long[] values, String name) {
720 long cPtr = mainJNI.Solver_makeIntVar__SWIG_1(swigCPtr, this, values, name);
721 return (cPtr == 0) ? null : new IntVar(cPtr, false);
722 }
723
727 public IntVar makeIntVar(int[] values, String name) {
728 long cPtr = mainJNI.Solver_makeIntVar__SWIG_2(swigCPtr, this, values, name);
729 return (cPtr == 0) ? null : new IntVar(cPtr, false);
730 }
731
735 public IntVar makeIntVar(long min, long max) {
736 long cPtr = mainJNI.Solver_makeIntVar__SWIG_3(swigCPtr, this, min, max);
737 return (cPtr == 0) ? null : new IntVar(cPtr, false);
738 }
739
743 public IntVar makeIntVar(long[] values) {
744 long cPtr = mainJNI.Solver_makeIntVar__SWIG_4(swigCPtr, this, values);
745 return (cPtr == 0) ? null : new IntVar(cPtr, false);
746 }
747
751 public IntVar makeIntVar(int[] values) {
752 long cPtr = mainJNI.Solver_makeIntVar__SWIG_5(swigCPtr, this, values);
753 return (cPtr == 0) ? null : new IntVar(cPtr, false);
754 }
755
759 public IntVar makeBoolVar(String name) {
760 long cPtr = mainJNI.Solver_makeBoolVar__SWIG_0(swigCPtr, this, name);
761 return (cPtr == 0) ? null : new IntVar(cPtr, false);
762 }
763
768 long cPtr = mainJNI.Solver_makeBoolVar__SWIG_1(swigCPtr, this);
769 return (cPtr == 0) ? null : new IntVar(cPtr, false);
770 }
771
775 public IntVar makeIntConst(long val, String name) {
776 long cPtr = mainJNI.Solver_makeIntConst__SWIG_0(swigCPtr, this, val, name);
777 return (cPtr == 0) ? null : new IntVar(cPtr, false);
778 }
779
783 public IntVar makeIntConst(long val) {
784 long cPtr = mainJNI.Solver_makeIntConst__SWIG_1(swigCPtr, this, val);
785 return (cPtr == 0) ? null : new IntVar(cPtr, false);
786 }
787
791 public IntExpr makeSum(IntExpr left, IntExpr right) {
792 long cPtr = mainJNI.Solver_makeSum__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
793 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
794 }
795
799 public IntExpr makeSum(IntExpr expr, long value) {
800 long cPtr = mainJNI.Solver_makeSum__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
801 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
802 }
803
807 public IntExpr makeSum(IntVar[] vars) {
808 long cPtr = mainJNI.Solver_makeSum__SWIG_2(swigCPtr, this, vars);
809 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
810 }
811
815 public IntExpr makeScalProd(IntVar[] vars, long[] coefs) {
816 long cPtr = mainJNI.Solver_makeScalProd__SWIG_0(swigCPtr, this, vars, coefs);
817 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
818 }
819
823 public IntExpr makeScalProd(IntVar[] vars, int[] coefs) {
824 long cPtr = mainJNI.Solver_makeScalProd__SWIG_1(swigCPtr, this, vars, coefs);
825 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
826 }
827
831 public IntExpr makeDifference(IntExpr left, IntExpr right) {
832 long cPtr = mainJNI.Solver_makeDifference__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
833 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
834 }
835
839 public IntExpr makeDifference(long value, IntExpr expr) {
840 long cPtr = mainJNI.Solver_makeDifference__SWIG_1(swigCPtr, this, value, IntExpr.getCPtr(expr), expr);
841 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
842 }
843
848 long cPtr = mainJNI.Solver_makeOpposite(swigCPtr, this, IntExpr.getCPtr(expr), expr);
849 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
850 }
851
855 public IntExpr makeProd(IntExpr left, IntExpr right) {
856 long cPtr = mainJNI.Solver_makeProd__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
857 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
858 }
859
863 public IntExpr makeProd(IntExpr expr, long value) {
864 long cPtr = mainJNI.Solver_makeProd__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
865 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
866 }
867
871 public IntExpr makeDiv(IntExpr expr, long value) {
872 long cPtr = mainJNI.Solver_makeDiv__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
873 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
874 }
875
879 public IntExpr makeDiv(IntExpr numerator, IntExpr denominator) {
880 long cPtr = mainJNI.Solver_makeDiv__SWIG_1(swigCPtr, this, IntExpr.getCPtr(numerator), numerator, IntExpr.getCPtr(denominator), denominator);
881 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
882 }
883
887 public IntExpr makeAbs(IntExpr expr) {
888 long cPtr = mainJNI.Solver_makeAbs(swigCPtr, this, IntExpr.getCPtr(expr), expr);
889 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
890 }
891
896 long cPtr = mainJNI.Solver_makeSquare(swigCPtr, this, IntExpr.getCPtr(expr), expr);
897 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
898 }
899
903 public IntExpr makePower(IntExpr expr, long n) {
904 long cPtr = mainJNI.Solver_makePower(swigCPtr, this, IntExpr.getCPtr(expr), expr, n);
905 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
906 }
907
911 public IntExpr makeElement(long[] values, IntVar index) {
912 long cPtr = mainJNI.Solver_makeElement__SWIG_0(swigCPtr, this, values, IntVar.getCPtr(index), index);
913 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
914 }
915
919 public IntExpr makeElement(int[] values, IntVar index) {
920 long cPtr = mainJNI.Solver_makeElement__SWIG_1(swigCPtr, this, values, IntVar.getCPtr(index), index);
921 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
922 }
923
929 public IntExpr makeElement(LongUnaryOperator values, IntVar index) {
930 long cPtr = mainJNI.Solver_makeElement__SWIG_2(swigCPtr, this, values, IntVar.getCPtr(index), index);
931 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
932 }
933
942 public IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index) {
943 long cPtr = mainJNI.Solver_makeMonotonicElement(swigCPtr, this, values, increasing, IntVar.getCPtr(index), index);
944 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
945 }
946
950 public IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2) {
951 long cPtr = mainJNI.Solver_makeElement__SWIG_3(swigCPtr, this, values, IntVar.getCPtr(index1), index1, IntVar.getCPtr(index2), index2);
952 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
953 }
954
958 public IntExpr makeElement(IntVar[] vars, IntVar index) {
959 long cPtr = mainJNI.Solver_makeElement__SWIG_4(swigCPtr, this, vars, IntVar.getCPtr(index), index);
960 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
961 }
962
967 public IntExpr makeIndexExpression(IntVar[] vars, long value) {
968 long cPtr = mainJNI.Solver_makeIndexExpression(swigCPtr, this, vars, value);
969 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
970 }
971
975 public Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var) {
976 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);
977 return (cPtr == 0) ? null : new Constraint(cPtr, false);
978 }
979
983 public IntExpr makeMin(IntVar[] vars) {
984 long cPtr = mainJNI.Solver_makeMin__SWIG_0(swigCPtr, this, vars);
985 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
986 }
987
991 public IntExpr makeMin(IntExpr left, IntExpr right) {
992 long cPtr = mainJNI.Solver_makeMin__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
993 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
994 }
995
999 public IntExpr makeMin(IntExpr expr, long value) {
1000 long cPtr = mainJNI.Solver_makeMin__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1001 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1002 }
1003
1007 public IntExpr makeMin(IntExpr expr, int value) {
1008 long cPtr = mainJNI.Solver_makeMin__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1009 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1010 }
1011
1015 public IntExpr makeMax(IntVar[] vars) {
1016 long cPtr = mainJNI.Solver_makeMax__SWIG_0(swigCPtr, this, vars);
1017 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1018 }
1019
1023 public IntExpr makeMax(IntExpr left, IntExpr right) {
1024 long cPtr = mainJNI.Solver_makeMax__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1025 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1026 }
1027
1031 public IntExpr makeMax(IntExpr expr, long value) {
1032 long cPtr = mainJNI.Solver_makeMax__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1033 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1034 }
1035
1039 public IntExpr makeMax(IntExpr expr, int value) {
1040 long cPtr = mainJNI.Solver_makeMax__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1041 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1042 }
1043
1047 public IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost) {
1048 long cPtr = mainJNI.Solver_makeConvexPiecewiseExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, early_cost, early_date, late_date, late_cost);
1049 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1050 }
1051
1056 public IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step) {
1057 long cPtr = mainJNI.Solver_makeSemiContinuousExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, fixed_charge, step);
1058 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1059 }
1060
1067 public IntExpr makeModulo(IntExpr x, long mod) {
1068 long cPtr = mainJNI.Solver_makeModulo__SWIG_0(swigCPtr, this, IntExpr.getCPtr(x), x, mod);
1069 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1070 }
1071
1076 long cPtr = mainJNI.Solver_makeModulo__SWIG_1(swigCPtr, this, IntExpr.getCPtr(x), x, IntExpr.getCPtr(mod), mod);
1077 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1078 }
1079
1083 public IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value) {
1084 long cPtr = mainJNI.Solver_makeConditionalExpression(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(expr), expr, unperformed_value);
1085 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1086 }
1087
1092 long cPtr = mainJNI.Solver_makeTrueConstraint(swigCPtr, this);
1093 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1094 }
1095
1100 long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_0(swigCPtr, this);
1101 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1102 }
1103
1104 public Constraint makeFalseConstraint(String explanation) {
1105 long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_1(swigCPtr, this, explanation);
1106 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1107 }
1108
1112 public Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1113 long cPtr = mainJNI.Solver_makeIsEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1114 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1115 }
1116
1120 public IntVar makeIsEqualCstVar(IntExpr var, long value) {
1121 long cPtr = mainJNI.Solver_makeIsEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1122 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1123 }
1124
1129 long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1130 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1131 }
1132
1137 long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1138 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1139 }
1140
1145 long cPtr = mainJNI.Solver_makeEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1146 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1147 }
1148
1152 public Constraint makeEquality(IntExpr expr, long value) {
1153 long cPtr = mainJNI.Solver_makeEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1154 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1155 }
1156
1160 public Constraint makeEquality(IntExpr expr, int value) {
1161 long cPtr = mainJNI.Solver_makeEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1162 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1163 }
1164
1168 public Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar) {
1169 long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1170 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1171 }
1172
1176 public IntVar makeIsDifferentCstVar(IntExpr var, long value) {
1177 long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1178 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1179 }
1180
1185 long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1186 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1187 }
1188
1193 long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1194 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1195 }
1196
1201 long cPtr = mainJNI.Solver_makeNonEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1202 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1203 }
1204
1208 public Constraint makeNonEquality(IntExpr expr, long value) {
1209 long cPtr = mainJNI.Solver_makeNonEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1210 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1211 }
1212
1216 public Constraint makeNonEquality(IntExpr expr, int value) {
1217 long cPtr = mainJNI.Solver_makeNonEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1218 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1219 }
1220
1224 public Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1225 long cPtr = mainJNI.Solver_makeIsLessOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1226 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1227 }
1228
1232 public IntVar makeIsLessOrEqualCstVar(IntExpr var, long value) {
1233 long cPtr = mainJNI.Solver_makeIsLessOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1234 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1235 }
1236
1241 long cPtr = mainJNI.Solver_makeIsLessOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1242 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1243 }
1244
1249 long cPtr = mainJNI.Solver_makeIsLessOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1250 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1251 }
1252
1257 long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1258 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1259 }
1260
1264 public Constraint makeLessOrEqual(IntExpr expr, long value) {
1265 long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1266 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1267 }
1268
1272 public Constraint makeLessOrEqual(IntExpr expr, int value) {
1273 long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1274 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1275 }
1276
1280 public Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1281 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1282 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1283 }
1284
1289 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1290 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1291 }
1292
1297 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1298 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1299 }
1300
1305 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1306 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1307 }
1308
1313 long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1314 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1315 }
1316
1320 public Constraint makeGreaterOrEqual(IntExpr expr, long value) {
1321 long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1322 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1323 }
1324
1328 public Constraint makeGreaterOrEqual(IntExpr expr, int value) {
1329 long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1330 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1331 }
1332
1337 long cPtr = mainJNI.Solver_makeIsGreaterCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1338 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1339 }
1340
1344 public IntVar makeIsGreaterCstVar(IntExpr var, long value) {
1345 long cPtr = mainJNI.Solver_makeIsGreaterCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1346 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1347 }
1348
1353 long cPtr = mainJNI.Solver_makeIsGreaterVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1354 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1355 }
1356
1361 long cPtr = mainJNI.Solver_makeIsGreaterCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1362 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1363 }
1364
1369 long cPtr = mainJNI.Solver_makeGreater__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1370 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1371 }
1372
1376 public Constraint makeGreater(IntExpr expr, long value) {
1377 long cPtr = mainJNI.Solver_makeGreater__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1378 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1379 }
1380
1384 public Constraint makeGreater(IntExpr expr, int value) {
1385 long cPtr = mainJNI.Solver_makeGreater__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1386 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1387 }
1388
1393 long cPtr = mainJNI.Solver_makeIsLessCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1394 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1395 }
1396
1400 public IntVar makeIsLessCstVar(IntExpr var, long value) {
1401 long cPtr = mainJNI.Solver_makeIsLessCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1402 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1403 }
1404
1408 public IntVar makeIsLessVar(IntExpr left, IntExpr right) {
1409 long cPtr = mainJNI.Solver_makeIsLessVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1410 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1411 }
1412
1417 long cPtr = mainJNI.Solver_makeIsLessCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1418 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1419 }
1420
1424 public Constraint makeLess(IntExpr left, IntExpr right) {
1425 long cPtr = mainJNI.Solver_makeLess__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1426 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1427 }
1428
1432 public Constraint makeLess(IntExpr expr, long value) {
1433 long cPtr = mainJNI.Solver_makeLess__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1434 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1435 }
1436
1440 public Constraint makeLess(IntExpr expr, int value) {
1441 long cPtr = mainJNI.Solver_makeLess__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1442 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1443 }
1444
1448 public Constraint makeSumLessOrEqual(IntVar[] vars, long cst) {
1449 long cPtr = mainJNI.Solver_makeSumLessOrEqual(swigCPtr, this, vars, cst);
1450 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1451 }
1452
1453 public Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst) {
1454 long cPtr = mainJNI.Solver_makeSumGreaterOrEqual(swigCPtr, this, vars, cst);
1455 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1456 }
1457
1458 public Constraint makeSumEquality(IntVar[] vars, long cst) {
1459 long cPtr = mainJNI.Solver_makeSumEquality__SWIG_0(swigCPtr, this, vars, cst);
1460 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1461 }
1462
1464 long cPtr = mainJNI.Solver_makeSumEquality__SWIG_1(swigCPtr, this, vars, IntVar.getCPtr(var), var);
1465 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1466 }
1467
1468 public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst) {
1469 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1470 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1471 }
1472
1473 public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst) {
1474 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1475 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1476 }
1477
1478 public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target) {
1479 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_2(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1480 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1481 }
1482
1483 public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target) {
1484 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_3(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1485 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1486 }
1487
1488 public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst) {
1489 long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_0(swigCPtr, this, vars, coeffs, cst);
1490 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1491 }
1492
1493 public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst) {
1494 long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_1(swigCPtr, this, vars, coeffs, cst);
1495 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1496 }
1497
1498 public Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst) {
1499 long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1500 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1501 }
1502
1503 public Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst) {
1504 long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1505 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1506 }
1507
1508 public Constraint makeMinEquality(IntVar[] vars, IntVar min_var) {
1509 long cPtr = mainJNI.Solver_makeMinEquality(swigCPtr, this, vars, IntVar.getCPtr(min_var), min_var);
1510 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1511 }
1512
1513 public Constraint makeMaxEquality(IntVar[] vars, IntVar max_var) {
1514 long cPtr = mainJNI.Solver_makeMaxEquality(swigCPtr, this, vars, IntVar.getCPtr(max_var), max_var);
1515 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1516 }
1517
1518 public Constraint makeElementEquality(long[] vals, IntVar index, IntVar target) {
1519 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_0(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1520 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1521 }
1522
1523 public Constraint makeElementEquality(int[] vals, IntVar index, IntVar target) {
1524 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_1(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1525 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1526 }
1527
1528 public Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target) {
1529 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_2(swigCPtr, this, vars, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1530 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1531 }
1532
1533 public Constraint makeElementEquality(IntVar[] vars, IntVar index, long target) {
1534 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_3(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1535 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1536 }
1537
1542 long cPtr = mainJNI.Solver_makeAbsEquality(swigCPtr, this, IntVar.getCPtr(var), var, IntVar.getCPtr(abs_var), abs_var);
1543 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1544 }
1545
1552 public Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target) {
1553 long cPtr = mainJNI.Solver_makeIndexOfConstraint(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1554 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1555 }
1556
1562 long cPtr = mainJNI.Solver_makeConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1563 return (cPtr == 0) ? null : new Demon(cPtr, false);
1564 }
1565
1572 long cPtr = mainJNI.Solver_makeDelayedConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1573 return (cPtr == 0) ? null : new Demon(cPtr, false);
1574 }
1575
1579 public Demon makeClosureDemon(Runnable closure) {
1580 long cPtr = mainJNI.Solver_makeClosureDemon(swigCPtr, this, closure);
1581 return (cPtr == 0) ? null : new Demon(cPtr, false);
1582 }
1583
1587 public Constraint makeBetweenCt(IntExpr expr, long l, long u) {
1588 long cPtr = mainJNI.Solver_makeBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1589 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1590 }
1591
1598 public Constraint makeNotBetweenCt(IntExpr expr, long l, long u) {
1599 long cPtr = mainJNI.Solver_makeNotBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1600 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1601 }
1602
1606 public Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b) {
1607 long cPtr = mainJNI.Solver_makeIsBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u, IntVar.getCPtr(b), b);
1608 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1609 }
1610
1611 public IntVar makeIsBetweenVar(IntExpr v, long l, long u) {
1612 long cPtr = mainJNI.Solver_makeIsBetweenVar(swigCPtr, this, IntExpr.getCPtr(v), v, l, u);
1613 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1614 }
1615
1620 public Constraint makeMemberCt(IntExpr expr, long[] values) {
1621 long cPtr = mainJNI.Solver_makeMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1622 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1623 }
1624
1625 public Constraint makeMemberCt(IntExpr expr, int[] values) {
1626 long cPtr = mainJNI.Solver_makeMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1627 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1628 }
1629
1633 public Constraint makeNotMemberCt(IntExpr expr, long[] values) {
1634 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1635 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1636 }
1637
1638 public Constraint makeNotMemberCt(IntExpr expr, int[] values) {
1639 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1640 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1641 }
1642
1646 public Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends) {
1647 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1648 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1649 }
1650
1654 public Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends) {
1655 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1656 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1657 }
1658
1662 public Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar) {
1663 long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1664 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1665 }
1666
1667 public Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar) {
1668 long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1669 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1670 }
1671
1672 public IntVar makeIsMemberVar(IntExpr expr, long[] values) {
1673 long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1674 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1675 }
1676
1677 public IntVar makeIsMemberVar(IntExpr expr, int[] values) {
1678 long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1679 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1680 }
1681
1685 public Constraint makeCount(IntVar[] vars, long value, long max_count) {
1686 long cPtr = mainJNI.Solver_makeCount__SWIG_0(swigCPtr, this, vars, value, max_count);
1687 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1688 }
1689
1693 public Constraint makeCount(IntVar[] vars, long value, IntVar max_count) {
1694 long cPtr = mainJNI.Solver_makeCount__SWIG_1(swigCPtr, this, vars, value, IntVar.getCPtr(max_count), max_count);
1695 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1696 }
1697
1701 public Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards) {
1702 long cPtr = mainJNI.Solver_makeDistribute__SWIG_0(swigCPtr, this, vars, values, cards);
1703 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1704 }
1705
1709 public Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards) {
1710 long cPtr = mainJNI.Solver_makeDistribute__SWIG_1(swigCPtr, this, vars, values, cards);
1711 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1712 }
1713
1717 public Constraint makeDistribute(IntVar[] vars, IntVar[] cards) {
1718 long cPtr = mainJNI.Solver_makeDistribute__SWIG_2(swigCPtr, this, vars, cards);
1719 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1720 }
1721
1726 public Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size) {
1727 long cPtr = mainJNI.Solver_makeDistribute__SWIG_3(swigCPtr, this, vars, card_min, card_max, card_size);
1728 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1729 }
1730
1736 public Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max) {
1737 long cPtr = mainJNI.Solver_makeDistribute__SWIG_4(swigCPtr, this, vars, card_min, card_max);
1738 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1739 }
1740
1746 public Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max) {
1747 long cPtr = mainJNI.Solver_makeDistribute__SWIG_5(swigCPtr, this, vars, card_min, card_max);
1748 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1749 }
1750
1756 public Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max) {
1757 long cPtr = mainJNI.Solver_makeDistribute__SWIG_6(swigCPtr, this, vars, values, card_min, card_max);
1758 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1759 }
1760
1766 public Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max) {
1767 long cPtr = mainJNI.Solver_makeDistribute__SWIG_7(swigCPtr, this, vars, values, card_min, card_max);
1768 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1769 }
1770
1777 public Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum) {
1778 long cPtr = mainJNI.Solver_makeDeviation(swigCPtr, this, vars, IntVar.getCPtr(deviation_var), deviation_var, total_sum);
1779 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1780 }
1781
1787 long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_0(swigCPtr, this, vars);
1788 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1789 }
1790
1796 public Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation) {
1797 long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_1(swigCPtr, this, vars, stronger_propagation);
1798 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1799 }
1800
1805 public Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value) {
1806 long cPtr = mainJNI.Solver_makeAllDifferentExcept(swigCPtr, this, vars, escape_value);
1807 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1808 }
1809
1828 long cPtr = mainJNI.Solver_makeSortingConstraint(swigCPtr, this, vars, sorted);
1829 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1830 }
1831
1836 public Constraint makeLexicalLess(IntVar[] left, IntVar[] right) {
1837 long cPtr = mainJNI.Solver_makeLexicalLess(swigCPtr, this, left, right);
1838 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1839 }
1840
1846 long cPtr = mainJNI.Solver_makeLexicalLessOrEqual(swigCPtr, this, left, right);
1847 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1848 }
1849
1857 long cPtr = mainJNI.Solver_makeInversePermutationConstraint(swigCPtr, this, left, right);
1858 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1859 }
1860
1866 long cPtr = mainJNI.Solver_makeIndexOfFirstMaxValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1867 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1868 }
1869
1875 long cPtr = mainJNI.Solver_makeIndexOfFirstMinValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1876 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1877 }
1878
1885 public Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars) {
1886 long cPtr = mainJNI.Solver_makeNullIntersect(swigCPtr, this, first_vars, second_vars);
1887 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1888 }
1889
1897 public Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value) {
1898 long cPtr = mainJNI.Solver_makeNullIntersectExcept(swigCPtr, this, first_vars, second_vars, escape_value);
1899 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1900 }
1901
1913 public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler) {
1914 long cPtr = mainJNI.Solver_makeNoCycle__SWIG_0(swigCPtr, this, nexts, active, sink_handler);
1915 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1916 }
1917
1929 public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active) {
1930 long cPtr = mainJNI.Solver_makeNoCycle__SWIG_1(swigCPtr, this, nexts, active);
1931 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1932 }
1933
1934 public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths) {
1935 long cPtr = mainJNI.Solver_makeNoCycle__SWIG_2(swigCPtr, this, nexts, active, sink_handler, assume_paths);
1936 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1937 }
1938
1943 long cPtr = mainJNI.Solver_makeCircuit(swigCPtr, this, nexts);
1944 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1945 }
1946
1952 long cPtr = mainJNI.Solver_makeSubCircuit(swigCPtr, this, nexts);
1953 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1954 }
1955
1962 public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1963 long cPtr = mainJNI.Solver_makePathCumul__SWIG_0(swigCPtr, this, nexts, active, cumuls, transits);
1964 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1965 }
1966
1971 public Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1972 long cPtr = mainJNI.Solver_makeDelayedPathCumul(swigCPtr, this, nexts, active, cumuls, transits);
1973 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1974 }
1975
1984 public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator) {
1985 long cPtr = mainJNI.Solver_makePathCumul__SWIG_1(swigCPtr, this, nexts, active, cumuls, transit_evaluator);
1986 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1987 }
1988
1997 public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator) {
1998 long cPtr = mainJNI.Solver_makePathCumul__SWIG_2(swigCPtr, this, nexts, active, cumuls, slacks, transit_evaluator);
1999 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2000 }
2001
2007 public Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status) {
2008 long cPtr = mainJNI.Solver_makePathConnected(swigCPtr, this, nexts, sources, sinks, status);
2009 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2010 }
2011
2017 public Constraint makeMapDomain(IntVar var, IntVar[] actives) {
2018 long cPtr = mainJNI.Solver_makeMapDomain(swigCPtr, this, IntVar.getCPtr(var), var, actives);
2019 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2020 }
2021
2029 long cPtr = mainJNI.Solver_makeAllowedAssignment(swigCPtr, this, vars, IntTupleSet.getCPtr(tuples), tuples);
2030 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2031 }
2032
2042 public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states) {
2043 long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_0(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
2044 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2045 }
2046
2056 public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states) {
2057 long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_1(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
2058 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2059 }
2060
2071 public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
2072 long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2073 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2074 }
2075
2076 public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
2077 long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2078 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2079 }
2080
2081 public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
2082 long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2083 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2084 }
2085
2096 public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
2097 long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2098 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2099 }
2100
2101 public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
2102 long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2103 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2104 }
2105
2106 public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
2107 long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2108 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2109 }
2110
2118 public Pack makePack(IntVar[] vars, int number_of_bins) {
2119 long cPtr = mainJNI.Solver_makePack(swigCPtr, this, vars, number_of_bins);
2120 return (cPtr == 0) ? null : new Pack(cPtr, false);
2121 }
2122
2129 public IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name) {
2130 long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_0(swigCPtr, this, start_min, start_max, duration, optional, name);
2131 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2132 }
2133
2138 public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name) {
2139 long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_1(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, name);
2140 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2141 }
2142
2147 public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name) {
2148 long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_2(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, IntVar.getCPtr(performed_variable), performed_variable, name);
2149 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2150 }
2151
2155 public IntervalVar makeFixedInterval(long start, long duration, String name) {
2156 long cPtr = mainJNI.Solver_makeFixedInterval(swigCPtr, this, start, duration, name);
2157 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2158 }
2159
2164 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) {
2165 long cPtr = mainJNI.Solver_makeIntervalVar(swigCPtr, this, start_min, start_max, duration_min, duration_max, end_min, end_max, optional, name);
2166 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2167 }
2168
2174 long cPtr = mainJNI.Solver_makeMirrorInterval(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2175 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2176 }
2177
2184 public IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
2185 long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2186 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2187 }
2188
2195 public IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
2196 long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2197 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2198 }
2199
2206 public IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
2207 long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2208 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2209 }
2210
2217 public IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
2218 long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2219 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2220 }
2221
2242 long cPtr = mainJNI.Solver_makeIntervalRelaxedMin(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2243 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2244 }
2245
2266 long cPtr = mainJNI.Solver_makeIntervalRelaxedMax(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2267 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2268 }
2269
2275 long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t), t, r, d);
2276 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2277 }
2278
2283 long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2);
2284 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2285 }
2286
2294 long cPtr = mainJNI.Solver_makeIntervalVarRelationWithDelay(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2, delay);
2295 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2296 }
2297
2304 long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2, IntVar.getCPtr(alt), alt);
2305 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2306 }
2307
2313 long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2);
2314 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2315 }
2316
2322 long cPtr = mainJNI.Solver_makeDisjunctiveConstraint(swigCPtr, this, intervals, name);
2323 return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2324 }
2325
2332 long cPtr = mainJNI.Solver_makeStrictDisjunctiveConstraint(swigCPtr, this, intervals, name);
2333 return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2334 }
2335
2347 public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name) {
2348 long cPtr = mainJNI.Solver_makeCumulative__SWIG_0(swigCPtr, this, intervals, demands, capacity, name);
2349 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2350 }
2351
2363 public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name) {
2364 long cPtr = mainJNI.Solver_makeCumulative__SWIG_1(swigCPtr, this, intervals, demands, capacity, name);
2365 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2366 }
2367
2379 public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name) {
2380 long cPtr = mainJNI.Solver_makeCumulative__SWIG_2(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2381 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2382 }
2383
2395 public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name) {
2396 long cPtr = mainJNI.Solver_makeCumulative__SWIG_3(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2397 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2398 }
2399
2409 public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name) {
2410 long cPtr = mainJNI.Solver_makeCumulative__SWIG_4(swigCPtr, this, intervals, demands, capacity, name);
2411 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2412 }
2413
2423 public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name) {
2424 long cPtr = mainJNI.Solver_makeCumulative__SWIG_5(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2425 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2426 }
2427
2435 public Constraint makeCover(IntervalVar[] vars, IntervalVar target_var) {
2436 long cPtr = mainJNI.Solver_makeCover(swigCPtr, this, vars, IntervalVar.getCPtr(target_var), target_var);
2437 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2438 }
2439
2444 long cPtr = mainJNI.Solver_makeEquality__SWIG_3(swigCPtr, this, IntervalVar.getCPtr(var1), var1, IntervalVar.getCPtr(var2), var2);
2445 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2446 }
2447
2452 long cPtr = mainJNI.Solver_makeAssignment__SWIG_0(swigCPtr, this);
2453 return (cPtr == 0) ? null : new Assignment(cPtr, false);
2454 }
2455
2460 long cPtr = mainJNI.Solver_makeAssignment__SWIG_1(swigCPtr, this, Assignment.getCPtr(a), a);
2461 return (cPtr == 0) ? null : new Assignment(cPtr, false);
2462 }
2463
2468 long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2469 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2470 }
2471
2477 long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_1(swigCPtr, this);
2478 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2479 }
2480
2485 long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2486 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2487 }
2488
2494 long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_1(swigCPtr, this);
2495 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2496 }
2497
2504 public SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize) {
2505 long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, maximize);
2506 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2507 }
2508
2517 long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_1(swigCPtr, this, maximize);
2518 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2519 }
2520
2526 public SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize) {
2527 long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, solution_count, maximize);
2528 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2529 }
2530
2531 public SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize) {
2532 long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_1(swigCPtr, this, solution_count, maximize);
2533 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2534 }
2535
2540 long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2541 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2542 }
2543
2549 long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_1(swigCPtr, this);
2550 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2551 }
2552
2556 public OptimizeVar makeMinimize(IntVar v, long step) {
2557 long cPtr = mainJNI.Solver_makeMinimize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2558 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2559 }
2560
2564 public OptimizeVar makeMaximize(IntVar v, long step) {
2565 long cPtr = mainJNI.Solver_makeMaximize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2566 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2567 }
2568
2572 public OptimizeVar makeOptimize(boolean maximize, IntVar v, long step) {
2573 long cPtr = mainJNI.Solver_makeOptimize(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step);
2574 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2575 }
2576
2581 public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step) {
2582 long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2583 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2584 }
2585
2590 public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step) {
2591 long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2592 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2593 }
2594
2598 public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step) {
2599 long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2600 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2601 }
2602
2606 public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step) {
2607 long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2608 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2609 }
2610
2614 public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step) {
2615 long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_0(swigCPtr, this, maximize, sub_objectives, weights, step);
2616 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2617 }
2618
2622 public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step) {
2623 long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_1(swigCPtr, this, maximize, sub_objectives, weights, step);
2624 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2625 }
2626
2645 public SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor) {
2646 long cPtr = mainJNI.Solver_makeTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, vars, keep_tenure, forbid_tenure, tabu_factor);
2647 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2648 }
2649
2654 public SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure) {
2655 long cPtr = mainJNI.Solver_makeGenericTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, tabu_vars, forbid_tenure);
2656 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2657 }
2658
2662 public SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature) {
2663 long cPtr = mainJNI.Solver_makeSimulatedAnnealing(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, initial_temperature);
2664 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2665 }
2666
2671 public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor) {
2672 long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_0(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, penalty_factor);
2673 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2674 }
2675
2676 public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor) {
2677 long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_1(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, secondary_vars, penalty_factor);
2678 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2679 }
2680
2686 public SearchMonitor makeLubyRestart(int scale_factor) {
2687 long cPtr = mainJNI.Solver_makeLubyRestart(swigCPtr, this, scale_factor);
2688 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2689 }
2690
2695 public SearchMonitor makeConstantRestart(int frequency) {
2696 long cPtr = mainJNI.Solver_makeConstantRestart(swigCPtr, this, frequency);
2697 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2698 }
2699
2703 public RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time) {
2704 long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time));
2705 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2706 }
2707
2708 public RegularLimit makeTimeLimit(long time_in_ms) {
2709 long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_1(swigCPtr, this, time_in_ms);
2710 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2711 }
2712
2718 long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2719 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2720 }
2721
2727 long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2728 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2729 }
2730
2736 long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2737 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2738 }
2739
2744 public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2745 long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check, cumulative);
2746 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2747 }
2748
2753 public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check) {
2754 long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check);
2755 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2756 }
2757
2762 public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions) {
2763 long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions);
2764 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2765 }
2766
2770 public RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto) {
2771 long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2772 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2773 }
2774
2775 public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2776 long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2777 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2778 }
2779
2780 public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2781 long cPtr = mainJNI.Solver_makeLimit__SWIG_5(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2782 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2783 }
2784
2785 public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2786 long cPtr = mainJNI.Solver_makeLimit__SWIG_6(swigCPtr, this, time, branches, failures, solutions);
2787 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2788 }
2789
2793 public com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters() {
2794 byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2795 if (buf == null || buf.length == 0) {
2796 return null;
2797 }
2798 try {
2799 return com.google.ortools.constraintsolver.RegularLimitParameters.parseFrom(buf);
2800 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2801 throw new RuntimeException(
2802 "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2803 }
2804}
2805
2812 long cPtr = mainJNI.Solver_makeLimit__SWIG_7(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2813 return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2814 }
2815
2822 public ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance) {
2823 long cPtr = mainJNI.Solver_MakeImprovementLimit(swigCPtr, this, IntVar.getCPtr(objective_var), objective_var, maximize, objective_scaling_factor, objective_offset, improvement_rate_coefficient, improvement_rate_solutions_distance);
2824 return (cPtr == 0) ? null : new ImprovementSearchLimit(cPtr, false);
2825 }
2826
2831 public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2832 long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2833 return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2834 }
2835
2840 public SearchMonitor makeSearchLog(int branch_period) {
2841 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2842 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2843 }
2844
2848 public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2849 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2850 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2851 }
2852
2857 public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2858 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2859 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2860 }
2861
2866 public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2867 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2868 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2869 }
2870
2875 public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2876 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2877 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2878 }
2879
2884 public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2885 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2886 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2887 }
2888
2893 public SearchMonitor makeSearchTrace(String prefix) {
2894 long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2895 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2896 }
2897
2901 public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2902 long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2903 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2904 }
2905
2906 public SearchMonitor makeExitSearchCallback(Runnable callback) {
2907 long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2908 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2909 }
2910
2911 public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2912 long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2913 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2914 }
2915
2920 long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2921 return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2922 }
2923
2928 long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2929 return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2930 }
2931
2936 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2937 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2938 }
2939
2941 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2942 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2943 }
2944
2946 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2947 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2948 }
2949
2951 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2952 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2953 }
2954
2956 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);
2957 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2958 }
2959
2964 long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2965 return (cPtr == 0) ? null : new Decision(cPtr, false);
2966 }
2967
2969 long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2970 return (cPtr == 0) ? null : new Decision(cPtr, false);
2971 }
2972
2974 long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2975 return (cPtr == 0) ? null : new Decision(cPtr, false);
2976 }
2977
2978 public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2979 long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2980 return (cPtr == 0) ? null : new Decision(cPtr, false);
2981 }
2982
2984 long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2985 return (cPtr == 0) ? null : new Decision(cPtr, false);
2986 }
2987
2989 long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2990 return (cPtr == 0) ? null : new Decision(cPtr, false);
2991 }
2992
2993 public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2994 long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2995 return (cPtr == 0) ? null : new Decision(cPtr, false);
2996 }
2997
2999 long cPtr = mainJNI.Solver_MakeAssignVariablesValuesOrDoNothing(swigCPtr, this, vars, values);
3000 return (cPtr == 0) ? null : new Decision(cPtr, false);
3001 }
3002
3003 public Decision MakeAssignVariablesValuesOrFail(IntVar[] vars, long[] values) {
3004 long cPtr = mainJNI.Solver_MakeAssignVariablesValuesOrFail(swigCPtr, this, vars, values);
3005 return (cPtr == 0) ? null : new Decision(cPtr, false);
3006 }
3007
3009 long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
3010 return (cPtr == 0) ? null : new Decision(cPtr, false);
3011 }
3012
3013 public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
3014 long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
3015 return (cPtr == 0) ? null : new Decision(cPtr, false);
3016 }
3017
3029 try {
3030 long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
3031 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3032 } finally {
3035 }
3036 }
3037
3039 try {
3040 long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
3041 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3042 } finally {
3046 }
3047 }
3048
3050 try {
3051 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);
3052 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3053 } finally {
3058 }
3059 }
3060
3062 try {
3063 long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
3064 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3065 } finally {
3067 }
3068 }
3069
3088 try {
3089 long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
3090 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3091 } finally {
3094 }
3095 }
3096
3098 try {
3099 long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
3100 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3101 } finally {
3105 }
3106 }
3107
3109 try {
3110 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);
3111 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3112 } finally {
3117 }
3118 }
3119
3121 try {
3122 long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
3123 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3124 } finally {
3126 }
3127 }
3128
3133 public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
3134 long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
3135 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3136 }
3137
3138 public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
3139 long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
3140 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3141 }
3142
3143 public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
3144 long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
3145 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3146 }
3147
3152 public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
3153 long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
3154 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3155 }
3156
3157 public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
3158 long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
3159 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3160 }
3161
3162 public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
3163 long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
3164 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3165 }
3166
3167 public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
3168 long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
3169 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3170 }
3171
3173 long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
3174 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3175 }
3176
3178 long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
3179 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3180 }
3181
3185 public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
3186 long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
3187 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3188 }
3189
3190 public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
3191 long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
3192 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3193 }
3194
3195 public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
3196 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);
3197 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3198 }
3199
3200 public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
3201 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);
3202 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3203 }
3204
3212 public Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker) {
3213 long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
3214 return (cPtr == 0) ? null : new Decision(cPtr, false);
3215 }
3216
3224 public Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker) {
3225 long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
3226 return (cPtr == 0) ? null : new Decision(cPtr, false);
3227 }
3228
3233 public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
3234 long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
3235 return (cPtr == 0) ? null : new Decision(cPtr, false);
3236 }
3237
3242 public Decision makeRankLastInterval(SequenceVar sequence, int index) {
3243 long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
3244 return (cPtr == 0) ? null : new Decision(cPtr, false);
3245 }
3246
3254 public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
3255 long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
3256 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3257 }
3258
3268 public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
3269 long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
3270 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3271 }
3272
3276 public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
3277 long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
3278 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3279 }
3280
3281 public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
3282 long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
3283 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3284 }
3285
3291 try {
3292 long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
3293 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3294 } finally {
3296 }
3297 }
3298
3304 long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
3305 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3306 }
3307
3315 try {
3316 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
3317 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3318 } finally {
3320 }
3321 }
3322
3324 try {
3325 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
3326 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3327 } finally {
3329 }
3330 }
3331
3333 try {
3334 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
3335 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3336 } finally {
3338 }
3339 }
3340
3342 try {
3343 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);
3344 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3345 } finally {
3347 }
3348 }
3349
3351 try {
3352 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);
3353 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3354 } finally {
3356 }
3357 }
3358
3360 try {
3361 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
3362 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3363 } finally {
3365 }
3366 }
3367
3377 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
3378 try {
3379 long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
3380 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3381 } finally {
3383 }
3384 }
3385
3386 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
3387 try {
3388 long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
3389 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3390 } finally {
3392 }
3393 }
3394
3395 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
3396 try {
3397 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);
3398 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3399 } finally {
3401 }
3402 }
3403
3404 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
3405 try {
3406 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);
3407 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3408 } finally {
3410 }
3411 }
3412
3413 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
3414 try {
3415 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);
3416 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3417 } finally {
3419 }
3420 }
3421
3422 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
3423 try {
3424 long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
3425 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3426 } finally {
3428 }
3429 }
3430
3436 long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
3437 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3438 }
3439
3445 long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
3446 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3447 }
3448
3452 public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
3453 long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
3454 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3455 }
3456
3457 public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
3458 long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
3459 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3460 }
3461
3463 long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
3464 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3465 }
3466
3467 public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
3468 long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
3469 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3470 }
3471
3481 public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
3482 long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
3483 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3484 }
3485
3486 public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
3487 long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
3488 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3489 }
3490
3499 long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
3500 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3501 }
3502
3511 public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
3512 long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
3513 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3514 }
3515
3548 long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
3549 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3550 }
3551
3553 long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
3554 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3555 }
3556
3558 long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
3559 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3560 }
3561
3567 long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
3568 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3569 }
3570
3577 long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
3578 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3579 }
3580
3590 public LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize) {
3591 long cPtr = mainJNI.Solver_MultiArmedBanditConcatenateOperators(swigCPtr, this, ops, memory_coefficient, exploration_coefficient, maximize);
3592 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3593 }
3594
3603 long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
3604 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3605 }
3606
3633 long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3634 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3635 }
3636
3638 try {
3639 long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3640 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3641 } finally {
3642 keepAliveDecisionBuilder(first_solution);
3643 }
3644 }
3645
3649 public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
3650 try {
3651 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);
3652 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3653 } finally {
3654 keepAliveDecisionBuilder(first_solution);
3655 keepAliveDecisionBuilder(first_solution_sub_decision_builder);
3656 }
3657 }
3658
3660 try {
3661 long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3662 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3663 } finally {
3664 keepAliveDecisionBuilder(first_solution);
3665 }
3666 }
3667
3672 long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
3673 return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
3674 }
3675
3680 try {
3681 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);
3682 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3683 } finally {
3684 keepAliveDecisionBuilder(sub_decision_builder);
3685 }
3686 }
3687
3689 try {
3690 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);
3691 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3692 } finally {
3693 keepAliveDecisionBuilder(sub_decision_builder);
3694 }
3695 }
3696
3698 try {
3699 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);
3700 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3701 } finally {
3702 keepAliveDecisionBuilder(sub_decision_builder);
3703 }
3704 }
3705
3707 try {
3708 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);
3709 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3710 } finally {
3711 keepAliveDecisionBuilder(sub_decision_builder);
3712 }
3713 }
3714
3716 try {
3717 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);
3718 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3719 } finally {
3720 keepAliveDecisionBuilder(sub_decision_builder);
3721 }
3722 }
3723
3725 try {
3726 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);
3727 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3728 } finally {
3729 keepAliveDecisionBuilder(sub_decision_builder);
3730 }
3731 }
3732
3737 long cPtr = mainJNI.Solver_MakeAcceptFilter(swigCPtr, this);
3738 return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3739 }
3740
3742 long cPtr = mainJNI.Solver_MakeRejectFilter(swigCPtr, this);
3743 return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3744 }
3745
3747 long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
3748 return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3749 }
3750
3751 public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum) {
3752 long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, filter_enum);
3753 return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3754 }
3755
3756 public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum) {
3757 long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, secondary_vars, values, filter_enum);
3758 return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3759 }
3760
3765 public void topPeriodicCheck() {
3766 mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
3767 }
3768
3774 public int topProgressPercent() {
3775 return mainJNI.Solver_topProgressPercent(swigCPtr, this);
3776 }
3777
3783 public void pushState() {
3784 mainJNI.Solver_pushState(swigCPtr, this);
3785 }
3786
3787 public void popState() {
3788 mainJNI.Solver_popState(swigCPtr, this);
3789 }
3790
3795 public int searchDepth() {
3796 return mainJNI.Solver_searchDepth(swigCPtr, this);
3797 }
3798
3803 public int searchLeftDepth() {
3804 return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
3805 }
3806
3811 public int solveDepth() {
3812 return mainJNI.Solver_solveDepth(swigCPtr, this);
3813 }
3814
3818 public long rand64(long size) {
3819 return mainJNI.Solver_rand64(swigCPtr, this, size);
3820 }
3821
3825 public int rand32(int size) {
3826 return mainJNI.Solver_rand32(swigCPtr, this, size);
3827 }
3828
3832 public void reSeed(int seed) {
3833 mainJNI.Solver_reSeed(swigCPtr, this, seed);
3834 }
3835
3841 public void exportProfilingOverview(String filename) {
3842 mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3843 }
3844
3848 public String localSearchProfile() {
3849 return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3850 }
3851
3857 public boolean currentlyInSolve() {
3858 return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3859 }
3860
3865 public int constraints() {
3866 return mainJNI.Solver_constraints(swigCPtr, this);
3867 }
3868
3872 public void accept(ModelVisitor visitor) {
3873 mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3874 }
3875
3877 long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3878 return (cPtr == 0) ? null : new Decision(cPtr, false);
3879 }
3880
3884 public void clear_fail_intercept() {
3885 mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3886 }
3887
3892 public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3893 mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3894 }
3895
3899 public boolean UseFastLocalSearch() {
3900 return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3901 }
3902
3906 public boolean hasName(PropagationBaseObject object) {
3907 return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3908 }
3909
3913 public Demon registerDemon(Demon demon) {
3914 long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3915 return (cPtr == 0) ? null : new Demon(cPtr, false);
3916 }
3917
3922 long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3923 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3924 }
3925
3930 long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3931 return (cPtr == 0) ? null : new IntVar(cPtr, false);
3932 }
3933
3939 long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3940 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3941 }
3942
3947 long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3948 return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3949 }
3950
3954 public boolean instrumentsDemons() {
3955 return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3956 }
3957
3961 public boolean isProfilingEnabled() {
3962 return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3963 }
3964
3969 return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3970 }
3971
3975 public boolean instrumentsVariables() {
3976 return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3977 }
3978
3982 public boolean nameAllVariables() {
3983 return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3984 }
3985
3989 public String model_name() {
3990 return mainJNI.Solver_model_name(swigCPtr, this);
3991 }
3992
3997 long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3998 return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3999 }
4000
4006 mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
4007 }
4008
4013 long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
4014 return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
4015 }
4016
4022 mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
4023 }
4024
4029 long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
4030 return (cPtr == 0) ? null : new Assignment(cPtr, false);
4031 }
4032
4037 mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
4038 }
4039
4046 public void setTmpVector(long[] value) {
4047 mainJNI.Solver_tmpVector_set(swigCPtr, this, value);
4048 }
4049
4056 public long[] getTmpVector() {
4057 return mainJNI.Solver_tmpVector_get(swigCPtr, this);
4058}
4059
4065 long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
4066 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
4067 }
4068
4072 public void finishCurrentSearch() {
4073 mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
4074 }
4075
4076 public void restartCurrentSearch() {
4077 mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
4078 }
4079
4084 public void shouldFail() {
4085 mainJNI.Solver_shouldFail(swigCPtr, this);
4086 }
4087
4088 public void checkFail() {
4089 mainJNI.Solver_checkFail(swigCPtr, this);
4090 }
4091
4096 try {
4097 long cPtr = mainJNI.Solver_MakeProfiledDecisionBuilderWrapper(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
4098 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
4099 } finally {
4101 }
4102 }
4103
4107 public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
4108 // IntVarStrategy
4117 public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
4121 public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
4127 public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
4131 public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
4140 public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
4149 public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
4158 public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
4167 public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
4174 public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
4181 public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
4187 public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
4193 public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
4198 public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
4203 public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
4204
4205 // IntValueStrategy
4214 public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
4218 public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
4222 public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
4226 public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
4230 public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
4236 public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
4241 public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
4246 public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
4247
4248 // EvaluatorStrategy
4268 public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
4275 public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
4276
4277 // SequenceStrategy
4282 public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
4283 public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
4284 public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
4285 public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
4286
4287 // IntervalStrategy
4296 public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
4300 public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
4305 public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
4310 public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
4311
4312 // LocalSearchOperators
4329 public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
4346 public final static int OROPT = mainJNI.Solver_OROPT_get();
4350 public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
4360 public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
4372 public final static int CROSS = mainJNI.Solver_CROSS_get();
4381 public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
4389 public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
4398 public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
4406 public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
4419 public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
4429 public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
4434 public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
4440 public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
4451 public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
4457 public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
4467 public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
4468
4469 // EvaluatorLocalSearchOperators
4481 public final static int LK = mainJNI.Solver_LK_get();
4490 public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
4499 public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
4500
4501 // LocalSearchFilterBound
4512 public final static int GE = mainJNI.Solver_GE_get();
4516 public final static int LE = mainJNI.Solver_LE_get();
4521 public final static int EQ = mainJNI.Solver_EQ_get();
4522
4523 // DemonPriority
4534 public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
4538 public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
4542 public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
4543
4544 // BinaryIntervalRelation
4553 public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
4557 public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
4561 public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
4565 public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
4569 public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
4573 public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
4577 public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
4581 public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
4587 public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
4588
4589 // UnaryIntervalRelation
4598 public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
4602 public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
4606 public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
4610 public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
4614 public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
4618 public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
4624 public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
4630 public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
4631
4632 // DecisionModification
4645 public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
4651 public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
4657 public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
4662 public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
4667 public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
4668
4669 // MarkerType
4675 public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
4676 public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
4677 public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
4678 public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
4679
4680 // SolverState
4688 public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
4692 public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
4696 public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
4700 public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
4704 public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
4708 public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
4709
4710 // OptimizationDirection
4715 public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
4716 public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
4717 public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
4718
4719}
An Assignment is a variable -> domains mapping, used to report solutions to the user.
Definition: Assignment.java:15
Cast constraints are special channeling constraints designed to keep a variable in sync with an expr...
A DecisionBuilder is responsible for creating the search tree.
A Decision represents a choice point in the search tree.
Definition: Decision.java:15
This struct holds all parameters for the default search.
A Demon is the base element of a propagation queue.
Definition: Demon.java:22
The class IntExpr is the base of all integer expressions in constraint programming.
Definition: IntExpr.java:20
Filter manager: when a move is made, filters are executed to decide whether the solution is feasible...
Classes to which this template function can be applied to as of 04/2014.
This class represent a reversible FIFO structure.
Implements a complete cache for model elements: expressions and constraints.
Definition: ModelCache.java:17
This class encapsulates an objective.
NOLINT The PropagationBaseObject is a subclass of BaseObject that is also friend to the Solver clas...
Usual limit based on wall_time, number of explored branches and number of failures in the search tre...
Base class of all search limits.
A search monitor is a simple set of callbacks to monitor all search events.
A sequence variable is a variable whose domain is a set of possible orderings of the interval variab...
This class is the root class of all solution collectors.
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:107
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var...
Definition: Solver.java:205
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:237
Solver Class A solver represents the main computation engine.
Definition: Solver.java:76
void keepAliveDecisionBuilder(DecisionBuilder db)
Definition: Solver.java:187
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1693
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1248
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:3162
long stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:686
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:1023
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:903
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:4696
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:2744
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3968
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3697
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1701
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3818
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1677
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:1047
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:3172
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:1827
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:1144
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:1192
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:2282
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:1112
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:751
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1942
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1296
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3825
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:2184
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1424
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:3783
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1620
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:1083
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2950
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:4036
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:958
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1240
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1523
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1541
Constraint makeInversePermutationConstraint(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that 'left' and 'right' both represent permutations of [0....
Definition: Solver.java:1856
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:3303
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1408
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2451
Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1736
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:4174
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:2395
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1929
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2686
long neighbors()
The number of neighbors created.
Definition: Solver.java:664
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1533
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:3195
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:2241
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:4429
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:3097
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:4064
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:4012
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:4241
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1216
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:3290
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:4193
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1625
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:743
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:847
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:999
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:2138
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:4282
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum)
Definition: Solver.java:3756
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:2076
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:815
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:2347
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:4310
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNei...
Definition: Solver.java:3576
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:1997
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2848
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler)
Prevent cycles.
Definition: Solver.java:1913
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:2028
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2459
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1376
void setTmpVector(long[] value)
Unsafe temporary vector.
Definition: Solver.java:4046
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:2884
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1488
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:4708
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:4117
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:1200
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:983
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:629
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:1184
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:3602
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:4704
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:4406
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:1756
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:759
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assign...
Definition: Solver.java:2516
Decision MakeAssignVariablesValuesOrFail(IntVar[] vars, long[] values)
Definition: Solver.java:3003
static final int DELAYED_PRIORITY
This enum represents the three possible priorities for a demon in the Solver queue.
Definition: Solver.java:4534
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:783
void set_optimization_direction(int direction)
Definition: Solver.java:704
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1493
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:1984
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3982
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3929
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:4645
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1717
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:1136
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:4618
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:4521
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:3552
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:950
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1709
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:1552
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:799
IntExpr makeModulo(IntExpr x, long mod)
General piecewise-linear function expression, built from f(x) where f is piecewise-linear.
Definition: Solver.java:1067
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3467
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:3157
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:1897
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:2409
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:4107
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1579
Solver(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:80
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2770
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1352
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to c...
Definition: Solver.java:3765
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:831
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:3386
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:791
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2590
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:2106
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1368
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:3706
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:3511
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1272
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:357
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:4140
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:4218
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:2007
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2476
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:4214
Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:3224
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:444
LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:3590
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:919
void newSearch(DecisionBuilder db)
Definition: Solver.java:471
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1633
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:3190
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional, String name)
Definition: Solver.java:167
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1288
static final int KEEP_LEFT
Right branches are ignored.
Definition: Solver.java:4651
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1440
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional)
Definition: Solver.java:151
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:2875
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1518
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:420
IntVar[] makeIntVarArray(int count, long min, long max, String name)
Definition: Solver.java:125
DecisionBuilder makePhase(IntVar v0, int var_str, int val_str)
Shortcuts for small arrays.
Definition: Solver.java:3185
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1256
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:863
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:4222
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:3649
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:3498
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:700
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:2195
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3865
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:2671
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:4606
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1458
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:3422
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3841
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:4350
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:3811
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:871
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2927
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:1176
Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1746
boolean solve(DecisionBuilder db)
Definition: Solver.java:412
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1384
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:3152
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:719
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1528
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:671
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1468
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:3323
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:3795
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:4072
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:2118
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:4667
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1662
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2539
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:3281
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1606
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:3254
IntExpr makeScalProd(IntVar[] vars, int[] coefs)
scalar product
Definition: Solver.java:823
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:3314
static long memoryUsage()
Current memory usage in bytes.
Definition: Solver.java:614
static final int OUTSIDE_SEARCH
This enum represents the state of the solver w.r.t.
Definition: Solver.java:4688
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:4538
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:775
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:2164
void fail()
Abandon the current branch in the search tree.
Definition: Solver.java:600
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:2173
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3832
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:2866
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2564
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:487
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:277
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:3413
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:3242
static final int ENDS_AFTER_END
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between the tw...
Definition: Solver.java:4553
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:4440
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver...
Definition: Solver.java:4084
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:2056
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:4181
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:895
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branche...
Definition: Solver.java:2840
Decision MakeAssignVariablesValuesOrDoNothing(IntVar[] vars, long[] values)
Definition: Solver.java:2998
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:4542
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:2762
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2614
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:550
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1432
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1478
void keepAliveDecisionBuilder(DecisionBuilder[] dbs)
Definition: Solver.java:193
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:503
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2978
SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assign...
Definition: Solver.java:2504
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:3268
static final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:4662
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:1015
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:2423
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1685
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:4329
IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index)
Function based element.
Definition: Solver.java:942
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:1160
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2793
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:3632
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:3350
LocalSearchOperator makeOperator(IntVar[] vars, int op)
Local Search Operators.
Definition: Solver.java:3452
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:1766
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:4577
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:3087
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:767
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:1099
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:643
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:4512
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:4516
ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance)
Limits the search based on the improvements of 'objective_var'.
Definition: Solver.java:2822
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:3481
static final int MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:4381
Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1805
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:4127
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3688
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1508
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:3557
static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters()
Create a ConstraintSolverParameters proto with all the default values.
Definition: Solver.java:300
long[] getTmpVector()
Unsafe temporary vector.
Definition: Solver.java:4056
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2676
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:4230
IntVar makeIntVar(long min, long max, String name)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:711
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1416
void newSearch(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:479
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2467
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:566
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2735
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1463
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3975
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:3276
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:2217
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1344
IntVar[] makeBoolVarArray(int count, String name)
Definition: Solver.java:142
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2526
Constraint makeCover(IntervalVar[] vars, IntervalVar target_var)
This constraint states that the target_var is the convex hull of the intervals.
Definition: Solver.java:2435
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:2042
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:4246
LocalSearchFilter makeVariableDomainFilter()
Definition: Solver.java:3746
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1667
static final int STARTS_AT
t starts at d, i.e.
Definition: Solver.java:4614
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2988
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:3133
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:855
static final int AVOID_DATE
STARTS_AFTER or ENDS_BEFORE, i.e.
Definition: Solver.java:4630
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:3167
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:4203
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:4561
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1503
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:1962
Demon makeConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of...
Definition: Solver.java:1561
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3637
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:991
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:3038
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:4457
IntExpr makeSum(IntVar[] vars)
sum of all vars.
Definition: Solver.java:807
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1232
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2940
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:4187
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an int...
Definition: Solver.java:4598
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:4268
Constraint makeLexicalLessOrEqual(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than or equal to right.
Definition: Solver.java:1845
IntVar makeIntVar(long min, long max)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:735
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:1168
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2906
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:4005
DecisionBuilder MakeProfiledDecisionBuilderWrapper(DecisionBuilder db)
Activates profiling on a decision builder.
Definition: Solver.java:4095
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:2654
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2968
Constraint makeGreaterOrEqual(IntExpr expr, int value)
expr >= value
Definition: Solver.java:1328
IntExpr makeElement(long[] values, IntVar index)
values[index]
Definition: Solver.java:911
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:4158
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:1128
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:3013
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:2206
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of...
Definition: Solver.java:1571
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2857
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:2811
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2831
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2662
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:636
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2955
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2695
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:428
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1312
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:1951
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2893
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:3486
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:2363
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2622
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:1039
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1786
static final int MAKEINACTIVE
Operator which makes path nodes inactive.
Definition: Solver.java:4389
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1513
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:4419
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3848
Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:3212
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2945
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2993
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:3341
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3938
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1587
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1453
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:678
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2572
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:4167
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:2155
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-l...
Definition: Solver.java:3774
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:2753
RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time)
Creates a search limit that constrains the running time.
Definition: Solver.java:2703
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:2265
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:1120
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:2645
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2983
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:436
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:4296
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2443
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:4581
long fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:693
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:3547
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2493
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:2379
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:4300
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1796
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:1654
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1473
static final int NOT_SET
Optimization directions.
Definition: Solver.java:4715
DecisionBuilder makeLocalSearchPhase(SequenceVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3659
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1638
RegularLimit makeTimeLimit(long time_in_ms)
Definition: Solver.java:2708
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:1646
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:1031
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:1726
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:929
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:4657
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:879
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1320
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:1208
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:3233
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:4398
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2531
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:1874
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2321
static final int ENDS_AT
t ends at d, i.e.
Definition: Solver.java:4602
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:1865
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3946
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1304
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3462
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2606
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2484
static final int LK
This enum is used in Solver::MakeOperator associated with an evaluator to specify the neighborhood t...
Definition: Solver.java:4481
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3996
Constraint makeLessOrEqual(IntExpr expr, long value)
expr <= value
Definition: Solver.java:1264
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:4275
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:2081
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:404
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:2274
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2331
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:4121
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3724
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1934
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:1007
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:4434
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3899
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Definition: Solver.java:2785
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1448
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1672
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:2071
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2901
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2598
Constraint makeMapDomain(IntVar var, IntVar[] actives)
This constraint maps the domain of 'var' onto the array of variables 'actives'.
Definition: Solver.java:2017
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:4372
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:887
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3892
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:3049
static final int ASSIGN_MAX_VALUE
Selects the max value of the selected variable.
Definition: Solver.java:4226
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:1777
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2973
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2919
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum)
Definition: Solver.java:3751
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3913
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:4451
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:2096
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:4700
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:3200
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:1885
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2556
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2, IntVar alt)
This constraint implements a temporal disjunction between two interval vars t1 and t2.
Definition: Solver.java:2303
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Definition: Solver.java:2775
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:2129
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:3679
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:3332
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:4149
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:3359
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:1104
String toString()
misc debug string.
Definition: Solver.java:607
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3954
boolean checkConstraint(Constraint ct)
Checks whether adding this constraint will lead to an immediate failure.
Definition: Solver.java:586
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1360
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:3435
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3921
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:2147
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1392
String model_name()
Returns the name of the model.
Definition: Solver.java:3989
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1280
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:4305
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:4573
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:622
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:727
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:2101
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:3404
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1400
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:3177
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2911
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than right.
Definition: Solver.java:1836
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:967
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:1152
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:4565
LocalSearchFilter MakeAcceptFilter()
Local Search Filters.
Definition: Solver.java:3736
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:4131
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:3138
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:2312
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1483
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3872
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:4346
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:3120
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3906
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2581
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:1971
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:2293
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:657
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:463
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Definition: Solver.java:2780
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1224
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:3671
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2963
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:4028
com.google.ortools.constraintsolver.ConstraintSolverParameters parameters()
Stored Parameters.
Definition: Solver.java:284
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:1056
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:558
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2935
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:4692
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:3444
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:4569
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:4587
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:4467
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:975
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:3395
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:3028
static final int CROSS_DATE
STARTS_BEFORE and ENDS_AFTER at the same time, i.e.
Definition: Solver.java:4624
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1611
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states...
Definition: Solver.java:4675
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:3457
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:3061
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNei...
Definition: Solver.java:3566
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch...
Definition: Solver.java:3857
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:3108
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1498
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:1091
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:650
RegularLimit makeBranchesLimit(long branches)
Creates a search limit that constrains the number of branches explored in the search tree.
Definition: Solver.java:2717
boolean isProfilingEnabled()
Returns whether we are profiling the solver.
Definition: Solver.java:3961
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:4490
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:4236
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:4021
IntVar[] makeIntVarArray(int count, long min, long max)
Definition: Solver.java:117
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:3143
int searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:3803
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:1598
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:495
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:1075
int state()
State of the solver.
Definition: Solver.java:593
boolean checkAssignment(Assignment solution)
Checks whether the given assignment satisfies all relevant constraints.
Definition: Solver.java:577
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:4360
IntExpr makeDifference(long value, IntExpr expr)
value - expr
Definition: Solver.java:839
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:4198
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sea...
Definition: Solver.java:2726
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3715
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:3377
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:534
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1336
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2548
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:4610
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:4499
void addConstraint(Constraint c)
Adds the constraint 'c' to the model.
Definition: Solver.java:348
boolean solveAndCommit(DecisionBuilder db)
Definition: Solver.java:542
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:4557
A symmetry breaker is an object that will visit a decision and create the 'symmetrical' decision in ...
Represents a function that accepts two int-valued arguments and produces a long-valued result.
Represents a predicate (boolean-valued function) uppon three.