alkis04 / Crossword

Crossword solver

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Δημιουργοί: 
    1115202200211 Βασίλειος Χατζηβασίλογλου
    1115202200216 Αλκιβιάδης Χονδρόπουλος

Οδηγίες Μεταγλώττισης & Εκτέλεσης:
    Μπορείτε να χρησιμοποιήσετε το makefile μας το οποίο αναλαμβάνει εξ΄ ολοκλήρου τη μεταγλώττιση.
    Παράδειγμα:
        $ make
        $ ./crossw Crossword1.txt

Λειτουργίες: 
    Το πρόγραμμα μας υποστηρίζει πλήρως τίς παραμέτρους -dict, -check και -draw όπως αυτές περιγράφονται στην εκφώνηση της εργασίας.

Επιστρεφόμενες τιμές και πιθανά σφάλματα:
    0: το πρόγραμμα εκτελέστηκε με επιτυχία
    1: Το πρόγραμμα δεν μπόρεσε να δεσμεύσει μνήμη
    2: Δεν δόθηκαν σωστά ορίσματα κατά την εκτέλεση

Τεχνικές Υλοποίησης*:
    Variable localization:
        Χρησιμοποιήσαμε δύο δισδιάστατους πίνακες για να εντοπίσουμε τις οριζόντιες και τις κάθετες αντίστοιχα μεταβλητές στο σταυρόλεξο
        Πιο συγκεκριμένα κάθε θέση του πίνακα λαμβάνει μία τιμή ανάλογα με την μεταβλητή στην οποία αντιστοιχεί (τιμή χ -> ανήκει στην χ-οστή μεταβλητή),
        0 αν δεν αντιστοιχεί σε καμία μεταβλητή ή -1 αν αντιστοιχεί σε μαύρο τετράγωνο. 
    Dictionary:
        Υλοποιήσαμε το λεξικό με έναν δισδιάστατο πίνακα για να οργανώσουμε τις λέξεις ανάλογα με το μέγεθός τους.
    Lexicon:
        Υλοποιήσαμε το lexicon από την πηγή [0] για την ταχύτερη διαχείριση των πεδίων ορισμού της κάθε μεταβλητής.
    Conflict Directed Backjumping
        Υλοποιήσαμε τον αλγόριθμο που προτείνεται από την πηγή [1].
    Forward Checking:
        Υλοποιήσαμε τον αλγόριθμο που προτείμεται από την πηγή [0] σε συνδυασμό με τις βελτιστοποιήσεις από την πηγή [1].
    Dynamic Variable Ordering:
        Υλοποιήσαμε το MRV heuristic το οποίο αναφέρεται στην πηγή [1].
    Adjacency lists:
        Χρησιμοποιήσαμε λίστα γειτνίασης για να κάνουμε forward checking μόνο στις λέξεις που διασταυρώνονται με αυτή την οποία εξετάζουμε.
        
*Όλες οι τεχνικές υλοποιήθηκαν από κοινού.

Σταυρόλεξα:
    Έχουμε ελέγξει ότι το πρόγραμμα μας λύνει σωστά τα σταυρόλεξα που βρίσκονται στον κατάλογο με κάθε δοσμένο λεξικό της εκφώνησης σε λιγότερο από ένα λεπτό το καθένα.

Πηγές:
    Crossword Puzzles and Constraint Satisfaction, James Connor, John Duchi, and Bruce Lo, Stanford University [0].
    P. Prosser. Hybrid Algorithms for the Constraint Satisfaction Problem Computational Intelligence, Volume 9, Number 3. 1993 [1].
    

About

Crossword solver


Languages

Language:C 99.2%Language:Makefile 0.8%