16Aug

Τι είναι οι Αλγόριθμοι Υπολογιστών και πώς λειτουργούν;

Αν δεν είστε μαθητής ή προγραμματιστής, η λέξη "αλγόριθμος" μπορεί να είναι ελληνική για εσάς, αλλά είναι ένα από τα δομικά στοιχεία όλων που χρησιμοποιείτε για να διαβάσετε αυτό το άρθρο.Ακολουθεί μια γρήγορη εξήγηση για το τι είναι και πώς λειτουργούν.

Αποποίηση: Δεν είμαι καθηγητής μαθηματικών ή υπολογιστών, οπότε δεν είναι όλοι οι όροι που χρησιμοποιώ είναι τεχνικοί.Αυτό συμβαίνει γιατί προσπαθώ να εξηγήσω τα πάντα σε απλό αγγλικό γιατί οι άνθρωποι δεν είναι αρκετά άνετοι με τα μαθηματικά.Τούτου λεχθέντος, υπάρχουν ορισμένα μαθηματικά, και αυτό είναι αναπόφευκτο.Math geeks, μη διστάσετε να διορθώσετε ή να εξηγήσετε καλύτερα στα σχόλια, αλλά παρακαλώ, κρατήστε το απλό για το μαθηματικά αποθαρρυμένος μεταξύ μας.

Εικόνα από Ian Ruotsala

Τι είναι ένας αλγόριθμος;

Η λέξη «αλγόριθμος» έχει μια ετυμολογία παρόμοια με την 'άλγεβρα', εκτός από το ότι αυτό αναφέρεται στον ίδιο τον αραβικό μαθηματικό, al-Khwarizmi( ένα απλό ενδιαφέρον).Ένας αλγόριθμος, για τους μη προγραμματιστές μεταξύ μας, είναι ένα σύνολο οδηγιών που παίρνουν μια είσοδο, Α, και παρέχουν μια έξοδο, Β, που αλλάζει τα δεδομένα που εμπλέκονται με κάποιο τρόπο.Οι αλγόριθμοι έχουν μεγάλη ποικιλία εφαρμογών.Στα μαθηματικά, μπορούν να βοηθήσουν στον υπολογισμό των λειτουργιών από σημεία σε ένα σύνολο δεδομένων, ανάμεσα σε πολύ πιο προηγμένα πράγματα.Εκτός από τη χρήση τους στον ίδιο τον προγραμματισμό, παίζουν σημαντικούς ρόλους σε θέματα όπως η συμπίεση αρχείων και η κρυπτογράφηση δεδομένων.

Ένα βασικό σύνολο οδηγιών

Ας υποθέσουμε ότι ο φίλος σας σας συναντά σε ένα παντοπωλείο και τον καθοδηγείτε προς εσάς.Λέτε πράγματα όπως "έρχεστε μέσα από τις πόρτες της δεξιάς πλευράς", "περάστε το τμήμα ψαριών στα αριστερά" και "αν δείτε το γαλακτοκομείο, μου περάσατε". Οι αλγόριθμοι λειτουργούν έτσι.Μπορούμε να χρησιμοποιήσουμε ένα διάγραμμα ροής για να επεξηγήσουμε τις οδηγίες βάσει κριτηρίων που γνωρίζουμε μπροστά από το χρόνο ή να μάθουμε κατά τη διάρκεια της διαδικασίας.

( εικόνα με τίτλο "Παγοθραύστης Routine" EDIT: ευγένεια του Trigger και Freewheel)

Από το START, θα οδηγούσατε κάτω από το μονοπάτι και, ανάλογα με το τι συμβαίνει, ακολουθείτε τη ροή προς ένα τελικό αποτέλεσμα.Τα διαγράμματα ροής είναι οπτικά εργαλεία τα οποία μπορούν πιο εύκολα να αντιπροσωπεύουν ένα σύνολο οδηγιών που χρησιμοποιούνται από τους υπολογιστές.Ομοίως, οι αλγόριθμοι βοηθούν να κάνουν το ίδιο με περισσότερα μαθηματικά μοντέλα.Γράμματα

Ας χρησιμοποιήσουμε ένα γράφημα για να δείξουμε τους διάφορους τρόπους με τους οποίους μπορούμε να δώσουμε οδηγίες.

Μπορούμε να εκφράσουμε αυτό το γράφημα ως μια σύνδεση μεταξύ όλων των σημείων του.Προκειμένου να αναπαραχθεί αυτή η εικόνα, μπορούμε να δώσουμε ένα σύνολο οδηγιών σε κάποιον άλλο.Μέθοδος

1

Μπορούμε να αντιπροσωπεύσουμε αυτό ως μια σειρά σημείων και οι πληροφορίες θα ακολουθούσαν την τυπική μορφή του γράφου ={ (x1, y1),( x2, y2),. ..,( xn, yn)}.(3),( 5,5),)}

Είναι πολύ εύκολο να σχεδιάσετε κάθε σημείο, το ένα μετά το άλλο, και να τα συνδέσετε στο προηγούμενο σημείο.Ωστόσο, φανταστείτε ένα γράφημα με χιλιάδες σημεία ή πολλαπλά τμήματα όλα που πηγαίνουν με κάθε τρόπο.Αυτός ο κατάλογος θα έχει πολλά δεδομένα, έτσι;Και στη συνέχεια να πρέπει να συνδέσετε το καθένα, ένα κάθε φορά, μπορεί να είναι ένας πόνος.

Μέθοδος 2

Ένα άλλο πράγμα που μπορούμε να κάνουμε είναι να δώσουμε ένα σημείο εκκίνησης, την κλίση της γραμμής μεταξύ αυτού και του επόμενου σημείου και να δείξουμε πού να περιμένουμε το επόμενο σημείο χρησιμοποιώντας την τυπική μορφή graph ={ (starting point), [m1, x1, h1],. .., [mn, xn, hn]} Εδώ, η μεταβλητή «m» αντιπροσωπεύει την κλίση της γραμμής, το x αντιπροσωπεύει την κατεύθυνση που μετράμε( x ή y)(0, 0), [0, x, 3], [0, y, 3], και [1, x, 2], [3, x, 1], [-3, χ, 1], [3, x, 1]}

το ίδιο γράφημα Μπορείτε να δείτε ότι οι τρεις τελευταίοι όροι σε αυτήν την έκφραση είναι ίδιοι, έτσι ίσως μπορούμε να το κόψουμε απλά λέγοντας "επαναλάβετε τρεις φορές" με κάποιο τρόπο.Αν λέμε ότι κάθε φορά που βλέπετε τη μεταβλητή R(0, 0), [0, x, 3], [0, y, 3], [1, x, 2], και να επαναλάβουμε το τελευταίο πράγμα.[2.5, χ, 2], [-3, χ, 1], [R = 2]}

Τι γίνεται αν τα μεμονωμένα σημεία δεν έχουν σημασία και μόνο το ίδιο το γράφημα;Μπορούμε να εδραιώσουμε αυτά τα τελευταία τρία τμήματα, όπως π.χ.: γράφημα

={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2]], [-3, x, 3]}

Μειώνει τα πράγματα λίγο από εκεί που ήταν πριν.

Μέθοδος 3

Ας προσπαθήσουμε να το κάνουμε αυτό με άλλο τρόπο.

γ = 0, 0≤x≤3
x = 0, 0≤y≤3
γ = x, 3≤x≤5
y = 2,5x-7,5, 5≤x≤7
y = -3x + 29, 7≤x≤8
y = -3x + 29, 8≤x≤9
y = -3x + 29, 9≤x≤10

Εδώ το έχουμε με καθαρούς αλγεβρικούς όρους.Για άλλη μια φορά, εάν τα σημεία δεν έχουν σημασία και μόνο το γράφημα, μπορούμε να ενοποιήσουμε τα τρία τελευταία στοιχεία.

γ = 0, 0≤x≤3
x = 0, 0≤y≤3
γ = x, 3≤x≤5
y = 2.5x-7.5, 5≤x≤7
y = -3x + 29, 7≤x≤10

Τώρα, ποια μέθοδος επιλέγετε εξαρτάται από τις ικανότητές σας.Ίσως να είστε σπουδαίοι με τα μαθηματικά και τις γραφικές παραστάσεις, οπότε επιλέγετε την τελευταία επιλογή.Ίσως να είστε καλοί στην πλοήγηση, οπότε επιλέγετε τη δεύτερη επιλογή.Στον τομέα των υπολογιστών, ωστόσο, κάνετε πολλά διαφορετικά είδη εργασιών και η ικανότητα του υπολογιστή δεν αλλάζει.Επομένως, οι αλγόριθμοι βελτιστοποιούνται για τις εργασίες που ολοκληρώνουν.

Ένα άλλο σημαντικό σημείο που πρέπει να σημειωθεί είναι ότι κάθε μέθοδος βασίζεται σε ένα κλειδί.Κάθε σειρά οδηγιών είναι άχρηστη αν δεν ξέρετε τι να κάνετε μαζί τους.Εάν δεν ξέρετε ότι υποτίθεται ότι σχεδιάζετε κάθε σημείο και συνδέετε τις τελείες, το πρώτο σετ σημείων δεν σημαίνει τίποτα.Αν δεν γνωρίζετε τι σημαίνει κάθε μεταβλητή στη δεύτερη μέθοδο, δεν θα ξέρετε πώς να τις εφαρμόσετε, σαν το κλειδί σε έναν κρυπτογράφο.Αυτό το κλειδί είναι επίσης αναπόσπαστο μέρος της χρήσης αλγορίθμων και συχνά αυτό το κλειδί βρίσκεται στην κοινότητα ή μέσω ενός "προτύπου".

Συμπίεση αρχείων

Όταν κάνετε λήψη ενός αρχείου. zip, μπορείτε να εξαγάγετε τα περιεχόμενα ώστε να μπορείτε να χρησιμοποιήσετε οτιδήποτεείναι μέσα σε αυτό.Σήμερα, τα περισσότερα λειτουργικά συστήματα μπορούν να βουτήξουν σε αρχεία. zip όπως ήταν κανονικοί φάκελοι, κάνοντας τα πάντα στο παρασκήνιο.Στη μηχανή μου των Windows 95 πριν από μια δεκαετία, έπρεπε να εξάγουμε τα πάντα με το χέρι, πριν μπορέσω να δω κάτι παραπάνω από τα ονόματα των αρχείων μέσα.Αυτό συνέβη επειδή το περιεχόμενο που αποθηκεύτηκε στο δίσκο ως αρχείο. zip δεν ήταν σε χρήσιμη μορφή.Σκεφτείτε έναν καναπέ.Όταν θέλετε να το χρησιμοποιήσετε ως κρεβάτι, πρέπει να αφαιρέσετε τα μαξιλάρια και να τα ξεδιπλώσετε, τα οποία χρειάζονται περισσότερο χώρο.Όταν δεν το χρειάζεστε ή θέλετε να το μεταφέρετε, μπορείτε να το διπλώσετε ξανά.

Οι αλγόριθμοι συμπίεσης προσαρμόζονται και βελτιστοποιούνται ειδικά για τους τύπους αρχείων που στοχεύουν.Οι μορφές ήχου, για παράδειγμα, χρησιμοποιούν διαφορετικό τρόπο αποθήκευσης δεδομένων, τα οποία, όταν αποκωδικοποιούνται από τον κωδικοποιητή ήχου, δίνουν ένα ηχητικό αρχείο παρόμοιο με την αρχική κυματομορφή.Για περισσότερες πληροφορίες σχετικά με αυτές τις διαφορές, δείτε το προηγούμενο άρθρο μας, Ποιες είναι οι διαφορές μεταξύ όλων αυτών των μορφών ήχου;Οι απώλειες μορφές ήχου και τα αρχεία. zip έχουν ένα κοινό πράγμα: και οι δύο αποδίδουν τα αρχικά δεδομένα στην ακριβή μορφή τους μετά τη διαδικασία αποσυμπίεσης.Οι απωλεστικοί κωδικοποιητές ήχου χρησιμοποιούν άλλα μέσα για να εξοικονομήσουν χώρο στο δίσκο, όπως συχνότητες αφαίρεσης που δεν μπορούν να ακουστούν από τα ανθρώπινα αυτιά και εξομάλυνση της κυματομορφής σε τμήματα για να απαλλαγούμε από κάποιες λεπτομέρειες.Στο τέλος, αν και δεν μπορούμε να ακούσουμε πραγματικά τη διαφορά μεταξύ ενός MP3 και ενός κομμάτι CD, υπάρχει σίγουρα ένα έλλειμμα πληροφόρησης στο πρώτο.

Κρυπτογράφηση δεδομένων

Οι αλγόριθμοι χρησιμοποιούνται επίσης για την εξασφάλιση δεδομένων ή γραμμών επικοινωνίας.Αντί να αποθηκεύει δεδομένα έτσι ώστε να χρησιμοποιεί λιγότερο χώρο στο δίσκο, αποθηκεύεται με τρόπο που δεν μπορεί να ανιχνευθεί από άλλα προγράμματα.Αν κάποιος κλέψει τον σκληρό σας δίσκο και αρχίσει να το ανιχνεύει, μπορεί να πάρει δεδομένα ακόμα και όταν διαγράφετε αρχεία, επειδή τα ίδια τα δεδομένα παραμένουν εκεί, ακόμα κι αν η θέση προώθησης σε αυτήν έχει φύγει.Όταν τα δεδομένα κρυπτογραφούνται, ό, τι αποθηκεύεται δεν μοιάζει με αυτό που είναι.Φαίνεται συνήθως τυχαία, σαν να είχε δημιουργηθεί κατά τη διάρκεια του χρόνου ο κατακερματισμός.Μπορείτε επίσης να αποθηκεύσετε δεδομένα και να τα εμφανίσετε ως άλλο τύπο αρχείου.Τα αρχεία εικόνων και τα αρχεία μουσικής είναι καλά γι 'αυτό, επειδή μπορούν να είναι αρκετά μεγάλα χωρίς να δημιουργούν υποψίες, για παράδειγμα.Όλα αυτά γίνονται με τη χρήση μαθηματικών αλγορίθμων, οι οποίοι παίρνουν κάποιο είδος εισόδου και μετατρέπουν το σε άλλο, πολύ συγκεκριμένο τύπο εξόδου.Για περισσότερες πληροφορίες σχετικά με τον τρόπο λειτουργίας της κρυπτογράφησης, ελέγξτε το HTG Εξηγεί: Τι είναι η κρυπτογράφηση και πώς λειτουργεί;Οι αλγόριθμοι

είναι μαθηματικά εργαλεία που παρέχουν μια ποικιλία χρήσεων στην επιστήμη των υπολογιστών.Προσπαθούν να παρέχουν μια διαδρομή μεταξύ ενός σημείου εκκίνησης και ενός τελικού σημείου με συνεπή τρόπο και να παρέχουν τις οδηγίες για να την ακολουθήσουν.Μάθετε περισσότερα από αυτά που υπογραμμίσαμε;Μοιραστείτε τις εξηγήσεις σας στα σχόλια!