Διαφορά μεταξύ τυχαιοποιημένου και αναδρομικού αλγόριθμου

Διαφορά μεταξύ τυχαιοποιημένου και αναδρομικού αλγόριθμου
Διαφορά μεταξύ τυχαιοποιημένου και αναδρομικού αλγόριθμου

Βίντεο: Διαφορά μεταξύ τυχαιοποιημένου και αναδρομικού αλγόριθμου

Βίντεο: Διαφορά μεταξύ τυχαιοποιημένου και αναδρομικού αλγόριθμου
Βίντεο: 05. Πάγια και Αποσβέσεις 2024, Νοέμβριος
Anonim

Τυχαιοποιημένος έναντι Αναδρομικός Αλγόριθμος

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

Τι είναι ένας τυχαιοποιημένος αλγόριθμος;

Οι τυχαιοποιημένοι αλγόριθμοι ενσωματώνουν την αίσθηση της τυχαιότητας κάνοντας τυχαίες επιλογές που καθοδηγούν την εκτέλεση του αλγορίθμου. Αυτό γίνεται συνήθως λαμβάνοντας ένα σύνολο τυχαίων αριθμών που δημιουργούνται από μια γεννήτρια ψευδοτυχαίων αριθμών ως πρόσθετη είσοδο. Εξαιτίας αυτού, η συμπεριφορά του αλγορίθμου μπορεί να αλλάξει ακόμη και για μια σταθερή είσοδο. Το Quicksort είναι ένας ευρέως γνωστός αλγόριθμος που χρησιμοποιεί την έννοια της τυχαίας και έχει χρόνο εκτέλεσης O(n log n) ανεξάρτητα από τις ιδιότητες εισόδου. Επιπλέον, η τυχαιοποιημένη σταδιακή μέθοδος κατασκευής χρησιμοποιείται για κτιριακές κατασκευές όπως το κυρτό κύτος στη γεωμετρία υπολογισμού. Σε αυτή τη μέθοδο, τα σημεία εισόδου μετατίθενται τυχαία και στη συνέχεια εισάγονται ένα προς ένα στη δομή. Η εφαρμογή ενός τυχαιοποιημένου αλγορίθμου είναι σχετικά απλή από την εφαρμογή ενός ντετερμινιστικού αλγορίθμου για το ίδιο πρόβλημα. Η μεγαλύτερη πρόκληση στο σχεδιασμό ενός τυχαιοποιημένου αλγορίθμου έγκειται στην εκτέλεση ασυμπτωτικής ανάλυσης για την πολυπλοκότητα του χρόνου και του χώρου.

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

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

Ποια είναι η διαφορά ανάμεσα σε έναν τυχαιοποιημένο και έναν αναδρομικό αλγόριθμο;

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

Συνιστάται: