Διάλεξη 12 / Διάλεξη 12 / σύντομη περιγραφή - Καρατζάς Κωνσταντίνος (ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ, 2015)
σύντομη περιγραφή: Καλημέρα λοιπόν. Σήμερα είμαστε εδώ για το τελευταίο μάθημα του εξαμήνου, το οποίο κύλησε πραγματικά πάρα πολύ γρήγορα. Και ακριβώς επειδή είναι το τελευταίο μάθημα θα προσπαθήσουμε στη βάση ενός πρωτοβουλίου, ενός πρωτοβουλίου, ενός πρωτοβουλίου, ενός πρωτοβουλίου, ενός πρωτοβουλίου, να προσπαθήσουμε στη βάση ενός παραδείγματος να συνοψήσουμε αρκετά από τα σημεία που έχουμε δει κατά τη διάρκεια του εξαμήνου και από την άλλη να δούμε τελικά με την οπτική γωνία του ανθρώπου που είναι στο τέλος μιας πορείας το τι έχουμε κάνει κατά τη διάρκεια της πορείας αυτής. Για το λόγο αυτό επέλεξα το παράδειγμα του παιχνιδιού της ζωής που θεωρώ ότι έχει ενδιαφέρον και αλγοριθμικά και σε επίπεδο εφαρμογής. Πρόκειται για μία από τις πρώτες απόπειρες περιγραφής λειτουργίας συστημάτων συμπεριφοράς και ιδιότητας συστημάτων με κάτι που αργότερα αποτέλεσε τη γνωστική περιοχή των κυταρικών αυτομάτων και βασίζεται σε μία πολύ απλή αλληλουχία ή σύνολο αν θέλετε κανόνων. Το παιχνίδι της ζωής ή αλγόριθμος του Conway προς τιμή του μαθηματικού ο οποίος πρώτος το διατύπωσε εδώ και σχεδόν 50 χρόνια αποτελείται από απλούς κανόνες σε σχέση με οργανισμούς ότι και αν αυτό μπορεί να θεωρηθεί ως οργανισμός θα δούμε τι σημαίνει κάτι τέτοιο και περιγράφει το πως από γενιά σε γενιά οι οργανισμοί επιβιώνουν, γεννιούνται, πεθαίνουν, μεταβάλλονται λοιπόν. Θεωρείται ένα από τα κλασικά παραδείγματα κυταρικών αυτομάτων και συνδέεται με πολλές άλλες περιοχές της τεχνητής νοημοσύνης και όχι μόνο όπως οι μηχανές touring που είναι ένα θεωρητικό κατασκεύασμα το οποίο περιγράφει το σύνολο των ιδιωτήτων μιας υπολογιστικής μηχανής και στο σύγχρονο κόσμο αν και οι touring μηχανές είναι ουσιαστικά όλα τα PC και υπολογιστές που έχουμε ή των υπολογιστών χρησιμοποιούν και λειτουργούν με τέτοιοι είδους υπολογιστικές. Πώς έχει η κατάσταση, ποια είναι η σκηνή. Οι οργανισμοί μας ζουν σε έναν κάναβο, σε ένα τετραγωνικό κάναβο και υπό αυτήν την έννοια κάθε κελί έχει οκτώ γείτονες. Θεωρούνται ισοδύναμοι οι γείτονες που ακουμπούν στο κελί μας είτε μέσω της ακμής είτε μέσω πλευράς. Οκτώ γείτονες λοιπόν ανακελεί. Αυτό είναι σημαντικό και πρέπει να το έχουμε κατά νου. Οι κανόνες μας, αρχικός βασικός κανόνα σε κάθε κελί υπάρχει ή δεν υπάρχει ένας οργανισμός ή το στοιχείο του αντικείμενου του οποίου την εξέλιξη στο χρόνο μελετούμε. Σε κάθε κύκλο αυτού του παιχνιδιού οι οργανισμοί επιβιώνονται, επιβιώνουν, διανώνονται ή πεθαίνουν ως ακολούθος. Οι φιστάμενος οργανισμός επιβιώνει εάν έχει δύο ή τρεις και μόνο ζωντανούς γείτονες. Δύο ή τρεις. Έχει λιγότερους από δύο γείτονες, έναν ή κανέναν, πεθαίνει θεωρούμε από απομόνωση. Εάν κάποιος έχει περισσότερους από τρεις γείτονες, τέσσερις έως και οχτώ, πεθαίνει στην επόμενη γενιά, στον επόμενο κύκλο του παιχνιδιού, στο επόμενο χρονικό βήμα, πάβει να η φίσταται να κατοικεί σε εκείνη την κλειψελίδα λόγω υπερπληθισμού. Και εάν ένα ακατοίκητο κελί έχει ακριβώς τρεις, εννοείται ζωντανούς, γείτονες, στην επόμενη γενιά θα κατοικηθεί. Άρα, εάν είσαι ζωντανό κελί και έχεις δύο ή τρεις γείτονες, επιβιώνεις στην επόμενη γενιά. Εάν έχεις λιγότερους, δεν επιβιώνεις στην επόμενη γενιά, όπως επίσης και αν έχεις περισσότερους. Και επίσης, εάν είσαι κενό κελί και έχεις τρεις μόνο, ακριβώς ενώ γείτονες, τότε θα κατοικηθείς, θα γεννηθεί εντός του κελίου αυτού οργανισμός. Θα κατοικηθείς στην επόμενη γενιά. Έτσι λοιπόν, να είναι ένα παράδειγμα. Αρχική κατάσταση, επόμενη κατάσταση. Γιατί έφυγαν από τη μέση τα κρύα είναι τα κατοικημένα στο πρώτο βήμα και το τι συνέβη στο επόμενο βήμα. Αυτό το κελί έχει δύο ή τρεις γείτονες. Άρα, στην επόμενη φάση επιβιώνει. Τα υπόλοιπα έχουν λιγότερους από δύο γείτονες. Άρα, στην επόμενη φάση δεν επιβιώνουν. Και κανένα άλλο κελί δεν έχει τρεις ακριβώς γείτονες για να δημιουργήσει τη ζωή. Ενώ εδώ, προσέξτε τι συνέβη, αρχικά κατοικούνται οι διαγώνοι και βλέπουμε ότι στην επόμενη φάση, το κεντρικό κελί επειδή έχει τέσσερις γείτονες δεν επιβιώνει λόγω υπερπληθισμού. Τα γωνιακά κελιά έχουν λιγότερους από δύο γείτονες, δεν επιβιώνουν λόγω μοναξιάς, λόγω έλεψης πρόσβασης άλλους οργανισμούς, αλλά τα κελιά που αρχικά ήταν άδεια στο σχήμα αυτό των σταυροειδές, επειδή έχουν ακριβώς τρεις γείτονες το καθένα, δημιουργούν ζωή. Θα μου πείτε, αυτό μοιάζει ως αν να έχεις μία μάζα μέσα από την οποία με διάφορους τρόπους αναδίονται δομές διαφορετικού χαρακτήρα συναρτήση των συνθηκών που επικρατούν μέσα στη μάζα. Έτσι δεν είναι. Θα μπορούσε κανείς να το περιγράψει και με αυτό τον τρόπο. Άρα λοιπόν αυτή η κατάσταση και αυτή η αλλαγή κατάστασης επί της ουσίας μας θυμίζει κάτι. Θα μπορούσε να είναι κάτι τέτοιο. Όχι μόνο αυτό, αλλά μη μου πείτε ότι διαφωνείτε, δεν θα μπορούσε να είναι κάτι τέτοιο. Ενώ, κατά την φάση ψήξης χάλιβα, γνωρίζουμε ότι συναρτήση του περιεχωμένου σε άνθρακα και της θερμοκρασίας εντός της δομής του ρευστού χάλιβα, ο οποίος έχει τυχθεί και άρα τώρα βρίσκεται υπό το καθεστώς της ψήξης, δημιουργούνται διαφορετικές δομές με διαφορετικά χαρακτηριστικά. Τα χαρακτηριστικά τα οποία διαμορφώνουν τις δομές έχουν να κάνουν με τη θερμοκρασία στη συγκεκριμένη γειτονιά του ρευστού χάλιβα, όπως επίσης και με το περιεχόμενο σε άνθρακα στη συγκεκριμένη γειτονιά του ρευστού άνθρακα. Γνωρίζουμε δε ότι ένας από τους λόγους για τους οποίους κατά την ψήξη του χάλιβα δεν μεταβαίνει το σύνολο της μάζας σε μία κατάσταση, αλλά σε πολλές διαφορετικές είναι το ότι η θερμοκρασία δεν πέφτει ομότροπα και ομοιογενός παντού, και ότι δεν είναι ίδιο το ποσοστό άνθρακα όσο και να το θέλουμε ακριβώς παντού. Έτσι λοιπόν, έχουμε Φερίτη ή ΑΣ μέχρι τους 912 βαθμούς, όταν ξεκινάς τους 1600 θα αλλάξει δύο φορές, ο Στενίτη μέχρι τους 1394 και ΔΑ Φερίτη μέχρι τους 1598, ενώ αν αλλάξει περιεκτικότητα σε άνθρακα έχουμε σε Μεντήτη. Και για αυτό το λόγο έχουμε τα διαγράμματα που πιστεύω ότι γνωρίζετε πλέον από το αντίστοιχο μάθημα της μεταλογνωσίας. Ξαφνικά λοιπόν αναδείεται μπροστά μας μία συμπεριφορά υλικών, η οποία προσωμιώνει πάρα πολύ αυτό το οποίο είδαμε στην περίπτωση του παιχνιδιού της ζωής του Κόνγουι. Εάν είναι έτσι, μήπως θα μπορούσαμε να εξηγήσουμε την ψήξη του χάλιβα στη βάση του παιχνιδιού της ζωής, γνωρίζοντας δε την αποφασιστική σημασία που έχει η ακριβής γνώση της δομής του χάλιβα, κάτι τέτοιο καθίσταται εξόχως προκλητικό και θεληκτικό. Πρέπει να σας πω ότι αυτή η μεταβολή ως ταινίτη Φερή της σε Μεντήτη, επιχειρήθηκε να προσωμιωθεί τα τελευταία χρόνια με τη βοήθεια του παιχνιδιού της ζωής όπως και με άλλους τρόπους. Πρέπει επίσης να σας πω κάτι που προφανώς το ξέρετε και είναι πολύ πιο φρέσκο σε εσάς από τη σεμένα ως γνώση, ότι δεν υπάρχει αναλυτικό μοντέλο το οποίο να περιγράφει με ακρίβεια το τι λαμβάνει η χώρα κατά τη φάση της ψήξης του χάλιβα σε υποπεριοχές του. Δεν μπορούμε δηλαδή να περιγράψουμε πλήρως το τι συμβαίνει εκεί. Έτσι λοιπόν κάποιες δομές που συναντούμε συναρτήσει του περιεχομένου ποσοστού σε άνθρακα. Εδώ εικόνες από ηλεκτρονικό μικροσκόπιο όπου κόψαμε, επεξεργαστήκαμε με συγκεκριμένα υγρά με οξύ για να εμφανίσουμε τις δομές και φωτογραφίσαμε το υλικό, που βλέπουμε διαφορετικές δομές, συναρτήσει του περιεχομένου σε άνθρακα. Και αυτό που πραγματικά συμβαίνει είναι το εξής. Έχουμε μια αρχική εικόνα της μικροδομής. Απαρτίζεται από στενίτη και μερικούς μόνο πυρήνες φερίτη, έτσι δεν είναι. Κάθε κυψελίδα της εικόνας μπορεί να είναι ένα πιξελάκι, γειτονέτη με φερίτη και λαμβάνει τι? Μια πιθανότητα μετατροπής σε φερίτη. Η πιθανότητα μετατροπής σε φερίτη δεν είναι ίδια για κάθε στοιχείο του άνθρακα, του χάλιβα. Προφανώς, η αλλαγή αυτή γίνεται βάσει των πιθανοτήτων και μπορούμε για παράδειγμα, να γράψουμε ένα σύνολο κανόνων αυτού του τύπου εδώ. Ότι αν μια κυψελίδα φερίτη γυθνιάζει με 0, 1, 4, 5, 6, 7 ή 8 κυψελίδες φερίτη, τότε καταστρέφεται. 0 και 1 από μαναξιά, 4 έως 8 λόγω υπερπληθισμού. Εάν μια κυψελίδα φερίτη γυθνιάζει με 2 ή 3 άλλες φερίτη επιβιώνει στο επόμενο χρονικό βήμα και αν μια κυψελίδα ωστενίτη γυθνιάζει με 3 ακριβώς κυψελίδες φερίτη, τότε μετατρέπεται σε φερίτη. Εάν τρέξουμε κάτι τέτοιο, θα δούμε ότι όντως η διαδικασία προσωμιώνει αρκετά καλά τα πράγματα που συμβαίνουν κατά τη φάση μετατροπής ψήξες του χάλιβα και μετατροπής από τη μία κατάσταση στην άλλη. Είναι λοιπόν ένα παράδειγμα που πιστεύω ότι μας ξαφνιάζει αλλά δείχνει και το τι μπορούμε να πετύχουμε χρησιμοποιώντας αλγορίθμους που τύπεις απέχουν πάρα πολύ από το πρόβλημά μας. Έχοντας αυτό κατά νου, σας έχω βιβλιογραφική εναφορά, υπάρχουν πάρα πολλές πάνω σε αυτά, θα προχωρήσουμε παρακάτω και θα προχωρήσουμε παρακάτω πηγαίνοντας σε ένα άλλο είδους πρόβλημα. Να σας πω ότι αυτό το παιχνίδι της ζωής, game of life, ουσιαστικά περιγράφει τρόπο στην βάση του οποίου διαχαίεται μία ιδιότητα ή μία αποσότητα στον χώρο. Πηγαίνει από το ένα σημείο στο άλλο. Μεταφέρεται λοιπόν από μια περιοχή του χώρου σε μία άλλη. Αυτή μπορεί να είναι θερμότητα, αυτή μπορεί να είναι βαφή η οποία έχει πέσει σε υγρό και διαχαίεται, μπορεί να είναι κίνηση μυρμυγκιών στον χώρο, όλες αυτές οι διαχήσεις δύναται να περιγραφούν με διαδικασίες όμοιες με το παιχνίδι της ζωής. Το επόμενο παράδειγμα θα δούμε κάτι που δυστυχώς στην Ελλάδα γίνεται πολύ γνωστό ως πρόβλημα κατά τη διάρκεια του καλοκαιριού. Σχεύτηκα αφού είμαστε έξω από τις θήρες του καλοκαιριού να δούμε κάτι τέτοιο και έχει να κάνει με τις δασικές πυρκαλιές. Εδώ θέλω την προσοχή σας γιατί είναι αρκετά τα πράγματα τα οποία σχετίζονται με την πραγματικότητα. Αυτό που θα δούμε εδώ δηλαδή αποτελεί μία από τις καλύτερες επιστημονικά προσεγγίσεις που έχουμε στο να υπολογίσουμε και να προσωμιώσουμε τη συμπεριφορά μιας πυρκαλιάς στο δάσος. Και κάπως έτσι γίνεται και στην πραγματικότητα. Έχουμε λοιπόν μια περιοχή η οποία έχει σε κάποια σημεία της δασοκάλυψη. Είναι ένα σπίνα κασνί επεινήγε εμάς. Η κατάσταση κελιών του δάσους είναι μηδέν άδειο, ένα δέντρο, δύο κεγόμενο δέντρο. Άρα τα κελιά μας μπορούν να βρίσκονται μόνο σε τρεις καταστάσεις. Μηδέν δεν έχουν δέντρο. Ένα έχουν, δύο έχουν ένα δέντρο το οποίο καίγεται. Δεν μπορεί να υπάρξει κάποια άλλη κατάσταση ως προς το πρόβλημα που μας ενδιαφέρει. Η πιθανότητα υπάρξης του δέντρου στο κελί, εμείς τη βαφτίζουμε probability tree, μια μεταβλητή είναι όπως θέλουμε την ονομάζουμε, μπορεί να προκύψει από χάρτες χρήσης γης. Και έτσι συμβαίνει στην πραγματικότητα επειδή προφανώς ελάχιστοι είναι οι άνθρωποι που μπορούν να υποστηρίξουν ότι έχουν περπατήσει κάθε πιθαμή ελληνικού και όχι μόνο δάσος. Άρα λοιπόν, από πού προέρχεται η γνώση μας των δαξοκαλύψεων? Δωρηφορικές φωτογραφίες οι οποίες αποτυπώνουν την πραγματικότητα σε μία κλίμακα και στη βάση κάποιων φίλτρων μας δίνουν τη δυνατότητα να εκτιμήσουμε τι πραγματικά βλέπουμε. Είναι δέντρο, είναι λιβάδι, είναι βράχος, είναι οίκημα, είναι ιδαντική επιφάνεια. Άρα λοιπόν αυτή η πιθανότητα μπορεί να προκύψει από το αγχάριο των χρήσεων γης μέσω διαφόρων τεχνικών δωρηφορικής επισκόψης. Έστω λοιπόν ότι μπορώ συναρτήσει, αν θέλετε, κάθε χρώματο στη δωρηφορική εικόνα να βάλω στο συγκεκριμένο pixel, στο συγκεκριμένο κελί, μια πιθανότητα ύπαρξης, όχι δέντρου. Για να το προποιήσω εδώ, συναρτήσει όλης της εικόνας, μπορώ να βάλω μια πιθανότητα ύπαρξης δέντρου. Εφόσον υπάρχει δέντρο, μου χρειάζεται μια δεύτερη πιθανότητα. Πόσο πιθανό είναι να καίγεται το δέντρο. Αυτό μπορεί να προκύψει από το είδος της βλάστησης. Γνωρίζουμε ότι υπάρχουν ήδη δέντρο τα οποία καίγονται πολύ πιο εύκολα από κάποια άλλα. Το πεύκο είναι ένα κλασικό παράδειγμα και όλα δεκονοφόρα σε αντίθεση, ας πούμε, με το πλατάνι ή διάφορα τέτοια. Και από την άλλη ότι υπάρχουν μετεωρολογικές συνθήκες που ευνοούν περισσότερο ή λιγότερο την ανάφλεξη των δέντρων. Πολλοί άνεμοι, υψηλές θερμοκρασίες, χαμηλή υγρασία και υψηλή ξηρασία. Άρα λοιπόν, έστω ότι μπορούμε για κάθε πίξελ, για κάθε κυψελίδα όπου έχουμε ένα δέντρο, να έχουμε και μια πιθανότητα το δέντρο αυτό να καίγεται. Λέω αυτή είναι η διαδικασία στη βάση της οποίας επιχειρείται τώρα η περιγραφή της διάδοσης της πυρκαγιάς στο δάσος. Αυτό θα σημαίνει, αν όλα αυτά συμβαίνουν, ότι μπορούμε να αρχικοποιήσουμε την περιοχή μας στη βάση ενός ψευδοκόδικα αυτού του τύπου. Δηλαδή, εάν η τιμή ενός τυχαίου αριθμού είναι μεγαλύτερη από την πιθανότητα να υπάρχει δέντρο στην περιοχή, τότε εκεί όντως υπάρχει ένα δέντρο. Έτσι μπορώ με βάση αυτόν τον έλεγχο να αποφασίσω αν υπάρχει ή όχι δέντρο στη συγκεκριμένη κυψελίδα. Εάν υπάρχει δέντρο, τότε να ελέγξω έναν άλλο τυχαίο αριθμό και να δω αν είναι μεγαλύτερος από την πιθανότητα το δέντρο αυτό να βρίσκεται υπό το καθεστώς της πυρκαγιάς, να καίγεται δηλαδή. Τότε βάζω την τιμή 2 στην κυψελίδα. Διαφορετικά, τότε βάζω την τιμή 1 διότι αυτό σημαίνει πως υπάρχει μεν δέντρο το οποίο δεν καίγεται. Και αν δεν ισχύει ο αρχικός έλεγχος, τότε δεν υπάρχει δέντρο. Αυτό λοιπόν που δημιουργώ είναι μια σχηματοποίηση του προβλήματος απλοποιώντας κάποια τμήματά του και λέγοντας ότι εγώ με τη βοήθεια τυχαίων αριθμών θα αποφασίσω αρχικά εάν στην κάθε κυψελίδα μου έχω δέντρο με τη βοήθεια ενός άλλου τυχαίου αριθμού για να πετύχω απόλυτη εξαρτησία, θα ελέγξω εάν αυτό το δέντρο καίγεται ή όχι και από εκεί και πέρα θα δω πως θα μπορέσω να προσωμιώσω στην επόμενη χρονική στιγμή το εάν η κάθε κυψελίδα θα αποκτήσει ή όχι δέντρο, εάν το δέντρο αυτό θα καίγεται ή όχι. Ξαναλέω λοιπόν, ελέγχω εάν έχω μια τιμή μεγαλύτερη από την πιθανότητα ύπαρξης δέντρου, ελέγχω εάν έχω μια άλλη τιμή μεγαλύτερη από την πιθανότητα πυρκαγιάς. Αν θέλουμε να το δούμε σχηματικά αυτό, μπορούμε να πούμε ότι καθώς έχουμε τις κυψελίδες, για το συγκεκριμένο σελ, για το συγκεκριμένο σημείο, όπως και για όλα τα υπόλοιπα, δημιουργώ τυχαίους αριθμούς. Τυχαίοι αριθμοί σε ποιο διάστημα ανήκουν, στο διάστημα 0-1. Άρα στο διάστημα 0-1 θα ανήκει ένας τυχαίος αριθμός, ο οποίος μετά θα συγκριθεί με την πιθανότητα να υπάρχει δέντρο εκεί. Λέμε λοιπόν ότι από την ανάλυση της εικόνας της δορυφορικής στην περιοχή, προέκυψε ότι η μέση πιθανότητα ύπαρξης δέντρου, 0 σημαίνει δεν έχω δέντρο, 1 σημαίνει ότι έχω δέντρο. Ότι η μέση πιθανότητα ύπαρξης δέντρου, έστω ότι μας λένε οι ειδικοί στην τηλεπισκόπηση, είναι πιθανότητα δέντρου, πιθανότητα δέντρου είναι ίση με 0,6. Τι σημαίνει αυτό? Σημαίνει ότι 6 στις 10 κυψελίδες της περιοχής μας θα έχουν δέντρα, κατά μέσο όρο. Και από εκεί και πέρα η πιθανότητα καύσης, πιθανότητα καύσης, έστω ότι είναι 0,8. Αυτό τι σημαίνει ότι από τις κυψελίδες που έχουν δέντρα, 8 στις 10 θα κέγονται. Είναι ένα υψηλό ποσοστό. Άρα αυτό συμβαίνει για παράδειγμα αν έχουμε κονοφόρα, αν είχαμε ένα άλλο είδους δέντρου, τότε αυτή η πιθανότητα ενδεχομένως θα ήταν χαμηλότερη, σωστά. Άρα έχουμε δύο πιθανότητες. Μία πιθανότητα που εκφράζει τον μέσο αριθμό κυψελίδων που κατοικούνται από δέντρα, στην περιοχή μας, σε όλη την περιοχή, σε όλη αυτή την περιοχή. Και μία δεύτερη πιθανότητα η οποία εκφράζει τον μέσο αριθμό των δέντρων που κατοικούνται, τη στιγμή που λήφθηκε η φωτογραφία. Είναι ένα ρεαλιστικό σενάριο, δεν είναι έτσι. Λήφθηκε μια φωτογραφία, αποτυπώνει μια στιγμή στο χρόνο. Άρα, λοιπόν, μπορώ εγώ να δημιουργήσω αρχικά μια κυψελίδα για έναν κάναβο νίλ, 10 x 10, 50 x 50, χάνει το προβλήμα, τόσο μπορώ να κάνω τι θέλω, το παράδειγμα μου εδώ χρησιμοποιώ νίσον 10. Τι κάνω λοιπόν, αρχικοποιώ έναν κάναβο 10 x 10, βάζω δηλαδή μηδενικά παντού, αμέσως μετά υπολογίζω τους τυχαίους αριθμούς, ράντ 1 για κάθε σημείο του κάναβου μου, για κάθε κυψελίδα, το ίδιο επαναλαμβάνω και δημιουργώ και ένα δεύτερο ζεύγος αριθμών, ράντ 2, όχι ζεύγος, ένα δεύτερο set τυχαίων αριθμών, ράντ 2. Οπότε τώρα πώς αποφασίζω ποια στοιχεία του πει να κάνω, ποιες κυψελίδες κατοικούνται από δέντρα, ελέγχω εάν η τιμή της πιθανότητας ράντ 1 σε κάθε κυψελίδα είναι μεγαλύτερη από την πιθανότητα να έχω δέντρο, για να μπορέσω να δημιουργήσω έναν αρχικό πληθυσμό δέντρων, έτσι, με τυχαίο τρόπο. Αυτού του είδους η σύγκριση λοιπόν γίνεται εδώ και με αυτόν τον τρόπο ήδη ξεκινούμε να κάνουμε την επανάληψή μας στην ύλη του μαθήματος, αν θέλετε. Τι έχω εδώ, έχω μια σύγκριση. Τι συγκρίνω? Έναν πίνακα, δέκα επί δέκα, όπως είπα, τον ράντ 1, που έχει σε κάθε στοιχείο του τι αριθμούς από μηδένα ως ένα, σωστά. Συγκρίνω αυτόν τον πίνακα με μία πιθανότητα, με έναν αριθμό. Μπορώ, βεβαίως. Τι θα συμβεί στη βάση αυτής της σύγκρισης? Κάθε στοιχείο του πίνακα θα συγκριθεί με αυτόν τον αριθμό, probability 3, 0,6 στο παράδειγμα εδώ, και αν το στοιχείο του πίνακα είναι μεγαλύτερο από αυτόν τον αριθμό, τότε στη θέση του τι θα προκύψει? True, 1. Αν όχι, false, 0. Σωστό. Άρα λοιπόν, αν εγώ έχω ένα αρχικό πίνακα, θα μας το κάνουμε τρία επί τρία και να έχουμε ένα μικρό παράδειγμα. Έχω λοιπόν τους ρυθμούς 0,32, 0,88, 0,96, 0,14, 0,66, 0,77 και 0,22, 0,33, 0,44. Έστω ότι αυτή είναι η αρχική τυχία, οι αριθμοί μου. Συγκρίνω, αυτός ο πίνακας μου είναι ο πίνακας Rand1. Όταν εγώ κάνω τη σύγκριση Rand1 μεγαλύτερη από την πιθανότητα να έχω δένδρο, εδώ 0,6, επιτρέψτε μου να το γράψω αριθμητικά για να το κάνω πιο παραστατικό, ποιο θα είναι το αποτέλεσμα αυτής της σύγκρισης? Το αποτέλεσμα αυτής της σύγκρισης θα είναι ο εξής πίνακας. Είσαι μεγαλύτερο από 0,66? Όχι. Είσαι μεγαλύτερο από 0,66? Ναι. Ναι. Όχι. Ναι. Ναι. Όχι. Ναι. Ναι. Όχι. Όχι. Αυτό είναι το αποτέλεσμα της πράξης αυτής. Οπότε, όταν το αποτέλεσμα της πράξης αυτής χρησιμοποιείται ως χρήσμα στον πίνακα grid 1, στον πίνακα grid, σε όποιον θέλετε. Ο grid δεν ήταν ορχικός με τα μηδενικά. Τότε είναι σαν να του λέω ότι grid, όλο αυτό είναι η σύγκριση. Είναι το grid του round 1 μεγαλύτερο 0,6. Άρα είναι το grid όλου αυτού του πίνακα. Πρακτικά λοιπόν δείχνω στα σημεία αυτά και του λέω, στα σημεία αυτά βάλε πια τιμή, την τιμή 1. Ότι εδώ υπάρχει όντως δέντρο. Μετά, για να μπορέσω να δω από αυτά τα δέντρα ποια καίγονται, λέω ότι θέλω από τον αρχικό μου πίνακα, έστω ότι πάλι αυτές είναι οι πιθανότητές μου, θέλω round 1 μεγαλύτερο του probability tree, θέλω όλα τα στοιχεία του πίνακα, όλες τις κυψελίδες που κατοικούνται από δέντρα και τα στοιχεία που έχουν πιθανότητα μεγαλύτερη από το 0,8. Άρα λοιπόν, εδώ, αν πούμε ότι αυτός είναι πάλι ο πίνακας πιθανότητας, για να μην γραφώ να είμαι καινούργιο, εδώ χρησιμοποιώ δύο διαφορετικούς είπαμε, εδώ επιτρέψτε μου να χρησιμοποιήσω τον ίδιο στο πίνακα, ποιος είναι μεγαλύτερος από 0,88, αυτός. Άρα στη θέση αυτή θα τοποθετούσαμε το 2 και έτσι θα διαμορφώναμε τον αρχικό μας κάναβα, ο οποίος θα μας δείχνει πού δεν έχω δέντρα, που έχω και που έχω δέντρο που καίγεται. 0,88, σωστό, και αυτό. Άρα λοιπόν, αυτό τον τρόπο, αρχικοποιώ έναν κάναβα και δημιουργώ έναν κληθισμό τυχαία δέντρων και καίγομαι δέντρων, για να μπορέσω να έχω το υλικό μου να συνεχίσω από εδώ και πέρα. Ερώτημα. Ναι, ναι, ναι. Γιατί δεν θέλω να ξαναγράφω έναν καινούργιο πίνακα. Ουσιαστικά, λοιπόν, χρησιμοποιώ, ξαναλέω, δύο τυχαίους για να κάνω τη σύγκριση. Μέχρι εδώ δεν πιστεύω ότι έχουμε κάποιο θέμα. Να σας πω ότι μπορώ να οπτικοποιήσω κάτι καινούργιο. Η picolor του grid μου δίνει τη δυνατότητα να οπτικοποιήσω τα στοιχεία ενός πίνακα και στο παράδειγμα που είχα τρέξει εγώ, μπλε ήταν 10x10, μπλε ήταν οι περιοχές που δεν έχουν δέντρα, πράσινες αυτές που έχουν δέντρα και κόκκινες οι περιοχές που έχουν δέντρα που καίγονται. Ναι, εδώ εγώ οπτικοποιώ το παράδειγμα που έχω υπολογίσει. Άρα, προφανώς μπορώ να το διαβάσω σε φωτογραφία, ρωτάω στην αδερφόρα σας αν θα μπορούσα να το κάνω και ανάποδα να διαβάσω. Φυσικά, από τη στιγμή που έχω τη δορυφορική φωτογραφία, πρακτικά μπορώ να τη διαβάσω, δεν είναι χρωμηφωτογραφία. Δεν έχει, ας πούμε, μια κατηγοριοποίηση έστω Red, Green, Blue. Εμείς ξέρουμε από τη δουλειά που κάναμε μέσα στο εξάμινο, πώς μπορούμε να πάμε και να δούμε τον κάθε υποπίνακα. Και μπορεί ένας ειδικός να μας πει ότι κοίταξε να δεις, από το Red, Green, Blue έστω, θα πάρεις τον πίνακα Green και θα δεις ποιες περιοχές έχουν τιμή πάνω από 0,67. Αυτές οι περιοχές να ξέρεις ότι αντιστοιχούν σε δέντρα. Γιατί, το έχουμε βρει ότι ισχύει. Άρα, συνδέουμε πλέον πράγματα που έχουμε κάνει καθόλου τη διάρκεια του εξάμινου σε αυτό το παράδειγμα. Έχουμε όμως και κάτι άλλο εδώ. Θα το δούμε. Προς το παρόν, θα πρέπει να διαμορφώσουμε τους κανόνες ανανέωσης. Ετσι, παιχνίδι ζωής παίζουμε εδώ, άρα υπάρχει αυτή η ανάγκη κανόνων ανανέωσης. Προσδιορίζουμε την κατάσταση των κελιών στον χρόνο τάφ συν ένα, συναρτήσει τη κατάσταση στην οποία βρισκόταν τα κελιά στον χρόνο τάφ. Και την κατάσταση των γειτόνων του στη λεγόμενη γειτονιά von Neumann. Εδώ, δεν μας ενδιαφέρουν οι 8 γείτονες, μας ενδιαφέρουν μόνο οι 4, σε αυτή την παραλλαγή. Και η γειτονιά von Neumann, από το όνομα αυτού του πολύ μεγάλου μαθηματικού του 20ου αιώνα, ουσιαστικά σημαίνει ότι σε κάθε κειψελίδα ελέγχονται τι υπάρχει βόρεια, νότια, δυτικά και ανατολικά. Θέλω λοιπόν κανόνες. Οι κανόνες ανανέωσης που θα μου πούν τι γίνεται καθώς ο χρόνος κυλά είναι οι εξής. Εάν το κελί είναι κενό στον χρόνο τάφ, παραμένει κενό στο επόμενο χρόνο. Στο τάφσιν ένα. Εάν το κελί περιέχει κεγόμενο δέντρο, το δέντρο εξαφανίζεται για τάφσιν ένα. Εάν το κελί περιέχει δέντρο και βρίσκεται δίπλα σε κελί με κεγόμενο δέντρο, τότε αναφλέγεται με πιθανότητα ένα minimum probability to fire resistance. Έρχεται λοιπόν εδώ ένας δασολόγος και μας λέει ότι άκου να δεις, για το είδος της δασοκάλυψης που έχεις, υπάρχει μια πιθανότητα αντίσταση στην πυρκαγιά. Πρακτικά τι σημαίνει αυτή η πιθανότητα? Ότι αν έχω δύο δέντρα, το ένα δίπλα στο άλλο, το ένα καίγεται και το άλλο όχι, τότε η πιθανότητα είναι 0,7. Αυτό σημαίνει ότι στα δέκα ζεύγι, κεγόμενο, μη κεγόμενο, τα εφτά δεν θα πάρουν φωτιά, δεν θα μεταφερθεί, είναι η πιθανότητα του fire resistance, η πιθανότητα του να είναι ανθεκτικό το είδος στη μετάβαση της πυρκαγιάς. Άρα, ποιο είναι η πιθανότητα του να πάρει φωτιά, ένα μία είναι αυτό. Ρεαλιστικό επίσης, και όντως κάπως έτσι δουλεύουμε, κάπως έτσι δουλεύουν οι άνθρωποι σε αυτή την περιοχή, δηλαδή από μελέτες που έχουν κάνει, συναρτήσεις του είδους της δασοκάλυψης, συναρτήσεις του είδους των μετρολογικών συνθηκών και τα λοιπά, έχουν πιθανότητες μετάδοσης της πυρκαγιάς. Άρα και πιθανότητες αντοχής. Έχω λοιπόν αυτή την διαδικασία. Έχω και λίγο περιέχει δέντρο, είμαι δίπλα σε κεγόμενο, τότε θα πάρω φωτιά στο επόμενο χρονικό βήμα με πιθανότητα ένα μίον η αντοχή μου. Ένα δέντρο επίσης μπορεί να αναφυλεγεί από τυχία η γεγονότα. Κεραυνοί, ατυχήματα, έτσι. Αυτό συνολικά καλύπτεται από την πιθανότητα τυχίας φωτιάς, που πρέπει να τη λάβουμε υπόψη μας. Γιατί, διότι πολλές φορές μια πυρκαγιά μπορεί να ξεκινήσει από τέτοιου είδους συμβάντα. Για να δούμε τι σημαίνουν όλα αυτά. Αυτά όλα σημαίνουν ότι εγώ έχω την κυψελίδα μου i, j και πρέπει να δω τι γίνεται στην προηγούμενη γραμμή στην i πλην 1 για την ίδια στήλη j, στην επόμενη γραμμή στην i συν 1 για την ίδια στήλη j, στην ανατολική της κυψελίδα για την ίδια γραμμή i, j συν 1, στη δυτική της κυψελίδα i γραμμή j πλην 1. Και βέβαια εδώ είναι που ξεπηδά μπροστά μας αυτό το πρόβλημα. Τι κάνουμε στα άκρα. Να θυμίσω ότι έχουμε έναν τετρακονικό κάναβο και ότι πρέπει με κάποιον τρόπο να σαρώσουμε κάθε κυψελίδα. Έχουμε κυψελίδες όπως αυτές που ανήκουν σε ένα όριο, για τις οποίες έχει νόημα το σύνολο των άλλων εκτός από μία. Εδώ λείπει η νότια, δηλαδή υπάρχει η βόρεια, η δυτική, η ανατολική. Στην άλλη περίπτωση δεν υπάρχει η βόρεια, υπάρχουν οι άλλες τρεις. Αλλά έχω και υψηλίδες γωνιακές, στις οποίες έχω δύο ελλείψεις. Με ποιον τρόπο θα συμπεριφερθώ εδώ. Και αυτό είναι ένα πρόβλημα που δεν το συναντάμε μόνο στη μετάδοση της πυρκαγιάς, το συναντάμε πάρα πολλές φορές σε κάθε πρόβλημα που έχει να κάνει με πράγματα να γίνουν στοιχείο προς στοιχείο, λαμβάνοντας υπόψη το τι γίνεται σε όλα τα γειτονικά ή σε κάποια από τα γειτονικά στοιχεία. Θυμάστε μήπως κάτι να σας θυμίσω εγώ, ότι όταν κάναμε την αριθμητική παραγώγηση, μιλήσαμε για την μπροστά και πίσω. Θυμάστε, παίρναμε την τιμή μπροστά, την τιμή πίσω και διαιρούσαμε. Και αν είσαι εδώ στην άκρη, έστω ότι είσαι εδώ μπροστά, πίσω διαιρείς. Φτάνεις εδώ στην άκρη, μπροστά, δεν έχεις, πίσω έχεις. Με τι θα διαιρέσεις. Θα αρχίσεις τους κανόνες και αν είσαι στην άκρη και είσαι στην ανατολική άκρη και πιο πριν έχουν γίνει αυτά, τότε μη διαιρείς δια το τα, δεν διαιρείς. Είναι λογικό. Υπάρχουν λοιπόν πολλά τέτοια προβλήματα και εδώ ερχόμαστε να δούμε πώς χειριζόμαστε ιωριακές συνθήκες και οι ψελίδες εκτός της περιμέτρου είναι ανενεργές, δηλαδή δεν υπάρχει τίποτα εκτός των περιμέτρων. Μία τακτική που ακολουθείτε και σε προβλήματα αριθμητικής ανάλυσης στη μετάδοση θερμότητας, στη ρευστομηχανική, στην αντοχή υλικών είναι η εξής να θεωρήσουμε ψευδοκιψελίδες γύρω γύρω, με συγκεκριμένες τιμές. Δηλαδή δεν υπάρχουμε στην πραγματικότητα, αλλά κάπως πρέπει να κάνω τη δουλειά μου για αυτές τις ακριανές, για να μπορέσω να κάνω τη δουλειά μου έτσι ώστε να μην αρχίσω να κόβω και να ράβω τον αλγόριθμο και να τον τεντώνω και να τον μαζεύω εκεί που δεν ευολεύει, να βάλω ένα στρώμα ψευδοκιψελίδων γύρω γύρω, θέλω να περιορίσω τη δουλειά μου στις αρχικές. Μια πολύ έξυπνη κίνηση είναι αυτή. Να θεωρήσω ότι η επιφάνειά μου δεν είναι επίπεδη, ότι τα άκρα αυτά ενώνονται. Η Ανατολή ενώνονται με τη Δύση. Έτσι δεν συμβαίνει και στο πραγματικό κόσμο εξάλλου. Όπως επίσης και ο Βοράς ενώνονται με το Νότο. Άρα λοιπόν με αυτό τον τρόπο θεωρώ ότι δυτικός γείτονας αυτής της περιοχής ο δυτικός γείτονας αυτής της περιοχής είναι ποιος. Είναι αυτή η περιοχή. Αφού ο κόσμος είναι κυλινδρικός. Και βέβαια μπορώ να θεωρήσω ότι ο βόρειος γείτονας αυτής της περιοχής είναι κατ' αναλογία αυτή η περιοχή. Και έτσι λοιπόν σε επίπεδο οριακών συνθηκών δεν έχω πλέον να κάνω με μια γεωμετρία ευκλήδια αλλά με μια τωροειδή γεωμετρία. Και τώρα αρχίζουν να έχουν ελπίζω μεγαλύτερο νόημα τα πράγματα που κάνετε στα μαθηματικά δύο. Για ποιον λόγο ασχολείστε με τέτοιοι είδους καμπύλες? Για να μπορέσετε να λύσετε προβλήματα στις περιπτώσεις όπου ξαφνικά η λύση στο επίπεδο ενώ είναι επίπεδο το σύμπαν του προβλήματός σας δεν έχει νόημα και αν μεταφράσετε το επίπεδο του προβλήματός σας σε τώρα ή σε κάτι άλλο έχει νόημα αλλά εκεί πρέπει να διαμορφώσετε άλλου είδους συναρτήσεις, έτσι δεν είναι? Οπότε λοιπόν πιστεύω και ελπίζω ότι με αυτόν τον τρόπο θα βλέπετε τώρα με κάπως διαφορετικό μάτι κάποια από τα πράγματα που κάνετε στα μαθηματικά δύο. Διότι ο κόσμος μερικές φορές όταν δεν μας βολεύει να είναι επίπεδος μπορεί να γίνει κάτι άλλο. Να γίνει τόρος, να γίνει σέλα αλόγου, να γίνει οτιδήποτε. Διότι αυτό εκφράζει φυσικά προβλήματα. Και εφόσον λοιπόν όλα έχουν έτσι τότε στο MATLAB πως το καλό τα χειρίζομαι. Ευτυχώς, αυτοί οι καλοί άνθρωποι που έχουν δημιουργήσει όλη αυτή η μεγάλη κοινότητα που έχει δουλέψει σε υπολογιστικά περιβάλλοντα όπως το MATLAB θέλω να πω και η οποία έχει τροφοδοτήσει με ερωτήματα και απαντήσεις σε αυτού του είδους τα υπολογιστικά περιβάλλοντα μοιάστηκε και γι' αυτό και έχει δημιουργήσει την συνάρτηση Cirque shift που σημαίνει κυκλικό shifting πινάκων. Πρακτικά τι σημαίνει αυτό, προσέξτε ένα παράδειγμα. Έχω αυτό το πίνακα. 1, 2, 3 στην πρώτη γραμμή, 4, 5, 6 στην δεύτερη γραμμή, 7, 8, 9 στην τρίτη γραμμή. Η σύνταξη της εντολής αυτής είναι circular shift, κυκλικό shifting σημαίνει παρένθεση, ποιο πίνακα θέλεις το κυκλικό shifting να αρχίσεις να το μετακινείς είναι σαν να έχεις πάλι στο σχέδιο ένα ριζόχαρτο έχεις στο σχέδιο όσο έχεις δύο ριζόχαρτα και έχεις να μετακινείς το ένα δεξιά, αριστερά, πάνω και κάτω. Θέλω το α ριζόχαρτο. Μάλιστα, πώς θέλεις να το μετακινήσεις εδώ στο συγκεκριμένο παράδειγμα θέλω 0 μετακινήσεις κατά γραμμές, άρα σε επίπεδο γραμμών να παραμείνει εκεί που είναι. Ανατολή δύση λοιπόν θα κινούμε και μία μετακίνηση κατά στήλη. Ένα κλικ δεξιά λοιπόν θέλω να το κάνω το ριζόχαρτό μου. Βλέπετε τι έγινε, η πρώτη στήλη πήγε δεξιά. Να το 1, 4, 7. Η δεύτερη στήλη πήγε ένα κλικ δεξιά. Ε, τι ήρθε από το πίσω μέρος του κυκλικού κόσμου και γέμισε το κενό? Το 3, 6, 9. Εάν λοιπόν εγώ θελήσω τώρα να κάνω αυτή τη δουλειά με γραμμές, θέλω δηλαδή να κάνω ένα κλικ κάτω όλες τις γραμμές. Τότε πρέπει να του πω για τον πίνακα α, δώσε μου ένα κλικ κάτω όλες τις γραμμές με 0 μετακίνηση στις στήλες. Δηλαδή μη μου μετακινείς το ριζόχαρτό μου δεξιά-ριστερά, αυτό είναι στήλες, μετακίνησέ το μου μόνο πάνω-κάτω, μόνο γραμμές και πόσα κλικ, ένα κλικ κάτω. Θα πάω λοιπόν ένα βήμα κάτω. Έχοντας αυτό κατά νου, μπορώ εγώ να κάνω το εξής τώρα, γιατί τα θέλω όλα αυτά, γιατί εγώ θέλω σε κάθε κυψελίδα μου, μάλλον για κάθε σημείο του πίνακα μου, για κάθε κυψελίδα μου, θέλω να ξέρω ποιο είναι το βόρειο στοιχείο του, σωστά, το νότιο, το δυτικό και το ανατολικό, για να εφαρμόζω τους κανόνες μετά, έτσι δεν είναι. Αυτό που με βολεύει πάρα πολύ, πονηρή σκέψη είναι, είναι το εξής, να μην πηγαίνω κάθε φορά και να λέω ποιος είναι στο βορά, ποιος είναι στο νότο και τα λοιπά, να δημιουργήσω τέσσερις πίνακες, που για κάθε στοιχείο του αρχικού, να έχουν ο κάθε ένας ένας πίνακας όλα τα βόρεια, ο άλλος όλα τα νότια, ο άλλος όλα τα ανατολικά και ο τελευταίος όλα τα δυτικά στοιχεία. Δηλαδή, αν έχω αυτό το παράδειγμα, το παράδειγμα που βρίσκεται ζωγραφισμένο στον πίνακα μπροστά σας με κυμολεία και θα ήθελα για κάθε στοιχείο, είναι νέα αυτά, έτσι δεν είναι, για κάθε στοιχείο θα ήθελα το βόριό του. Τι θα έπρεπε να κάνω, δεν θα έπρεπε να κάνω όλα τα στοιχεία να κλεικκάτω, όλο το πίνακα να κλεικκάτω, διότι στη θέση αυτούνου ποιο θα έρχονταν, το βόριό του, στη θέση αυτούνου θα έρχονταν, το βόριό του, που θεωρείται αυτό, έτσι. Άρα, για κάθε στοιχείο, αυτό το βήμα κάτω, το κλικ κάτω, θα έφερνε, στην ίδια θέση με το στοιχείο που ψάχνω, το βόριό του. Αν κάνω το ανάποδο, ένα κλικ επάνω, κουνήσω όλο μου το χωριζόχαρτο, ένα κλικ επάνω, τότε σε κάθε κυψελίδα έρχεται το νότιο στοιχείο, έτσι δεν είναι, εδώ θα έρθει αυτό το στοιχείο, εδώ θα έρθει αυτό το στοιχείο, εδώ θα έρθει, ποιο θεωρείται νότιο αυτό που είναι το από πάνω, εδώ θα έρθει, ποιο θεωρείται νότιο αυτό που είναι το από πάνω, έτσι δεν είναι. Όμοια μπορώ να λειτουργήσω με ανατολικά-δυτικά, δηλαδή να πω ότι για κάθε στοιχείο κάνω ένα κλικ δεξιά και έρχεται το δυτικό. Φέρνω όλα ένα κλικ δεξιά και έρχεται το δυτικό στη θέση του. Στη θέση του στοιχείου του οποίου θέλω το δυτικό θα έρθει αυτό. Δυτικά το δεν βρίσκεται. Στη θέση αυτούνού θα έρθει το δυτικό. Στη θέση αυτούνού θα έρθει το δυτικό του που είναι το... Αυτό. Όμοια δυτικά-ανατολικά. Αυτά λοιπόν θα τα χρησιμοποιήσουμε μετά το διάλειμμα για να το λύσουμε αυτό το πρόβλημα. Είχαμε αφήσει την όλη διαδικασία στο σημείο όπου είχαμε δει πώς μπορούμε να διαχειριστούμε βόρεια-νότια και ανατολικά-δυτικά στοιχεία του κανάβου μας. Και έτσι λοιπόν η βόρεια κυψελίδα της εκάστοτε κυψελίδας ενδιαφέροντος μπορεί να προκύψει εάν μετακυνήσουμε όλο τον κάναβο κατά μία γραμμή νότια, προς τα κάτω. Η κυψελίδα θα προκύψει εάν το μετακινήσουμε μία προς το βορά, μίον ένα λοιπόν το βήμα εδώ. Η ανατολική κυψελίδα θα προκύψει εάν μετακινηθούμε κατά μίον ένα, άρα αριστερά, και η δυτική κατά συνένα δεξιά. Εφόσον έχουμε όλα αυτά στην διάθεσή μας, τότε τι μπορούμε να κάνουμε. Να ξεκινήσουμε να υλοποιούμε τους κανόνες. Δηλαδή, εάν το κυλί είναι κενό, κατά τη χρονική στιγμή τάφ, παραμένει κενό, κατά τη χρονική στιγμή τάφ συνένα. Εδώ δεν χρειάζεται να κάνουμε κανέναν άλλο υπολογισμό. Αρχίζουμε τώρα να βλέπουμε τις λεπτομέρειες. Εάν το κυλί περιέχει κεγόμενο δέντρο, είπαμε ότι το δέντρο θα πρέπει να εξαφανιστεί την επόμενη χρονική στιγμή. Πώς μπορούμε να ελέγξουμε εάν το κάθε κελί περιέχει κεγόμενο δέντρο. Το old grid, το grid του προηγούμενου χρονικού βήματος, ελέγχεται ως προς τεάνη σούτε στοιχείο προς στοιχείο με το 2. Αυτός ο έλεγχος, πάλι, είναι ένας λογικός έλεγχος. Θα παράξει ως αποτέλεσμα έναν πίνακα, ίδιο με τον πίνακα που ελέγχεται, ο οποίος θα έχει απλά μηδενικά και άσους. Μηδενικά υπό την έννοια του λογικού false, άσους υπό την έννοια του λογικού true. Άρα λοιπόν, εφόσον γίνει ο έλεγχος, θα πρέπει να σκεφτόμαστε εμείς ότι μέσα στην παρένθεση, πλέον δεν έχουμε τίποτα άλλο παρά έναν πίνακα με μηδενικά και άσους. Μπορώ να το έχω αυτό? Όπως εξηγήσαμε και πριν από το πρώτο διάλειμμα, βεβαίως και μπορώ. Πού δείχνει αυτός ο πίνακας? Αυτός δείχνει στα στοιχεία των οποίων η τιμή είναι μονάδα. Άρα το new grid θα βάλει εκεί όπου το old grid είχε 2, την τιμή 0. Ξανά, έχω τον αρχικό μου κάναβο τη στιγμή που εξετάζω τι θα κάνω στο επόμενο χρονικό βήμα, όποια και είναι αυτή. Πρώτη, δεύτερη, τρίτη είμαι σε κάποια στιγμή tough. Συγγνώμη. Ελέγχω στοιχείο προ στοιχείο εάν τα στοιχεία του κανάβου μου, εάν τα στοιχεία του πίνακά μου είναι ίσα με δύο. Εάν είναι ίσα με δύο, τότε αυτό σημαίνει ότι έχουν δένδρο που καίγεται. Τι θέλω να κάνω, θέλω να υλοποιήσω τον κανόνα ο οποίος λέει πως στο επόμενο χρονικό βήμα ένα δένδρο που καίγεται εξαφανίζεται. Λογικά η βιωμάζα του θα γίνει θερμότητα. Άρα, λοιπόν, θέλω στη θέση των στοιχείων που έχουν την τιμή δύο να βάλω την τιμή που αντιπροσωπεύει ανυπαρξία δένδρου. Μηδέν. Ο επόμενος κανόνας τώρα είναι πιο πολύπλοκος. Γιατί? Διότι λέμε πως το κελί περιέχει δένδρο. Μάλιστα. Έστω ότι βρίσκεται δίπλα σε κελί με κεγόμενο δένδρο. Τότε θυμόμαστε ποιος είναι ο κανόνας που μας μετέφεραν οι ειδικοί. Ότι το δένδρο μας αναφλέγεται με μια πιθανότητα ίση με το ένα μείον την πιθανότητα αντίστασης σε πυρκαγιά. Αυτό τον αριθμό μας το δίνει κάποιος ειδικός. Πολλές φορές σε προβλήματα, ένας άλλος λόγος που τα επέλεξα αυτό, αν και μπορεί να φαίνεται τώρα παράξενο, ο πραγματικός κόσμος έχει συνεργασίες με άλλες ειδικότητες και με άλλες χώρες. Και άρα λοιπόν, αν δεν είσαι σε θέση να το διαχειριστείς, δεν μπορείς να κινηθείς στον πραγματικό κόσμο. Ό,τι αυτό σημαίνει. Εδώ λοιπόν, θα έρθει κάποιος άλλος συνάδελφός μας, μη μηχανικός, ο οποίος είναι ειδικός στη συμπεριφορά της βιωμάζας υπό υψηλές θερμοκρασίες και θα μας πει, κοίταξε να δεις, αυτού του είδους η δασοκάλυψη έχει αυτή την πιθανότητα αντίσταση σε πυρκαγιά. Μάλιστα, θα πούμε εμείς, πολύ ωραία, έχω τον αλγοριθμό μου, ένα μείον αυτή την πιθανότητα είναι η πιθανότητα να πάρει φωτιά. Πώς θα το χρησιμοποιήσω? Υπολογίζω το μήκος της διάστασής μου εδώ, για να σας το υπενθυμίσω περισσότερο. Και εκεί όπου το παλιό grid έχει την τιμή 1, ξέρω ότι υπάρχει δένδρο, σωστά. Άρα, βαφτίζω, δημιουργώ έναν καινούριο πίνακα, τον have tree, έχει δένδρο. Γιατί, για να το χρησιμοποιήσω αργότερα. Άρα λοιπόν, το πρώτο πράγμα που κάνω είναι ότι δημιουργώ έναν πίνακα, τον have tree, ο οποίος είναι ο πίνακας που προκύπτει από τον έλεγχο του εάν ο κάναβος μου έχει δένδρο. Πώς κάνω αυτό τον έλεγχο? Κάναβος διπλωίσω με 1. Στηχείο προστηχείο έλεγχος του εάν ο κάναβος μου έχει την τιμή 1. Λογικό 1 true, λογικό 0 false. Αυτά τα 1 και 0 θα γίνουν στοιχεία του πίνακα have tree. Είναι λοιπόν ο πίνακας που έχει την τιμή 1 εκεί όπου υπάρχει δένδρο. Σωστό. Έχω τώρα έναν άλλο πίνακα που δημιουργώ, τον susceptible, που σημαίνει ευαίσθητος, αγγλιστή, γι' αυτό και το επέλεξα σαν λέξη. Θα μπορούσε να είναι οποιοδήποτε όνομα, ξαναείπαμε, είναι μεταβλητή. Προσέξτε πώς το υπολογίζω, πώς υπολογίζω εγώ τα δένδρα τα οποία είναι ευαίσθητα σε πυρκαγιά από τον πίνακα τυχαίων αριθμών που χρησιμοποιώ για να κρίνω τι συμπεριφορά θα έχει το κάθε δένδρο. Έχω τον πίνακα run, μη το 10 x 10, 20 x 20, ό,τι χρησιμοποιώ εδώ, σωστά. Άρα, στοιχείο προς στοιχείο, ελέγχοντα κατά πόσο αυτή η τυχαία η αριθμή, είναι μικρότερη από την πιθανότητα πυρκαγιάς. Εάν λοιπόν είναι μικρότερη, σημαίνει ότι έχουν πολύ μικρή αντοχή στη φωτιά και άρα είναι υποψήφια ευαίσθητα δένδρα. Αυτό λοιπόν είναι το δεύτερο στοιχείο. Άρα, εάν ο πίνακας have tree περιέχει 0 και 1 με άσους εκεί όπου υπάρχουν δένδρα, ο πίνακας susceptible περιέχει 0 και 1 εκεί όπου υπάρχει υψηλός κίνδυνος πυρκαγιάς. Άρα, υπάρξει δένδρο. Πιθανότητα καύσης. Έχει 0 και 1 εκεί όπου υπάρχει πιθανότητα καύσης. Και υπολογίζω τώρα το εξής. Για κάθε βόρεια, νότια, ανατολική και δυτική κυψελίδα υπολογίζω το εάν έχει κεγόμενο δένδρο. Πώς το υπολογίζω αυτό? Κάνω τον έλεγχο. Και εδώ θέλω την προσοχή σας για να καταλάβουμε τι υπάρχει μέσα σε αυτή την παράσταση. Αυτή η εντολή circular shift, τι κάνει? Μετακινεί το grid. Σωστά. Άρα πλέον δεν μας μπερδεύει. Μετακινεί πιο το παλιό grid. Εδώ. Το μετακινεί δεξιά, αριστερά, πάνω κάτω, κατά ένα κλικ. Ωραία. Κάνει λοιπόν την μετακίνηση, κατά ένα κλικ, έστω λοιπόν, πού να πάμε, στο north. Άρα θα κάνει ένα κλικ, θα πάρει όλο το grid και θα το κάνει ένα κλικ κάτω. Μια θέση προς τα κάτω. Οπότε λοιπόν για κάθε κυψελίδα μετά, έχω ως καινούρια τιμή, την τιμή του βοράτης. Τις βορές της κυψελίδας. Ξαναλέω, εάν όλο αυτό το μετακινήσω, ένα κλικ προς τα κάτω, τότε στη θέση την αρχική, ποια κυψελίδα θα βρεθεί, αυτή που σε σχέση με την αρχική ήταν στο βοράτης. Σωστά. Έτσι λοιπόν μπορώ, για αυτή την κυψελίδα που με ενδιαφέρει, και για κάθε μία από τις κυψελίδες που με ενδιαφέρουν, να έχω πλέον στη θέση τους την βόρεια κυψελίδα. Αυτό κάνει η circular shift. Ο έλεγχος του αν η circular shift είναι ίσως με δύο, τι κάνει. Κάνει το κλικ προς τα κάτω και μετά αλέγχει να δει, είναι η τιμή σου δύο. Τι σημαίνει δύο, κεγόμενο δέντρο. Άρα η circular shift κάνει ένα κλικ προς τα κάτω, εδώ, προς τα πάνω αριστερά δεξιά και ελέγχει το αν η τιμή είναι η τιμή που αντιστοίχει σε κεγόμενο δέντρο. Με αυτό τον τρόπο έχω τέσσερις ισοδύναμους πίνακες. Ένα για τα βόρεια στοιχεία, ένα για τα νότια, ένα για τα ανατολικά και ένα για τα δυτικά. Είναι το north fire, south fire, west fire, east fire. Αυτοί οι πίνακες επίσης, να θυμίσω, έχουν στοιχεία μηδέν και ένα, μόνο μηδέν και ένα, γιατί, διότι είναι το αποτέλεσμα του ελέγχου το αν είναι, είσαμε δύο. Ή θα έχουν κεγόμενα ή δεν θα έχουν. Άρα έχουν μηδέν και ένα και μας δείχνουν κεγόμενα δέντρα. Κεγόμενα δέντρα. Έτσι λοιπόν, τι έχω πετύχει. Να δημιουργήσω έναν πίνακα ίσο με το αρχικό που ελέγχω, ο οποίος έχει ένα εκεί όπου υπάρχουν δέντρα και μηδέν εκεί όπου δεν έχουν. Δεν υπάρχουν, σωστό. Αυτό είναι το πρώτο μου στοιχείο. Δεύτερο στοιχείο, έχω δημιουργήσει έναν άλλον πίνακα, ο οποίος έχει άσους εκεί όπου έχω ευαίσθητα υποψήφια προς πυρκαγιά δέντρα και μηδέν εκεί όπου δεν έχω τέτοιου είδους. Και έχω και τέσσερις άλλους πίνακες που ο καθένας έχει άσους, εκεί όπου, για κάθε την ψελίδα, το βόρειο του κέγεται, το νότιο του κέγεται, το ανατολικό και το δυτικό του κέγονται. Άρα λοιπόν, εφόσον τα έχω όλα αυτά, είναι πιο εύκολα τα πράγματα. Γιατί? Διότι μπορώ να δημιουργήσω έναν πίνακα, ο οποίος για κάθε στοιχείο να μου πει εάν γειτονεύει με κεγόμενο. Πώς το κάνω αυτό? Έλεγχος. Αν σας το βάλουμε λοιπόν στην εξέταση και σας ρωτήσω τι είναι αυτό, θα πρέπει να μπορείτε να το απαντήσετε πλέον. Πετάω την μπανανόφλωδα της εξέτασης, μήπως και γλυστρίσει κανείς και πει «Ωπ, τι έγινε ρε παιδιά!». Τι είναι αυτό λοιπόν, εδώ τι κάνουμε. Σύμβολο or. Άρα λοιπόν, αυτός ο πίνακας ή αυτός ο πίνακας, ή αυτός ο πίνακας, ή αυτός ο πίνακας. Για όσους δεν θυμούνται και όσες δεν θυμούνται, να το δούμε πάλι τι σημαίνει αυτό. Τέσσερις πίνακες ο ένας μετά τον άλλο στη σειρά με ώρες ενδιάμεσα. Αυτό σημαίνει ότι για κάθε κυψελίδα, έστω αυτή εδώ την κυψελίδα να την κάνω κιτρινή. Για κάθε κυψελίδα είπαμε ότι έχω τέσσερις πίνακες, άρα έχω τέσσερις τιμές για κάθε κυψελίδα και κάθε τιμή της μου λέει. Η τιμή για αυτή την κυψελίδα μέσα στον πίνακα in fire είναι 1 εάν και μόνο εάν στο βορά αυτής της κυψελίδας υπάρχει κεγόμενο. Μέσα στην s fire, για αυτή την κυψελίδα έχω την τιμή 1 μόνο εάν στο νότο αυτής της κυψελίδας έχω κεγόμενο. West μόνο αν δυτικά αυτής της κυψελίδας που είναι πιο στοιχείο, αυτό, διότι ο κόσμος είναι κυκλικός και μόνο αν ανατολικά της κυψελίδας. Άρα για κάθε κυψελίδα έχω τέσσερις πίνακες που μου δίνουν τέσσερις τιμές. Οπότε είναι σαν να αναρωτιέμαι είναι true ή true, είναι true ή false, πρακτικά αυτός ο έλεγχος λοιπόν τι κάνει, τι θα παράξει αν έστω και μία από τις τέσσερις τιμές, διότι n fire, s fire, w και e είναι true ή false ανά κυψελίδα, έτσι δεν είναι. 1 ή 0 ανά κυψελίδα. Άρα αυτός ο έλεγχος είναι του τύπου true false ή true false. Οποιαδήποτε τιμή, έστω και μία από αυτές είναι true, σημαίνει ότι όλος ο έλεγχος τι αποτέλεσμα έχει, true. Άρα όλος ο έλεγχος μου δείχνει ότι υπάρχει τουλάχιστον ένα γυτνιάζον δέντρο αυτής της κυψελίδας που καίγεται, αυτό θέλω εγώ, εκεί το πάω. Άρα με αυτό τον έλεγχο εξασφαλίζω ότι ελέγχω, βλέπω, βορρά-νότο-ανατολή-δύση κάθε κυψελίδας, ως προς τεάν περιέχουν δέντρο που καίγεται. Αυτά τα στοιχεία του ελέγχου τα βάζω μέσα σε έναν άλλο πίνακα, για να μην τους μπερδεύω περισσότερο. Και ο τελευταίος έλεγχος τώρα, τι θέλω εγώ, όσα είναι δίπλα σε κελί με κεγόμενο δέντρο, για τότε να αναφλέγονται με μια στιγμή πιθανότητα. Προσέξτε με. Έχω τώρα, δυστυχώς, στην τελευταία γραμμή, συγγνώμη γι' αυτό, το εξής. I have three. Μάλλον, να γράψω πρώτα ότι κάνοντας τον έλεγχο όλων αυτών, καταλήγω σε έναν πίνακα, στον... Ωπ, λάθος. Στον Adjusted, στον προσαρμοσμένο, ο οποίος έχει ένα ή μη δέν, ανάλογα με το αν για κάθε κυψελίδα υπάρχει τουλάχιστον ένας γείτονας που καίγεται. Άρα τελικά, επιστρέφω να δω ποιους πίνακες έχω. Για κάθε κυψελίδα έχω μια τιμή που μου λέει αν υπάρχει δέντρο μέσα της. Έχω μια άλλη τιμή που μου λέει αν έχω μεγάλη πιθανότητα κάψεις. Και έχω και ένα τρίτο πίνακα που μου λέει αν έχω γειτονικό δέντρο που καίγεται. Άρα λοιπόν, εάν υπάρχει δέντρο και έχω δέντρο που καίγεται και έχω πιθανότητα υψηλή κάψεις, τότε αυτό το δέντρο θα πάρει φωτιά και δεν ξαφανιστεί την επόμενη περίοδο. Έτσι δεν είναι, διότι ο κανόνας αυτός είναι ο πιο σύνθετος στο πρόβλημά μας. Λέει πως πρέπει να έχω δέντρο ένα το κρατούμενο. Μου το εξασφαλίζει το Her3. Πρέπει αυτό το δέντρο να είναι όχι από τα αρθοδεκτικά στην πυρκαγιά, αλλά από αυτά που εύκολα παίρνουν φωτιά. Μου το εξασφαλίζει ο πίνακας susceptible. Έχει άσους εκεί όπου τα δέντρα είναι ευαίσθητα σε πυρκαγιά. Και πρέπει να γειτονεύει με κεγόμενο. Ο κανόνας λέει ότι αν έχω δέντρο, κελί με δέντρο, που είναι ευαίσθητα σε πυρκαγιά και γειτονεύει με κεγόμενο, στην επόμενη φάση θα πάψει νεφίστατα. Αυτός ο υπολογισμός λοιπόν μου το εξασφαλίζει. Και έτσι τελικά μπορώ να επιλύσω και αυτό το πιο πολύπλοκο, θα έλεγα, βήμα. Και παραμένει μόνο ένα βήμα ακόμη, το οποίο είναι το να αναφλέγεται το δέντρο μου από τυχία γεγονότα. Κεραυνή. Εδώ έχω μια πιθανότητα πυρκαγιάς, ελέγχω αν πάλι με τη δοχεία τυχαίων αριθμών, η τιμή είναι μεγαλύτερη ή μικρότερη από την πιθανότητα και ανάλογα βάζω την τιμή 1 ή 0 εκεί. Και με αυτόν τον τρόπο αποφασίζω το τι θα γίνει. Θα μου πείτε μπορεί αυτό να αποτελέσει καλό κριτήριο. Βεβαίως, πώς μπορούμε να το δούμε, γνωρίζουμε από παρατηρήσεις τις πιθανότητες ανάφλεξης στη βάση τυχαίων συμβάντων όπως κεραυνή ή άλλες μη καθορισμένες και γνωστές αιτίες πυρκαγιάς. Γνωρίζουμε δηλαδή πόσες φορές εμφανίζονται μέσα σε ένα περίοδο συναρτήσης καταστάσεων. Άρα μπορώ εγώ να υπολογίσω μια πιθανότητα. Και αυτές τις πιθανότητες τις γνωρίζει και τις διαχειρίζεται η υπηρεσία πολιτικής προστασίας. Λοιπόν, μπορώ να υπολογίσω και εκεί το εάν καίγεται ή όχι το δέντρο μου. Ερώτημα. Κάθε φορά υπολογίζουμε από την αρχή. Κάθε φορά υπολογίζουμε το αν υπάρχει δέντρο. Εμείς έχουμε τα δεδομένα της τρέχουσας γενιάς. Η τρέχουσα γενιά ή κάθε τρέχουσα γενιά ή κάθε τρέχουσα χρονική στιγμή μας δίνει μια πιθανότητα δέντρου, όχι πιθανότητα, μια πληροφορία του αν υπάρχει δέντρο, μια πληροφορία του εάν υπάρχει γειτονεύον και γεγόμενο και μια πληροφορία του εάν το δέντρο που έχουμε ανήκει σε αυτά που είναι ευαίσθητα. Αυτό κάθε φορά υπολογίζεται. Στην επόμενη φάση η τιμή της Κυψελίδας, της Ακάστρος της Κυψελίδας θα αλλάξει στη βάση αυτών των κανόνων. Δεν ξέρουμε τι καινούριο θα έρθει. Ναι, ότι είναι γεγόμενο δέντρο. Αλλά καθίστετε και γεγόμενο. Τι θα συμβεί στην επόμενη φάση δεν ξέρουμε. Εξαρτάται από τους νέους του γείτονες και από τους άλλους κανόνες. Ερώτημα άλλο. Εδώ το ερώτημα είναι. Εάν υπάρχει λόγος που δεν χρησιμοποιώ βραχυκυκλωμένα end και or. Πολύ καλό ερώτημα. Λέει ξανά, λέει ο συναδεφός μας. Εδώ για παράδειγμα. Έχω or. Διάζευξη. Δεν είναι βραχυκυκλωμένη διάζευξη. Είναι απλή διάζευξη. Ποια είναι η διαφορά μεταξύ των δύο, θυμόμαστε? Μας δίνει την ευκαιρία να σχολιάσουμε μια λεπτομέρεια. Παρακαλώ, κύριε εδώ. Άρα λοιπόν, επαναλαμβάνω την απάντηση που είναι σωστή και ευχαριστώ. Ότι στη βραχυκυκλωμένη, ο έλεγχος σταματά αμέσως. Δεν ολοκληρώνεται. Με το πρώτο που θα συνεδίσει το οποίο τηρεί τον έλεγχο, σταματά. Ο λόγος λοιπόν, δεν υπάρχει. Αντιθέτως, εάν το έβαζα όπως επισημένει ο συναδεφός σας, ήταν βραχυκυκλωμένη η διάδοξη, θα ήταν θεωρητικά και όχι μόνο κατά τη γρηγορότερη εκτέλεση. Τώρα, για να δούμε, πρώτα απ' όλα να σας πω ότι μπορείτε να δοκιμάσετε το δικό σας πρόγραμμα. Σε κάποια από τις προηγούμενες χρονιές, κάποιοι μου είχαν φέρει δικές τους υλοπίσεις και ήταν πάρα πολύ ωραίες. Όποιος θέλει εσχολείται με αυτό, έτσι, χάριν παιδιάς, όπως λέμε. Και με αφορμή αυτό, να δούμε λίγο τώρα, στο υπόλοιπο της ώρας, το τι αντιμετωπίσαμε εγκαθόλητη τη διάρκεια του εξαμίνου. Είδαμε, σε αυτό το παράδειγμα, στοιχεία που αφορούν διανισματικό ή αποδοτικό προγραμματισμό, χρήση λογικών δικτών, διαδικασίες χειρισμού πινάκων. Και έτσι, έμεσα, υπενείχτηκα κάποια από τα βασικά πράγματα που είδαμε κατά τη διάρκεια του εξαμίνου. Για να τα δούμε όμως συνολικά, να δούμε τι κάναμε και να δούμε και πού βρισκόμαστε. Μην ξεχνάμε ότι είμαστε στο τέλος και είναι πάρα πολύ χρήσιμο να δούμε αν η προσπάθεια που κάναμε έχει φέρει τα αποτελέσματα που θέλαμε. Πρώτα από όλα, να θυμίσω ότι το μάθημα το χωρίσαμε, το δομίσαμε σε τρεις κύκλους. Ο πρώτος κύκλος, αντιγράφω από το σύλλαμπους, από την περιγραφή του μαθήματος, στόχευε στην γνωρινία με τις βασικές αλγοριθμικές διαδικασίες, με στόχο να μπορούμε να επιλύσουμε προβλήματα. Και στην κατανόηση της λειτουργίας μας προγράμματος και θα πρέπει, λέγαμε, στο τέλος του πρώτου κύκλου να μπορείτε να αναπτύσετε μικρά προγράμματα και συναρτήσεις και να γνωρίζετε τα περισσότερα στοιχεία σύνταξης σε MATLAB. Για να το πετύχουμε αυτό, τι κάναμε? Είδαμε δομές ακολουθίας, ότι η μία έντολη έπεται της άλλης και ότι η ολοκλήρωση της πρώτης οδηγεί στην δεύτερη και της τρίτη και ούτω καθεξής. Υπάρχει αυτή η σειριακή λογική. Είδαμε δομές επαναλήψης, επαναλαμβανόμενες διαδικασίες, οι οποίες γίνονται είτε με δύο τρόπους. Ο αριθμός των επαναλήψεων είναι γνωστός. For i από 1 έως νι όπου νι, ο γνωστός αριθμός επαναλήψεων. Δεύτερος τρόπος, ο αριθμός επαναλήψεων δεν είναι γνωστός, αλλά ξέρουμε ότι θέλουμε να επαναλαμβάνουμε έως ότου μια συνθήκη καταστεί η αληθής ύψαδής. Όσο η συνθήκη μου είναι αυτή που δεν θέλω, συνέχισε να κάνεις μια δουλειά έως ότου φτάσεις σε μια κατάσταση όπου η συνθήκη θα έχει την τιμή που θέλω. Με αυτούς τους δύο τρόπους μεταφράζουμε κάθε επαναληπτική διαδικασία. Είδαμε δομές ελέγχου, if. Ένα if, δύο if, τρία if, πολλαπλά if, το ένα μέσα στο άλλο. Πάντοτε ελέγχεται η λογική τιμή μιας παράστασης. Είναι true if όλους. Τι άλλο είδαμε, πάρα πολύ σημαντικό, στο οποίο δώσαμε μεγάλη βαρύτητα καθόλου τη διάρκεια του εξαμίνου και στα θέματα και στις ασκήσεις, συναρτήσεις. Και εκεί είδαμε δύο βασικά στοιχεία στα οποία σας καλώ και σας προσκαλώ να δώσετε μεγάλη σημασία και τώρα στο τέλος και στην επόμενη ακαδημαϊκή σας πορεία, όσο χρησιμοποιείτε, στοιχεία πληροφορικής. Ορίσματα εισόδου. Προσοχή στο πώς τα χρησιμοποιούμε. Ένα, δύο, τρία, πέντε είναι πίνακες. Όνομα συνάρτησης, ίδιο με όνομα αρχείου, ορίσματα εισόδου. Και διάνυσμα σημειών εδώ επίτηδες εξόδου, για να σας θυμίσω ότι η έξοδος μπορεί να είναι διάνυσμα. Άρα να έχει δύο, τρεις, τέσσερις, πέντε, έξι, δέκα τιμές. Επίσης, στον πρώτο κύκλο είδαμε το λεγόμενο διανυσματικό ή αποδοτικό προγραμματισμό, δηλαδή, το πώς μπορούμε να χρησιμοποιήσουμε εγγενείς συναρτήσεις MATLAB και χαρακτηριστικά του MATLAB και του Octave και αυτών των περιβαλλόντων, ώστε, κάνοντας χρήση λογικών ελέγχων, αμέσως να αποδίδω τιμές σε περιεχόμενα πινάκων, να συγκρίνω και τα λοιπά. Ένα πολύ απλό παράδειγμα, έχω να πει ένα 10x και θέλω όσα στοιχεία έχω τιμή μεγαλύτερα του x να λάβω την τιμή 5. Το είδαμε και σε όλα τα στοιχεία του παραδείγματος του κεγόμενου δάσους. Χρησιμοποιήσαμε πάρα πολλά τέτοια. Θα δείτε και σήμερα, όσοι κάνετε το εργαστήριο και μέσα σε αυτήν την εβδομάδα για τους υπόλοιπους, ότι η μία άσκηση που θα κάνετε, η οποία είναι προσωμίωση εξέτασης για την άσκηση που έπεσε πέρυσι. Είναι μία από τις περισσινές ασκήσεις. Το πρώτο σκέλος της, το πρώτο ερώτημα λύνεται σε μία γραμμή. Είναι μία, αν το κάνεις έτσι. Το δεύτερο όχι. Απλά θέλεις, θέλει προσοχή. Και με αυτόν τον τρόπο ολοκληρώσαμε τον πρώτο κύκλο. Ερώτημα. Επιτρέψτε μου να τα συζητήσουμε στον τέλος. Όλα αυτά μαζί. Έτσι λοιπόν τελειώσαμε τον πρώτο κύκλο. Στο δεύτερο κύκλο μπήκαμε λέγοντας ότι στοχεύουμε στο να δούμε θέματα ανάλυψης και αποτελεσματικότητας αλγορίθμων. Και φθέσε με ο στόχος από την αρχή, το να είμαστε σε θέση να συγκρίνουμε την αποτελεσματικότητα δύο αλγορίθμων και να σχεδιάζουμε έναν δικό μας αλγορίθμο επίλυσης προβλήματος. Εντός δε του δεύτερου κύκλου ασχοληθήκαμε με αναδρομικές συναρτήσεις. Συναρτήσεις που καλούν τον εαυτό τους και χρησιμοποιούν τον εαυτό τους. Και είδαμε εκεί και τη διαφορετικότητα που προκύπτει στην πολυπλοκότητα. Έτσι δεν είναι. Άλλες ταχύτητες και τα λοιπά. Είδαμε θέματα υπολογιστικής πολυπλοκότητας. Πώς διαχωρίζω τις στοιχειώδες πράξεις και υπολογίζω τα υπολογιστικά βήματα. Είδαμε και θέματα γραφικών παραστάσεων. Αυτά είχε ο β κύκλος. Και μετά τον δεύτερο κύκλο πήγαμε στον τρίτο κύκλο όπου δουλέψαμε πάνω στις προσομιώσεις και μαθηματικές εφαρμογές ΜΑΤΛΑΤ. Στο τέλος του τρίτου κύκλου θα είμαστε σε θέση να εφαρμόσουμε πραγματικές προσομίωσεις για την επίλυση ενός πραγματικού προβλήματος και να επιλύσουμε βασικά προβλήματα με μαθηματικές διαδικασίες ΜΑΤΛΑΤ. Και εδώ είδαμε προσομιώσεις με τη χρήση τυχαίων αριθμών. Για πρώτη φορά είδαμε προβλήματα των οποίων την ύπαρξη, τολμώ να πω ότι δεν γνωρίζαμε μέχρι τώρα. Δεν γνωρίζαμε ότι αυτά τα προβλήματα υφίστανται. Δεν γνωρίζαμε ότι επιλύονται με αυτόν τον τρόπο. Θυμίζω το πρόβλημα της εποχικής ζήτησης σωσιβίων το καλοκαίρι και Χριστουγεννιάτικων το χειμώνα. Θυμίζω το πρόβλημα των κινητήρων των αεροσκαφών, με το οποίο ασχολείστε στο τρίτο θέμα και πολλά άλλα. Θυμίζω το πρόβλημα του υπολογισμού της συμπεριφοράς πακτομένης δοκού. Ενώ σε επίπεδο μαθηματικών με MATLAB είπαμε ότι ρίξαμε μια εισαγωγική μαθιά γιατί είναι ένα κολοσιαίο κεφάλαιο. Τα περιβάλλοντα αυτά μας δίνουν πολλές δυνατότητες. Αλλά τι ελπίζω ότι θυμόμαστε ότι με MATLAB μπορώ να κάνω συμβολική και αναλυτική επίλυση εξισώσεων, παραγώγηση και ολοκλήρωση. Μπορώ να επιλύω συστήματα γραμμικών εξισώσεων, μπορώ να επιλύω διαφορικές. Και συμβολικά και αναλυτικά. Επίσης στον τίτρο κύκλο είδαμε, ρίξαμε μια κλευτή ματιά τολμό να πω, στο υπολογιστικό περιβάλλον προσομοίωσης συμπεριφοράς συστημάτων Simulink. Σας τα λέω όλα αυτά για να τονίσω τα βασικά στοιχεία και αν θέλετε έτσι να λειτουργήσουν όλα αυτά ως ο άξονας πάνω στον οποίο καλό είναι να κάνετε μια επανάληψη προετοιμαζόμενες, προετοιμαζόμενες για τις εξετάσεις σας. Αλλά περισσότερο για να έρθουμε στο σημείο να αναλογιστούμε τι από όλα αυτά έχουμε πετύχει. Διότι από την αρχή της χρονιάς είχαμε θέση και είχα θέση αυτούς τους στόχους. Και το αν τους πετύχαμε ή όχι αφορά όλους μας και εμένα και τους συνεργάτες στο μάθημα και σας. Άρα λοιπόν θα πρέπει να αναρωτηθούμε και να δούμε αν πετύχαμε τους στόχους μας. Μπορούμε να αναλύσουμε ένα πρόβλημα και να δημιουργήσουμε έναν αλγόριθμο για τη λύση του. Μπορούμε να αναπτύξουμε προγράμματα τα οποία να είναι δομημένα, να είναι αποδοτικά, να είναι κατανοητά επαναχρησιμοποιήσιμα να τα δώσουμε στον μικρό μας αδερφό, στη γιαγιά μας που κάνει μάτλαβα από χόμπι και να τα χρησιμοποιήσει. Τα οποία να επιλύουν συγκεκριμένα προβλήματα ή οικογένειες προβλημάτων. Εάν βρούμε διαδικτυακά ένα πολύπλοκο πρόβλημα και ένα πολύπλοκο πρόγραμμα που το επιλύει, μπορούμε να το καταλάβουμε. Πολύ απλά να διαβάσουμε τον κώδικα και να το καταλάβουμε. Να καταλάβουμε τα βασικά του, αφήνοντας στην άκρη εντολές και πράγματα που δεν διδαχθήκαμε, να καταλάβουμε όμως τα υπόλοιπα, τα βασικά του, να καταλάβουμε πώς λειτουργεί. Και εάν μας δώσουν δύο αλγορίθμους για να επιλύσουμε ένα πρόβλημα, μπορούμε να έχουμε μια αίσθηση του ποιος θα λειτουργήσει πιο γρήγορα, άρα ποιος θα είναι πιο αποδοτικός. Τα ερωτήματα αυτά δεν μπορούμε να τα απαντήσουμε τώρα. Όμως, εάν δεν τα απαντήσουμε, τότε επενδύσαμε το πιο πολιτικό πράγμα που έχουμε, τα δικά σας νιάτα δηλαδή, σε κάτι για το οποίο δεν έχουμε ιδέα κατά πόσο απέδωσε. Και αυτό είναι λάθος. Είναι τρομακτικό λάθος. Γιατί? Διότι εγώ δεν είμαι στη δική σας ηλικία, εσείς ευτυχώς δεν είστε στη δική μου, πάρα πολύ θα ήθελαν να είναι στη δική σας ηλικία και δεν είναι. Εσείς λοιπόν επενδύσατε ό,τι πιο πολίτιμο υπάρχει, τα νιάτα σας. Ένα τμήμα, ένα κλάσμα, κάτι μικρό. Έπιασε τόπο η επένδυση. Εάν δεν έπιασε, τότε έχω πρόβλημα και έχετε πρόβλημα. Κάτι δεν κάναμε καλά. Ελπίζω, βλέποντας την πορεία μέχρι τώρα, ότι έπιασε τόπο και ευελπισστώ ότι και τα αποτελέσματα στο τέλος αυτό θα δείξουν, αλλά περισσότερο από όλα ο καθένας και καθεμιά από εσάς γνωρίζει το πώς πήγε αυτή η διαδικασία. Εγώ σας ζητώ να είσαστε ειλικρινείς όταν θα συμπληρώσετε το ερωτηματολόγιο αποτίμησης του μαθήματος, στο τέλος δηλαδή του κάθε εργαστηρίου, μια ώρα θα κάνετε προσομοίωση της εξέτασης, άρα δεν θα σας βοηθά κανείς. Ανοίγετε τον υπολογιστή, βλέπετε τα δύο ερωτήματα. Πάντοτε τα τελευταία χρόνια βάζουμε δύο ερωτήματα. Συνήθως το δεύτερο είναι συνέχεια του πρώτου. Λειτουργείτε και ανεξάδητα αν κολλήσετε στο πρώτο. Πάτε απευθείας στο δεύτερο. Θα λύσετε, θα γράψετε τον κώδικά σας, θα κάνετε τα δύο αρχεία ένα με ένα ζιπ και θα τα ανεβάσετε στο ηκλάζ γιατί έτσι θα παραδώσετε στην εξέταση. Θα τα κάνετε όλα αυτά για να δείτε ότι μπορείτε και ξέρετε να τα κάνετε και δεν θα κολλήσετε κατά τη διάρκεια της εξέτασης να ασχοληθείτε με την ουσία και όχι με το πού το βάζω τώρα αυτό το πρόγραμμα και τι κάνω, αυτά να είναι λυμένα. Θα είμαστε εκεί να βοηθήσουμε, αλλά το βασικό είναι ότι αν κανείς κουβαλά τη σύγχυση μέσα του κανένας δεν μπορεί να τον βοηθήσει, έτσι. Το ξέρουμε. Και από εκεί και πέρα στο υπόλοιπο του εργαστηρίου θα συζητήσετε τα βασικά, θα δείτε που υπήρχαν προβλήματα που όχι. Έτσι, καλώς, σας δείτε και μια ενδεικτική λύση στην εκφώνηση. Το ζητούμενο δεν είναι να παραδώσετε εσείς τη λύση. Εννοείται ότι αυτό δεν μας ενδιαφέρει. Να παραδώσετε τη δική σας λύση είναι το ζητούμενο και θα συμπληρώσετε ένα ερωτηματολόγιο το οποίο σας ζητά να αποτιμήσετε. Διδάσκοντα, διαδικασίες, μαθήματος, δήματα, τα πάντα για να δώσετε και τα σχολιά σας. Είναι απολύτως ανώνυμα αυτά. Δεν υπάρχει κανένας τρόπος να βρω και να θέλω που δεν θέλω. Το ποιος θα συμπλήρωσε, γιατί όταν συμπληρώνετε με Google Forums, άρα... ναι. Ίσως να ξέρει η Google, ας πούμε. Εγώ πάντως δεν μπορώ να το ξέρω. Οπότε, λοιπόν, όλη αυτή η διαδικασία θα κινηθεί έτσι ώστε στο τέλος, μαζί με τα αποτελέσματα των εξετάσεων, να σας ανακοινώσω και το πώς αξιολογήσατε το μάθημα. Διότι η αξιολόγηση είναι δημόσια, εννοείται. Και απευθύνεται σε όλους μας. Σε διδάσκοντες για να δουν πού τα πράγματα δεν πήγαν τόσο καλά όσο τα είχαν σχεδιάσει ή έτσι όπως τα είχαν σχεδιάσει. Και να διορθωθεί αυτό σε μαθητές, φοιτητές, συμμετέχοντες, στο να δουν τι δούλεψε, τι δεν δούλεψε, για ποιον λόγο δεν δούλεψε και άρα στο υπόλοιπο της ακαδημαϊκής τους πορείας να λάβουν υπόψη τους αυτά τα βήματα και αυτές τις διαδικασίες. Κατά τα άλλα να σας πω ότι και το μάθημα της πληροφορικής και ο διδάσκον θα είναι πάντα δίπλα σας για οτιδήποτε χρειαστεί.