Αποκεντρωμένος Υπολογισμός και Μοντελοποίηση¶
Επίσημο περίγραμμα μαθήματος του ΤΜΗΥΠ (Πανεπιστήμιο Πατρών), όπως δημοσιεύεται στη σελίδα του μαθήματος και στο συνημμένο αρχείο «Περίγραμμα Μαθήματος». Το κείμενο παρατίθεται αυτούσιο, χωρίς τα πρότυπα οδηγιών του εντύπου.
Στόχοι¶
Με την ολοκλήρωση της διδασκαλίας του μαθήματος οι φοιτητές θα είναι ικανοί να: Να έχουν αφομοιώσει τεχνικές, ιδιότητες, υλοποιήσεις και εφαρμογές βασικών αλλά και προηγμένων αποκεντρωμένων αλγορίθμων. Να μπορούν να μοντελοποιήσουν σύνθετα προβλήματα και να εφαρμόζουν τεχνικές για την αξιολόγησή τους. Να εφαρμόζουν την επιστημονική πειραματική μεθοδολογία για την συγκριτική και πρακτική αξιολόγηση αποκεντρωμένων αλγορίθμων και μοντέλων. Να χρησιμοποιούν έτοιμες βιβλιοθήκες και περιβάλλοντα λογισμικού για την ανάπτυξη νέων αποδοτικών μοντέλων και αποκεντρωμένων αλγορίθμων. Να αναπτύσσουν υλοποιήσεις σύνθετων μοντέλων με πρακτική χρησιμότητα και εφαρμοσιμότητα. Να έχουν αφομοιώσει τη διαδικασία μοντελοποίησης ενός σύνθετου αποκεντρωμένου συστήματος με στόχο τόσο την πρόβλεψη της συμπεριφοράς του όσο και την βελτίωση του συστήματος μέσω της εξομοίωσης.
Με την ολοκλήρωση της διδασκαλίας του μαθήματος οι φοιτητές θα έχουν αναπτύξει τις ακόλουθες δεξιότητες: Να έχουν βελτιώσει σημαντικά τις δεξιότητές τους στην μοντελοποίηση σύνθετων συστημάτων αποκεντρωμένου υπολογισμού. Να έχουν εξοικειωθεί στη χρήση προηγμένων τεχνικών μοντελοποίησης και ανάλυσης σύνθετων συστημάτων. Να έχουν εξοικειωθεί στη χρήση περιβαλλόντων και βιβλιοθηκών λογισμικού για την αποδοτική υλοποίηση αποκεντρωμένων αλγορίθμων και μοντέλων. Να έχουν εξοικειωθεί στην εφαρμογή της σωστής πειραματικής μεθοδολογίας για την πειραματική και πρακτική αξιολόγηση διαφορετικών μοντέλων για το ίδιο σύνθετο σύστημα. Να έχουν εξοικειωθεί στην ανάπτυξη αποδοτικών και πρακτικών υλοποιήσεων αποκεντρωμένων αλγορίθμων. Να έχουν εξοικειωθεί με τη μεθοδολογία μοντελοποίησης φυσικών/τεχνητών σύνθετων συστημάτων με τη χρήση πολλαπλών πρακτόρων.
Περιεχόμενο (ύλη)¶
Μοντέλα: Κατανεμημένα και Αποκεντρωμένα: LOCAL/CONGEST, Πρωτόκολλα Πληθυσμών, Δυναμική Πληθυσμών, Δυναμική Γνώμης, Κυψελωτά Αυτόματα, Δυναμική Δικτύων, Μοντελοποίηση με Πράκτορες.
Κατανεμημένοι Αλγόριθμοι: Μεγαλύτερο Ανεξάρτητο Σύνολο Χρωματισμός (αιτιοκρατικός και πιθανοκρατικός) Αυτό-σταθεροποιητικοί αλγόριθμοι
BlockChain: Βασικές Κρυπτοπράξεις, Βασικά Στοιχεία του Blockchain Το πρόβλημα της ομοφωνίας σε ομότιμους, Το CAP θεώρημα, Proof-of-Work, Proof-of-Stake Ομοφωνία με ανοχή σε λάθη: Paxos, RAFT Μελέτη Περίπτωσης: BitCoin Ethereum Έξυπνα Συμβόλαια, η Γλώσσα Solidity
Αποκεντρωμένοι Αλγόριθμοι/Συστήματα: Δυναμική Γνώμης (De Groot Model) Κυψελωτά Αυτόματα Δικτυακά Συστήματα Δυναμική Πληθυσμών (Επιδημιολογικά Μοντέλα, Μοντέλα Θηρευτή-Θηράματος)
Μοντελοποίηση με Πράκτορες – Εργαστηριακό Μέρος: Απλά μοντέλα βασισμένα σε Πράκτορες Ιδιότητες και Ενέργειες Πρακτόρων Το Περιβάλλον των Πρακτόρων Οι Αλληλεπιδράσεις των Πρακτόρων Υλοποίηση μοντέλων σε NETLOGO
Αξιολόγηση¶
Γλώσσα αξιολόγησης: Ελληνική (Αγγλικά αν χρειαστεί)
Αξιολόγηση: Θεωρητικές/Προγραμματιστικές ασκήσεις (30%-40% του τελικού βαθμού). Τελική εξέταση (60%-70% του τελικού βαθμού).
Τελική εξέταση: γραπτή τελική εξέταση στην διδαχθείσα ύλη. Εξέταση προφορική/γραπτή σε θεωρητική/προγραμματιστική εργασία που ανατίθεται ατομικά σε κάθε φοιτητή καθώς και σε ομαδική προγραμματιστική εργασία. Εξέταση στον κώδικα καθώς και στην αναφορά υλοποίησης και πειραματικής αξιολόγησης που υποβάλει ο φοιτητής.
Σειρά θεωρητικών/προγραμματιστικών ασκήσεων με στόχο την εξοικείωση, εξάσκηση και απόκτηση εμπειρίας: Στη χρήση των περιβαλλόντων και βιβλιοθηκών ανάπτυξης μοντέλων NETLOGO. Στη χρήση των αλγοριθμικών τεχνικών που διδάσκονται στο μάθημα. Στη σωστή διεξαγωγή πειραματικών αξιολογήσεων και χρήσης των μοντέλων. ερμηνεία των πειραματικών αποτελεσμάτων και των σφαλμάτων που ενδεχομένως εμπεριέχουν.
Βιβλιογραφία¶
Αλυσίδες Συστοιχιών (BlockChain). Χ. Πατρικάκης, Δ. Κόγιας και Ε. Λελίγκιου. Κάλλιπος. 2023. (Κωδικός στον Εύδοξο: 118392908) Cellular Automata: A Discrete View of the World. J.L. Schiff. 2007. (Κωδικός στον Εύδοξο:91714965) An Introduction to Mathematical Population Dynamics. M. Iannelli and A. Pugliese. 2014. (Κωδικός στον Εύδοξο:73228785) D. Peleg. Distributed computing: a locality-sensitive approach. Society for Industrial and Applied Mathematics, Philadelphia, PA, USA, 2000. J. Aspnes. Notes on Theory of Distributed Systems. Lectures Notes, 2002. https://www.cs.yale.edu/homes/aspnes/classes/465/notes.pdf S.Schmid and P.S. Mandal. Distributed Network Algorithms. Lecture Notes, 2016. https://www.univie.ac.at/ct/stefan/GIAN-Lecture-Notes-NetAlg.pdf S. Wolfram. A New Kind of Science. https://www.wolframscience.com/nks/, 2002. U. Wilensky and W. Rand. An Introduction to Agent-Based Modeling: Modeling Natural, Social and Engineered Complex Systems with NetLogo, 2015. F. Bullo. Lectures on Network Systems. http://motion.me.ucsb.edu/book-lns. 2020. A.V. Proskurnikov and R Tempo. A Tutorial on Modeling and Analysis of Dynamic Social Networks Part I. 2018. A.V. Proskurnikov and R Tempo. A Tutorial on Modeling and Analysis of Dynamic Social Networks Part II. 2018. C. Altafini. Notes for a course on Opinion Dynamics on Social Networks. 2020. M.J. Keeling. Notes on Population Dynamics S. Dolev. Self-Stabilization. Cambridge, MA: MIT Press, 2000. Federico Rossi, Saptarshi Bandyopadhyay, Michael T. Wolf and Marco Pavone. Multi-Agent Algorithms for Collective Behavior A structural and application-focused atlas:, 2021. N.A. Lynch. Distributed Algorithms. 1996. Uddin, Md Ashraf. Lecture Notes on Introduction to BlockChain Technology, 2021. A. Narayanan, J. Bonneau, E. Felten, A. Miller and S. Goldfeder. Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction. Princeton University Press, 2016. Διδακτικές σημειώσεις και διαφάνειες που αναρτώνται στην ιστοσελίδα του μαθήματος.
-Συναφή επιστημονικά περιοδικά: Nature Science Journal of the ACM