reorganize all sat samples to have regular naming
Remove sub-method in C# sat sample, just use Main()
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
// Copyright 2010-2018 Google LLC
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import com.google.ortools.sat.CpModel;
|
||||
import com.google.ortools.sat.CpSolver;
|
||||
import com.google.ortools.sat.CpSolverSolutionCallback;
|
||||
import com.google.ortools.sat.IntVar;
|
||||
|
||||
public class SolveWithIntermediateSolutions {
|
||||
static {
|
||||
System.loadLibrary("jniortools");
|
||||
}
|
||||
|
||||
static class VarArraySolutionPrinterWithObjective extends CpSolverSolutionCallback {
|
||||
public VarArraySolutionPrinterWithObjective(IntVar[] variables) {
|
||||
variableArray = variables;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSolutionCallback() {
|
||||
System.out.printf("Solution #%d: time = %.02f s%n", solutionCount, wallTime());
|
||||
System.out.printf(" objective value = %f%n", objectiveValue());
|
||||
for (IntVar v : variableArray) {
|
||||
System.out.printf(" %s = %d%n", v.getName(), value(v));
|
||||
}
|
||||
solutionCount++;
|
||||
}
|
||||
|
||||
public int getSolutionCount() {
|
||||
return solutionCount;
|
||||
}
|
||||
|
||||
private int solutionCount;
|
||||
private final IntVar[] variableArray;
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
// Create the model.
|
||||
CpModel model = new CpModel();
|
||||
// Create the variables.
|
||||
int numVals = 3;
|
||||
|
||||
IntVar x = model.newIntVar(0, numVals - 1, "x");
|
||||
IntVar y = model.newIntVar(0, numVals - 1, "y");
|
||||
IntVar z = model.newIntVar(0, numVals - 1, "z");
|
||||
// Create the constraint.
|
||||
model.addDifferent(x, y);
|
||||
|
||||
// Maximize a linear combination of variables.
|
||||
model.maximizeScalProd(new IntVar[] {x, y, z}, new int[] {1, 2, 3});
|
||||
|
||||
// Create a solver and solve the model.
|
||||
CpSolver solver = new CpSolver();
|
||||
VarArraySolutionPrinterWithObjective cb =
|
||||
new VarArraySolutionPrinterWithObjective(new IntVar[] {x, y, z});
|
||||
solver.solveWithSolutionCallback(model, cb);
|
||||
|
||||
System.out.println(cb.getSolutionCount() + " solutions found.");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user