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 classCrossWord.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) IntVarblank(package private) intc(package private) char[][]crosswordTemplate(package private) java.lang.StringdefaultDictionary(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) intr(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 voidmain(java.lang.String[] args)It executes the program to create a model and solve crossword problem.voidmodel()model()voidprintSolution(char[][] crossWordTemplate)It prints a variable crosswordTemplate.voidreadDictionaryFromFile(java.lang.String file, java.util.List<java.lang.Integer> wordSizes)It reads a dictionary.booleansearchAllAtOnceNoRecord()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.
-
-