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