Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

CSPCONS: Μια Σειριακή Prolog με Επικοινωνία και Ικανοποίηση Περιορισμών Ιωάννης Βλαχάβας, Ηλίας Σακελλαρίου Τμ. Πληροφορικής, Α.Π.Θ. Ivan Futo, Zoltan.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "CSPCONS: Μια Σειριακή Prolog με Επικοινωνία και Ικανοποίηση Περιορισμών Ιωάννης Βλαχάβας, Ηλίας Σακελλαρίου Τμ. Πληροφορικής, Α.Π.Θ. Ivan Futo, Zoltan."— Μεταγράφημα παρουσίασης:

1 CSPCONS: Μια Σειριακή Prolog με Επικοινωνία και Ικανοποίηση Περιορισμών Ιωάννης Βλαχάβας, Ηλίας Σακελλαρίου Τμ. Πληροφορικής, Α.Π.Θ. Ivan Futo, Zoltan Pasztor, Janos Szeredi ML LTD, Hungary

2 Δομή Παρουσίασης  Προβλήματα Ικανοποίησης Περιορισμών  Communicating Sequential Prolog II (CSP-II)  CSPCONS  Επιλύτης Διακριτού Πεδίου (Finite Domain Solver)  Συμπεράσματα

3 Προβλήματα Ικανοποίησης Περιορισμών

4 Προβλήματα Ικανοποίησης Περιορισμών (ΙΠ)  Ένα πρόβλημα ΙΠ αποτελείται από: –Ένα σύνολο m διαφορετικών μεταβλητών X={x 1, x 2, …, x m } –Ένα σύνολο m πεδίων D={D 1,.., D m }, όπου σε κάθε πεδίο αντιστοιχεί μια μεταβλητή. –Ένα σύνολο περιορισμών στις μεταβλητές.  Λύση είναι μια ανάθεση τιμών στις μεταβλητές, που να ικανοποιεί τους περιορισμούς.  Σε ένα κατανεμημένο πρόβλημα ΙΠ οι μεταβλητές η/και οι περιορισμοί διαμοιράζονται σε ένα σύνολο από πράκτορες (agents).

5 Κατανεμημένα Προβλήματα ΙΠ  Παρουσιάζουν ενδιαφέρον: –Δυνατότητες αυξημένης απόδοσης. –Καλύτερη μοντελοποίηση κατανεμημένων προβλημάτων. –Σε περιπτώσεις αδυναμίας συγκέντρωσης δεδομένων σε ένα κεντρικό σημείο.  Εργαλεία: –Δυνατότητες Προγραμματισμού με Περιορισμούς –Δυνατότητες Επικοινωνίας πάνω από Δίκτυα

6 Επίλυση Κατανεμημένων Προβλημάτων ΙΠ  Γλώσσες Λογικού Προγραμματισμού: –CIAO–Prolog (Blackboard Architecture – Linda) –Firebird (Andorra Principle)  Αλγόριθμοι Επίλυσης: –Asynchronous Backtracking, Asynchronous Weak Commitment, Distributed Dynamic Backtracking Asynchronous Aggregation Search, distributed AC etc.

7 CSPCONS  Κλασσική σύνταξη της Prolog.  Υποστηρίζει TCP/IP επικοινωνία.  Εύκολη προσθήκη νέων πεδίων περιορισμών.  Προγραμματισμός με Σειριακές Διεργασίες.  Επέκταση της CS Prolog-II

8 Communicating Sequential Prolog II (CSP-II)

9 CS-Prolog II  Είναι μια έκδοση της Prolog η οποία ακολουθεί την κλασική σύνταξη (ISO) της γλώσσας και την επεκτείνει με: –Πολύ-διεργασία (Multi-tasking) –Προγραμματισμό Πραγματικού Χρόνου –Επικοινωνία πάνω από δίκτυα (TCP/IP)  Ακολουθεί το μοντέλο των Σειριακών Διεργασιών που Επικοινωνούν (Hoare)

10 Διεργασίες στη CS Prolog II  Κύριο χαρακτηριστικό της γλώσσας  Είναι ανεξάρτητες  Εκτελούνται Παράλληλα  Επικοινωνούν μέσω μηνυμάτων πάνω από κανάλια  Αντιδρούν σε συμβάντα (events).

11 Είδη Διεργασιών  Κανονικές Διεργασίες (self-driven processes) –Κατηγόρημα στόχο. new(,).  Οδηγούμενες από συμβάντα (real-time processes) –Ένα κατηγόρημα για χειρισμό συμβάντων (event-handling) –Ένα κατηγόρημα αρχικοποίησης –Περιγραφή των συμβάντων στα οποία αντιδρούν. new_rt(,,, [ ], ). [ ], ).

12 Μηνύματα μεταξύ Διεργασιών  Mεταδίδονται μέσω καναλιών.  Σύγχρονη Μετάδοση  Οποιοσδήποτε Prolog όρος open_channel_for_send(test_chan),send(test_chan,hello(1)),close_channel(test_chan),... Process A Process A Process B open_channel_for_receive(test_chan),receive(test_chan,MSG),close_channel(test_chan),...

13 Συμβάντα (Events)  Ρητή δημιουργία με την χρήση ενσωματωμένου κατηγορήματος (προαιρετικό όρισμα με οποιαδήποτε πληροφορία)....,..., generate_event(, ), generate_event(, ),...,...,  Μη ρητή δημιουργία από εσωτερικό ρολόι (συμβάντα χρόνου).

14 TCP/IP Επικοινωνία  Ασύγχρονη Μετάδοση Μηνυμάτων  Κοινότητα (community): το σύνολο των εφαρμογών (partners) που επικοινωνούν μέσω TCP/IP.  Κάθε partner εισάγεται στην κοινότητα με χρήση κατάλληλου κατηγορήματος. –Όνομα, IP διεύθυνση, IP port, πρωτόκολλο, μέγιστος αριθμός προσπαθειών επανασύνδεσης κλπ.  Η κατάσταση των partners είναι γνωστή μέσω κατάλληλων συμβάντων.

15 Μοντέλο CS Prolog-II INTER PROCESS COMMUNICATION THROUGH CHANNELS TCP/IP COMMUNICATION CSP-Process CSP-II Application CSP-Process CSP-II Application CSP-Process

16 Communicating Sequential Prolog with Constraints (CSPCONS)

17 CSPCONS  Είναι μια επέκταση της CS Prolog-II που: –Κληρονομεί όλα τα χαρακτηριστικά της. –Υποστηρίζει την προσθήκη Επιλυτών Περιορισμών.  Ο Επιλύτης (solver) –Υπεύθυνος για τη διαχείριση της αποθήκης περιορισμών (constraint store) και για όλες τις εργασίες που αφορούν περιορισμούς.  Ο Πυρήνας (core) –Εκτελεί όλες τις εργασίες του συστήματος (κλήσεις απλών Prolog κατηγορημάτων). –Προωθεί αιτήσεις στο κατάλληλο στιγμιότυπο επιλύτη.

18 Μοντέλο Διεργασιών CSPCONS INTER PROCESS COMMUNICATION TCP/IP COMMUNICATION CSP-Process CSPCONS Application CSP-Process FD Solver Linear Solver  Στιγμιότυπα επιλυτών που ανή- κουν σε διαφορε- τικές διεργασίες είναι ανεξάρτητα.  Κάθε διεργασία μπορεί να έχει περισσότερα του ενός στιγμιότυπα επιλύτη ενεργά.

19 Επεκτάσεις στην CSP-II  Διεπαφή Επιλύτη – Πυρήνα Γλώσσας C  Νέος τύπος Μεταβλητής: Μεταβλητή Περιορισμών  Νέα κατηγορήματα, που αφορούν: –Εξακρίβωση του νέου τύπου μεταβλητής. –Πληροφορίες για τους ενεργούς επιλύτες καθώς και επιλογή κατάλληλου επιλύτη. –Εισαγωγή περιορισμών, δήλωση πεδίων μεταβλητών κλπ. (Κατηγορήματα Διεπαφής)

20 Διεπαφή Επιλύτη Πυρήνα  Επιλύτες υλοποιούνται σαν βιβλιοθήκες C. – Επιτρέπει την υλοποίηση οποιουδήποτε επιλύτη.  Επιλύτης –Προσφέρει στον Πυρήνα ένα πίνακα με δείκτες σε συναρτήσεις (entry-points). –Κάθε κατηγόρημα διεπαφής αντιστοιχεί σε ένα entry- point.  Πυρήνας –Προσφέρει ένα σύνολο συναρτήσεων σε κάθε επιλύτη (callback functions)

21 Σχήμα Διεπαφής Επιλύτη Πυρήνα  Παράδειγμα συνάρτησης Call back –mk_rest_var( ) : Καλείται όταν ο επιλύτης θέλει να μετατρέψει μια ελεύθερη μεταβλητή σε μεταβλητή περιορισμών.  Παράδειγμα Entry Point: –(constraint *)( ) : Καλείται όταν ο πυρήνας συναντήσει το κατηγόρημα clp_constraint/1 εισαγωγής περιορισμών. Πυρήνας (core) Επιλύτης (solver) Call Back Συναρτήσεις Entry-point Συναρτήσεις

22 Μεταβλητές Περιορισμών  Αντιστοιχούν σε μια εσωτερική μεταβλητή του Επιλύτη.  Η δημιουργία και καταστροφή τους είναι ευθύνη του επιλύτη (χρήση συναρτήσεων callback).  Ενοποίηση τους γίνεται με συνεργασία Επιλύτη-Πυρήνα.

23 Οπισθοδρόμηση  Δύο σωροί ίχνους (trail stacks): –Πυρήνα, όπου καταγράφονται οι αναθέσεις τιμών των κανονικών Prolog μεταβλητών και οποιαδήποτε άλλη πληροφορία οπισθοδρόμησης. –Επιλύτη, που χρησιμοποιείται για την καταχώρηση αλλαγών στην αποθήκη περιορισμών.  Η Διεπαφή Επιλύτη Πυρήνα προσφέρει μηχανισμό συγχρονισμού των σωρών.

24 Επιλύτης Διακριτών Πεδίων (Finite Domain Solver)

25 Επιλύτης Διακριτών Πεδίων  Αλγόριθμοι: –AC-3 αλγόριθμος για δυαδικούς Περιορισμούς –Bounds consistency για Περιορισμούς Ανώτερης Τάξης –Διατήρηση Συνέπειας σε όλα τα βήματα.  Υποστηρίζει περιορισμούς της μορφής: –Exp 1 Rel Exp 2, όπου Exp 1 και Exp 2 είναι γραμμικές εκφράσεις και Rel  {=, , , ,>,, <}

26 Εισαγωγή Περιορισμών  Χρήση διαδεδομένων CLP κατηγορημάτων –X in [1..10,12]. –Χ #< Υ –7*X + 10 #= 5*Y + 10*Z + 3.  CSPCONS Κατηγορήματα: –clp_constraint([X in 1..10,12]]). –clp_constraint([X #< Y + 10]).

27 Συμπεράσματα και Μελλοντική Εργασία

28 Συμπεράσματα  Προγραμματισμό Βασισμένο σε Διεργασίες.  Υποστηρίζει TCP/IP Επικοινωνία.  Εύκολα επεκτάσιμη καθώς επιτρέπει την προσθήκη νέων επιλυτών περιορισμών.  Κατάλληλη για εφαρμογές Κατανεμημένου Λογικού Προγραμματισμού με Περιορισμούς.

29 Μελλοντική Εργασία  Ανάπτυξη καλύτερου Επιλύτη.  Διερεύνηση του πώς θα μπορούσαν αλγόριθμοι κατανεμημένης επίλυσης περιορισμών να ταιριάξουν στο μοντέλο της γλώσσας.  Ανάπτυξη Κατανεμημένων Εφαρμογών για έλεγχο της Γλώσσας.


Κατέβασμα ppt "CSPCONS: Μια Σειριακή Prolog με Επικοινωνία και Ικανοποίηση Περιορισμών Ιωάννης Βλαχάβας, Ηλίας Σακελλαρίου Τμ. Πληροφορικής, Α.Π.Θ. Ivan Futo, Zoltan."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google