Package Phase3
Class DancingLinksProblem
java.lang.Object
Phase3.DancingLinksProblem
public class DancingLinksProblem
extends java.lang.Object
Class for solving the dancing links problem
-
Field Summary
Fields Modifier and Type Field Description (package private) float
bestScore
(package private) java.lang.Object[]
bestSolution
(package private) boolean
exactCover
(package private) boolean
foundSolution
(package private) java.lang.String[]
headerNames
(package private) boolean[][]
inputMatrix
(package private) int
layerCutoff
(package private) int
maxSeconds
(package private) java.util.List<java.lang.Float>
maxValuePerLayer
(package private) boolean
precise
(package private) float
pruneCutoff
(package private) int
pruneWait
(package private) DataObject
root
(package private) java.util.List<java.lang.Integer>
rowTypes
(package private) long
run
(package private) ColumnObject
smallestColumn
(package private) java.time.Instant
start
(package private) long
timeElapsed
-
Constructor Summary
Constructors Constructor Description DancingLinksProblem(boolean[][] inputMatrix, java.lang.String[] headerNames, java.util.List<java.lang.Integer> rowTypes, boolean exactCover, int maxSeconds, boolean precise)
-
Method Summary
Modifier and Type Method Description void
answerToUI()
void
createDataStructure()
Method creating the dancing links data structurefloat
getSolutionScore(java.util.ArrayList<java.lang.Integer> solution)
void
partialCoverDriver(java.util.ArrayList<java.lang.Integer> tmp_branch_solution, int layer)
void
reduceInput()
Method that removes/unlinks columns that can't be filledvoid
solveDriver()
-
Field Details
-
inputMatrix
boolean[][] inputMatrix -
headerNames
java.lang.String[] headerNames -
rowTypes
java.util.List<java.lang.Integer> rowTypes -
exactCover
boolean exactCover -
maxSeconds
int maxSeconds -
root
DataObject root -
timeElapsed
long timeElapsed -
start
java.time.Instant start -
precise
boolean precise -
bestScore
float bestScore -
bestSolution
java.lang.Object[] bestSolution -
run
long run -
maxValuePerLayer
java.util.List<java.lang.Float> maxValuePerLayer -
pruneWait
int pruneWait -
pruneCutoff
float pruneCutoff -
layerCutoff
int layerCutoff -
foundSolution
boolean foundSolution -
smallestColumn
ColumnObject smallestColumn
-
-
Constructor Details
-
DancingLinksProblem
public DancingLinksProblem(boolean[][] inputMatrix, java.lang.String[] headerNames, java.util.List<java.lang.Integer> rowTypes, boolean exactCover, int maxSeconds, boolean precise)
-
-
Method Details
-
createDataStructure
public void createDataStructure()Method creating the dancing links data structure -
solveDriver
public void solveDriver() -
partialCoverDriver
public void partialCoverDriver(java.util.ArrayList<java.lang.Integer> tmp_branch_solution, int layer) -
getSolutionScore
public float getSolutionScore(java.util.ArrayList<java.lang.Integer> solution) -
answerToUI
public void answerToUI() -
reduceInput
public void reduceInput()Method that removes/unlinks columns that can't be filled
-