Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεCallia Sacca Τροποποιήθηκε πριν 10 χρόνια
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={x1, x2, …, xm} Ένα σύνολο m πεδίων D={D1,.., Dm}, όπου σε κάθε πεδίο αντιστοιχεί μια μεταβλητή. Ένα σύνολο περιορισμών στις μεταβλητές. Λύση είναι μια ανάθεση τιμών στις μεταβλητές, που να ικανοποιεί τους περιορισμούς. Σε ένα κατανεμημένο πρόβλημα ΙΠ οι μεταβλητές η/και οι περιορισμοί διαμοιράζονται σε ένα σύνολο από πράκτορες (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(<name>,<Prolog_goal>). Οδηγούμενες από συμβάντα (real-time processes) Ένα κατηγόρημα για χειρισμό συμβάντων (event-handling) Ένα κατηγόρημα αρχικοποίησης Περιγραφή των συμβάντων στα οποία αντιδρούν. new_rt(<name>,<event_goal>,<init_goal>, [<event_list>],<Periodicity>).
12
Μηνύματα μεταξύ Διεργασιών
Mεταδίδονται μέσω καναλιών. Σύγχρονη Μετάδοση Οποιοσδήποτε Prolog όρος open_channel_for_send(test_chan), send(test_chan,hello(1)), close_channel(test_chan), ... Process A Process B open_channel_for_receive(test_chan), receive(test_chan,MSG),
13
Συμβάντα (Events) Ρητή δημιουργία με την χρήση ενσωματωμένου κατηγορήματος (προαιρετικό όρισμα με οποιαδήποτε πληροφορία). ..., generate_event(<event_name>,<Info>), Μη ρητή δημιουργία από εσωτερικό ρολόι (συμβάντα χρόνου).
14
TCP/IP Επικοινωνία Ασύγχρονη Μετάδοση Μηνυμάτων
Κοινότητα (community): το σύνολο των εφαρμογών (partners) που επικοινωνούν μέσω TCP/IP. Κάθε partner εισάγεται στην κοινότητα με χρήση κατάλληλου κατηγορήματος. Όνομα, IP διεύθυνση, IP port , πρωτόκολλο, μέγιστος αριθμός προσπαθειών επανασύνδεσης κλπ. Η κατάσταση των partners είναι γνωστή μέσω κατάλληλων συμβάντων.
15
Μοντέλο CS Prolog-II CSP-II Application CSP-Process INTER PROCESS
COMMUNICATION THROUGH CHANNELS TCP/IP COMMUNICATION
16
Communicating Sequential Prolog with Constraints (CSPCONS)
17
CSPCONS Είναι μια επέκταση της CS Prolog-II που: Ο Επιλύτης (solver)
Κληρονομεί όλα τα χαρακτηριστικά της. Υποστηρίζει την προσθήκη Επιλυτών Περιορισμών. Ο Επιλύτης (solver) Υπεύθυνος για τη διαχείριση της αποθήκης περιορισμών (constraint store) και για όλες τις εργασίες που αφορούν περιορισμούς. Ο Πυρήνας (core) Εκτελεί όλες τις εργασίες του συστήματος (κλήσεις απλών Prolog κατηγορημάτων). Προωθεί αιτήσεις στο κατάλληλο στιγμιότυπο επιλύτη.
18
Μοντέλο Διεργασιών CSPCONS
CSP-Process CSPCONS Application FD Solver Linear Solver Στιγμιότυπα επιλυτών που ανή-κουν σε διαφορε-τικές διεργασίες είναι ανεξάρτητα. Κάθε διεργασία μπορεί να έχει περισσότερα του ενός στιγμιότυπα επιλύτη ενεργά. TCP/IP COMMUNICATION INTER PROCESS COMMUNICATION
19
Επεκτάσεις στην CSP-II
Νέος τύπος Μεταβλητής: Μεταβλητή Περιορισμών Νέα κατηγορήματα, που αφορούν: Εξακρίβωση του νέου τύπου μεταβλητής. Πληροφορίες για τους ενεργούς επιλύτες καθώς και επιλογή κατάλληλου επιλύτη. Εισαγωγή περιορισμών, δήλωση πεδίων μεταβλητών κλπ. (Κατηγορήματα Διεπαφής)
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 για Περιορισμούς Ανώτερης Τάξης Διατήρηση Συνέπειας σε όλα τα βήματα. Υποστηρίζει περιορισμούς της μορφής: Exp1 Rel Exp2, όπου Exp1 και Exp2 είναι γραμμικές εκφράσεις και Rel {=, , , ,>, <}
26
Εισαγωγή Περιορισμών Χρήση διαδεδομένων CLP κατηγορημάτων
X in [1..10,12]. Χ #< Υ + 10. 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
Μελλοντική Εργασία Ανάπτυξη καλύτερου Επιλύτη.
Διερεύνηση του πώς θα μπορούσαν αλγόριθμοι κατανεμημένης επίλυσης περιορισμών να ταιριάξουν στο μοντέλο της γλώσσας. Ανάπτυξη Κατανεμημένων Εφαρμογών για έλεγχο της Γλώσσας.
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.