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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθµοι CSPs Κώδικας. Μάθηµα Τεχνητής Νοηµοσύνης ΥΣ02 Χειµερινό εξάµηνο

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

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

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

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

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

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

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

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

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

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

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

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

ΑΚΕΡΑΙΟΣ ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

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

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

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

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

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

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

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

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

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

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

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

4.3 Ορθότητα και Πληρότητα

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

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

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

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

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

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

max c 1 x 1 + c 2 x c n x n υπό a 11 x 1 + a 12 x a 1n x n b 1 a 21 x 1 + a 22 x a 2n x n b 2 a m1 x 1 + a m2 x a mn x n b m

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

Αλγόριθµοι και Πολυπλοκότητα

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

Οπτικά Δίκτυα. Εγκατάσταση Οπτικών Διαδρομών (Lightpath Setup) και δρομολόγηση

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

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

Κεφάλαιο 5ο: Ακέραιος προγραμματισμός

Δραστηριότητα: Εγκλεισμός

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

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

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

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

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

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

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Συστήματα Επιχειρηματικής Ευφυίας. Το πρόβλημα Nurse rostering Ενδεικτική επίλυση με αλγόριθμο Variable Neighborhood Search (VNS)

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΛΟΠΟΝΝΗΣΟΥ ΣΧΟΛΗ ΟΙΚΟΝΟΜΙΑΣ ΔΙΟΙΚΗΣΗΣ και ΠΛΗΡΟΦΟΡΙΚΗΣ. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ και ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΟΔΗΓΟΣ ΜΕΤΑΒΑΤΙΚΩΝ ΔΙΑΤΑΞΕΩΝ

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

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Τμήμα Πληροφορικής. Σχολή Τεχνολογικών Εφαρμογών. Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ίδρυμα Θεσσαλονίκης

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

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

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

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

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

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

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

Αλγόριθμοι και Πολυπλοκότητα

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

Βασίλειος Κοντογιάννης ΠΕ19

WIRELESS SENSOR NETWORKS (WSN)

Υπολογιστικό Πρόβληµα

Transcript:

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

2

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

4

ΠΕΡΙΛΗΨΗ Η παρούσα εργασία έχει σαν αντικείμενο την υλοποίηση τεχνικών τοπικής αναζήτησης για κατανεμημένα προβλήματα ικανοποίησης περιορισμών. Ο στόχος αυτών των τεχνικών είναι η επίλυση των προβλημάτων, δηλαδή ανάθεση μίας τιμής σε κάθε μία από τις μεταβλητές που συμμετέχουν στο πρόβλημα, έτσι ώστε να μην παραβιάζεται κανένας περιορισμός. Στην εργασία αυτή αφού ορίζονται τα προβλήματα ικανοποίησης περιορισμών και τα κατανεμημένα προβλήματα ικανοποίησης περιορισμών, παρουσιάζονται ορισμένες εφαρμογές και των δυο και γίνεται μια σύντομη ανασκόπηση ορισμένων άλλων τεχνικών επίλυσής τους. Πολλά συνδυαστικά προβλήματα μπορούν να μοντελοποιηθούν ως προβλήματα ικανοποίησης περιορισμών και να επιλυθούν με τεχνικές συστηματικής ή τοπικής αναζήτησης. Οι τεχνικές τοπικής αναζήτησης θυσιάζουν την ιδιότητα της πληρότητας για να επιτύχουν μεγαλύτερη ταχύτητα και μπορούν να λύσουν πολύ μεγάλα προβλήματα, το οποία είναι πέρα από τις δυνατότητες των συστηματικών αλγορίθμων. Όταν η πληροφορία σχετικά με ένα πρόβλημα ικανοποίησης περιορισμών είναι μοιρασμένη ανάμεσα σε διάφορους πράκτορες τότε επιβάλλεται η χρήση κατανεμημένων αλγορίθμων. Στην εργασία αυτή υλοποιούνται διάφορες κατανεμημένες παραλλαγές του αλγόριθμου ελάχιστων συγκρούσεων και δοκιμάζονται σε τυχαία παραγμένα κατανεμημένα προβλήματα ικανοποίησης περιορισμών. Τέλος γίνεται μια σύγκριση των αποτελεσμάτων των δοκιμών των υλοποιημένων αλγορίθμων και παρουσιάζονται τα συμπεράσματα από αυτή. 2007 ΚΟΛΙΑΣ ΒΑΣΙΛΕΙΟΣ Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ 5

ABSTRACT This work focuses on studying and developing local search techniques for distributed constraint satisfaction problems. 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. 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. 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. 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. 2007 KOLIAS VASILEIOS Department of Information and Communication Systems Engineering UNIVERSITY OF THE AEGEAN 6

ΕΥΧΑΡΙΣΤΙΕΣ - ΑΦΙΕΡΩΣΕΙΣ Θα ήθελα να ευχαριστήσω τους κάτωθι: Τον καθηγητή μου, κύριο Κωνσταντίνο Στεργίου για την καθοδήγηση και στήριξη που παρείχε καθ όλη την διάρκεια της πραγματοποίησης της εργασίας. Τον καθηγητή μου, κύριο Γεώργιο Βούρο, για όλη τη βοήθεια που παρείχε. Την οικογένειά μου, που με στήριξε όλα αυτά τα χρόνια. 7

8

Πρόλογος...11 ΕΙΣΑΓΩΓΗ...13 1 Προβλήματα Ικανοποίησης Περιορισμών...13 1.1 Ορισμοί... 13 1.2 Μοντελοποίηση Προβλημάτων - Εφαρμογές... 14 1.2.1 Sudoku... 15 1.2.2 Το πρόβλημα των ν-βασιλισσών... 16 1.2.3 Κατανομή πόρων στο χρονοπρογραμματισμό... 17 1.2.4 Άλλες εφαρμογές... 18 1.3 Επίλυση Προβλημάτων Ικανοποίησης Περιορισμών... 18 1.3.1 Αναζήτηση με υπαναχώρηση... 19 1.3.2 Πρώιμος Έλεγχος... 19 1.3.3 Αλγόριθμοι Συνέπειας... 20 2 Κατανεμημένα Προβλήματα Ικανοποίησης Περιορισμών...21 2.1 Ορισμοί... 21 2.2 Εφαρμογές... 23 2.2.1 Προβλήματα Κατανομής... 23 2.2.2 Προβλήματα Χρονοπρογραμματισμού... 24 2.2.3 Πρόβλημα DARPA... 24 2.3 Επίλυση Κατανεμημένων Προβλημάτων Ικανοποίησης Περιορισμών... 25 2.3.1 Σύγχρονη/Ασύγχρονη Υπαναχώρηση... 25 2.3.2 Ασύγχρονη αναζήτηση αδύναμης-δέσμευσης... 26 2.3.3 Κατανεμημένοι αλγόριθμοι συνέπειας... 27 ΤΟΠΙΚΗ ΑΝΑΖΗΤΗΣΗ...28 3 Τοπική αναζήτηση για προβλήματα ικανοποίησης περιορισμών...28 3.1 Γενικά για την τοπική αναζήτηση... 28 3.1.1 Τοπικά Ελάχιστα και Οροπέδια... 30 3.1.2 Διάσχιση οροπεδίων και αποφυγή... 32 3.2 Τοπική αναζήτηση στα προβλήματα ικανοποίησης περιορισμών... 33 4 Κατανεμημένη Τοπική Αναζήτηση...35 4.1 Κατανεμημένες μέθοδοι τοπικής αναζήτησης... 35 4.1.1 Αλγόριθμος κατανεμημένης απόδρασης... 35 4.1.2 Αλγόριθμος κατανεμημένης στοχαστικής αναζήτησης... 35 4.1.3 Κατανεμημένη παράλληλη ικανοποίηση περιορισμών... 36 4.2 Υλοποίηση κατανεμημένων μεθόδων τοπικής αναζήτησης... 36 9

4.2.1 Το πολυπρακτορικό σύστημα... 36 4.2.2 Κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων... 39 4.2.3 Κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων με επανεκκινήσεις... 40 4.2.4 Κατανεμημένος τυχαίος περίπατος... 40 4.2.5 Κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων με απότομη αναρρίχηση... 42 4.2.6 Κατανεμημένος αλγόριθμος ελάχιστων συγκρούσεων με απότομη αναρρίχηση και επανεκκινήσεις.... 43 ΠΕΙΡΑΜΑΤΙΚΗ ΜΕΛΕΤΗ...44 5 Πειράματα και αποτελέσματα...44 5.1 Γεννήτρια προβλημάτων... 44 5.1.1 Διαδικασία παραγωγής προβλημάτων... 44 5.2 Πειράματα και αποτελέσματα... 45 5.2.1 Πρώτη ομάδα μετρήσεων: Αλλάζοντας τον αριθμό των πρακτόρων... 46 5.2.2 Δεύτερη ομάδα μετρήσεων: αλλάζοντας τον αριθμό των μεταβλητών ανά πράκτορα.... 49 5.2.3 Τρίτη ομάδα μετρήσεων: αλλάζοντας τον αριθμό των ενδοπρακτορικών περιορισμών.... 52 5.2.4 Τέταρτη ομάδα μετρήσεων: αλλάζοντας τον αριθμό των διαπρακτορικών περιορισμών... 55 5.2.5 Επιπρόσθετη ομάδα μετρήσεων: λύνοντας προβλήματα μεταβλητών παραμέτρων με τον αλγόριθμο ελάχιστων συγκρούσεων με απότομη αναρρίχηση και επανεκκινήσεις.. 58 5.2.6 Συμπεράσματα... 62 6 Ανασκόπηση...64 ΒΙΒΛΙΟΓΡΑΦΙΑ...66 Παράρτημα...67 10

ΠΡΟΛΟΓΟΣ Ο προγραμματισμός περιορισμών είναι ένα ισχυρό πρότυπο για την επίλυση συνδυαστικών προβλημάτων αναζήτησης. Τα τελευταία χρόνια έχει τραβήξει την προσοχή πολλών ειδικών από διάφορους επιστημονικούς τομείς εξαιτίας της δυνατότητάς του να λύνει δύσκολα πραγματικά προβλήματα. Όχι μόνο βασίζεται σε ένα δυνατό θεωρητικό υπόβαθρο αλλά προσελκύει και ένα ευρύ εμπορικό ενδιαφέρον, όπως σε τομείς ετερογενών προβλημάτων βελτιστοποίησης.. Χωρίς έκπληξη, έχει αναγνωριστεί σαν μια από τις στρατηγικές κατευθύνεις στην έρευνα στην πληροφορική. Ένας περιορισμός είναι απλά μια λογική σχέση μεταξύ διάφορων αγνώστων ποσοτήτων με κύριο χαρακτηριστικό τη δηλωτική τους φύση, δηλαδή καθορίζουν ποια σχέση πρέπει να ισχύει χωρίς να καθορίζουν μια υπολογιστική διαδικασία για να ενισχύσουν τη σχέση αυτή. Οι περιορισμοί προσδιορίζουν το αδύνατο και ελαττώνουν το πεδίο των πιθανοτήτων για να επικεντρωθούν αποτελεσματικά στο δυνατό, επιτρέποντας μια φυσική, δηλωτική διατύπωση του τι πρέπει να ικανοποιηθεί, χωρίς να εκφράζεται το πώς θα ικανοποιηθεί. Ορίζουν τις εξαρτήσεις σε ένα φυσικό κόσμο και τις μαθηματικές τους έννοιες με τρόπο φυσικό και διαφανή. Το πεδίο του συλλογισμού περιορισμών έχει ωριμάσει στις τρεις τελευταίες δεκαετίες με τη συμβολή ποικίλλων κοινοτήτων ερευνητών από την τεχνητή νοημοσύνη, την επιχειρησιακή έρευνα και την τεχνολογία λογισμικού και τα εφαρμοσμένα μαθηματικά. Σήμερα τα προβλήματα περιορισμών χρησιμοποιούνται με επιτυχία για τη μοντελοποίηση νοητικών έργων στον χρονοπρογραμματισμό, τη γλωσσική τεχνολογία, την όραση υπολογιστών, τη συλλογιστική, τις βάσεις δεδομένων, την κατανομή πόρων κτλ. Τα προβλήματα ικανοποίησης περιορισμών αξίζει να μελετηθούν μεμονωμένα γιατί είναι γενικά προβλήματα με μοναδικά χαρακτηριστικά, που αν εκμεταλλευτούν, οδηγούν σε λύσεις. Όλοι χρησιμοποιούμε περιορισμούς για να κάνουμε τη συλλογιστική ένα κύριο μέρος της καθημερινής λογικής: «Θα είμαι εκεί από τις πέντε ως τις έξι η ώρα». Αυτός είναι ένας τυπικός περιορισμός που χρησιμοποιούμε για να προγραμματίσουμε το χρόνο μας. Συνήθως δεν λύνουμε μόνο έναν περιορισμό αλλά ένα σύνολο περιορισμών που σπάνια είναι ανεξάρτητοι μεταξύ τους, καθιστώντας έτσι τη διαδικασία ικανοποίησής τους δυσκολότερη. Επίσης αρκετές φορές καλούμαστε να ικανοποιήσουμε περιορισμούς που εμπλέκουν και άλλους στην επίλυσή τους. Ένα τυπικό παράδειγμα εμπλοκής πολλών αλληλοεξαρτώμενων περιορισμών που ανήκουν σε πολλούς είναι κατά τη διαπραγμάτευση της πραγματοποίησης μιας συνάντησης. Όλοι καταθέτουν τις ημερομηνίες που μπορούν και κανονίζουν μεταξύ τους πότε θα γίνει η συνάντηση ανάλογα. Οι ανθρώπινες ομάδες, οργανισμοί και κοινωνίες έχουν εξελιχθεί μέσα στο χρόνο, σαν αποτέλεσμα συλλογικών και συνεργατικών δραστηριοτήτων που ενισχύοντας την πρόοδο της ομάδας στην οποία ανήκει, ενισχύουν την πρόοδο του ατόμου. Σαν απομίμηση των έξυπνων δυνατοτήτων των ανθρώπων, όπως ο συλλογισμός, η επικοινωνία και η μάθηση, εκμεταλλευόμενο τις ολοένα εξελισσόμενες δυνατότητες των υπολογιστών και τη δυνατότητα επικοινωνίας τους, αναδύθηκε ένα νέο πεδίο στην επιστήμη των υπολογιστών. Η Κατανεμημένη Τεχνητή Νοημοσύνη είναι ένα υποπεδίο της Τεχνητής Νοημοσύνης, το οποίο για πάνω από μια δεκαετία, ερευνά διάφορα γνωσιακά μοντέλα, όπως επίσης επικοινωνιακές και συλλογιστικές τεχνικές τις οποίες νοήμονες πράκτορες ίσως χρειαστούν για να δραστηριοποιηθούν μέσα σε «κοινότητες» υπολογιστών και ανθρώπων. Πιο γενικά η Κατανεμημένη Τεχνητή Νοημοσύνη ασχολείται με περιπτώσεις όπου διάφορα συστήματα διαδράττονται για να λύσουν ένα κοινό πρόβλημα. 11

Η κατανεμημένη επίλυση προβλημάτων εξετάζει πώς το έργο επίλυσης ενός συγκεκριμένου προβλήματος μπορεί να κατανεμηθεί μεταξύ ενός αριθμού πρακτόρων που συνεργάζονται συντονισμένα στην διαμοίραση ή/και διαίρεση της γνώσης για το πρόβλημα και την εξελισσόμενη λύση του. Προβλήματα που είναι αποτέλεσμα της ύπαρξης περιορισμών οι οποίοι καθορίζουν τις ενέργειες που μπορούν να πραγματοποιήσουν πράκτορες σε ένα πολυπρακτορικό σύστημα ονομάζονται Κατανεμημένα Προβλήματα Ικανοποίησης Περιορισμών και είναι το αντικείμενο με το οποίο ασχολείται αυτή η διπλωματική εργασία. Διάφορες τεχνικές αναπτύχθηκαν για την επίλυση ενός προβλήματος, δηλαδή την ταυτόχρονη ικανοποίηση όλων των περιορισμών του. Οι τεχνικές τοπικής αναζήτησης θυσιάζουν την ιδιότητα της πληρότητας για να πετύχουν μεγαλύτερη ταχύτητα και να μπορούν να λύσουν πολύ μεγαλύτερα προβλήματα που είναι πέρα από τις δυνατότητες των συστηματικών αλγορίθμων. Όταν η πληροφορία σχετικά με το πρόβλημα ικανοποίησης περιορισμών είναι μοιρασμένη ανάμεσα σε διάφορους πράκτορες, συχνά επιβάλλεται η χρήση κατανεμημένων μεθόδων αλγορίθμων. Στη διπλωματική αυτή εργασία γίνεται μια θεωρητική μελέτη, υλοποίηση και πειραματική σύγκριση μεθόδων τοπικής αναζήτησης για την επίλυση κατανεμημένων προβλημάτων ικανοποίησης περιορισμών. Παρουσιάζονται οι ορισμοί των προβλημάτων ικανοποίησης περιορισμών και των κατανεμημένων προβλημάτων ικανοποίησης περιορισμών καθώς επίσης γίνεται και μια θεωρητική μελέτη των μεθόδων επίλυσης τους. Υλοποιούνται πέντε μέθοδοι τοπικής αναζήτησης και τέλος συγκρίνονται πειραματικά. 12

ΕΙΣΑΓΩΓΗ 1 ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ 1.1 Ορισμοί Ένα πρόβλημα ικανοποίησης περιορισμών (Constraint Satisfaction Problem - CSP) ορίζεται ως μια πλειάδα <X, D, C>, όπου Χ ένα σύνολο μεταβλητών X 1, X 2,, X n, D ένα σύνολο μη κενών πεδίων ορισμού από πιθανές τιμές για κάθε μεταβλητή και C ένα σύνολο περιορισμών C 1,C 2,, C m. Κάθε περιορισμός C i αφορά κάποιο υποσύνολο των μεταβλητών και καθορίζει τις επιτρεπτές τιμές για το υποσύνολο αυτό. Μια κατάσταση του προβλήματος καθορίζεται από την ανάθεση των τιμών σε ορισμένες ή και όλες τις μεταβλητές, {X i =u i, X j =u j, }. Μια ανάθεση που δεν παραβιάζει κανένα περιορισμό καλείται συνεπής ή νόμιμη ανάθεση. Μια πλήρης ανάθεση είναι εκείνη στην οποία κάθε μεταβλητή έχει μια τιμή και μια λύση ενός CSP είναι μια πλήρης ανάθεση που ικανοποιεί όλους τους περιορισμούς. Μερικά CSPs επίσης απαιτούν μια λύση που μεγιστοποιεί μια αντικειμενική συνάρτηση. Είναι χρήσιμο να αντιλαμβανόμαστε ένα δυαδικό πρόβλημα ικανοποίησης περιορισμών, δηλαδή ένα πρόβλημα όπου όλοι οι περιορισμοί περιλαμβάνουν το πολύ δυο μεταβλητές, σαν ένα γράφημα περιορισμών, όπου οι κόμβοι αντιστοιχούν στις μεταβλητές του προβλήματος και τα τόξα αντιστοιχούν σε περιορισμούς (Εικόνα 1.1). Α Β D C Εικόνα 1.1 Ένα πρόβλημα ικανοποίησης περιορισμών αναπαριστώμενο με γράφημα. Στο συγκεκριμένο πρόβλημα ισχύουν οι περιορισμοί: A B, A C, C B και C D. Το πιο συνηθισμένο είδος προβλημάτων ικανοποίησης περιορισμών χρησιμοποιεί μεταβλητές που είναι διακριτές (discrete) και έχουν πεπερασμένα πεδία ορισμού (finite domains). Ως τέτοια προβλήματα μπορούν να θεωρηθούν το πρόβλημα χρωματισμού χάρτη, το πρόβλημα των 8 βασιλισσών και το Sudoku. Αν το μέγιστο πεδίο ορισμού οποιασδήποτε μεταβλητής σε ένα πρόβλημα ικανοποίησης περιορισμών είναι d, τότε ο αριθμός των δυνατών πλήρων αναθέσεων τιμών είναι O(d n ) δηλαδή εκθετικός ως προς τον αριθμό των μεταβλητών. Τα προβλήματα ικανοποίησης περιορισμών με Boolean μεταβλητές (Boolean CSP) είναι ένα είδος προβλήματος ικανοποίησης περιορισμών όπου οι μεταβλητές μπορούν να έχουν τιμή ή 13

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

εντελώς διαφορετικές προσεγγίσεις για ένα πρόβλημα. Εφόσον αυτές οι μοντελοποιήσεις συχνά χρειάζονται σύνολα περιορισμών που διαφέρουν σε μέγεθος και πολυπλοκότητα, η τέχνη του προγραμματισμού περιορισμών έγκειται στην εύρεση μοντέλων που μεγιστοποιούν την αποτελεσματικότητα ενός προβλήματος ικανοποίησης περιορισμών. Ο βασικός σκοπός της μοντελοποίησης είναι να προσεγγίσει την πραγματικότητα, με τέτοιο τρόπο ώστε να διευκολυνθεί ο προγραμματιστής που θα αναλάβει να λύσει το πρόβλημα και παράλληλα να προσομοιωθεί όσο γίνεται περισσότερο η πραγματικότητα. Κατά συνέπεια ένα πρόβλημα μπορεί να έχει πολλές μοντελοποιήσεις, ανάλογα με το πόσο θέλει αυτός που κάνει τη μοντελοποίηση να προσεγγίσει την πραγματικότητα. Κατά τη μοντελοποίηση ενός προβλήματος είναι συχνά προτιμότερο να επιλέγονται κανόνες που χρειάζονται τα λιγότερα σύνολα περιορισμών. Επιπλέον δεν αρκεί μόνο να υπάρχουν μικρά σύνολα περιορισμών, αλλά οι περιορισμοί θα πρέπει να εκφράζονται έτσι, ώστε να αντιμετωπίζονται αποτελεσματικά από τους αλγορίθμους. Επίσης μια καλή πρακτική είναι το τελικό μοντέλο να έχει ξεκάθαρη περιγραφή. Ακολουθούν μερικά παραδείγματα που μπορούν εύκολα να μοντελοποιηθούν σαν προβλήματα ικανοποίησης περιορισμών, ή όταν η μοντελοποίηση είναι πολύ περίπλοκη να εξηγηθεί εδώ, έχουν επιτυχώς μοντελοποιηθεί σαν προβλήματα ικανοποίησης περιορισμών. 1.2.1 Sudoku 2 Το Sudoku είναι ένα παζλ που παίζεται σε ένα μερικώς γεμισμένο πίνακα 9x9. Ο σκοπός είναι να ολοκληρωθεί η ανάθεση χρησιμοποιώντας αριθμούς από το 1 ως το 9 έτσι ώστε οι είσοδοι σε κάθε γραμμή, κάθε στήλη και σε κάθε κύριο 3x3 μπλοκ να είναι ανά δύο διαφορετικές. Ακολουθούν δύο πίνακες που δείχνουν ένα πρόβλημα και τη λύση του. Διαλέγοντας μια καλή «οπτική», τα περισσότερα προβλήματα του Sudoku μπορούν να λυθούν χωρίς αναζήτηση. Το παραπάνω πρόβλημα μπορεί να μοντελοποιηθεί με δύο τρόπους: 1) Οι μεταβλητές x1, x2 x81 αναπαριστούν όλα τα κουτιά στο πλέγμα, και το πεδίο ορισμού κάθε μεταβλητής είναι το σύνολο ακεραίων {1,,9} δηλαδή οι τιμές που κάθε μεταβλητή μπορεί να έχει. Μια ανάθεση x i = c σημαίνει ότι το i- οστό κουτί έχει την τιμή c. 2) Οι μεταβλητές nb 1, nb 9 αναπαριστούν τους αριθμούς 1,...,9 και το πεδίο ορισμού κάθε μεταβλητής είναι το δυναμοσύνολο P({1,,9}), δηλαδή τα κουτιά όπου ένας αριθμός προκύπτει. Μια ανάθεση nb i = {c 1,,c n }σημαίνει ότι ένας αριθμός i προκύπτει στο κουτί c 1, c n και το{c 1,,c n }είναι ένα υποσύνολο του {1,,81}. 2 Ο Howard Garnes, ένας επαγγελματίας δημιουργός παζλ και συνταξιούχος αρχιτέκτονας, δημιούργησε το παζλ το 1979. Δημοσιεύτηκε για πρώτη φορά στη Νέα Υόρκη τη δεκαετία του 70 από τον εκδότη παζλ Dell Magazines στο περιοδικό Dell Pencil Puzzles and Word Games, με τον τίτλο «Το μέρος των αριθμών». Το παζλ παρουσιάστηκε στην Ιαπωνία από τη Nicoli το 1984 σαν «Suji wa dokushin ni kagiru» που μεταφράζεται σαν «Οι αριθμοί πρέπει να είναι μοναδικοί» ή «οι αριθμοί μπορούν να προκύψουν μόνο μια φορά». 15

2 6 8 1 3 7 8 6 4 5 7 5 1 7 9 3 9 5 1 4 3 2 5 1 3 2 5 2 4 9 3 8 4 6 (α) 7 2 6 4 9 3 8 1 5 3 1 5 7 2 8 9 4 6 4 8 9 6 5 1 2 3 7 8 5 2 1 4 7 6 9 3 6 7 3 9 8 5 1 2 4 9 4 1 3 6 2 7 5 8 1 9 4 8 3 6 5 7 2 5 6 7 2 1 4 3 8 9 2 3 8 5 7 9 4 6 1 (β) Εικόνα 1.2 (α) Ένα πρόβλημα Sudoku. (β) Η λύση του. Στην πρώτη περίπτωση αρκεί να χρησιμοποιήσουμε τον κανόνα distinct(s,v) όπου κάθε στοιχείο του συνόλου v έχει μια μοναδική τιμή από το σύνολο s, δηλαδή είναι ξεχωριστά μεταξύ τους. Για να ικανοποιήσουμε τις απαιτήσεις του προβλήματος πρέπει να εφαρμόσουμε το παραπάνω ζευγάρι σε κάθε γραμμή, στήλη και 3x3 κουτί. Στη δεύτερη περίπτωση είναι πιο δύσκολο να εκφραστούν οι κανόνες. Πρέπει να εγγυηθούμε ότι το πλήθος στοιχείων του κάθε συνόλου που αναπαριστά τον αριθμό είναι 9, ότι όλα αυτά τα σύνολα είναι διαφορετικά μεταξύ τους και ότι κάθε αριθμός έχει ακριβώς μια τιμή σε κάθε γραμμή και κάθε στήλη και ακριβώς μια τιμή σε κάθε 3x3 κουτί. 1.2.2 Το πρόβλημα των ν-βασιλισσών[3] Δεδομένης μιας σκακιέρας μεγέθους Ν, είναι δυνατό να τοποθετήσουμε Ν, βασίλισσες έτσι ώστε καμία βασίλισσα να μη μπορεί να επιτεθεί σε μια άλλη? Πρώτα απ όλα πρέπει να παρατηρήσουμε ότι σε κάθε λύση στο πρόβλημα πρέπει οι βασίλισσες να είναι τοποθετημένες σε διαφορετικές γραμμές και στήλες. Αν θέσουμε x 1, x 2, x 3, x n τη θέση σε μια γραμμή μιας βασίλισσας i, σε μια στήλη i το πρόβλημα των ν-βασιλισσών μπορεί να μοντελοποιηθεί ως ακολούθως: Κάθε βασίλισσα να είναι τοποθετημένη σε μια γραμμή της σκακιέρας x i 1,2,..., N { } Κανένα ζευγάρι βασιλισσών να είναι τοποθετημένο στην ίδια γραμμή: i, j, i j x i x j Κανένα ζευγάρι βασιλισσών να είναι τοποθετημένο στην ίδια διαγώνιο: i j : i j i j x και i, j : i j i j x j x, i x j i 16

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

Εικόνα 1.3 Το γράφημα περιορισμών του προβλήματος των 3-βασιλισσών x 1 x x 1 x x 2 x 2 1 2 x1 1 3 1 x 2 x 3 x 3 x2 x3 x 2 1 x 1 3 x1 2 Η ανάθεση πόρων σε μια μεταβλητή αναπαριστά την δέσμευση ενός πόρου από μια εργασία. Η ανάθεση πόρων συνήθως περιορίζεται με πολλούς τρόπους. Για παράδειγμα ανάμεσα σε Μ μηχανές διαθέσιμες σε μια εργασία J, μόνο οι μηχανές P,Q και R έχουν τη δυνατότητα να ανταπεξέλθουν στην εργασία J. Πολύ συχνά, μια μηχανή μπορεί να επεξεργαστεί μόνο μια εργασία τη φορά. Άλλες φορές, αν η δουλειά J πρόκειται να χρησιμοποιήσει τη μηχανή Μ, τότε θα πρέπει να της ανατεθούν συγκεκριμένα εργαλεία και ανθρώπινο προσωπικό. Ο στόχος είναι να κατανεμηθεί σε κάθε μεταβλητή μια μεταβλητή έτσι ώστε όλοι οι περιορισμοί να ικανοποιούνται. 1.2.4 Άλλες εφαρμογές Στη γλωσσική τεχνολογία, κάθε λέξη έχει έναν πεπερασμένο αριθμό ρόλων που μπορεί να παίξει. Η γραμματική των γλωσσών περιορίζει τους ρόλους που μπορεί μια συμβολοσειρά να λαμβάνει ταυτόχρονα. Μέρος της γλωσσικής ανάλυσης είναι ο προσδιορισμός των ρόλων κάθε λέξης. Κάτι τέτοιο μπορεί να αναπαρασταθεί σαν ένα πρόβλημα ικανοποίησης περιορισμών. Τα επερωτήματα στις βάσεις δεδομένων συχνά περιέχουν μεταβλητές. Η αρχικοποίηση των μεταβλητών σαν αποτέλεσμα ενός επερωτήματος είναι ένα πρόβλημα ικανοποίησης περιορισμών. Η βελτιστοποίηση επερωτήσεων είναι μια σημαντική περιοχή έρευνας στις βάσεις δεδομένων στην οποία εφαρμόζονται τεχνικές επίλυσης προβλημάτων ικανοποίησης περιορισμών. Επίσης τεχνικές που αναπτύχθηκαν στην βελτιστοποίηση επερωτήσεων μπορούν να χρησιμοποιηθούν στην επίλυση προβλημάτων ικανοποίησης περιορισμών. 1.3 Επίλυση Προβλημάτων Ικανοποίησης Περιορισμών Όπως αναφέρθηκε, λύση ενός προβλήματος ικανοποίησης περιορισμών είναι μια πλήρης ανάθεση που ικανοποιεί όλους τους περιορισμούς. Έτσι όπως διατυπώθηκαν τα προβλήματα ικανοποίησης περιορισμών, μπορούν να αντιμετωπιστούν σαν προβλήματα αναζήτησης και μπορούν να επιλυθούν με οποιονδήποτε από τους αλγόριθμους τυφλής ή πληροφορημένης αναζήτησης. Εξαιτίας της ιδιότητας της αντιμεταθετικότητας που ισχύει στα προβλήματα ικανοποίησης περιορισμών, όλοι οι αλγόριθμοι αναζήτησης των προβλημάτων ικανοποίησης περιορισμών παράγουν διαδόχους εξετάζοντας τις δυνατές αναθέσεις τιμών για μια μόνο μεταβλητή σε κάθε κόμβο του δέντρου αναζήτησης. 18

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

αριθμός των ακμών, τόσο πιο πολύ περιορισμένη είναι η μεταβλητή. Ωστόσο, αυτή η μέτρηση είναι κάπως αδύναμη αφού είναι στατική, δηλαδή δεν λαμβάνει υπόψη την τωρινή κατάσταση της μερικής λύσης. Ένας καλύτερος τρόπος είναι η μέτρηση των ακμών που συνδέονται στους κόμβους που δεν έχουν ακόμα συμπεριληφθεί στη μερική λύση. Αυτή η μέτρηση είναι δυναμική, αφού το νούμερο αλλάζει δυναμικά κατά τη διάρκεια κάθε διεργασίας και μας δείχνει πόσο περιορισμένη είναι μια μεταβλητή σε σχέση με το μελλοντικό υποπρόβλημα. Μια εναλλακτική μέθοδος είναι η μέτρηση του αριθμού των τιμών που είναι συνεπείς με τη μερική λύση. Αυτή η μέθοδος συνήθως χρησιμοποιείται στον αλγόριθμο αναζήτησης που ονομάζεται πρώιμος έλεγχος (forward checking). Πιο αναλυτικά, όταν ανατίθεται στην τρέχουσα μεταβλητή μια τιμή, ο πρώιμος έλεγχος ψάχνει για κάθε μελλοντική μεταβλητή Υ (στην οποία δεν έχει ανατεθεί ακόμα τιμή) και η οποία συνδέεται με κάποιο περιορισμό με τη Χ και διαγράφει από το πεδίο τιμών της Υ κάθε τιμή που βρίσκεται σε ασυνέπεια με την επιλεγόμενη τιμή της Χ. Έτσι μπορεί εύκολα σε κάθε βήμα ο αλγόριθμος να επιλέξει τη μεταβλητή με το μικρότερο τρέχων πεδίο τιμών. Ο τρόπος με τον οποίο οι τρέχουσες αποφάσεις για τη μεταβλητή και την επιλογή τιμής για αυτήν αποτρέπουν μέρος της μελλοντικής αναζήτησης είναι η απλούστερη μορφή διάδοσης περιορισμών. Ο πρώιμος έλεγχος διαδίδει το αποτέλεσμα της προσωρινά επιλεγμένης τιμής σε κάθε μια από τις μελλοντικές μεταβλητές με τις οποίες σχετίζεται σε κάποιο περιορισμό. Αν το πεδίο τιμών μιας από αυτές τις μελλοντικές μεταβλητές γίνει κενό (όλες οι τιμές βρίσκονται σε ασυνέπεια) τότε η προσωρινά επιλεγμένη τιμή απορρίπτεται και η επόμενη υποψήφια επιλέγεται. Η διαδικασία αυτή ακολουθείται μέχρι την εύρεση λύσης ή την υπόδειξη ότι δεν υπάρχει λύση. Ο πρώιμος έλεγχος ανιχνεύει πολλές ασυνέπειες, αλλά δεν τις ανιχνεύει όλες. Για το σκοπό αυτό εισήχθησαν οι αλγόριθμοι συνέπειας. 1.3.3 Αλγόριθμοι Συνέπειας Οι αλγόριθμοι συνέπειας είναι προεπεξεργαστικοί αλγόριθμοι που μειώνουν την ανώφελη οπισθοδρόμηση. Οι αλγόριθμοι συνέπειας μπορούν να κατηγοριοποιηθούν ανάλογα με την έννοια της k-συνέπειας (k-consistency). Ένα CSP είναι k-συνεπές αν δεδομένων οποιωνδήποτε αρχικοποιημένων k-1 μεταβλητών που ικανοποιούν όλους τους περιορισμούς σε αυτές, είναι δυνατόν να βρεθεί μια ανάθεση οποιασδήποτε k-οστής μεταβλητής τέτοια ώστε οι k- τιμές να ικανοποιούν όλους τους περιορισμούς ανάμεσά τους. Αν υπάρχουν n μεταβλητές σε ένα CSP και το CSP είναι k-συνεπές για όλα τα k n, τότε μια λύση μπορεί να ληφθεί άμεσα χωρίς καμία υπαναχώρηση. Ωστόσο, η επίτευξη ενός τέτοιου υψηλού βαθμού συνέπειας απαιτεί υψηλό υπολογιστικό κόστος, και έτσι πρέπει να βρεθεί ένας κατάλληλος συνδυασμός αλγορίθμων συνέπειας και υπαναχώρησης ώστε το συνολικό κόστος να ελαχιστοποιείται. Διάδοση περιορισμού (constraint propagation) είναι ο γενικός όρος που χρησιμοποιείται για τη διάδοση των επιπτώσεων ενός περιορισμού που ισχύει για μια μεταβλητή σε άλλες μεταβλητές. Η ιδέα της συνέπειας τόξου (arc consistency) παρέχει μια γρήγορη μέθοδο για τη διάδοση περιορισμών που είναι σημαντικά ισχυρότερη από τον πρώιμο έλεγχο. Με τον όρο τόξο εννοούμε ένα προσανατολισμένο τόξο στο γράφημα περιορισμών. Μια μεταβλητή λέμε ότι είναι τοξικά-συνεπής (arc-consistent) με μια άλλη μεταβλητή, αν για κάθε μια από τις αποδεκτές τιμές της είναι συνεπής με μια τιμή της δεύτερης μεταβλητής. Ένα πρόβλημα είναι τοξικά-συνεπές όταν κάθε μεταβλητή του είναι τοξικά-συνεπής με μια άλλη μεταβλητή. Ο έλεγχος της συνέπειας τόξου μπορεί να εφαρμοστεί είτε ως στάδιο προεπεξεργασίας πριν αρχίσει η διαδικασία της αναζήτησης είτε ως στάδιο διάδοσης (όπως ο πρώιμος έλεγχος) μετά από κάθε ανάθεση τιμής κατά την αναζήτηση (αυτός ο τελευταίος αλγόριθμος καλείται μερικές φορές MAC, από το Maintaining Arc Consistency διατήρηση συνέπειας τόξου). Και στις δυο περιπτώσεις, η διαδικασία πρέπει να εφαρμόζεται επανειλημμένα μέχρι να μην απομείνουν άλλες ασυνέπειες. Αυτό συμβαίνει επειδή, όποτε διαγράφεται μια τιμή από το πεδίο ορισμού κάποιας μεταβλητής 20

για να αρθεί μια συνέπεια τόξου, μια νέα ασυνέπεια τόξου θα μπορούσε να προκύψει στα τόξα που δείχνουν τη μεταβλητή αυτή. 2 ΚΑΤΑΝΕΜΗΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ ΙΚΑΝΟΠΟΙΗΣΗΣ ΠΕΡΙΟΡΙΣΜΩΝ Ένα κατανεμημένο πρόβλημα ικανοποίησης περιορισμών είναι ένα πρόβλημα ικανοποίησης περιορισμών στο οποίο οι μεταβλητές και οι περιορισμοί κατανέμονται σε πράκτορες. Η εύρεση μιας τιμής στις μεταβλητές που ικανοποιεί τους διαπρακτορικούς περιορισμούς μπορεί να θεωρηθεί σαν την επίτευξη συντονισμού και συνέπειας μεταξύ των πρακτόρων. Η επίτευξη συντονισμού και συνέπειας είναι ένα από τα σημαντικότερα ζητήματα έρευνας στα πολύ-πρακτορικά συστήματα. Συνεπώς, οι τεχνικές κατανεμημένης ικανοποίησης περιορισμών μπορούν να θεωρηθούν σαν μια σημαντική υποδομή για την συνεργασία. Διάφορα προβλήματα στα πολυπρακτορικά συστήματα μπορούν να αναπαρασταθούν σαν κατανεμημένα CSPs και να επιλυθούν με μια από τις μεθόδους που έχουν αναπτυχθεί για το σκοπό αυτό. 2.1 Ορισμοί Σύμφωνα με τους Yokoo et al.[4] ένα Κατανεμημένο Πρόβλημα Ικανοποίησης Περιορισμών (distributed CSP dcsp) είναι ένα πρόβλημα ικανοποίησης περιορισμών στο οποίο οι μεταβλητές και οι περιορισμοί είναι κατανεμημένες ανάμεσα σε πράκτορες. Υποθέτουμε το ακόλουθο μοντέλο επικοινωνίας. Οι πράκτορες επικοινωνούν μεταξύ τους με την ανταλλαγή μηνυμάτων. Ένας πράκτορας μπορεί να στέλνει μηνύματα σε άλλους πράκτορες, αν γνωρίζει τις διευθύνσεις ή τους προσδιοριστές των πρακτόρων. Η καθυστέρηση της παράδοσης των μηνυμάτων είναι άγνωστη, αλλά πεπερασμένη. Για τη μετάδοση μεταξύ οποιουδήποτε ζευγαριού πρακτόρων, τα μηνύματα λαμβάνονται στη σειρά με την οποία στάλθηκαν. Πρέπει να τονιστεί ότι αυτό στο μοντέλο δεν σημαίνει απαραίτητα ότι το φυσικό δίκτυο επικοινωνίας πρέπει να είναι πλήρως συνδεδεμένο (δηλαδή ένας πλήρης γράφος). Αντίθετα με τις περισσότερες μελέτες παράλληλων/κατανεμημένων αλγορίθμων, στις οποίες η τοπολογία του φυσικού επικοινωνιακού δικτύου παίζει ένα σημαντικό ρόλο, υποθέτουμε την ύπαρξη μιας αξιόπιστης επικοινωνιακής υποδομής ανάμεσα στους πράκτορες και δεν μας απασχολεί η υλοποίηση του φυσικού δικτύου επικοινωνίας. Αυτό γίνεται γιατί το κύριο μέλημα μας είναι η συνεργασία ανάμεσα στους ευφυείς πράκτορες αντί η επίλυση CSPs με κάποιες πολυεπεξεργαστικές αρχιτεκτονικές. Στο μοντέλο που προτείνεται σαν ορισμός ενός κατανεμημένου προβλήματος ικανοποίησης περιορισμών κάθε πράκτορας έχει διάφορους περιορισμούς, που διακρίνονται σε ενδο-πρακτορικούς και διαπρακτορικούς. Ενδο-πρακτορικοί περιορισμοί (Intra-Agent Constraints) είναι οι περιορισμοί που αφορούν τις μεταβλητές μόνο ενός πράκτορα και για την ικανοποίηση των οποίων είναι αποκλειστικά υπεύθυνος. 21

Δια-πρακτορικοί περιορισμοί (Inter-Agent Constraints) είναι οι περιορισμοί που αφορούν τις μεταβλητές περισσοτέρων του ενός πρακτόρων και για την ικανοποίηση των οποίων απαιτείται συντονισμός και επικοινωνία μεταξύ τους. Επίσης υπάρχουν και έχει διάφορες μεταβλητές, τις οποίες διακρίνει σε ιδιωτικές και δημόσιες. Ιδιωτικές (private) είναι οι μεταβλητές που είναι ορατές μόνο στον πράκτοραιδιοκτήτη τους και δεν είναι μέρος κανενός δια-πρακτορικού περιορισμού. Δημόσιες (public) είναι οι μεταβλητές που είναι ορατές σε όσους πράκτορες συμμετέχουν σε έναν δια-πρακτορικό περιορισμό που περιλαμβάνει μια τέτοια μεταβλητή. Παρόμοια με τα απλά (κεντρικοποιημένα) προβλήματα ικανοποίησης περιορισμών, είναι χρήσιμο να αντιλαμβανόμαστε τα κατανεμημένα CSPs σαν ένα γράφημα, στο οποίο οι κόμβοι αναπαριστούν τους πράκτορες και τα τόξα αναπαριστούν τους διαπρακτορικούς περιορισμούς. Επίσης κάθε πράκτορας περιέχει με τη σειρά του ένα γράφημα περιορισμών στο οποίο, όπως αναφέρθηκε οι κόμβοι αναπαριστούν τις μεταβλητές του πράκτορα και τα τόξα τους ενδοπρακτορικούς περιορισμούς. Ένα τέτοιο γράφημα φαίνεται στην Εικόνα 2.1. Λύση ενός κατανεμημένου προβλήματος ικανοποίησης περιορισμών είναι η εύρεση μιας ανάθεσης για όλες τις μεταβλητές που ικανοποιεί ταυτοχρόνως όλους τους περιορισμούς στο πρόβλημα. Πρέπει να σημειωθεί ότι παρόλο που οι αλγόριθμοι για την επίλυση κατανεμημένων CSPs μοιάζουν με τις παράλληλες/κατανεμημένες επεξεργαστικές μεθόδους για την επίλυση CSPs τα κίνητρα για την έρευνα είναι θεμελιωδώς διαφορετικά. Το κύριο μέλημα στην παράλληλη/κατανεμημένη επεξεργασία είναι η αποδοτικότητα, και μπορούμε να επιλέξουμε οποιοδήποτε τύπο παράλληλης /κατανεμημένης αρχιτεκτονικής υπολογιστών για να επιλύσουμε ένα δεδομένο πρόβλημα αποδοτικά. Αντίθετα, σε ένα κατανεμημένο CSP, υπάρχει ήδη μια κατάσταση όπου η γνώση για το πρόβλημα (δηλαδή οι μεταβλητές και οι περιορισμοί) κατανέμεται ανάμεσα σε πράκτορες. Για παράδειγμα, όταν κάθε πράκτορας ανήκει σε έναν διαφορετικό οργανισμό, υπάρχουν ήδη πολλαπλοί πράκτορες, καθένας από τους οποίους έχει διαφορετική και μερική γνώση για το καθολικό πρόβλημα που πρέπει να λυθεί. Συνεπώς το κύριο ερευνητικό θέμα είναι για το πώς θα φτάσουμε σε λύση από τη δεδομένη κατάσταση. Αν όλη η γνώση για ένα πρόβλημα μπορεί να συγκεντρωθεί σε έναν πράκτορα, αυτός ο πράκτορας θα μπορούσε να λύσει το πρόβλημα μόνος του χρησιμοποιώντας κάποιους κεντρικοποιημένους αλγορίθμους ικανοποίησης περιορισμών. Ωστόσο, η συλλογή όλης της πληροφορίας για ένα πρόβλημα απαιτεί όχι μόνο επικοινωνιακό κόστος, αλλά και κόστος μεταγλώττισης της γνώσης σε ανταλλάξιμη μορφή. Για παράδειγμα, ένας περιορισμός μπορεί να αποθηκεύεται σαν μια περίπλοκη ειδική εσωτερική συνάρτηση μέσα σε ένα πράκτορα. Για να ανταλλαχθεί η γνώση του περιορισμού αυτού σε έναν άλλο πράκτορα, ο οποίος μπορεί να έχει υλοποιηθεί σε μια διαφορετική αρχιτεκτονική, ο πράκτορας θα έπρεπε να μεταφράσει τη γνώση σε μια ανταλλάξιμη μορφή, όπως ένας πίνακας επιτρεπτών (ή μη) συνδυασμών τιμών. Αυτό το κόστος της κεντρικοποίησης όλης της πληροφορίας σε ένα πράκτορα μπορεί να είναι απαγορευτικά υψηλό. 22

Α 2 Χ 2 Χ 1 Χ 3 Α 1 Α 3 Χ 1 Χ 2 Χ 2 Χ 3 Χ1 Χ 5 Χ 3 Χ 4 Α 4 Χ 4 Χ 1 Χ 2 Εικόνα 2.1 Ένα κατανεμημένο πρόβλημα ικανοποίησης περιορισμών αναπαριστώμενο με γράφημα. Στο συγκεκριμένο πρόβλημα σε κάθε πράκτορα οι ενδοπρακτορικοί και διαπρακτορικοί περιορισμοί ισχύουν είναι του τύπου. Επίσης, σε ορισμένες εφαρμογές, όπως όταν οι πράκτορες δρουν σαν γραμματείς κάποιου ατόμου, η συγκέντρωση όλων των πληροφοριών σε έναν πράκτορα είναι ανεπιθύμητη ή αδύνατη για λόγους ασφάλειας/ιδιωτικότητας. Σε τέτοιες περιπτώσεις, πολλαπλοί πράκτορες πρέπει να λύσουν το πρόβλημα χωρίς την κεντρικοποίηση όλης της πληροφορίας. 2.2 Εφαρμογές 2.2.1 Προβλήματα Κατανομής[1] Η κατανομή εργασιών ή πόρων σε πράκτορες όταν υπάρχουν διαπρακτορικοί περιορισμοί είναι ένα πρόβλημα που μπορεί να μοντελοποιηθεί σαν ένα κατανεμημένο CSP βλέποντας κάθε εργασία ή πόρο σαν μια μεταβλητή και τις πιθανές αναθέσεις σαν τιμές. Για παράδειγμα, το πολύ-επίπεδο διαπραγματευτικό πρωτόκολλο αντιμετωπίζει την περίπτωση στην οποία οι εργασίες δεν είναι ανεξάρτητες και υπάρχουν διάφοροι τρόποι για να πραγματοποιηθεί μια εργασία. Ο στόχος της πολύ-επίπεδης συνεργασίας είναι να βρεθεί ο συνδυασμός των εργασιών έτσι ώστε όλες να εκτελεστούν ταυτόχρονα. Ένα παράδειγμα δικτύου επικοινωνίας που χρησιμοποιείται σε ένα πολύ-επίπεδο διαπραγματευτικό πρωτόκολλο φαίνεται στην εικόνα 2.2. Αυτό το επικοινωνιακό δίκτυο αποτελείται από πολλαπλές τοποθεσίες (π.χ. Α-1, Β-2) και συνδέσμους (π.χ. L-5, L-11). Αυτές οι τοποθεσίες είναι γεωγραφικά διαιρεμένες σε διάφορες περιοχές (π.χ. Α, Β) και κάθε περιοχή ελέγχεται από διαφορετικούς πράκτορες. Αυτοί οι πράκτορες προσπαθούν να φτιάξουν επικοινωνιακούς διαύλους σύμφωνα με αιτήσεις σύνδεσης (στόχους) κάτω από περιορισμούς στη χωρητικότητα των επικοινωνιακών συνδέσμων. Κάθε πράκτορας αναγνωρίζει ένα μέρος του καθολικού έργου για την πραγματοποίηση ενός διαύλου που ονομάζεται κομμάτι της εργασίας. Για παράδειγμα ας υποθέσουμε ότι ένας στόχος είναι να συνδέσουμε το Α-1 και το D-1. Ο πράκτορας Α αναγνωρίζει δυο κομμάτια του σχεδίου, τα 1Α και 2Α, όπου ο 1Α χρησιμοποιεί τον L-1 και τον L-2, και ο 2Α χρησιμοποιεί τον L-1 και τον L- 12. Ένα τέτοιο πρόβλημα μπορεί εύκολα να αναπαρασταθεί σαν κατανεμημένο CSP με κάθε 23

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

B L-12 Β-1 L-11 Β-2 L-10 L-9 D-1 D Α-2 L-1 Α-1 Α L-2 C-1 L-3 L-13 E-2 C-2 L-14 C E L-4 C-3 E-1 L-5 L-6 L-8 D-3 L-6 D-2 Εικόνα 2.2 Παράδειγμα ενός κατανεμημένου προβλήματος κατανομής πόρων. 2.3 Επίλυση Κατανεμημένων Προβλημάτων Ικανοποίησης Περιορισμών Όπως αναφέρθηκε λύση ενός κατανεμημένου προβλήματος ικανοποίησης περιορισμών είναι ένα σύνολο από πλήρεις αναθέσεις στις μεταβλητές όλων των πρακτόρων, ώστε να ικανοποιούνται όλοι οι περιορισμοί, διαπρακτορικοί και ενδοπρακτορικοί. Σύμφωνα με τον προηγούμενο ορισμό για την επίλυση ενός κατανεμημένου CSP θα μπορούσε να επιλεχθεί ένας πράκτορας «ηγέτης» στον οποίο θα συγκεντρωνόταν όλη η πληροφορία σχετικά με τις μεταβλητές, τα πεδία ορισμών τους και τους περιορισμούς τους. Ο πράκτορας αυτός θα μπορούσε να λύσει το CSP μόνος του χρησιμοποιώντας οποιαδήποτε από τις γνωστές τεχνικές επίλυσης CSP. Ωστόσο όπως αναφέρθηκε, το κόστος της συγκέντρωσης όλης της πληροφορίας μπορεί να είναι απαγορευτικά υψηλό. Επιπλέον, σε ορισμένες εφαρμογές, όπως όταν οι πράκτορες δρουν σαν γραμματείς ενός ατόμου, η συγκέντρωση όλης της πληροφορίας σε ένα πράκτορα είναι ανεπιθύμητη ή αδύνατη για λόγους ασφάλειας ή ιδιωτικότητας. Οι τεχνικές επίλυσης κατανεμημένων CSP γενικά προκύπτουν από τις αντίστοιχες κεντρικοποιημένες τεχνικές με ορισμένες αλλαγές που αφορούν την επικοινωνία και το συντονισμό των πρακτόρων. Ακολουθούν ενδεικτικά κάποιες τεχνικές. 2.3.1 Σύγχρονη/Ασύγχρονη Υπαναχώρηση Η αναζήτηση με υπαναχώρηση όπως αναφέρθηκε στην παράγραφο 1.3.1 με ορισμένες αλλαγές μπορεί να χρησιμοποιηθεί για τη λύση κατανεμημένων CSPs. Υποθέτοντας ότι οι πράκτορες έχουν συμφωνήσει για τη σειρά ανάθεσης των μεταβλητών τους (δηλαδή ότι ο πράκτορας A1 θα αναθέσει πρώτος, ο Α2 δεύτερος κ.ο.κ), κάθε πράκτορας που λαμβάνει μια μερική λύση (τις αναθέσεις των προηγούμενων μεταβλητών) από τον προηγούμενο πράκτορα, αναθέτει τιμές στις δικές του μεταβλητές, ανάλογα με τους περιορισμούς που γνωρίζει. Αν βρει μια τιμή που να ικανοποιεί τους περιορισμούς, την προσθέτει στη μερική λύση και την προωθεί στον επόμενο πράκτορα. Αν καμία τιμή στη μεταβλητή δε μπορεί να ικανοποιήσει τους περιορισμούς, τότε στέλνει ένα μήνυμα υπαναχώρησης στον προηγούμενο πράκτορα. Ενώ αυτή η τεχνική δεν υστερεί από το ίδιο επικοινωνιακό κόστος της αντίστοιχης κεντρικοποιημένης, ο καθορισμός της σειράς ανάθεσης απαιτεί κάποιο επικοινωνιακό κόστος. 25

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