Package org.tweetyproject.math.examples
Class KnapSack
- All Implemented Interfaces:
Serializable
,Cloneable
,Iterable<OptProbElement>
,Collection<OptProbElement>
,Set<OptProbElement>
This class implements a KnapSack problem
- Author:
- Sebastian Franke
- See Also:
-
Field Summary
Fields inherited from class org.tweetyproject.math.opt.problem.CombinatoricsProblem
elements, MAXIMIZE, MINIMIZE
-
Constructor Summary
ConstructorDescriptionKnapSack
(ArrayList<ElementOfCombinatoricsProb> elements, Term maxWeight) constructor -
Method Summary
Modifier and TypeMethodDescriptioncreate a solution that changes the solution currSol a little bit (i.e.: for TSP: swap 2 cities; for KnapSack: add a random element) for currSol == null: create a random solutiondouble
evaluates the solutiongetHeuristicValue
(ElementOfCombinatoricsProb solutionComponent, Integer getCurrentIndex, ElementOfCombinatoricsProb initialReference, ElementOfCombinatoricsProb[] sol) since this class is not used with ant optimization, we do not need this methoddouble[][]
since this class is not used with ant optimization, we do not need this methodboolean
checks if a given solution is valid under all constraintsdouble
calculates sum of valuesdouble
Return if the solution sol is valid under the constraints of the problemMethods inherited from class org.tweetyproject.math.opt.problem.CombinatoricsProblem
createDifference, formNeighborhood, getGraphrepresentation
Methods inherited from class java.util.HashSet
add, clear, clone, contains, isEmpty, iterator, newHashSet, remove, size, spliterator, toArray, toArray
Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, retainAll, toString
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Constructor Details
-
KnapSack
constructor- Parameters:
elements
- elements in sackmaxWeight
- max weight of sack
-
-
Method Details
-
sumOfWeights
Description copied from class:CombinatoricsProblem
Return if the solution sol is valid under the constraints of the problem- Specified by:
sumOfWeights
in classCombinatoricsProblem
- Parameters:
sol
- is the solution to be viewd- Returns:
- if the solution sol is valid under the constraints of the problem
-
sumOfValues
calculates sum of values- Parameters:
sol
- values- Returns:
- sum
-
createRandomNewSolution
public ArrayList<ElementOfCombinatoricsProb> createRandomNewSolution(ArrayList<ElementOfCombinatoricsProb> currSol) Description copied from class:CombinatoricsProblem
create a solution that changes the solution currSol a little bit (i.e.: for TSP: swap 2 cities; for KnapSack: add a random element) for currSol == null: create a random solution- Specified by:
createRandomNewSolution
in classCombinatoricsProblem
- Parameters:
currSol
- the current solution- Returns:
- the solution
-
isValid
Description copied from class:CombinatoricsProblem
checks if a given solution is valid under all constraints- Specified by:
isValid
in classCombinatoricsProblem
- Parameters:
sol
- some solution- Returns:
- true iff the solution is valid
-
evaluate
Description copied from class:CombinatoricsProblem
evaluates the solution- Specified by:
evaluate
in classCombinatoricsProblem
- Parameters:
sol
- some solution- Returns:
- the target function for sol
-
getHeuristicValue
public Double getHeuristicValue(ElementOfCombinatoricsProb solutionComponent, Integer getCurrentIndex, ElementOfCombinatoricsProb initialReference, ElementOfCombinatoricsProb[] sol) since this class is not used with ant optimization, we do not need this method- Specified by:
getHeuristicValue
in classCombinatoricsProblem
- Parameters:
solutionComponent
- : Element to be checked *getCurrentIndex
- : the length of the solutioninitialReference
- : default starting point for the solution (the first Element in the solution)sol
- : array representation of a solution (needed for Ant optimization)- Returns:
- the heuristic value
-
getRepresentation
public double[][] getRepresentation()since this class is not used with ant optimization, we do not need this method- Specified by:
getRepresentation
in classCombinatoricsProblem
- Returns:
- representation
-