Προβλήματα Ικανοποίησης Περιορισμών ρ (Θεωρία) ρ Constraint Satisfaction Constraint Satisfaction Problems
Ορισμός Προβλήματος Μεταβλητές
Ορισμός Προβλήματος Μεταβλητές Πεδία Τιμών
Ορισμός Προβλήματος Μεταβλητές Πεδία Τιμών Περιορισμοί
Κατάσταση Προβλήματος ζ θ Ορίζεται με ανάθεση τιμών σε μερικές ή όλες τις μεταβλητές {Xi = vi, Xj = vj, }.
Κατάσταση Προβλήματος Ορίζεται με ανάθεση τιμών σε μερικές ή όλες τις μεταβλητές {Xi = vi, Xj = vj, }. Συνεπής ανάθεση: δεν παραβιάζει κανέναν ς ρ β ζ περιορισμό
Κατάσταση Προβλήματος Ορίζεται με ανάθεση τιμών σε μερικές ή όλες τις μεταβλητές {Xi = vi, Xj = vj, }. Συνεπής ανάθεση: δεν παραβιάζει κανέναν περιορισμό Πλήρης ανάθεση: περιλαμβάνει όλες τις μεταβλητές
Κατάσταση Προβλήματος Ορίζεται με ανάθεση τιμών σε μερικές ή όλες τις μεταβλητές {Xi = vi, Xj = vj, }. Συνεπής ανάθεση: δεν παραβιάζει κανέναν περιορισμό Πλήρης ανάθεση: περιλαμβάνει όλες τις μεταβλητές Λύση προβλήματος: πλήρης και συνεπής ανάθεση
CSP = Search Problem? Απάντηση :
CSP = Search Problem? Απάντηση : Ναι
CSP = Search Problem? Απάντηση : Ναι Πως;
CSP = Search Problem? Απάντηση : Ναι Πως; Αρχική κατάσταση: κενή ανάθεση τιμών
CSP = Search Problem? Απάντηση : Ναι Πως; Αρχική κατάσταση: κενή ανάθεση τιμών Συνάρτηση ιαδόχων: Απόδοση τιμής από domain αν δεν παραβιάζει τους περιορισμούς των προηγούμενων μεταβλητών
CSP = Search Problem? Απάντηση : Ναι Πως; Αρχική κατάσταση: κενή ανάθεση τιμών Συνάρτηση ιαδόχων: Απόδοση τιμής από domain αν δεν παραβιάζει τους περιορισμούς των προηγούμενων μεταβλητών Έλεγχος στόχου: Πλήρης ανάθεση τιμών
CSP = Search Problem? Απάντηση : Ναι Πως; Αρχική κατάσταση: κενή ανάθεση τιμών Συνάρτηση ιαδόχων: Απόδοση τιμής από domain αν δεν παραβιάζει τους περιορισμούς των προηγούμενων μεταβλητών Έλεγχος στόχου: Πλήρης ανάθεση τιμών Κόστος ιαδρομής: Σταθερό για κάθε βήμα
Περιορισμοί Μοναδιαίοι: ορίζουν την τιμή μίας μόνο μεταβλητής
Περιορισμοί Μοναδιαίοι: ορίζουν την τιμή μίας μόνο μεταβλητής υαδικοί: συσχετίζουν δύο μεταβλητές του προβλήματος
Περιορισμοί Μοναδιαίοι: ορίζουν την τιμή μίας μόνο μεταβλητής υαδικοί: συσχετίζουν δύο μεταβλητές του προβλήματος Υψηλότερης τάξης: μπορούν να αναπαρασταθούν με μια συλλογή δυαδικών περιορισμών ή με υπεργράφημα περιορισμών
Αναζήτηση με Υπαναχώρηση (Backtracking Search) Πρώτα κατά βάθος αναζήτηση
Αναζήτηση με Υπαναχώρηση (Backtracking Search) Πρώτα κατά βάθος αναζήτηση Επιλέγει τιμές μςγια μία μεταβλητή τη φορά
Αναζήτηση με Υπαναχώρηση (Backtracking Search) Πρώτα κατά βάθος αναζήτηση Επιλέγει τιμές μςγια μία μεταβλητή τη φορά Υπαναχωρεί όταν μια μεταβλητή δεν έχει άλλες νόμιμες τιμές που μπορούν να της ανατεθούν
Αναζήτηση με Υπαναχώρηση (Backtracking Search) Πρώτα κατά βάθος αναζήτηση Επιλέγει τιμές μςγια μία μεταβλητή τη φορά Υπαναχωρεί όταν μια μεταβλητή δεν έχει άλλες νόμιμες τιμές που μπορούν να της ανατεθούν Χ ( Χωρίς πληροφόρηση (όχι πολύ αποτελεσματική για μεγάλα προβλήματα)
Αναζήτηση με Υπαναχώρηση (Backtracking Search) Πρώτα κατά βάθος αναζήτηση Επιλέγει τιμές μςγια μία μεταβλητή τη φορά Υπαναχωρεί όταν μια μεταβλητή δεν έχει άλλες νόμιμες τιμές που μπορούν να της ανατεθούν Χωρίς πληροφόρηση (όχι πολύ αποτελεσματική για μεγάλα προβλήματα) Βελτίωση με ευρετικές συναρτήσεις
Αναζήτηση με Υπαναχώρηση (Backtracking Search) Πρώτα κατά βάθος αναζήτηση Επιλέγει τιμές μςγια μία μεταβλητή τη φορά Υπαναχωρεί όταν μια μεταβλητή δεν έχει άλλες νόμιμες τιμές που μπορούν να της ανατεθούν Χωρίς πληροφόρηση (όχι πολύ αποτελεσματική για μεγάλα προβλήματα) Βελτίωση με ευρετικές συναρτήσεις Πλήρης
Βελτιώσεις Ποια είναι η επόμενη μεταβλητή στην οποία θα ανατεθεί τιμή και με ποια σειρά θα δοκιμαστούν οι τιμές της;
Βελτιώσεις Ποια είναι η επόμενη μεταβλητή στην οποία θα ανατεθεί τιμή και με ποια σειρά θα δοκιμαστούν οι τιμές της; Τι συνέπειες έχουν οι τρέχουσες αναθέσεις τιμών για τις άλλες μεταβλητές στις οποίες δεν έχουν ανατεθεί θί τιμές;
Βελτιώσεις Ποια είναι η επόμενη μεταβλητή στην οποία θα ανατεθεί τιμή και με ποια σειρά θα δοκιμαστούν οι τιμές της; Τι συνέπειες έχουν οι τρέχουσες αναθέσεις τιμών για τις άλλες μεταβλητές στις οποίες δεν έχουν ανατεθεί θί τιμές; Όταν μια διαδρομή αποτύχει μπορεί η αναζήτηση να την αποφύγει στις επόμενες διαδρομές;
Επιλογή μεταβλητής Ευρετικός μηχανισμός ελάχιστων απομενουσών τιμών (MRV): εκλογή μεταβλητής με τις λιγότερες νόμιμες τιμές
Επιλογή μεταβλητής Ευρετικός μηχανισμός ελάχιστων απομενουσών τιμών (MRV): εκλογή μεταβλητής με τις λιγότερες νόμιμες τιμές Ευρετικός μηχανισμός βαθμού (degree heuristic): μείωση του παράγοντα διακλάδωσης με την εκλογή της μεταβλητής που ενέχεται στο μεγαλύτερο αριθμό περιορισμών
Επιλογή τιμής Ευρετικός μηχανισμός λιγότερο δεσμευτικής τιμής (least-constraining value): προτιμά την τιμή που αποκλείει τις λιγότερες επιλογές για τις γειτονικές μεταβλητές του γραφήματος περορισμών
ιάδοση πληροφοριών μέσω περιορισμών Ι Πρώιμος έλεγχος (FC): όποτε ανατίθεται τιμή σε μια μεταβλητή Χ,, εξετάζει κάθε μεταβλητή Υ που δεν έχει τιμή και που συνδέεται με την Χ με περιορισμό και διαγράφει από το πεδίο της τις ασυνεπείς τιμές
ιάδοση πληροφοριών μέσω περιορισμών ΙΙ Συνεπές τόξο (Χ,Υ): για κάθε τιμή της μεταβλητής Χ υπάρχει τουλάχιστον μία τιμή της μεταβλητής Υ που να είναι συνεπής (ΚΑΤΕΥΘΥΝΟΜΕΝΟ ΤΟΞΟ) άδ ιάδοση περιορισμών με συνέπεια τόξου (arc consistency): επανειλημμένη εφαρμογή ώσπου να εξαλειφθούν όλες οι ασυνέπειες Εφαρμόζεται είτε ως στάδιο προεπεξεργασίας είτε ως στάδιο διάδοσης (όπως ο FC)(αλγόριθμος MAC)
Υπαναχώρηση (Backtracking) Χρονολογική υπαναχώρηση (chronological l backtracking): επανέρχεται στο πιο πρόσφατο σημείο απόφασης
Υπαναχώρηση (Backtracking) Χρονολογική υπαναχώρηση (chronological l backtracking): επανέρχεται στο πιο πρόσφατο σημείο απόφασης Υπαναχώρηση με άλμα (backjumping): υποχωρεί στην πιο πρόσφατη μεταβλητή του συνόλου συγκρούσεων
Υπαναχώρηση (Backtracking) Χρονολογική υπαναχώρηση (chronological l backtracking): επανέρχεται στο πιο πρόσφατο σημείο απόφασης Υπαναχώρηση με άλμα (backjumping): υποχωρεί στην πιο πρόσφατη μεταβλητή του συνόλου συγκρούσεων Σύνολο συγκρούσεων μεταβλητής Χ: μεταβλητές στις οποίες έχει ανατεθεί τιμή και συνδέονται με τη Χ με περιορισμό
Υπαναχώρηση με άλμα κατευθυνόμενο από τη σύγκρουση (CBJ) Ι Βελτιωμένη θεώρηση συνόλου συγκρούσεων για κάποιες μεταβλητές: το σύνολο των μεταβλητών που έκαναν τη συγκεκριμένη μεταβλητή αλλά και τις οποιεσδήποτε επόμενες να μην έχουν συνεπή λύση.
Υπαναχώρηση με άλμα κατευθυνόμενο από τη σύγκρουση (CBJ) ΙΙ Έστω Xj η τρέχουσα μεταβλητή και conf(xj) το σύνολο συγκρούσεών της. Αν όλες οι δυνατές τιμές της Χj αποτυγχάνουν, εκτελείται άλμα προς τα πίσω στην πιο πρόσφατη μεταβλητή Xi του συνόλου conf(xj) και γίνεται: conf(xi) conf(xi) conf(xj)-{xi}
Υπαναχώρηση με άλμα κατευθυνόμενο από τη σύγκρουση (CBJ) ΙΙ Έστω Xj η τρέχουσα μεταβλητή και conf(xj) το σύνολο συγκρούσεών της. Αν όλες οι δυνατές τιμές της Χj αποτυγχάνουν, εκτελείται άλμα προς τα πίσω στην πιο πρόσφατη μεταβλητή Xi του συνόλου conf(xj) και γίνεται: conf(xi) conf(xi) conf(xj)-{xi} ΠΡΟΣΟΧΗ: μας ξαναγυρίζει στο σωστό σημείο αλλά δε μας εμποδίζει να κανακάνουμε τα ίδια λάθη σε άλλο κλαδί του δέντρου