-
Notifications
You must be signed in to change notification settings - Fork 0
Christos-Kotsis/crossword-puzzle-solver
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published