Java Reference

Java Reference

KnapsackSolver.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 
9 package com.google.ortools.algorithms;
10 
94 public class KnapsackSolver {
95  private transient long swigCPtr;
96  protected transient boolean swigCMemOwn;
97 
98  protected KnapsackSolver(long cPtr, boolean cMemoryOwn) {
99  swigCMemOwn = cMemoryOwn;
100  swigCPtr = cPtr;
101  }
102 
103  protected static long getCPtr(KnapsackSolver obj) {
104  return (obj == null) ? 0 : obj.swigCPtr;
105  }
106 
107  @SuppressWarnings("deprecation")
108  protected void finalize() {
109  delete();
110  }
111 
112  public synchronized void delete() {
113  if (swigCPtr != 0) {
114  if (swigCMemOwn) {
115  swigCMemOwn = false;
116  mainJNI.delete_KnapsackSolver(swigCPtr);
117  }
118  swigCPtr = 0;
119  }
120  }
121 
122  public KnapsackSolver(String solver_name) {
123  this(mainJNI.new_KnapsackSolver__SWIG_0(solver_name), true);
124  }
125 
126  public KnapsackSolver(KnapsackSolver.SolverType solver_type, String solver_name) {
127  this(mainJNI.new_KnapsackSolver__SWIG_1(solver_type.swigValue(), solver_name), true);
128  }
129 
133  public void init(long[] profits, long[][] weights, long[] capacities) {
134  mainJNI.KnapsackSolver_init(swigCPtr, this, profits, weights, capacities);
135  }
136 
140  public long solve() {
141  return mainJNI.KnapsackSolver_solve(swigCPtr, this);
142  }
143 
147  public boolean bestSolutionContains(int item_id) {
148  return mainJNI.KnapsackSolver_bestSolutionContains(swigCPtr, this, item_id);
149  }
150 
154  public boolean isSolutionOptimal() {
155  return mainJNI.KnapsackSolver_isSolutionOptimal(swigCPtr, this);
156  }
157 
158  public String getName() {
159  return mainJNI.KnapsackSolver_getName(swigCPtr, this);
160  }
161 
162  public boolean useReduction() {
163  return mainJNI.KnapsackSolver_useReduction(swigCPtr, this);
164  }
165 
166  public void setUseReduction(boolean use_reduction) {
167  mainJNI.KnapsackSolver_setUseReduction(swigCPtr, this, use_reduction);
168  }
169 
176  public void setTimeLimit(double time_limit_seconds) {
177  mainJNI.KnapsackSolver_setTimeLimit(swigCPtr, this, time_limit_seconds);
178  }
179 
186  public enum SolverType {
195  KNAPSACK_BRUTE_FORCE_SOLVER(mainJNI.KnapsackSolver_KNAPSACK_BRUTE_FORCE_SOLVER_get()),
203  KNAPSACK_64ITEMS_SOLVER(mainJNI.KnapsackSolver_KNAPSACK_64ITEMS_SOLVER_get()),
211  KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER(mainJNI.KnapsackSolver_KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER_get()),
218  KNAPSACK_MULTIDIMENSION_CBC_MIP_SOLVER(mainJNI.KnapsackSolver_KNAPSACK_MULTIDIMENSION_CBC_MIP_SOLVER_get()),
225  KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER(mainJNI.KnapsackSolver_KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER_get());
226 
227  public final int swigValue() {
228  return swigValue;
229  }
230 
231  public static SolverType swigToEnum(int swigValue) {
232  SolverType[] swigValues = SolverType.class.getEnumConstants();
233  if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
234  return swigValues[swigValue];
235  for (SolverType swigEnum : swigValues)
236  if (swigEnum.swigValue == swigValue)
237  return swigEnum;
238  throw new IllegalArgumentException("No enum " + SolverType.class + " with value " + swigValue);
239  }
240 
241  @SuppressWarnings("unused")
242  private SolverType() {
243  this.swigValue = SwigNext.next++;
244  }
245 
246  @SuppressWarnings("unused")
247  private SolverType(int swigValue) {
248  this.swigValue = swigValue;
249  SwigNext.next = swigValue+1;
250  }
251 
252  @SuppressWarnings("unused")
253  private SolverType(SolverType swigEnum) {
254  this.swigValue = swigEnum.swigValue;
255  SwigNext.next = this.swigValue+1;
256  }
257 
258  private final int swigValue;
259 
260  private static class SwigNext {
261  private static int next = 0;
262  }
263  }
264 
265 }
static SolverType swigToEnum(int swigValue)
KnapsackSolver(String solver_name)
KNAPSACK_MULTIDIMENSION_CBC_MIP_SOLVER
CBC Based Solver This solver can deal with both large number of items and several dimensions.
boolean useReduction()
final int swigValue()
void setUseReduction(boolean use_reduction)
String getName()
KNAPSACK_DYNAMIC_PROGRAMMING_SOLVER
Dynamic Programming approach for single dimension problems Limited to one dimension,...
void init(long[] profits, long[][] weights, long[] capacities)
Initializes the solver and enters the problem to be solved.
KNAPSACK_MULTIDIMENSION_BRANCH_AND_BOUND_SOLVER
Generic Solver.
boolean isSolutionOptimal()
Returns true if the solution was proven optimal.
long solve()
Solves the problem and returns the profit of the optimal solution.
KNAPSACK_BRUTE_FORCE_SOLVER
Brute force method.
void setTimeLimit(double time_limit_seconds)
Time limit in seconds.
KnapsackSolver(long cPtr, boolean cMemoryOwn)
This library solves knapsack problems.
KNAPSACK_64ITEMS_SOLVER
Optimized method for single dimension small problems Limited to 64 items and one dimension,...
Enum controlling which underlying algorithm is used.
boolean bestSolutionContains(int item_id)
Returns true if the item 'item_id' is packed in the optimal knapsack.
KnapsackSolver(KnapsackSolver.SolverType solver_type, String solver_name)