Java Reference

Java Reference

CpSolver.java
Go to the documentation of this file.
1 // Copyright 2010-2018 Google LLC
2 // Licensed under the Apache License, Version 2.0 (the "License");
3 // you may not use this file except in compliance with the License.
4 // You may obtain a copy of the License at
5 //
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13 
14 package com.google.ortools.sat;
15 
19 
26 public final class CpSolver {
28  public CpSolver() {
29  this.solveParameters = SatParameters.newBuilder();
30  }
31 
33  public CpSolverStatus solve(CpModel model) {
34  solveResponse = SatHelper.solveWithParameters(model.model(), solveParameters.build());
35  return solveResponse.getStatus();
36  }
37 
41  model.model(), solveParameters.build(), cb);
42  return solveResponse.getStatus();
43  }
44 
58  solveParameters.setEnumerateAllSolutions(true);
60  model.model(), solveParameters.build(), cb);
61  solveParameters.setEnumerateAllSolutions(true);
62  return solveResponse.getStatus();
63  }
64 
66  public double objectiveValue() {
67  return solveResponse.getObjectiveValue();
68  }
69 
74  public double bestObjectiveBound() {
75  return solveResponse.getBestObjectiveBound();
76  }
77 
79  public long value(IntVar var) {
80  return solveResponse.getSolution(var.getIndex());
81  }
82 
84  public Boolean booleanValue(Literal var) {
85  int index = var.getIndex();
86  if (index >= 0) {
87  return solveResponse.getSolution(index) != 0;
88  } else {
89  return solveResponse.getSolution(-index - 1) == 0;
90  }
91  }
92 
95  return solveResponse;
96  }
97 
99  public long numBranches() {
100  return solveResponse.getNumBranches();
101  }
102 
104  public long numConflicts() {
105  return solveResponse.getNumConflicts();
106  }
107 
109  public double wallTime() {
110  return solveResponse.getWallTime();
111  }
112 
114  public double userTime() {
115  return solveResponse.getUserTime();
116  }
117 
120  return solveParameters;
121  }
122 
124  public String responseStats() {
125  return SatHelper.solverResponseStats(solveResponse);
126  }
127 
128  private CpSolverResponse solveResponse;
129  private final SatParameters.Builder solveParameters;
130 }
long value(IntVar var)
Returns the value of a variable in the last solution found.
Definition: CpSolver.java:79
.lang.Override double getWallTime()
double wall_time = 15;
CpSolverResponse response()
Returns the internal response protobuf that is returned internally by the SAT solver.
Definition: CpSolver.java:94
.lang.Override long getNumConflicts()
int64 num_conflicts = 11;
double objectiveValue()
Returns the best objective value found during search.
Definition: CpSolver.java:66
.lang.Override long getNumBranches()
int64 num_branches = 12;
Parent class to create a callback called at each solution.
double bestObjectiveBound()
Returns the best lower bound found when minimizing, of the best upper bound found when maximizing.
Definition: CpSolver.java:74
static Builder newBuilder()
static com.google.ortools.sat.CpSolverResponse solveWithParameters(com.google.ortools.sat.CpModelProto model_proto, com.google.ortools.sat.SatParameters parameters)
Definition: SatHelper.java:54
SatParameters.Builder getParameters()
Returns the builder of the parameters of the SAT solver for modification.
Definition: CpSolver.java:119
CpSolverStatus searchAllSolutions(CpModel model, CpSolverSolutionCallback cb)
Searches for all solutions of a satisfiability problem.
Definition: CpSolver.java:57
Interface to describe a boolean variable or its negation.
Definition: Literal.java:17
double wallTime()
Returns the wall time of the search.
Definition: CpSolver.java:109
.lang.Override double getUserTime()
double user_time = 16;
double userTime()
Returns the user time of the search.
Definition: CpSolver.java:114
.lang.Override double getObjectiveValue()
Wrapper around the SAT solver.
Definition: CpSolver.java:26
Definition: SatHelper.java:13
CpSolverStatus solveWithSolutionCallback(CpModel model, CpSolverSolutionCallback cb)
Solves a problem and passes each solution found to the callback.
Definition: CpSolver.java:39
Boolean booleanValue(Literal var)
Returns the Boolean value of a literal in the last solution found.
Definition: CpSolver.java:84
CpModelProto model()
Definition: CpModel.java:1026
String responseStats()
Returns some statistics on the solution found as a string.
Definition: CpSolver.java:124
int getIndex()
static String solverResponseStats(com.google.ortools.sat.CpSolverResponse response)
Definition: SatHelper.java:84
Main modeling class.
Definition: CpModel.java:40
CpSolver()
Main construction of the CpSolver class.
Definition: CpSolver.java:28
int getIndex()
Internal, returns the index of the variable in the underlying CpModelProto.
long numBranches()
Returns the number of branches explored during search.
Definition: CpSolver.java:99
An integer variable.
.lang.Override com.google.ortools.sat.CpSolverStatus getStatus()
long numConflicts()
Returns the number of conflicts created during search.
Definition: CpSolver.java:104
CpSolverStatus solve(CpModel model)
Solves the given module, and returns the solve status.
Definition: CpSolver.java:33
long getSolution(int index)
static com.google.ortools.sat.CpSolverResponse solveWithParametersAndSolutionCallback(com.google.ortools.sat.CpModelProto model_proto, com.google.ortools.sat.SatParameters parameters, SolutionCallback callback)
Definition: SatHelper.java:67
.lang.Override double getBestObjectiveBound()