Package org.jacop.examples.fd.crosswords
Class CrossWord
- java.lang.Object
-
- org.jacop.examples.fd.ExampleFD
-
- org.jacop.examples.fd.crosswords.CrossWord
-
public class CrossWord extends ExampleFD
It is an example of the power of ExtensionalSupportMDD constraint which can be used to efficiently model and solve CrossWord puzzles.- Version:
- 4.8
This program uses problem instances and dictionary obtained from Hadrien Cambazard.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
CrossWord.PrintListener<T extends Var>
It is a simple print listener to print every tenth solution encountered.
-
Field Summary
Fields Modifier and Type Field Description (package private) IntVar
blank
(package private) int
c
(package private) char[][]
crosswordTemplate
(package private) java.lang.String
defaultDictionary
(package private) java.util.Map<java.lang.String,java.lang.Integer>
mapping
(package private) java.util.Map<java.lang.Integer,java.lang.String>
mappingReverse
(package private) java.util.Map<java.lang.Integer,MDD>
mdds
(package private) int
r
(package private) java.util.List<java.lang.Integer>
wordSizes
(package private) int[]
wordSizesPrimitive
(package private) IntVar[][]
x
-
Constructor Summary
Constructors Constructor Description CrossWord()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
main(java.lang.String[] args)
It executes the program to create a model and solve crossword problem.void
model()
model()void
printSolution(char[][] crossWordTemplate)
It prints a variable crosswordTemplate.void
readDictionaryFromFile(java.lang.String file, java.util.List<java.lang.Integer> wordSizes)
It reads a dictionary.boolean
searchAllAtOnceNoRecord()
It searches for all solutions.-
Methods inherited from class org.jacop.examples.fd.ExampleFD
creditSearch, getSearch, getSearchVariables, getStore, printMatrix, search, searchAllAtOnce, searchAllOptimal, searchLDS, searchMasterSlave, searchMaxRegretOptimal, searchMiddle, searchMostConstrainedStatic, searchOptimal, searchSmallestDomain, searchSmallestMedian, searchSmallestMiddle, searchSmallestMin, searchWeightedDegree, searchWithMaxRegret, searchWithRestarts, shavingSearch
-
-
-
-
Field Detail
-
r
int r
-
c
int c
-
wordSizesPrimitive
int[] wordSizesPrimitive
-
wordSizes
java.util.List<java.lang.Integer> wordSizes
-
x
IntVar[][] x
-
blank
IntVar blank
-
defaultDictionary
java.lang.String defaultDictionary
-
mapping
java.util.Map<java.lang.String,java.lang.Integer> mapping
-
mappingReverse
java.util.Map<java.lang.Integer,java.lang.String> mappingReverse
-
mdds
java.util.Map<java.lang.Integer,MDD> mdds
-
crosswordTemplate
char[][] crosswordTemplate
-
-
Method Detail
-
printSolution
public void printSolution(char[][] crossWordTemplate)
It prints a variable crosswordTemplate.- Parameters:
crossWordTemplate
- the template
-
readDictionaryFromFile
public void readDictionaryFromFile(java.lang.String file, java.util.List<java.lang.Integer> wordSizes)
It reads a dictionary. For every word length specified it reads a dictionary and creates an MDD representation of it for use by an extensional constraint.- Parameters:
file
- filename containing dictionarywordSizes
- size of the words
-
searchAllAtOnceNoRecord
public boolean searchAllAtOnceNoRecord()
It searches for all solutions. It does not record them and prints every tenth of them.- Returns:
- true if any solution was found, false otherwise.
-
main
public static void main(java.lang.String[] args)
It executes the program to create a model and solve crossword problem.- Parameters:
args
- no arguments used.
-
-