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
73public class Solver {
74 private transient long swigCPtr;
75 protected transient boolean swigCMemOwn;
76
77 protected Solver(long cPtr, boolean cMemoryOwn) {
78 swigCMemOwn = cMemoryOwn;
79 swigCPtr = cPtr;
80 }
81
82 protected static long getCPtr(Solver obj) {
83 return (obj == null) ? 0 : obj.swigCPtr;
84 }
85
86 @SuppressWarnings("deprecation")
87 protected void finalize() {
88 delete();
89 }
90
91 public synchronized void delete() {
92 if (swigCPtr != 0) {
93 if (swigCMemOwn) {
94 swigCMemOwn = false;
95 mainJNI.delete_Solver(swigCPtr);
96 }
97 swigCPtr = 0;
98 }
99 }
100
104 public static class FailException extends Exception {
105 public FailException() {
106 super();
107 }
108
109 public FailException(String message) {
110 super(message);
111 }
112 }
113
114 public IntVar[] makeIntVarArray(int count, long min, long max) {
115 IntVar[] array = new IntVar[count];
116 for (int i = 0; i < count; ++i) {
117 array[i] = makeIntVar(min, max);
118 }
119 return array;
120 }
121
122 public IntVar[] makeIntVarArray(int count, long min, long max, String name) {
123 IntVar[] array = new IntVar[count];
124 for (int i = 0; i < count; ++i) {
125 String var_name = name + i;
126 array[i] = makeIntVar(min, max, var_name);
127 }
128 return array;
129 }
130
131 public IntVar[] makeBoolVarArray(int count) {
132 IntVar[] array = new IntVar[count];
133 for (int i = 0; i < count; ++i) {
134 array[i] = makeBoolVar();
135 }
136 return array;
137 }
138
139 public IntVar[] makeBoolVarArray(int count, String name) {
140 IntVar[] array = new IntVar[count];
141 for (int i = 0; i < count; ++i) {
142 String var_name = name + i;
143 array[i] = makeBoolVar(var_name);
144 }
145 return array;
146 }
147
149 long start_min,
150 long start_max,
151 long duration,
152 boolean optional) {
153 IntervalVar[] array = new IntervalVar[count];
154 for (int i = 0; i < count; ++i) {
155 array[i] = makeFixedDurationIntervalVar(start_min,
156 start_max,
157 duration,
158 optional,
159 "");
160 }
161 return array;
162 }
163
165 long start_min,
166 long start_max,
167 long duration,
168 boolean optional,
169 String name) {
170 IntervalVar[] array = new IntervalVar[count];
171 for (int i = 0; i < count; ++i) {
172 array[i] = makeFixedDurationIntervalVar(start_min,
173 start_max,
174 duration,
175 optional,
176 name + i);
177 }
178 return array;
179 }
180
187 static public class IntegerCastInfo {
188 private transient long swigCPtr;
189 protected transient boolean swigCMemOwn;
190
191 protected IntegerCastInfo(long cPtr, boolean cMemoryOwn) {
192 swigCMemOwn = cMemoryOwn;
193 swigCPtr = cPtr;
194 }
195
196 protected static long getCPtr(IntegerCastInfo obj) {
197 return (obj == null) ? 0 : obj.swigCPtr;
198 }
199
200 @SuppressWarnings("deprecation")
201 protected void finalize() {
202 delete();
203 }
204
205 public synchronized void delete() {
206 if (swigCPtr != 0) {
207 if (swigCMemOwn) {
208 swigCMemOwn = false;
209 mainJNI.delete_Solver_IntegerCastInfo(swigCPtr);
210 }
211 swigCPtr = 0;
212 }
213 }
214
216 this(mainJNI.new_Solver_IntegerCastInfo__SWIG_0(), true);
217 }
218
220 this(mainJNI.new_Solver_IntegerCastInfo__SWIG_1(IntVar.getCPtr(v), v, IntExpr.getCPtr(e), e, Constraint.getCPtr(c), c), true);
221 }
222
223 public void setVariable(IntVar value) {
224 mainJNI.Solver_IntegerCastInfo_variable_set(swigCPtr, this, IntVar.getCPtr(value), value);
225 }
226
228 long cPtr = mainJNI.Solver_IntegerCastInfo_variable_get(swigCPtr, this);
229 return (cPtr == 0) ? null : new IntVar(cPtr, false);
230 }
231
232 public void setExpression(IntExpr value) {
233 mainJNI.Solver_IntegerCastInfo_expression_set(swigCPtr, this, IntExpr.getCPtr(value), value);
234 }
235
237 long cPtr = mainJNI.Solver_IntegerCastInfo_expression_get(swigCPtr, this);
238 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
239 }
240
241 public void setMaintainer(Constraint value) {
242 mainJNI.Solver_IntegerCastInfo_maintainer_set(swigCPtr, this, Constraint.getCPtr(value), value);
243 }
244
246 long cPtr = mainJNI.Solver_IntegerCastInfo_maintainer_get(swigCPtr, this);
247 return (cPtr == 0) ? null : new Constraint(cPtr, false);
248 }
249
250 }
251
255 public Solver(String name) {
256 this(mainJNI.new_Solver__SWIG_0(name), true);
257 }
258
259 public Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters) {
260 this(mainJNI.new_Solver__SWIG_1(name, parameters.toByteArray()), true);
261 }
262
266 public com.google.ortools.constraintsolver.ConstraintSolverParameters parameters() {
267 byte[] buf = mainJNI.Solver_parameters(swigCPtr, this);
268 if (buf == null || buf.length == 0) {
269 return null;
270 }
271 try {
272 return com.google.ortools.constraintsolver.ConstraintSolverParameters.parseFrom(buf);
273 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
274 throw new RuntimeException(
275 "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
276 }
277}
278
282 public static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters() {
283 byte[] buf = mainJNI.Solver_defaultSolverParameters();
284 if (buf == null || buf.length == 0) {
285 return null;
286 }
287 try {
288 return com.google.ortools.constraintsolver.ConstraintSolverParameters.parseFrom(buf);
289 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
290 throw new RuntimeException(
291 "Unable to parse com.google.ortools.constraintsolver.ConstraintSolverParameters protocol message.");
292 }
293}
294
330 public void addConstraint(Constraint c) {
331 mainJNI.Solver_addConstraint(swigCPtr, this, Constraint.getCPtr(c), c);
332 }
333
339 public void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr) {
340 mainJNI.Solver_addCastConstraint(swigCPtr, this, CastConstraint.getCPtr(constraint), constraint, IntVar.getCPtr(target_var), target_var, IntExpr.getCPtr(expr), expr);
341 }
342
386 public boolean solve(DecisionBuilder db, SearchMonitor[] monitors) {
387 return mainJNI.Solver_solve__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
388 }
389
390 public boolean solve(DecisionBuilder db) {
391 return mainJNI.Solver_solve__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
392 }
393
394 public boolean solve(DecisionBuilder db, SearchMonitor m1) {
395 return mainJNI.Solver_solve__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
396 }
397
399 return mainJNI.Solver_solve__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
400 }
401
403 return mainJNI.Solver_solve__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
404 }
405
407 return mainJNI.Solver_solve__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3, SearchMonitor.getCPtr(m4), m4);
408 }
409
421 public void newSearch(DecisionBuilder db, SearchMonitor[] monitors) {
422 mainJNI.Solver_newSearch__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
423 }
424
425 public void newSearch(DecisionBuilder db) {
426 mainJNI.Solver_newSearch__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
427 }
428
430 mainJNI.Solver_newSearch__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
431 }
432
434 mainJNI.Solver_newSearch__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
435 }
436
438 mainJNI.Solver_newSearch__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
439 }
440
442 mainJNI.Solver_newSearch__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3, SearchMonitor.getCPtr(m4), m4);
443 }
444
445 public boolean nextSolution() {
446 return mainJNI.Solver_nextSolution(swigCPtr, this);
447 }
448
449 public void restartSearch() {
450 mainJNI.Solver_restartSearch(swigCPtr, this);
451 }
452
453 public void endSearch() {
454 mainJNI.Solver_endSearch(swigCPtr, this);
455 }
456
468 public boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors) {
469 return mainJNI.Solver_solveAndCommit__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
470 }
471
472 public boolean solveAndCommit(DecisionBuilder db) {
473 return mainJNI.Solver_solveAndCommit__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
474 }
475
477 return mainJNI.Solver_solveAndCommit__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1);
478 }
479
481 return mainJNI.Solver_solveAndCommit__SWIG_3(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2);
482 }
483
485 return mainJNI.Solver_solveAndCommit__SWIG_4(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(m1), m1, SearchMonitor.getCPtr(m2), m2, SearchMonitor.getCPtr(m3), m3);
486 }
487
491 public boolean checkAssignment(Assignment solution) {
492 return mainJNI.Solver_checkAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
493 }
494
500 public boolean checkConstraint(Constraint ct) {
501 return mainJNI.Solver_checkConstraint(swigCPtr, this, Constraint.getCPtr(ct), ct);
502 }
503
507 public int state() {
508 return mainJNI.Solver_state(swigCPtr, this);
509 }
510
514 public void fail() {
515 mainJNI.Solver_fail(swigCPtr, this);
516 }
517
521 public String toString() {
522 return mainJNI.Solver_toString(swigCPtr, this);
523 }
524
528 public static long memoryUsage() {
529 return mainJNI.Solver_memoryUsage();
530 }
531
536 public long wallTime() {
537 return mainJNI.Solver_wallTime(swigCPtr, this);
538 }
539
543 public long branches() {
544 return mainJNI.Solver_branches(swigCPtr, this);
545 }
546
550 public long solutions() {
551 return mainJNI.Solver_solutions(swigCPtr, this);
552 }
553
557 public long unchecked_solutions() {
558 return mainJNI.Solver_unchecked_solutions(swigCPtr, this);
559 }
560
564 public long demon_runs(int p) {
565 return mainJNI.Solver_demon_runs(swigCPtr, this, p);
566 }
567
571 public long failures() {
572 return mainJNI.Solver_failures(swigCPtr, this);
573 }
574
578 public long neighbors() {
579 return mainJNI.Solver_neighbors(swigCPtr, this);
580 }
581
585 public long filteredNeighbors() {
586 return mainJNI.Solver_filteredNeighbors(swigCPtr, this);
587 }
588
592 public long acceptedNeighbors() {
593 return mainJNI.Solver_acceptedNeighbors(swigCPtr, this);
594 }
595
600 public long stamp() {
601 return mainJNI.Solver_stamp(swigCPtr, this);
602 }
603
607 public long fail_stamp() {
608 return mainJNI.Solver_fail_stamp(swigCPtr, this);
609 }
610
615 return mainJNI.Solver_optimization_direction(swigCPtr, this);
616 }
617
618 public void set_optimization_direction(int direction) {
619 mainJNI.Solver_set_optimization_direction(swigCPtr, this, direction);
620 }
621
625 public IntVar makeIntVar(long min, long max, String name) {
626 long cPtr = mainJNI.Solver_makeIntVar__SWIG_0(swigCPtr, this, min, max, name);
627 return (cPtr == 0) ? null : new IntVar(cPtr, false);
628 }
629
633 public IntVar makeIntVar(long[] values, String name) {
634 long cPtr = mainJNI.Solver_makeIntVar__SWIG_1(swigCPtr, this, values, name);
635 return (cPtr == 0) ? null : new IntVar(cPtr, false);
636 }
637
641 public IntVar makeIntVar(int[] values, String name) {
642 long cPtr = mainJNI.Solver_makeIntVar__SWIG_2(swigCPtr, this, values, name);
643 return (cPtr == 0) ? null : new IntVar(cPtr, false);
644 }
645
649 public IntVar makeIntVar(long min, long max) {
650 long cPtr = mainJNI.Solver_makeIntVar__SWIG_3(swigCPtr, this, min, max);
651 return (cPtr == 0) ? null : new IntVar(cPtr, false);
652 }
653
657 public IntVar makeIntVar(long[] values) {
658 long cPtr = mainJNI.Solver_makeIntVar__SWIG_4(swigCPtr, this, values);
659 return (cPtr == 0) ? null : new IntVar(cPtr, false);
660 }
661
665 public IntVar makeIntVar(int[] values) {
666 long cPtr = mainJNI.Solver_makeIntVar__SWIG_5(swigCPtr, this, values);
667 return (cPtr == 0) ? null : new IntVar(cPtr, false);
668 }
669
673 public IntVar makeBoolVar(String name) {
674 long cPtr = mainJNI.Solver_makeBoolVar__SWIG_0(swigCPtr, this, name);
675 return (cPtr == 0) ? null : new IntVar(cPtr, false);
676 }
677
682 long cPtr = mainJNI.Solver_makeBoolVar__SWIG_1(swigCPtr, this);
683 return (cPtr == 0) ? null : new IntVar(cPtr, false);
684 }
685
689 public IntVar makeIntConst(long val, String name) {
690 long cPtr = mainJNI.Solver_makeIntConst__SWIG_0(swigCPtr, this, val, name);
691 return (cPtr == 0) ? null : new IntVar(cPtr, false);
692 }
693
697 public IntVar makeIntConst(long val) {
698 long cPtr = mainJNI.Solver_makeIntConst__SWIG_1(swigCPtr, this, val);
699 return (cPtr == 0) ? null : new IntVar(cPtr, false);
700 }
701
705 public IntExpr makeSum(IntExpr left, IntExpr right) {
706 long cPtr = mainJNI.Solver_makeSum__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
707 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
708 }
709
713 public IntExpr makeSum(IntExpr expr, long value) {
714 long cPtr = mainJNI.Solver_makeSum__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
715 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
716 }
717
721 public IntExpr makeSum(IntVar[] vars) {
722 long cPtr = mainJNI.Solver_makeSum__SWIG_2(swigCPtr, this, vars);
723 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
724 }
725
729 public IntExpr makeScalProd(IntVar[] vars, long[] coefs) {
730 long cPtr = mainJNI.Solver_makeScalProd__SWIG_0(swigCPtr, this, vars, coefs);
731 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
732 }
733
737 public IntExpr makeScalProd(IntVar[] vars, int[] coefs) {
738 long cPtr = mainJNI.Solver_makeScalProd__SWIG_1(swigCPtr, this, vars, coefs);
739 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
740 }
741
745 public IntExpr makeDifference(IntExpr left, IntExpr right) {
746 long cPtr = mainJNI.Solver_makeDifference__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
747 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
748 }
749
753 public IntExpr makeDifference(long value, IntExpr expr) {
754 long cPtr = mainJNI.Solver_makeDifference__SWIG_1(swigCPtr, this, value, IntExpr.getCPtr(expr), expr);
755 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
756 }
757
762 long cPtr = mainJNI.Solver_makeOpposite(swigCPtr, this, IntExpr.getCPtr(expr), expr);
763 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
764 }
765
769 public IntExpr makeProd(IntExpr left, IntExpr right) {
770 long cPtr = mainJNI.Solver_makeProd__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
771 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
772 }
773
777 public IntExpr makeProd(IntExpr expr, long value) {
778 long cPtr = mainJNI.Solver_makeProd__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
779 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
780 }
781
785 public IntExpr makeDiv(IntExpr expr, long value) {
786 long cPtr = mainJNI.Solver_makeDiv__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
787 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
788 }
789
793 public IntExpr makeDiv(IntExpr numerator, IntExpr denominator) {
794 long cPtr = mainJNI.Solver_makeDiv__SWIG_1(swigCPtr, this, IntExpr.getCPtr(numerator), numerator, IntExpr.getCPtr(denominator), denominator);
795 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
796 }
797
801 public IntExpr makeAbs(IntExpr expr) {
802 long cPtr = mainJNI.Solver_makeAbs(swigCPtr, this, IntExpr.getCPtr(expr), expr);
803 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
804 }
805
810 long cPtr = mainJNI.Solver_makeSquare(swigCPtr, this, IntExpr.getCPtr(expr), expr);
811 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
812 }
813
817 public IntExpr makePower(IntExpr expr, long n) {
818 long cPtr = mainJNI.Solver_makePower(swigCPtr, this, IntExpr.getCPtr(expr), expr, n);
819 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
820 }
821
825 public IntExpr makeElement(long[] values, IntVar index) {
826 long cPtr = mainJNI.Solver_makeElement__SWIG_0(swigCPtr, this, values, IntVar.getCPtr(index), index);
827 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
828 }
829
833 public IntExpr makeElement(int[] values, IntVar index) {
834 long cPtr = mainJNI.Solver_makeElement__SWIG_1(swigCPtr, this, values, IntVar.getCPtr(index), index);
835 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
836 }
837
843 public IntExpr makeElement(LongUnaryOperator values, IntVar index) {
844 long cPtr = mainJNI.Solver_makeElement__SWIG_2(swigCPtr, this, values, IntVar.getCPtr(index), index);
845 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
846 }
847
856 public IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index) {
857 long cPtr = mainJNI.Solver_makeMonotonicElement(swigCPtr, this, values, increasing, IntVar.getCPtr(index), index);
858 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
859 }
860
864 public IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2) {
865 long cPtr = mainJNI.Solver_makeElement__SWIG_3(swigCPtr, this, values, IntVar.getCPtr(index1), index1, IntVar.getCPtr(index2), index2);
866 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
867 }
868
872 public IntExpr makeElement(IntVar[] vars, IntVar index) {
873 long cPtr = mainJNI.Solver_makeElement__SWIG_4(swigCPtr, this, vars, IntVar.getCPtr(index), index);
874 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
875 }
876
881 public IntExpr makeIndexExpression(IntVar[] vars, long value) {
882 long cPtr = mainJNI.Solver_makeIndexExpression(swigCPtr, this, vars, value);
883 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
884 }
885
889 public Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var) {
890 long cPtr = mainJNI.Solver_makeIfThenElseCt(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(then_expr), then_expr, IntExpr.getCPtr(else_expr), else_expr, IntVar.getCPtr(target_var), target_var);
891 return (cPtr == 0) ? null : new Constraint(cPtr, false);
892 }
893
897 public IntExpr makeMin(IntVar[] vars) {
898 long cPtr = mainJNI.Solver_makeMin__SWIG_0(swigCPtr, this, vars);
899 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
900 }
901
905 public IntExpr makeMin(IntExpr left, IntExpr right) {
906 long cPtr = mainJNI.Solver_makeMin__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
907 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
908 }
909
913 public IntExpr makeMin(IntExpr expr, long value) {
914 long cPtr = mainJNI.Solver_makeMin__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
915 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
916 }
917
921 public IntExpr makeMin(IntExpr expr, int value) {
922 long cPtr = mainJNI.Solver_makeMin__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
923 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
924 }
925
929 public IntExpr makeMax(IntVar[] vars) {
930 long cPtr = mainJNI.Solver_makeMax__SWIG_0(swigCPtr, this, vars);
931 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
932 }
933
937 public IntExpr makeMax(IntExpr left, IntExpr right) {
938 long cPtr = mainJNI.Solver_makeMax__SWIG_1(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
939 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
940 }
941
945 public IntExpr makeMax(IntExpr expr, long value) {
946 long cPtr = mainJNI.Solver_makeMax__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
947 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
948 }
949
953 public IntExpr makeMax(IntExpr expr, int value) {
954 long cPtr = mainJNI.Solver_makeMax__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
955 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
956 }
957
961 public IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost) {
962 long cPtr = mainJNI.Solver_makeConvexPiecewiseExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, early_cost, early_date, late_date, late_cost);
963 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
964 }
965
970 public IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step) {
971 long cPtr = mainJNI.Solver_makeSemiContinuousExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr, fixed_charge, step);
972 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
973 }
974
981 public IntExpr makeModulo(IntExpr x, long mod) {
982 long cPtr = mainJNI.Solver_makeModulo__SWIG_0(swigCPtr, this, IntExpr.getCPtr(x), x, mod);
983 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
984 }
985
990 long cPtr = mainJNI.Solver_makeModulo__SWIG_1(swigCPtr, this, IntExpr.getCPtr(x), x, IntExpr.getCPtr(mod), mod);
991 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
992 }
993
997 public IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value) {
998 long cPtr = mainJNI.Solver_makeConditionalExpression(swigCPtr, this, IntVar.getCPtr(condition), condition, IntExpr.getCPtr(expr), expr, unperformed_value);
999 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
1000 }
1001
1006 long cPtr = mainJNI.Solver_makeTrueConstraint(swigCPtr, this);
1007 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1008 }
1009
1014 long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_0(swigCPtr, this);
1015 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1016 }
1017
1018 public Constraint makeFalseConstraint(String explanation) {
1019 long cPtr = mainJNI.Solver_makeFalseConstraint__SWIG_1(swigCPtr, this, explanation);
1020 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1021 }
1022
1026 public Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1027 long cPtr = mainJNI.Solver_makeIsEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1028 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1029 }
1030
1034 public IntVar makeIsEqualCstVar(IntExpr var, long value) {
1035 long cPtr = mainJNI.Solver_makeIsEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1036 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1037 }
1038
1043 long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1044 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1045 }
1046
1051 long cPtr = mainJNI.Solver_makeIsEqualVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1052 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1053 }
1054
1059 long cPtr = mainJNI.Solver_makeEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1060 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1061 }
1062
1066 public Constraint makeEquality(IntExpr expr, long value) {
1067 long cPtr = mainJNI.Solver_makeEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1068 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1069 }
1070
1074 public Constraint makeEquality(IntExpr expr, int value) {
1075 long cPtr = mainJNI.Solver_makeEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1076 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1077 }
1078
1082 public Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar) {
1083 long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1084 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1085 }
1086
1090 public IntVar makeIsDifferentCstVar(IntExpr var, long value) {
1091 long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1092 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1093 }
1094
1099 long cPtr = mainJNI.Solver_makeIsDifferentCstVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2);
1100 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1101 }
1102
1107 long cPtr = mainJNI.Solver_makeIsDifferentCstCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(v1), v1, IntExpr.getCPtr(v2), v2, IntVar.getCPtr(b), b);
1108 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1109 }
1110
1115 long cPtr = mainJNI.Solver_makeNonEquality__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1116 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1117 }
1118
1122 public Constraint makeNonEquality(IntExpr expr, long value) {
1123 long cPtr = mainJNI.Solver_makeNonEquality__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1124 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1125 }
1126
1130 public Constraint makeNonEquality(IntExpr expr, int value) {
1131 long cPtr = mainJNI.Solver_makeNonEquality__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1132 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1133 }
1134
1138 public Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1139 long cPtr = mainJNI.Solver_makeIsLessOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1140 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1141 }
1142
1146 public IntVar makeIsLessOrEqualCstVar(IntExpr var, long value) {
1147 long cPtr = mainJNI.Solver_makeIsLessOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1148 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1149 }
1150
1155 long cPtr = mainJNI.Solver_makeIsLessOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1156 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1157 }
1158
1163 long cPtr = mainJNI.Solver_makeIsLessOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1164 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1165 }
1166
1171 long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1172 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1173 }
1174
1178 public Constraint makeLessOrEqual(IntExpr expr, long value) {
1179 long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1180 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1181 }
1182
1186 public Constraint makeLessOrEqual(IntExpr expr, int value) {
1187 long cPtr = mainJNI.Solver_makeLessOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1188 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1189 }
1190
1194 public Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar) {
1195 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstCt(swigCPtr, this, IntExpr.getCPtr(var), var, value, IntVar.getCPtr(boolvar), boolvar);
1196 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1197 }
1198
1203 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1204 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1205 }
1206
1211 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1212 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1213 }
1214
1219 long cPtr = mainJNI.Solver_makeIsGreaterOrEqualCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1220 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1221 }
1222
1227 long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1228 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1229 }
1230
1234 public Constraint makeGreaterOrEqual(IntExpr expr, long value) {
1235 long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1236 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1237 }
1238
1242 public Constraint makeGreaterOrEqual(IntExpr expr, int value) {
1243 long cPtr = mainJNI.Solver_makeGreaterOrEqual__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1244 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1245 }
1246
1251 long cPtr = mainJNI.Solver_makeIsGreaterCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1252 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1253 }
1254
1258 public IntVar makeIsGreaterCstVar(IntExpr var, long value) {
1259 long cPtr = mainJNI.Solver_makeIsGreaterCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1260 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1261 }
1262
1267 long cPtr = mainJNI.Solver_makeIsGreaterVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1268 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1269 }
1270
1275 long cPtr = mainJNI.Solver_makeIsGreaterCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1276 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1277 }
1278
1283 long cPtr = mainJNI.Solver_makeGreater__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1284 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1285 }
1286
1290 public Constraint makeGreater(IntExpr expr, long value) {
1291 long cPtr = mainJNI.Solver_makeGreater__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1292 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1293 }
1294
1298 public Constraint makeGreater(IntExpr expr, int value) {
1299 long cPtr = mainJNI.Solver_makeGreater__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1300 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1301 }
1302
1307 long cPtr = mainJNI.Solver_makeIsLessCstCt(swigCPtr, this, IntExpr.getCPtr(v), v, c, IntVar.getCPtr(b), b);
1308 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1309 }
1310
1314 public IntVar makeIsLessCstVar(IntExpr var, long value) {
1315 long cPtr = mainJNI.Solver_makeIsLessCstVar(swigCPtr, this, IntExpr.getCPtr(var), var, value);
1316 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1317 }
1318
1322 public IntVar makeIsLessVar(IntExpr left, IntExpr right) {
1323 long cPtr = mainJNI.Solver_makeIsLessVar(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1324 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1325 }
1326
1331 long cPtr = mainJNI.Solver_makeIsLessCt(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right, IntVar.getCPtr(b), b);
1332 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1333 }
1334
1338 public Constraint makeLess(IntExpr left, IntExpr right) {
1339 long cPtr = mainJNI.Solver_makeLess__SWIG_0(swigCPtr, this, IntExpr.getCPtr(left), left, IntExpr.getCPtr(right), right);
1340 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1341 }
1342
1346 public Constraint makeLess(IntExpr expr, long value) {
1347 long cPtr = mainJNI.Solver_makeLess__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1348 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1349 }
1350
1354 public Constraint makeLess(IntExpr expr, int value) {
1355 long cPtr = mainJNI.Solver_makeLess__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, value);
1356 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1357 }
1358
1362 public Constraint makeSumLessOrEqual(IntVar[] vars, long cst) {
1363 long cPtr = mainJNI.Solver_makeSumLessOrEqual(swigCPtr, this, vars, cst);
1364 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1365 }
1366
1367 public Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst) {
1368 long cPtr = mainJNI.Solver_makeSumGreaterOrEqual(swigCPtr, this, vars, cst);
1369 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1370 }
1371
1372 public Constraint makeSumEquality(IntVar[] vars, long cst) {
1373 long cPtr = mainJNI.Solver_makeSumEquality__SWIG_0(swigCPtr, this, vars, cst);
1374 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1375 }
1376
1378 long cPtr = mainJNI.Solver_makeSumEquality__SWIG_1(swigCPtr, this, vars, IntVar.getCPtr(var), var);
1379 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1380 }
1381
1382 public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst) {
1383 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1384 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1385 }
1386
1387 public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst) {
1388 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1389 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1390 }
1391
1392 public Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target) {
1393 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_2(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1394 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1395 }
1396
1397 public Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target) {
1398 long cPtr = mainJNI.Solver_makeScalProdEquality__SWIG_3(swigCPtr, this, vars, coefficients, IntVar.getCPtr(target), target);
1399 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1400 }
1401
1402 public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst) {
1403 long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_0(swigCPtr, this, vars, coeffs, cst);
1404 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1405 }
1406
1407 public Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst) {
1408 long cPtr = mainJNI.Solver_makeScalProdGreaterOrEqual__SWIG_1(swigCPtr, this, vars, coeffs, cst);
1409 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1410 }
1411
1412 public Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst) {
1413 long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_0(swigCPtr, this, vars, coefficients, cst);
1414 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1415 }
1416
1417 public Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst) {
1418 long cPtr = mainJNI.Solver_makeScalProdLessOrEqual__SWIG_1(swigCPtr, this, vars, coefficients, cst);
1419 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1420 }
1421
1422 public Constraint makeMinEquality(IntVar[] vars, IntVar min_var) {
1423 long cPtr = mainJNI.Solver_makeMinEquality(swigCPtr, this, vars, IntVar.getCPtr(min_var), min_var);
1424 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1425 }
1426
1427 public Constraint makeMaxEquality(IntVar[] vars, IntVar max_var) {
1428 long cPtr = mainJNI.Solver_makeMaxEquality(swigCPtr, this, vars, IntVar.getCPtr(max_var), max_var);
1429 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1430 }
1431
1432 public Constraint makeElementEquality(long[] vals, IntVar index, IntVar target) {
1433 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_0(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1434 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1435 }
1436
1437 public Constraint makeElementEquality(int[] vals, IntVar index, IntVar target) {
1438 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_1(swigCPtr, this, vals, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1439 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1440 }
1441
1442 public Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target) {
1443 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_2(swigCPtr, this, vars, IntVar.getCPtr(index), index, IntVar.getCPtr(target), target);
1444 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1445 }
1446
1447 public Constraint makeElementEquality(IntVar[] vars, IntVar index, long target) {
1448 long cPtr = mainJNI.Solver_makeElementEquality__SWIG_3(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1449 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1450 }
1451
1456 long cPtr = mainJNI.Solver_makeAbsEquality(swigCPtr, this, IntVar.getCPtr(var), var, IntVar.getCPtr(abs_var), abs_var);
1457 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1458 }
1459
1466 public Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target) {
1467 long cPtr = mainJNI.Solver_makeIndexOfConstraint(swigCPtr, this, vars, IntVar.getCPtr(index), index, target);
1468 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1469 }
1470
1476 long cPtr = mainJNI.Solver_makeConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1477 return (cPtr == 0) ? null : new Demon(cPtr, false);
1478 }
1479
1486 long cPtr = mainJNI.Solver_makeDelayedConstraintInitialPropagateCallback(swigCPtr, this, Constraint.getCPtr(ct), ct);
1487 return (cPtr == 0) ? null : new Demon(cPtr, false);
1488 }
1489
1493 public Demon makeClosureDemon(Runnable closure) {
1494 long cPtr = mainJNI.Solver_makeClosureDemon(swigCPtr, this, closure);
1495 return (cPtr == 0) ? null : new Demon(cPtr, false);
1496 }
1497
1501 public Constraint makeBetweenCt(IntExpr expr, long l, long u) {
1502 long cPtr = mainJNI.Solver_makeBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1503 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1504 }
1505
1512 public Constraint makeNotBetweenCt(IntExpr expr, long l, long u) {
1513 long cPtr = mainJNI.Solver_makeNotBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u);
1514 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1515 }
1516
1520 public Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b) {
1521 long cPtr = mainJNI.Solver_makeIsBetweenCt(swigCPtr, this, IntExpr.getCPtr(expr), expr, l, u, IntVar.getCPtr(b), b);
1522 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1523 }
1524
1525 public IntVar makeIsBetweenVar(IntExpr v, long l, long u) {
1526 long cPtr = mainJNI.Solver_makeIsBetweenVar(swigCPtr, this, IntExpr.getCPtr(v), v, l, u);
1527 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1528 }
1529
1534 public Constraint makeMemberCt(IntExpr expr, long[] values) {
1535 long cPtr = mainJNI.Solver_makeMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1536 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1537 }
1538
1539 public Constraint makeMemberCt(IntExpr expr, int[] values) {
1540 long cPtr = mainJNI.Solver_makeMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1541 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1542 }
1543
1547 public Constraint makeNotMemberCt(IntExpr expr, long[] values) {
1548 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1549 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1550 }
1551
1552 public Constraint makeNotMemberCt(IntExpr expr, int[] values) {
1553 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1554 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1555 }
1556
1560 public Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends) {
1561 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_2(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1562 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1563 }
1564
1568 public Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends) {
1569 long cPtr = mainJNI.Solver_makeNotMemberCt__SWIG_3(swigCPtr, this, IntExpr.getCPtr(expr), expr, starts, ends);
1570 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1571 }
1572
1576 public Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar) {
1577 long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1578 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1579 }
1580
1581 public Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar) {
1582 long cPtr = mainJNI.Solver_makeIsMemberCt__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values, IntVar.getCPtr(boolvar), boolvar);
1583 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1584 }
1585
1586 public IntVar makeIsMemberVar(IntExpr expr, long[] values) {
1587 long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_0(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1588 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1589 }
1590
1591 public IntVar makeIsMemberVar(IntExpr expr, int[] values) {
1592 long cPtr = mainJNI.Solver_makeIsMemberVar__SWIG_1(swigCPtr, this, IntExpr.getCPtr(expr), expr, values);
1593 return (cPtr == 0) ? null : new IntVar(cPtr, false);
1594 }
1595
1599 public Constraint makeCount(IntVar[] vars, long value, long max_count) {
1600 long cPtr = mainJNI.Solver_makeCount__SWIG_0(swigCPtr, this, vars, value, max_count);
1601 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1602 }
1603
1607 public Constraint makeCount(IntVar[] vars, long value, IntVar max_count) {
1608 long cPtr = mainJNI.Solver_makeCount__SWIG_1(swigCPtr, this, vars, value, IntVar.getCPtr(max_count), max_count);
1609 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1610 }
1611
1615 public Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards) {
1616 long cPtr = mainJNI.Solver_makeDistribute__SWIG_0(swigCPtr, this, vars, values, cards);
1617 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1618 }
1619
1623 public Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards) {
1624 long cPtr = mainJNI.Solver_makeDistribute__SWIG_1(swigCPtr, this, vars, values, cards);
1625 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1626 }
1627
1631 public Constraint makeDistribute(IntVar[] vars, IntVar[] cards) {
1632 long cPtr = mainJNI.Solver_makeDistribute__SWIG_2(swigCPtr, this, vars, cards);
1633 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1634 }
1635
1640 public Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size) {
1641 long cPtr = mainJNI.Solver_makeDistribute__SWIG_3(swigCPtr, this, vars, card_min, card_max, card_size);
1642 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1643 }
1644
1650 public Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max) {
1651 long cPtr = mainJNI.Solver_makeDistribute__SWIG_4(swigCPtr, this, vars, card_min, card_max);
1652 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1653 }
1654
1660 public Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max) {
1661 long cPtr = mainJNI.Solver_makeDistribute__SWIG_5(swigCPtr, this, vars, card_min, card_max);
1662 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1663 }
1664
1670 public Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max) {
1671 long cPtr = mainJNI.Solver_makeDistribute__SWIG_6(swigCPtr, this, vars, values, card_min, card_max);
1672 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1673 }
1674
1680 public Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max) {
1681 long cPtr = mainJNI.Solver_makeDistribute__SWIG_7(swigCPtr, this, vars, values, card_min, card_max);
1682 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1683 }
1684
1691 public Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum) {
1692 long cPtr = mainJNI.Solver_makeDeviation(swigCPtr, this, vars, IntVar.getCPtr(deviation_var), deviation_var, total_sum);
1693 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1694 }
1695
1701 long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_0(swigCPtr, this, vars);
1702 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1703 }
1704
1710 public Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation) {
1711 long cPtr = mainJNI.Solver_makeAllDifferent__SWIG_1(swigCPtr, this, vars, stronger_propagation);
1712 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1713 }
1714
1719 public Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value) {
1720 long cPtr = mainJNI.Solver_makeAllDifferentExcept(swigCPtr, this, vars, escape_value);
1721 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1722 }
1723
1742 long cPtr = mainJNI.Solver_makeSortingConstraint(swigCPtr, this, vars, sorted);
1743 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1744 }
1745
1750 public Constraint makeLexicalLess(IntVar[] left, IntVar[] right) {
1751 long cPtr = mainJNI.Solver_makeLexicalLess(swigCPtr, this, left, right);
1752 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1753 }
1754
1760 long cPtr = mainJNI.Solver_makeLexicalLessOrEqual(swigCPtr, this, left, right);
1761 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1762 }
1763
1771 long cPtr = mainJNI.Solver_makeInversePermutationConstraint(swigCPtr, this, left, right);
1772 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1773 }
1774
1780 long cPtr = mainJNI.Solver_makeIndexOfFirstMaxValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1781 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1782 }
1783
1789 long cPtr = mainJNI.Solver_makeIndexOfFirstMinValueConstraint(swigCPtr, this, IntVar.getCPtr(index), index, vars);
1790 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1791 }
1792
1799 public Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars) {
1800 long cPtr = mainJNI.Solver_makeNullIntersect(swigCPtr, this, first_vars, second_vars);
1801 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1802 }
1803
1811 public Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value) {
1812 long cPtr = mainJNI.Solver_makeNullIntersectExcept(swigCPtr, this, first_vars, second_vars, escape_value);
1813 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1814 }
1815
1827 public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler) {
1828 long cPtr = mainJNI.Solver_makeNoCycle__SWIG_0(swigCPtr, this, nexts, active, sink_handler);
1829 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1830 }
1831
1843 public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active) {
1844 long cPtr = mainJNI.Solver_makeNoCycle__SWIG_1(swigCPtr, this, nexts, active);
1845 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1846 }
1847
1848 public Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths) {
1849 long cPtr = mainJNI.Solver_makeNoCycle__SWIG_2(swigCPtr, this, nexts, active, sink_handler, assume_paths);
1850 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1851 }
1852
1857 long cPtr = mainJNI.Solver_makeCircuit(swigCPtr, this, nexts);
1858 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1859 }
1860
1866 long cPtr = mainJNI.Solver_makeSubCircuit(swigCPtr, this, nexts);
1867 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1868 }
1869
1876 public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1877 long cPtr = mainJNI.Solver_makePathCumul__SWIG_0(swigCPtr, this, nexts, active, cumuls, transits);
1878 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1879 }
1880
1885 public Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits) {
1886 long cPtr = mainJNI.Solver_makeDelayedPathCumul(swigCPtr, this, nexts, active, cumuls, transits);
1887 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1888 }
1889
1898 public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator) {
1899 long cPtr = mainJNI.Solver_makePathCumul__SWIG_1(swigCPtr, this, nexts, active, cumuls, transit_evaluator);
1900 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1901 }
1902
1911 public Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator) {
1912 long cPtr = mainJNI.Solver_makePathCumul__SWIG_2(swigCPtr, this, nexts, active, cumuls, slacks, transit_evaluator);
1913 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1914 }
1915
1921 public Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status) {
1922 long cPtr = mainJNI.Solver_makePathConnected(swigCPtr, this, nexts, sources, sinks, status);
1923 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1924 }
1925
1931 public Constraint makeMapDomain(IntVar var, IntVar[] actives) {
1932 long cPtr = mainJNI.Solver_makeMapDomain(swigCPtr, this, IntVar.getCPtr(var), var, actives);
1933 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1934 }
1935
1943 long cPtr = mainJNI.Solver_makeAllowedAssignment(swigCPtr, this, vars, IntTupleSet.getCPtr(tuples), tuples);
1944 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1945 }
1946
1956 public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states) {
1957 long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_0(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1958 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1959 }
1960
1970 public Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states) {
1971 long cPtr = mainJNI.Solver_makeTransitionConstraint__SWIG_1(swigCPtr, this, vars, IntTupleSet.getCPtr(transition_table), transition_table, initial_state, final_states);
1972 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1973 }
1974
1985 public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
1986 long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1987 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1988 }
1989
1990 public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
1991 long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1992 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1993 }
1994
1995 public Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
1996 long cPtr = mainJNI.Solver_makeNonOverlappingBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
1997 return (cPtr == 0) ? null : new Constraint(cPtr, false);
1998 }
1999
2010 public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size) {
2011 long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_0(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2012 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2013 }
2014
2015 public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size) {
2016 long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_1(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2017 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2018 }
2019
2020 public Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size) {
2021 long cPtr = mainJNI.Solver_makeNonOverlappingNonStrictBoxesConstraint__SWIG_2(swigCPtr, this, x_vars, y_vars, x_size, y_size);
2022 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2023 }
2024
2032 public Pack makePack(IntVar[] vars, int number_of_bins) {
2033 long cPtr = mainJNI.Solver_makePack(swigCPtr, this, vars, number_of_bins);
2034 return (cPtr == 0) ? null : new Pack(cPtr, false);
2035 }
2036
2043 public IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name) {
2044 long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_0(swigCPtr, this, start_min, start_max, duration, optional, name);
2045 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2046 }
2047
2052 public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name) {
2053 long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_1(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, name);
2054 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2055 }
2056
2061 public IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name) {
2062 long cPtr = mainJNI.Solver_makeFixedDurationIntervalVar__SWIG_2(swigCPtr, this, IntVar.getCPtr(start_variable), start_variable, duration, IntVar.getCPtr(performed_variable), performed_variable, name);
2063 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2064 }
2065
2069 public IntervalVar makeFixedInterval(long start, long duration, String name) {
2070 long cPtr = mainJNI.Solver_makeFixedInterval(swigCPtr, this, start, duration, name);
2071 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2072 }
2073
2078 public IntervalVar makeIntervalVar(long start_min, long start_max, long duration_min, long duration_max, long end_min, long end_max, boolean optional, String name) {
2079 long cPtr = mainJNI.Solver_makeIntervalVar(swigCPtr, this, start_min, start_max, duration_min, duration_max, end_min, end_max, optional, name);
2080 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2081 }
2082
2088 long cPtr = mainJNI.Solver_makeMirrorInterval(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2089 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2090 }
2091
2098 public IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
2099 long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2100 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2101 }
2102
2109 public IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
2110 long cPtr = mainJNI.Solver_makeFixedDurationStartSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2111 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2112 }
2113
2120 public IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset) {
2121 long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnStartIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2122 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2123 }
2124
2131 public IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset) {
2132 long cPtr = mainJNI.Solver_makeFixedDurationEndSyncedOnEndIntervalVar(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var, duration, offset);
2133 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2134 }
2135
2156 long cPtr = mainJNI.Solver_makeIntervalRelaxedMin(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2157 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2158 }
2159
2180 long cPtr = mainJNI.Solver_makeIntervalRelaxedMax(swigCPtr, this, IntervalVar.getCPtr(interval_var), interval_var);
2181 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
2182 }
2183
2189 long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t), t, r, d);
2190 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2191 }
2192
2197 long cPtr = mainJNI.Solver_makeIntervalVarRelation__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2);
2198 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2199 }
2200
2208 long cPtr = mainJNI.Solver_makeIntervalVarRelationWithDelay(swigCPtr, this, IntervalVar.getCPtr(t1), t1, r, IntervalVar.getCPtr(t2), t2, delay);
2209 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2210 }
2211
2218 long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_0(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2, IntVar.getCPtr(alt), alt);
2219 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2220 }
2221
2227 long cPtr = mainJNI.Solver_makeTemporalDisjunction__SWIG_1(swigCPtr, this, IntervalVar.getCPtr(t1), t1, IntervalVar.getCPtr(t2), t2);
2228 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2229 }
2230
2236 long cPtr = mainJNI.Solver_makeDisjunctiveConstraint(swigCPtr, this, intervals, name);
2237 return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2238 }
2239
2246 long cPtr = mainJNI.Solver_makeStrictDisjunctiveConstraint(swigCPtr, this, intervals, name);
2247 return (cPtr == 0) ? null : new DisjunctiveConstraint(cPtr, false);
2248 }
2249
2261 public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name) {
2262 long cPtr = mainJNI.Solver_makeCumulative__SWIG_0(swigCPtr, this, intervals, demands, capacity, name);
2263 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2264 }
2265
2277 public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name) {
2278 long cPtr = mainJNI.Solver_makeCumulative__SWIG_1(swigCPtr, this, intervals, demands, capacity, name);
2279 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2280 }
2281
2293 public Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name) {
2294 long cPtr = mainJNI.Solver_makeCumulative__SWIG_2(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2295 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2296 }
2297
2309 public Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name) {
2310 long cPtr = mainJNI.Solver_makeCumulative__SWIG_3(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2311 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2312 }
2313
2323 public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name) {
2324 long cPtr = mainJNI.Solver_makeCumulative__SWIG_4(swigCPtr, this, intervals, demands, capacity, name);
2325 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2326 }
2327
2337 public Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name) {
2338 long cPtr = mainJNI.Solver_makeCumulative__SWIG_5(swigCPtr, this, intervals, demands, IntVar.getCPtr(capacity), capacity, name);
2339 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2340 }
2341
2349 public Constraint makeCover(IntervalVar[] vars, IntervalVar target_var) {
2350 long cPtr = mainJNI.Solver_makeCover(swigCPtr, this, vars, IntervalVar.getCPtr(target_var), target_var);
2351 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2352 }
2353
2358 long cPtr = mainJNI.Solver_makeEquality__SWIG_3(swigCPtr, this, IntervalVar.getCPtr(var1), var1, IntervalVar.getCPtr(var2), var2);
2359 return (cPtr == 0) ? null : new Constraint(cPtr, false);
2360 }
2361
2366 long cPtr = mainJNI.Solver_makeAssignment__SWIG_0(swigCPtr, this);
2367 return (cPtr == 0) ? null : new Assignment(cPtr, false);
2368 }
2369
2374 long cPtr = mainJNI.Solver_makeAssignment__SWIG_1(swigCPtr, this, Assignment.getCPtr(a), a);
2375 return (cPtr == 0) ? null : new Assignment(cPtr, false);
2376 }
2377
2382 long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2383 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2384 }
2385
2391 long cPtr = mainJNI.Solver_makeFirstSolutionCollector__SWIG_1(swigCPtr, this);
2392 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2393 }
2394
2399 long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2400 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2401 }
2402
2408 long cPtr = mainJNI.Solver_makeLastSolutionCollector__SWIG_1(swigCPtr, this);
2409 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2410 }
2411
2418 public SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize) {
2419 long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, maximize);
2420 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2421 }
2422
2431 long cPtr = mainJNI.Solver_makeBestValueSolutionCollector__SWIG_1(swigCPtr, this, maximize);
2432 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2433 }
2434
2440 public SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize) {
2441 long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, solution_count, maximize);
2442 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2443 }
2444
2445 public SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize) {
2446 long cPtr = mainJNI.Solver_makeNBestValueSolutionCollector__SWIG_1(swigCPtr, this, solution_count, maximize);
2447 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2448 }
2449
2454 long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
2455 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2456 }
2457
2463 long cPtr = mainJNI.Solver_makeAllSolutionCollector__SWIG_1(swigCPtr, this);
2464 return (cPtr == 0) ? null : new SolutionCollector(cPtr, false);
2465 }
2466
2470 public OptimizeVar makeMinimize(IntVar v, long step) {
2471 long cPtr = mainJNI.Solver_makeMinimize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2472 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2473 }
2474
2478 public OptimizeVar makeMaximize(IntVar v, long step) {
2479 long cPtr = mainJNI.Solver_makeMaximize(swigCPtr, this, IntVar.getCPtr(v), v, step);
2480 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2481 }
2482
2486 public OptimizeVar makeOptimize(boolean maximize, IntVar v, long step) {
2487 long cPtr = mainJNI.Solver_makeOptimize(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step);
2488 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2489 }
2490
2495 public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step) {
2496 long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2497 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2498 }
2499
2504 public OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step) {
2505 long cPtr = mainJNI.Solver_makeWeightedMinimize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2506 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2507 }
2508
2512 public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step) {
2513 long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_0(swigCPtr, this, sub_objectives, weights, step);
2514 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2515 }
2516
2520 public OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step) {
2521 long cPtr = mainJNI.Solver_makeWeightedMaximize__SWIG_1(swigCPtr, this, sub_objectives, weights, step);
2522 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2523 }
2524
2528 public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step) {
2529 long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_0(swigCPtr, this, maximize, sub_objectives, weights, step);
2530 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2531 }
2532
2536 public OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step) {
2537 long cPtr = mainJNI.Solver_makeWeightedOptimize__SWIG_1(swigCPtr, this, maximize, sub_objectives, weights, step);
2538 return (cPtr == 0) ? null : new OptimizeVar(cPtr, false);
2539 }
2540
2559 public SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor) {
2560 long cPtr = mainJNI.Solver_makeTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, vars, keep_tenure, forbid_tenure, tabu_factor);
2561 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2562 }
2563
2568 public SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure) {
2569 long cPtr = mainJNI.Solver_makeGenericTabuSearch(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, tabu_vars, forbid_tenure);
2570 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2571 }
2572
2576 public SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature) {
2577 long cPtr = mainJNI.Solver_makeSimulatedAnnealing(swigCPtr, this, maximize, IntVar.getCPtr(v), v, step, initial_temperature);
2578 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2579 }
2580
2585 public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor) {
2586 long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_0(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, penalty_factor);
2587 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2588 }
2589
2590 public SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor) {
2591 long cPtr = mainJNI.Solver_makeGuidedLocalSearch__SWIG_1(swigCPtr, this, maximize, IntVar.getCPtr(objective), objective, objective_function, step, vars, secondary_vars, penalty_factor);
2592 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2593 }
2594
2600 public SearchMonitor makeLubyRestart(int scale_factor) {
2601 long cPtr = mainJNI.Solver_makeLubyRestart(swigCPtr, this, scale_factor);
2602 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2603 }
2604
2609 public SearchMonitor makeConstantRestart(int frequency) {
2610 long cPtr = mainJNI.Solver_makeConstantRestart(swigCPtr, this, frequency);
2611 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2612 }
2613
2617 public RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time) {
2618 long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time));
2619 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2620 }
2621
2622 public RegularLimit makeTimeLimit(long time_in_ms) {
2623 long cPtr = mainJNI.Solver_makeTimeLimit__SWIG_1(swigCPtr, this, time_in_ms);
2624 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2625 }
2626
2632 long cPtr = mainJNI.Solver_makeBranchesLimit(swigCPtr, this, branches);
2633 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2634 }
2635
2641 long cPtr = mainJNI.Solver_makeFailuresLimit(swigCPtr, this, failures);
2642 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2643 }
2644
2650 long cPtr = mainJNI.Solver_makeSolutionsLimit(swigCPtr, this, solutions);
2651 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2652 }
2653
2658 public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2659 long cPtr = mainJNI.Solver_makeLimit__SWIG_0(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check, cumulative);
2660 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2661 }
2662
2667 public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check) {
2668 long cPtr = mainJNI.Solver_makeLimit__SWIG_1(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions, smart_time_check);
2669 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2670 }
2671
2676 public RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions) {
2677 long cPtr = mainJNI.Solver_makeLimit__SWIG_2(swigCPtr, this, SWIGTYPE_p_absl__Duration.getCPtr(time), branches, failures, solutions);
2678 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2679 }
2680
2684 public RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto) {
2685 long cPtr = mainJNI.Solver_makeLimit__SWIG_3(swigCPtr, this, proto.toByteArray());
2686 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2687 }
2688
2689 public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative) {
2690 long cPtr = mainJNI.Solver_makeLimit__SWIG_4(swigCPtr, this, time, branches, failures, solutions, smart_time_check, cumulative);
2691 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2692 }
2693
2694 public RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check) {
2695 long cPtr = mainJNI.Solver_makeLimit__SWIG_5(swigCPtr, this, time, branches, failures, solutions, smart_time_check);
2696 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2697 }
2698
2699 public RegularLimit makeLimit(long time, long branches, long failures, long solutions) {
2700 long cPtr = mainJNI.Solver_makeLimit__SWIG_6(swigCPtr, this, time, branches, failures, solutions);
2701 return (cPtr == 0) ? null : new RegularLimit(cPtr, false);
2702 }
2703
2707 public com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters() {
2708 byte[] buf = mainJNI.Solver_makeDefaultRegularLimitParameters(swigCPtr, this);
2709 if (buf == null || buf.length == 0) {
2710 return null;
2711 }
2712 try {
2713 return com.google.ortools.constraintsolver.RegularLimitParameters.parseFrom(buf);
2714 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2715 throw new RuntimeException(
2716 "Unable to parse com.google.ortools.constraintsolver.RegularLimitParameters protocol message.");
2717 }
2718}
2719
2726 long cPtr = mainJNI.Solver_makeLimit__SWIG_7(swigCPtr, this, SearchLimit.getCPtr(limit_1), limit_1, SearchLimit.getCPtr(limit_2), limit_2);
2727 return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2728 }
2729
2736 public ImprovementSearchLimit MakeImprovementLimit(IntVar objective_var, boolean maximize, double objective_scaling_factor, double objective_offset, double improvement_rate_coefficient, int improvement_rate_solutions_distance) {
2737 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);
2738 return (cPtr == 0) ? null : new ImprovementSearchLimit(cPtr, false);
2739 }
2740
2745 public SearchLimit makeCustomLimit(BooleanSupplier limiter) {
2746 long cPtr = mainJNI.Solver_makeCustomLimit(swigCPtr, this, limiter);
2747 return (cPtr == 0) ? null : new SearchLimit(cPtr, false);
2748 }
2749
2754 public SearchMonitor makeSearchLog(int branch_period) {
2755 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_0(swigCPtr, this, branch_period);
2756 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2757 }
2758
2762 public SearchMonitor makeSearchLog(int branch_period, IntVar var) {
2763 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_1(swigCPtr, this, branch_period, IntVar.getCPtr(var), var);
2764 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2765 }
2766
2771 public SearchMonitor makeSearchLog(int branch_period, Supplier<String> display_callback) {
2772 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_2(swigCPtr, this, branch_period, display_callback);
2773 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2774 }
2775
2780 public SearchMonitor makeSearchLog(int branch_period, IntVar var, Supplier<String> display_callback) {
2781 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_3(swigCPtr, this, branch_period, IntVar.getCPtr(var), var, display_callback);
2782 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2783 }
2784
2789 public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var) {
2790 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_4(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var);
2791 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2792 }
2793
2798 public SearchMonitor makeSearchLog(int branch_period, OptimizeVar opt_var, Supplier<String> display_callback) {
2799 long cPtr = mainJNI.Solver_makeSearchLog__SWIG_5(swigCPtr, this, branch_period, OptimizeVar.getCPtr(opt_var), opt_var, display_callback);
2800 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2801 }
2802
2807 public SearchMonitor makeSearchTrace(String prefix) {
2808 long cPtr = mainJNI.Solver_makeSearchTrace(swigCPtr, this, prefix);
2809 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2810 }
2811
2815 public SearchMonitor makeEnterSearchCallback(Runnable callback) {
2816 long cPtr = mainJNI.Solver_makeEnterSearchCallback(swigCPtr, this, callback);
2817 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2818 }
2819
2820 public SearchMonitor makeExitSearchCallback(Runnable callback) {
2821 long cPtr = mainJNI.Solver_makeExitSearchCallback(swigCPtr, this, callback);
2822 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2823 }
2824
2825 public SearchMonitor makeAtSolutionCallback(Runnable callback) {
2826 long cPtr = mainJNI.Solver_makeAtSolutionCallback(swigCPtr, this, callback);
2827 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2828 }
2829
2834 long cPtr = mainJNI.Solver_makePrintModelVisitor(swigCPtr, this);
2835 return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2836 }
2837
2842 long cPtr = mainJNI.Solver_makeStatisticsModelVisitor(swigCPtr, this);
2843 return (cPtr == 0) ? null : new ModelVisitor(cPtr, false);
2844 }
2845
2850 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_0(swigCPtr, this, visitors);
2851 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2852 }
2853
2855 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_1(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1);
2856 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2857 }
2858
2860 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_2(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2);
2861 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2862 }
2863
2865 long cPtr = mainJNI.Solver_makeSymmetryManager__SWIG_3(swigCPtr, this, SymmetryBreaker.getCPtr(v1), v1, SymmetryBreaker.getCPtr(v2), v2, SymmetryBreaker.getCPtr(v3), v3);
2866 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2867 }
2868
2870 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);
2871 return (cPtr == 0) ? null : new SearchMonitor(cPtr, false);
2872 }
2873
2878 long cPtr = mainJNI.Solver_makeAssignVariableValue(swigCPtr, this, IntVar.getCPtr(var), var, val);
2879 return (cPtr == 0) ? null : new Decision(cPtr, false);
2880 }
2881
2883 long cPtr = mainJNI.Solver_makeVariableLessOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2884 return (cPtr == 0) ? null : new Decision(cPtr, false);
2885 }
2886
2888 long cPtr = mainJNI.Solver_makeVariableGreaterOrEqualValue(swigCPtr, this, IntVar.getCPtr(var), var, value);
2889 return (cPtr == 0) ? null : new Decision(cPtr, false);
2890 }
2891
2892 public Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half) {
2893 long cPtr = mainJNI.Solver_makeSplitVariableDomain(swigCPtr, this, IntVar.getCPtr(var), var, val, start_with_lower_half);
2894 return (cPtr == 0) ? null : new Decision(cPtr, false);
2895 }
2896
2898 long cPtr = mainJNI.Solver_makeAssignVariableValueOrFail(swigCPtr, this, IntVar.getCPtr(var), var, value);
2899 return (cPtr == 0) ? null : new Decision(cPtr, false);
2900 }
2901
2903 long cPtr = mainJNI.Solver_MakeAssignVariableValueOrDoNothing(swigCPtr, this, IntVar.getCPtr(var), var, value);
2904 return (cPtr == 0) ? null : new Decision(cPtr, false);
2905 }
2906
2907 public Decision makeAssignVariablesValues(IntVar[] vars, long[] values) {
2908 long cPtr = mainJNI.Solver_makeAssignVariablesValues(swigCPtr, this, vars, values);
2909 return (cPtr == 0) ? null : new Decision(cPtr, false);
2910 }
2911
2913 long cPtr = mainJNI.Solver_makeFailDecision(swigCPtr, this);
2914 return (cPtr == 0) ? null : new Decision(cPtr, false);
2915 }
2916
2917 public Decision makeDecision(Consumer<Solver> apply, Consumer<Solver> refute) {
2918 long cPtr = mainJNI.Solver_makeDecision(swigCPtr, this, apply, refute);
2919 return (cPtr == 0) ? null : new Decision(cPtr, false);
2920 }
2921
2933 long cPtr = mainJNI.Solver_compose__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2934 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2935 }
2936
2938 long cPtr = mainJNI.Solver_compose__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2939 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2940 }
2941
2943 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);
2944 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2945 }
2946
2948 long cPtr = mainJNI.Solver_compose__SWIG_3(swigCPtr, this, dbs);
2949 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2950 }
2951
2970 long cPtr = mainJNI.Solver_tryDecisions__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2);
2971 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2972 }
2973
2975 long cPtr = mainJNI.Solver_tryDecisions__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db1), db1, DecisionBuilder.getCPtr(db2), db2, DecisionBuilder.getCPtr(db3), db3);
2976 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2977 }
2978
2980 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);
2981 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2982 }
2983
2985 long cPtr = mainJNI.Solver_tryDecisions__SWIG_3(swigCPtr, this, dbs);
2986 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2987 }
2988
2993 public DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str) {
2994 long cPtr = mainJNI.Solver_makePhase__SWIG_0(swigCPtr, this, vars, var_str, val_str);
2995 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
2996 }
2997
2998 public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str) {
2999 long cPtr = mainJNI.Solver_makePhase__SWIG_1(swigCPtr, this, vars, var_evaluator, val_str);
3000 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3001 }
3002
3003 public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator) {
3004 long cPtr = mainJNI.Solver_makePhase__SWIG_2(swigCPtr, this, vars, var_str, value_evaluator);
3005 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3006 }
3007
3012 public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongTernaryPredicate var_val1_val2_comparator) {
3013 long cPtr = mainJNI.Solver_makePhase__SWIG_3(swigCPtr, this, vars, var_str, var_val1_val2_comparator);
3014 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3015 }
3016
3017 public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator) {
3018 long cPtr = mainJNI.Solver_makePhase__SWIG_4(swigCPtr, this, vars, var_evaluator, value_evaluator);
3019 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3020 }
3021
3022 public DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
3023 long cPtr = mainJNI.Solver_makePhase__SWIG_5(swigCPtr, this, vars, var_str, value_evaluator, tie_breaker);
3024 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3025 }
3026
3027 public DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker) {
3028 long cPtr = mainJNI.Solver_makePhase__SWIG_6(swigCPtr, this, vars, var_evaluator, value_evaluator, tie_breaker);
3029 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3030 }
3031
3033 long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_0(swigCPtr, this, vars);
3034 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3035 }
3036
3038 long cPtr = mainJNI.Solver_makeDefaultPhase__SWIG_1(swigCPtr, this, vars, DefaultPhaseParameters.getCPtr(parameters), parameters);
3039 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3040 }
3041
3045 public DecisionBuilder makePhase(IntVar v0, int var_str, int val_str) {
3046 long cPtr = mainJNI.Solver_makePhase__SWIG_7(swigCPtr, this, IntVar.getCPtr(v0), v0, var_str, val_str);
3047 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3048 }
3049
3050 public DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str) {
3051 long cPtr = mainJNI.Solver_makePhase__SWIG_8(swigCPtr, this, IntVar.getCPtr(v0), v0, IntVar.getCPtr(v1), v1, var_str, val_str);
3052 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3053 }
3054
3055 public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str) {
3056 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);
3057 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3058 }
3059
3060 public DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str) {
3061 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);
3062 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3063 }
3064
3072 public Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker) {
3073 long cPtr = mainJNI.Solver_makeScheduleOrPostpone(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
3074 return (cPtr == 0) ? null : new Decision(cPtr, false);
3075 }
3076
3084 public Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker) {
3085 long cPtr = mainJNI.Solver_makeScheduleOrExpedite(swigCPtr, this, IntervalVar.getCPtr(var), var, est, marker);
3086 return (cPtr == 0) ? null : new Decision(cPtr, false);
3087 }
3088
3093 public Decision makeRankFirstInterval(SequenceVar sequence, int index) {
3094 long cPtr = mainJNI.Solver_makeRankFirstInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
3095 return (cPtr == 0) ? null : new Decision(cPtr, false);
3096 }
3097
3102 public Decision makeRankLastInterval(SequenceVar sequence, int index) {
3103 long cPtr = mainJNI.Solver_makeRankLastInterval(swigCPtr, this, SequenceVar.getCPtr(sequence), sequence, index);
3104 return (cPtr == 0) ? null : new Decision(cPtr, false);
3105 }
3106
3114 public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, int str) {
3115 long cPtr = mainJNI.Solver_makePhase__SWIG_11(swigCPtr, this, vars, eval, str);
3116 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3117 }
3118
3128 public DecisionBuilder makePhase(IntVar[] vars, LongBinaryOperator eval, LongUnaryOperator tie_breaker, int str) {
3129 long cPtr = mainJNI.Solver_makePhase__SWIG_12(swigCPtr, this, vars, eval, tie_breaker, str);
3130 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3131 }
3132
3136 public DecisionBuilder makePhase(IntervalVar[] intervals, int str) {
3137 long cPtr = mainJNI.Solver_makePhase__SWIG_13(swigCPtr, this, intervals, str);
3138 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3139 }
3140
3141 public DecisionBuilder makePhase(SequenceVar[] sequences, int str) {
3142 long cPtr = mainJNI.Solver_makePhase__SWIG_14(swigCPtr, this, sequences, str);
3143 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3144 }
3145
3151 long cPtr = mainJNI.Solver_makeDecisionBuilderFromAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment, DecisionBuilder.getCPtr(db), db, vars);
3152 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3153 }
3154
3160 long cPtr = mainJNI.Solver_makeConstraintAdder(swigCPtr, this, Constraint.getCPtr(ct), ct);
3161 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3162 }
3163
3171 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db);
3172 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3173 }
3174
3176 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1);
3177 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3178 }
3179
3181 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_2(swigCPtr, this, DecisionBuilder.getCPtr(db), db, SearchMonitor.getCPtr(monitor1), monitor1, SearchMonitor.getCPtr(monitor2), monitor2);
3182 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3183 }
3184
3186 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);
3187 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3188 }
3189
3191 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);
3192 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3193 }
3194
3196 long cPtr = mainJNI.Solver_makeSolveOnce__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, monitors);
3197 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3198 }
3199
3209 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step) {
3210 long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_0(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step);
3211 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3212 }
3213
3214 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1) {
3215 long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_1(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, SearchMonitor.getCPtr(monitor1), monitor1);
3216 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3217 }
3218
3219 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2) {
3220 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);
3221 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3222 }
3223
3224 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3) {
3225 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);
3226 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3227 }
3228
3229 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4) {
3230 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);
3231 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3232 }
3233
3234 public DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors) {
3235 long cPtr = mainJNI.Solver_makeNestedOptimize__SWIG_5(swigCPtr, this, DecisionBuilder.getCPtr(db), db, Assignment.getCPtr(solution), solution, maximize, step, monitors);
3236 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3237 }
3238
3244 long cPtr = mainJNI.Solver_makeRestoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
3245 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3246 }
3247
3253 long cPtr = mainJNI.Solver_makeStoreAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
3254 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3255 }
3256
3260 public LocalSearchOperator makeOperator(IntVar[] vars, int op) {
3261 long cPtr = mainJNI.Solver_makeOperator__SWIG_0(swigCPtr, this, vars, op);
3262 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3263 }
3264
3265 public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op) {
3266 long cPtr = mainJNI.Solver_makeOperator__SWIG_1(swigCPtr, this, vars, secondary_vars, op);
3267 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3268 }
3269
3271 long cPtr = mainJNI.Solver_makeOperator__SWIG_2(swigCPtr, this, vars, evaluator, op);
3272 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3273 }
3274
3275 public LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op) {
3276 long cPtr = mainJNI.Solver_makeOperator__SWIG_3(swigCPtr, this, vars, secondary_vars, evaluator, op);
3277 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3278 }
3279
3289 public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables) {
3290 long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_0(swigCPtr, this, vars, number_of_variables);
3291 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3292 }
3293
3294 public LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed) {
3295 long cPtr = mainJNI.Solver_makeRandomLnsOperator__SWIG_1(swigCPtr, this, vars, number_of_variables, seed);
3296 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3297 }
3298
3307 long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_0(swigCPtr, this, Assignment.getCPtr(target), target);
3308 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3309 }
3310
3319 public LocalSearchOperator makeMoveTowardTargetOperator(IntVar[] variables, long[] target_values) {
3320 long cPtr = mainJNI.Solver_makeMoveTowardTargetOperator__SWIG_1(swigCPtr, this, variables, target_values);
3321 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3322 }
3323
3356 long cPtr = mainJNI.Solver_concatenateOperators__SWIG_0(swigCPtr, this, ops);
3357 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3358 }
3359
3361 long cPtr = mainJNI.Solver_concatenateOperators__SWIG_1(swigCPtr, this, ops, restart);
3362 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3363 }
3364
3366 long cPtr = mainJNI.Solver_concatenateOperators__SWIG_2(swigCPtr, this, ops, evaluator);
3367 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3368 }
3369
3375 long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_0(swigCPtr, this, ops);
3376 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3377 }
3378
3385 long cPtr = mainJNI.Solver_randomConcatenateOperators__SWIG_1(swigCPtr, this, ops, seed);
3386 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3387 }
3388
3398 public LocalSearchOperator MultiArmedBanditConcatenateOperators(LocalSearchOperator[] ops, double memory_coefficient, double exploration_coefficient, boolean maximize) {
3399 long cPtr = mainJNI.Solver_MultiArmedBanditConcatenateOperators(swigCPtr, this, ops, memory_coefficient, exploration_coefficient, maximize);
3400 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3401 }
3402
3411 long cPtr = mainJNI.Solver_makeNeighborhoodLimit(swigCPtr, this, LocalSearchOperator.getCPtr(op), op, limit);
3412 return (cPtr == 0) ? null : new LocalSearchOperator(cPtr, false);
3413 }
3414
3441 long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3442 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3443 }
3444
3446 long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_1(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3447 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3448 }
3449
3453 public DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, DecisionBuilder first_solution_sub_decision_builder, LocalSearchPhaseParameters parameters) {
3454 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);
3455 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3456 }
3457
3459 long cPtr = mainJNI.Solver_makeLocalSearchPhase__SWIG_3(swigCPtr, this, vars, DecisionBuilder.getCPtr(first_solution), first_solution, LocalSearchPhaseParameters.getCPtr(parameters), parameters);
3460 return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
3461 }
3462
3467 long cPtr = mainJNI.Solver_makeDefaultSolutionPool(swigCPtr, this);
3468 return (cPtr == 0) ? null : new SolutionPool(cPtr, false);
3469 }
3470
3475 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);
3476 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3477 }
3478
3480 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);
3481 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3482 }
3483
3485 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);
3486 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3487 }
3488
3490 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);
3491 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3492 }
3493
3495 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);
3496 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3497 }
3498
3500 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);
3501 return (cPtr == 0) ? null : new LocalSearchPhaseParameters(cPtr, false);
3502 }
3503
3508 long cPtr = mainJNI.Solver_MakeAcceptFilter(swigCPtr, this);
3509 return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3510 }
3511
3513 long cPtr = mainJNI.Solver_MakeRejectFilter(swigCPtr, this);
3514 return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3515 }
3516
3518 long cPtr = mainJNI.Solver_makeVariableDomainFilter(swigCPtr, this);
3519 return (cPtr == 0) ? null : new LocalSearchFilter(cPtr, false);
3520 }
3521
3522 public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum) {
3523 long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_0(swigCPtr, this, vars, values, filter_enum);
3524 return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3525 }
3526
3527 public IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum) {
3528 long cPtr = mainJNI.Solver_makeSumObjectiveFilter__SWIG_1(swigCPtr, this, vars, secondary_vars, values, filter_enum);
3529 return (cPtr == 0) ? null : new IntVarLocalSearchFilter(cPtr, false);
3530 }
3531
3536 public void topPeriodicCheck() {
3537 mainJNI.Solver_topPeriodicCheck(swigCPtr, this);
3538 }
3539
3545 public int topProgressPercent() {
3546 return mainJNI.Solver_topProgressPercent(swigCPtr, this);
3547 }
3548
3554 public void pushState() {
3555 mainJNI.Solver_pushState(swigCPtr, this);
3556 }
3557
3558 public void popState() {
3559 mainJNI.Solver_popState(swigCPtr, this);
3560 }
3561
3566 public int searchDepth() {
3567 return mainJNI.Solver_searchDepth(swigCPtr, this);
3568 }
3569
3574 public int searchLeftDepth() {
3575 return mainJNI.Solver_searchLeftDepth(swigCPtr, this);
3576 }
3577
3582 public int solveDepth() {
3583 return mainJNI.Solver_solveDepth(swigCPtr, this);
3584 }
3585
3589 public long rand64(long size) {
3590 return mainJNI.Solver_rand64(swigCPtr, this, size);
3591 }
3592
3596 public int rand32(int size) {
3597 return mainJNI.Solver_rand32(swigCPtr, this, size);
3598 }
3599
3603 public void reSeed(int seed) {
3604 mainJNI.Solver_reSeed(swigCPtr, this, seed);
3605 }
3606
3612 public void exportProfilingOverview(String filename) {
3613 mainJNI.Solver_exportProfilingOverview(swigCPtr, this, filename);
3614 }
3615
3619 public String localSearchProfile() {
3620 return mainJNI.Solver_localSearchProfile(swigCPtr, this);
3621 }
3622
3628 public boolean currentlyInSolve() {
3629 return mainJNI.Solver_currentlyInSolve(swigCPtr, this);
3630 }
3631
3636 public int constraints() {
3637 return mainJNI.Solver_constraints(swigCPtr, this);
3638 }
3639
3643 public void accept(ModelVisitor visitor) {
3644 mainJNI.Solver_accept(swigCPtr, this, ModelVisitor.getCPtr(visitor), visitor);
3645 }
3646
3648 long cPtr = mainJNI.Solver_balancing_decision(swigCPtr, this);
3649 return (cPtr == 0) ? null : new Decision(cPtr, false);
3650 }
3651
3655 public void clear_fail_intercept() {
3656 mainJNI.Solver_clear_fail_intercept(swigCPtr, this);
3657 }
3658
3663 public void SetUseFastLocalSearch(boolean use_fast_local_search) {
3664 mainJNI.Solver_SetUseFastLocalSearch(swigCPtr, this, use_fast_local_search);
3665 }
3666
3670 public boolean UseFastLocalSearch() {
3671 return mainJNI.Solver_UseFastLocalSearch(swigCPtr, this);
3672 }
3673
3677 public boolean hasName(PropagationBaseObject object) {
3678 return mainJNI.Solver_hasName(swigCPtr, this, PropagationBaseObject.getCPtr(object), object);
3679 }
3680
3684 public Demon registerDemon(Demon demon) {
3685 long cPtr = mainJNI.Solver_registerDemon(swigCPtr, this, Demon.getCPtr(demon), demon);
3686 return (cPtr == 0) ? null : new Demon(cPtr, false);
3687 }
3688
3693 long cPtr = mainJNI.Solver_registerIntExpr(swigCPtr, this, IntExpr.getCPtr(expr), expr);
3694 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3695 }
3696
3701 long cPtr = mainJNI.Solver_registerIntVar(swigCPtr, this, IntVar.getCPtr(var), var);
3702 return (cPtr == 0) ? null : new IntVar(cPtr, false);
3703 }
3704
3710 long cPtr = mainJNI.Solver_registerIntervalVar(swigCPtr, this, IntervalVar.getCPtr(var), var);
3711 return (cPtr == 0) ? null : new IntervalVar(cPtr, false);
3712 }
3713
3718 long cPtr = mainJNI.Solver_cache(swigCPtr, this);
3719 return (cPtr == 0) ? null : new ModelCache(cPtr, false);
3720 }
3721
3725 public boolean instrumentsDemons() {
3726 return mainJNI.Solver_instrumentsDemons(swigCPtr, this);
3727 }
3728
3732 public boolean isProfilingEnabled() {
3733 return mainJNI.Solver_isProfilingEnabled(swigCPtr, this);
3734 }
3735
3740 return mainJNI.Solver_isLocalSearchProfilingEnabled(swigCPtr, this);
3741 }
3742
3746 public boolean instrumentsVariables() {
3747 return mainJNI.Solver_instrumentsVariables(swigCPtr, this);
3748 }
3749
3753 public boolean nameAllVariables() {
3754 return mainJNI.Solver_nameAllVariables(swigCPtr, this);
3755 }
3756
3760 public String model_name() {
3761 return mainJNI.Solver_model_name(swigCPtr, this);
3762 }
3763
3768 long cPtr = mainJNI.Solver_getPropagationMonitor(swigCPtr, this);
3769 return (cPtr == 0) ? null : new PropagationMonitor(cPtr, false);
3770 }
3771
3777 mainJNI.Solver_addPropagationMonitor(swigCPtr, this, PropagationMonitor.getCPtr(monitor), monitor);
3778 }
3779
3784 long cPtr = mainJNI.Solver_getLocalSearchMonitor(swigCPtr, this);
3785 return (cPtr == 0) ? null : new LocalSearchMonitor(cPtr, false);
3786 }
3787
3793 mainJNI.Solver_addLocalSearchMonitor(swigCPtr, this, LocalSearchMonitor.getCPtr(monitor), monitor);
3794 }
3795
3800 long cPtr = mainJNI.Solver_GetOrCreateLocalSearchState(swigCPtr, this);
3801 return (cPtr == 0) ? null : new Assignment(cPtr, false);
3802 }
3803
3808 mainJNI.Solver_ClearLocalSearchState(swigCPtr, this);
3809 }
3810
3817 public void setTmpVector(long[] value) {
3818 mainJNI.Solver_tmpVector_set(swigCPtr, this, value);
3819 }
3820
3827 public long[] getTmpVector() {
3828 return mainJNI.Solver_tmpVector_get(swigCPtr, this);
3829}
3830
3836 long cPtr = mainJNI.Solver_castExpression(swigCPtr, this, IntVar.getCPtr(var), var);
3837 return (cPtr == 0) ? null : new IntExpr(cPtr, false);
3838 }
3839
3843 public void finishCurrentSearch() {
3844 mainJNI.Solver_finishCurrentSearch(swigCPtr, this);
3845 }
3846
3847 public void restartCurrentSearch() {
3848 mainJNI.Solver_restartCurrentSearch(swigCPtr, this);
3849 }
3850
3855 public void shouldFail() {
3856 mainJNI.Solver_shouldFail(swigCPtr, this);
3857 }
3858
3859 public void checkFail() {
3860 mainJNI.Solver_checkFail(swigCPtr, this);
3861 }
3862
3866 public final static int kNumPriorities = mainJNI.Solver_kNumPriorities_get();
3867 // IntVarStrategy
3876 public final static int INT_VAR_DEFAULT = mainJNI.Solver_INT_VAR_DEFAULT_get();
3880 public final static int INT_VAR_SIMPLE = mainJNI.Solver_INT_VAR_SIMPLE_get();
3886 public final static int CHOOSE_FIRST_UNBOUND = mainJNI.Solver_CHOOSE_FIRST_UNBOUND_get();
3890 public final static int CHOOSE_RANDOM = mainJNI.Solver_CHOOSE_RANDOM_get();
3899 public final static int CHOOSE_MIN_SIZE_LOWEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MIN_get();
3908 public final static int CHOOSE_MIN_SIZE_HIGHEST_MIN = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN_get();
3917 public final static int CHOOSE_MIN_SIZE_LOWEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_LOWEST_MAX_get();
3926 public final static int CHOOSE_MIN_SIZE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX_get();
3933 public final static int CHOOSE_LOWEST_MIN = mainJNI.Solver_CHOOSE_LOWEST_MIN_get();
3940 public final static int CHOOSE_HIGHEST_MAX = mainJNI.Solver_CHOOSE_HIGHEST_MAX_get();
3946 public final static int CHOOSE_MIN_SIZE = mainJNI.Solver_CHOOSE_MIN_SIZE_get();
3952 public final static int CHOOSE_MAX_SIZE = mainJNI.Solver_CHOOSE_MAX_SIZE_get();
3957 public final static int CHOOSE_MAX_REGRET_ON_MIN = mainJNI.Solver_CHOOSE_MAX_REGRET_ON_MIN_get();
3962 public final static int CHOOSE_PATH = mainJNI.Solver_CHOOSE_PATH_get();
3963
3964 // IntValueStrategy
3973 public final static int INT_VALUE_DEFAULT = mainJNI.Solver_INT_VALUE_DEFAULT_get();
3977 public final static int INT_VALUE_SIMPLE = mainJNI.Solver_INT_VALUE_SIMPLE_get();
3981 public final static int ASSIGN_MIN_VALUE = mainJNI.Solver_ASSIGN_MIN_VALUE_get();
3985 public final static int ASSIGN_MAX_VALUE = mainJNI.Solver_ASSIGN_MAX_VALUE_get();
3989 public final static int ASSIGN_RANDOM_VALUE = mainJNI.Solver_ASSIGN_RANDOM_VALUE_get();
3995 public final static int ASSIGN_CENTER_VALUE = mainJNI.Solver_ASSIGN_CENTER_VALUE_get();
4000 public final static int SPLIT_LOWER_HALF = mainJNI.Solver_SPLIT_LOWER_HALF_get();
4005 public final static int SPLIT_UPPER_HALF = mainJNI.Solver_SPLIT_UPPER_HALF_get();
4006
4007 // EvaluatorStrategy
4027 public final static int CHOOSE_STATIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_STATIC_GLOBAL_BEST_get();
4034 public final static int CHOOSE_DYNAMIC_GLOBAL_BEST = mainJNI.Solver_CHOOSE_DYNAMIC_GLOBAL_BEST_get();
4035
4036 // SequenceStrategy
4041 public final static int SEQUENCE_DEFAULT = mainJNI.Solver_SEQUENCE_DEFAULT_get();
4042 public final static int SEQUENCE_SIMPLE = mainJNI.Solver_SEQUENCE_SIMPLE_get();
4043 public final static int CHOOSE_MIN_SLACK_RANK_FORWARD = mainJNI.Solver_CHOOSE_MIN_SLACK_RANK_FORWARD_get();
4044 public final static int CHOOSE_RANDOM_RANK_FORWARD = mainJNI.Solver_CHOOSE_RANDOM_RANK_FORWARD_get();
4045
4046 // IntervalStrategy
4055 public final static int INTERVAL_DEFAULT = mainJNI.Solver_INTERVAL_DEFAULT_get();
4059 public final static int INTERVAL_SIMPLE = mainJNI.Solver_INTERVAL_SIMPLE_get();
4064 public final static int INTERVAL_SET_TIMES_FORWARD = mainJNI.Solver_INTERVAL_SET_TIMES_FORWARD_get();
4069 public final static int INTERVAL_SET_TIMES_BACKWARD = mainJNI.Solver_INTERVAL_SET_TIMES_BACKWARD_get();
4070
4071 // LocalSearchOperators
4088 public final static int TWOOPT = mainJNI.Solver_TWOOPT_get();
4105 public final static int OROPT = mainJNI.Solver_OROPT_get();
4109 public final static int RELOCATE = mainJNI.Solver_RELOCATE_get();
4119 public final static int EXCHANGE = mainJNI.Solver_EXCHANGE_get();
4131 public final static int CROSS = mainJNI.Solver_CROSS_get();
4140 public final static int MAKEACTIVE = mainJNI.Solver_MAKEACTIVE_get();
4148 public final static int MAKEINACTIVE = mainJNI.Solver_MAKEINACTIVE_get();
4157 public final static int MAKECHAININACTIVE = mainJNI.Solver_MAKECHAININACTIVE_get();
4165 public final static int SWAPACTIVE = mainJNI.Solver_SWAPACTIVE_get();
4178 public final static int EXTENDEDSWAPACTIVE = mainJNI.Solver_EXTENDEDSWAPACTIVE_get();
4188 public final static int PATHLNS = mainJNI.Solver_PATHLNS_get();
4193 public final static int FULLPATHLNS = mainJNI.Solver_FULLPATHLNS_get();
4199 public final static int UNACTIVELNS = mainJNI.Solver_UNACTIVELNS_get();
4210 public final static int INCREMENT = mainJNI.Solver_INCREMENT_get();
4216 public final static int DECREMENT = mainJNI.Solver_DECREMENT_get();
4226 public final static int SIMPLELNS = mainJNI.Solver_SIMPLELNS_get();
4227
4228 // EvaluatorLocalSearchOperators
4240 public final static int LK = mainJNI.Solver_LK_get();
4249 public final static int TSPOPT = mainJNI.Solver_TSPOPT_get();
4258 public final static int TSPLNS = mainJNI.Solver_TSPLNS_get();
4259
4260 // LocalSearchFilterBound
4271 public final static int GE = mainJNI.Solver_GE_get();
4275 public final static int LE = mainJNI.Solver_LE_get();
4280 public final static int EQ = mainJNI.Solver_EQ_get();
4281
4282 // DemonPriority
4293 public final static int DELAYED_PRIORITY = mainJNI.Solver_DELAYED_PRIORITY_get();
4297 public final static int VAR_PRIORITY = mainJNI.Solver_VAR_PRIORITY_get();
4301 public final static int NORMAL_PRIORITY = mainJNI.Solver_NORMAL_PRIORITY_get();
4302
4303 // BinaryIntervalRelation
4312 public final static int ENDS_AFTER_END = mainJNI.Solver_ENDS_AFTER_END_get();
4316 public final static int ENDS_AFTER_START = mainJNI.Solver_ENDS_AFTER_START_get();
4320 public final static int ENDS_AT_END = mainJNI.Solver_ENDS_AT_END_get();
4324 public final static int ENDS_AT_START = mainJNI.Solver_ENDS_AT_START_get();
4328 public final static int STARTS_AFTER_END = mainJNI.Solver_STARTS_AFTER_END_get();
4332 public final static int STARTS_AFTER_START = mainJNI.Solver_STARTS_AFTER_START_get();
4336 public final static int STARTS_AT_END = mainJNI.Solver_STARTS_AT_END_get();
4340 public final static int STARTS_AT_START = mainJNI.Solver_STARTS_AT_START_get();
4346 public final static int STAYS_IN_SYNC = mainJNI.Solver_STAYS_IN_SYNC_get();
4347
4348 // UnaryIntervalRelation
4357 public final static int ENDS_AFTER = mainJNI.Solver_ENDS_AFTER_get();
4361 public final static int ENDS_AT = mainJNI.Solver_ENDS_AT_get();
4365 public final static int ENDS_BEFORE = mainJNI.Solver_ENDS_BEFORE_get();
4369 public final static int STARTS_AFTER = mainJNI.Solver_STARTS_AFTER_get();
4373 public final static int STARTS_AT = mainJNI.Solver_STARTS_AT_get();
4377 public final static int STARTS_BEFORE = mainJNI.Solver_STARTS_BEFORE_get();
4383 public final static int CROSS_DATE = mainJNI.Solver_CROSS_DATE_get();
4389 public final static int AVOID_DATE = mainJNI.Solver_AVOID_DATE_get();
4390
4391 // DecisionModification
4404 public final static int NO_CHANGE = mainJNI.Solver_NO_CHANGE_get();
4410 public final static int KEEP_LEFT = mainJNI.Solver_KEEP_LEFT_get();
4416 public final static int KEEP_RIGHT = mainJNI.Solver_KEEP_RIGHT_get();
4421 public final static int KILL_BOTH = mainJNI.Solver_KILL_BOTH_get();
4426 public final static int SWITCH_BRANCHES = mainJNI.Solver_SWITCH_BRANCHES_get();
4427
4428 // MarkerType
4434 public final static int SENTINEL = mainJNI.Solver_SENTINEL_get();
4435 public final static int SIMPLE_MARKER = mainJNI.Solver_SIMPLE_MARKER_get();
4436 public final static int CHOICE_POINT = mainJNI.Solver_CHOICE_POINT_get();
4437 public final static int REVERSIBLE_ACTION = mainJNI.Solver_REVERSIBLE_ACTION_get();
4438
4439 // SolverState
4447 public final static int OUTSIDE_SEARCH = mainJNI.Solver_OUTSIDE_SEARCH_get();
4451 public final static int IN_ROOT_NODE = mainJNI.Solver_IN_ROOT_NODE_get();
4455 public final static int IN_SEARCH = mainJNI.Solver_IN_SEARCH_get();
4459 public final static int AT_SOLUTION = mainJNI.Solver_AT_SOLUTION_get();
4463 public final static int NO_MORE_SOLUTIONS = mainJNI.Solver_NO_MORE_SOLUTIONS_get();
4467 public final static int PROBLEM_INFEASIBLE = mainJNI.Solver_PROBLEM_INFEASIBLE_get();
4468
4469 // OptimizationDirection
4474 public final static int NOT_SET = mainJNI.Solver_NOT_SET_get();
4475 public final static int MAXIMIZATION = mainJNI.Solver_MAXIMIZATION_get();
4476 public final static int MINIMIZATION = mainJNI.Solver_MINIMIZATION_get();
4477
4478}
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:104
Holds semantic information stating that the 'expression' has been cast into 'variable' using the Var...
Definition: Solver.java:187
IntegerCastInfo(IntVar v, IntExpr e, Constraint c)
Definition: Solver.java:219
Solver Class A solver represents the main computation engine.
Definition: Solver.java:73
Constraint makeCount(IntVar[] vars, long value, IntVar max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1607
Constraint makeIsLessOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left <= right)
Definition: Solver.java:1162
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:3022
long stamp()
The stamp indicates how many moves in the search tree we have performed.
Definition: Solver.java:600
IntExpr makeMax(IntExpr left, IntExpr right)
std::max(left, right)
Definition: Solver.java:937
IntExpr makePower(IntExpr expr, long n)
expr ^ n (n > 0)
Definition: Solver.java:817
static final int IN_SEARCH
Executing the search code.
Definition: Solver.java:4455
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2658
boolean isLocalSearchProfilingEnabled()
Returns whether we are profiling local search.
Definition: Solver.java:3739
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3484
Constraint makeDistribute(IntVar[] vars, long[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1615
long rand64(long size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3589
IntVar makeIsMemberVar(IntExpr expr, int[] values)
Definition: Solver.java:1591
IntExpr makeConvexPiecewiseExpr(IntExpr expr, long early_cost, long early_date, long late_date, long late_cost)
Convex piecewise function.
Definition: Solver.java:961
DecisionBuilder makeDefaultPhase(IntVar[] vars)
Definition: Solver.java:3032
Constraint makeSortingConstraint(IntVar[] vars, IntVar[] sorted)
Creates a constraint binding the arrays of variables "vars" and "sorted_vars": sorted_vars[0] must b...
Definition: Solver.java:1741
Constraint makeEquality(IntExpr left, IntExpr right)
left == right
Definition: Solver.java:1058
Constraint makeIsDifferentCstCt(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 != v2)
Definition: Solver.java:1106
Constraint makeIntervalVarRelation(IntervalVar t1, int r, IntervalVar t2)
This method creates a relation between two interval vars.
Definition: Solver.java:2196
Constraint makeIsEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var == value)
Definition: Solver.java:1026
IntVar makeIntVar(int[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:665
Constraint makeCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path.
Definition: Solver.java:1856
IntVar makeIsGreaterOrEqualVar(IntExpr left, IntExpr right)
status var of (left >= right)
Definition: Solver.java:1210
int rand32(int size)
Returns a random value between 0 and 'size' - 1;.
Definition: Solver.java:3596
IntervalVar makeFixedDurationStartSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose start is synchronized with the start of another ...
Definition: Solver.java:2098
Constraint makeLess(IntExpr left, IntExpr right)
left < right
Definition: Solver.java:1338
void pushState()
The PushState and PopState methods manipulates the states of the reversible objects.
Definition: Solver.java:3554
Constraint makeMemberCt(IntExpr expr, long[] values)
expr in set.
Definition: Solver.java:1534
IntExpr makeConditionalExpression(IntVar condition, IntExpr expr, long unperformed_value)
Conditional Expr condition ? expr : unperformed_value.
Definition: Solver.java:997
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3)
Definition: Solver.java:2864
void ClearLocalSearchState()
Clears the local search state.
Definition: Solver.java:3807
IntExpr makeElement(IntVar[] vars, IntVar index)
vars[expr]
Definition: Solver.java:872
IntVar makeIsLessOrEqualVar(IntExpr left, IntExpr right)
status var of (left <= right)
Definition: Solver.java:1154
Constraint makeElementEquality(int[] vals, IntVar index, IntVar target)
Definition: Solver.java:1437
Constraint makeAbsEquality(IntVar var, IntVar abs_var)
Creates the constraint abs(var) == abs_var.
Definition: Solver.java:1455
Constraint makeInversePermutationConstraint(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that 'left' and 'right' both represent permutations of [0....
Definition: Solver.java:1770
DecisionBuilder makeConstraintAdder(Constraint ct)
Returns a decision builder that will add the given constraint to the model.
Definition: Solver.java:3159
IntVar makeIsLessVar(IntExpr left, IntExpr right)
status var of (left < right)
Definition: Solver.java:1322
Assignment makeAssignment()
This method creates an empty assignment.
Definition: Solver.java:2365
Constraint makeDistribute(IntVar[] vars, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1650
static final int CHOOSE_LOWEST_MIN
Among unbound variables, select the variable with the smallest minimal value.
Definition: Solver.java:3933
Constraint makeCumulative(IntervalVar[] intervals, int[] demands, IntVar capacity, String name)
This constraint enforces that, for any integer t, the sum of the demands corresponding to an interva...
Definition: Solver.java:2309
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active)
Prevent cycles.
Definition: Solver.java:1843
SearchMonitor makeLubyRestart(int scale_factor)
This search monitor will restart the search periodically.
Definition: Solver.java:2600
long neighbors()
The number of neighbors created.
Definition: Solver.java:578
Constraint makeElementEquality(IntVar[] vars, IntVar index, long target)
Definition: Solver.java:1447
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, int var_str, int val_str)
Definition: Solver.java:3055
IntervalVar makeIntervalRelaxedMin(IntervalVar interval_var)
Creates and returns an interval variable that wraps around the given one, relaxing the min start and...
Definition: Solver.java:2155
static final int PATHLNS
Operator which relaxes two sub-chains of three consecutive arcs each.
Definition: Solver.java:4188
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2974
IntExpr castExpression(IntVar var)
Internal.
Definition: Solver.java:3835
LocalSearchMonitor getLocalSearchMonitor()
Returns the local search monitor.
Definition: Solver.java:3783
static final int SPLIT_LOWER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:4000
Constraint makeNonEquality(IntExpr expr, int value)
expr != value
Definition: Solver.java:1130
DecisionBuilder makeDecisionBuilderFromAssignment(Assignment assignment, DecisionBuilder db, IntVar[] vars)
Returns a decision builder for which the left-most leaf corresponds to assignment,...
Definition: Solver.java:3150
static final int CHOOSE_MAX_SIZE
Among unbound variables, select the variable with the highest size.
Definition: Solver.java:3952
Constraint makeMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1539
IntVar makeIntVar(long[] values)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:657
IntExpr makeOpposite(IntExpr expr)
-expr
Definition: Solver.java:761
IntExpr makeMin(IntExpr expr, long value)
std::min(expr, value)
Definition: Solver.java:913
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, String name)
Creates a performed interval var with a fixed duration.
Definition: Solver.java:2052
static final int SEQUENCE_DEFAULT
Used for scheduling.
Definition: Solver.java:4041
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator values, int filter_enum)
Definition: Solver.java:3527
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:1990
IntExpr makeScalProd(IntVar[] vars, long[] coefs)
scalar product
Definition: Solver.java:729
Constraint makeCumulative(IntervalVar[] intervals, long[] demands, long capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval ...
Definition: Solver.java:2261
static final int 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:4069
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops, int seed)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNei...
Definition: Solver.java:3384
Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] slacks, LongBinaryOperator transit_evaluator)
Creates a constraint which accumulates values along a path such that: cumuls[next[i]] = cumuls[i] + ...
Definition: Solver.java:1911
SearchMonitor makeSearchLog(int branch_period, IntVar var)
At each solution, this monitor also display the var value.
Definition: Solver.java:2762
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler)
Prevent cycles.
Definition: Solver.java:1827
Constraint makeAllowedAssignment(IntVar[] vars, IntTupleSet tuples)
This method creates a constraint where the graph of the relation between the variables is given in e...
Definition: Solver.java:1942
Assignment makeAssignment(Assignment a)
This method creates an assignment which is a copy of 'a'.
Definition: Solver.java:2373
Constraint makeGreater(IntExpr expr, long value)
expr > value
Definition: Solver.java:1290
void setTmpVector(long[] value)
Unsafe temporary vector.
Definition: Solver.java:3817
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:2798
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, long[] coeffs, long cst)
Definition: Solver.java:1402
static final int PROBLEM_INFEASIBLE
After search, the model is infeasible.
Definition: Solver.java:4467
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:3876
Constraint makeNonEquality(IntExpr left, IntExpr right)
left != right
Definition: Solver.java:1114
IntExpr makeMin(IntVar[] vars)
std::min(vars)
Definition: Solver.java:897
long branches()
The number of branches explored since the creation of the solver.
Definition: Solver.java:543
IntVar makeIsDifferentCstVar(IntExpr v1, IntExpr v2)
status var of (v1 != v2)
Definition: Solver.java:1098
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:3410
static final int NO_MORE_SOLUTIONS
After failed NextSolution and before EndSearch.
Definition: Solver.java:4463
static final int SWAPACTIVE
Operator which replaces an active node by an inactive one.
Definition: Solver.java:4165
Constraint makeDistribute(IntVar[] vars, long[] values, long[] card_min, long[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1670
IntVar makeBoolVar(String name)
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:673
SolutionCollector makeBestValueSolutionCollector(boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assign...
Definition: Solver.java:2430
static final int DELAYED_PRIORITY
This enum represents the three possible priorities for a demon in the Solver queue.
Definition: Solver.java:4293
IntVar makeIntConst(long val)
IntConst will create a constant expression.
Definition: Solver.java:697
void set_optimization_direction(int direction)
Definition: Solver.java:618
Constraint makeScalProdGreaterOrEqual(IntVar[] vars, int[] coeffs, long cst)
Definition: Solver.java:1407
Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, LongBinaryOperator transit_evaluator)
Creates a constraint which accumulates values along a path such that: cumuls[next[i]] = cumuls[i] + ...
Definition: Solver.java:1898
boolean nameAllVariables()
Returns whether all variables should be named.
Definition: Solver.java:3753
IntVar registerIntVar(IntVar var)
Registers a new IntVar and wraps it inside a TraceIntVar if necessary.
Definition: Solver.java:3700
static final int NO_CHANGE
The Solver is responsible for creating the search tree.
Definition: Solver.java:4404
Constraint makeDistribute(IntVar[] vars, IntVar[] cards)
Aggregated version of count: |{i | v[i] == j}| == cards[j].
Definition: Solver.java:1631
IntVar makeIsEqualVar(IntExpr v1, IntExpr v2)
status var of (v1 == v2)
Definition: Solver.java:1050
static final int STARTS_BEFORE
t starts before d, i.e.
Definition: Solver.java:4377
static final int EQ
Move is accepted when the current objective value is in the interval objective.Min .
Definition: Solver.java:4280
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, boolean restart)
Definition: Solver.java:3360
IntExpr makeElement(LongBinaryOperator values, IntVar index1, IntVar index2)
2D version of function-based element expression, values(expr1, expr2).
Definition: Solver.java:864
Constraint makeDistribute(IntVar[] vars, int[] values, IntVar[] cards)
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j].
Definition: Solver.java:1623
Constraint makeIndexOfConstraint(IntVar[] vars, IntVar index, long target)
This constraint is a special case of the element constraint with an array of integer variables,...
Definition: Solver.java:1466
IntExpr makeSum(IntExpr expr, long value)
expr + value.
Definition: Solver.java:713
IntExpr makeModulo(IntExpr x, long mod)
General piecewise-linear function expression, built from f(x) where f is piecewise-linear.
Definition: Solver.java:981
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3275
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator)
Definition: Solver.java:3017
Constraint makeNullIntersectExcept(IntVar[] first_vars, IntVar[] second_vars, long escape_value)
Creates a constraint that states that all variables in the first vector are different from all varia...
Definition: Solver.java:1811
Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, long capacity, String name)
This constraint enforces that, for any integer t, the sum of demands corresponding to an interval co...
Definition: Solver.java:2323
static final int kNumPriorities
Number of priorities for demons.
Definition: Solver.java:3866
Demon makeClosureDemon(Runnable closure)
Creates a demon from a closure.
Definition: Solver.java:1493
Solver(long cPtr, boolean cMemoryOwn)
Definition: Solver.java:77
RegularLimit makeLimit(com.google.ortools.constraintsolver.RegularLimitParameters proto)
Creates a search limit from its protobuf description.
Definition: Solver.java:2684
IntVar makeIsGreaterVar(IntExpr left, IntExpr right)
status var of (left > right)
Definition: Solver.java:1266
void topPeriodicCheck()
Performs PeriodicCheck on the top-level search; for instance, can be called from a nested solve to c...
Definition: Solver.java:3536
IntExpr makeDifference(IntExpr left, IntExpr right)
left - right
Definition: Solver.java:745
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1)
Definition: Solver.java:3214
IntExpr makeSum(IntExpr left, IntExpr right)
left + right.
Definition: Solver.java:705
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, int[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2504
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:2020
Constraint makeGreater(IntExpr left, IntExpr right)
left > right
Definition: Solver.java:1282
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Definition: Solver.java:3489
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:3319
Constraint makeLessOrEqual(IntExpr expr, int value)
expr <= value
Definition: Solver.java:1186
void addCastConstraint(CastConstraint constraint, IntVar target_var, IntExpr expr)
Adds 'constraint' to the solver and marks it as a cast constraint, that is, a constraint created cal...
Definition: Solver.java:339
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:3899
static final int INT_VALUE_SIMPLE
The simple selection is ASSIGN_MIN_VALUE.
Definition: Solver.java:3977
Constraint makePathConnected(IntVar[] nexts, long[] sources, long[] sinks, IntVar[] status)
Constraint enforcing that status[i] is true iff there's a path defined on next variables from source...
Definition: Solver.java:1921
SolutionCollector makeFirstSolutionCollector()
Collect the first solution of the search.
Definition: Solver.java:2390
static final int INT_VALUE_DEFAULT
This enum describes the strategy used to select the next variable value to set.
Definition: Solver.java:3973
Decision makeScheduleOrExpedite(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:3084
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:406
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:3398
IntExpr makeElement(int[] values, IntVar index)
values[index]
Definition: Solver.java:833
void newSearch(DecisionBuilder db)
Definition: Solver.java:425
Constraint makeNotMemberCt(IntExpr expr, long[] values)
expr not in set.
Definition: Solver.java:1547
DecisionBuilder makePhase(IntVar v0, IntVar v1, int var_str, int val_str)
Definition: Solver.java:3050
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional, String name)
Definition: Solver.java:164
IntVar makeIsGreaterOrEqualCstVar(IntExpr var, long value)
status var of (var >= value)
Definition: Solver.java:1202
static final int KEEP_LEFT
Right branches are ignored.
Definition: Solver.java:4410
Constraint makeLess(IntExpr expr, int value)
expr < value
Definition: Solver.java:1354
IntervalVar[] makeFixedDurationIntervalVarArray(int count, long start_min, long start_max, long duration, boolean optional)
Definition: Solver.java:148
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:2789
Constraint makeElementEquality(long[] vals, IntVar index, IntVar target)
Definition: Solver.java:1432
boolean solve(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:394
IntVar[] makeIntVarArray(int count, long min, long max, String name)
Definition: Solver.java:122
DecisionBuilder makePhase(IntVar v0, int var_str, int val_str)
Shortcuts for small arrays.
Definition: Solver.java:3045
Constraint makeLessOrEqual(IntExpr left, IntExpr right)
left <= right
Definition: Solver.java:1170
IntExpr makeProd(IntExpr expr, long value)
expr * value
Definition: Solver.java:777
static final int ASSIGN_MIN_VALUE
Selects the min value of the selected variable.
Definition: Solver.java:3981
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:3453
LocalSearchOperator makeMoveTowardTargetOperator(Assignment target)
Creates a local search operator that tries to move the assignment of some variables toward a target.
Definition: Solver.java:3306
int optimization_direction()
The direction of optimization, getter and setter.
Definition: Solver.java:614
IntervalVar makeFixedDurationStartSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose start is synchronized with the end of another in...
Definition: Solver.java:2109
int constraints()
Counts the number of constraints that have been added to the solver before the search.
Definition: Solver.java:3636
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongBinaryOperator objective_function, long step, IntVar[] vars, double penalty_factor)
Creates a Guided Local Search monitor.
Definition: Solver.java:2585
static final int ENDS_BEFORE
t ends before d, i.e.
Definition: Solver.java:4365
Constraint makeSumEquality(IntVar[] vars, long cst)
Definition: Solver.java:1372
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor[] monitors)
Definition: Solver.java:3234
void exportProfilingOverview(String filename)
Exports the profiling information in a human readable overview.
Definition: Solver.java:3612
static final int RELOCATE
Relocate neighborhood with length of 1 (see OROPT comment).
Definition: Solver.java:4109
int solveDepth()
Gets the number of nested searches.
Definition: Solver.java:3582
IntExpr makeDiv(IntExpr expr, long value)
expr / value (integer division)
Definition: Solver.java:785
ModelVisitor makeStatisticsModelVisitor()
Displays some nice statistics on the model.
Definition: Solver.java:2841
IntVar makeIsDifferentCstVar(IntExpr var, long value)
status var of (var != value)
Definition: Solver.java:1090
Constraint makeDistribute(IntVar[] vars, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1660
boolean solve(DecisionBuilder db)
Definition: Solver.java:390
Constraint makeGreater(IntExpr expr, int value)
expr > value
Definition: Solver.java:1298
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:3012
IntVar makeIntVar(long[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:633
Constraint makeElementEquality(IntVar[] vars, IntVar index, IntVar target)
Definition: Solver.java:1442
long filteredNeighbors()
The number of filtered neighbors (neighbors accepted by filters).
Definition: Solver.java:585
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1382
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1)
Definition: Solver.java:3175
int searchDepth()
Gets the search depth of the current active search.
Definition: Solver.java:3566
void finishCurrentSearch()
Tells the solver to kill or restart the current search.
Definition: Solver.java:3843
Pack makePack(IntVar[] vars, int number_of_bins)
This constraint packs all variables onto 'number_of_bins' variables.
Definition: Solver.java:2032
static final int SWITCH_BRANCHES
Applies right branch first.
Definition: Solver.java:4426
Constraint makeIsMemberCt(IntExpr expr, long[] values, IntVar boolvar)
boolvar == (expr in set)
Definition: Solver.java:1576
SolutionCollector makeAllSolutionCollector(Assignment assignment)
Collect all solutions of the search.
Definition: Solver.java:2453
DecisionBuilder makePhase(SequenceVar[] sequences, int str)
Definition: Solver.java:3141
Constraint makeIsBetweenCt(IntExpr expr, long l, long u, IntVar b)
b == (l <= expr <= u)
Definition: Solver.java:1520
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:3114
IntExpr makeScalProd(IntVar[] vars, int[] coefs)
scalar product
Definition: Solver.java:737
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:3170
static long memoryUsage()
Current memory usage in bytes.
Definition: Solver.java:528
static final int OUTSIDE_SEARCH
This enum represents the state of the solver w.r.t.
Definition: Solver.java:4447
static final int VAR_PRIORITY
VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.
Definition: Solver.java:4297
IntVar makeIntConst(long val, String name)
IntConst will create a constant expression.
Definition: Solver.java:689
IntervalVar makeIntervalVar(long start_min, long start_max, long duration_min, long duration_max, long end_min, long end_max, boolean optional, String name)
Creates an interval var by specifying the bounds on start, duration, and end.
Definition: Solver.java:2078
void fail()
Abandon the current branch in the search tree.
Definition: Solver.java:514
IntervalVar makeMirrorInterval(IntervalVar interval_var)
Creates an interval var that is the mirror image of the given one, that is, the interval var obtaine...
Definition: Solver.java:2087
void reSeed(int seed)
Reseed the solver random generator.
Definition: Solver.java:3603
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:2780
OptimizeVar makeMaximize(IntVar v, long step)
Creates a maximization objective.
Definition: Solver.java:2478
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:433
Solver(String name, com.google.ortools.constraintsolver.ConstraintSolverParameters parameters)
Definition: Solver.java:259
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:3229
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:3102
static final int ENDS_AFTER_END
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between the tw...
Definition: Solver.java:4312
static final int UNACTIVELNS
Operator which relaxes all inactive nodes and one sub-chain of six consecutive arcs.
Definition: Solver.java:4199
void shouldFail()
These methods are only useful for the SWIG wrappers, which need a way to externally cause the Solver...
Definition: Solver.java:3855
Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, int[] final_states)
This constraint create a finite automaton that will check the sequence of variables vars.
Definition: Solver.java:1970
static final int CHOOSE_HIGHEST_MAX
Among unbound variables, select the variable with the highest maximal value.
Definition: Solver.java:3940
IntExpr makeSquare(IntExpr expr)
expr * expr
Definition: Solver.java:809
SearchMonitor makeSearchLog(int branch_period)
The SearchMonitors below will display a periodic search log on LOG(INFO) every branch_period branche...
Definition: Solver.java:2754
static final int NORMAL_PRIORITY
NORMAL_PRIORITY is the highest priority: Demons will be processed first.
Definition: Solver.java:4301
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2676
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, long[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2528
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:476
Constraint makeLess(IntExpr expr, long value)
expr < value
Definition: Solver.java:1346
Constraint makeScalProdEquality(IntVar[] vars, long[] coefficients, IntVar target)
Definition: Solver.java:1392
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3, SearchMonitor m4)
Definition: Solver.java:441
Decision makeSplitVariableDomain(IntVar var, long val, boolean start_with_lower_half)
Definition: Solver.java:2892
SolutionCollector makeBestValueSolutionCollector(Assignment assignment, boolean maximize)
Collect the solution corresponding to the optimal value of the objective of 'assignment'; if 'assign...
Definition: Solver.java:2418
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:3128
static final int KILL_BOTH
Backtracks to the previous decisions, i.e.
Definition: Solver.java:4421
IntExpr makeMax(IntVar[] vars)
std::max(vars)
Definition: Solver.java:929
Constraint makeCumulative(IntervalVar[] intervals, IntVar[] demands, IntVar capacity, String name)
This constraint enforces that, for any integer t, the sum of demands corresponding to an interval co...
Definition: Solver.java:2337
Constraint makeCount(IntVar[] vars, long value, long max_count)
|{i | vars[i] == value}| == max_count
Definition: Solver.java:1599
static final int TWOOPT
This enum is used in Solver::MakeOperator to specify the neighborhood to create.
Definition: Solver.java:4088
IntExpr makeMonotonicElement(LongUnaryOperator values, boolean increasing, IntVar index)
Function based element.
Definition: Solver.java:856
Constraint makeEquality(IntExpr expr, int value)
expr == value
Definition: Solver.java:1074
com.google.ortools.constraintsolver.RegularLimitParameters makeDefaultRegularLimitParameters()
Creates a regular limit proto containing default values.
Definition: Solver.java:2707
DecisionBuilder makeLocalSearchPhase(Assignment assignment, LocalSearchPhaseParameters parameters)
Local Search decision builders factories.
Definition: Solver.java:3440
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3, SearchMonitor monitor4)
Definition: Solver.java:3190
LocalSearchOperator makeOperator(IntVar[] vars, int op)
Local Search Operators.
Definition: Solver.java:3260
Constraint makeDistribute(IntVar[] vars, int[] values, int[] card_min, int[] card_max)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1680
static final int STARTS_AT_END
t1 starts at t2 end, i.e.
Definition: Solver.java:4336
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:2969
IntVar makeBoolVar()
MakeBoolVar will create a variable with a {0, 1} domain.
Definition: Solver.java:681
Constraint makeFalseConstraint()
This constraint always fails.
Definition: Solver.java:1013
long unchecked_solutions()
The number of unchecked solutions found by local search.
Definition: Solver.java:557
static final int GE
This enum is used in Solver::MakeLocalSearchObjectiveFilter.
Definition: Solver.java:4271
static final int LE
Move is accepted when the current objective value <= objective.Max.
Definition: Solver.java:4275
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:2736
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:3289
static final int MAKEACTIVE
Operator which inserts an inactive node into a path.
Definition: Solver.java:4140
Constraint makeAllDifferentExcept(IntVar[] vars, long escape_value)
All variables are pairwise different, unless they are assigned to the escape value.
Definition: Solver.java:1719
static final int CHOOSE_FIRST_UNBOUND
Select the first unbound variable.
Definition: Solver.java:3886
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3479
Constraint makeMinEquality(IntVar[] vars, IntVar min_var)
Definition: Solver.java:1422
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops, IntIntToLongFunction evaluator)
Definition: Solver.java:3365
static com.google.ortools.constraintsolver.ConstraintSolverParameters defaultSolverParameters()
Create a ConstraintSolverParameters proto with all the default values.
Definition: Solver.java:282
long[] getTmpVector()
Unsafe temporary vector.
Definition: Solver.java:3827
SearchMonitor makeGuidedLocalSearch(boolean maximize, IntVar objective, LongTernaryOperator objective_function, long step, IntVar[] vars, IntVar[] secondary_vars, double penalty_factor)
Definition: Solver.java:2590
static final int ASSIGN_RANDOM_VALUE
Selects randomly one of the possible values of the selected variable.
Definition: Solver.java:3989
IntVar makeIntVar(long min, long max, String name)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:625
Constraint makeIsLessCt(IntExpr left, IntExpr right, IntVar b)
b == (left < right)
Definition: Solver.java:1330
void newSearch(DecisionBuilder db, SearchMonitor m1)
Definition: Solver.java:429
SolutionCollector makeFirstSolutionCollector(Assignment assignment)
Collect the first solution of the search.
Definition: Solver.java:2381
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:484
RegularLimit makeSolutionsLimit(long solutions)
Creates a search limit that constrains the number of solutions found during the search.
Definition: Solver.java:2649
Constraint makeSumEquality(IntVar[] vars, IntVar var)
Definition: Solver.java:1377
boolean instrumentsVariables()
Returns whether we are tracing variables.
Definition: Solver.java:3746
DecisionBuilder makePhase(IntervalVar[] intervals, int str)
Scheduling phases.
Definition: Solver.java:3136
IntervalVar makeFixedDurationEndSyncedOnEndIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose end is synchronized with the end of another inte...
Definition: Solver.java:2131
IntVar makeIsGreaterCstVar(IntExpr var, long value)
status var of (var > value)
Definition: Solver.java:1258
IntVar[] makeBoolVarArray(int count, String name)
Definition: Solver.java:139
SolutionCollector makeNBestValueSolutionCollector(Assignment assignment, int solution_count, boolean maximize)
Same as MakeBestValueSolutionCollector but collects the best solution_count solutions.
Definition: Solver.java:2440
Constraint makeCover(IntervalVar[] vars, IntervalVar target_var)
This constraint states that the target_var is the convex hull of the intervals.
Definition: Solver.java:2349
Constraint makeTransitionConstraint(IntVar[] vars, IntTupleSet transition_table, long initial_state, long[] final_states)
This constraint create a finite automaton that will check the sequence of variables vars.
Definition: Solver.java:1956
static final int SPLIT_UPPER_HALF
Split the domain in two around the center, and choose the lower part first.
Definition: Solver.java:4005
LocalSearchFilter makeVariableDomainFilter()
Definition: Solver.java:3517
Constraint makeIsMemberCt(IntExpr expr, int[] values, IntVar boolvar)
Definition: Solver.java:1581
static final int STARTS_AT
t starts at d, i.e.
Definition: Solver.java:4373
Decision MakeAssignVariableValueOrDoNothing(IntVar var, long value)
Definition: Solver.java:2902
DecisionBuilder makePhase(IntVar[] vars, int var_str, int val_str)
Phases on IntVar arrays.
Definition: Solver.java:2993
IntExpr makeProd(IntExpr left, IntExpr right)
left * right
Definition: Solver.java:769
static final int AVOID_DATE
STARTS_AFTER or ENDS_BEFORE, i.e.
Definition: Solver.java:4389
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, LongBinaryOperator value_evaluator, LongUnaryOperator tie_breaker)
Definition: Solver.java:3027
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:3962
static final int ENDS_AT_END
t1 ends at t2 end, i.e.
Definition: Solver.java:4320
Constraint makeScalProdLessOrEqual(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1417
Constraint makePathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits)
Creates a constraint which accumulates values along a path such that: cumuls[next[i]] = cumuls[i] + ...
Definition: Solver.java:1876
Demon makeConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of...
Definition: Solver.java:1475
DecisionBuilder makeLocalSearchPhase(IntVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3445
IntExpr makeMin(IntExpr left, IntExpr right)
std::min (left, right)
Definition: Solver.java:905
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3)
Definition: Solver.java:2937
static final int DECREMENT
Operator which defines a neighborhood to decrement values.
Definition: Solver.java:4216
IntExpr makeSum(IntVar[] vars)
sum of all vars.
Definition: Solver.java:721
IntVar makeIsLessOrEqualCstVar(IntExpr var, long value)
status var of (var <= value)
Definition: Solver.java:1146
SearchMonitor makeSymmetryManager(SymmetryBreaker v1)
Definition: Solver.java:2854
static final int CHOOSE_MIN_SIZE
Among unbound variables, select the variable with the smallest size.
Definition: Solver.java:3946
static final int ENDS_AFTER
This enum is used in Solver::MakeIntervalVarRelation to specify the temporal relation between an int...
Definition: Solver.java:4357
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:4027
Constraint makeLexicalLessOrEqual(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than or equal to right.
Definition: Solver.java:1759
IntVar makeIntVar(long min, long max)
MakeIntVar will create the best range based int var for the bounds given.
Definition: Solver.java:649
Constraint makeIsDifferentCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var != value)
Definition: Solver.java:1082
SearchMonitor makeExitSearchCallback(Runnable callback)
Definition: Solver.java:2820
void addPropagationMonitor(PropagationMonitor monitor)
Adds the propagation monitor to the solver.
Definition: Solver.java:3776
SearchMonitor makeGenericTabuSearch(boolean maximize, IntVar v, long step, IntVar[] tabu_vars, long forbid_tenure)
Creates a Tabu Search based on the vars |vars|.
Definition: Solver.java:2568
Decision makeVariableLessOrEqualValue(IntVar var, long value)
Definition: Solver.java:2882
Constraint makeGreaterOrEqual(IntExpr expr, int value)
expr >= value
Definition: Solver.java:1242
IntExpr makeElement(long[] values, IntVar index)
values[index]
Definition: Solver.java:825
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:3917
Constraint makeIsEqualVar(IntExpr v1, IntExpr v2, IntVar b)
b == (v1 == v2)
Definition: Solver.java:1042
Decision makeDecision(Consumer< Solver > apply, Consumer< Solver > refute)
Definition: Solver.java:2917
IntervalVar makeFixedDurationEndSyncedOnStartIntervalVar(IntervalVar interval_var, long duration, long offset)
Creates an interval var with a fixed duration whose end is synchronized with the start of another in...
Definition: Solver.java:2120
Demon makeDelayedConstraintInitialPropagateCallback(Constraint ct)
This method is a specialized case of the MakeConstraintDemon method to call the InitiatePropagate of...
Definition: Solver.java:1485
SearchMonitor makeSearchLog(int branch_period, Supplier< String > display_callback)
At each solution, this monitor will also display result of display_callback.
Definition: Solver.java:2771
SearchLimit makeLimit(SearchLimit limit_1, SearchLimit limit_2)
Creates a search limit that is reached when either of the underlying limit is reached.
Definition: Solver.java:2725
SearchLimit makeCustomLimit(BooleanSupplier limiter)
Callback-based search limit.
Definition: Solver.java:2745
SearchMonitor makeSimulatedAnnealing(boolean maximize, IntVar v, long step, long initial_temperature)
Creates a Simulated Annealing monitor.
Definition: Solver.java:2576
long solutions()
The number of solutions found since the start of the search.
Definition: Solver.java:550
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2, SymmetryBreaker v3, SymmetryBreaker v4)
Definition: Solver.java:2869
SearchMonitor makeConstantRestart(int frequency)
This search monitor will restart the search periodically after 'frequency' failures.
Definition: Solver.java:2609
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:398
Constraint makeGreaterOrEqual(IntExpr left, IntExpr right)
left >= right
Definition: Solver.java:1226
Constraint makeSubCircuit(IntVar[] nexts)
Force the "nexts" variable to create a complete Hamiltonian path for those that do not loop upon the...
Definition: Solver.java:1865
SearchMonitor makeSearchTrace(String prefix)
Creates a search monitor that will trace precisely the behavior of the search.
Definition: Solver.java:2807
LocalSearchOperator makeRandomLnsOperator(IntVar[] vars, int number_of_variables, int seed)
Definition: Solver.java:3294
Constraint makeCumulative(IntervalVar[] intervals, int[] demands, long capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval ...
Definition: Solver.java:2277
OptimizeVar makeWeightedOptimize(boolean maximize, IntVar[] sub_objectives, int[] weights, long step)
Creates a weighted objective with a given sense (true = maximization).
Definition: Solver.java:2536
IntExpr makeMax(IntExpr expr, int value)
std::max(expr, value)
Definition: Solver.java:953
Constraint makeAllDifferent(IntVar[] vars)
All variables are pairwise different.
Definition: Solver.java:1700
static final int MAKEINACTIVE
Operator which makes path nodes inactive.
Definition: Solver.java:4148
Constraint makeMaxEquality(IntVar[] vars, IntVar max_var)
Definition: Solver.java:1427
static final int EXTENDEDSWAPACTIVE
Operator which makes an inactive node active and an active one inactive.
Definition: Solver.java:4178
String localSearchProfile()
Returns local search profiling information in a human readable format.
Definition: Solver.java:3619
Decision makeScheduleOrPostpone(IntervalVar var, long est, int[] marker)
Returns a decision that tries to schedule a task at a given time.
Definition: Solver.java:3072
SearchMonitor makeSymmetryManager(SymmetryBreaker v1, SymmetryBreaker v2)
Definition: Solver.java:2859
Decision makeAssignVariablesValues(IntVar[] vars, long[] values)
Definition: Solver.java:2907
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:3185
IntervalVar registerIntervalVar(IntervalVar var)
Registers a new IntervalVar and wraps it inside a TraceIntervalVar if necessary.
Definition: Solver.java:3709
Constraint makeBetweenCt(IntExpr expr, long l, long u)
(l <= expr <= u)
Definition: Solver.java:1501
Constraint makeSumGreaterOrEqual(IntVar[] vars, long cst)
Definition: Solver.java:1367
long acceptedNeighbors()
The number of accepted neighbors.
Definition: Solver.java:592
OptimizeVar makeOptimize(boolean maximize, IntVar v, long step)
Creates a objective with a given sense (true = maximization).
Definition: Solver.java:2486
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:3926
IntervalVar makeFixedInterval(long start, long duration, String name)
Creates a fixed and performed interval.
Definition: Solver.java:2069
int topProgressPercent()
Returns a percentage representing the propress of the search before reaching the limits of the top-l...
Definition: Solver.java:3545
RegularLimit makeLimit(SWIGTYPE_p_absl__Duration time, long branches, long failures, long solutions, boolean smart_time_check)
Limits the search with the 'time', 'branches', 'failures' and 'solutions' limits.
Definition: Solver.java:2667
RegularLimit makeTimeLimit(SWIGTYPE_p_absl__Duration time)
Creates a search limit that constrains the running time.
Definition: Solver.java:2617
IntervalVar makeIntervalRelaxedMax(IntervalVar interval_var)
Creates and returns an interval variable that wraps around the given one, relaxing the max start and...
Definition: Solver.java:2179
IntVar makeIsEqualCstVar(IntExpr var, long value)
status var of (var == value)
Definition: Solver.java:1034
SearchMonitor makeTabuSearch(boolean maximize, IntVar v, long step, IntVar[] vars, long keep_tenure, long forbid_tenure, double tabu_factor)
MetaHeuristics which try to get the search out of local optima.
Definition: Solver.java:2559
Decision makeAssignVariableValueOrFail(IntVar var, long value)
Definition: Solver.java:2897
boolean solve(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:402
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:4055
Constraint makeEquality(IntervalVar var1, IntervalVar var2)
This constraints states that the two interval variables are equal.
Definition: Solver.java:2357
static final int STARTS_AT_START
t1 starts at t2 start, i.e.
Definition: Solver.java:4340
long fail_stamp()
The fail_stamp() is incremented after each backtrack.
Definition: Solver.java:607
LocalSearchOperator concatenateOperators(LocalSearchOperator[] ops)
Creates a local search operator which concatenates a vector of operators.
Definition: Solver.java:3355
SolutionCollector makeLastSolutionCollector()
Collect the last solution of the search.
Definition: Solver.java:2407
Constraint makeCumulative(IntervalVar[] intervals, long[] demands, IntVar capacity, String name)
This constraint forces that, for any integer t, the sum of the demands corresponding to an interval ...
Definition: Solver.java:2293
static final int INTERVAL_SIMPLE
The simple is INTERVAL_SET_TIMES_FORWARD.
Definition: Solver.java:4059
Constraint makeAllDifferent(IntVar[] vars, boolean stronger_propagation)
All variables are pairwise different.
Definition: Solver.java:1710
Constraint makeNotMemberCt(IntExpr expr, int[] starts, int[] ends)
expr should not be in the list of forbidden intervals [start[i]..end[i]].
Definition: Solver.java:1568
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, long cst)
Definition: Solver.java:1387
static final int NOT_SET
Optimization directions.
Definition: Solver.java:4474
DecisionBuilder makeLocalSearchPhase(SequenceVar[] vars, DecisionBuilder first_solution, LocalSearchPhaseParameters parameters)
Definition: Solver.java:3458
Constraint makeNotMemberCt(IntExpr expr, int[] values)
Definition: Solver.java:1552
RegularLimit makeTimeLimit(long time_in_ms)
Definition: Solver.java:2622
Constraint makeNotMemberCt(IntExpr expr, long[] starts, long[] ends)
expr should not be in the list of forbidden intervals [start[i]..end[i]].
Definition: Solver.java:1560
IntExpr makeMax(IntExpr expr, long value)
std::max(expr, value)
Definition: Solver.java:945
Constraint makeDistribute(IntVar[] vars, long card_min, long card_max, long card_size)
Aggregated version of count with bounded cardinalities: forall j in 0 .
Definition: Solver.java:1640
IntExpr makeElement(LongUnaryOperator values, IntVar index)
Function-based element.
Definition: Solver.java:843
static final int KEEP_RIGHT
Left branches are ignored.
Definition: Solver.java:4416
IntExpr makeDiv(IntExpr numerator, IntExpr denominator)
numerator / denominator (integer division).
Definition: Solver.java:793
Constraint makeGreaterOrEqual(IntExpr expr, long value)
expr >= value
Definition: Solver.java:1234
Constraint makeNonEquality(IntExpr expr, long value)
expr != value
Definition: Solver.java:1122
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:3093
static final int MAKECHAININACTIVE
Operator which makes a "chain" of path nodes inactive.
Definition: Solver.java:4157
SolutionCollector makeNBestValueSolutionCollector(int solution_count, boolean maximize)
Definition: Solver.java:2445
Constraint makeIndexOfFirstMinValueConstraint(IntVar index, IntVar[] vars)
Creates a constraint that binds the index variable to the index of the first variable with the minim...
Definition: Solver.java:1788
DisjunctiveConstraint makeDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2235
static final int ENDS_AT
t ends at d, i.e.
Definition: Solver.java:4361
Constraint makeIndexOfFirstMaxValueConstraint(IntVar index, IntVar[] vars)
Creates a constraint that binds the index variable to the index of the first variable with the maxim...
Definition: Solver.java:1779
ModelCache cache()
Returns the cache of the model.
Definition: Solver.java:3717
Constraint makeIsGreaterOrEqualCt(IntExpr left, IntExpr right, IntVar b)
b == (left >= right)
Definition: Solver.java:1218
LocalSearchOperator makeOperator(IntVar[] vars, LongTernaryOperator evaluator, int op)
Definition: Solver.java:3270
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, int[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2520
SolutionCollector makeLastSolutionCollector(Assignment assignment)
Collect the last solution of the search.
Definition: Solver.java:2398
static final int LK
This enum is used in Solver::MakeOperator associated with an evaluator to specify the neighborhood t...
Definition: Solver.java:4240
PropagationMonitor getPropagationMonitor()
Returns the propagation monitor.
Definition: Solver.java:3767
Constraint makeLessOrEqual(IntExpr expr, long value)
expr <= value
Definition: Solver.java:1178
static final int CHOOSE_DYNAMIC_GLOBAL_BEST
Pairs are compared each time a variable is selected.
Definition: Solver.java:4034
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, int[] x_size, int[] y_size)
Definition: Solver.java:1995
boolean solve(DecisionBuilder db, SearchMonitor[] monitors)
Solves the problem using the given DecisionBuilder and returns true if a solution was found and acce...
Definition: Solver.java:386
Constraint makeIntervalVarRelation(IntervalVar t, int r, long d)
This method creates a relation between an interval var and a date.
Definition: Solver.java:2188
DisjunctiveConstraint makeStrictDisjunctiveConstraint(IntervalVar[] intervals, String name)
This constraint forces all interval vars into an non-overlapping sequence.
Definition: Solver.java:2245
static final int INT_VAR_SIMPLE
The simple selection is CHOOSE_FIRST_UNBOUND.
Definition: Solver.java:3880
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit, LocalSearchFilterManager filter_manager)
Definition: Solver.java:3499
Constraint makeNoCycle(IntVar[] nexts, IntVar[] active, LongPredicate sink_handler, boolean assume_paths)
Definition: Solver.java:1848
IntExpr makeMin(IntExpr expr, int value)
std::min(expr, value)
Definition: Solver.java:921
static final int FULLPATHLNS
Operator which relaxes one entire path and all inactive nodes, thus defining num_paths neighbors.
Definition: Solver.java:4193
boolean UseFastLocalSearch()
Returns true if fast local search is enabled.
Definition: Solver.java:3670
RegularLimit makeLimit(long time, long branches, long failures, long solutions)
Definition: Solver.java:2699
Constraint makeSumLessOrEqual(IntVar[] vars, long cst)
Variation on arrays.
Definition: Solver.java:1362
IntVar makeIsMemberVar(IntExpr expr, long[] values)
Definition: Solver.java:1586
Constraint makeNonOverlappingBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size)
This constraint states that all the boxes must not overlap.
Definition: Solver.java:1985
SearchMonitor makeEnterSearchCallback(Runnable callback)
--— Callback-based search monitors --—
Definition: Solver.java:2815
OptimizeVar makeWeightedMaximize(IntVar[] sub_objectives, long[] weights, long step)
Creates a maximization weigthed objective.
Definition: Solver.java:2512
Constraint makeMapDomain(IntVar var, IntVar[] actives)
This constraint maps the domain of 'var' onto the array of variables 'actives'.
Definition: Solver.java:1931
static final int CROSS
Operator which cross exchanges the starting chains of 2 paths, including exchanging the whole paths.
Definition: Solver.java:4131
IntExpr makeAbs(IntExpr expr)
|expr|
Definition: Solver.java:801
void SetUseFastLocalSearch(boolean use_fast_local_search)
enabled for metaheuristics.
Definition: Solver.java:3663
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2942
static final int ASSIGN_MAX_VALUE
Selects the max value of the selected variable.
Definition: Solver.java:3985
Constraint makeDeviation(IntVar[] vars, IntVar deviation_var, long total_sum)
Deviation constraint: sum_i |n * vars[i] - total_sum| <= deviation_var and sum_i vars[i] == total_s...
Definition: Solver.java:1691
Decision makeVariableGreaterOrEqualValue(IntVar var, long value)
Definition: Solver.java:2887
ModelVisitor makePrintModelVisitor()
Prints the model.
Definition: Solver.java:2833
IntVarLocalSearchFilter makeSumObjectiveFilter(IntVar[] vars, LongBinaryOperator values, int filter_enum)
Definition: Solver.java:3522
Demon registerDemon(Demon demon)
Adds a new demon and wraps it inside a DemonProfiler if necessary.
Definition: Solver.java:3684
static final int INCREMENT
Operator which defines one neighbor per variable.
Definition: Solver.java:4210
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, IntVar[] x_size, IntVar[] y_size)
This constraint states that all the boxes must not overlap.
Definition: Solver.java:2010
static final int AT_SOLUTION
After successful NextSolution and before EndSearch.
Definition: Solver.java:4459
DecisionBuilder makePhase(IntVar v0, IntVar v1, IntVar v2, IntVar v3, int var_str, int val_str)
Definition: Solver.java:3060
Constraint makeNullIntersect(IntVar[] first_vars, IntVar[] second_vars)
Creates a constraint that states that all variables in the first vector are different from all varia...
Definition: Solver.java:1799
OptimizeVar makeMinimize(IntVar v, long step)
Creates a minimization objective.
Definition: Solver.java:2470
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2, IntVar alt)
This constraint implements a temporal disjunction between two interval vars t1 and t2.
Definition: Solver.java:2217
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check, boolean cumulative)
Definition: Solver.java:2689
IntervalVar makeFixedDurationIntervalVar(long start_min, long start_max, long duration, boolean optional, String name)
Creates an interval var with a fixed duration.
Definition: Solver.java:2043
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder)
Local Search Phase Parameters.
Definition: Solver.java:3474
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:3180
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:3908
DecisionBuilder makeSolveOnce(DecisionBuilder db, SearchMonitor[] monitors)
Definition: Solver.java:3195
Constraint makeFalseConstraint(String explanation)
Definition: Solver.java:1018
String toString()
misc debug string.
Definition: Solver.java:521
boolean instrumentsDemons()
Returns whether we are instrumenting demons.
Definition: Solver.java:3725
boolean checkConstraint(Constraint ct)
Checks whether adding this constraint will lead to an immediate failure.
Definition: Solver.java:500
Constraint makeIsGreaterCt(IntExpr left, IntExpr right, IntVar b)
b == (left > right)
Definition: Solver.java:1274
DecisionBuilder makeRestoreAssignment(Assignment assignment)
Returns a DecisionBuilder which restores an Assignment (calls void Assignment::Restore())
Definition: Solver.java:3243
IntExpr registerIntExpr(IntExpr expr)
Registers a new IntExpr and wraps it inside a TraceIntExpr if necessary.
Definition: Solver.java:3692
IntervalVar makeFixedDurationIntervalVar(IntVar start_variable, long duration, IntVar performed_variable, String name)
Creates an interval var with a fixed duration, and performed_variable.
Definition: Solver.java:2061
Constraint makeIsLessCstCt(IntExpr v, long c, IntVar b)
b == (v < c)
Definition: Solver.java:1306
String model_name()
Returns the name of the model.
Definition: Solver.java:3760
Constraint makeIsGreaterOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var >= value)
Definition: Solver.java:1194
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:4064
static final int STARTS_AFTER_START
t1 starts after t2 start, i.e.
Definition: Solver.java:4332
long wallTime()
DEPRECATED: Use Now() instead.
Definition: Solver.java:536
IntVar makeIntVar(int[] values, String name)
MakeIntVar will create a variable with the given sparse domain.
Definition: Solver.java:641
Constraint makeNonOverlappingNonStrictBoxesConstraint(IntVar[] x_vars, IntVar[] y_vars, long[] x_size, long[] y_size)
Definition: Solver.java:2015
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2, SearchMonitor monitor3)
Definition: Solver.java:3224
IntVar makeIsLessCstVar(IntExpr var, long value)
status var of (var < value)
Definition: Solver.java:1314
DecisionBuilder makeDefaultPhase(IntVar[] vars, DefaultPhaseParameters parameters)
Definition: Solver.java:3037
SearchMonitor makeAtSolutionCallback(Runnable callback)
Definition: Solver.java:2825
Constraint makeLexicalLess(IntVar[] left, IntVar[] right)
Creates a constraint that enforces that left is lexicographically less than right.
Definition: Solver.java:1750
IntExpr makeIndexExpression(IntVar[] vars, long value)
Returns the expression expr such that vars[expr] == value.
Definition: Solver.java:881
Constraint makeEquality(IntExpr expr, long value)
expr == value
Definition: Solver.java:1066
static final int ENDS_AT_START
t1 ends at t2 start, i.e.
Definition: Solver.java:4324
LocalSearchFilter MakeAcceptFilter()
Local Search Filters.
Definition: Solver.java:3507
static final int CHOOSE_RANDOM
Randomly select one of the remaining unbound variables.
Definition: Solver.java:3890
DecisionBuilder makePhase(IntVar[] vars, LongUnaryOperator var_evaluator, int val_str)
Definition: Solver.java:2998
Constraint makeTemporalDisjunction(IntervalVar t1, IntervalVar t2)
This constraint implements a temporal disjunction between two interval vars.
Definition: Solver.java:2226
Constraint makeScalProdEquality(IntVar[] vars, int[] coefficients, IntVar target)
Definition: Solver.java:1397
void accept(ModelVisitor visitor)
Accepts the given model visitor.
Definition: Solver.java:3643
static final int OROPT
Relocate: OROPT and RELOCATE.
Definition: Solver.java:4105
DecisionBuilder tryDecisions(DecisionBuilder[] dbs)
Definition: Solver.java:2984
boolean hasName(PropagationBaseObject object)
Returns whether the object has been named or not.
Definition: Solver.java:3677
OptimizeVar makeWeightedMinimize(IntVar[] sub_objectives, long[] weights, long step)
Creates a minimization weighted objective.
Definition: Solver.java:2495
Constraint makeDelayedPathCumul(IntVar[] nexts, IntVar[] active, IntVar[] cumuls, IntVar[] transits)
Delayed version of the same constraint: propagation on the nexts variables is delayed until all cons...
Definition: Solver.java:1885
Constraint makeIntervalVarRelationWithDelay(IntervalVar t1, int r, IntervalVar t2, long delay)
This method creates a relation between two interval vars.
Definition: Solver.java:2207
long failures()
The number of failures encountered since the creation of the solver.
Definition: Solver.java:571
void newSearch(DecisionBuilder db, SearchMonitor[] monitors)
Decomposed search.
Definition: Solver.java:421
RegularLimit makeLimit(long time, long branches, long failures, long solutions, boolean smart_time_check)
Definition: Solver.java:2694
Constraint makeIsLessOrEqualCstCt(IntExpr var, long value, IntVar boolvar)
boolvar == (var <= value)
Definition: Solver.java:1138
SolutionPool makeDefaultSolutionPool()
Solution Pool.
Definition: Solver.java:3466
Decision makeAssignVariableValue(IntVar var, long val)
Decisions.
Definition: Solver.java:2877
Assignment GetOrCreateLocalSearchState()
Returns (or creates) an assignment representing the state of local search.
Definition: Solver.java:3799
com.google.ortools.constraintsolver.ConstraintSolverParameters parameters()
Stored Parameters.
Definition: Solver.java:266
IntExpr makeSemiContinuousExpr(IntExpr expr, long fixed_charge, long step)
Semi continuous Expression (x <= 0 -> f(x) = 0; x > 0 -> f(x) = ax + b) a >= 0 and b >= 0.
Definition: Solver.java:970
boolean solveAndCommit(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2)
Definition: Solver.java:480
SearchMonitor makeSymmetryManager(SymmetryBreaker[] visitors)
Symmetry Breaking.
Definition: Solver.java:2849
static final int IN_ROOT_NODE
Executing the root node.
Definition: Solver.java:4451
DecisionBuilder makeStoreAssignment(Assignment assignment)
Returns a DecisionBuilder which stores an Assignment (calls void Assignment::Store())
Definition: Solver.java:3252
static final int STARTS_AFTER_END
t1 starts after t2 end, i.e.
Definition: Solver.java:4328
static final int STAYS_IN_SYNC
STARTS_AT_START and ENDS_AT_END at the same time.
Definition: Solver.java:4346
static final int SIMPLELNS
Operator which defines one neighbor per variable.
Definition: Solver.java:4226
Constraint makeIfThenElseCt(IntVar condition, IntExpr then_expr, IntExpr else_expr, IntVar target_var)
Special cases with arrays of size two.
Definition: Solver.java:889
DecisionBuilder makeNestedOptimize(DecisionBuilder db, Assignment solution, boolean maximize, long step, SearchMonitor monitor1, SearchMonitor monitor2)
Definition: Solver.java:3219
DecisionBuilder compose(DecisionBuilder db1, DecisionBuilder db2)
Creates a decision builder which sequentially composes decision builders.
Definition: Solver.java:2932
static final int CROSS_DATE
STARTS_BEFORE and ENDS_AFTER at the same time, i.e.
Definition: Solver.java:4383
IntVar makeIsBetweenVar(IntExpr v, long l, long u)
Definition: Solver.java:1525
static final int SENTINEL
This enum is used internally in private methods Solver::PushState and Solver::PopState to tag states...
Definition: Solver.java:4434
LocalSearchOperator makeOperator(IntVar[] vars, IntVar[] secondary_vars, int op)
Definition: Solver.java:3265
DecisionBuilder compose(DecisionBuilder[] dbs)
Definition: Solver.java:2947
LocalSearchOperator randomConcatenateOperators(LocalSearchOperator[] ops)
Randomized version of local search concatenator; calls a random operator at each call to MakeNextNei...
Definition: Solver.java:3374
boolean currentlyInSolve()
Returns true whether the current search has been created using a Solve() call instead of a NewSearch...
Definition: Solver.java:3628
DecisionBuilder tryDecisions(DecisionBuilder db1, DecisionBuilder db2, DecisionBuilder db3, DecisionBuilder db4)
Definition: Solver.java:2979
Constraint makeScalProdLessOrEqual(IntVar[] vars, long[] coefficients, long cst)
Definition: Solver.java:1412
Constraint makeTrueConstraint()
This constraint always succeeds.
Definition: Solver.java:1005
long demon_runs(int p)
The number of demons executed during search for a given priority.
Definition: Solver.java:564
RegularLimit makeBranchesLimit(long branches)
Creates a search limit that constrains the number of branches explored in the search tree.
Definition: Solver.java:2631
boolean isProfilingEnabled()
Returns whether we are profiling the solver.
Definition: Solver.java:3732
static final int TSPOPT
Sliding TSP operator.
Definition: Solver.java:4249
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:3995
void addLocalSearchMonitor(LocalSearchMonitor monitor)
Adds the local search monitor to the solver.
Definition: Solver.java:3792
IntVar[] makeIntVarArray(int count, long min, long max)
Definition: Solver.java:114
DecisionBuilder makePhase(IntVar[] vars, int var_str, LongBinaryOperator value_evaluator)
Definition: Solver.java:3003
int searchLeftDepth()
Gets the search left depth of the current active search.
Definition: Solver.java:3574
Constraint makeNotBetweenCt(IntExpr expr, long l, long u)
(expr < l || expr > u) This constraint is lazy as it will not make holes in the domain of variables...
Definition: Solver.java:1512
void newSearch(DecisionBuilder db, SearchMonitor m1, SearchMonitor m2, SearchMonitor m3)
Definition: Solver.java:437
IntExpr makeModulo(IntExpr x, IntExpr mod)
Modulo expression x % mod (with the python convention for modulo).
Definition: Solver.java:989
int state()
State of the solver.
Definition: Solver.java:507
boolean checkAssignment(Assignment solution)
Checks whether the given assignment satisfies all relevant constraints.
Definition: Solver.java:491
static final int EXCHANGE
Operator which exchanges the positions of two nodes.
Definition: Solver.java:4119
IntExpr makeDifference(long value, IntExpr expr)
value - expr
Definition: Solver.java:753
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:3957
RegularLimit makeFailuresLimit(long failures)
Creates a search limit that constrains the number of failures that can happen when exploring the sea...
Definition: Solver.java:2640
LocalSearchPhaseParameters makeLocalSearchPhaseParameters(IntVar objective, SolutionPool pool, LocalSearchOperator ls_operator, DecisionBuilder sub_decision_builder, RegularLimit limit)
Definition: Solver.java:3494
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:3209
boolean solveAndCommit(DecisionBuilder db, SearchMonitor[] monitors)
SolveAndCommit using a decision builder and up to three search monitors, usually one for the objecti...
Definition: Solver.java:468
Constraint makeIsGreaterCstCt(IntExpr v, long c, IntVar b)
b == (v > c)
Definition: Solver.java:1250
SolutionCollector makeAllSolutionCollector()
Collect all solutions of the search.
Definition: Solver.java:2462
static final int STARTS_AFTER
t starts after d, i.e.
Definition: Solver.java:4369
static final int TSPLNS
TSP-base LNS.
Definition: Solver.java:4258
void addConstraint(Constraint c)
Adds the constraint 'c' to the model.
Definition: Solver.java:330
boolean solveAndCommit(DecisionBuilder db)
Definition: Solver.java:472
static final int ENDS_AFTER_START
t1 ends after t2 start, i.e.
Definition: Solver.java:4316
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.