Βίντεο: Tom Campbell - Manifestation - Higher Self - Avatars in a simulation universe (Greek Subs) 2024
Όσο περισσότερες λειτουργίες απαιτεί ένας αλγόριθμος, τόσο πιο σύνθετη είναι. Η πολυπλοκότητα είναι ένα μέτρο της αποτελεσματικότητας του αλγορίθμου όσον αφορά τη χρήση του χρόνου, επειδή κάθε λειτουργία απαιτεί κάποιο χρόνο. Δεδομένου του ίδιου προβλήματος, οι περίπλοκοι αλγόριθμοι είναι γενικά λιγότερο ευνοϊκοί από τους απλούς αλγορίθμους, επειδή οι περίπλοκοι αλγόριθμοι απαιτούν περισσότερο χρόνο.
Σκεφτείτε εκείνες τις στιγμές που η ταχύτητα εκτέλεσης κάνει τη διαφορά, όπως στον ιατρικό ή τον χρηματοπιστωτικό τομέα, ή όταν πετάτε σε αυτόματο πιλότο σε αεροπλάνο ή διαστημόπλοιο. Η πολυπλοκότητα του αλγόριθμου μέτρησης είναι ένα δύσκολο έργο, αν και είναι απαραίτητο αν θέλετε να χρησιμοποιήσετε τη σωστή λύση. Η πρώτη τεχνική μέτρησης χρησιμοποιεί αφηρημένα μηχανήματα όπως η Μηχανή Τυχαίας Πρόσβασης (RAM).
Η μνήμη RAM σημαίνει επίσης μνήμη τυχαίας προσπέλασης, η οποία είναι η εσωτερική μνήμη που χρησιμοποιεί ο υπολογιστής σας κατά την εκτέλεση προγραμμάτων. Παρόλο που χρησιμοποιεί το ίδιο ακρωνύμιο, μια μηχανή τυχαίας προσπέλασης είναι κάτι εντελώς διαφορετικό.
Οι αφηρημένες μηχανές δεν είναι πραγματικοί υπολογιστές, αλλά θεωρητικοί, υπολογιστές που φαντάζονται στη λειτουργία τους. Χρησιμοποιείτε αφηρημένα μηχανήματα για να εξετάσετε πόσο καλά θα λειτουργούσε ένας αλγόριθμος σε έναν υπολογιστή χωρίς να το δοκιμάσετε για το πραγματικό πράγμα, αλλά δεσμευμένος από τον τύπο υλικού που θα χρησιμοποιούσατε. Ένας υπολογιστής RAM εκτελεί βασικές αριθμητικές λειτουργίες και αλληλεπιδρά με πληροφορίες στη μνήμη, αυτό είναι όλο. Κάθε φορά που ένας υπολογιστής RAM κάνει οτιδήποτε, χρειάζεται ένα χρονικό βήμα (μονάδα χρόνου). Όταν αξιολογείτε έναν αλγόριθμο σε προσομοίωση RAM, μετράτε τα βήματα του χρόνου χρησιμοποιώντας την ακόλουθη διαδικασία:
- Μετρήστε κάθε απλή λειτουργία (αριθμητικές) ως ένα χρονικό βήμα.
- Διαχωρίστε τις πολύπλοκες πράξεις σε απλές αριθμητικές πράξεις και μετρήστε τα βήματα χρόνου όπως ορίζονται στο Βήμα 1.
- Μετρήστε κάθε πρόσβαση δεδομένων από τη μνήμη ως ένα βήμα χρόνου.
Για να εκτελέσετε αυτήν τη λογιστική, γράφετε μια έκδοση ψευδοκώδικα του αλγορίθμου σας και εκτελέστε αυτά τα βήματα χρησιμοποιώντας χαρτί και μολύβι. Στο τέλος, είναι μια απλή προσέγγιση που βασίζεται σε μια βασική ιδέα για το πώς λειτουργούν οι υπολογιστές, μια χρήσιμη προσέγγιση που μπορείτε να χρησιμοποιήσετε για να συγκρίνετε λύσεις ανεξάρτητα από την ισχύ και την ταχύτητα του υλικού σας ή τη γλώσσα προγραμματισμού που χρησιμοποιείτε.
Η χρήση προσομοίωσης διαφέρει από την εκτέλεση του αλγορίθμου σε έναν υπολογιστή, επειδή χρησιμοποιείτε μια τυπική και προκαθορισμένη είσοδο. Οι πραγματικές μετρήσεις υπολογιστών απαιτούν την εκτέλεση του κώδικα και την επαλήθευση του χρόνου που απαιτείται για την εκτέλεση του. Ο κώδικας που τρέχει σε έναν υπολογιστή είναι στην πραγματικότητα ένα σημείο αναφοράς, μια άλλη μορφή μέτρησης της απόδοσης, στην οποία λαμβάνετε υπόψη και το περιβάλλον εφαρμογής (όπως τον τύπο του υλικού που χρησιμοποιείται και την εφαρμογή του λογισμικού).Ένα σημείο αναφοράς είναι χρήσιμο αλλά στερείται γενίκευσης. Εξετάστε, για παράδειγμα, πώς το νεότερο υλικό μπορεί να εκτελέσει γρήγορα έναν αλγόριθμο που πήρε ηλικίες στον προηγούμενο υπολογιστή σας.