Στεφανής Γεώργιος 30/6/2008

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Στεφανής Γεώργιος 30/6/2008"

Transcript

1 Μελέτη Αλγορίθμων Τοπικής Αναζήτησης για Επίλυση Κατανεμημένων Προβλημάτων Ικανοποίησης Περιορισμών με Προτιμήσεις Η Διπλωματική παρουσιάστηκε ενώπιον του διδακτικού προσωπικού του Πανεπιστημίου Αιγαίου, σε μερική εκπλήρωση των απαιτήσεων για το Δίπλωμα του Μηχανικού Πληροφοριακών και Επικοινωνιακών Συστημάτων. Στεφανής Γεώργιος 30/6/2008 1

2 2

3 Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΔΙΔΑΣΚΟΝΤΩΝ ΕΠΙΚΥΡΩΝΕΙ ΤΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΟΥ ΓΕΩΡΓΙΟΥ ΣΤΕΦΑΝΗ Κωνσταντίνος Στεργίου, Επιβλέπων, Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Γεώργιος Βούρος, Επιβλέπων, Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Ευστάθιος Σταματάτος, Μέλος, Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων 3

4 ΠΕΡΙΛΗΨΗ Η παρούσα εργασία έχει σαν αντικείμενο την υλοποίηση τεχνικών τοπικής αναζήτησης για κατανεμημένα προβλήματα ικανοποίησης περιορισμών λαμβάνοντας υπόψη τον παράγοντα της προτίμησης που έχει ο κάθε πράκτορας πάνω στις τιμές του πεδίου ορισμού. Ο στόχος αυτών των τεχνικών είναι η επίλυση των προβλημάτων, δηλαδή ανάθεση μίας τιμής σε κάθε μία από τις μεταβλητές που συμμετέχουν στο πρόβλημα, έτσι ώστε να μην παραβιάζεται κανένας περιορισμός, και επιπλέον να ικανοποιείται όσο το δυνατόν περισσότερο οι προτίμηση του κάθε πράκτορα ξεχωριστά.. Πολλά συνδυαστικά προβλήματα μπορούν να μοντελοποιηθούν ως προβλήματα ικανοποίησης περιορισμών και να επιλυθούν με τεχνικές συστηματικής ή τοπικής αναζήτησης. Οι τεχνικές τοπικής αναζήτησης θυσιάζουν την ιδιότητα της πληρότητας για να επιτύχουν μεγαλύτερη ταχύτητα και μπορούν να λύσουν πολύ μεγάλα προβλήματα, το οποία είναι πέρα από τις δυνατότητες των συστηματικών αλγορίθμων. Όταν η πληροφορία σχετικά με ένα πρόβλημα ικανοποίησης περιορισμών είναι μοιρασμένη ανάμεσα σε διάφορους πράκτορες τότε επιβάλλεται η χρήση κατανεμημένων αλγορίθμων. Στην εργασία αυτή αφού ορίζονται τα προβλήματα ικανοποίησης περιορισμών και τα κατανεμημένα προβλήματα ικανοποίησης περιορισμών, παρουσιάζονται ορισμένες εφαρμογές και των δυο και γίνεται μια σύντομη ανασκόπηση ορισμένων άλλων τεχνικών επίλυσής τους. Στην συνέχεια υλοποιούνται διάφορες κατανεμημένες παραλλαγές του αλγόριθμου ελάχιστων συγκρούσεων και δοκιμάζονται σε τυχαία παραγμένα κατανεμημένα προβλήματα ικανοποίησης περιορισμών. Τέλος γίνεται μια σύγκριση των αποτελεσμάτων των δοκιμών των υλοποιημένων αλγορίθμων και παρουσιάζονται τα συμπεράσματα από αυτή. 4

5 ABSTRACT This work focuses on studying and developing local search techniques for distributed constraint satisfaction problems with preferences. The goal of these techniques is to solve the problem e.g. to assign a value in each variable in a way that all the constraints are satisfied and at the same time to satisfy as much as they can the total preference of each agent. Many combinatorial problems may be modeled as constraint satisfaction problems and be solved using systematic or local search techniques. Local search techniques sacrifice completeness in order to achieve greater speed and solve much more complex problems, the solution of which goes beyond the abilities of systematic algorithms. When information about a constraint satisfaction problem is distributed among different agents, the use of distributed algorithms is imperative. After giving a formalization of the centralized and distributed constraint satisfaction problem, this work describes some of its applications and presents other existing constraint satisfaction problem solving techniques. In this work various distributed versions of the min-conflicts heuristic are developed and tested in random generated distributed constraint satisfaction problems. Finally an analysis of the results of the tests is made and the conclusions that are drawn are presented. 5

6 Αφιερώσεις Ευχαριστίες Θα ήθελα να ευχαριστήσω: Τους καθηγητές μου Κώστα Στεργίου και Γεώργιο Βούρο, για την καθοδήγησή τους, την εμπιστοσύνη τους, καθώς και για την επιμονή και υπομονή τους καθ όλη την διάρκεια της διπλωματικής. Την οικογένεια μου, για την αμέριστη υποστήριξη που μου παρείχαν, και συνεχίζουν να μου παρέχουν, όλα αυτά τα χρόνια. 6

7 Περιεχόμενα 1. Εισαγωγή Προβλήματα ικανοποίησης περιορισμών Ορισμοί Μοντελοποίηση προβλημάτων εφαρμογές Επίλυση προβλημάτων Ικανοποίησης περιορισμών Agents Ορισμοί Είδη agents Εφαρμογές Το πολυπρακτορικό σύστημα Προβλήματα σε Multi-Agent Systems Τοπική αναζήτηση Τοπική αναζήτηση για προβλήματα ικανοποίησης περιορισμών Γενικά για την τοπική αναζήτηση Τοπική αναζήτηση στα προβλήματα ικανοποίησης περιορισμών Κατανεμημένα προβλήματα ικανοποίησης περιορισμών Ορισμοί Εφαρμογές Επίλυση κατανεμημένων προβλημάτων ικανοποίησης περιορισμών Προτιμήσεις (Preferences) Κατανεμημένη τοπική αναζήτηση Κατανεμημένες μέθοδοι τοπικής αναζήτησης Υλοποίηση κατανεμημένων μεθόδων τοπικής αναζήτησης Περιγραφή του προβλήματος Γεννήτρια προβλημάτων Πειραματική Μελέτη Πρώτη ομάδα μετρήσεων: Αλλάζοντας τον αριθμό των agents Δεύτερη ομάδα μετρήσεων: Αλλάζοντας τον αριθμό των μεταβλητών Τρίτη ομάδα μετρήσεων: Αλλάζοντας τον αριθμό των ενδοπρακτορικών περιορισμών Τέταρτη ομάδα μετρήσεων: αλλάζοντας τον αριθμό των διαπρακτορικών περιορισμών Συμπεράσματα

8 6. Ανασκόπηση Βιβλιογραφία

9 1. Εισαγωγή 1.1 Προβλήματα ικανοποίησης περιορισμών Ορισμοί Ένα πρόβλημα ικανοποίησης περιορισμών (Constraint Satisfaction Problem - CSP) ορίζεται ως μια πλειάδα <X, D, C>, όπου Χ ένα σύνολο μεταβλητών X1, X2,, Xn, D ένα σύνολο μη κενών πεδίων ορισμού από πιθανές τιμές για κάθε μεταβλητή και C ένα σύνολο περιορισμών C1,C2,, Cm. Κάθε περιορισμός Ci αφορά κάποιο υποσύνολο των μεταβλητών και καθορίζει τις επιτρεπτές τιμές για το υποσύνολο αυτό. Μια κατάσταση του προβλήματος καθορίζεται από την ανάθεση των τιμών σε ορισμένες ή και όλες τις μεταβλητές, {Xi=ui, Xj=uj, }. Μια ανάθεση που δεν παραβιάζει κανένα περιορισμό καλείται συνεπής ή νόμιμη ανάθεση. Μια πλήρης ανάθεση είναι εκείνη στην οποία κάθε μεταβλητή έχει μια τιμή και μια λύση ενός CSP είναι μια πλήρης ανάθεση που ικανοποιεί όλους τους περιορισμούς. Μερικά CSPs επίσης απαιτούν μια λύση που μεγιστοποιεί μια αντικειμενική συνάρτηση. Είναι χρήσιμο να αντιλαμβανόμαστε ένα δυαδικό πρόβλημα ικανοποίησης περιορισμών, δηλαδή ένα πρόβλημα όπου όλοι οι περιορισμοί περιλαμβάνουν το πολύ δυο μεταβλητές, σαν ένα γράφημα περιορισμών, όπου οι κόμβοι αντιστοιχούν στις μεταβλητές του προβλήματος και τα τόξα αντιστοιχούν σε περιορισμούς (Εικόνα 1). Εικόνα 1 Το πιο συνηθισμένο είδος προβλημάτων ικανοποίησης περιορισμών χρησιμοποιεί μεταβλητές που είναι διακριτές (discrete) και έχουν πεπερασμένα πεδία ορισμού (finite domains). Ως τέτοια προβλήματα μπορούν να θεωρηθούν το πρόβλημα χρωματισμού χάρτη, το πρόβλημα των 8 βασιλισσών και το Sudoku. Αν το μέγιστο πεδίο ορισμού οποιασδήποτε μεταβλητής σε ένα πρόβλημα ικανοποίησης περιορισμών είναι d, τότε ο αριθμός των δυνατών πλήρων αναθέσεων τιμών είναι O(d n ) δηλαδή εκθετικός ως προς τον αριθμό των μεταβλητών. Τα προβλήματα ικανοποίησης περιορισμών με Boolean μεταβλητές (Boolean CSP) είναι ένα είδος προβλήματος ικανοποίησης περιορισμών όπου οι μεταβλητές μπορούν να έχουν τιμή ή αληθές ή ψευδές και περιλαμβάνουν ως ειδικές περιπτώσεις μερικά NP-πλήρη προβλήματα όπως τα propositional satisfiability (SAT). Στη χειρότερη περίπτωση λοιπόν, δε μπορούμε να αναμένουμε ότι τα προβλήματα ικανοποίησης περιορισμών με πεπερασμένα πεδία ορισμού μπορούν να επιλύονται σε χρόνο μικρότερο του εκθετικού. 9

10 Οι μεταβλητές μπορούν επίσης να έχουν άπειρα πεδία ορισμού (infinite domains)-για παράδειγμα, το σύνολο των ακεραίων ή το σύνολο των συμβολοσειρών. Ένα παράδειγμα αποτελεί ο χρονοπρογραμματισμός οικοδομικών εργασιών σε ένα ημερολόγιο: η ημερομηνία έναρξης μιας εργασίας είναι μια μεταβλητή και οι δυνατές τιμές της είναι ακέραιοι αριθμοί ημερών από την τρέχουσα ημερομηνία. Με τα άπειρα πεδία ορισμού, δεν είναι δυνατόν να περιγράφονται οι περιορισμοί με απαρίθμηση όλων τον επιτρεπτών συνδυασμών τιμών. Πρέπει να χρησιμοποιηθεί μια γλώσσα περιορισμών (constraint language). Υπάρχουν ειδικοί αλγόριθμοι επίλυσης για γραμμικούς περιορισμούς (linear constraints) σε ακέραιες μεταβλητές. Σε μερικές περιπτώσεις, μπορούμε να ανάγουμε προβλήματα περιορισμών για ακεραίους σε προβλήματα με πεπερασμένα πεδία ορισμού, φράζοντας απλώς τις τιμές όλων των μεταβλητών. Για παράδειγμα σε ένα πρόβλημα χρονοπρογραμματισμού μπορούμε να αναθέσουμε ένα άνω φράγμα, ίσο με το ολικό μήκος όλων των εργασιών που πρέπει να χρονοπρογραμματιστούν. Τα προβλήματα ικανοποίησης περιορισμών με συνεχή πεδία ορισμού (continuous domains) είναι πολύ συνηθισμένα στον πραγματικό κόσμο και μελετώνται εκτεταμένα στο πεδίο της επιχειρησιακής έρευνας. Η γνωστότερη κατηγορία προβλημάτων ικανοποίησης περιορισμών με συνεχή πεδία ορισμού είναι τα προβλήματα γραμμικού προγραμματισμού (linear programming), όπου οι περιορισμοί πρέπει να είναι γραμμικές ανισότητες που σχηματίζουν μια κυρτή περιοχή. Τα προβλήματα γραμμικού προγραμματισμού μπορούν να λύνονται σε χρόνο πολυωνυμικό ως προς τον αριθμό των μεταβλητών. Εκτός από τους τύπους των μεταβλητών που μπορούν να εμφανίζονται στα προβλήματα ικανοποίησης περιορισμών, είναι χρήσιμο να εξετάσουμε τους τύπους των περιορισμών. Ο απλούστερος τύπος είναι ο μοναδιαίος περιορισμός (unary constraint), ο οποίος περιορίζει τις τιμές μιας μόνο μεταβλητής. Κάθε μοναδιαίος περιορισμός μπορεί να απαλειφθεί με απλή προεπεξεργασία του πεδίου ορισμού της αντίστοιχης μεταβλητής ώστε να αφαιρεθεί οποιαδήποτε τιμή παραβιάζει τον περιορισμό. Ένας δυαδικός περιορισμός (binary constraint) συσχετίζει δύο μεταβλητές. Για παράδειγμα, ο περιορισμός Α Β είναι δυαδικός. Δυαδικό πρόβλημα ικανοποίησης περιορισμών είναι ένα πρόβλημα που έχει μόνο δυαδικούς περιορισμούς. Μπορεί να αναπαρασταθεί με ένα γράφημα περιορισμών όπως στην Εικόνα 1. Μια ιδιότητα που είναι κοινή σε όλα τα προβλήματα ικανοποίησης περιορισμών είναι η ιδιότητα της αντιμεταθετικότητας. Ένα πρόβλημα είναι αντιμεταθετικό αν η σειρά προτεραιότητας της εφαρμογής οποιουδήποτε συνόλου ενεργειών δεν επηρεάζει το αποτέλεσμα. Αυτό συμβαίνει στα προβλήματα ικανοποίησης περιορισμών επειδή, όταν δίνουμε τιμές σε μεταβλητές, καταλήγουμε στην ίδια μερική ανάθεση τιμών ανεξάρτητα από τη σειρά με την οποία γίνεται η ανάθεση Μοντελοποίηση προβλημάτων εφαρμογές Πολλά πραγματικά προβλήματα μπορούν εύκολα να εκφραστούν σαν προβλήματα ικανοποίησης περιορισμών. Διαφορετικές μοντελοποιήσεις μπορούν να έχουν σαν αποτέλεσμα εντελώς διαφορετικές προσεγγίσεις για ένα πρόβλημα. Εφόσον αυτές οι μοντελοποιήσεις συχνά χρειάζονται σύνολα περιορισμών που διαφέρουν σε μέγεθος και πολυπλοκότητα, η τέχνη του προγραμματισμού περιορισμών έγκειται στην εύρεση μοντέλων που μεγιστοποιούν την 10

11 αποτελεσματικότητα ενός προβλήματος ικανοποίησης περιορισμών. Ο βασικός σκοπός της μοντελοποίησης είναι να προσεγγίσει την πραγματικότητα, με τέτοιο τρόπο ώστε να διευκολυνθεί ο προγραμματιστής που θα αναλάβει να λύσει το πρόβλημα και παράλληλα να προσομοιωθεί όσο γίνεται περισσότερο η πραγματικότητα. Κατά συνέπεια ένα πρόβλημα μπορεί να έχει πολλές μοντελοποιήσεις, ανάλογα με το πόσο θέλει αυτός που κάνει τη μοντελοποίηση να προσεγγίσει την πραγματικότητα. Κατά τη μοντελοποίηση ενός προβλήματος είναι συχνά προτιμότερο να επιλέγονται μοντέλα που χρειάζονται τα μικρότερα σύνολα περιορισμών. Επιπλέον δεν αρκεί μόνο να υπάρχουν μικρά σύνολα περιορισμών, αλλά οι περιορισμοί θα πρέπει να εκφράζονται έτσι, ώστε να αντιμετωπίζονται αποτελεσματικά από τους αλγορίθμους. Επίσης μια καλή πρακτική είναι το τελικό μοντέλο να έχει ξεκάθαρη περιγραφή. Ακολουθούν μερικά παραδείγματα προβλημάτων που μπορούν εύκολα να μοντελοποιηθούν σαν προβλήματα ικανοποίησης περιορισμών, ή όταν η μοντελοποίηση είναι πολύ περίπλοκη να εξηγηθεί εδώ, έχουν επιτυχώς μοντελοποιηθεί σαν προβλήματα ικανοποίησης περιορισμών Sudoku Το Sudoku (βλ. Εικόνα 2) είναι ένα παζλ που παίζεται σε ένα μερικώς γεμισμένο πίνακα 9x9. Ο σκοπός είναι να ολοκληρωθεί η ανάθεση χρησιμοποιώντας αριθμούς από το 1 ως το 9 έτσι ώστε οι είσοδοι σε κάθε γραμμή, κάθε στήλη και σε κάθε κύριο 3x3 μπλοκ να είναι ανά δύο διαφορετικές. Ακολουθούν δύο πίνακες που δείχνουν ένα πρόβλημα και τη λύση του. Διαλέγοντας μια καλή μοντελοποίηση, τα περισσότερα προβλήματα του Sudoku μπορούν να λυθούν χωρίς αναζήτηση. Το παραπάνω πρόβλημα μπορεί να μοντελοποιηθεί με δύο τρόπους: 1. Οι μεταβλητές x1, x2 x81 αναπαριστούν όλα τα κουτιά στο πλέγμα, και το πεδίο ορισμού κάθε μεταβλητής είναι το σύνολο ακεραίων {1,,9} δηλαδή οι τιμές που κάθε μεταβλητή μπορεί να έχει. Μια ανάθεση xi = c σημαίνει ότι το i-οστό κουτί έχει την τιμή c. 2. Οι μεταβλητές nb1, nb9 αναπαριστούν τους αριθμούς 1,...,9 και το πεδίο ορισμού κάθε μεταβλητής είναι το δυναμοσύνολο P({1,,9}), δηλαδή τα κουτιά όπου ένας αριθμός προκύπτει. Μια ανάθεση nbi = {c1,,cn}σημαίνει ότι ένας αριθμός i προκύπτει στο κουτί c1, cn και το{c1,,cn}είναι ένα υποσύνολο του {1,,81}. 11

12 Εικόνα 2 Στην πρώτη περίπτωση αρκεί να χρησιμοποιήσουμε τον κανόνα distinct(s,v) όπου κάθε στοιχείο του συνόλου v έχει μια μοναδική τιμή από το σύνολο s, δηλαδή είναι ξεχωριστά μεταξύ τους. Για να ικανοποιήσουμε τις απαιτήσεις του προβλήματος πρέπει να εφαρμόσουμε το παραπάνω ζευγάρι σε κάθε γραμμή, στήλη και 3x3 κουτί. Στη δεύτερη περίπτωση είναι πιο δύσκολο να εκφραστούν οι κανόνες. Πρέπει να εγγυηθούμε ότι το πλήθος στοιχείων του κάθε συνόλου που αναπαριστά τον αριθμό είναι 9, ότι όλα αυτά τα σύνολα είναι διαφορετικά μεταξύ τους και ότι κάθε αριθμός έχει ακριβώς μια τιμή σε κάθε γραμμή και κάθε στήλη και ακριβώς μια τιμή σε κάθε 3x3 κουτί Το πρόβλημα των Ν-βασιλισσών Δεδομένης μιας σκακιέρας μεγέθους Ν, είναι δυνατό να τοποθετήσουμε Ν, βασίλισσες έτσι ώστε καμία βασίλισσα να μη μπορεί να επιτεθεί σε μια άλλη? Πρώτα απ όλα πρέπει να παρατηρήσουμε ότι σε κάθε λύση στο πρόβλημα πρέπει οι βασίλισσες να είναι τοποθετημένες σε διαφορετικές γραμμές και στήλες. Αν θέσουμε x1, x2, x3, xn τη θέση σε μια γραμμή μιας βασίλισσας i, σε μια στήλη i το πρόβλημα των ν-βασιλισσών μπορεί να μοντελοποιηθεί ως ακολούθως: Κάθε βασίλισσα να είναι τοποθετημένη σε μια γραμμή της σκακιέρας Xi {1,2,, } Κανένα ζευγάρι βασιλισσών να μην είναι τοποθετημένο στην ίδια γραμμή:,, Κανένα ζευγάρι βασιλισσών να μην είναι τοποθετημένο στην ίδια διαγώνιο:, : και, : Σαν παράδειγμα της παραπάνω μοντελοποίησης το πρόβλημα των 3-βασιλισσών μπορεί να εκφραστεί με τους παρακάτω περιορισμούς: 12

13 Αυτό το παράδειγμα των 3-βασιλισσών μπορεί να αναπαρασταθεί χρησιμοποιώντας ένα γράφημα περιορισμών. Το γράφημα περιορισμών αυτό φαίνεται στην Εικόνα 3. Χρησιμοποιώντας έναν καθολικό περιορισμό all-different που απλώς δηλώνει ότι όλες οι μεταβλητές σε ένα σύνολο μεταβλητών θα πρέπει να πάρουν διαφορετικές τιμές, οι κανόνες μπορούν να μειωθούν: Κατανομή πόρων στον χρονοπρογραμματισμό Η κατανομή πόρων και ο χρονοπρογραμματισμός είναι δύο από τις γνωστότερες εφαρμογές των προβλημάτων ικανοποίησης περιορισμών. Ένα τυπικό πρόβλημα χρονοπρογραμματισμού είναι ένα πρόβλημα με δεδομένα ένα σύνολο εργασιών και ζητούμενο την κατανομή πόρων σε αυτές. Κάθε εργασία μπορεί να απαιτεί έναν αριθμό πόρων, που περιλαμβάνουν τον χρόνο (κατά τον οποίο αυτές οι εργασίες ολοκληρώνονται), μηχανές, εργαλεία, εργατοώρες, κλπ. Η κατανομή πόρων, ειδικά όταν εμπλέκονται ο χρόνος και κοινοί πόροι, είναι ένα πρόβλημα ικανοποίησης περιορισμών. Κάθε μεταβλητή στο πρόβλημα ικανοποίησης περιορισμών αναπαριστά μια κοινή ανάγκη πόρου. Για παράδειγμα, μια μεταβλητή Χ μπορεί να αναπαριστά την ανάγκη μιας δουλειάς για μια μηχανή. Το πεδίο ορισμού μιας μεταβλητής είναι το σύνολο πιθανών τιμών που μπορεί να πάρει αυτή η μεταβλητή. Το πεδίο ορισμού της Χ στο παραπάνω παράδειγμα μπορεί να είναι στο σύνολο των μηχανών που είναι διαθέσιμες και έχουν τη δυνατότητα να κάνουν τη δουλειά, π.χ. {μηχανή 203, μηχανή 208, μηχανή 209}. 13

14 Εικόνα 3 Η ανάθεση πόρων σε μια μεταβλητή αναπαριστά την δέσμευση ενός πόρου από μια εργασία. Η ανάθεση πόρων συνήθως περιορίζεται με πολλούς τρόπους. Για παράδειγμα ανάμεσα σε Μ μηχανές διαθέσιμες σε μια εργασία J, μόνο οι μηχανές P,Q και R έχουν τη δυνατότητα να ανταπεξέλθουν στην εργασία J. Πολύ συχνά, μια μηχανή μπορεί να επεξεργαστεί μόνο μια εργασία τη φορά. Άλλες φορές, αν η δουλειά J πρόκειται να χρησιμοποιήσει τη μηχανή Μ, τότε θα πρέπει να της ανατεθούν συγκεκριμένα εργαλεία και ανθρώπινο προσωπικό. Ο στόχος είναι να κατανεμηθεί σε κάθε μεταβλητή μια μεταβλητή έτσι ώστε όλοι οι περιορισμοί να ικανοποιούνται Επίλυση προβλημάτων Ικανοποίησης περιορισμών Αναζήτηση με υπαναχώρηση Ένας αλγόριθμος υπαναχώρησης είναι ένας βασικός, συστηματικός αλγόριθμος αναζήτησης για την επίλυση προβλημάτων ικανοποίησης περιορισμών. Πρόκειται για μια αναζήτηση πρώτα κατά βάθος που επιλέγει τιμές για μια μόνο μεταβλητή τη φορά και υπαναχωρεί όταν μια μεταβλητή δεν έχει άλλες νόμιμες τιμές που μπορούν να τις ανατεθούν. Κατασκευάζει μια ανάθεση τιμών σε ένα υποσύνολο μεταβλητών που ικανοποιεί όλους τους περιορισμούς στις μεταβλητές του συνόλου αυτού. Αυτή η ανάθεση ονομάζεται μερική ανάθεση. Μια μερική ανάθεση επεκτείνεται προσθέτοντας νέες μεταβλητές μια προς μια, μέχρι να γίνει μια ολοκληρωμένη λύση. Όταν για μια μεταβλητή, καμία τιμή δεν ικανοποιεί όλους τους περιορισμούς με τη μερική λύση, η τιμή για την πιο πρόσφατα προστιθέμενη μεταβλητή στη μερική λύση αλλάζει. Αυτή η ενέργεια ονομάζεται υπαναχώρηση (backtracking)[12]. Παρόλο που η αναζήτηση με υπαναχώρηση είναι ένας απλός αλγόριθμος αναζήτησης πρώτα κατά βάθος, πολλά ζητήματα πρέπει να ληφθούν υπόψη για τη βελτίωση της αποτελεσματικότητας. Για παράδειγμα, η σειρά της επιλογής μεταβλητών και τιμών επηρεάζει ιδιαίτερα την αποτελεσματικότητα των αλγορίθμων. Η αναζήτηση με υπαναχώρηση έχει μια δεδομένη πολιτική για το τι να κάνει όταν ένας κλάδος αναζήτησης αποτύχει: υποχωρεί στην προηγούμενη μεταβλητή και δοκιμάζει να της 14

15 δώσει διαφορετική τιμή. Αυτό ονομάζεται χρονολογική υπαναχώρηση (chronological backtracking), επειδή επανέρχεται στο πιο πρόσφατο σημείο απόφασης. Μια πιο έξυπνη αντιμετώπιση της υπαναχώρησης είναι να γυρίζουμε κατευθείαν πίσω σε μια από το σύνολο μεταβλητών που προκάλεσαν την αποτυχία. Το σύνολο αυτό ονομάζεται σύνολο συγκρούσεων. Γενικά, το σύνολο συγκρούσεων για μια μεταβλητή Χ είναι το σύνολο των μεταβλητών στις οποίες έχουν προηγουμένως ανατεθεί τιμές και οι οποίες συνδέονται με τη Χ μέσω περιορισμών. Η μέθοδος της υπαναχώρησης με άλμα (backjumping) υποχωρεί στην πιο πρόσφατη μεταβλητή του συνόλου συγκρούσεων. Αυτό μπορεί να υλοποιηθεί εύκολα με τροποποίηση της αναζήτησης με υπαναχώρηση έτσι ώστε να συσσωρεύει το σύνολο συγκρούσεων ενώ ελέγχει για μια νόμιμη τιμή για να την αποδώσει. Αν δε βρει καμία νόμιμη τιμή, θα πρέπει να επιστρέψει το πιο πρόσφατο στοιχείο του συνόλου συγκρούσεων μαζί με την ένδειξη αποτυχίας Πρώιμος έλεγχος Η σειρά επιλογής των μεταβλητών μπορεί να επηρεάσει πολύ την αποτελεσματικότητα του αλγορίθμου. Μια απλή τακτική για την επιλογή της μεταβλητής που θα προστεθεί στη μερική λύση είναι η επιλογή της μεταβλητής που περιέχεται στους περισσότερους περιορισμούς, η απόδοση τιμής στην οποία είναι περισσότερο πιθανό να οδηγήσει σε αδιέξοδο. Αυτός ο ευρετικός μηχανισμός ανήκει στους μηχανισμούς που ακολουθούν την αρχή της πρώτης αποτυχίας (first fail principle), αφού υποδεικνύει ότι η δουλειά που είναι πιο πιθανό να αποτύχει πρέπει να πραγματοποιηθεί πρώτη. Το ζήτημα που γεννιέται είναι πως μπορεί να μετρηθεί το κατά πόσο μια μεταβλητή μπορεί να οδηγήσει σε αδιέξοδο, δηλαδή πόσο περιορισμένη είναι. Ένας απλός τρόπος για να εκτιμήσουμε πόσο περιορισμένη είναι μια συγκεκριμένη μεταβλητή είναι η χρήση του αριθμού των μεταβλητών που σχετίζονται μέσω περιορισμού με τη μεταβλητή. Έτσι στο γράφο περιορισμών, μπορούμε να χρησιμοποιήσουμε τον αριθμό των ακμών που συνδέονται σε ένα κόμβο (μια μεταβλητή). Κατά συνέπεια, όσο μεγαλύτερος είναι ο αριθμός των ακμών, τόσο πιο πολύ περιορισμένη είναι η μεταβλητή. Ωστόσο, αυτή η μέτρηση είναι κάπως αδύναμη αφού είναι στατική, δηλαδή δεν λαμβάνει υπόψη την τωρινή κατάσταση της μερικής λύσης. Ένας καλύτερος τρόπος είναι η μέτρηση των ακμών που συνδέονται στους κόμβους που δεν έχουν ακόμα συμπεριληφθεί στη μερική λύση. Αυτή η μέτρηση είναι δυναμική, αφού το νούμερο αλλάζει δυναμικά κατά τη διάρκεια κάθε διεργασίας και μας δείχνει πόσο περιορισμένη είναι μια μεταβλητή σε σχέση με το μελλοντικό υποπρόβλημα. Μια εναλλακτική μέθοδος είναι η μέτρηση του αριθμού των τιμών που είναι συνεπείς με τη μερική λύση. Αυτή η μέθοδος μπορεί να χρησιμοποιηθεί από τον αλγόριθμο αναζήτησης που ονομάζεται πρώιμος έλεγχος (forward checking). Πιο αναλυτικά, όταν ανατίθεται στην τρέχουσα μεταβλητή μια τιμή, ο πρώιμος έλεγχος ψάχνει για κάθε μελλοντική μεταβλητή Υ (στην οποία δεν έχει ανατεθεί ακόμα τιμή) και η οποία συνδέεται με κάποιο περιορισμό με τη Χ και διαγράφει από το πεδίο τιμών της Υ κάθε τιμή που βρίσκεται σε ασυνέπεια με την επιλεγόμενη τιμή της Χ. Έτσι μπορεί εύκολα σε κάθε βήμα ο αλγόριθμος να επιλέξει τη μεταβλητή με το μικρότερο τρέχων πεδίο τιμών. Ο τρόπος με τον οποίο οι τρέχουσες αποφάσεις για τη μεταβλητή και την επιλογή τιμής για αυτήν αποτρέπουν μέρος της μελλοντικής αναζήτησης είναι η απλούστερη μορφή διάδοσης περιορισμών. Ο πρώιμος έλεγχος διαδίδει το αποτέλεσμα της προσωρινά επιλεγμένης τιμής σε κάθε μια από τις μελλοντικές μεταβλητές με τις οποίες σχετίζεται σε κάποιο περιορισμό. Αν το πεδίο τιμών μιας από αυτές τις μελλοντικές 15

16 μεταβλητές γίνει κενό (όλες οι τιμές βρίσκονται σε ασυνέπεια) τότε η προσωρινά επιλεγμένη τιμή απορρίπτεται και η επόμενη υποψήφια επιλέγεται. Η διαδικασία αυτή ακολουθείται μέχρι την εύρεση λύσης ή την υπόδειξη ότι δεν υπάρχει λύση. Ο πρώιμος έλεγχος ανιχνεύει πολλές ασυνέπειες, αλλά δεν τις ανιχνεύει όλες. Για το σκοπό αυτό εισήχθησαν οι αλγόριθμοι συνέπειας Αλγόριθμοι συνέπειας Διάδοση περιορισμών (constraint propagation) είναι ο γενικός όρος που χρησιμοποιείται για τη διάδοση των επιπτώσεων ενός περιορισμού που ισχύει για μια μεταβλητή σε άλλες μεταβλητές. Η ιδέα της συνέπειας τόξου (arc consistency) παρέχει μια γρήγορη μέθοδο για τη διάδοση περιορισμών που είναι σημαντικά ισχυρότερη από τον πρώιμο έλεγχο. Με τον όρο τόξο εννοούμε ένα προσανατολισμένο τόξο στο γράφημα περιορισμών. Μια μεταβλητή λέμε ότι είναι τοξικά-συνεπής (arc-consistent) με μια άλλη μεταβλητή, αν για κάθε μια από τις αποδεκτές τιμές της είναι συνεπής με μια τουλάχιστον τιμή της δεύτερης μεταβλητής. Ένα πρόβλημα είναι τοξικά-συνεπές όταν κάθε μεταβλητή του είναι τοξικά-συνεπής με κάθε άλλη μεταβλητή. Ο έλεγχος της συνέπειας τόξου μπορεί να εφαρμοστεί είτε ως στάδιο προεπεξεργασίας πριν αρχίσει η διαδικασία της αναζήτησης είτε ως στάδιο διάδοσης (όπως ο πρώιμος έλεγχος) μετά από κάθε ανάθεση τιμής κατά την αναζήτηση (αυτός ο τελευταίος αλγόριθμος καλείται MAC, από το Maintaining Arc Consistency διατήρηση συνέπειας τόξου). Και στις δυο περιπτώσεις, η διαδικασία πρέπει να εφαρμόζεται επανειλημμένα μέχρι να μην απομείνουν άλλες ασυνέπειες. Αυτό συμβαίνει επειδή, όποτε διαγράφεται μια τιμή από το πεδίο ορισμού κάποιας μεταβλητής για να αρθεί μια ασυνέπεια τόξου, μια νέα ασυνέπεια τόξου θα μπορούσε να προκύψει στα τόξα που δείχνουν τη μεταβλητή αυτή. 1.2 Agents Ορισμοί Από την πρώτη φορά που εμφανίστηκε ο όρος agent στην πληροφορική, και συγκεκριμένα στον τομέα της τεχνητής νοημοσύνης, έχουν δοθεί διάφοροι ορισμοί σχετικά με το τι είναι. Μέσα, λοιπόν, από την χρήση του όρου agent μπορούμε να ξεχωρίσουμε σύμφωνα με τους Wooldridge et al. [2] δύο βασικούς ορισμούς. Η πρώτος είναι πιο αφηρημένος ενώ ο δεύτερος είναι πιο ισχυρός. Σύμφωνα με τον πρώτο ορισμό ένας agent είναι ένα software ή (σπανιότερα) hardware σύστημα το οποίο έχει τις παρακάτω ιδιότητες: Αυτονομία: Οι agents δεν χρειάζονται την ανθρώπινη, ή άλλη, παρέμβαση για να λειτουργήσουν. Έχουν μια μορφή ελέγχου στις πράξεις τους και στην εσωτερική τους κατάσταση Κοινωνική Ικανότητα: Οι agents μπορούν να επικοινωνούν με άλλους agents μέσω μιας γλώσσας επικοινωνίας για agents Αντιδραστικότητα: Οι agents αντιλαμβάνονται το περιβάλλον τους (το οποίο μπορεί να είναι ένα user interface, το internet, άλλοι agents ή όλα τα παραπάνω συνδυασμένα) και αντιδρούν κατάλληλα σε όποιες αλλαγές γίνονται σε αυτό. 16

17 Προνοητικότητα: Οι agents δεν αντιδρούν απλά μετά από μια αλλαγή στο περιβάλλον τους αλλά πολλές φορές λαμβάνουν προκαταβολικά κάποιες αποφάσεις οι οποίες στοχεύουν στην επίτευξη του στόχου τους. Εικόνα 4 Ο ισχυρότερος ορισμός του agent μας λέει ότι ένας agent είναι ένα ηλεκτρονικό σύστημα το οποίο εκτός από τις παραπάνω ιδιότητες που αναφέραμε έχει κατασκευαστεί με βάση κάποιες αρχές και κάποια πρότυπα τα οποία απατώνται στους ανθρώπους και γενικά στην ανθρώπινη συμπεριφορά. Είναι συχνό φαινόμενο, για παράδειγμα, να χαρακτηρίζονται κάποιοι agents σύμφωνα με κάποιες πνευματικές έννοιες όπως γνώση, πεποίθηση, πρόθεση ακόμα και υποχρέωση Είδη agents Στον τομέα της τεχνητής νοημοσύνης υπάρχουν διάφοροι τύποι agents, για παράδειγμα: Physical agents: Είναι μια οντότητα η οποία αντιλαμβάνεται μέσω κάποιον αισθητήρων και αντιδρά μέσω κάποιον μηχανισμών αντίδρασης. Temporal agents: Είναι ένας agent ο οποίος χρησιμοποιεί προσωρινά αποθηκευμένη πληροφορία για να δώσει πληροφορίες ή δεδομένα σε κάποιο άλλο πρόγραμμα ή σε κάποιον άνθρωπο και παίρνει δεδομένα μέσα από κάποια προγράμματα. Πέρα όμως από τα παραπάνω γενικά είδη agents μπορούμε να τους ξεχωρίσουμε σε πέντε συγκεκριμένες κατηγορίες ανάλογα με την ικανότητα τους να αντιλαμβάνονται τυχόν αλλαγές στο περιβάλλον τους. Οι πέντε αυτές κατηγορίες είναι οι παρακάτω: 17

18 1.2.3 Εφαρμογές 1. Simple reflex agents: Ο τρόπος λειτουργίας αυτών των agents είναι βασισμένος στην αρχή If condition then action rule. Αυτού του τύπου οι agents έχουν επιτυχία μόνο όταν έχουμε πλήρη αντίληψη του περιβάλλοντος. 2. Model based reflex agents: Οι agents αυτοί μπορούν να διαχειριστούν και περιβάλλοντα στα οποία δεν έχουμε πλήρη εποπτεία. Χρειάζεται όμως να έχουν αποθηκευμένο κάποιο μοντέλο το οποίο θα περιγράφει το κομμάτι αυτό του περιβάλλοντος που δεν γνωρίζουμε και επίσης θα πρέπει να γνωρίζει πως συμπεριφέρεται και λειτουργεί ο κόσμος. 3. Goal based agents: Αυτοί οι agents είναι στην ουσία ίδιοι με τους model based agents με την μόνη διαφορά ότι έχουν αποθηκευμένη μια κατάσταση στόχο την οποία θα επιλέξουν μέσα από πολλές δυνατές καταστάσεις. 4. Utility based agents: Ένας goal agent απλά αναγνωρίζει μια κατάσταση ως επιθυμητή ή μη-επιθυμητή. Αντίθετα ένας utility agent έχει μια συνάρτηση αξιολόγησης μια λύσης η οποία καθορίζει πόσο επιθυμητή ή όχι είναι μια λύση. 5. Learning Agents (Εικόνα 4): Αυτού του τύπου οι agents δρουν αυτόνομα και έχουν την ικανότητα να προσαρμόζονται και να μαθαίνουν μέσα από συνεχώς μεταβαλλόμενες καταστάσεις. Οι εφαρμογές των agents είναι πολλές και σε καθημερινό επίπεδο. Μερικές ενδεικτικές εφαρμογές είναι οι παρακάτω: Buyer agents: Αυτού του είδους το λογισμικό χρησιμοποιείται κατά την περιήγηση στο διαδίκτυο σε ιστότοπους όπως για παράδειγμα στο ebay. User agents: Είναι λογισμικό το οποίο εξυπηρετεί βασικές ανάγκες των χρηστών όπως για παράδειγμα ταξινόμηση των βάση κάποιων προτιμήσεων του χρήστη κ.α. Data mining agents: Αυτού του τύπου οι agents βρίσκουν επιθυμητές πληροφορίες μέσα από ένα μεγάλο σύνολο πληροφοριών. Ο χρήστης μπορεί να ταξινομήσει αυτές τις πληροφορίες και να βρει οτιδήποτε ψάχνει Το πολυπρακτορικό σύστημα Για να υλοποιηθούν κάποιες μέθοδοι τοπικής αναζήτησης, θα πρέπει πρώτα να υλοποιηθεί ένα σύστημα στο οποίο θα υπάρχουν πράκτορες και θα προσπαθούν να λύσουν ένα κατανεμημένο πρόβλημα ικανοποίησης περιορισμών, χρησιμοποιώντας τις μεθόδους αυτές. Πράκτορας είναι οτιδήποτε μπορεί να αντιληφθεί το περιβάλλον του με αισθητήρες και να διαδράσει με αυτό με ενέργειες. Ο γενικός αυτός ορισμός περιλαμβάνει ανθρώπινους πράκτορες, ρομπότ ή πράκτορες λογισμικού. Οι πράκτορες είναι αυτόνομοι. Συνήθως δρουν με άλλους πράκτορες με πολλούς διαφορετικούς τρόπους. Ένα σύστημα που αποτελείται από ένα σύνολο πρακτόρων που αλληλεπιδρούν μεταξύ τους, ονομάζεται πολυπρακτορικό σύστημα. Τα πολυπρακτορικά συστήματα είναι το κύριο θέμα της κατανεμημένης τεχνητής νοημοσύνης. Όταν σχεδιάζονται πολυπρακτορικά συστήματα πρέπει να λαμβάνονται υπόψη τα ακόλουθα χαρακτηριστικά: 18

19 Ο σχεδιασμός των πρακτόρων μπορεί να διαφοροποιείται ως προς το υλικό ή το λογισμικό. Καλούμε ετερογενείς τους πράκτορες που διαφέρουν μεταξύ τους και ομογενείς τους πράκτορες που είναι σχεδιασμένοι με τον ίδιο τρόπο και έχουν εκ των προτέρων τις ίδιες δυνατότητες και χαρακτηριστικά. Το περιβάλλον των πρακτόρων μπορεί να είναι στατικό ή δυναμικό. Οι περισσότερες τεχνικές για ατομικούς πράκτορες στην τεχνητή νοημοσύνη έχουν αναπτυχθεί για στατικά περιβάλλοντα γιατί είναι ευκολότερα στο χειρισμό. Σε ένα πολυπρακτορικό σύστημα, η απλή ύπαρξη πολλαπλών πρακτόρων κάνει το περιβάλλον να φαίνεται δυναμικό από την άποψη του πράκτορα. Η συλλογική πληροφορία που φτάνει στους αισθητήρες των πρακτόρων σε ένα πολυπρακτορικό σύστημα είναι συνήθως κατανεμημένη: οι πράκτορες μπορεί να παρατηρούν δεδομένα που διαφέρουν χωρικά, χρονικά ή ακόμα και σημασιολογικά. Αυτό κάνει την αντίληψη του κόσμου μερικώς παρατηρήσιμη σε κάθε πράκτορα, κάτι που έχει διάφορες συνέπειες στη λήψη αποφάσεων από τους πράκτορες. Αντίθετα με τα μονοπρακτορικά συστήματα, ο έλεγχος σε ένα πολυπρακτορικό σύστημα είναι συνήθως κατανεμημένος (αποκεντρωμένος). Αυτό σημαίνει ότι δεν υπάρχει κάποια κεντρική διεργασία που συλλέγει τις πληροφορίες από κάθε πράκτορα και αποφασίζει ποια πράξη θα κάνει ένας πράκτορας. Η διαδικασία λήψης αποφάσεων σε κάθε πράκτορα έγκειται σε μεγάλο βαθμό στον ίδιο τον πράκτορα. Ωστόσο σε κάποια πολυπρακτορικά συστήματα χρειάζονται μηχανισμοί συντονισμού για να διασφαλίσουν ότι οι ατομικές αποφάσεις των πρακτόρων έχουν σαν αποτέλεσμα καλές από κοινού αποφάσεις για την ομάδα. Σε μονοπρακτορικά συστήματα, υποθέτουμε συνήθως ότι ο πράκτορας γνωρίζει τις πράξεις του, αλλά δε γνωρίζει απαραίτητα πως επηρεάζεται ο κόσμος από τις πράξεις του. Σε ένα πολυπρακτορικό σύστημα, τα επίπεδα της γνώσης κάθε πράκτορα για την τρέχουσα κατάσταση του κόσμου μπορεί να διαφέρουν σημαντικά. Γενικά, σε ένα πολυπρακτορικό σύστημα, κάθε πράκτορας θα πρέπει να λαμβάνει υπόψη τη γνώση και άλλων πρακτόρων όταν λαμβάνει αποφάσεις. Μια σημαντική έννοια είναι αυτή της κοινής γνώσης, σύμφωνα με την οποία όταν κάθε πράκτορας γνωρίζει ένα γεγονός, κάθε πράκτορας γνωρίζει ότι κάθε πράκτορας γνωρίζει το γεγονός. Η διάδραση μεταξύ των πρακτόρων σχετίζεται με ένα είδος επικοινωνίας. Συνήθως αντιλαμβανόμαστε την επικοινωνία σε ένα πολυπρακτορικό σύστημα σαν μια αμφίδρομη διαδικασία, όπου όλοι οι πράκτορες μπορεί να είναι αποστολείς και παραλήπτες μηνυμάτων. Η επικοινωνία μπορεί να χρησιμοποιηθεί σε διάφορες περιπτώσεις, για παράδειγμα, στο συντονισμό μεταξύ συνεργαζόμενων πρακτόρων ή για τη διαπραγμάτευση μεταξύ ατομικών πρακτόρων. Επιπλέον, η επικοινωνία γεννά κάποια θέματα ως προς την επιλογή των πρωτοκόλλων επικοινωνίας, ώστε η ανταλλασσόμενη πληροφορία να φτάσει έγκαιρα με ασφάλεια, και ποια γλώσσα χρειάζεται να μιλούν οι πράκτορες για να αντιλαμβάνονται ο ένας τον άλλο Προβλήματα σε Multi-Agent Systems Η κεντροποιημένη διαχείριση ενός μεγάλου συστήματος με πράκτορες που συνεργάζονται είναι σε γενικές γραμμές ένα δύσκολο πρόβλημα. Ο υπολογισμός μιας αποτελεσματικής διαδικασίας διαχείρισης για πράκτορες όπου ο κάθε ένας έχει μια διαφορετική 19

20 εικόνα της αρχικής κατάστασης, ειδικά στην περίπτωση που οι πράξεις ενός πράκτορα επηρεάζουν τις πράξεις του άλλου, είναι πολύ δύσκολη ακόμα και αν οι πράξεις του κάθε πράκτορα είναι ανεξάρτητες από τις πράξεις των υπολοίπων. Η αποκεντρωμένη διαχείριση του παραπάνω συστήματος είναι ακόμα ποιο δύσκολη στην περίπτωση που οι πράκτορες πρέπει να δρουν συντονισμένα. Έτσι στην περίπτωση της συντονισμένης δράσης πρακτόρων πρέπει να διαμορφωθούν κάποιες ομάδες οι οποίες θα καταφέρουν να πετύχουν την εκτέλεση κάποιων tasks. Η δράση σε ομάδες όμως απαιτεί την σωστή κατανομή των πόρων αλλά και των task που σκοπεύει να λύσει η κάθε ομάδα(task and resource allocation problem), επίσης κάθε ομάδα πρέπει να καθοδηγηθεί (coordination problem) βάση κάποιων προγραμματισμένων διαδικασιών (scheduling problem) και όλα αυτά ενώ παράλληλα υπάρχει σεβασμός στα τοπικά, αλλά και σε άλλα, constraint που έχει ο κάθε agent Task and resource allocation problem Όπως αναφέραμε και παραπάνω σε ένα πολυπρακτορικό σύστημα μπορεί μερικοί agents να χρειαστεί να συνεργαστούν για να επιτύχουν την επίτευξη ενός task. Δοθέντος ενός πλήθους από tasks, τα οποία πρέπει να έρθουν εις πέρας, θεωρούμε ότι κάθε ένα από αυτά τα task έχει ανατεθεί σε ένα πλήθος από agents για να το λύσουν. Έτσι λοιπόν με βάση την κατάσταση που περιγράψαμε παρατηρούνται, συνήθως, μεταξύ των agents περιπτώσεις ανταγωνισμού τόσο στα resources όσο και στην σειρά με την οποία θα εκτελεστούν τα διάφορα tasks. Τα tasks είναι ανάγκη να εκτελούνται από περισσότερους του ενός agent είτε γιατί το task αυτό δεν μπορεί να εκτελεστεί μόνο από έναν agent είτε γιατί η εκτέλεση του από έναν μόνο agent δεν είναι αποτελεσματική. Κάθε group από agents είναι πιθανό να έχει διαφορετικές ικανότητες επεξεργασίας κάποιου task λόγο των ιδιαίτερων ικανοτήτων των μελών που το απαρτίζουν. Έτσι λοιπόν κάθε task allocation που γίνεται πρέπει να γίνεται λαμβάνοντας υπόψη τις ιδιαιτερότητες των agents και των διαφόρων group. Ο σκοπός του task και του resource allocation είναι να μεγιστοποιήσει το όφελος του συστήματος συνολικά λαμβάνοντας υπόψη τις δυνατότητες επεξεργασίας που έχει ο κάθε agent. Έτσι λοιπόν υπάρχουν διάφοροι αλγόριθμοι οι οποίοι καταφέρνουν να κάνουν κατανεμημένο task allocation στους agents χωρίς να χρειάζεται μια κεντρική «αρχή» Coordination and Planning Problem Γενικότερα ένα πρόβλημα σχεδιασμού είναι μια διαδικασία κατά την οποία αναζητούμε σχέδιο Δ τέτοιο ώστε αν του δώσουμε μια αρχική κατάσταση Ι και μια γνώση Κ για τον τρόπο εκτέλεσης των πράξεων τότε ο στόχος G θα βρεθεί I,K,Δ G. Σε ένα πολυπρακτορικό σύστημα υπάρχουν διάφορες μορφές σχεδιασμού ανάλογα με το είδος του προβλήματος που έχουμε να κάνουμε. Συγκεκριμένα έχουμε: Κεντροποιημένος σχεδιασμός για κατανεμημένο πρόβλημα o Ένας agent αναθέτει tasks στους υπόλοιπους Κατανεμημένος σχεδιασμός για κεντροποιημένο πρόβλημα o Μια ξεχωριστή διαδικασία κάνει τον σχεδιασμό για ολόκληρο το μηχάνημα Κατανεμημένος σχεδιασμός για κατανεμημένο πρόβλημα o Agents με ιδιωτικούς στόχους 20

21 o o Τα σχέδια των agents μπορεί να αλληλεπιδρούν μεταξύ τους Multi-agent planning = Planning + Coordination Έτσι λοιπόν για να επιλύσουμε το πρόβλημα το οποίο συζητάμε πρέπει να γίνει μια ακολουθία βημάτων την οποία την βλέπουμε και σχηματικά στην εικόνα 5. Τα βήματα αυτά είναι τα εξής: Καθορισμός του τελικού στόχου Ανάθεση υπό-στόχων στους agents Coordination πριν τον σχεδιασμό Σχεδιασμός από κάθε agent ξεχωριστά Coordination μετά τον σχεδιασμό Εκτέλεση σχεδίου Τέλος αξίζει να αναφερθεί ότι για να λύσουμε ένα πρόβλημα coordination πρέπει πρώτα να έχουμε λύσει το task and resource allocation πρόβλημα που αναφέραμε στην προηγούμενη ενότητα Scheduling Problem Εικόνα 5 21

22 To scheduling problem, όπως εμφανίζεται και στην εργασία των Franzin et al. [1], συνίσταται στο γεγονός ότι ψάχνουμε να βρούμε μια κατάλληλη ανάθεση των επιμέρους tasks στους agents έτσι ώστε να ελαττώσουμε όσο γίνετε τον συνολικό χρόνο εκτέλεσης μέχρι την λύση του προβλήματος μας. Προβλήματα αυτού του είδους είναι κοινά στον τομέα της τεχνητής νοημοσύνης, χαρακτηριστικό παράδειγμα είναι το meeting scheduling problem και το πρόβλημα του περιοδεύοντος πωλητή. Για τα παραπάνω προβλήματα που αναφέραμε έχουν προταθεί διάφοροι τρόποι επίλυσης τους. Στην παρούσα εργασία θα μας απασχολήσει το distributed constraint satisfaction/ optimization. 2 Τοπική αναζήτηση 2.1 Τοπική αναζήτηση για προβλήματα ικανοποίησης περιορισμών Γενικά για την τοπική αναζήτηση Οι αλγόριθμοι πληροφορημένης αναζήτησης, όπως και οι αλγόριθμοι οπισθοδρόμησης σε προβλήματα επίλυσης, περιορισμών γενικά είναι σχεδιασμένοι να εξερευνούν τους χώρους αναζήτησης συστηματικά. Αυτή τη συστηματικότητα την επιτυγχάνουν διατηρώντας μια ή περισσότερες διαδρομές στη μνήμη και καταγράφοντας ποιες εναλλακτικές περιπτώσεις έχουν εξερευνηθεί σε κάθε σημείο της διαδρομής και ποιες όχι. Όταν βρεθεί η κατάσταση στόχου, η διαδρομή προς αυτή την κατάσταση στόχου είναι η λύση του προβλήματος. Σε αρκετά προβλήματα, όμως, η διαδρομή προς τον στόχο δεν έχει σημασία. Εκείνο που έχει σημασία είναι μια πλήρης ανάθεση και όχι η σειρά με την οποία προστίθενται τιμές σε μια μερική ανάθεση. Τέτοιου είδους προβλήματα βρίσκουν αρκετές εφαρμογές, όπως στη σχεδίαση ολοκληρωμένων κυκλωμάτων, τη διάταξη εργοστασιακού χώρου παραγωγής (factory floor layout), το χρονοπρογραμματισμό εργασιών παραγωγής (job-shop scheduling), τον αυτόματο προγραμματισμό, τη βελτιστοποίηση τηλεπικοινωνιακών δικτύων, τη δρομολόγηση της οδικής κυκλοφορίας και τη διαχείριση χαρτοφυλακίων. Οι αλγόριθμοι τοπικής αναζήτησης (local search) είναι μια κλάση αλγορίθμων που λειτουργούν χρησιμοποιώντας μόνο μια τρέχουσα κατάσταση (αντί για πολλές διαδρομές) και γενικά μετακινούνται μόνο σε γειτονικές της καταστάσεις, χωρίς να διατηρούν τις διαδρομές που ακολουθούν στη μνήμη. Αν και οι αλγόριθμοι τοπικής αναζήτησης δεν είναι συστηματικοί, έχουν δύο σημαντικά πλεονεκτήματα: Χρησιμοποιούν πολύ λίγη μνήμη συνήθως μια σταθερή ποσότητα και Μπορούν συχνά να βρίσκουν λογικές λύσεις σε άπειρους (συνεχείς) χώρους καταστάσεων για τους οποίους οι συστηματικοί αλγόριθμοι είναι ακατάλληλοι. 22

23 Για να γίνει κατανοητή η τοπική αναζήτηση είναι, είναι πολύ χρήσιμο να εξεταστεί το τοπίο του χώρου καταστάσεων (state space landscape. Ένα τοπίο έχει «τοποθεσία» (που ορίζεται από την κατάσταση) και «υψόμετρο» (που ορίζεται από την τιμή της ευρετικής συνάρτησης κόστους ή της αντικειμενικής συνάρτησης). Αν το υψόμετρο αντιστοιχεί στο κόστος, τότε σκοπός είναι να βρεθεί μια χαμηλότερη κοιλάδα ένα καθολικό ελάχιστο. Αν το υψόμετρο αντιστοιχεί σε μια αντικειμενική συνάρτηση, τότε ο σκοπός είναι να βρεθεί η ψηλότερη κορυφή δηλαδή ένα καθολικό μέγιστο. Οι αλγόριθμοι τοπικής αναζήτησης εξερευνούν αυτό το τοπίο. Ένας πλήρης (complete) αλγόριθμος τοπικής αναζήτησης βρίσκει πάντα μια κατάσταση στόχου, αν υπάρχει, ενώ ένας βέλτιστος (optimal) αλγόριθμος βρίσκει πάντα ένα καθολικό ελάχιστο ή μέγιστο. Ένας γενικός αλγόριθμος τοπικής αναζήτησης δίνεται στην εικόνα 6. 23

24 Εικόνα 6 Μια συνηθισμένη μέθοδος τοπικής αναζήτησης για CSPs είναι η χρήση της στρατηγικής επαναληπτικής επισκευής (iterative repair). Η βασική ιδέα στην επαναληπτική επισκευή είναι να αρχικοποίηση του αλγορίθμου με μια ανάθεση, η οποία επιλέγεται είτε με ένα ευρετικό μηχανισμό ή απλώς τυχαία. Αυτή η ανάθεση βελτιώνεται τοπικά σε διαδοχικές επαναλήψεις, ανάλογα με κάποια αντίληψη κάποιου βαθμού αξιολόγησης της ανάθεσης. Η επανάληψη σταματά είτε όταν η λύση είναι ικανοποιητική (ικανοποιώντας για παράδειγμα κάποιο αριθμό περιορισμών), ή μετά από κάποιον καθορισμένο αριθμό επαναλήψεων. Η αξιολόγηση μιας ανάθεσης αντικατοπτρίζει το πλήθος των περιορισμών του προβλήματος που αυτή ικανοποιεί. Η συνάρτηση που χρησιμοποιείται για την αξιολόγηση μιας ανάθεσης καλείται συνάρτηση κόστους (cost function), και η αξία μιας συγκεκριμένης ανάθεσης καλείται κόστος (cost) της συνάρτησης. Η συνάρτηση κόστους στην ουσία αντιστοιχίζει μια ανάθεση με μια αριθμητική τιμή. Η πιο προφανής συνάρτηση κόστους είναι η χρήση του πλήθους των παραβιασμένων περιορισμών και ονομάζεται βασική συνάρτηση κόστους (basic cost function). Χρησιμοποιώντας την συνάρτηση κόστους για τη μέτρηση της αξίας των αναθέσεων (θεωρώντας ότι οι χαμηλότερες τιμές αντιστοιχούν σε καλύτερες αναθέσεις), οποιοδήποτε CSP μπορεί να αναπαρασταθεί σαν ένα πρόβλημα ελαχιστοποίησης αυτής της συνάρτησης. Ας σημειωθεί ότι μπορούμε να πούμε αν μια ανάθεση είναι μια λύση στο πρόβλημα ελέγχοντας αν η συνάρτηση κόστους μηδενίζεται, γιατί αυτό σημαίνει ότι δεν παραβιάζεται κανένας περιορισμός. Κατά τη σχεδίαση μιας μεθόδου τοπικής αναζήτησης, χρειάζεται να προσδιοριστεί μια συνάρτηση μετάβασης (transition function). Ο σκοπός της συνάρτησης μετάβασης είναι να δώσει ένα σύνολο αναθέσεων που πρέπει να αξιολογηθούν από την συνάρτηση κόστους, και που κατά συνέπεια είναι υποψήφιες για την νέα ανάθεση στην επόμενη επανάληψη. Η συνάρτηση μετάβασης στην ουσία αντιστοιχίζει κάθε ανάθεση με ένα σύνολο αναθέσεων. Δέχεται σαν είσοδο μια ανάθεση και επιστρέφει μια γειτονιά της, που είναι απλά ένα σύνολο αναθέσεων. Αυτό το σύνολο αναθέσεων αξιολογείται και επιλέγεται μια νέα ανάθεση για να χρησιμοποιηθεί από την αναζήτηση σύμφωνα με μια προτίμηση. Μια συχνά χρησιμοποιούμενη συνάρτηση μετάβασης είναι η βασική συνάρτηση μετάβασης (basic transition function) η οποία για μια δεδομένη ανάθεση επιστρέφει ένα σύνολο αναθέσεων οι οποίες διαφέρουν από την αρχική στην τιμή μιας συγκεκριμένης μεταβλητής που ανήκει στο πεδίο ορισμού της συγκεκριμένης μεταβλητής. 24

25 Η μετάβαση από μια κατάσταση σε μια άλλη σε ένα βήμα επαναληπτικής βελτίωσης σε ένα CSP είναι ουσιαστικά μια επιλογή μιας ανάθεσης χρησιμοποιώντας τη συνάρτηση μετάβασης και τη συνάρτηση κόστους. Η επιλογή αυτή μπορεί να γίνει με δυο τρόπους: είτε με μια άπληστη στρατηγική (greedy strategy), είτε με μια στρατηγική κατάβασης (descent strategy). Στην άπληστη στρατηγική επιλέγεται μια ανάθεση που δίνει τη μέγιστη βελτίωση από την τρέχουσα ανάθεση. Αν πολλαπλές αναθέσεις δίνουν το ίδιο χαμηλό κόστος, έχουμε πολλαπλές επιλογές, ωστόσο ο επιλεγμένος τρόπος αποφυγής τέτοιων καταστάσεων μπορεί να έχει επίπτωση στην επίδοση της αναζήτησης. Μια συνηθισμένη επιλογή είναι να επιλέγεται μια προκαθορισμένη σειρά προτίμησης, όπως η επιλογή μιας μεταβλητής με το μικρότερο δείκτη. Μια άλλη συνηθισμένη επιλογή είναι απλά να επιλέγεται μια καλύτερη υποψήφια μεταβλητή τυχαία. Με την στρατηγική κατάβασης, διαλέγεται η πρώτη μεταβλητή με οποιαδήποτε σειρά που δίνει κάποια βελτίωση, οποιαδήποτε και αν είναι αυτή. Αν δεν έχει βρεθεί καμία βελτιωτική ανάθεση στη γειτονιά, τότε βρέθηκε τοπικό βέλτιστο. Μερικές τεχνικές διαχείρισης τέτοιων καταστάσεων περιγράφονται παρακάτω Τοπικά Ελάχιστα και Οροπέδια Εξαιτίας της διακριτής μοντελοποίησης ενός προβλήματος σαν CSP, η τροχιά αναζήτησης όταν χρησιμοποιείται μια τοπική αναζήτηση συχνά δαπανά σημαντικό χρόνο για την αναζήτηση περιοχών όπου δεν είναι εφικτή καμία βελτίωση. Επίσης, αφού η αναζήτηση βασίζεται στην τοπική βελτίωση, η αναζήτηση συχνά κολλάει σε «λεκανοπέδια» που είναι τοπικά βέλτιστα, αλλά δεν αποτελούν λύση στο πρόβλημα. Εικόνα 7 Για να αναφερθούμε στη τοπολογία του χώρου αναζήτησης θα πρέπει πρώτα να ορίσουμε τα χαρακτηριστικά συγκεκριμένων υποσυνόλων του χώρου αναζήτησης. Ένα ιδιαίτερο γνώρισμα ενός τέτοιου υποσυνόλου είναι ότι πρέπει να είναι συνδεδεμένο, δηλαδή, για κάθε ανάθεση στην περιοχή, θα πρέπει να είναι δυνατή η 25

26 μετάβαση σε οποιαδήποτε άλλη ανάθεση χρησιμοποιώντας ένα τοπικό μηχανισμό μετάβασης. Έτσι λοιπόν ορίζεται ως οροπέδιο (plateau) μια περιοχή (ένα σύνολο συνδεδεμένων αναθέσεων) στην οποία ένας αλγόριθμος τοπικής αναζήτησης πιθανότατα να κολλήσει γιατί δεδομένων των συναρτήσεων μετάβασης και κόστους, όλες οι αναθέσεις δίνουν το ίδιο κόστος. Τρία οροπέδια (Τ1, Τ2, Τ3) φαίνονται στην εικόνα 7. Όταν αναφερόμαστε στα οροπέδια σε ένα χώρο αναζήτησης, συχνά ενδιαφερόμαστε στο συγκεκριμένο κόστος των αναθέσεων στο οροπέδιο. Καλούμε επίπεδο (level) του οροπεδίου την τιμή της συνάρτησης κόστους για μια αυθαίρετη ανάθεση στο οροπέδιο. Για να καθορίσουμε περαιτέρω τα ειδικά γνωρίσματα των οροπεδίων, χρειάζεται να ερευνήσουμε τις αναθέσεις που είναι γειτονικές στο οροπέδιο, αλλά δεν είναι οι ίδιες μέλος του οροπεδίου. Ονομάζουμε σύνορο ενός οροπεδίου το σύνολο των αναθέσεων που δεν ανήκουν στο οροπέδιο, αλλά είναι γειτονικές, δεδομένης μιας γειτονικής συνάρτησης, με αναθέσεις που είναι μέσα στο οροπέδιο. Το σύνορο του οροπεδίου χρησιμοποιείται για τον καθορισμό του είδους του οροπεδίου. Για παράδειγμα, ένα οροπέδιο όπου όλες οι αναθέσεις στο σύνορο έχουν υψηλότερο κόστος από το επίπεδο του οροπεδίου είναι ένα ελάχιστο, και θα εμφανιζόταν σε ένα τρισδιάστατο χώρο (με την τρίτη διάσταση να είναι το κόστος) σαν μια πεδιάδα. Δυο ελάχιστα (Τ1,Τ3) φαίνονται στην εικόνα 7. Επομένως, δεδομένης μιας συνάρτησης κόστους, ένα ελάχιστο (minimum) είναι ένα οροπέδιο στο οποίο όλες οι αναθέσεις στο σύνορο του οροπεδίου έχουν υψηλότερο κόστος από το επίπεδο του οροπεδίου. Ένα τοπικό ελάχιστο (local minimum) είναι ένα ελάχιστο στο οποίο υπάρχει ένα άλλο ελάχιστο με μικρότερο επίπεδο από το πρώτο. Στην Εικόνα 7 το Τ1 είναι ένα τοπικό ελάχιστο. Αν ένα ελάχιστο δεν είναι τοπικό, είναι καθολικό ελάχιστο (global minimum). Τα καθολικά ελάχιστα θα πρέπει να είναι εύκολο να προσδιοριστούν. Μια ανάθεση είναι καθολικό ελάχιστο αν το κόστος της είναι μηδενικό, δεδομένου ότι χρησιμοποιείται η βασική συνάρτηση κόστους. Στην Εικόνα 7 το οροπέδιο Τ3 είναι ένα καθολικό ελάχιστο. Ας σημειωθεί ότι είναι δυνατό, ένας χώρος τοπικής αναζήτησης να έχει πολλαπλά καθολικά ελάχιστα. Μια κοιλάδα (bench) είναι ένα οροπέδιο που δεν είναι ελάχιστο. Ο ορισμός αυτός υπονοεί ότι μια κοιλάδα έχει τουλάχιστον μια ανάθεση υψηλότερου κόστους στο σύνορο και ότι ένας διεξοδικός αλγόριθμος αναζήτησης μπορεί να εξέλθει από αυτήν. Στην Εικόνα 7 η Τ2 είναι μια κοιλάδα Διάσχιση οροπεδίων και αποφυγή Η τοπική αναζήτηση έχει χρησιμοποιηθεί σαν μια ευρετική μέθοδος για την επίλυση δύσκολων προβλημάτων ικανοποίησης ή βελτιστοποίησης για αρκετό καιρό. Δυστυχώς, οι πρώτες προσεγγίσεις που χρησιμοποιούσαν τοπική ανάλυση και αναζήτηση, ήταν στενά δεμένες με το συγκεκριμένο πρόβλημα που έλυναν και έτσι οι πιθανότητες επαναχρησιμοποίησης δεν ήταν προφανείς. Ωστόσο, τα τελευταία 15 χρόνια, έχουν αναπτυχθεί διάφορες τεχνικές τοπικής αναζήτησης που χρησιμοποιούνται για την αποφυγή οροπεδίων και τη διάσχισή τους. Αναφέρονται μερικές από αυτές: Οριζόντιες κινήσεις : Μια κίνηση που δεν επηρεάζει το κόστος καλείται οριζόντια κίνηση (flat move). Ο συμβατικός τρόπος διαχείρισης οροπεδίων είναι η επιλογή μιας τυχαίας οριζόντιας κίνησης, ελπίζοντας ότι η σειρά των τυχαίων κινήσεων θα επιτρέψει τελικά στην αναζήτηση να ξεφύγει από το οροπέδιο. 26

27 Τυχαιοποίηση : Είναι γενικά αποδεκτό ότι η τυχαιοποίηση (randomization) συγκεκριμένων παραμέτρων μπορεί να βοηθήσει τις διαδικασίες τοπικής αναζήτησης να ξεφύγουν από τοπικά ελάχιστα. Χαρακτηριστικές περιπτώσεις αυτής της τεχνικής είναι οι αλγόριθμοι οι οποίοι μετά από ορισμένο αριθμό βημάτων κάνουν είτε Random Restarts είτε Random Walk. Εξαντλητική αναζήτηση οροπεδίων : Άλλη μια προσέγγιση στην αποφυγή οροπεδίων είναι μια ολοκληρωμένη εξερεύνηση του οροπεδίου (exhaustive plateau search). Έτσι, μπορούμε να ανακαλύψουμε αν το οροπέδιο είναι μια κοιλάδα και αν μπορεί να αποφευχθεί. Αυτό επίσης σημαίνει ότι είναι εγγυημένη η διαφυγή από όλες τις κοιλάδες. Απαγορευμένη αναζήτηση : Η στρατηγική της απαγορευμένης αναζήτησης (tabu search) κρατάει μια λίστα με τις αναθέσεις που έχουν ανατεθεί στο παρελθόν για να διασφαλίσει ότι δεν θα επισκεφτεί την ίδια ανάθεση ξανά. Όταν συναντά ένα τοπικό ελάχιστο, η αναζήτηση θα το αποφύγει επιλέγοντας την καλύτερη εναλλακτική λύση στο ελάχιστο. Παρόλα αυτά συνήθως δεν είναι πρακτικό να αποθηκεύονται όλες οι αναθέσεις που έχουν επισκεφτεί, καθώς η λίστα μπορεί να γίνει μεγάλη και δύσκολο να διασχιστεί. Γι αυτό κρατείται συνήθως μια λίστα με τις πιο πρόσφατες κινήσεις που έγιναν στην αναζήτηση. Δυναμικό ζύγισμα : Το δυναμικό ζύγισμα (dynamic weighting) μπορεί να χρησιμοποιηθεί μαζί με απαγορευμένη αναζήτηση. Στο δυναμικό ζύγισμα στη συνάρτηση κόστους εισάγεται ένα ειδικό βάρος για κάθε περιορισμό. Γενικά έχουν προταθεί και η στατική ανάθεση των βαρών πριν το πρόβλημα και η δυναμική ενημέρωση των βαρών κατά την αναζήτηση, αλλά η δυναμική ενημέρωση των βαρών φαίνεται να έχει καλύτερη απόδοση Τοπική αναζήτηση στα προβλήματα ικανοποίησης περιορισμών Οι αλγόριθμοι τοπικής αναζήτησης όπως έγινε αντιληπτό, αποδεικνύονται πολύ αποτελεσματικοί για την επίλυση πολλών προβλημάτων ικανοποίησης περιορισμών. Χρησιμοποιούν μια διατύπωση με πλήρεις καταστάσεις: Η αρχική κατάσταση αναθέτει τιμή σε κάθε μεταβλητή και η συνάρτηση διαδόχων συνήθως αναλαμβάνει να αλλάζει την τιμή μιας-μιας μεταβλητής. Η τοπική αναζήτηση μπορεί εύκολα να επεκταθεί στα προβλήματα ικανοποίησης περιορισμών και με αντικειμενικές συναρτήσεις (συναρτήσεις κόστους). Στην περίπτωση αυτή, μπορούν να εφαρμόζονται γνωστές τεχνικές όπως η αναρρίχηση λόφων και η προσομοιωμένη ανόπτηση για να βελτιστοποιηθεί η αντικειμενική συνάρτηση. Για την επιλογή μιας νέας τιμής για μια μεταβλητή, ο πιο προφανής ευρετικός μηχανισμός είναι να επιλέγεται η τιμή που δίνει τον ελάχιστο αριθμό παραβιασμένων περιορισμών (συγκρούσεων) με άλλες μεταβλητές, δηλαδή με τον ευρετικό μηχανισμό ελάχιστων συγκρούσεων (min-conflicts). Ο αλγόριθμος παρουσιάζεται στην εικόνα 8. 27

28 Εικόνα 8 Η μέθοδος των ελάχιστων συγκρούσεων είναι αρκετά αποτελεσματική για πολλά προβλήματα ικανοποίησης περιορισμών, ιδιαίτερα όταν της δοθεί μια λογική αρχική κατάσταση. Αυτό που αξίζει να σημειωθεί είναι ότι ο χρόνος εκτέλεσης της μεθόδου των ελάχιστων συγκρούσεων είναι σχεδόν ανεξάρτητος από το μέγεθος του προβλήματος, αφού επιλύει τεράστια προβλήματα σε μερικές δεκάδες βήματα κατά μέσο όρο. Αυτή η σημαντική παρατήρηση αποτέλεσε το ερέθισμα για πολύ μεγάλη ερευνητική προσπάθεια τη δεκαετία του 1990 πάνω στην τοπική αναζήτηση και τη διάκριση μεταξύ εύκολων και δύσκολων προβλημάτων. Η μέθοδος των ελάχιστων συγκρούσεων είναι κατάλληλη για δύσκολα προβλήματα και για εύκολα προβλήματα. Ο αλγόριθμος ελάχιστων συγκρούσεων για την επίλυση προβλημάτων ικανοποίησης περιορισμών με τοπική αναζήτηση. Η αρχική κατάσταση μπορεί να επιλέγεται τυχαία ή με μια διαδικασία άπληστης ανάθεσης τιμών που επιλέγει μια τιμή ελάχιστων συγκρούσεων για την κάθε μεταβλητή στη σειρά. Η συνάρτηση CONFLICTS καταμετρά τον αριθμό των περιορισμών που παραβιάζονται από μια συγκεκριμένη τιμή, με δεδομένη την υπόλοιπη τρέχουσα ανάθεση τιμών. Το VARIABLES είναι το σύνολο των μεταβλητών του CSP. Άλλο πλεονέκτημα της τοπικής αναζήτησης είναι ότι μπορεί να χρησιμοποιείται σε online περιβάλλον όπου το πρόβλημα αλλάζει. Αυτό είναι ιδιαίτερα σημαντικό στα προβλήματα χρονοπρογραμματισμού. Ένας εβδομαδιαίος χρονοπρογραμματισμός αεροπορικών πτήσεων μπορεί να περιλαμβάνει χιλιάδες πτήσεις και δεκάδες τοποθετήσεις προσωπικού, αλλά η κακοκαιρία σε ένα αεροδρόμιο μπορεί να κάνει το χρονοπρογραμματισμό ανέφικτο. Θα θέλαμε να επισκευάσουμε το χρονοπρογραμματισμό με έναν ελάχιστο αριθμό αλλαγών. Αυτό μπορεί να γίνει εύκολα με έναν αλγόριθμο τοπικής αναζήτησης που ξεκινά από το τρέχον χρονοπρόγραμμα. Μια αναζήτηση με υπαναχώρηση με το νέο σύνολο περιορισμών απαιτεί συνήθως πολύ περισσότερο χρόνο και θα μπορούσε να βρει μια λύση με πολλές αλλαγές σε σχέση με το τρέχον χρονοπρόγραμμα. 2.2 Κατανεμημένα προβλήματα ικανοποίησης περιορισμών Ένα κατανεμημένο πρόβλημα ικανοποίησης περιορισμών είναι ένα πρόβλημα ικανοποίησης περιορισμών στο οποίο οι μεταβλητές και οι περιορισμοί κατανέμονται σε πράκτορες. Η εύρεση μιας τιμής για τις μεταβλητές που ικανοποιεί τους περιορισμούς μεταξύ πρακτόρων μπορεί να θεωρηθεί σαν την επίτευξη συντονισμού και συνέπειας μεταξύ των πρακτόρων. Η επίτευξη συντονισμού και συνέπειας είναι ένα από τα σημαντικότερα ζητήματα έρευνας στα πολύ-πρακτορικά συστήματα. 28

29 Συνεπώς, οι τεχνικές κατανεμημένης ικανοποίησης περιορισμών μπορούν να θεωρηθούν σαν μια σημαντική υποδομή για την συνεργασία. Διάφορα προβλήματα στα πολυπρακτορικά συστήματα μπορούν να αναπαρασταθούν σαν κατανεμημένα CSPs και να επιλυθούν με μια από τις μεθόδους που έχουν αναπτυχθεί για το σκοπό αυτό Ορισμοί Σύμφωνα με τους Yokoo et al.[11] ένα Κατανεμημένο Πρόβλημα Ικανοποίησης Περιορισμών (distributed CSP dcsp) είναι ένα πρόβλημα ικανοποίησης περιορισμών στο οποίο οι μεταβλητές και οι περιορισμοί είναι κατανεμημένες ανάμεσα σε πράκτορες. Υποθέτουμε το ακόλουθο μοντέλο επικοινωνίας. Οι πράκτορες επικοινωνούν μεταξύ τους με την ανταλλαγή μηνυμάτων. Ένας πράκτορας μπορεί να στέλνει μηνύματα σε άλλους πράκτορες, αν γνωρίζει τις διευθύνσεις ή τους προσδιοριστές των πρακτόρων. Η καθυστέρηση της παράδοσης των μηνυμάτων είναι άγνωστη, αλλά πεπερασμένη. Για τη μετάδοση μεταξύ οποιουδήποτε ζευγαριού πρακτόρων, τα μηνύματα λαμβάνονται στη σειρά με την οποία στάλθηκαν. Πρέπει να τονιστεί ότι αυτό στο μοντέλο δεν σημαίνει απαραίτητα ότι το φυσικό δίκτυο επικοινωνίας πρέπει να είναι πλήρως συνδεδεμένο (δηλαδή ένας πλήρης γράφος). Αντίθετα με τις περισσότερες μελέτες παράλληλων/κατανεμημένων αλγορίθμων, στις οποίες η τοπολογία του φυσικού επικοινωνιακού δικτύου παίζει ένα σημαντικό ρόλο, υποθέτουμε την ύπαρξη μιας αξιόπιστης επικοινωνιακής υποδομής ανάμεσα στους πράκτορες και δεν μας απασχολεί η υλοποίηση του φυσικού δικτύου επικοινωνίας. Αυτό γίνεται γιατί το κύριο μέλημα μας είναι η συνεργασία ανάμεσα στους ευφυείς πράκτορες αντί η επίλυση CSPs με κάποιες πολυεπεξεργαστικές αρχιτεκτονικές. Στο μοντέλο που προτείνεται σαν ορισμός ενός κατανεμημένου προβλήματος ικανοποίησης περιορισμών κάθε πράκτορας έχει διάφορους περιορισμούς, που διακρίνονται σε ενδο-πρακτορικούς και δια-πρακτορικούς. Ενδο-πρακτορικοί περιορισμοί (Intra-Agent Constraints) είναι οι περιορισμοί που αφορούν τις μεταβλητές μόνο ενός πράκτορα και για την ικανοποίηση των οποίων είναι αποκλειστικά υπεύθυνος. Δια-πρακτορικοί περιορισμοί (Inter-Agent Constraints) είναι οι περιορισμοί που αφορούν τις μεταβλητές περισσοτέρων του ενός πρακτόρων και για την ικανοποίηση των οποίων απαιτείται συντονισμός και επικοινωνία μεταξύ τους. Επίσης υπάρχουν και διάφορες μεταβλητές, οι οποίες διακρίνονται σε ιδιωτικές και δημόσιες. Ιδιωτικές (private) είναι οι μεταβλητές που είναι ορατές μόνο στον πράκτορα-ιδιοκτήτη τους και δεν είναι μέρος κανενός δια-πρακτορικού περιορισμού. Δημόσιες (public) είναι οι μεταβλητές που είναι ορατές σε όσους πράκτορες συμμετέχουν σε έναν δια-πρακτορικό περιορισμό που περιλαμβάνει μια τέτοια μεταβλητή. 29

30 Παρόμοια με τα απλά (κεντρικοποιημένα) προβλήματα ικανοποίησης περιορισμών, είναι χρήσιμο να αντιλαμβανόμαστε τα δυαδικά κατανεμημένα CSPs σαν ένα γράφημα, στο οποίο οι κόμβοι αναπαριστούν τους πράκτορες και τα τόξα αναπαριστούν τους διαπρακτορικούς περιορισμούς. Επίσης κάθε πράκτορας περιέχει με τη σειρά του ένα γράφημα περιορισμών στο οποίο, όπως αναφέρθηκε οι κόμβοι αναπαριστούν τις μεταβλητές του πράκτορα και τα τόξα τους ενδοπρακτορικούς περιορισμούς. Λύση ενός κατανεμημένου προβλήματος ικανοποίησης περιορισμών είναι η εύρεση μιας ανάθεσης για όλες τις μεταβλητές που ικανοποιεί ταυτοχρόνως όλους τους περιορισμούς στο πρόβλημα. Πρέπει να σημειωθεί ότι παρόλο που οι αλγόριθμοι για την επίλυση κατανεμημένων CSPs μοιάζουν με τις παράλληλες/κατανεμημένες επεξεργαστικές μεθόδους για την επίλυση CSPs τα κίνητρα για την έρευνα είναι θεμελιωδώς διαφορετικά. Το κύριο μέλημα στην παράλληλη/κατανεμημένη επεξεργασία είναι η αποδοτικότητα, και μπορούμε να επιλέξουμε οποιοδήποτε τύπο παράλληλης /κατανεμημένης αρχιτεκτονικής υπολογιστών για να επιλύσουμε ένα δεδομένο πρόβλημα αποδοτικά. Αντίθετα, σε ένα κατανεμημένο CSP, υπάρχει ήδη μια κατάσταση όπου η γνώση για το πρόβλημα (δηλαδή οι μεταβλητές και οι περιορισμοί) κατανέμεται ανάμεσα σε πράκτορες. Για παράδειγμα, όταν κάθε πράκτορας ανήκει σε έναν διαφορετικό οργανισμό, υπάρχουν ήδη πολλαπλοί πράκτορες, καθένας από τους οποίους έχει διαφορετική και μερική γνώση για το καθολικό πρόβλημα που πρέπει να λυθεί. Συνεπώς το κύριο ερευνητικό θέμα είναι για το πώς θα φτάσουμε σε λύση από τη δεδομένη κατάσταση. Αν όλη η γνώση για ένα πρόβλημα μπορεί να συγκεντρωθεί σε έναν πράκτορα, αυτός ο πράκτορας θα μπορούσε να λύσει το πρόβλημα μόνος του χρησιμοποιώντας κάποιους κεντρικοποιημένους αλγορίθμους ικανοποίησης περιορισμών. Ωστόσο, η συλλογή όλης της πληροφορίας για ένα πρόβλημα απαιτεί όχι μόνο επικοινωνιακό κόστος, αλλά και κόστος μεταγλώττισης της γνώσης σε ανταλλάξιμη μορφή. Για παράδειγμα, ένας περιορισμός μπορεί να αποθηκεύεται σαν μια περίπλοκη ειδική εσωτερική συνάρτηση μέσα σε ένα πράκτορα. Για να ανταλλαχθεί η γνώση του περιορισμού αυτού σε έναν άλλο πράκτορα, ο οποίος μπορεί να έχει υλοποιηθεί σε μια διαφορετική αρχιτεκτονική, ο πράκτορας θα έπρεπε να μεταφράσει τη γνώση σε μια ανταλλάξιμη μορφή, όπως ένας πίνακας επιτρεπτών (ή μη) συνδυασμών τιμών. Αυτό το κόστος της κεντρικοποίησης όλης της πληροφορίας σε ένα πράκτορα μπορεί να είναι απαγορευτικά υψηλό. Επίσης, σε ορισμένες εφαρμογές, όπως όταν οι πράκτορες δρουν σαν γραμματείς κάποιου ατόμου, η συγκέντρωση όλων των πληροφοριών σε έναν πράκτορα είναι ανεπιθύμητη ή αδύνατη για λόγους ασφάλειας/ιδιωτικότητας. Σε τέτοιες περιπτώσεις, πολλαπλοί πράκτορες πρέπει να λύσουν το πρόβλημα χωρίς την κεντρικοποίηση όλης της πληροφορίας Εφαρμογές Προβλήματα κατανομής 30

31 Η κατανομή εργασιών ή πόρων σε πράκτορες όταν υπάρχουν διαπρακτορικοί περιορισμοί είναι ένα πρόβλημα που μπορεί να μοντελοποιηθεί σαν ένα κατανεμημένο CSP βλέποντας κάθε εργασία ή πόρο σαν μια μεταβλητή και τις πιθανές αναθέσεις σαν τιμές. Για παράδειγμα, το πολύ-επίπεδο διαπραγματευτικό πρωτόκολλο αντιμετωπίζει την περίπτωση στην οποία οι εργασίες δεν είναι ανεξάρτητες και υπάρχουν διάφοροι τρόποι για να πραγματοποιηθεί μια εργασία. Ο στόχος της πολύ-επίπεδης συνεργασίας είναι να βρεθεί ο συνδυασμός των εργασιών έτσι ώστε όλες να εκτελεστούν ταυτόχρονα. Ένα παράδειγμα δικτύου επικοινωνίας που χρησιμοποιείται σε ένα πολύ-επίπεδο διαπραγματευτικό πρωτόκολλο φαίνεται στην εικόνα 9. Εικόνα 9 Αυτό το επικοινωνιακό δίκτυο αποτελείται από πολλαπλές τοποθεσίες (π.χ. Α- 1, Β-2) και συνδέσμους (π.χ. L-5, L-11). Αυτές οι τοποθεσίες είναι γεωγραφικά διαιρεμένες σε διάφορες περιοχές (π.χ. Α, Β) και κάθε περιοχή ελέγχεται από διαφορετικούς πράκτορες. Αυτοί οι πράκτορες προσπαθούν να φτιάξουν επικοινωνιακούς διαύλους σύμφωνα με αιτήσεις σύνδεσης (στόχους) κάτω από περιορισμούς στη χωρητικότητα των επικοινωνιακών συνδέσμων. Κάθε πράκτορας αναγνωρίζει ένα μέρος του καθολικού έργου για την πραγματοποίηση ενός διαύλου που ονομάζεται κομμάτι της εργασίας. Για παράδειγμα ας υποθέσουμε ότι ένας στόχος είναι να συνδέσουμε το Α-1 και το D-1. Ο πράκτορας Α αναγνωρίζει δυο κομμάτια του σχεδίου, τα 1Α και 2Α, όπου ο 1Α χρησιμοποιεί τον L-1 και τον L-2, και ο 2Α χρησιμοποιεί τον L-1 και τον L-12. Ένα τέτοιο πρόβλημα μπορεί εύκολα να αναπαρασταθεί σαν κατανεμημένο CSP με κάθε πράκτορα να έχει μια μεταβλητή που αναπαριστά ένα στόχο, και με πιθανές τιμές των μεταβλητών αυτών τα κομμάτια του σχεδίου. Σε μια άλλη διατύπωση του ίδιου προβλήματος, υπάρχουν πράκτορες έργων και πράκτορες πόρων, οι οποίοι συνεργαζόμενοι κατανέμουν κοινούς πόρους με μια περιορισμένη χωρητικότητα. Τέτοια προβλήματα μπορούν επίσης να εκφραστούν σαν κατανεμημένα προβλήματα ικανοποίησης περιορισμών. Ωστόσο σε αυτήν την περίπτωση ένας πράκτορας που έχει μια μεταβλητή/εργασία δεν έχει γνώση για τους περιορισμούς που αφορούν αυτή τη μεταβλητή. Συνεπώς ένας πράκτορας εργασιών πρέπει να επικοινωνεί με πράκτορες περιορισμών για να βρει αν οι σχετικοί περιορισμοί ικανοποιούνται ή όχι. 31

32 Προβλήματα χρονοπρογραμματισμού Τα προβλήματα χρονοπρογραμματισμού είναι ένα άλλο είδος προβλημάτων που μπορεί επιτυχώς να διατυπωθεί σαν κατανεμημένο CSP. Για παράδειγμα, ο χρονοπρογραμματισμός νοσηλευτών περιλαμβάνει την ανάθεση νοσηλευτών σε βάρδιες σε κάθε τμήμα ενός νοσοκομείου. Εφόσον το πρόγραμμα κάθε τμήματος είναι κατά βάση ανεξάρτητο, μπορεί να χειριστεί από ανεξάρτητους πράκτορες. Ωστόσο υπάρχουν διαπρακτορικοί περιορισμοί που σχετίζονται με τη μετάθεση των νοσηλευτών. Ένα πραγματικό πρόβλημα με 10 τμήματα, 20 νοσηλευτές σε κάθε τμήμα και 100 εβδομαδιαίες αναθέσεις λύθηκε με τη χρήση κατανεμημένων τεχνικών επίλυσης CSPs. Σε ένα άλλο είδος προβλημάτων χρονοπρογραμματισμού, ένα σύνολο εργασιών πρέπει να πραγματοποιηθεί σε ένα σύνολο από μηχανήματα. Κάθε εργασία αποτελείται από ένα σύνολο σειριακών διεργασιών, που ονομάζονται υποεργασίες. Ο χρόνος έναρξης κάθε υποεργασίας πρέπει να καθορίζεται έτσι ώστε διάφοροι περιορισμοί να ικανοποιούνται. Θα μπορούσε ένας πράκτορας να ανατίθεται σε κάθε μηχάνημα, και αυτοί οι πράκτορες να ικανοποιούν κάποιους δεδομένους περιορισμούς συνεργαζόμενοι Πρόβλημα DARPA Ένα άλλο μεγάλο πρόβλημα που μπορεί να αναπαρασταθεί σαν κατανεμημένο πρόβλημα ικανοποίησης περιορισμών είναι το DARPA. Το πρόβλημα αποτελείται από n αισθητήρες και m στόχους, όπου ένας στόχος γίνεται αντιληπτός αν k αισθητήρες τον εντοπίζουν την ίδια στιγμή. Ο κύριος περιορισμός είναι ότι ένας αισθητήρας μπορεί να εντοπίσει μόνο έναν πράκτορα τη φορά. Το πρόβλημα έχει μοντελοποιηθεί ως ακολούθως. Κάθε αισθητήρας αναπαρίσταται από έναν πράκτορα. Κάθε πράκτορας έχει αισθητήρες για κάθε στόχο που είναι στη σειρά. Στις μεταβλητές ανατίθεται η τιμή 1 αν ο πράκτορας επιλέξει να τον εντοπίσει και 0 αν όχι. Κάθε πράκτορας περιορίζεται εσωτερικά για να έχει μόνο μια μεταβλητή με τιμή 1. Οι περιορισμοί μεταξύ των πρακτόρων είναι τέτοιοι ώστε για κάθε στόχο να υπάρχουν τουλάχιστον k πράκτορες που έχουν αναθέσει 1 στην τιμή της μεταβλητής που αντιστοιχεί σε αυτό το στόχο Επίλυση κατανεμημένων προβλημάτων ικανοποίησης περιορισμών Όπως αναφέρθηκε λύση ενός κατανεμημένου προβλήματος ικανοποίησης περιορισμών είναι ένα σύνολο από πλήρεις αναθέσεις στις μεταβλητές όλων των πρακτόρων, ώστε να ικανοποιούνται όλοι οι περιορισμοί, διαπρακτορικοί και ενδοπρακτορικοί. Σύμφωνα με τον προηγούμενο ορισμό για την επίλυση ενός κατανεμημένου CSP θα μπορούσε να επιλεχθεί ένας πράκτορας «ηγέτης» στον οποίο θα συγκεντρωνόταν όλη η πληροφορία σχετικά με τις μεταβλητές, τα πεδία ορισμών τους και τους περιορισμούς τους. Ο πράκτορας αυτός θα μπορούσε να λύσει το CSP μόνος του χρησιμοποιώντας οποιαδήποτε από τις γνωστές τεχνικές επίλυσης CSP. Ωστόσο όπως αναφέρθηκε, το κόστος της συγκέντρωσης όλης της πληροφορίας μπορεί να είναι απαγορευτικά υψηλό. Επιπλέον, σε ορισμένες εφαρμογές, όπως όταν οι πράκτορες δρουν σαν γραμματείς ενός ατόμου, η συγκέντρωση όλης της 32

33 πληροφορίας σε ένα πράκτορα είναι ανεπιθύμητη ή αδύνατη για λόγους ασφάλειας ή ιδιωτικότητας. Οι τεχνικές επίλυσης κατανεμημένων CSP γενικά προκύπτουν από τις αντίστοιχες κεντρικοποιημένες τεχνικές με ορισμένες αλλαγές που αφορούν την επικοινωνία και το συντονισμό των πρακτόρων. Ακολουθούν ενδεικτικά κάποιες τεχνικές Σύγχρονη/Ασύγχρονη Υπαναχώρηση Η αναζήτηση με υπαναχώρηση μπορεί να χρησιμοποιηθεί για τη λύση κατανεμημένων CSPs. Υποθέτοντας ότι οι πράκτορες έχουν συμφωνήσει για τη σειρά ανάθεσης των μεταβλητών τους (δηλαδή ότι ο πράκτορας A1 θα αναθέσει πρώτος, ο Α2 δεύτερος κ.ο.κ), κάθε πράκτορας που λαμβάνει μια μερική λύση (τις αναθέσεις των προηγούμενων μεταβλητών) από τον προηγούμενο πράκτορα, αναθέτει τιμές στις δικές του μεταβλητές, ανάλογα με τους περιορισμούς που γνωρίζει. Αν βρει μια τιμή που να ικανοποιεί τους περιορισμούς, την προσθέτει στη μερική λύση και την προωθεί στον επόμενο πράκτορα. Αν καμία τιμή στη μεταβλητή δε μπορεί να ικανοποιήσει τους περιορισμούς, τότε στέλνει ένα μήνυμα υπαναχώρησης στον προηγούμενο πράκτορα. Ενώ αυτή η τεχνική δεν υστερεί από το ίδιο επικοινωνιακό κόστος της αντίστοιχης κεντρικοποιημένης, ο καθορισμός της σειράς ανάθεσης απαιτεί κάποιο επικοινωνιακό κόστος. Επιπλέον αυτός ο αλγόριθμος δεν μπορεί να εκμεταλλευτεί το πλεονέκτημα του παραλληλισμού, εξαιτίας του γεγονότος ότι οποιαδήποτε στιγμή, μόνο ένας πράκτορας λαμβάνει μια μερική λύση και την επεξεργάζεται, οπότε το πρόβλημα λύνεται σειριακά. Η ασύγχρονη υπαναχώρηση εξαλείφει τα μειονεκτήματα της σύγχρονης υπαναχώρησης επιτρέποντας στους πράκτορες να τρέχουν ταυτόχρονα και ασύγχρονα. Κάθε πράκτορας αρχικοποιεί τις μεταβλητές του και ενημερώνει τους σχετικούς πράκτορες για την αλλαγή της τιμής που έκανε. Οι κύριοι τύποι μηνυμάτων που ανταλλάσσονται μεταξύ των πρακτόρων είναι μηνύματα επαλήθευσης για την αποστολή της τρέχουσας τιμής μιας μεταβλητής και μηνύματα απόρριψης για την αποστολή παραβίασης περιορισμού. Αφού έχει οριστεί η σειρά προτεραιότητας των μεταβλητών και των πρακτόρων, δηλαδή με ποια σειρά θα αλλαχτούν οι τιμές των μεταβλητών των πρακτόρων, κάθε πράκτορας στέλνει την αρχική ανάθεσή του στους γειτονικούς τους πράκτορες με ένα μήνυμα επαλήθευσης. Κάθε πράκτορας κρατάει την τρέχουσα ανάθεση των άλλων πρακτόρων για μελλοντική χρήση. Ένας πράκτορας αλλάζει την ανάθεση που έχει κάνει ανάλογα με τη σειρά προτεραιότητάς του και πιο συγκεκριμένα αν παραβιάζει περιορισμούς με την ανάθεση των πρακτόρων με υψηλότερη προτεραιότητα. Αν δεν υπάρχει τιμή ώστε να μην παραβιάζονται οι περιορισμοί στέλνεται μήνυμα απόρριψης στον αμέσως προηγούμενο πράκτορα στη σειρά προτεραιότητας, οπότε αναγκάζεται εκείνος να αλλάξει την τιμή στην ανάθεσή του. Εφόσον οι πράκτορες δρουν ασύγχρονα και ταυτόχρονα ενώ ανταλλάσουν μηνύματα, ένας πράκτορας μπορεί να έχει παρελθόντες αναθέσεις. Δηλαδή ακόμα και αν ένας πράκτορας έχει την ανάθεση 1 για τη μεταβλητή x, η x μπορεί να έχει ήδη 33

34 αλλάξει όταν ελέγχει τους περιορισμούς. Συνεπώς, κατά την αποστολή μηνυμάτων απόρριψης θα πρέπει να γίνεται έλεγχος συνέπειας και από τον πράκτορα που λαμβάνει το μήνυμα απόρριψης (δηλαδή τον πράκτορα με υψηλότερη σειρά προτεραιότητας), σύμφωνα με τις δικές του τιμές Ασύγχρονη αναζήτησης αδύναμης δέσμευσης Ένας περιορισμός της ασύγχρονης υπαναχώρησης είναι ότι ο σειρά προτεραιότητας των μεταβλητών και των πρακτόρων καθορίζεται στατικά. Αν η επιλογή της τιμής ενός πράκτορα με υψηλή σειρά προτεραιότητας, οι πράκτορες χαμηλής σειράς θα πρέπει να κάνουν μια εξαντλητική αναζήτηση για να αναθεωρήσει τη λανθασμένη απόφαση. Η ασύγχρονη αναζήτηση αδύναμης-δέσμευσης (asynchronous weak-commitment search) [12] εισάγει τον ευρετικό μηχανισμό ελάχιστων συγκρούσεων για την μείωση του ρίσκου πραγματοποίησης λανθασμένων αποφάσεων. Επιπλέον, η σειρά των πρακτόρων αλλάζει δυναμικά, έτσι ώστε μια λανθασμένη απόφαση να αναθεωρείται χωρίς να πραγματοποιείται μια εξαντλητική αναζήτηση. Οι διαφορές μεταξύ αυτής της αναζήτησης και της αναζήτησης με υπαναχώρηση είναι οι ακόλουθες: Καθορίζεται μια τιμή προτεραιότητας για κάθε μεταβλητή και αποστέλλεται με ένα μήνυμα επαλήθευσης. Η σειρά προτεραιότητας καθορίζεται από τις σταλμένες τιμές προτεραιότητας, δηλαδή ο πράκτορας ή η μεταβλητή με την υψηλότερη τιμή έχει υψηλότερη προτεραιότητα να αλλάξει. Αν η τρέχουσα ανάθεση δεν είναι συνεπής με τις αναθέσεις των άλλων πρακτόρων, δηλαδή κάποιος διαπρακτορικός περιορισμός με πράκτορα υψηλότερης προτεραιότητας παραβιάζεται, ο πράκτορας αλλάζει την τιμή χρησιμοποιώντας τον ευρετικό μηχανισμό ελάχιστων συγκρούσεων. Όταν δε μπορεί να βρεθεί μια συνεπής ανάθεση με τις τρέχουσες αναθέσεις των άλλων πρακτόρων, αποστέλλεται ένα μήνυμα απόρριψης στους άλλους πράκτορες και αυξάνεται η τιμή προτεραιότητας το πράκτορα. Αν δε μπορεί να αποσταλεί μήνυμα απόρριψης, η τιμή δεν θα αλλάξει και ο πράκτορας θα περιμένει για το επόμενο μήνυμα Κατανεμημένοι αλγόριθμοι συνέπειας Η επίτευξη 2-συνέπειας (συνέπειας τόξου) από πολλαπλούς πράκτορες είναι κάτι το σχετικά απλό, αφού ο στόχος μπορεί να επιτευχθεί, με την επανάληψη τοπικών διεργασιών. Αντίθετα η επίτευξη υψηλότερου βαθμού συνέπειας δεν είναι απλή, αφού οι περισσότεροι αλγόριθμοι συνέπειας, στους οποίους παράγονται σύνολα τιμών που ικανοποιούν όλους τους περιορισμούς μεταξύ τους, απαιτούν καθολικό συγχρονισμό, δηλαδή ότι πρέπει να έχει επιτευχθεί 2-συνέπεια πριν επιτευχθεί 3-συνέπεια. Έχουν αναπτυχθεί διάφοροι κατανεμημένοι αλγόριθμοι συνέπειας στους οποίους, για να επιτευχθεί ισχυρή k-συνέπεια, πρέπει οι πράκτορες να ανταλλάσουν τα πεδία ορισμών των μεταβλητών τους και βάσει κανόνων να ανταλλάσουν ολοένα και λιγότερα μηνύματα στους σχετικούς πράκτορες μέχρι να επιτύχουν συνέπεια. 34

35 2.3 Προτιμήσεις (Preferences) Κατά την διάρκεια επίλυσης ενός προβλήματος περιορισμών οι λύσεις οι οποίες βρίσκει ο αλγόριθμος μπορεί να επιλύουν συνολικά το πρόβλημα αλλά πολλές φορές οι λύσεις αυτές δεν είναι προτιμητέες από τους χρήστες του συστήματος. Χαρακτηριστικό παράδειγμα είναι το γνωστό meeting scheduling problem στο οποίο ένα σύνολο από πράκτορες αναλαμβάνουν να επικοινωνήσουν μεταξύ τους έτσι ώστε να βρουν κάποιες κοινά αποδεκτές μέρες και ώρες για να κανονίσουν μια συνάντηση αλλά οι λύσεις που βρήκαν να μην είναι προτιμητέες από τους χρήστες λόγω διαφόρων προβλημάτων που δεν μπορούν να μοντελοποιηθούν (μεγάλη απόσταση μέρους, αντιπάθεια προς τις πολύωρες πτήσεις κλπ). Όλα τα παραπάνω προβλήματα μπορούν να επιλυθούν αρκεί στο πρόβλημα μας να εισάγουμε μια παράμετρο η οποία θα μοντελοποιεί την προτίμηση του πράκτορα (και κατά συνέπεια και του χρήστη) ως προς την συγκεκριμένη λύση. H παράμετρος αυτή μπορεί να εκφράζεται αριθμητικά (π.χ. με ακέραιους από το 1 ως το 10) είτε σε κάποια άλλη κλίμακα. Έτσι τώρα κατά την προσπάθεια επίλυσης του προβλήματος ο κάθε αλγόριθμος θα λαμβάνει υπόψη και την προτίμηση του πράκτορα προς κάποια συγκεκριμένη λύση και στόχος του είναι πρώτα να επιλυθεί το πρόβλημα και στη συνέχεια να μεγιστοποιήσει την συνολική ικανοποίηση των πρακτόρων βάση κάποιου κριτηρίου. Τα κριτήρια αυτά θα αναλυθούν παρακάτω. Ένας βασικός παράγοντας στην μοντελοποίηση με προτιμήσεις είναι το πως οι εναλλακτικές επιλογές συσχετίζονται μεταξύ τους. Στο παρόν πρόβλημα οι προτιμήσεις χρησιμοποιούνται ως ένα κριτήριο βάση του οποίου ο πράκτορας δηλώνει την προτίμηση του στις διάφορες τιμές του πεδίου ορισμού. Συγκεκριμένα για ένα πεδίο ορισμού από το 1 έως το 10 για κάθε τιμή ο πράκτορας αναθέτει έναν αριθμό μεταξύ του 0 και του 1 ο οποίος αριθμός όσο μεγαλύτερος είναι τόσο προτιμότερη είναι η συγκεκριμένη ανάθεση τιμής. Για παράδειγμα αν στο πρόβλημα υπάρχουν δύο λύσεις τέτοιες ώστε στη μία η μεταβλητή του πράκτορα να παίρνει την τιμή 2 με προτίμηση 0.7 και 7 με προτίμηση 0.5 τότε ο πράκτορας θα προτιμήσει την πρώτη λύση Για να λυθεί ένα κατανεμημένο πρόβλημα ικανοποίησης περιορισμών με προτιμήσεις οι agents πρέπει να επικοινωνούν μεταξύ τους έτσι ώστε όχι απλά να βρεθεί μια λύση αλλά η λύση αυτή να είναι όσο το δυνατόν πιο κοντά στο επιθυμητό αποτέλεσμα του κάθε agent. Μια τέτοιου είδους προσέγγιση απαιτεί ένα κριτήριο βελτιστοποίησης, το οποίο μπορεί να είναι διαφορετικό από αυτό που έχει ο κάθε agent ξεχωριστά, που θα καθοδηγεί την αναζήτηση στην καλύτερη δυνατή λύση για όλους τους agents. Στην παρούσα εργασία υποθέτουμε ότι όλοι οι agents προσπαθούν να μεγιστοποιήσουν την προτίμηση τους σύμφωνα με ένα γενικό κριτήριο βελτιστοποίησης. Δύο γνωστά κριτήρια βελτιστοποίησης είναι το fuzzy optimality και το pareto optimality. Σύμφωνα με το fuzzy optimality τα preferences παίρνουν τιμές οι οποίες είναι άμεσα συγκρίσιμες και γίνεται προσπάθεια να μεγιστοποιηθεί το συνολικό ελάχιστο preference των agents. Έτσι για παράδειγμα αν έχουμε 3 agents με συνολικό preference Α1, Α2, Α3 αντίστοιχα για τον κάθε ένα τότε σύμφωνα με το fuzzy optimality θα γίνει προσπάθεια να μεγιστοποιηθεί η τιμή min(a1,a2,a3). Λέγοντας παραπάνω «συνολικό preference του πράκτορα» εννοούμε την τιμή που προκύπτει αν πολλαπλασιάσουμε το κάθε preference 35

36 των μεταβλητών που έχει υπό την κατοχή του ο πράκτορας. Έτσι για παράδειγμα αν ένας πράκτορας έχει 3 μεταβλητές, στις οποίες έχει γίνει ανάθεση τιμών, με προτιμήσεις 0.03, 0.15, 0.71 αντίστοιχα τότε το συνολικό preference του πράκτορα θα είναι 0.03*0.15*0.71 = 3.19*Ε-3. Σύμφωνα με το pareto optimality μια λύση είναι η καλύτερη δυνατή όταν δεν υπάρχει τρόπος να μεγιστοποιηθεί το preference κάποιου agent χωρίς να ελαττωθεί το preference κάποιου άλλου. Κανένα από τα δύο παραπάνω κριτήρια βελτιστοποίησης δεν απαιτούν οι agents να έχουν του ιδίου τύπου preferences, δηλαδή, ένας πράκτορας μπορεί να έχει προτιμήσεις από 0 έως 1 και ένας δεύτερος πράκτορας να έχει προτιμήσεις από το Α έως στο Ζ και παρόλα αυτά να μπορούν να επικοινωνούν. Το πρώτο κριτήριο μόνο απαιτεί οι προτιμήσεις του κάθε agent να είναι άμεσα συγκρίσιμες σύμφωνα με κάποιες βασικές αρχές. Αντίθετα το δεύτερο κριτήριο δεν έχει καμία απαίτηση. Στην παρούσα εργασία θα χρησιμοποιήσουμε το fuzzy optimality κριτήριο και επιπλέον θεωρούμε ότι τα preferences όλων των agents εκφράζονται στην ίδια κλίμακα (0 ως 1). 2.4 Κατανεμημένη τοπική αναζήτηση Κατανεμημένες μέθοδοι τοπικής αναζήτησης Οι μέθοδοι κατανεμημένης τοπικής αναζήτησης γενικά έχουν πολύ απλούστερα πρωτόκολλα εκτέλεσης από τις πλήρεις μεθόδους αναζήτησης. Είναι ικανές να λύσουν προβλήματα μεγάλου μεγέθους σε αντίθεση με τις υπόλοιπες κατανεμημένες μεθόδους. Αυτό οφείλεται στο γεγονός ότι χρειάζονται λιγότερα μηνύματα για να εξερευνήσουν τους χώρους καταστάσεων. Ωστόσο η αδυναμία τους είναι η μη-πληρότητά τους. Έχουν αναπτυχθεί διάφορες κατανεμημένες μέθοδοι τοπικής αναζήτησης Αλγόριθμος κατανεμημένης απόδρασης Έχουν αναπτυχθεί διάφορες εκδόσεις του αλγορίθμου κατανεμημένης απόδρασης (distributed breakout algorithm). Αρχικά παρουσιάστηκαν δύο εκδόσεις από τους Yokoo et al. το 1996 [6]. Η πρώτη δουλεύει με μερικά-τοπικά ελάχιστα, και η δεύτερη με καθολικά ελάχιστα. Παρόλο που η έκδοση με τα μερικά τοπικά ελάχιστα απαιτούσε κατά μέσο όρο περισσότερες επαναλήψεις για να φτάσει στη λύση, απαιτούσε 10 φορές λιγότερα μηνύματα από την έκδοση με τοπικά ελάχιστα όπου χρησιμοποιείται μια αρκετά δαπανηρή μέθοδος μετάδοσης μηνυμάτων για τον εντοπισμό του τοπικού ελάχιστου. Ο αλγόριθμος διερευνήθηκε από τους Zhang et al. [13]. Οι συγγραφείς μπορούσαν να αποδείξουν ότι ο αλγόριθμος είναι πλήρης για την επίλυση προβλημάτων με δομή ακυκλικού γράφου (δέντρα). Δείχθηκε ότι ο αλγόριθμος εγγυάται να βρει μια λύση σε μικρότερα ή ίσα με O(n 2 ) βήματα για ακυκλικούς γράφους με n κόμβους. Οι συγγραφείς υποστηρίζουν ότι η ιδιότητα της πληρότητας εξηγεί την υπεροχή του αλγορίθμου έναντι άλλων αλγορίθμων τοπικής αναζήτησης. Επιπλέον, στο κείμενο τους υλοποιούνται και δύο παραλλαγές του αλγορίθμου. Αυτές οι παραλλαγές έχουν 36

37 στοχαστικές ιδιότητες, δηλαδή οι τιμές στις μεταβλητές αλλάζουν με κάποια πιθανότητα. Οι στοχαστικές παραλλαγές επιφέρουν μικρές βελτιώσεις στην επίδοση του αρχικού αλγορίθμου Αλγόριθμος κατανεμημένης στοχαστικής αναζήτησης Οι Zhang et al. [13], παρουσίασαν τον αλγόριθμο κατανεμημένης στοχαστικής αναζήτησης (distributed stochastic search) για την επίλυση προβλημάτων δικτύων αισθητήρων. Μια προηγούμενη δουλειά σχετική με τη στοχαστική αναζήτηση προτείνεται από τον Pearl [14]. Ο αλγόριθμος κατανεμημένης στοχαστικής αναζήτησης βασίζεται σε μια peer-to-peer αρχιτεκτονική, όπου δεν υπάρχει κανένας συντονιστής της όλης διαδικασίας και όλες οι ευθύνες είναι ομοιόμορφα κατανεμημένες σε όλους τους πράκτορες. Αντίθετα, ο αλγόριθμος κατανεμημένης απόδρασης δεν λειτουργεί με τον ίδιο τρόπο. Σε αυτόν τον αλγόριθμο οι πράκτορες χρησιμοποιούν κανόνες προτεραιότητας για αποφάσεις σε καταστάσεις απόδρασης από ισοπαλίες. Το σύγχρονο πρωτόκολλο εκτέλεσης του αλγορίθμου κατανεμημένης στοχαστικής αναζήτησης είναι απλό. Έχει ένα αρχικό βήμα όπου οι πράκτορες διαλέγουν τυχαία μια τιμή για τις μεταβλητές τους. Τότε οι πράκτορες εκτελούν μια σειρά βημάτων μέχρι να ικανοποιηθεί μια συνθήκη τέλους. Σε καθένα από τα βήματα αυτά, ο πράκτορας ενημερώνει τους γείτονές του για τη τιμή της μεταβλητής του και λαμβάνει τις ενημερωμένες τιμές από τους γείτονές του. Τότε ο πράκτορας αποφασίζει να κρατήσει την ανάθεση ή να την αλλάξει. Η διαδικασία αποφάσεων είναι συχνά στοχαστική, βασισμένη στην τωρινή κατάσταση του πράκτορα και τις καταστάσεις των γειτονικών πρακτόρων, όπως αυτός τις ξέρει. Ο μακροπρόθεσμος στόχος τις διαδικασίας αποφάσεων είναι να μειωθούν όσο το δυνατό περισσότερο οι παραβιάσεις περιορισμών. Διαφορετικές στρατηγικές στις αποφάσεις αποφέρουν διαφορετικές παραλλαγές του αλγορίθμου. Οι Zhang et al. [15] συγκρίνουν την κατανεμημένη στοχαστική αναζήτηση με την κατανεμημένη απόδραση και συγκρίνουν την απόδοσή τους. Τα αποτελέσματα δείχνουν ότι η κατανεμημένη στοχαστική αναζήτηση είναι ανώτερη της κατανεμημένης απόδρασης και ότι παρέχει καλύτερη ποιότητα λύσης με μικρότερο επικοινωνιακό κόστος. Το επικοινωνιακό κόστος της κατανεμημένης απόδρασης είναι σταθερό για κάθε επανάληψη και είναι είτε ίσο είτε μεγαλύτερο από αυτό της στοχαστικής αναζήτησης. Το επικοινωνιακό κόστος της στοχαστικής αναζήτησης εξαρτάται από τον αριθμό των μεταβλητών που παραβιάζουν ένα περιορισμό. Όταν ο αλγόριθμος πλησιάζει στη λύση το επικοινωνιακό κόστος ελαττώνεται Κατανεμημένη παράλληλη ικανοποίηση περιορισμών Ο Fabiunke [16] ανέπτυξε έναν παράλληλο αλγόριθμο κατανεμημένης ικανοποίησης περιορισμών εμπνευσμένο από τα νευρωνικά δίκτυα. Το πρωτόκολλο εκτέλεσης του αλγόριθμου αυτού είναι τελείως παράλληλο, ασύγχρονο και πολύ απλό. Ένας πράκτορας αρχικοποιεί τις μεταβλητές του και ενημερώνει τους γειτονικούς του πράκτορες για την αλλαγή αυτή. Τότε ο πράκτορας πραγματοποιεί έναν αριθμό βημάτων μέχρι να ικανοποιηθεί μια συνθήκη τερματισμού. Σε καθένα 37

38 από αυτά τα βήματα ο πράκτορας αναθεωρεί την ανάθεση του χρησιμοποιώντας τον ευρετικό μηχανισμό ελάχιστων συγκρούσεων. Αν η ανάθεση έχει αλλάξει, οι γειτονικοί πράκτορες ενημερώνονται με τη νέα τιμή. Για να αποτραπεί ο αλγόριθμος από το να ταλαντεύεται, δηλαδή δυο πράκτορες να αλλάζουν την τιμή των συγκρουόμενων μεταβλητών τους προς την ίδια κατεύθυνση, προκαλώντας πάντα μια νέα παραβίαση, προτείνεται ένας νέος κανόνας. Αυτός ο κανόνας σπάει τη συμμετρία του κανόνα ανάθεσης τιμών, δηλώνοντας ότι όταν ένας πράκτορας εντοπίζει μια παραβίαση περιορισμού εφαρμόζει τον κανόνα ελάχιστων συγκρούσεων με μια πιθανότητα p. Η διαφορά μεταξύ της κατανεμημένης παράλληλης ικανοποίησης περιορισμών και της κατανεμημένης στοχαστικής αναζήτησης είναι τα παράλληλα και ασύγχρονα χαρακτηριστικά της κατανεμημένης παράλληλης αναζήτησης. Στην παράλληλη αναζήτηση οι πράκτορες δεν περιμένουν τα μηνύματα ενημέρωσης των γειτονικών τους πρακτόρων και αλλάζουν την τιμή στην ανάθεσή τους όσο το δυνατό νωρίτερα. Επίσης ο πιθανοτικός κανόνας για την αλλαγή μιας τιμής μεταβλητής είναι διαφορετικός στους δυο αλγορίθμους. Η παράλληλη ικανοποίηση περιορισμών είναι στην πραγματικότητα ένα αυτόνομο πρωτόκολλο, οι πράκτορες δεν περιμένουν τους άλλους πράκτορες να πετύχουν ένα υψηλό βαθμό παραλληλισμού και ασυγχρονισμού. Οι στοχαστικοί αλγόριθμοι είναι πιο συντονισμένοι, έχουν ένα συγχρονισμένο πρωτόκολλο και ένα πιο εκλεπτυσμένο, συνεργατικό κανόνα αλλαγής ανάθεσης. Για την δημιουργία δυνατών, αυτόνομων και σταθερών εφαρμογών, ο κατανεμημένη παράλληλη ικανοποίηση περιορισμών είναι καλύτερη επιλογή, ωστόσο η απόδοση δεν είναι τόσο καλή όσο αυτή των στοχαστικών αλγορίθμων Υλοποίηση κατανεμημένων μεθόδων τοπικής αναζήτησης Κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων Ο κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων (distributed minconflicts) δεν είναι τίποτε άλλο από την κατανεμημένη έκδοση του αλγορίθμου που παρουσιάστηκε παραπάνω μόνο που τρέχει τοπικά στον κάθε πράκτορα. Κάθε πράκτορας ξεκινά με μια τυχαία ανάθεση στις μεταβλητές του και μέσα σε ένα πλήθος βημάτων που δέχεται σαν είσοδο, αν δεν είναι ήδη λύση, προσπαθεί να τη βελτιώσει. Επιλέγει τυχαία μια μεταβλητή που βρίσκεται σε διένεξη, δηλαδή που συμμετέχει σε έναν ανικανοποίητο περιορισμό και της αναθέτει την τιμή, που αν της ανατεθεί θα προκαλεί τις λιγότερες παραβιάσεις περιορισμών, αν η τιμή που ανέθεσε οδήγησε σε πλήρη ανάθεση που είναι λύση του τοπικού του προβλήματος, τότε ο πράκτορας σταματάει να αναζητάει νέα λύση και απλά παρακολουθεί τις υπόλοιπες μεταβλητές που τον επηρεάζουν για κάποια ενδεχόμενη αλλαγή. Αν γίνει κάποια αλλαγή βάση της οποίας η λύση που είχε βρει δεν είναι πλέον αποδεκτή τότε ο πράκτορας ψάχνει για νέα λύση, σε κάθε άλλη περίπτωση δεν κάνει τίποτα άλλο έως ότου ο μέγιστος αριθμός κινήσεων που έχει ορίσει ο χρήστης συμπληρωθούν, δηλαδή, αν ο χρήστης έχει ορίσει ως μέγιστο αριθμό κινήσεων τον αριθμό 20 μετά από 20 επαναλήψεις ο αλγόριθμος θα σταματήσει να αναζητεί άλλη τιμή. Ο αλγόριθμος φαίνεται στην εικόνα

39 Εικόνα 10 Στην παραπάνω εικόνα το σύνολο Variables αφορά όλες τις μεταβλητές του πράκτορα. Η αναφορά «ενημερώνονται οι ενδιαφερόμενοι πράκτορες για τις αλλαγές των τιμών» σημαίνει ότι ο αλγόριθμος στέλνει ένα μήνυμα με την δεδομένη αλλαγή τιμής σε επιλεγμένους πράκτορες οι οποίοι σχετίζονται με αυτήν την μεταβλητή. Οι πράκτορες αυτοί βρίσκονται σε μια λίστα η οποία δημιουργείτε εξωτερικά του αλγορίθμου. Τέλος λέγοντας «τρέχουσα» στον παραπάνω αλγόριθμο εννοούμε την τρέχουσα ανάθεση τιμών, δηλαδή, τις τιμές που έχει αυτή την στιγμή ο πράκτορας Κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων με επανεκκινήσεις Ο κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων με επανεκκινήσεις (distributed min-conflicts with restarts) διατηρεί τη φιλοσοφία του προηγούμενου αλγόριθμου, μόνο που μετά το τέλος τον βημάτων που έδωσε ο χρήστης, στην περίπτωση που δεν έχει βρει λύση, ο πράκτορας δίνει μια νέα πλήρη ανάθεση σε όλες τις μεταβλητές του (ιδιωτικές και δημόσιες) και στην συνέχεια ξανατρέχει τον κλασικό min-conflicts. Αυτό γίνεται γιατί ο απλός αλγόριθμος είναι αρκετά πιθανό να πέσει σε τοπικά ελάχιστα, οπότε με μια νέα πλήρη ανάθεση, απεγκλωβίζεται από αυτά. Ο αλγόριθμος φαίνεται στην Εικόνα 11. Εικόνα 11 39

40 Κατανεμημένος τυχαίος περίπατος Στον κατανεμημένο αλγόριθμο ελάχιστων συγκρούσεων με τυχαίο περίπατο (distributed random walk min-conflicts) κάθε πράκτορας ξεκινά με μία τυχαία ανάθεση. Αυτή τη φορά όμως αντί να ακολουθήσουμε την τυπική διαδικασία του απλού min conflicts εισάγουμε τον παράγοντα της τυχαιότητας. Για να το επιτύχουμε αυτό δανειζόμαστε την λογική του απλού αλγορίθμου random walk, η οποία λέει ότι διαλέγουμε μια τυχαία μεταβλητή και της αναθέτουμε μια τυχαία τιμή, και την συνδυάζουμε με τον αλγόριθμο των ελαχίστων συγκρούσεων. Αρχικά ο αλγόριθμος δέχεται μια παράμετρο (που μπορεί να ορίζεται από τον χρήστη) η οποία χρησιμοποιείται για να αποφασιστεί σε κάθε βήμα ποια από τις δύο τεχνικές, δηλ. random walk και ελάχιστες συγκρούσεις, θα εκτελεστεί. Επίσης χρησιμοποιείται μια τυχαία μεταβλητή (η οποία κινείται από 0 έως 1) η οποία παίζει τον ρόλο της πιθανότητας. Πριν κάθε βήμα ανάθεσης τιμής στην τρέχουσα επιλεγμένη μεταβλητή η τυχαία μεταβλητή παίρνει μια τιμή η οποία συγκρίνεται με την τιμή της παραμέτρου. Αν η τιμή είναι μικρότερη από την τιμή της παραμέτρου τότε ο αλγόριθμος αναθέτει στην επιλεγμένη μεταβλητή μια τυχαία τιμή από το πεδίο τιμών, δηλαδή, ένα βήμα random walk. Σε κάθε άλλη περίπτωση ο αλγόριθμος ακολουθεί την ίδια διαδικασία με τον min-conflicts που περιγράφηκε παραπάνω. Ο αλγόριθμος αυτός πετυχαίνει να μας βγάζει μερικές φορές από διάφορα τοπικά ελάχιστα που μπορεί να έχει πέσει ο αλγόριθμος ή ακόμα να μας οδηγήσει σε μια λύση. Η συμπεριφορά του αλγορίθμου βασίζεται κατά ένα ποσοστό στην τύχη και κατά συνέπεια αν ο χρήστης δώσει μεγάλη τιμή παραμέτρου αρχικά ο αλγόριθμος θα έχει κακή συμπεριφορά καθώς θα εκτελεί πολύ συχνά τυχαίες κινήσεις. Οι καλύτερες τιμές πιθανότητας εκτέλεσης τυχαίας κίνησης είναι γύρω στο 5 έως 10%. Ο αλγόριθμος παρουσιάζεται στην Εικόνα 12. Εικόνα Περιγραφή βελτιστοποίησης του Preference 40

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΕΧΝΙΚΩΝ ΤΟΠΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΚΑΤΑΝΕΜΗΜΕΝΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ

ΜΕΛΕΤΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΕΧΝΙΚΩΝ ΤΟΠΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΚΑΤΑΝΕΜΗΜΕΝΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ ΜΕΛΕΤΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΕΧΝΙΚΩΝ ΤΟΠΙΚΗΣ ΑΝΑΖΗΤΗΣΗΣ ΓΙΑ ΤΗΝ ΕΠΙΛΥΣΗ ΚΑΤΑΝΕΜΗΜΕΝΩΝ ΠΡΟΒΛΗΜΑΤΩΝ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ Η διπλωματική εργασία παρουσιάστηκε ενώπιον του Διδακτικού προσωπικού του Πανεπιστημίου

Διαβάστε περισσότερα

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 6: Προβλήματα ικανοποίησης περιορισμών Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Ικανοποίηση Περιορισμών Κατηγορία προβλημάτων στα οποία είναι γνωστές μερικές

Διαβάστε περισσότερα

Πρόβληµα ικανοποίησης περιορισµών

Πρόβληµα ικανοποίησης περιορισµών Προβλήµατα ικανοποίησης περιορισµών Constraint Satisfaction Problems Πρόβληµα ικανοποίησης περιορισµών Μεταβλητές: X 1, X 2,, X n, Πεδία ορισµού: D 1, D 2, D n Περιορισµοί: C 1, C 2,, C m Ανάθεση τιµών:

Διαβάστε περισσότερα

Επίλυση προβλημάτων με αναζήτηση

Επίλυση προβλημάτων με αναζήτηση Επίλυση προβλημάτων με αναζήτηση Περιεχόμενα Μέθοδοι (πράκτορες) επίλυσης προβλημάτων Προβλήματα και Λύσεις Προβλήματα παιχνίδια Προβλήματα του πραγματικού κόσμου Αναζήτηση λύσεων Δέντρο αναζήτησης Στρατηγικές

Διαβάστε περισσότερα

Κεφάλαιο 6. Ικανοποίηση Περιορισµών. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 6. Ικανοποίηση Περιορισµών. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 6 Ικανοποίηση Περιορισµών Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Ικανοποίηση Περιορισµών Ένα πρόβληµα ικανοποίησης περιορισµών (constraint

Διαβάστε περισσότερα

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1 1 Βελτιστοποίηση Στην προσπάθεια αντιμετώπισης και επίλυσης των προβλημάτων που προκύπτουν στην πράξη, αναπτύσσουμε μαθηματικά μοντέλα,

Διαβάστε περισσότερα

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ

ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ ΙΚΑΝΟΠΟΙΗΣΗ ΠΕΡΙΟΡΙΣΜΩΝ (ΜΕ ΒΑΣΗ ΤΟ ΚΕΦ. 6 ΤΟΥ ΒΙΒΛΙΟΥ «ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ» ΤΩΝ ΒΛΑΧΑΒΑ, ΚΕΦΑΛΑ, ΒΑΣΙΛΕΙΑ Η, ΚΟΚΚΟΡΑ & ΣΑΚΕΛΛΑΡΙΟΥ) Ι. ΧΑΤΖΗΛΥΓΕΡΟΥ ΗΣ ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ Είναι γνωστές µερικές

Διαβάστε περισσότερα

Ε ανάληψη. Α ληροφόρητη αναζήτηση

Ε ανάληψη. Α ληροφόρητη αναζήτηση ΠΛΗ 405 Τεχνητή Νοηµοσύνη Το ική Αναζήτηση Local Search Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Α ληροφόρητη αναζήτηση σε πλάτος, οµοιόµορφου κόστους, σε βάθος,

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

(50 μον.) πάντοτε Διατυπώστε

(50 μον.) πάντοτε Διατυπώστε ΑΣΚΗΣΗ 1 Α. (50 μον.) Σας δίνεται ο ακόλουθος γράφος, το οποίο πρέπει να χρωματίσετε χρησιμοποιώντας 3 χρώματα (R,G,B), ώστε δύο γειτονικές κορυφές να μην έχουν το ίδιο χρώμα. Θεωρείστε ότι ο χρωματισμός

Διαβάστε περισσότερα

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1 Οικονομικό Πανεπιστήμιο Αθηνών, Τμήμα Πληροφορικής Μάθημα: Τεχνητή Νοημοσύνη, 2016 17 Διδάσκων: Ι. Ανδρουτσόπουλος Ασκήσεις μελέτης της 4 ης διάλεξης 4.1. (α) Αποδείξτε ότι αν η h είναι συνεπής, τότε h(n

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: Μελέτη παραλλαγών του αλγόριθμου minconflicts για προβλήματα ικανοποίησης περιορισμών ΒΑΡΚΑΣ ΙΩΑΝΝΗΣ,

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Μεταβλητες: Q, NSW, V, T, SA, WA, NT. Πεδίο Ορισμού: Για κάθε μεταβλητη το ίδιο. D i ={R, G, B} όπου i= Q, NSW,., NT.

Μεταβλητες: Q, NSW, V, T, SA, WA, NT. Πεδίο Ορισμού: Για κάθε μεταβλητη το ίδιο. D i ={R, G, B} όπου i= Q, NSW,., NT. 1. Στην άσκηση μας, μας έχει δωθεί ένας γράφος, ο οποίος αντιπροσωπεύει ένα χάρτη και μάλιστα αυτόν της Αυστραλίας. Στον γράφο αυτό υπάρχουν και κόμβοι, οι οποίοι αφορούν με τη σειρά τους τις διάφορες

Διαβάστε περισσότερα

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης! Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Γενικά " Ντετερµινιστικά

Διαβάστε περισσότερα

Πληροφορική 2. Τεχνητή νοημοσύνη

Πληροφορική 2. Τεχνητή νοημοσύνη Πληροφορική 2 Τεχνητή νοημοσύνη 1 2 Τι είναι τεχνητή νοημοσύνη; Τεχνητή νοημοσύνη (AI=Artificial Intelligence) είναι η μελέτη προγραμματισμένων συστημάτων τα οποία μπορούν να προσομοιώνουν μέχρι κάποιο

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ

ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ ΚΟΥΛΙΝΑΣ ΓΕΩΡΓΙΟΣ Δρ. Μηχανικός Παραγωγής & Διοίκησης ΔΠΘ ΑΛΓΟΡΙΘΜΙΚΕΣ ΜΕΘΟΔΟΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗΣ o ΔΙΑΛΕΞΕΙΣ ΜΑΘΗΜΑΤΟΣ ΔΕΥΤΕΡΑ 16.00-19.00 (Εργ. Υπ. Μαθ. Τμ. ΜΠΔ) oτρόπος

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 4η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 4η διάλεξη (2016-17) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται κυρίως στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β.

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναζήτηση Δοθέντος ενός προβλήματος με περιγραφή είτε στον χώρο καταστάσεων

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Καθηγητής : Κουμπαράκης Μανόλης Ημ/νία παράδοσης: 11/01/2011 Ονομ/μο φοιτητή : Μπεγέτης Νικόλαος Α.Μ.:

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

28 Πολυπρακτορικά Συστήµατα

28 Πολυπρακτορικά Συστήµατα ΚΕΦΑΛΑΙΟ 28 28 Πολυπρακτορικά Συστήµατα "There is no such thing as a single agent system". [Woodridge, 2002] Η παραπάνω ρήση από το βιβλίο του M.Wooldridge τονίζει, ίσως µε περισσή έµφαση, ότι είναι πλέον

Διαβάστε περισσότερα

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΕΙ Δυτικής Μακεδονίας ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ 2015-2016 Τεχνητή Νοημοσύνη Επίλυση προβλημάτων με αναζήτηση Διδάσκων: Τσίπουρας Μάρκος Εκπαιδευτικό Υλικό: Τσίπουρας Μάρκος http://ai.uom.gr/aima/ 2

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

Διαβάστε περισσότερα

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού Πληροφοριακά Συστήματα Διοίκησης Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού Σημασία μοντέλου Το μοντέλο δημιουργεί μια λογική δομή μέσω της οποίας αποκτούμε μια χρήσιμη άποψη

Διαβάστε περισσότερα

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

Προβλήματα Ικανοποίησης Περιορισμών Προβλήματα Ικανοποίησης Περιορισμών (Επιπλέον Διαφάνειες) Μανόλης Κουμπαράκης Τεχνητή Νοημοσύνη 1 Περιεχόμενα Παραδείγματα CSP Παράδειγμα εκτέλεσης του αλγόριθμου ΒΤ Sudoku k-consistency Η έννοια της αποσύνθεσης

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ Τελικές εξετάσεις Πέμπτη 27 Ιουνίου 2013 10:003:00 Έστω το πάζλ των οκτώ πλακιδίων (8-puzzle)

Διαβάστε περισσότερα

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής

ΤΕΧΝΗΤΗ ΝΟΗΜΟΣΥΝΗ. Ενότητα 5: Παραδείγματα. Ρεφανίδης Ιωάννης Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Παραδείγματα Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

Διαβάστε περισσότερα

Περιγραφή Προβλημάτων

Περιγραφή Προβλημάτων Τεχνητή Νοημοσύνη 02 Περιγραφή Προβλημάτων Φώτης Κόκκορας Τμ.Τεχν/γίας Πληροφορικής & Τηλ/νιών - ΤΕΙ Λάρισας Παραδείγματα Προβλημάτων κύβοι (blocks) Τρεις κύβοι βρίσκονται σε τυχαία διάταξη πάνω στο τραπέζι

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση Γιατί χρησιμοποιείται μοντελοποίηση των περιορισμών με ακεραίους? Υπάρχουν ήδη εργαλεία για τον υπολογισμό και την χρήση

Διαβάστε περισσότερα

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού 1 Σχέση γραμμικού και ακέραιου προγραμματισμού Ενα πρόβλημα ακέραιου προγραμματισμού είναι

Διαβάστε περισσότερα

Επιχειρησιακή Έρευνα

Επιχειρησιακή Έρευνα ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Επιχειρησιακή Έρευνα Ενότητα #3: Ακέραιος Προγραμματισμός Αθανάσιος Σπυριδάκος Καθηγητής Τμήμα Διοίκησης Επιχειρήσεων Άδειες Χρήσης

Διαβάστε περισσότερα

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης

Ε ανάληψη. Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) Καταβολές. Ιστορική αναδροµή. Πράκτορες. Περιβάλλοντα. κριτήρια νοηµοσύνης ΠΛΗ 405 Τεχνητή Νοηµοσύνη Αναζήτηση Search Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Ορισµοί της Τεχνητής Νοηµοσύνης (ΤΝ) κριτήρια νοηµοσύνης Καταβολές συνεισφορά

Διαβάστε περισσότερα

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

Γραµµικός Προγραµµατισµός (ΓΠ)

Γραµµικός Προγραµµατισµός (ΓΠ) Γραµµικός Προγραµµατισµός (ΓΠ) Περίληψη Επίλυση δυσδιάστατων προβληµάτων Η µέθοδος simplex Τυπική µορφή Ακέραιος Προγραµµατισµός Προγραµµατισµός Παραγωγής Προϊόν Προϊόν 2 Παραγωγική Δυνατότητα Μηχ. 4 Μηχ.

Διαβάστε περισσότερα

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2014-2015 Πρώτη Σειρά Ασκήσεων (Υποχρεωτική, 25% του συνολικού βαθμού στο μάθημα) Ημερομηνία Ανακοίνωσης: 22/10/2014 Ημερομηνία Παράδοσης: Μέχρι 14/11/2014 23:59

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Τυχαιοκρατικοί Αλγόριθμοι

Τυχαιοκρατικοί Αλγόριθμοι Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται

Διαβάστε περισσότερα

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Διαχείριση Υδατικών Πόρων Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος Διαχείριση Υδατικών Πόρων Βελτιστοποίηση Μέρος b: Συμβατικές Μέθοδοι συνέχεια Σύνοψη προηγούμενου μαθήματος Στόχος βελτιστοποίησης: Εύρεση

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

Διαβάστε περισσότερα

καθ. Βασίλης Μάγκλαρης

καθ. Βασίλης Μάγκλαρης ΣΤΟΧΑΣΤΙΚΕΣ ΔΙΕΡΓΑΣΙΕΣ & ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ Αίθουσα 005 - Νέα Κτίρια ΣΗΜΜΥ Ε.Μ.Π. Ενισχυτική Μάθηση - Δυναμικός Προγραμματισμός: 1. Markov Decision Processes 2. Bellman s Optimality Criterion 3. Αλγόριθμος

Διαβάστε περισσότερα

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2017-2018 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

Διαβάστε περισσότερα

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

Διαβάστε περισσότερα

Προσεγγιστικοί Αλγόριθμοι

Προσεγγιστικοί Αλγόριθμοι Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. http://xkcd.com/287/ Πολλά NP-πλήρη προβλήματα έχουν μεγάλο πρακτικό ενδιαφέρον. Πως μπορούμε να αντιμετωπίσουμε το γεγονός ότι είναι απίθανη(;)

Διαβάστε περισσότερα

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ

ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΕΛΕΓΧΟΣ ΠΑΡΑΓΩΓΙΚΩΝ ΔΙΕΡΓΑΣΙΩΝ Ενότητα: Αναγνώριση Διεργασίας - Προσαρμοστικός Έλεγχος (Process Identification) Αλαφοδήμος Κωνσταντίνος

Διαβάστε περισσότερα

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Τεχνολογία Συστημάτων Υδατικών Πόρων

Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος. Τεχνολογία Συστημάτων Υδατικών Πόρων Εθνικό Μετσόβιο Πολυτεχνείο Τομέας Υδατικών Πόρων και Περιβάλλοντος Τεχνολογία Συστημάτων Υδατικών Πόρων Βελτιστοποίηση Μέρος b: Συμβατικές Μέθοδοι συνέχεια Σύνοψη προηγούμενου μαθήματος Στόχος βελτιστοποίησης:

Διαβάστε περισσότερα

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 4: Επίλυση προβλημάτων με αναζήτηση Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Περιγραφή Προβλημάτων Διαισθητικά, σε ένα πρόβλημα υπάρχει μια δεδομένη κατάσταση

Διαβάστε περισσότερα

ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ

ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ ΤΥΦΛΗ ΑΝΑΖΗΤΗΣΗ (1) ΣΤΡΑΤΗΓΙΚΗ Ή ΑΛΓΟΡΙΘΜΟΣ ΑΝΑΖΗΤΗΣΗΣ Μια αυστηρά καθορισµένη ακολουθία ενεργειών µε σκοπό τη λύση ενός προβλήµατος. Χαρακτηριστικά οθέν πρόβληµα: P= Επιλυθέν πρόβληµα: P s

Διαβάστε περισσότερα

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ

ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΡΓΑΣΙΩΝ & ΑΝΑΘΕΣΗΣ ΑΝΘΡΩΠΙΝΩΝ ΠΟΡΩΝ ΣΕ ΠΟΛΛΑΠΛΑ ΕΡΓΑ ΠΑΡΑΓΩΓΗΣ ΛΟΓΙΣΜΙΚΟΥ ΜΕ ΠΟΛΛΑΠΛΕΣ ΟΜΑΔΕΣ Ηλίας Κωνσταντίνου Λεμεσός,

Διαβάστε περισσότερα

Το µαθηµατικό µοντέλο του Υδρονοµέα

Το µαθηµατικό µοντέλο του Υδρονοµέα Ερευνητικό έργο: Εκσυγχρονισµός της εποπτείας και διαχείρισης του συστήµατος των υδατικών πόρων ύδρευσης της Αθήνας Το µαθηµατικό µοντέλο του Υδρονοµέα Ανδρέας Ευστρατιάδης και Γιώργος Καραβοκυρός Τοµέας

Διαβάστε περισσότερα

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Μηχανικών Πληροφορικής ΤΕ 2016-2017 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος Γραμμικός Προγραμματισμός Όταν για

Διαβάστε περισσότερα

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση με περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Διάλεξη 9-10 η /2017 Τι παρουσιάστηκε

Διαβάστε περισσότερα

ΣΗΜΕΙΩΣΕΙΣ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»

ΣΗΜΕΙΩΣΕΙΣ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» ΣΗΜΕΙΩΣΕΙΣ ΤΕΛΙΚΗΣ ΕΡΓΑΣΙΑΣ ΤΟΥ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ» Κωνσταντίνος Π. Φερεντίνος Διδάσκων ΠΔ 407/80 Οι σημειώσεις αυτές αναπτύχθηκαν στα πλαίσια του προγράμματος «ΕΠΕΑΕΚ 2 Πρόγραμμα Αναβάθμισης

Διαβάστε περισσότερα

Πολυκριτηριακός Γραμμικός Προγραμματισμός. Συστήματα Αποφάσεων Εργαστήριο Συστημάτων Αποφάσεων και Διοίκησης

Πολυκριτηριακός Γραμμικός Προγραμματισμός. Συστήματα Αποφάσεων Εργαστήριο Συστημάτων Αποφάσεων και Διοίκησης Πολυκριτηριακός Γραμμικός Προγραμματισμός Πολλαπλά κριτήρια στη λήψη απόφασης Λήψη Αποφάσεων με Πολλαπλά Κριτήρια Διακριτό σύνολο επιλογών Συνεχές σύνολο επιλογών Πολυκριτηριακή Ανάλυση (ELECTRE, Promethee,

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση με σφάλματα διεργασιών Κατανεμημένα Συστήματα Ι 5η Διάλεξη 10 Νοεμβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 5η Διάλεξη 1 Συναίνεση με σφάλματα διεργασιών Προηγούμενη διάλεξη

Διαβάστε περισσότερα

Κατακερματισμός (Hashing)

Κατακερματισμός (Hashing) Κατακερματισμός (Hashing) O κατακερματισμός είναι μια τεχνική οργάνωσης ενός αρχείου. Είναι αρκετά δημοφιλής μέθοδος για την οργάνωση αρχείων Βάσεων Δεδομένων, καθώς βοηθάει σημαντικά στην γρήγορη αναζήτηση

Διαβάστε περισσότερα

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Πληροφορηµένη Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Πράκτορας ε ίλυσης ροβληµάτων πράκτορας µε στόχο Αναζήτηση διατύπωση

Διαβάστε περισσότερα

Ακέραιος Γραμμικός Προγραμματισμός

Ακέραιος Γραμμικός Προγραμματισμός Τμήμα Πληροφορικής & Τηλεπικοινωνιών Πανεπιστήμιο Ιωαννίνων 2018-2019 Ακέραιος Γραμμικός Προγραμματισμός Γκόγκος Χρήστος- Γεωργία Φουτσιτζή Επιχειρησιακή Έρευνα τελευταία ενημέρωση: 12/01/2017 1 Ακέραιος

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Τ.Ε.Ι. ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΙΣΗΓΗΤΗΣ: Δρ. Ιωάννης Σ. Τουρτούρας Μηχανικός Παραγωγής & Διοίκησης Δ.Π.Θ. Χρηματοδότηση Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η

Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε

Διαβάστε περισσότερα

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΑΔΙΕΞΟΔΑ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΑΔΙΕΞΟΔΑ 2 ΠΟΡΟΙ Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήματα: Προεκτοπίσιμοι πόροι

Διαβάστε περισσότερα

Διαχείριση Έργων Πληροφορικής

Διαχείριση Έργων Πληροφορικής Διαχείριση Έργων Πληροφορικής Διαχείριση Πόρων Μ. Τσικνάκης Ε. Μανιαδή - Α. Μαριδάκη 1 Διαχείριση Χρήσης Πόρων Απαιτούμενοι πόροι στην ανάπτυξη ενός Πληροφοριακού Συστήματος: Ανθρώπινο δυναμικό (π.χ. αναλυτές,

Διαβάστε περισσότερα

για NP-Δύσκολα Προβλήματα

για NP-Δύσκολα Προβλήματα Προσεγγιστικοί Αλγόριθμοι για NP-Δύσκολα Προβλήματα Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Διαβάστε περισσότερα

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

Διαβάστε περισσότερα

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Νοέμβριος 006 Αθήνα Κεφάλαιο ο Ακέραιος και μικτός προγραμματισμός. Εισαγωγή Μια από τις

Διαβάστε περισσότερα

Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός

Αυτόνομοι Πράκτορες. ΝΑΟ Μουσικός Αυτόνομοι Πράκτορες ΝΑΟ Μουσικός Καρατζαφέρης Ευστάθιος Αλέξανδρος 2007 030 046 Πολυτεχνείο Κρήτης Σύντομη Περιγραφή Στόχος της εργασίας μας είναι η υλοποίηση της συμπεριφοράς αλλα και της λειτουργικότητας

Διαβάστε περισσότερα

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Συναίνεση και Σφάλματα Διεργασιών Παναγιώτα Παναγοπούλου Περίληψη Συναίνεση με σφάλματα διεργασιών Το πρόβλημα Ο αλγόριθμος FloodSet Επικύρωση δοσοληψιών Ορισμός του προβλήματος

Διαβάστε περισσότερα

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Ικανο οίηση Περιορισµών Constraint Satisfaction Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Το ική αναζήτηση αναρρίχηση λόφων προσοµοιωµένη

Διαβάστε περισσότερα

Θεωρία Λήψης Αποφάσεων

Θεωρία Λήψης Αποφάσεων Θεωρία Λήψης Αποφάσεων Ενότητα 6: Αλγόριθμοι Τοπικής Αναζήτησης Μπεληγιάννης Γρηγόριος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.)

Διαβάστε περισσότερα

===========================================================================

=========================================================================== =========================================================================== Α. (50 µον.) Σας δίνεται ο ακόλουθος γράφος, το οποίο πρέπει να χρωµατίσετε χρησιµοποιώντας 4 χρώµατα (R,G,B,Υ), ώστε δύο γειτονικές

Διαβάστε περισσότερα

Επίλυση Προβλημάτων και Τεχνικές Αναζήτησης Εισαγωγή

Επίλυση Προβλημάτων και Τεχνικές Αναζήτησης Εισαγωγή Επίλυση Προβλημάτων και Τεχνικές Αναζήτησης Εισαγωγή επίλυση προβλημάτων μέσω αναζήτησης κάθε πρόβλημα το οποίο μπορεί να διατυπωθεί αυστηρά λύνεται μέσω αναζήτησης. Για τα περισσότερα ενδιαφέροντα προβλήματα

Διαβάστε περισσότερα

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΚΕΦΑΛΑΙΑ 3 και 9 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΕΣ Δεδομένα αφαιρετική αναπαράσταση της πραγματικότητας και συνεπώς μία απλοποιημένη όψη της δηλαδή.

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 17: Λύση Προβλημάτων με Αναδρομή Οι πύργοι του Hanoi Δίνεται ένα χώρος με τρεις θέσεις αποθήκευσης. Δίνεται μια στοίβα από Ν πλάκες σε φθίνον μέγεθος, σε μια από τις τρεις

Διαβάστε περισσότερα

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης.

Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Οι Εξελικτικοί Αλγόριθμοι (ΕΑ) είναι καθολικοί στοχαστικοί αλγόριθμοι βελτιστοποίησης, εμπνευσμένοι από τις βασικές αρχές της φυσικής εξέλιξης. Ένα από τα γνωστότερα παραδείγματα των ΕΑ είναι ο Γενετικός

Διαβάστε περισσότερα

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού

Κεφάλαιο 6. Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού Κεφάλαιο 6 Μέθοδοι επίλυσης προβλημάτων ακέραιου προγραμματισμού 1 Γραφική επίλυση Η γραφική μέθοδος επίλυσης μπορεί να χρησιμοποιηθεί μόνο για πολύ μικρά προβλήματα με δύο ή το πολύ τρεις μεταβλητές απόφασης.

Διαβάστε περισσότερα

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π

Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός συγκρίσεων π Περιορισμοί Αλγοριθμικής Ισχύος Κατηγοριοποίηση πολυπλοκοτήτων Κατώτερα φράγματα Κατώτερο φράγμα: εκτίμηση της ελάχιστης εργασίας που απαιτείται για την επίλυση ενός προβλήματος. Παραδείγματα: Αριθμός

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 5η διάλεξη ( ) Ίων Ανδρουτσόπουλος. Τεχνητή Νοημοσύνη 5η διάλεξη (2017-18) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Προβλήματα Μεταφορών (Transportation)

Προβλήματα Μεταφορών (Transportation) Προβλήματα Μεταφορών (Transportation) Παραδείγματα Διατύπωση Γραμμικού Προγραμματισμού Δικτυακή Διατύπωση Λύση Γενική Μέθοδος Simplex Μέθοδος Simplex για Προβλήματα Μεταφοράς Παράδειγμα: P&T Co ΗεταιρείαP&T

Διαβάστε περισσότερα

Ευφυείς Τεχνολογίες ----Πράκτορες

Ευφυείς Τεχνολογίες ----Πράκτορες Ευφυείς Τεχνολογίες ----Πράκτορες Ενότητα 3: Εισαγωγή στους Ευφυείς Πράκτορες Δημοσθένης Σταμάτης demos@it.teithe.gr www.it.teithe.gr/~demos Μαθησιακοί Στόχοι της ενότητας 3 H κατανόηση της φύσης των πρακτόρων

Διαβάστε περισσότερα

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ 1 η Διάλεξη: Αναδρομή στον Μαθηματικό Προγραμματισμό 2019, Πολυτεχνική Σχολή Εργαστήριο Συστημάτων Σχεδιασμού, Παραγωγής και Λειτουργιών Περιεχόμενα 1. Γραμμικός Προγραμματισμός

Διαβάστε περισσότερα

ΠΛΗ 405 Τεχνητή Νοηµοσύνη

ΠΛΗ 405 Τεχνητή Νοηµοσύνη ΠΛΗ 405 Τεχνητή Νοηµοσύνη Α οδοτικός Προτασιακός Συµ ερασµός Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης Ε ανάληψη Λογικοί ράκτορες πράκτορες βασισµένοι στη λογική Λογικές

Διαβάστε περισσότερα

ΠΛΗ513 - Αυτόνομοι Πράκτορες Αναφορά Εργασίας

ΠΛΗ513 - Αυτόνομοι Πράκτορες Αναφορά Εργασίας ΠΛΗ513 - Αυτόνομοι Πράκτορες Αναφορά Εργασίας Ομάδα εργασίας: LAB51315282 Φοιτητής: Μάινας Νίκος ΑΦΜ: 2007030088 ΠΕΡΙΓΡΑΦΗ ΙΔΕΑΣ Η ιδέα της εργασίας βασίζεται στην εύρεση της καλύτερης πολιτικής για ένα

Διαβάστε περισσότερα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1, Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα

Διαβάστε περισσότερα

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής

Θεωρία Παιγνίων και Αποφάσεων. Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος. Ε. Μαρκάκης. Επικ. Καθηγητής Θεωρία Παιγνίων και Αποφάσεων Ενότητα 5: Εύρεση σημείων ισορροπίας σε παίγνια μηδενικού αθροίσματος Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Παίγνια μηδενικού αθροίσματος PessimisIc play Αμιγείς max-min και

Διαβάστε περισσότερα

Rule Based systems Συστήματα Βασισμένα σε κανόνες

Rule Based systems Συστήματα Βασισμένα σε κανόνες Rule Based systems Συστήματα Βασισμένα σε κανόνες Τμήματα ενός έμπειρου συστήματος βασισμένου σε κανόνες Βάση Γνώσης (Κανόνες) Μηχανισμός Εξαγωγής Συμπερασμάτων Χώρος Εργασίας (Γεγονότα) Μηχανισμός Επεξήγησης

Διαβάστε περισσότερα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

Διαβάστε περισσότερα

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Άσκηση 1 Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Υπάρχουν τρία μαύρα τετραγωνάκια (b), τρία άσπρα (w) και ένα κενό (e). Η σπαζοκεφαλιά έχει τις ακόλουθες

Διαβάστε περισσότερα

Κουτσιούμπας Αχιλλέας U. Adamy, C. Ambuehl, R. Anand, T. Erlebach

Κουτσιούμπας Αχιλλέας U. Adamy, C. Ambuehl, R. Anand, T. Erlebach Κουτσιούμπας Αχιλλέας ΕΛΕΓΧΟΣ ΚΛΗΣΕΩΝ ΣΕ ΑΚΤΥΛΙΟ U. Adamy, C. Ambuehl, R. Anand, T. Erlebach ΜΠΛΑ 1 Δομή παρουσίασης Γενικά Ορισμός προβλήματος Σχετιζόμενη δουλειά Εισαγωγικά Αλγόριθμος Παράδειγμα εκτέλεσης

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αλγόριθμοι Τυφλής Αναζήτησης Οι αλγόριθμοι τυφλής αναζήτησης εφαρμόζονται σε

Διαβάστε περισσότερα