[CP-SAT] tweak model cloning API; implement it in java; merge pure sat presolve with normal presolve
This commit is contained in:
@@ -66,6 +66,14 @@ public final class CpModel {
|
||||
constantMap = new LinkedHashMap<>();
|
||||
}
|
||||
|
||||
public CpModel getClone() {
|
||||
CpModel clone = new CpModel();
|
||||
clone.modelBuilder.mergeFrom(modelBuilder.build());
|
||||
clone.constantMap.clear();
|
||||
clone.constantMap.putAll(constantMap);
|
||||
return clone;
|
||||
}
|
||||
|
||||
// Integer variables.
|
||||
|
||||
/** Creates an integer variable with domain [lb, ub]. */
|
||||
@@ -119,6 +127,16 @@ public final class CpModel {
|
||||
return cste;
|
||||
}
|
||||
|
||||
/** Rebuilds a Boolean variable from an index. Useful after cloning a model. */
|
||||
public BoolVar getBoolVarFromProtoIndex(int index) {
|
||||
return new BoolVar(modelBuilder, index);
|
||||
}
|
||||
|
||||
/** Rebuilds an integer variable from an index. Useful after cloning a model. */
|
||||
public IntVar getIntVarFromProtoIndex(int index) {
|
||||
return new IntVar(modelBuilder, index);
|
||||
}
|
||||
|
||||
// Boolean Constraints.
|
||||
|
||||
/** Adds {@code Or(literals) == true}. */
|
||||
|
||||
Reference in New Issue
Block a user