300 likes | 357 Views
Γλώσσες περιορισμών. Τι είναι οι περιορισμοί( constraints)? Μοντελοποίηση περιορισμών Επίλυση περιορισμών Δένδρα περιορισμών Άλλες περιοχές περιορισμών Properties of constraint solving. Περιορισμοί. Μεταβλητές: αποθήκευση τιμών. Συναρτησιακά σύμβολα : αντιστοίχιση τιμών σε τιμές.
E N D
Γλώσσες περιορισμών • Τι είναι οι περιορισμοί(constraints)? • Μοντελοποίηση περιορισμών • Επίλυση περιορισμών • Δένδρα περιορισμών • Άλλες περιοχές περιορισμών • Properties of constraint solving
Περιορισμοί Μεταβλητές: αποθήκευση τιμών Συναρτησιακά σύμβολα: αντιστοίχιση τιμών σε τιμές Σχεσιακά σύμβολα: σχέσεις μεταξύ τιμών
Περιορισμοί Στοιχειώδης περιορισμοί : σχέσεις περιορισμών με ορίσματα unary binary Περιορισμοί: συνένωση στοιχειωδών περιορισμών
Ικανοποιησιμότητα Αποτίμηση: ανάθεση τιμών στις μεταβλητές Επίλυση: αποτίμηση που ικανοποιεί τους περιορισμούς
Ικανοποιησιμότητα Ικανοποίησιμη: ο περιορισμός έχει λύση Μη ικανοποίησιμη : ο περιορισμός δεν έχει λύση ικανοποιήσιμη Μη ικανοποιήσιμη
Σύνταξη περιορισμών • Οι περιορισμοί είναι συμβολοσειρές • Οι αγκύλες δεν επηρεάζουν (δεν τις χρησιμοποιούμε) • Η σειρά επηρεάζει • Μερικοί αλγόριθμοι εξαρτώνται από την σειρά
Ισοδυναμία περιορισμών Δύο διαφορετικοί περιορισμοί μπορεί να αναπαριστούν την ίδια πληροφορία Δύο περιοριμοί είναι ισοδύναμοι όταν έχουν το ίδιο σύνολο λύσεων
Μοντελοποίηση χρησιμοποιώντας περιορισμούς • Οι περιορισμοί περιγράφουν ιδεατές συμπεριφορές αντικειμένων στον πραγματικό κόσμο
Ικανοποίηση περιορισμών • Δοθέντος ενός περιορισμού C έχουμε δύο ερωτήσεις • ικανοποίησιμη: έχει λύση; • επίλυση: δώσε μου μία λύση, εάν υπάρχει; • Το πρώτο είναι πιο βασικό • Ένα σύστημα επίλυσης περιορισμών απαντάει το ερώτημα της ικανοποιησιμότητας
Ικανοποίηση περιορισμών • Πως απαντάμε την ερώτηση; • Απλή προσέγγιση: αποτίμηση όλων των πιιθανών τιμών(genarate & test)
Generate & Test • Πιθανώς; η πιο γενική μέθοδος επίλυσης • Αλγόριθμος: generate labelling test ικανοποιησιμότητας Μειονεκτήματα: Βελτιώσεις: blind generator smart generator --> local search αργή εξαγωγή έλεγχος κατά την εξαγωγή ασυνεπειών --> backtracking
Systematic Search Methods Backtracking (BT) • incrementally extends a partial solution towards a complete solution • Algorithm: assign value to variable check consistency until all variables labelled • Drawbacks: • thrashing • redundant work • late detection of conflict A 1 B 2 1 C 2 1 1 D 2 2 1 1 1 A = D, B D, A+C < 4
Systematic Search Methods GT & BT - Example • Problem:X::{1,2}, Y::{1,2}, Z::{1,2}X = Y, X Z, Y > Z generate & test backtracking
Consistency Techniques • removing inconsistent values from variables’ domains • graph representation of the CSP • binary and unary constraints only (no problem!) • nodes = variables • edges = constraints • node consistency (NC) • arc consistency (AC) • path consistency (PC) • (strong) k-consistency A>5 A A<C AB C B B=C
Consistency Techniques Arc Consistency (AC) • the most widely used consistency technique (good simplification/performance ratio) • deals with individual binary constraints • repeated revisions of arcs • AC-3, AC-4, Directional AC a b c a b c a b c Y X Z
Consistency Techniques AC - Example • Problem:X::{1,2}, Y::{1,2}, Z::{1,2}X = Y, X Z, Y > Z X X 1 2 1 2 1 2 1 2 Y Y 1 2 1 2 Z Z
Consistency Techniques Is AC enough? • empty domain => no solution • cardinality of all domains is 1 => solution • Problem:X::{1,2}, Y::{1,2}, Z::{1,2}X Y, X Z, Y Z X 1 2 1 2 Y Z 1 2
Consistency Techniques Path Consistency (PC) V2 • consistency along the path only • checking paths of length 2 is enough • Plus/Minus + detects more inconsistencies than AC - extensional representation of constraints - changes in graph connectivity • Directional PC, Restricted PC V4 V3 V5 V0 V1 ???
Consistency Techniques K -consistency • K-consistency • consistent valuation o (K-1) variables can be extended to K-th variable • strong K-consistency J-consistency for each JK • NC strong 1-consistency • AC strong 2-consistency • PC strong 3-consistency
Ικανοποίηση περιορισμών • Η απλή προσέγγιση δεν δουλεύει για προβλήματα του πραγματικού κόσμου • Μία πιο έξυπνη έκδοση χρησιμοποιείται για περιορισμούς με πεπερασμένο πεδίο ορισμού • Gauss-Jordan σχήμα απαλοιφής
Gauss-Jordan σχήμα απαλοιφής • Επιλογή εξίσωσης c από C • Ξαναγράψε c στη μορφή x = e • Αντικατέστησε το x παντού στη C με e • Επανέλαβε μέχρι • όλες οι εξισώσεις να είναι της μορφής x = e • η μια εξίσωση είναι ισοδύναμη με d = 0 (d != 0) • Επέστρεψε True στην πρώτη περίπτωση αλλιώς False
Gauss-Jordan Παράδειγμα 1 Αντικατάστησε X με 2Y+Z-1 Αντικατάστησε Y με -1 Επέστρεψε false
Gauss-Jordan Example 2 Αντικατάστησε X με 2Y+Z-1 Αντικατάστησε Y με -1 Επίλυση μορφής: περιορισμοί αυτής της μορφής είναι ικανοποιήσιμοι
Επίλυση μορφής • Μη παραμετρικές μεταβλητές: εμφανίζονται στα αριστερά μιας εξίσωσης. • Παραμετρικές μεταβλητές: εμφανίζονται στα δεξιά μιας εξίσωσης. • Επίλυση: επιλογή παραμερικών τιμών και καθορισμός των μη παραμετρικών
Πηγές • Τεχνητή Νοημοσύνη • Scene Labelling • Λογικός Προγραμματισμός • unification --> constraint solving • Γραφικές αλληλεπιδράσεις • Sketchpad • ThingLab • Επιχειρησιακή Έρευνα • NP-hard combinatorial problems
Εφαρμογές • Προβλήματα Ανάθεσης • τοποθεσία κατασκευής αεροδρόμιων • αγκυροβόλιο πλοίου • προσωπική ανάθεση • κατάλογος νοσοκόμων • ανάθεση πληρομάτων πτήσεων • διαχείριση και διαμόρφωση δικτύων • σχεδιασμός καλοδίωσης σε τηλεπικοινωνιακά δίκτυα • βέλτιστη τοποθέτητση σταθμών σε ασύρματα δίκτυα • μοριακή βιολογία • DNA ακολουθίας • αναλογικός και ψηφιακός σχεδιασμός κυκλωμάτων
Εφαρμογές σε Χρονοδιαγράμματα • η πιο επιτυχής περιοχή εφαρμογών • χρονοδιάγραμμα παραγωγής • σχεδιασμός παραγωγής αεροπλάνων (Dassault Aviation)
Μειονεκτήματα • NP-hard προβλήματα • μη προβλέψιμη συμπεριφορά • σταθερότητα μοντελοποίησης • πολύ ψηλό επίπεδο (νέοι περιορισμοί, επιλυτές) • πολύ χαμηλό επίπεδο (μοντελοποίηση) • πολύ τοπικό • μη αυξητικοί (rescheduling) • αδυναμία συνεργασίας επιλυτών
Πλεονεκτήματα • επεξηγηματική φύση • επικέντρωση του ενδιαφέρον στη περιγραφή του προβλήματος και όχι στην επίλυσή του • αποτελεσματική επίλυση προβλημάτων • ενοποίηση αλγορίθμων που χρησιμοποιούνται για ειδικούς σκοπούς • θεμελιώδης σημασιολογία • καθαρές και κομψές γλώσσες • βασίζεται στο λογικό προγραμματισμό • ποικίλλες εφαρμογές • αρκετή επιτυχία σε διάφορους τομείς
Κατευθύνσεις • μοντελοποίηση • καθολικούς περιορισμούς (όλοι διαφορετικοί) • μοντελοποίηση γλωσσών (Numerica, VisOpt) • κατανοητή μελέτη • οπτικοποίηση, αποτελεσματικό debugging • υβριδικοί αλγόριθμοι • συνεργασία επιλυτών • παραλληλισμός • multi-agent τεχνολογία