Skip to content

A program that has the ability to solve crossword puzzles and check whether a solution to a crossword puzzle is correct for any given puzzle and dictionary using FC and MRV heuristics

Notifications You must be signed in to change notification settings

Christos-Kotsis/crossword-puzzle-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Μάθημα: Εισαγωγή στον προγραμματισμό
Εξάμηνο: 1ο
Εργασία: 4

>Πηγή:
------
Για την επίλυση των σταυρολέξων χρησιμοποιείται ο αλγόριθμος διάδοσης περιορισμών forward checking 
σε συνδυασμό με τον ευρετικό μηχανισμό minimum remaining values. Το paper από το οποίο 
πήρα την ιδέα για την διαμόρφωση του λεξικού αλλά και μία γενικότερη γνώση για 
τους δύο παραπάνω αλγορίθμους βρίσκεται στο link: https://web.stanford.edu/~jduchi/projects/crossword_writeup.pdf

>Βασική ιδέα:
-------------
Οταν έχω ένα slot με mrv και θέλω να τοποθετήσω μία λέξη σε αυτό τότε πρέπει να πάω σε όλες τις 
συμβατές λέξεις για το slot αυτό και να βρω μία για την οποία κανένα από τα slot που επηρρεάζει 
δεν έχει κενό domain, αν βρω, το βάζω στην στοίβα ενεργειών(το index του slot που συμπλήρωσα) 
και συνεχίζω με την ίδια διαδικασία, αν φτάσω στο τέλος του domain του και δεν βρω κατάλληλη λέξη
έτσι ώστε να μην έχω άλλα domain κενά τότε αρχίζει η διαδικασία του backtracking που είναι: 
να σβήσω την τελευταία λέξη από την στοίβα ενεργειών, να επαναφέρω τα domains των slot που άλλαξα
για αυτήν και να βαλω μία άλλη στο slot αυτό μέχρι να βρω μια κατάλληλη, αν βρω, κάνω break από 
το loop του backtracking και επαναλαμβάνω απο την αρχή, αν όχι, κάνω continue στο loop αυτό
(για να σβηστεί η προηγούμενη απο την στοίβα κλπ).

>Μετταγλώτιση:
--------------
Για την μετταγλώτιση του προγράμματος αρκεί να εκτελεστεί η εντολή: "make crossw" 
όπου crossw είναι το εκτελέσιμο.

About

A program that has the ability to solve crossword puzzles and check whether a solution to a crossword puzzle is correct for any given puzzle and dictionary using FC and MRV heuristics

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published