ΠΛΗ 405 Τεχνητή Νοηµοσύνη Α ληροφόρητη Αναζήτηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υ ολογιστών Πολυτεχνείο Κρήτης
Ε ανάληψη Καταβολές συνεισφορά άλλων επιστηµών στην ΤΝ Ιστορική αναδροµή 1956 σήµερα Πράκτορες χαρακτηριστικά στοιχεία και είδη πρακτόρων Περιβάλλοντα χαρακτηρισµοί και ιδιότητες
Σήµερα Πράκτορας ε ίλυσης ροβληµάτων πράκτορας µε στόχο Αναζήτηση διατύπωση προβλήµατος και στόχου Στρατηγικές α ληροφόρητης αναζήτησης αναζήτηση σε πλάτος αναζήτηση οµοιόµορφου κόστους αναζήτηση σε βάθος αναζήτηση περιορισµένου βάθους επαναληπτική εκβάθυνση αµφίδροµη αναζήτηση
Πράκτορες Ε ίλυσης Προβληµάτων Ε ίλυση ροβληµάτων η εύρεση κάποιας λύσης για κάποιο πρόβληµα ιατύ ωση ροβλήµατος (problem formulation) ορισµός καταστάσεων και ενεργειών προς εξέταση ιατύ ωση στόχου (goal formulation) ορισµός ενός υποσυνόλου καταστάσεων που αποτελούν λύση Ε ιλογή ενεργειών ακολουθίες ενεργειών αντί για άµεσες ενέργειες Αναζήτηση η διαδικασία εύρεσης µιας κατάλληλης ακολουθίας ενεργειών
Παράδειγµα: ιαδροµές στη Ρουµανία
functionsimple-problem-solving-agent( static: inputs: αντίληψη, ακολουθία, κατάσταση, µια ακολουθία αντίληψηενεργειών, αντίληψη) αρχικά returnsενέργεια κενή Κώδικας στόχος, ένας περιγραφή στόχος, της τρέχουσας κατάστασης του κόσµου Πράκτορα κατάσταση Update-State( ifη ακολουθίαείναι ρόβληµα, µια διατύπωση κατάσταση, αρχικά προβλήµατος κενός ρόβληµα Formulate-Problem( στόχος Formulate-Goal( κενή then do κατάσταση) αντίληψη) ακολουθία Rest( ενέργεια First( ακολουθία Search( ακολουθία) ρόβληµα) κατάσταση, στόχος) returnενέργεια
Παραδοχές Περιβάλλον στατικό (αµετάβλητο στη διάρκεια της αναζήτησης) παρατηρήσιµο (γνωστή αρχική κατάσταση) διακριτό (πεπερασµένος αριθµός ενεργειών) αιτιοκρατικό (προβλέψιµες µεταβάσεις) Πράκτορας έλεγχος ανοικτού βρόχου (open-loop control) εκτέλεση χωρίς χρήση αντιλήψεων (sensor-less) Αφαίρεση (abstraction) παράλειψη περιττών λεπτοµερειών από µια αναπαράσταση
Αναζήτηση Search
ιατύ ωση Προβληµάτων Αρχική κατάσταση (initial state) τρέχουσα κατάσταση περιβάλλοντος και πράκτορα Χώρος καταστάσεων (state space) όλες οι κατάστασεις που είναι προσπελάσιµες από την αρχική Συνάρτηση διαδοχής (successor function) για κάθε κατάσταση, οι έγκυρες ενέργειες και οι διάδοχες καταστάσεις Έλεγχος στόχου (goal test) αποφαίνεται για το αν επιτυγχάνεται ο στόχος σε κάποια κατάσταση Συνάρτηση κόστους (cost function) προσδιορίζει το κόστος για κάθε βήµα µιας ακολουθίας ενεργειών
Παράδειγµα: ιαδροµές στη Ρουµανία
Ο Μικρόκοσµος της Σκού ας
3x3 Puzzle Πλακιδίων γενική κλάση NP-πλήρων προβληµάτων 4x4 puzzle: 16!/2 = 1,300,000,000,000 καταστάσεις (εύκολο) 5x5 puzzle: 25!/2 = 1025καταστάσεις (δύσκολο)
Το Πρόβληµα των 8 Βασιλισσών αυξητική διατύπωση (incremental formulation) διατύπωση µε πλήρεις καταστάσεις (full-state formulation) γενικό πρόβληµα: n βασίλισσες σε n n σκακιέρα
Προβλήµατα Πραγµατικού Κόσµου Πρόβληµα εύρεσης δροµολογίου (routing problem) Πρόβληµα εριήγησης (touring problem) Πρόβληµα λανόδιου ωλητή (traveling salesman) ιάταξη κυκλώµατος VLSI (VLSPI layout) Πλοήγηση ροµ ότ (robot navigation) Αυτόµατη συναρµολόγηση (automatic assembly) Σύνθεση ρωτεϊνών (protein synthesis) Αναζήτηση στο διαδίκτυο (internet search)
ένδρο Αναζήτησης ένδρο αναζήτησης (search tree) συστηµατική δηµιουργία διαδροµών στο χώρο καταστάσεων κόµβος αναζήτησης (search node): αντιστοιχεί σε µία κατάσταση ρίζα (root) : ο κόµβος της αρχικής κατάστασης επέκταση (expansion): δηµιουργία απογόνων κάποιου κόµβου µέθοδος παραγωγής (generation): συνάρτηση διαδοχής στρατηγική αναζήτησης (search strategy): επιλογή επέκτασης Παρατηρήσεις άλλο κόµβος, άλλο κατάσταση το δένδρο µπορεί να γίνει γράφηµα σε κάποια προβλήµατα
ένδρο Αναζήτησης
σύνολο τα Κόµβος Αναζήτησης υλοποίηση φύλλα κόµβων της µε αναζήτησης ουρά υπό αναµονή Σύνορο (fringe) κατάσταση γονικός ενέργεια κόστος βάθοςακολουθίας κόµβος MakeQueue EmptyQueue FirstNode RemoveFirstNode Λειτουργίες InsertNodes οµή δεδοµένων
functiontree-search( αρχικοποίηση Άτυ ος loop doifδεν της αρχικής ρόβληµα, του δένδρου κατάστασης στρατηγική) αναζήτησης του returnsµια ροβλήµατος µε χρήση λύση ή αποτυχία υπάρχουν Αλγόριθµος υποψήφιοι για επέκταση Αναζήτησης επιλογή ενός κόµβου-φύλλου then returnαποτυχία ifο κόµβος περιέχει thenreturnτην µια κατάσταση για να επεκταθεί, αντίστοιχη στόχου σύµφωνα λύση µε τη στρατηγική elseο κόµβος επεκτείνεται προστίθενται και οι στο κόµβοι δένδρο που αναζήτησης προκύπτουν
functiontree-search( σύνορο InsertNode( ρόβληµα, σύνορο) returnsµια λύση ή αποτυχία Τυ ικός loop doifemptyqueue( MakeNode( InitialState[ ρόβληµα]), σύνορο) Αλγόριθµος Αναζήτησης (I) κόµβος RemoveFirstNode( σύνορο) then σύνορο) returnαποτυχία ifgoaltest[ ρόβληµα] σύνορο InsertNodes( then returnsolution( που Expand( εφαρµόστηκε κόµβος) κόµβος, στην ρόβληµα), State[κόµβος] σύνορο) επιτύχει
functionexpand( διάδοχοι κενό Τυ ικός for each ενέργεια, κόµβος, σύνολο ρόβληµα) returnsένα σύνολο κόµβων Αλγόριθµος α οτέλεσµα in Successor-Fn[ ρόβληµα]( Αναζήτησης State[κόµβος]) (II) State[s] Parent-Node[s] s νέος α οτέλεσµα κόµβος κόµβος Node do Depth[s] προσθήκη Path-Cost[s] Action[s] Depth[κόµβος] ενέργεια του Path-Cost[κόµβος] sστο σύνολο + διάδοχοι 1 + Step-Cost(κόµβος,ενέργεια,s) returnδιάδοχοι
Μέτρηση Α όδοσης Αναζήτησης Πληρότητα (completeness) θα βρει εγγυηµένα κάποια λύση, αν υπάρχει; Βελτιστότητα (optimality) θα βρει µια βέλτιστη λύση; Χρονική ολυ λοκότητα (time complexity) πόσο χρόνο χρειάζεται για να βρει λύση; Χωρική ολυ λοκότητα (space complexity) πόσο χώρο (µνήµη) χρειάζεται για να βρει λύση; Μέγεθος ροβλήµατος παράγοντας διακλάδωσης (branching factor) b βάθος της πιο κοντινής λύσης d µέγιστο µήκος οποιασδήποτε διαδροµής m
Στρατηγικές Α ληροφόρητης Αναζήτησης Uninformed or Blind Search
Αναζήτηση σε Πλάτος (Breadth-First) Βάθος (d) Κόµβοι(b=10) 111.100 1100 επέκταση του κόµβου µε το µικρότερο βάθος στο τρέχον σύνορο υλοποίηση µε ουρά FIFO (First In, First Out) πλήρης, βέλτιστη (υπό προϋποθέσεις), εκθετική πολυπλοκότητα O(bd+1) 1015 1013 1011 109 107 Χρόνος(10000 0.11 3.523 129 35 31 19 ηµέρες δευτερόλε τα χρόνια ώρες λε τά κόµβοι/sec) 106 101 1 exabyte 10 14 12 8642 Μνήµη(1000 megabytes petabytes terabytes gigabytes byte/κόµβο)
Αναζήτηση Οµοιόµορφου Κόστους (uniform cost search) παραλλαγή της αναζήτησης κατά πλάτος επέκταση του κόµβου µε το µικρότερο κόστος διαδροµής σύνορο: εξαρτώµενη κόµβοι από µε το (περίπου) ελάχιστο βέλτιστο κόστος οµοιόµορφο βήµατος κόστος πλήρης, εάν το κόστος βήµατος είναι πάντα θετικό βέλτιστη, εάν το κόστος βήµατος είναι πάντα θετικό εκθετική πολυπλοκότητα πιθανόν καλύτερη, πιθανόν χειρότερη
Αναζήτηση σε Βάθος (Depth-First) επέκταση του κόµβου µε το µεγαλύτερο βάθος στο τρέχον σύνορο οπισθοχώρηση στον αµέσως προηγούµενο κόµβο υλοποίηση βελτίωση µε µεταβολή υπαναχώρηση ουρά LIFO κατάστασης (backtracking) (Last In, (προϋποθέτει First Out) δυνατότητα ή στοίβα αναίρεσης) (stack) δεν είναι πλήρης (διαδροµές απείρου µήκους) δεν είναι βέλτιστη (προχωράει σε βάθος ανεξάρτητα από κόστος) γραµµική χωρική πολυπλοκότητα εκθετική χρονική πολυπλοκότητα
Αναζήτηση κατά Βάθος
Αναζήτηση Περιοσµένου Βάθους (Depth-Limited Search) η λύση µπορεί να βρίσκεται χαµηλότερα µειονέκτηµα: πρόβληµα βελτιστότητας παραλλαγή της αναζήτησης κατά βάθος διακοπή της επέκτασης πέρα από κάποιο προκαθορισµένο βάθος ευρετικός µια βέλτιστη προσδιορισµός λύση µπορεί να ορίου βρίσκεται βάθους χαµηλότερα (διάµετρος γράφου) πλεονέκτηµα: αποφυγή άπειρων διαδροµών µειονέκτηµα: πρόβληµα πληρότητας
Ε αναλη τική Εκβάθυνση (Iterative-Deepening Search) έξυπνος χειρισµός αναζήτησης περιορισµένου βάθους σταδιακή µικρότερη αύξηση του ορίου βάθους (L = 0, 1, 2, 3,...) συνδυάζει τα πλεονεκτήµατα των αναζητήσεων σε βάθος και πλάτος πλήρης εκθετική, αλλά από όχι τη χωρική µεγαλύτερη(d)b+ πολυπλοκότητα (d 1)b2+ + της αναζήτησης (1)bd= σε πλάτος! O(bd)!!!! βέλτιστη (υπό προϋποθέσεις) χωρική πολυπλοκότητα Ο(bd) χρονική πολυπλοκότητα παραλλαγή: αναζήτηση επαναληπτικής επιµήκυνσης
Ε αναλη τική Εκβάθυνση
Ε αναλη τική Εκβάθυνση
Αµφόδροµη Αναζήτηση (Bidirectional Search) bd/2+bd/2<< bd
Σύγκριση Α ληροφόρητων Στρατηγικών
Σύγγραµµα Ενότητα 3.1 3.4 Μελέτη