|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| assignment.md | ||
README.md
Συστήματα Πολλαπλών Πρακτόρων
Μία από τις πιθανές μεθόδους επίτευξης νοημοσύνης είναι η λεγόμενη αναδυόμενη (ή συνεργατική) προσέγγιση, η οποία βασίζεται στο γεγονός ότι η συνδυασμένη συμπεριφορά πολλών σχετικά απλών πρακτόρων μπορεί να οδηγήσει σε μία συνολικά πιο σύνθετη (ή ευφυή) συμπεριφορά του συστήματος ως σύνολο. Θεωρητικά, αυτό βασίζεται στις αρχές της Συλλογικής Νοημοσύνης, της Αναδυόμενης Θεωρίας και της Εξελικτικής Κυβερνητικής, οι οποίες δηλώνουν ότι συστήματα υψηλότερου επιπέδου αποκτούν κάποιο είδος πρόσθετης αξίας όταν συνδυάζονται σωστά από συστήματα χαμηλότερου επιπέδου (το λεγόμενο αρχή της μετάβασης μεταξύ συστημάτων).
Προ-διάλεξη κουίζ
Η κατεύθυνση των Συστημάτων Πολλαπλών Πρακτόρων εμφανίστηκε στην Τεχνητή Νοημοσύνη τη δεκαετία του 1990 ως απάντηση στην ανάπτυξη του Διαδικτύου και των κατανεμημένων συστημάτων. Ένα από τα κλασικά εγχειρίδια ΤΝ, Τεχνητή Νοημοσύνη: Μια Σύγχρονη Προσέγγιση, εστιάζει στην όψη της κλασικής ΤΝ από την πλευρά των Συστημάτων Πολλαπλών Πρακτόρων.
Κεντρικό στην προσέγγιση πολλαπλών πρακτόρων είναι η έννοια του Πράκτορα - μιας οντότητας που ζει σε κάποιο περιβάλλον, το οποίο μπορεί να αντιλαμβάνεται και να επηρεάζει. Πρόκειται για έναν πολύ ευρύ ορισμό, και μπορεί να υπάρξουν πολλοί διαφορετικοί τύποι και ταξινομήσεις πρακτόρων:
- Αναλόγως της ικανότητάς τους να συλλογίζονται:
- Αντιδραστικοί πράκτορες έχουν συνήθως απλή συμπεριφορά τύπου αίτημα-απάντησης
- Στοχαστικοί πράκτορες χρησιμοποιούν κάποιο είδος λογικής σκέψης και/ή σχεδιασμού
- Αναλόγως του τόπου εκτέλεσης του κώδικα πρακτορα:
- Στατικοί πράκτορες εργάζονται σε έναν αφιερωμένο κόμβο δικτύου
- Κινητοί πράκτορες μπορούν να μεταφέρουν τον κώδικά τους μεταξύ κόμβων δικτύου
- Αναλόγως της συμπεριφοράς τους:
- Παθητικοί πράκτορες δεν έχουν συγκεκριμένους στόχους. Τέτοιοι πράκτορες μπορούν να αντιδρούν σε εξωτερικά ερεθίσματα, αλλά δεν θα ξεκινήσουν δράσεις από μόνοι τους.
- Ενεργητικοί πράκτορες έχουν κάποιους στόχους που επιδιώκουν
- Γνωστικοί πράκτορες εμπλέκουν σύνθετο σχεδιασμό και σκέψη
Τα συστήματα πολλαπλών πρακτόρων χρησιμοποιούνται σήμερα σε μια σειρά από εφαρμογές:
- Σε παιχνίδια, πολλοί μη-παίκτες χαρακτήρες χρησιμοποιούν κάποιο είδος ΤΝ, και μπορεί να θεωρηθούν ως ευφυείς πράκτορες
- Στην παραγωγή βίντεο, η απεικόνιση σύνθετων 3D σκηνών με πλήθη γίνεται συνήθως με πολυπρακτορική προσομοίωση
- Στην μοντελοποίηση συστημάτων, η πολυπρακτορική προσέγγιση χρησιμοποιείται για την προσομοίωση συμπεριφοράς ενός σύνθετου μοντέλου. Για παράδειγμα, έχει χρησιμοποιηθεί επιτυχώς για την πρόβλεψη της εξάπλωσης της νόσου COVID-19 παγκοσμίως. Παρόμοια προσέγγιση μπορεί να χρησιμοποιηθεί για μοντελοποίηση της κυκλοφορίας στην πόλη και να δούμε πώς αυτή αντιδρά στις αλλαγές των κανόνων κυκλοφορίας.
- Σε σύνθετα συστήματα αυτοματισμού, κάθε συσκευή μπορεί να λειτουργεί ως ανεξάρτητος πράκτορας, κάνοντας το σύστημα συνολικά λιγότερο μονολιθικό και πιο ανθεκτικό.
Δεν θα αφιερώσουμε πολύ χρόνο σε βάθος στα συστήματα πολλαπλών πρακτόρων, αλλά θα εξετάσουμε ένα παράδειγμα Πολυπρακτορικής Μοντελοποίησης.
NetLogo
Το NetLogo είναι ένα περιβάλλον πολυπρακτορικής μοντελοποίησης βασισμένο σε τροποποιημένη έκδοση της γλώσσας προγραμματισμού Logo. Αυτή η γλώσσα αναπτύχθηκε για τη διδασκαλία προγραμματισμού σε παιδιά, και επιτρέπει τον έλεγχο ενός πράκτορα που ονομάζεται χελώνα, ο οποίος μπορεί να κινείται αφήνοντας ίχνος. Αυτό επιτρέπει τη δημιουργία σύνθετων γεωμετρικών σχημάτων, που είναι ένας πολύ οπτικός τρόπος κατανόησης της συμπεριφοράς ενός πράκτορα.
Στο NetLogo, μπορούμε να δημιουργήσουμε πολλές χελώνες χρησιμοποιώντας την εντολή create-turtles. Στη συνέχεια μπορούμε να δώσουμε εντολές σε όλες τις χελώνες να κάνουν κάποιες ενέργειες (στο παράδειγμα παρακάτω - διάβα 10 βήματα μπροστά):
create-turtles 10
ask turtles [
forward 10
]
Φυσικά, δεν είναι ενδιαφέρον όταν όλες οι χελώνες κάνουν το ίδιο πράγμα, οπότε μπορούμε να ζητήσουμε ομάδες χελωνών, π.χ. αυτές που βρίσκονται κοντά σε ένα συγκεκριμένο σημείο. Μπορούμε επίσης να δημιουργήσουμε χελώνες διαφορετικών φυλών χρησιμοποιώντας την εντολή breed [cats cat]. Εδώ το cat είναι το όνομα μιας φυλής, και πρέπει να προσδιορίσουμε τόσο τον ενικό όσο και τον πληθυντικό, επειδή διαφορετικές εντολές χρησιμοποιούν διαφορετικές μορφές για λόγους σαφήνειας.
✅ Δεν θα εισέλθουμε στην εκμάθηση της γλώσσας NetLogo καθαυτής - μπορείτε να επισκεφθείτε τον εξαιρετικό πόρο Αλληλεπιδραστικό Λεξικό NetLogo για Αρχάριους αν ενδιαφέρεστε να μάθετε περισσότερα.
Μπορείτε να κατεβάσετε και να εγκαταστήσετε το NetLogo για να το δοκιμάσετε.
Βιβλιοθήκη Μοντέλων
Ένα ωραίο χαρακτηριστικό του NetLogo είναι ότι περιέχει μια βιβλιοθήκη λειτουργικών μοντέλων που μπορείτε να δοκιμάσετε. Μεταβείτε στο File → Models Library, και θα βρείτε πολλές κατηγορίες μοντέλων για επιλογή.
Ένα στιγμιότυπο της βιβλιοθήκης μοντέλων από τον Dmitry Soshnikov
Μπορείτε να ανοίξετε ένα από τα μοντέλα, για παράδειγμα Biology → Flocking.
Κύριες Αρχές
Μετά το άνοιγμα του μοντέλου, μεταφέρεστε στην κύρια οθόνη NetLogo. Ακολουθεί ένα δείγμα μοντέλου που περιγράφει τον πληθυσμό λύκων και προβάτων, με δεδομένους πεπερασμένους πόρους (χλόη).
Στιγμιότυπο οθόνης από τον Dmitry Soshnikov
Σε αυτήν την οθόνη, μπορείτε να δείτε:
- Το τμήμα Διεπαφής που περιέχει:
- Το κύριο πεδίο, όπου ζουν όλοι οι πράκτορες
- Διάφορους ελέγχους: κουμπιά, ρυθμιστικά, κλπ.
- Γραφήματα που μπορείτε να χρησιμοποιήσετε για την εμφάνιση παραμέτρων της προσομοίωσης
- Την καρτέλα Κώδικα που περιέχει τον επεξεργαστή, όπου μπορείτε να πληκτρολογήσετε πρόγραμμα NetLogo
Στις περισσότερες περιπτώσεις, η διεπαφή έχει ένα κουμπί Setup, που αρχικοποιεί την κατάσταση της προσομοίωσης, και ένα κουμπί Go που ξεκινά την εκτέλεση. Αυτά χειρίζονται οι αντίστοιχοι χειριστές στον κώδικα που μοιάζουν ως εξής:
to go [
...
]
Ο κόσμος του NetLogo αποτελείται από τα παρακάτω αντικείμενα:
- Πράκτορες (χελώνες) που μπορούν να κινηθούν σε όλο το πεδίο και να κάνουν κάτι. Δίνετε εντολές σε πράκτορες χρησιμοποιώντας τη σύνταξη
ask turtles [...], και ο κώδικας στις παρενθέσεις εκτελείται από όλους τους πράκτορες σε λειτουργία χελώνας. - Πατσέτες είναι τετράγωνες περιοχές του πεδίου, όπου ζουν οι πράκτορες. Μπορείτε να αναφερθείτε σε όλους τους πράκτορες στην ίδια πατσέτα, ή να αλλάξετε τα χρώματα των πατσέτων και άλλες ιδιότητες. Μπορείτε επίσης να
ask patchesνα κάνουν κάτι. - Ο Παρατηρητής είναι ένας μοναδικός πράκτορας που ελέγχει τον κόσμο. Όλοι οι χειριστές κουμπιών εκτελούνται σε λειτουργία παρατηρητή.
✅ Η ωραιότητα ενός περιβάλλοντος πολλαπλών πρακτόρων είναι ότι ο κώδικας που τρέχει σε λειτουργία χελώνας ή πατσέτας εκτελείται ταυτόχρονα από όλους τους πράκτορες παράλληλα. Έτσι, γράφοντας λίγες γραμμές κώδικα και προγραμματίζοντας τη συμπεριφορά ενός μεμονωμένου πράκτορα, μπορείτε να δημιουργήσετε σύνθετη συμπεριφορά του συστήματος προσομοίωσης συνολικά.
Flocking
Ως παράδειγμα πολυπρακτορικής συμπεριφοράς, ας εξετάσουμε το Flocking. Το Flocking είναι ένα σύνθετο μοτίβο που μοιάζει πολύ με το πώς πετούν οι σμήνη πουλιών. Βλέποντάς τα να πετούν μπορεί να σκεφτείτε ότι ακολουθούν κάποιο είδος συλλογικού αλγόριθμου, ή ότι κατέχουν κάποια μορφή συλλογικής νοημοσύνης. Ωστόσο, αυτή η σύνθετη συμπεριφορά εμφανίζεται όταν κάθε μεμονωμένος πράκτορας (σε αυτή την περίπτωση, ένα πουλί) παρατηρεί μόνο κάποιους άλλους πράκτορες σε μικρή απόσταση από αυτό και ακολουθεί τρεις απλούς κανόνες:
- Ευθυγράμμιση - στρέφεται προς τη μέση κατεύθυνση των γειτονικών πρακτόρων
- Συσπείρωση - προσπαθεί να στρέφεται προς τη μέση θέση των γειτόνων (ελκτική δύναμη μακρυά)
- Απόσταση - όταν πλησιάζει πολύ άλλα πουλιά, προσπαθεί να απομακρυνθεί (απωθητική δύναμη κοντά)
Μπορείτε να τρέξετε το παράδειγμα flocking και να παρατηρήσετε τη συμπεριφορά. Μπορείτε επίσης να ρυθμίσετε παραμέτρους, όπως το βαθμό απομάκρυνσης, ή το πεδίο οπτικής, που ορίζει πόσο μακριά βλέπει κάθε πουλί. Σημειώστε ότι αν μειώσετε το πεδίο οπτικής στο 0, όλα τα πουλιά γίνονται τυφλά και το flocking σταματά. Αν μειώσετε την απομάκρυνση στο 0, όλα τα πουλιά μαζεύονται σε μία ευθεία γραμμή.
✅ Μεταβείτε στην καρτέλα Κώδικας και δείτε πού οι τρεις κανόνες flocking (ευθυγράμμιση, συσπείρωση και απόσταση) υλοποιούνται στον κώδικα. Προσεξτε πως αναφερόμαστε μόνο σε εκείνους τους πράκτορες που είναι ορατοί.
Άλλα μοντέλα για να δείτε
Υπάρχουν μερικά ακόμη ενδιαφέροντα μοντέλα με τα οποία μπορείτε να πειραματιστείτε:
- Art → Fireworks δείχνει πώς ένα πυροτέχνημα μπορεί να θεωρηθεί συλλογική συμπεριφορά ατομικών ρευμάτων φωτιάς
- Social Science → Traffic Basic και Social Science → Traffic Grid δείχνουν το μοντέλο της κυκλοφορίας στην πόλη σε 1Δ και 2Δ πλέγμα με ή χωρίς φανάρια. Κάθε αυτοκίνητο στην προσομοίωση ακολουθεί τους παρακάτω κανόνες:
- Αν ο χώρος μπροστά του είναι ελεύθερος - επιταχύνει (μέχρι μια μέγιστη ταχύτητα)
- Αν βλέπει εμπόδιο μπροστά - φρενάρει (και μπορείτε να ρυθμίσετε πόσο μακριά βλέπει ο οδηγός)
- Social Science → Party δείχνει πώς οι άνθρωποι συγκεντρώνονται κατά τη διάρκεια ενός κοκτέιλ πάρτι. Μπορείτε να βρείτε τον συνδυασμό παραμέτρων που οδηγεί στη γρηγορότερη αύξηση της ευτυχίας της ομάδας.
Όπως βλέπετε από αυτά τα παραδείγματα, οι πολυπρακτορικές προσομοιώσεις μπορούν να είναι ένα αρκετά χρήσιμο εργαλείο για την κατανόηση της συμπεριφοράς ενός πολύπλοκου συστήματος που αποτελείται από άτομα που ακολουθούν την ίδια ή παρόμοια λογική. Μπορεί επίσης να χρησιμοποιηθεί για τον έλεγχο εικονικών πρακτόρων, όπως NPCs σε βιντεοπαιχνίδια, ή πρακτόρων σε 3D κινούμενους κόσμους.
Στοχαστικοί Πράκτορες
Οι πράκτορες που περιγράφηκαν παραπάνω είναι πολύ απλοί, αντιδρώντας σε αλλαγές στο περιβάλλον με κάποιο είδος αλγορίθμου. Ως τέτοιοι είναι αντιδραστικοί πράκτορες. Ωστόσο, μερικές φορές οι πράκτορες μπορούν να συλλογιστούν και να σχεδιάσουν τις ενέργειές τους, οπότε ονομάζονται στοχαστικοί.
Ένα τυπικό παράδειγμα θα ήταν ένας προσωπικός πράκτορας που λαμβάνει οδηγία από έναν άνθρωπο να κλείσει ένα τουριστικό ταξίδι. Υποθέστε ότι υπάρχουν πολλοί πράκτορες στο διαδίκτυο που μπορούν να τον βοηθήσουν. Τότε θα πρέπει να επικοινωνήσει με άλλους πράκτορες για να δει ποιες πτήσεις είναι διαθέσιμες, ποιες είναι οι τιμές ξενοδοχείων για διάφορες ημερομηνίες, και να προσπαθήσει να διαπραγματευτεί την καλύτερη τιμή. Όταν το σχέδιο διακοπών ολοκληρωθεί και επιβεβαιωθεί από τον ιδιοκτήτη, μπορεί να προχωρήσει στην κράτηση.
Για να το κάνει αυτό, οι πράκτορες πρέπει να επικοινωνούν. Για να πετύχουν αποτελεσματική επικοινωνία χρειάζονται:
- Κάποιες τυποποιημένες γλώσσες ανταλλαγής γνώσης, όπως η Γλώσσα Ανταλλαγής Γνώσης (KIF) και η Γλώσσα Ερωτημάτων και Διαχείρισης Γνώσης (KQML). Αυτές οι γλώσσες έχουν σχεδιαστεί με βάση τη θεωρία των ενεργειών λόγου.
- Αυτές οι γλώσσες θα πρέπει επίσης να περιλαμβάνουν κάποια πρωτόκολλα διαπραγμάτευσης, βασισμένα σε διαφορετικά είδη δημοπρασίας.
- Μία κοινή οντολογία να χρησιμοποιούν, έτσι ώστε να αναφέρονται στις ίδιες έννοιες γνωρίζοντας τη σημασία τους
- Έναν τρόπο να ανακαλύπτουν τι μπορεί να κάνει κάθε διαφορετικός πράκτορας, επίσης βάσει κάποιας μορφής οντολογίας
Οι στοχαστικοί πράκτορες είναι πολύ πιο σύνθετοι από τους αντιδραστικούς, επειδή όχι μόνο αντιδρούν σε αλλαγές στο περιβάλλον, αλλά θα πρέπει επίσης να μπορούν να ξεκινήσουν ενέργειες. Μία από τις προτεινόμενες αρχιτεκτονικές για στοχαστικούς πράκτορες είναι ο λεγόμενος πράκτορας Πίστη-Επιθυμία-Πρόθεση (BDI):
- Οι Πιστεύεις σχηματίζουν ένα σύνολο γνώσης για το περιβάλλον ενός πράκτορα. Μπορεί να είναι δομημένες ως βάση γνώσης ή σύνολο κανόνων που ένας πράκτορας μπορεί να εφαρμόσει σε μια συγκεκριμένη κατάσταση στο περιβάλλον.
- Οι Επιθυμίες ορίζουν τι θέλει να κάνει ένας πράκτορας, δηλαδή τους στόχους του. Για παράδειγμα, ο στόχος του βοηθητικού πράκτορα προσωπικού παραπάνω είναι να κλείσει μια εκδρομή, και ο στόχος ενός πράκτορα ξενοδοχείου είναι να μεγιστοποιήσει το κέρδος.
- Οι Προθέσεις είναι συγκεκριμένες ενέργειες που σχεδιάζει να κάνει ο πράκτορας για να επιτύχει τους στόχους του. Οι ενέργειες τυπικά αλλάζουν το περιβάλλον και προκαλούν επικοινωνία με άλλους πράκτορες.
Υπάρχουν πλατφόρμες διαθέσιμες για την κατασκευή συστημάτων πολλαπλών πρακτόρων, όπως το JADE. Αυτό το άρθρο περιέχει ανασκόπηση πλατφορμών πολλαπλών πρακτόρων, μαζί με μια σύντομη ιστορία των συστημάτων πολλαπλών πρακτόρων και των διαφόρων σεναρίων χρήσης τους.
Συμπέρασμα
Τα συστήματα πολλαπλών πρακτόρων μπορούν να πάρουν πολύ διαφορετικές μορφές και να χρησιμοποιηθούν σε πολλές διαφορετικές εφαρμογές. Όλα συγκλίνουν στο να εστιάζουν στη λιγότερο σύνθετη συμπεριφορά ενός μεμονωμένου πράκτορα, και να επιτυγχάνουν πιο σύνθετη συμπεριφορά του συνολικού συστήματος λόγω συνεργιστικού αποτελέσματος.
🚀 Πρόκληση
Πάρτε αυτό το μάθημα στην πραγματική ζωή και δοκιμάστε να εννοιολογήσετε ένα σύστημα πολλαπλών πρακτόρων που μπορεί να λύσει ένα πρόβλημα. Τι, για παράδειγμα, θα χρειαστεί να κάνει ένα σύστημα πολλαπλών πρακτόρων για να βελτιστοποιήσει τη διαδρομή ενός σχολικού λεωφορείου; Πώς θα μπορούσε να λειτουργήσει σε ένα φούρνο;
Μετα-διάλεξη κουίζ
Ανασκόπηση & Αυτο-Μελέτη
Ανασκοπήστε τη χρήση αυτού του τύπου συστήματος στη βιομηχανία. Επιλέξτε ένα τομέα όπως η κατασκευή ή η βιομηχανία βιντεοπαιχνιδιών και ανακαλύψτε πώς τα συστήματα πολλαπλών πρακτόρων μπορούν να χρησιμοποιηθούν για την επίλυση μοναδικών προβλημάτων.
Εργασία NetLogo
Αποποίηση ευθυνών: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης με τεχνητή νοημοσύνη Co-op Translator. Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
