ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ικανο οίηση Περιορισµών Constraint Satisfaction Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης
Ε ανάληψη Πληροφορηµένη αναζήτηση µε εριορισµό µνήµης Α* µε επαναληπτική εκβάθυνση αναδροµική αναζήτηση πρώτα στο καλύτερο αναζήτηση SMA* Ευρετικές συναρτήσεις επινόηση και κατασκευή Το ική αναζήτηση αναρρίχηση λόφων προσοµοιωµένη ανόπτηση γενετικοί αλγόριθµοι συνεχείς χώροι
Σήµερα Προβλήµατα ικανο οίησης εριορισµών ορισµός και χαρακτηριστικά Ε ίλυση ροβληµάτων ικανο οίησης εριορισµών αναζήτηση µε υπαναχώρηση τοπική αναζήτηση οµή ροβληµάτων ανεξάρτητα υποπροβλήµατα δένδρα περιορισµών αφαίρεση µεταβλητών αποσύνθεση δένδρου
Προβλήµατα Ικανο οίησης Περιορισµών Constraint Satisfaction Problems
Πρόβληµα Ικανο οίησης Περιορισµών επιτρεπτοί Ορισµός µεταβλητές: µερική ή πλήρης συνδυασµοί τιµών σε υποσύνολα µεταβλητών X1, X2,, Xn, ανάθεση τιµών: {Xi= vi, Xj= vj, } συνεπής ανάθεση: δεν παραβιάζεται κανένας περιορισµός Cm Dn (µη κενά) πεδία τιµών: D1, D2, περιορισµοί: C1, C2,, λύση: πλήρης και συνεπής ανάθεση Ε έκταση βελτιστοποίηση αντικειµενικής συνάρτησης
Χρησιµότητα Πλεονεκτήµατα γενική τυπική γλώσσα αναπαράστασης αλγόριθµοι γενικής χρήσης αξιοποίηση της δοµής των προβληµάτων Εφαρµογές χρονοδροµολόγηση εργασιών κατάρτιση προγράµµατος σπουδών και ανάθεση µαθηµάτων ωρολόγιο πρόγραµµα του πολυτεχνείου χρωµατισµός γράφων διαµόρφωση υλικού
Παράδειγµα: Χρωµατισµός Χάρτη Χάρτης Αυστραλίας Γράφηµα Περιορισµών
Παράδειγµα: Χρωµατισµός Χάρτη Μεταβλητές WA, NT, Q, NSW, V, SA, T { Πεδία (κόκκινο, ράσινο), τιµών (κόκκινο, µ λε), ( ράσινο, κόκκινο), ( ράσινο, µ λε), (µ λε, κόκκινο), (µ λε, ράσινο) } {κόκκινο, ράσινο, µ λε} για όλες τις µεταβλητές Περιορισµοί WA= οι γειτονικές κόκκινο, NT= περιοχές ράσινο, Q= να κόκκινο, µην έχουν NSW= το ράσινο, ίδιο V=κόκκινο, χρώµα SA=µ λε, T= ράσινο αναπαραστάση µε απαρίθµηση επιτρεπτών συνδυασµών: αναπαραστάση µε ειδική σηµειογραφία: WA NT,... Λύση (µία α ό ολλές)
Ικανο οίηση Περιορισµών ως Αναζήτηση Κατάσταση µερική ή πλήρης ανάθεση τιµών σε µεταβλητές αρχική κατάσταση: κενή ανάθεση τιµών Συνάρτηση διαδοχής ανάθεση τιµής που δεν συγκρούεται µε προηγούµενες αναθέσεις Κατάσταση στόχου πλήρης ανάθεση τιµών στις µεταβλητές Κόστος διαδροµής σταθερό κόστος (=1) ανά βήµα (κόστος λύσεων = n) Αλγόριθµος αναζήτηση πρώτα σε βάθος (µέγιστο βάθος = n)
Χαρακτηριστικά Προβληµάτων ιατύ ωση αυξητική (αναζήτηση πρώτα κατά βάθος) πλήρεις καταστάσεις (τοπική αναζήτηση) Μεταβλητές και εδία διακριτές αναγωγή / σε συνεχείς βελτιστοποίηση µεταβλητές µε βάρη πεπερασµένα / άπειρα πεδία ορισµού Περιορισµοί µοναδιαίοι / δυαδικοί / ανώτερης τάξης περιορισµοί προτίµησης (soft constraints)
Κρυπταριθµητικός γρίφος Υπεργράφηµα περιορισµών Περιορισµοί Ανώτερης Τάξης D ={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } D ={ X3 0, 1} Πρόβληµα F, T, U, W, R, O X1, X2, X1X3 X2 Περιορισµοί Alldiff(F, T, U, W, R, O) O + O = R + 10 X1+ W + W = U + 10 X2+ T + T = O + 10 X3= F
Αναζήτηση µε Υ αναχώρηση Backtracking Search
Αντιµεταθετικότητα και Υ αναχώρηση Τυφλή αναζήτηση αναζήτηση πρώτα κατά βάθος b = nd, (n-1)d, (n-2)d,... n!dnφύλλα, όµως µόνο dnαναθέσεις! Αντιµεταθετικότητα (commutativity) η σειρά εφαρµογής ενεργειών δεν επηρεάζει το αποτέλεσµα ανάθεση σε µία µόνο µεταβλητή ανά επίπεδο b=d dnφύλλα Αναζήτηση µε υ αναχώρηση αναζήτηση πρώτα κατά βάθος ανάθεση σε µία µόνο µεταβλητή ανά επίπεδο υπαναχώρηση όταν κάποια µεταβλητή δεν έχει νόµιµες τιµές
Παράδειγµα
Αλγόριθµος Υ αναχώρησης
Βελτιώσεις Συµβατική σε αναζήτηση χρήση µε ευρετικών συναρτήσεων αξιοποίηση ποιες γνώσης ειδικής για το πρόβληµα µεταβλητή θα γίνει η επόµενη ανάθεση; Προβλήµατα ποια σειρά συνέπειες θα ανατεθούν της τρέχουσας οι νόµιµες ανάθεσης τιµές; για τις άλλες µεταβλητές; ικανο οίησης εριορισµών χρήση πώς µπορεί αποφεύγονται µπορούµε να ανιχνευθεί επαναλαµβανόµενες πρώιµα µια σίγουρη αποτυχίες; αποτυχία; γενικών µεθόδων να αξιοποιήσουµε τη δοµή του προβλήµατος;
var SELECT-UNASSIGNED-VARIABLE(VARIABLES[csp],assignment,csp) Ε ιλογή µεταβλητής: η ιο εριορισµένη for ευρετικός each valuein µηχανισµός ORDER-DOMAIN-VALUES(var, ελάχιστων εναποµενουσών assignment,csp)do τιµών (minimum remaining values, MRV) ευρετικός µηχανισµός βαθµού (degree heuristic) Προτεραιότητα Μεταβλητών και Τιµών Ε ιλογή τιµής: η λιγότερο εριοριστική ευρετικός µηχανισµός της λιγότερο δεσµευτικής τιµής (least-constraining value, LCV)
Ελάχιστες Ενα οµείνασες Τιµές Ευρετικός µηχανισµός κανόνας: διάλεξε τη µεταβλητή µε τις λιγότερες νόµιµες τιµές γνωστός και ως µηχανισµός της «πιο δεσµευµένης µεταβλητής» γνωστός και ως ανάθεση «πρώτα στην αποτυχία» επιχειρεί να ανιχνεύσει πρώιµα µια πιθανή αποτυχία
Ευρετικός Μηχανισµός Βαθµού Ευρετικός µηχανισµός κανόνας: διάλεξε τη µεταβλητή ου εµ λέκεται στο µεγαλύτερο αριθµό εριορισµών ως ρος τις άλλες ελεύθερες µεταβλητές σχετίζεται µε το βαθµό των κόµβων στο γράφηµα περιορισµών επιχειρεί να µειώσει τον παράγοντα διακλάδωσης δίνει επιλογή σε περίπτωση ίσου πλήθους νοµίµων τιµών
Λιγότερο εσµευτική Τιµή Ευρετικός µηχανισµός κανόνας: διάλεξε µια τιµή για την µεταβλητή ου α οκλείει τις λιγότερες ε ιλογές για τις γειτονικές ελεύθερες µεταβλητές επιχειρεί να επιτρέψει τη µέγιστη δυνατή ευελιξία στη συνέχεια χρήσιµος όταν ζητούµε µία µόνο λύση, όχι όλες τις λύσεις
Πρώιµος Έλεγχος (Forward Checking) κανόνας: κατά την ανάθεση τιµής σε µια µεταβλητή X, ελέγχουµε τις µεταβλητές ου συνδέονται µε την Χ και αφαιρούµε τιµές α ό τα εδία τους διάδοση πληροφορίας από δεσµευµένες σε ελεύθερες µεταβλητές καλύτερη αξιοποίηση των περιορισµών
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {1,2,3,4} {1,2,3,4} X3 {1,2,3,4} X4 {1,2,3,4} [Οι διαφάνειες αυτές είναι από το µάθηµα CMSC 421 του B.J. Dorr]
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {1,2,3,4} {1,2,3,4} X3 {1,2,3,4} X4 {1,2,3,4}
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {1,2,3,4} {,,3,4} X3 {,2,,4} X4 {,2,3, }
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {1,2,3,4} {,,3,4} X3 {,2,,4} X4 {,2,3, }
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {1,2,3,4} {,,3,4} X3 {,,, } X4 {,2,3, }
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {1,2,3,4} X3 {1,2,3,4} X4 {1,2,3,4}
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {,,,4} X3 {1,,3, } X4 {1,,3,4}
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {,,,4} X3 {1,,3, } X4 {1,,3,4}
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {,,,4} X3 {1,,, } X4 {1,,3, }
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {,,,4} X3 {1,,, } X4 {1,,3, }
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {,,,4} X3 {1,,, } X4 {,,3, }
Παράδειγµα: 1324 1234 4-Queens Problem X1 X2 {,2,3,4} {,,,4} X3 {1,,, } X4 {,,3, }
ιάδοση Περιορισµών (Constraint Propagation) αναδροµική επέκταση πρώιµου ελέγχου στις µεταβλητές, για τις οποίες υπήρξε διαγραφή τιµής σε συνδεόµενη µε αυτές µεταβλητή Συνέ εια τόξου (arc consistency, 2-consistency) το τόξο X Y (από τον δυϊκό περιορισµό X-Y) είναι συνεπές αν για κάθε τιµή του X υπάρχει κά οια νόµιµη τιµή του Y τιµές της X που οδηγούν σε 2-ασυνέπεια διαγράφονται k-συνέ εια (k-consistency) για οποιαδήποτε ανάθεση τιµών σε κάποιο σύνολο k-1 µεταβλητών υπάρχει κάποια νόµιµη τιµή για την k-οστή µεταβλητή ισχυρή k-συνέ εια (strong k-consistency) k-συνέπεια και (k-1)-συνέπεια και (k-2)-συνέπεια... και 1-συνέπεια
Παράδειγµα: Συνέ εια Τόξου
Αλγόριθµος Συνέ ειας Τόξου
Ειδικοί εριορισµοί Περιορισµός αµοιβαίου α οκλεισµού (AllDiff) καταµέτρηση πλήθους διαφορετικών τιµών των µεταβλητών AllDiff(NT, SA, Q) ασυνεπής µε {WA=κόκκινο, NSW=κόκκινο} Περιορισµός αν το µπορούν πρόβληµα κάθε µεταβλητή να όρων διαγραφούν είναι ασυνεπές έχει (resource πεδίο οι τιµές {2,3,4,5,6}, {3,4,5,6}, 5 και constraint, 6 atmost) atmost(m,x1,x2,...,xn) : X1+ X2+... + Xn m π.χ. atmost(10,a,b,c,d): ιάδοση φραγµάτων (bound propagation) συνέπεια ως προς τα άνω και κάτω φράγµατα
Υ αναχώρηση µε άλµα (backjumping) Σύνολο συγκρούσεων (conflict set) για κάθε µεταβλητή Υ, είναι το σύνολο των µεταβλητών στις οποίες στην έχουν πιο πρόσφατη ανατεθεί µεταβλητή(προηγούµενη τιµές, και του συνδέονται συνόλου συγκρούσεων της Υ) µε την Υ της µέσω Υ περιορισµών (κατασκευάζεται κατά τον πρώιµο έλεγχο) Μέθοδοι υ αναχώρησης α ό Y χρονολογική υπαναχώρηση υπαναχώρηση µε άλµα Παράδειγµα {Q = κόκκινο, NSW = ράσινο, V = µ λε, T = κόκκινο} τρέχων βήµα: ανάθεση τιµής στην SA σύνολο συγκρούσεων της SA :{Q, NSW, V}
Το ική Aναζήτηση για CSPs Local Search for CSPs
Το ική Αναζήτηση για CSPs Καταστάσεις πλήρης ανάθεση τιµών σε µεταβλητές πιθανή µεταξύ παραβίαση περιορισµών Το ικές κινήσεις ανάθεση τιµή για των νέας την µεταβλητών τιµής οποία προκύπτει που εµπλέκονται σε κάποια ο ελάχιστος σε συγκρούσεις µεταβλητή αριθµός συγκρούσεων Ε ιλογές µεταβλητή: τυχαία επιλογή τιµή: ελάχιστες συγκρούσεις (minimum conflict)
functionmin-conflicts(csp, inputs:csp, max_steps, a constraint the number satisfaction of max_steps) problem allowed returnssolution before giving or upfailure Αλγόριθµος Ελαχίστων Συγκρούσεων fori= current an ifcurrentis var a 1 tomax_stepsdo initial randomly a solution complete chosen, forcspthen assignment conflicted returncurrent forcsp returnfaiilure set value the = valuein value current vfor varthat minimizes variable CONFLICTS(var,v,current,csp) from VARIABLES[csp]
Παράδειγµα: Πρόβληµα Βασιλισσών 1,000,000,000 χρονοπρογραµµατισµός βασίλισσες Hubble σε 50 βήµατα! από 3 εβδοµάδες σε 10 λεπτά Χαρακτηριστικά ιδιαίτερα αποτελεσµατική µέθοδος (αν και όχι πλήρης) ελάχιστες συγκρούσεις: κατάλληλη και για online προβλήµατα
οµή Προβληµάτων Problem Structure
Μορφές ροβληµάτων Ανεξάρτητα ως προς το υ ο ροβλήµατα µέγιστο υποπρόβληµα µπορούν να λυθούν ανεξάρτητα συνδεδεµένες συνιστώσες γράφου συνολική λύση: ένωση υπολύσεων εκθετική πολυπλοκότητα ως προς τον αριθµό των µεταβλητών Ακυκλικά γραφήµατα εριορισµών δοµή δένδρου επίλυση σε δύο περάσµατα γραµµική πολυπλοκότητα
Αλγόριθµος για ένδρα Περιορισµών επιλογή έλεγχος Xn µιας οποιαδήποτε µεταβλητής ως ρίζας του δένδρου διάταξη των µεταβλητών από τη ρίζα προς τα φύλλα, ώστε ο γονέας κάθε ανάθεση συνέπειας κόµβου στην του Xjµιας τόξου δένδρου τιµής στο να που τόξο προηγείται είναι (Xi, συνεπής Xj), όπου στη µε Xiο την διάταξη τιµή γονέας του της γονέα Xj, της Xi ονοµασία µεταβλητών από ρίζα προς φύλλα: X1,, για τις τιµές j από το n µέχρι το 2 για τις τιµές j από το 1 µέχρι το n
Μετατρο ή σε ένδρα Περιορισµών I Αφαίρεση µεταβλητών σύνολο µεταβλητών, που αν αφαιρεθούν, προκύπτει δένδρο σύνολο αποκοπής κύκλων (cycle cutset)
Αλγόριθµος απαλοιφή Αφαίρεσης Μεταβλητών Αλγόριθµος επίλυση αν όλων βρεθεί των του τιµών λύση, από εναποµείναντος τα που αυτή πεδία είναι επιστρέφεται ορισµού ασυνεπείς προβλήµατος των µαζί µε υπόλοιπων την µε ανάθεση (δένδρο την ανάθεση µεταβλητών περιορισµών) τιµών τιµών στο του SS ορισµός του συνόλου αποκοπής κύκλων S για κάθε συνεπή ανάθεση τιµών στις µεταβλητές του S Πολυ λοκότητα εκθετική ως προς το µέγεθος του συνόλου αποκοπής κύκλων εύρεση του ελαχίστου συνόλου αποκοπής κύκλων: NP-δύσκολη λύση: προσεγγιστικοί αλγόριθµοι (cutset conditioning)
Μετατρο ή σε ένδρα Περιορισµών II Α οσύνθεση δένδρου (tree decomposition) µετατροπή σε δένδρο συνδεδεµένων υποπροβληµάτων
Α οσύνθεση ένδρου Κανόνες α οσύνθεσης κάθε µεταβλητή εµφανίζεται σε ένα τουλάχιστον υποπρόβληµα αν δύο µεταβλητές συνδέονταν µε περιορισµό, πρέπει να βρίσκονται µαζί πεδία (και ο περιορισµός) σε τουλάχιστον ένα από τα υποπροβλήµατα αν περιορισµοί: ορισµού: µία µεταβλητή γειτονικές οι λύσεις εµφανίζεται λύσεις τουςπρέπει σε δύο να συµφωνούν υποπροβλήµατα, στις κοινές πρέπει µεταβλητές να εµφανίζεται και σε κάθε υποπρόβληµα στη διαδροµή που συνδέει Εύρεση λύσης επίλυση κάθε υποπροβλήµατος (υπερ-µεταβλητές ) και ένωση Πολυ λοκότητα αποσύνθεση µε ελάχιστος πλάτος δένδρου (tree width): NP-δύσκολο
Σύγγραµµα Ενότητες 5.1 5.5 Μελέτη