Εργασία μαθήματος: Βελτιστοποίηση αλγορίθμων αναζήτησης. Επίπεδο διαχείρισης εικονικής μνήμης ανεξάρτητο από το υλικό

Κατά τη διάρκεια των συνεντεύξεων συχνά τους ρωτούν ποιο είδος είναι το πιο γρήγορο. Ερώτηση παγίδα. Εξηγούμε γιατί και αναζητούμε την καλύτερη επιλογή.

Σε απάντηση, θα πρέπει να ρωτήσετε: "Για ποια περίπτωση επιλέγεται η βέλτιστη χρονικά ταξινόμηση;" Και μόνο όταν ανακοινωθούν οι προϋποθέσεις, μπορείτε να περάσετε με ασφάλεια τις διαθέσιμες επιλογές.

Υπάρχει:

  • αλγόριθμους ταξινόμησης O(n 2)όπως τα είδη εισαγωγής, φυσαλίδας και επιλογής, τα οποία χρησιμοποιούνται σε ειδικές περιπτώσεις.
  • γρήγορη ταξινόμηση (γενικής χρήσης): μέσος όρος O(n log n)ανταλλαγές, αλλά η χειρότερη στιγμή είναι O(n 2), εάν ο πίνακας είναι ήδη ταξινομημένος ή τα στοιχεία είναι ίσα.
  • αλγόριθμους Ο(nκούτσουροιδ), όπως συγχώνευση και ταξινόμηση σωρού (ταξινόμηση πυραμίδας), που είναι επίσης καλοί αλγόριθμοι ταξινόμησης γενικής χρήσης.
  • Επί)ή αλγόριθμους γραμμικής ταξινόμησης (επιλογή, επιλογή με ανταλλαγή, επιλογή με μέτρηση) για λίστες ακεραίων, οι οποίοι μπορεί να είναι κατάλληλοι ανάλογα με τη φύση των ακεραίων στις λίστες σας.

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

Η βελτιστοποίηση του αλγορίθμου εξαρτάται στενά από τον τύπο των λιστών/πίνακες που πρόκειται να ταξινομήσετε, ακόμη και από το μοντέλο του υπολογιστή. Όσο περισσότερες πληροφορίες έχετε, τόσο πιο ακριβής θα είναι η επιλογή σας. Κάτω από πολύ αδύναμες υποθέσεις σχετικά με τους παράγοντες, η βέλτιστη πολυπλοκότητα στη χειρότερη περίπτωση μπορεί να είναι Επί!).

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

Δοκιμές

Λοιπόν, ποιο είδος είναι το πιο γρήγορο;

Οραματισμός

Μια καλή απεικόνιση των ταξινομήσεων παρουσιάζεται σε αυτό το βίντεο:

Φαίνεται να απαντά στο ερώτημα ποιο είδος είναι το πιο γρήγορο, αλλά έχετε κατά νου ότι η ταχύτητα επηρεάζεται από πολλούς παράγοντες και αυτή είναι μόνο μία από τις επιλογές που παρουσιάζονται.

Το κάτω όριο της πολυπλοκότητας μιας κατηγορίας αλγορίθμων δεν καθορίζεται με μοναδικό τρόπο. Για παράδειγμα, φά(n) = 0 είναι πάντα ένα κάτω όριο, όπως και κάθε αρνητική συνάρτηση. Όσο μεγαλύτερο είναι το κάτω όριο που βρέθηκε, τόσο πιο μη τετριμμένο και πολύτιμο είναι. Ένα σήμα ότι δεν θα μπορέσουμε να κατασκευάσουμε ένα κατώτερο όριο μεγαλύτερο από


ΜΕ Κεφάλαιο 4. Κάτω όριο πολυπλοκότητας. Βέλτιστοι αλγόριθμοι

το κάτω όριο που έχουμε ήδη φά(n), μπορεί να εξυπηρετήσει, για παράδειγμα, την παρουσία ΕΝΑμι .s4,για το οποίο T A (n) = f(n).Αυτή την κατάσταση συναντάμε στην προηγούμενη παράγραφο στα παραδείγματα 14.1 και 14.3. Ο γνωστός αλγόριθμος για την εύρεση του μικρότερου στοιχείου και ο αλγόριθμος για τη δυαδική αναζήτηση της θέσης ενός στοιχείου σε έναν διατεταγμένο πίνακα έχουν ο καθένας μια πολυπλοκότητα που συμπίπτει με το κάτω όριο που βρέθηκε. Αυτοί οι αλγόριθμοι είναι βέλτιστοι με την έννοια του παρακάτω ορισμού.

Ορισμός 15.1.Αφήνω .s4 -μια κατηγορία αλγορίθμων για την επίλυση ενός συγκεκριμένου προβλήματος. Ας υπάρξει συμφωνία για το πώς μετρώνται το κόστος των αλγορίθμων και τι μετράει ως μέγεθος εισόδου, και ας n- προσδιορισμός του μεγέθους εισόδου. Αλγόριθμος ΕΝΑμι .s4που ονομάζεται άριστος V j4,Αν T A(n)είναι ένα κατώτερο όριο για την πολυπλοκότητα των αλγορίθμων από j4.

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

Πρόταση 15.1.Συνάρτηση f(n) = Г 2 n 1 - 2 είναι ένα κατώτερο όριο στην πολυπλοκότητα των αλγορίθμων για την ταυτόχρονη επιλογή των μεγαλύτερων και των μικρότερων στοιχείων ενός πίνακα μήκους n χρησιμοποιώντας συγκρίσεις.

Απόδειξη.Κάθε στάδιο εκτέλεσης ενός αυθαίρετου αλγορίθμου V,βασίζεται σε συγκρίσεις και έχει σχεδιαστεί για να βρίσκει τα μεγαλύτερα και μικρότερα στοιχεία ενός πίνακα, μπορεί να χαρακτηριστεί από το τετραπλό ( Α Β Γ Δ)υποσύνολα του συνόλου των αρχικών στοιχείων (x g, x 2, ■ ■ ■, x n),Οπου

ΕΝΑαποτελείται από όλα εκείνα τα στοιχεία που δεν συγκρίθηκαν καθόλου.

σιαποτελείται από όλα εκείνα τα στοιχεία που συμμετείχαν σε ορισμένες συγκρίσεις και αποδεικνύονταν πάντα μεγάλα.

ντοαποτελείται από όλα εκείνα τα στοιχεία που συμμετείχαν σε ορισμένες συγκρίσεις και αποδεικνύονταν πάντα μικρότερα.

ρεαποτελείται από όλα εκείνα τα στοιχεία που συμμετείχαν σε κάποιες συγκρίσεις, άλλες φορές αποδεικνύονται μεγαλύτερες και άλλες λιγότερο.

Αφήνω Α Β Γ Δ- αριθμός στοιχείων των συνόλων Α Β Γ Δαναλόγως. Η αρχική κατάσταση χαρακτηρίζεται από τις ισότητες a = n, b = = c = d = 0.Μετά την ολοκλήρωση του αλγορίθμου πρέπει να εκτελεστούν τα εξής:


§ 15 . Βέλτιστοι αλγόριθμοι

stva ΕΝΑ = 0, b = c = 1, d = n-2.Μετά την πρώτη σύγκριση, σε όλη την εκτέλεση του αλγορίθμου, θα εμφανίζονται συνεχώς ανισότητες b^1, c^1.



Όλες οι συγκρίσεις που έγιναν κατά την εκτέλεση του αλγορίθμου V,μπορούν να χωριστούν σε τύπους, που ορίζονται AA,AB,AC,AD, BB,BC,BD,CC, CD,DD,π.χ.: η σύγκριση ανήκει στον τύπο ΑΒ , εάν ληφθεί από ένα από τα στοιχεία που συγκρίνονται ΕΝΑ , άλλο-από ΣΕ , κτλ. Με βάση αυτό, μπορούμε να γράψουμε όλες τις πιθανές αλλαγές του τετραπλού (α, σι, Με, ρε) υπό την επίδραση συγκρίσεων διαφορετικών τύπων.

Αξιολόγηση πολυπλοκότητας αλγορίθμου

6. Βελτιστοποίηση αλγορίθμων

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

Πρώτον, είναι δύσκολο να διατυπωθεί ένα κριτήριο βελτιστοποίησης που να έχει αναμφισβήτητη πρακτική σημασία και να ορίζεται ξεκάθαρα με μαθηματικούς όρους. Για παράδειγμα, μπορεί κανείς να θέσει το πρόβλημα της ελαχιστοποίησης του αριθμού των εντολών μιας μηχανής Turing - ένα κριτήριο καλά καθορισμένο μαθηματικά. αλλά η πρακτική σημασία του δεν είναι καθόλου ξεκάθαρη, αφού είναι απίθανο ένα πραγματικό πρόγραμμα σε πραγματικό υπολογιστή να προσομοιώνει μια μηχανή Turing. Μπορείτε να ορίσετε την εργασία ελαχιστοποίησης του χρόνου εκτέλεσης ενός προγράμματος σε μια πραγματική μηχανή - ένα σαφές κριτήριο από πρακτική άποψη. Ωστόσο, θα είναι αδύνατο να λυθεί το πρόβλημα βελτιστοποίησης χρησιμοποιώντας μαθηματικές μεθόδους, καθώς ο χρόνος εκτέλεσης εξαρτάται (μερικές φορές σημαντικά) από την αρχιτεκτονική του υπολογιστή και η αρχιτεκτονική των σύγχρονων υπολογιστών δεν μπορεί να περιγραφεί με μικρό αριθμό παραμέτρων. Είναι επίσης σημαντικό ένα πρόγραμμα που εκτελείται ταχύτερα από άλλα σε έναν υπολογιστή να μην είναι το ταχύτερο σε έναν άλλο. Υπάρχουν ακόμη και ειδικά προγράμματα με το γενικό όνομα αναφοράς, που έχουν σχεδιαστεί για την αξιολόγηση αρχιτεκτονικών.

Δεύτερον, δεν είναι απολύτως σαφές ποια είναι η πολυπλοκότητα της εργασίας. Θα μπορούσε να οριστεί ως η ελάχιστη πολυπλοκότητα των αλγορίθμων που λύνουν αυτό το πρόβλημα. Υπάρχει όμως αλγόριθμος ελάχιστης πολυπλοκότητας (πώς να βεβαιωθούμε ότι ο αλγόριθμος που βρέθηκε είναι πραγματικά ελάχιστος ή, αντίθετα, όχι ελάχιστος); Υπάρχει κάτι για να προσπαθήσετε; Και πόσο δύσκολο είναι να βρεις αυτό το ελάχιστο; Οι ερωτήσεις αυτές σχετίζονται με τη χαμηλότερη εκτίμηση της πολυπλοκότητας των αλγορίθμων (όχι την ανώτερη, όπως στα προηγούμενα βήματα) (5, σελ. 89-92).

Είναι δυνατόν να αποδειχθεί για το υπό εξέταση πρόβλημα ότι κανένας αλγόριθμος που να το λύνει δεν μπορεί να είναι απλούστερος από αυτό το κάτω όριο; Ας πάρουμε το γνωστό πρόβλημα του πολλαπλασιασμού τετραγωνικών πινάκων. Δίνεται αλγόριθμος πολυπλοκότητας T(n) = 3n3 + n2. (8, σελ. 199-203) Αυτός δεν είναι ίσως ο καλύτερος αλγόριθμος, αλλά ποιο είναι το κάτω όριο; Ο προκύπτων πίνακας έχει n2 στοιχεία. Για τον υπολογισμό οποιουδήποτε στοιχείου, απαιτείται τουλάχιστον μία λειτουργία μιας μηχανής ενός επεξεργαστή - δύο στοιχεία δεν μπορούν να βρεθούν σε μία λειτουργία. Για τον ελάχιστο αλγόριθμο λαμβάνουμε τις ανισώσεις n2<= T, min(n) <= 3n3+n2 . Вряд ли n2 - хорошая нижняя оценка, но уже известно, что n3 нижней оценкой не является, так как найдены более быстрые алгоритмы (в частности, алгоритм Штрассена). (8, стр. 211)

Υπάρχουν πολλές ανεξάρτητες πτυχές της βελτιστοποίησης προγραμμάτων, από τις οποίες θα επισημάνουμε δύο:

Βελτιστοποίηση που σχετίζεται με την επιλογή της μεθόδου για την κατασκευή ενός αλγορίθμου.

Βελτιστοποίηση που σχετίζεται με την επιλογή μεθόδων για την παρουσίαση δεδομένων στο πρόγραμμα.

Ο πρώτος τύπος βελτιστοποίησης είναι γενικής φύσης και οδηγεί σε μείωση της σειράς της συνάρτησης πολυπλοκότητας - για παράδειγμα, αντικαθιστώντας έναν αλγόριθμο με T(V) = O(FS) με έναν αλγόριθμο με T(V) = O(V4 ). Εξαρτάται από το πώς η εργασία χωρίζεται σε δευτερεύουσες εργασίες, πόσο αυτή η διαίρεση είναι εγγενής στην ίδια την εργασία ή είναι απλώς μια τεχνητή τεχνική. Μια γενική καθοδηγητική προσέγγιση εδώ μπορεί να είναι να προχωρήσουμε με την αντίστροφη σειρά της αλγοριθμικής ανάλυσης. Κατά την ανάλυση χρησιμοποιώντας έναν αναδρομικό αλγόριθμο, κατασκευάζεται μια εξίσωση, η οποία στη συνέχεια λύνεται. Κατά τη βελτιστοποίηση, υλοποιείται η ακόλουθη αλυσίδα:

Τύπος που καθορίζει την επιθυμητή δυσκολία ->

Η αντίστοιχη εξίσωση (μία από τις πιθανές) ->

Μια μέθοδος διαχωρισμού μιας εργασίας σε δευτερεύουσες εργασίες.

Ο δεύτερος τύπος βελτιστοποίησης, χωρίς αλλαγή της δομής του προγράμματος στο σύνολό του, οδηγεί στην εξοικονόμηση μνήμης ή/και στην απλοποίηση της εργασίας με δομές δεδομένων, αυξάνοντας την αποτελεσματικότητα των βοηθητικών διαδικασιών που παρέχουν μια «διεπαφή» μεταξύ του επιπέδου εφαρμογής (στο οποίο σκεφτείτε ως προς τα αντικείμενα υψηλού επιπέδου - γραφήματα, πίνακες, κείμενα κ.λπ.) και το επίπεδο μηχανής, το οποίο υποστηρίζει τους απλούστερους τύπους δεδομένων (αριθμούς, σύμβολα, δείκτες). Το αποτέλεσμα αυτού είναι συνήθως μια μείωση των συντελεστών για ορισμένους όρους στη συνάρτηση πολυπλοκότητας (με επιτυχή βελτιστοποίηση - για τον πιο σημαντικό όρο), αλλά η σειρά της συνάρτησης πολυπλοκότητας παραμένει η ίδια. (7, σελ. 204)

Και οι δύο τύποι βελτιστοποίησης αλληλοσυμπληρώνονται και μπορούν να χρησιμοποιηθούν μαζί.

Αλγόριθμοι για την επίλυση προβλημάτων επιλογής. Αλγόριθμος ανόπτησης

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

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

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

Υπολογιστική μοντελοποίηση ασύρματων δικτύων AD-HOC για τον υπολογισμό του χρόνου επικοινωνίας των συνδρομητών κινητής τηλεφωνίας

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

Μοντελοποίηση και βελτιστοποίηση αυτοκινητοδρόμων

Ας εισάγουμε τον ακόλουθο συμβολισμό: Xi - υπολειπόμενα κεφάλαια στην αρχή του i-ου σταδίου. Uj - το ποσό των κεφαλαίων που αποφασίστηκε να διατεθεί στην i - επιχείρηση. Το Pi είναι το κέρδος που λαμβάνει αυτή η επιχείρηση...

Μοντελοποίηση συστήματος αυτόματου ελέγχου με χρήση λογισμικού και μεθόδων προσομοίωσης

Η βελτιστοποίηση υλοποιείται με τη μέθοδο του διαδοχικού απλού σχεδιασμού (μέθοδος Simplex). Η λειτουργία βελτιστοποίησης περιλαμβάνει τις ακόλουθες δύο υπολειτουργίες: ρύθμιση αρχικών συνθηκών και όρια βελτιστοποίησης. βάζοντας τη βελτιστοποίηση σε δράση...

Βελτιστοποιήστε το σχέδιο παραγωγής και προμήθειας χρησιμοποιώντας το σύστημα προγραμματισμού IBM ILOG Plant PowerOps

Το IBM ILOG Plant PowerOps αποτελείται από τέσσερις ενότητες: σχεδιασμός παραγωγής, μέγεθος παρτίδας, λεπτομερής προγραμματισμός και σύλληψη ζήτησης. Κάθε ενότητα επιλύει συγκεκριμένα προβλήματα στη διαδικασία βελτιστοποίησης...

Δυνατότητες εργασίας στο πακέτο λογισμικού MicroCAP-7

Η παραμετρική βελτιστοποίηση εκτελείται στο πρόγραμμα MC7 χρησιμοποιώντας τη μέθοδο Powell σε οποιονδήποτε από τους τύπους ανάλυσης: μεταβατική ανάλυση, ανάλυση AC μικρού σήματος και υπολογισμός χαρακτηριστικών DC...

Δυνατότητες δημιουργίας περιεχομένου κειμένου για τον ιστότοπο UNN. N.I. Λομπατσέφσκι

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

Σχεδιασμός και μοντελοποίηση ηλεκτρικών κυκλωμάτων στο σύστημα γραφικών AutoCAD και στο πακέτο λογισμικού OrCAD 9.2

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

Σχεδιαστική ανάπτυξη διθέσιου γραφείου υπολογιστή

Εκτός από τη δυνατότητα τρισδιάστατου σχεδιασμού προϊόντων, δημιουργίας σχεδίων και προδιαγραφών για εξαρτήματα, καθώς και υπολογισμού των υλικών που απαιτούνται για την κατασκευή ενός προϊόντος, το «bCAD Furniture Maker» σας επιτρέπει να παράγετε οικονομικά...

Ανάπτυξη μοντέλου κτηματομεσιτικού γραφείου σύμφωνα με το πρότυπο IDEF0

Αυτό το μοντέλο ανήκει στον τύπο «να είναι», δηλαδή το μοντέλο είναι χτισμένο στην αρχή «όπως θα έπρεπε να είναι». Στη διαδικασία δημιουργίας του μοντέλου διόρθωσα κάποιες ελλείψεις...

Ανάπτυξη εφαρμογής επιλογής αγοράς ζεύγους μηχανημάτων

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

Ανάπτυξη του προγράμματος "Προσδιορισμός της βέλτιστης περιόδου για την αντικατάσταση εξοπλισμού"

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

Ανάλυση συστήματος του πληροφοριακού συστήματος διαχείρισης προσωπικού της επιχείρησης

Δημιουργία εικονικής τρισδιάστατης περιήγησης από μια σειρά εικονικών πανοραμικών φωτογραφιών

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

ΟΜΟΣΠΟΝΔΙΑΚΟΣ ΟΡΓΑΝΙΣΜΟΣ ΓΙΑ ΤΗΝ ΕΚΠΑΙΔΕΥΣΗ

Κρατικό εκπαιδευτικό ίδρυμα τριτοβάθμιας επαγγελματικής εκπαίδευσης "Κρατικό Τεχνικό Πανεπιστήμιο του Βορόνεζ"

Σχολή Ραδιομηχανικών

Τμήμα Ραδιομηχανικών

Ειδικότητα 210302 «Ραδιομηχανική»

Βελτιστοποίηση αλγορίθμων αναζήτησης

Συμπλήρωσε ο μαθητής γρ. RT-041 Δ.Σ. Τσέτκιν

Ελεγμένο από τον αναπληρωτή καθηγητή του τμήματος Β.Π. Λιτβινένκο

Εισαγωγή. 4

1. Ανάπτυξη βέλτιστου διχοτομικού αλγορίθμου αναζήτησης με ισοπιθανή κατανομή πιθανότητας και αριθμό γεγονότων M=16. 5

2. Ανάπτυξη βέλτιστου αλγορίθμου αναζήτησης για τον νόμο εκθετικής κατανομής πιθανοτήτων για M=16. 7

3. Ανάπτυξη βέλτιστου αλγορίθμου αναζήτησης νόμου εκθετικής κατανομής με αριθμό μετρήσεων από N=15 έως N=log2M.. 9

4. Ανάπτυξη βέλτιστου αλγορίθμου αναζήτησης για την 9η επιλογή κατανομής με αριθμό μετρήσεων από N=1 έως 15. 12

Συμπέρασμα. 19

Παραπομπές.. 20

Εισαγωγή

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

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

Το σύνολο Χ με τον αντίστοιχο νόμο κατανομής πιθανότητας χωρίζεται σε δύο υποσύνολα και (ο εκθέτης είναι ο αριθμός διαμερίσματος). Ένας δυαδικός μετρητής κάνει μια δυαδική μέτρηση, προσδιορίζοντας σε ποιο υποσύνολο βρίσκεται το εκ νέου συμβάν (το ίχνος του). Στη συνέχεια, το υποσύνολο στο οποίο ανιχνεύθηκε το εκ νέου συμβάν (στο Σχ. 2.1. αυτό) χωρίζεται και πάλι σε δύο υποσύνολα και αποκαλύπτεται ένα ίχνος του εκ νέου συμβάντος σε ένα από αυτά. Η διαδικασία τελειώνει όταν υπάρχει ένα συμβάν στο επιλεγμένο υποσύνολο. Η αναζήτηση μπορεί να είναι διαδοχική ή διχοτομική. Στον πρώτο αλγόριθμο (), πραγματοποιείται μια διαδοχική αναζήτηση καταστάσεων από την πρώτη έως την τελευταία μέχρι να συναντηθεί ένα εκ νέου συμβάν.

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

Υπάρχουν διάφοροι τρόποι για την ελαχιστοποίηση των διαδικασιών δυαδικής αναζήτησης. Παραδείγματα περιλαμβάνουν τις μεθόδους Zimmerman-Huffman και Shannon-Fono. Ο αλγόριθμος μπορεί να βελτιστοποιηθεί σύμφωνα με διάφορες παραμέτρους, λαμβάνοντας υπόψη το κόστος μέτρησης και χωρίς. Σε αυτήν την εργαστηριακή εργασία, διερευνήσαμε τη βελτιστοποίηση ενός διχοτομικού αλγορίθμου αναζήτησης με βάση τη μικρότερη μέση τιμή μυστικότητας.

1. Ανάπτυξη βέλτιστου διχοτομικού αλγορίθμου αναζήτησης με ισοπιθανή κατανομή πιθανοτήτων και αριθμό γεγονότων M=16

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

Σε αυτήν την περίπτωση, ο βέλτιστος αλγόριθμος αναζήτησης είναι ο αλγόριθμος που αναπτύχθηκε σύμφωνα με την αρχή Shannon-Fano. Αυτή η μέθοδος περιλαμβάνει τη διαίρεση του αρχικού συνόλου στοιχείων με μια δεδομένη κατανομή σε δύο υποσύνολα με αριθμούς 0 και 1, έτσι ώστε οι πιθανότητες να μπουν σε αυτά να είναι όσο το δυνατόν πιο κοντινές (ιδανικά στο μισό). Στη συνέχεια, καθένα από τα υποσύνολα που προκύπτουν χωρίζεται χωριστά σε δύο υποσύνολα με την ίδια συνθήκη και αριθμούς από 00,01,10,11. Το διαμέρισμα τελειώνει όταν όλα τα στοιχεία του υποσυνόλου έχουν μόνο ένα στοιχείο.

Ως αποτέλεσμα, αναπτύχθηκε ένας βέλτιστος αλγόριθμος αναζήτησης για τον νόμο κατανομής ισοπιθανών πιθανοτήτων.

Ας υπολογίσουμε το δυνητικό απόρρητο για έναν εξίσου πιθανό νόμο κατανομής πιθανοτήτων:

(1)

Το αποτέλεσμα για αυτή την περίπτωση:

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

Ανάπτυξη βέλτιστου αλγορίθμου αναζήτησης για τον νόμο εκθετικής κατανομής πιθανοτήτων για M=16

Επιλέξτε μια εκθετική κατανομή πιθανοτήτων των γεγονότων της μορφής , , - συντελεστής κανονικοποίησης, με τον ίδιο όπως στο σημείο 1. Προσδιορίστε τον βέλτιστο αλγόριθμο αναζήτησης, ρυθμίστε τον σε ένα πεδίο κλήσης, πραγματοποιήστε μοντελοποίηση, προσδιορίστε πιθανή μυστικότητα.

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

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

Απόδειξη χρήσης αλγορίθμου διαδοχικής αναζήτησης. Για το σκοπό αυτό χρησιμοποιείται η μέθοδος Zimmerman-Huffman. Αυτή η μέθοδος βελτιστοποίησης αποτελείται από δύο στάδια: «Λειτουργίες προμήθειας» και «Ανάγνωση». Αυτό συζητείται με περισσότερες λεπτομέρειες στο βιβλίο.

Εφόσον ο εκθέτης είναι μεγαλύτερος από 1, αυτό ικανοποιεί την ανισότητα:

Όπου λ είναι ένας εκθέτης της κατανομής πιθανότητας ίσος με 1, τότε για αυτήν την περίπτωση ο αλγόριθμος διαδοχικής αναζήτησης είναι βέλτιστος.

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

Ανάπτυξη βέλτιστου αλγορίθμου για αναζήτηση νόμου εκθετικής κατανομής με αριθμό μετρήσεων από N=15 έως N=log2M

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

Όταν N=15 από την προηγούμενη παράγραφο, ο αλγόριθμος διαδοχικής αναζήτησης είναι βέλτιστος και για αυτόν η μέση τιμή των δυαδικών μετρήσεων προσδιορίζεται με τον ίδιο τρόπο όπως και για την πιθανή μυστικότητα. Η τιμή Rcp παρουσιάζεται στον Πίνακα 1.

Πίνακας 1 – Εξάρτηση του μέσου αριθμού μετρήσεων

σχετικά με τον αριθμό των μετρήσεων με βέλτιστους αλγόριθμους αναζήτησης

Ας υπολογίσουμε την πιθανή μυστικότητα για κάθε περίπτωση χρησιμοποιώντας τον τύπο 1:

Όταν ο αριθμός των μετρήσεων είναι ίσος με 3, είναι αδύνατο να αναπτυχθεί ένας αλγόριθμος αναζήτησης, καθώς αυτός δεν ικανοποιεί τη συνθήκη σκοπιμότητας αναζήτησης, δηλαδή:

Ως αποτέλεσμα, ένα γράφημα της εξάρτησης του μέσου αριθμού μετρήσεων από τον αριθμό των μετρήσεων παρουσιάζεται στο Σχήμα 8.

Σχήμα 8 – Εξάρτηση του μέσου αριθμού μετρήσεων από τον αριθμό των μετρήσεων για τον νόμο εκθετικής κατανομής πιθανοτήτων

4. Ανάπτυξη βέλτιστου αλγορίθμου αναζήτησης για την 9η επιλογή κατανομής με αριθμό μετρήσεων από N=1 έως 15

Για την εκδοχή της κατανομής πιθανοτήτων για τον αριθμό των γεγονότων, αναπτύξτε έναν βέλτιστο αλγόριθμο αναζήτησης, δημιουργήστε ένα δέντρο αναζήτησης, εξηγήστε το σχήμα του, τι το καθορίζει;

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

Πίνακας 2 – Εξάρτηση του μέσου αριθμού μετρήσεων,

υπολειπόμενη μυστικότητα, πιθανότητα αβεβαιότητας ανάλογα με τον αριθμό των μετρήσεων

n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 4 3.775 4.325 4.725 5.1625 5.375 5.5 5.65 5.7 5.7625 5.8 5.8
Pneop 0.55 0.7625 0.875 0 0 0 0 0 0 0 0 0 0 0 0
Σωστ 0.801 0.785 0.791 0.802 0.814 0.826 0.837 0.848 0.858 0.868 0.877 0.885 0.893 0.901

Σε αυτόν τον πίνακα, το Sost υπολογίστηκε σε επίπεδο εμπιστοσύνης 0,9. Το "PrintScreen" του προγράμματος "Poisk" για διάφορες τιμές του αριθμού των διαστάσεων παρουσιάζεται στα Σχήματα 8-11.

Όταν ο αριθμός των μετρήσεων είναι μικρότερος από 4, υπάρχει πιθανότητα ημιτελούς λύσης λόγω του ότι είναι αδύνατο να ελεγχθούν όλα τα συμβάντα. Ως αποτέλεσμα, δεν πρέπει να ελέγχονται τα πάντα, η καλύτερη επιλογή θα ήταν να ελέγξετε τα πιο πιθανά συμβάντα. Το "PrintScreen" του προγράμματος "Αναζήτηση" όταν ο αριθμός των μετρήσεων είναι μικρότερος από 3 παρουσιάζεται στο Σχήμα 12.

Ας κατασκευάσουμε ένα γράφημα της εξάρτησης της πιθανής μυστικότητας από τον αριθμό των μετρήσεων, το οποίο παρουσιάζεται στο Σχήμα 13.

Σχήμα 13 – Εξάρτηση του μέσου αριθμού μετρήσεων από τον αριθμό των μετρήσεων για τον 9ο νόμο κατανομής πιθανοτήτων

Σχήμα 14 – Εξάρτηση της πιθανότητας μιας ημιτελούς λύσης από τον αριθμό των μετρήσεων για τον 9ο νόμο κατανομής πιθανοτήτων

(3)

(4)

Θα αλλάξουμε την πιθανότητα εμπιστοσύνης εντός του εύρους 0,7÷0,9. Ως αποτέλεσμα, λήφθηκε ένα γράφημα της εξάρτησης της υπολειπόμενης μυστικότητας από τον αριθμό των μετρήσεων, το οποίο παρουσιάζεται στο Σχήμα 15.

Nost(Pdov) Pdov=0,9

Σχήμα 15 – Εξάρτηση της υπολειπόμενης απόκρυψης σε τιμές πιθανότητας εμπιστοσύνης 0,7÷0,9

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

Εικόνα 16 – Εξάρτηση της υπολειπόμενης απόκρυψης για τιμές του αριθμού των διαστάσεων 4,8,16

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

συμπέρασμα

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

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

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

Η σωστή λειτουργία του προγράμματος Poisk επιβεβαιώθηκε χρησιμοποιώντας υπολογισμούς που πραγματοποιήθηκαν στο πακέτο λογισμικού Matcard 2001.

Βιβλιογραφία

1. Βασικές αρχές της θεωρίας του stealth: ένα εγχειρίδιο για φοιτητές πλήρους φοίτησης της ειδικότητας 200700 "Radio Engineering" / Κρατικό Τεχνικό Πανεπιστήμιο Voronezh; Συμ.Ζ.Μ. Kanevsky, V.P. Litvinenko, G.V. Makarov, D.A. Μαξίμοφ; επιμέλεια Ζ.Μ. Κανέφσκι. Voronezh, 2006. 202 σελ.

2. Οδηγίες για εργαστηριακή εργασία «Έρευνα αλγορίθμων αναζήτησης» στον κλάδο «Βασικές αρχές της θεωρίας της μυστικότητας» για φοιτητές της ειδικότητας 200700 «Ραδιοφωνική Μηχανική» πλήρους φοίτησης / Κρατικό Τεχνικό Πανεπιστήμιο Voronezh. συμπ.Ζ.Μ. Kanevsky, V.P. Λιτβινένκο. Voronezh, 2007.54σ.

3. STP VSTU 005-2007. Σχεδιασμός μαθημάτων. Οργάνωση, παραγγελία, εκτέλεση εκκαθάρισης και επεξηγηματικό σημείωμα και γραφικό μέρος.

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

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

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

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

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

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

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

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

Ας δούμε έναν αριθμό αλγορίθμων αντικατάστασης σελίδων.

Αλγόριθμος FIFO. Πιέζοντας την πρώτη σελίδα για να φτάσει

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

Ανωμαλία Belady

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

Ένα σύστημα με τρία καρέ (9 σφάλματα) αποδεικνύεται πιο αποδοτικό από ό,τι με τέσσερα καρέ (10 σφάλματα) για τη γραμμή πρόσβασης στη μνήμη 012301401234 κατά την επιλογή της στρατηγικής FIFO.


Ρύζι. 10.1.

Βέλτιστος αλγόριθμος (OPT)

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

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

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

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

Εξάγει τη μεγαλύτερη αχρησιμοποίητη σελίδα. Αλγόριθμος LRU

Μια προσέγγιση στον αλγόριθμο OPT είναι ένας αλγόριθμος που βασίζεται στον ευρετικό κανόνα ότι το πρόσφατο παρελθόν είναι ένας καλός οδηγός για την πρόβλεψη του εγγύς μέλλοντος.

Η βασική διαφορά μεταξύ του FIFO και του βέλτιστου αλγόριθμου είναι ότι ο ένας κοιτάζει προς τα πίσω και ο άλλος κοιτάζει προς τα εμπρός. Εάν χρησιμοποιείτε το παρελθόν για να προσεγγίσετε το μέλλον, είναι λογικό να αντικαταστήσετε τη σελίδα που δεν έχει χρησιμοποιηθεί για το μεγαλύτερο χρονικό διάστημα. Αυτή η προσέγγιση ονομάζεται χρησιμοποιήθηκε λιγότερο πρόσφατααλγόριθμος (LRU). Η λειτουργία του αλγορίθμου φαίνεται στο Σχ. ρύζι. 10.2. Συγκρίνοντας το Σχ. 10.1 b και 10.2, μπορείτε να δείτε ότι η χρήση του αλγόριθμου LRU σάς επιτρέπει να μειώσετε τον αριθμό παραβιάσεις σελίδας.


Ρύζι. 10.2.

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

Στο [Tanenbaum, 2002], εξετάζεται μια παραλλαγή εφαρμογής του αλγόριθμου LRU με έναν ειδικό δείκτη 64-bit, ο οποίος αυξάνεται αυτόματα κατά ένα μετά την εκτέλεση κάθε εντολής και ο πίνακας σελίδων έχει ένα αντίστοιχο πεδίο στο οποίο η τιμή του δείκτη είναι εισάγεται με κάθε αναφορά στη σελίδα. Όταν παρουσιάζεται σφάλμα σελίδας, η σελίδα με τη χαμηλότερη τιμή αυτού του πεδίου εκφορτώνεται.

Τόσο ο βέλτιστος αλγόριθμος όσο και το LRU δεν πάσχουν από την ανωμαλία του Biladi. Υπάρχει μια κατηγορία αλγορίθμων για τους οποίους, δεδομένης της ίδιας γραμμής προσβάσεων, το σύνολο σελίδων στη μνήμη για n πλαίσια είναι πάντα ένα υποσύνολο σελίδων για n+1 πλαίσια. Αυτοί οι αλγόριθμοι δεν παρουσιάζουν την ανωμαλία του Bilady και ονομάζονται αλγόριθμοι στοίβας.

Εξαγωγή σελίδας που χρησιμοποιείται σπάνια. Αλγόριθμος NFU

Επειδή οι περισσότεροι σύγχρονοι επεξεργαστές δεν παρέχουν επαρκή υποστήριξη υλικού για την υλοποίηση του αλγόριθμου