Τεχνολογίες Υλοποίησης Αλγορίθµων

Σχετικά έγγραφα
Τεχνολογίες Υλοποίησης Αλγορίθµων

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Τεχνολογίες Υλοποίησης Αλγορίθµων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Εισαγωγή στους Αλγορίθμους Ενότητα 7η

Διοικητική Λογιστική

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

Δομές Δεδομένων Ενότητα 1

Τεχνολογίες Υλοποίησης Αλγορίθµων

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Βέλτιστος Έλεγχος Συστημάτων

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

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

Βάσεις Περιβαλλοντικών Δεδομένων

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ψηφιακή Επεξεργασία Εικόνων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Εισαγωγή στους Υπολογιστές

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 10

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ

Κβαντική Επεξεργασία Πληροφορίας

Διδακτική της Πληροφορικής

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Τεχνικό Σχέδιο - CAD

Διοικητική Λογιστική

Κβαντική Επεξεργασία Πληροφορίας

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Μάρκετινγκ Αγροτικών Προϊόντων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μηχανολογικό Σχέδιο Ι

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Τίτλος Μαθήματος: Εργαστήριο Φυσικής Ι

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 3

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Ιστορία της μετάφρασης

Επιστηµονικός Υπολογισµός Ι Ενότητα 5 - Επίλυση Γραµµικών Συστηµάτων. Ευστράτιος Γαλλόπουλος

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Διδακτική Πληροφορικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΔΙΑΧΕΙΡΙΣΗ ΕΦΟΔΙΑΣΤΙΚΗΣ ΑΛΥΣΙΔΑΣ

Ευφυής Προγραμματισμός

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Οργάνωση και Διοίκηση Πωλήσεων Ενότητα 1: Ο ΡΟΛΟΣ ΤΩΝ ΠΩΛΗΣΕΩΝ ΣΤΟ ΠΛΑΙΣΙΟ ΤΗΣ ΣΤΡΑΤΗΓΙΚΗΣ ΜΑΡΚΕΤΙΝΓΚ

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Τεχνικό Σχέδιο - CAD

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Διδακτική Πληροφορικής

Βέλτιστος Έλεγχος Συστημάτων

Κβαντική Επεξεργασία Πληροφορίας

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Β. Διαφορικός Λογισμός

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Εννοιες και Παράγοντες της Ψηφιακής Επεξεργασίας Εικόνας

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 7

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 3

Πληροφορική ΙΙ Θεματική Ενότητα 5

Transcript:

Τεχνολογίες Υλοποίησης Αλγορίθµων Χρήστος Ζαρολιάγκης Καθηγητής Τµήµα Μηχ/κων Η/Υ & Πληροφορικής Πανεπιστήµιο Πατρών email: zaro@ceid.upatras.gr Ενότητα 3 1 / 32

Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ϱητώς. 2 / 32

Χρηµατοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδηµαϊκά Μαθήµατα στο Πανεπιστήµιο Πατρών» έχει χρηµατοδοτήσει µόνο τη αναδιαµόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράµµατος «Εκπαίδευση και ια Βίου Μάθηση» και συγχρηµατοδοτείται από την Ευρωπαϊκή Ενωση (Ευρωπαϊκό Κοινωνικό Ταµείο) και από εθνικούς πόρους. 3 / 32

Περιεχόµενα οκιµή Προγραµµάτων (Program Testing) Ελεγχος Ορθότητας Προγραµµάτων (Program Correctness Checking) 4 / 32

οκιµή Προγράµµατος εκτέλεση του προγράµµατος σε υπολογιστή χρησιµοποιώντας δεδοµένα δοκιµής ( test data) Σύγκριση µεταξύ πραγµατικής και αναµενόµενης (ϑεωρητικής) συµπεριφοράς του 5 / 32

οκιµή Προγράµµατος Στόχος οκιµή (testing) Ελεγχος ορθότητας (correctness checking) αριθµός των διαφορετικών εισόδων µπορεί να είναι γενικά πολύ µεγάλος η δοκιµή περιορίζεται συχνά σε ένα µικρό υποσύνολο όλων των δυνατών εισόδων σύνολο δοκιµής (test set) σύνολο δοκιµής δεν µπορεί να µας δώσει ορθότητα προγράµµατος Στόχος οκιµής: όχι η εξασφάλιση ορθότητας, αλλά ο εντοπισµός των λαθών Program testing can be used to show the presence of bugs, but never to show their absence! [Dijkstra, 1972] 6 / 32

οκιµή Προγράµµατος Σχεδιασµός δεδοµένων δοκιµής Μέθοδοι Black-Box Λαµβάνουν υπόψιν τη λειτουργία του αλγορίθµου και όχι του κώδικα ιαχωρισµός δεδοµένων εισόδου σε διαφορετικές οµάδες που η κάθε µία αντιπροσωπεύει µια ποιοτικά διαφορετική συµπεριφορά Μέθοδοι White-Box Σχεδιασµός δεδοµένων δοκιµής µετά από λεπτοµερή εξέταση του κώδικα, προκειµένου να καλύψουν όλες τις εντολές του προγράµµατος και όλες τις πιθανές «διαδροµές» εκτέλεσης 7 / 32

Ελεγχος Ορθότητας Προγραµµάτων ιαδικασία που µας ϐοηθά να αυξήσουµε σηµαντικά την εµπιστοσύνη µας σε µια υλοποίηση 8 / 32

Ελεγχος Ορθότητας Προγραµµάτων Εστω P ένα πρόγραµµα το οποίο υπολογίζει µια συνάρτηση f P x f y Πώς µπορούµε να ϐεβαιωθούµε ότι το P, µε είσοδο x, όντως υπολογίζει y = f(x) ; 9 / 32

Ελεγχος Ορθότητας Προγραµµάτων Αρνητικά Παραδείγµατα Ο αλγόριθµος ελέγχου γραφήµατος ως προς το αν είναι επίπεδο ήταν εσφαλµένος στην LEDA 2.0 Το σύστηµα (CAD) Rhino3d αποτυγχάνει να υπολογίσει σωστά την τοµή δύο κυλίνδρων και δύο σφαιρών Ο επιλυτής γραµµικών προγραµµάτων CPLEX αποτυγχάνει στο πρόβληµα δοκιµής επιδόσεων (benchmark problem) etamacro 10 / 32

Ελεγχος Ορθότητας Προγραµµάτων όγµα Τα προγράµµατα πρέπει να δικαιολογούν (αποδεικνύουν) την έξοδό τους µε έναν τρόπο που να µπορεί εύκολα να επαληθευθεί από κάποιον χρήστη 11 / 32

Ελεγχος Ορθότητας Προγραµµάτων Προγράµµατα Πιστοποίησης (Certifying Programs) Ενα πρόγραµµα P καλείται πρόγραµµα πιστοποίησης (ή ελέγξιµο) αν είσοδο x επιστρέφει y, την ϕερόµενη τιµή της f(x), και ένα πιστοποιητικό (ή πληροφορία επιβεβαίωσης) I το οποίο καθιστά εύκολα επαληθεύσιµο ότι όντως y = f(x) x P y=f(x) I 12 / 32

Ελεγχος Ορθότητας Προγραµµάτων Προγράµµατα Πιστοποίησης Εύκολα επαληθεύσιµο απλό πρόγραµµα C, ο ελεγκτής, το οποίο δεδοµένων των x, y, και I ελέγχει αν όντως y = f(x) Το C πρέπει να είναι τόσο απλό που η ορθότητά του να είναι προφανής x y C I y=f(x)? true : false Ο χρόνος εκτέλεσης (πραγµατικός ή ασυµπτωτικός) του C µε είσοδο x, y και I δεν πρέπει να είναι µεγαλύτερος από εκείνον του P µε είσοδο x 13 / 32

Ελεγχος Ορθότητας Προγραµµάτων Παραδείγµατα Επίλυση γραµµικών συστηµάτων Εύρεση συντοµότερων αποστάσεων Ελεγχος επιπεδότητας γραφηµάτων Ελεχγος διµερότητας γραφηµάτων 14 / 32

Ελεγχος Ορθότητας Προγραµµάτων Επίλυση γραµµικών συστηµάτων Θεωρήστε ένα πρόγραµµα P 1 το οποίο παίρνει σαν είσοδο ένα µητρώο A m n και ένα διάνυσµα b m 1 και εξετάζει άν το γραµµικό σύστηµα A x = b έχει λύση ή όχι, επιστρέφοντας µια λογική τιµή true ή false Είναι το P 1 ένα πρόγραµµα πιστοποίησης (ελέγξιµο) ; Αν όχι, τότε πώς µπορεί να γίνει ; 15 / 32

Ελεγχος Ορθότητας Προγραµµάτων Επίλυση γραµµικών συστηµάτων Το P 1, ως έχει, δεν είναι πρόγραµµα πιστοποίησης Για να γίνει, πρέπει να επεκταθεί η διασύνδεσή του Με είσοδο A και b ένα πρόγραµµα πιστοποίησης P 1 επιστρέφει είτε «το σύστηµα έχει λύση» και ένα διάνυσµα x τέτοιο ώστε A x = b είτε «το σύστηµα δεν έχει λύση» και ένα διάνυσµα c τέτοιο ώστε c T A = 0 και c T b 0 Τώρα το P 1 είναι εύκολα επαληθεύσιµο: απαιτούνται το πολύ δύο (απλοί και εύκολα ελέγξιµοι) πολλαπλασιασµοί µητρώου µε διάνυσµα και διάνυσµα µε διάνυσµα 16 / 32

Ελεγχος Ορθότητας Προγραµµάτων Εύρεση συντοµότερων αποστάσεων Θεωρήστε ένα πρόγραµµα P 2 που δέχεται ως είσοδο ένα κατευθυνόµενο γράφηµα G = (V, E), µε κόστη στις πλευρές του wt : E IR και µε µια κορυφή αφετηρίας s V, και το οποίο υπολογίζει (µόνο) τις συντοµότερες αποστάσεις d(v), v V, από την s Είναι το P 2 ένα πρόγραµµα πιστοποίησης (ελέγξιµο) ; Αν όχι, τότε πώς µπορεί να γίνει ; Το P 2, ως έχει, είναι όντως πρόγραµµα πιστοποίησης (u, v) E: d(v) d(u) + wt(u, v), µε την ισότητα να ισχύει για τουλάχιστον n 1 ακµές (n = V ) 17 / 32

Ελεγχος Ορθότητας Προγραµµάτων Ελεγχος επιπεδότητας γραφηµάτων Θεωρήστε ένα πρόγραµµα P 3 το οποίο δέχεται ως είσοδο ένα γράφηµα G και εξετάζει αν το G είναι επίπεδο ή όχι, επιστρέφοντας µια λογική τιµή true ή false Εικόνα 1 Είναι το P 3 ένα πρόγραµµα πιστοποίησης (ελέγξιµο) ; Αν όχι, τότε πώς µπορεί να γίνει ; 18 / 32

Ελεγχος Ορθότητας Προγραµµάτων Ελεγχος επιπεδότητας γραφηµάτων Εικόνα 2: K 5 Εικόνα 3: K 3,3 19 / 32 Το P 3, ως έχει, δεν είναι πρόγραµµα πιστοποίησης Για να γίνει, πρέπει να επεκταθεί η διασύνδεσή του Με είσοδο G το πρόγραµµα πιστοποίησης P 3 επιστρέφει είτε «επίπεδο» µαζί µε µια επίπεδη απεικόνιση του G είτε «µη-επίπεδο» µαζί µε ένα υπογράφηµα του G οµοιοµορφικό µε το K 5 ή το K 3,3 (υπογραφήµατα Kuratowski)

Ελεγχος Ορθότητας Προγραµµάτων Ελεγχος διµερότητας γραφηµάτων Θεωρήστε ένα πρόγραµµµα P 4 που δέχεται ως είσοδο ένα γράφηµα G και εξετάζει αν το G είναι διµερές ή όχι, επιστρεφοντας µια λογική τιµή true ή false Είναι το P 4 ένα πρόγραµµα πιστοποίησης (ελέγξιµο) ; Αν όχι, τότε πώς µπορεί να γίνει ; 20 / 32

Ελεγχος Ορθότητας Προγραµµάτων Ελεγχος διµερότητας γραφηµάτων Το P 4, ως έχει, δεν είναι πρόγραµµα πιστοποίησης a b x y d c z 2-χρωµατισµός πιστοποιεί διµερότητα Πρόγραµµα (αλγόριθµος) πιστοποίησης P 4 : περιττός κύκλος πιστοποιεί µη-διµερότητα Κατασκευή γεννητικού δένδρου και χρήση του για χρωµατισµό κορυφών του G µε χρώµατα πράσινο και µπλε για κάθε µη-δενδρική ακµή, έλεγχος αν τα άκρα της έχουν διαφορετικά χρώµατα Αν ναι, τότε το G είναι διµερές (και ο χρωµατισµός το αποδεικνύει) Αν όχι, τότε το G δεν είναι διµερές Εστω e = (x, y) µια µη-δενδρική ακµή µε άκρα ίδιου χρώµατος Η δενδρική διαδροµή x-y έχει άρτιο µήκος (x & y έχουν ίδιο χρώµα) Η ακµή e µε την δενδρική διαδροµή x-y είναι ένας περιττός κύκλος 21 / 32

Ελεγχος Ορθότητας Προγραµµάτων Πλεονεκτήµατα 1. Η απάντηση του προγράµµατος µπορεί να επαληθευθεί για κάθε ξεχωριστό στιγµιότυπο εισόδου επαλήθευση προγράµµατος (program verification) η οποία παρέχει εγγύηση για όλα τα στιγµιότυπα εισόδου 2. Οι αλγόριθµοι πιστοποίησης είναι αξιόπιστοι Είτε δίνουν τη σωστή απάντηση Είτε παρέχουν ένδειξη ότι υπάρχει σφάλµα 3. Υπολογισµός αυξηµένης εµπιστοσύνης Ο χρήστης µπορεί να αυξήσει την εµπιστοσύνη του στην ορθότητα του προγράµµατος καταβάλοντας πολύ µικρή διανοητική προσπάθεια ανάγκη να καταλάβει το πρόγραµµα αρκεί να καταλάβει την ιδιότητα του πιστοποιητικού και τον ελεγκτή ορθότητας Ο υλοποιητής ενός προγράµµατος µπορεί να δώσει µια πειστική ένδειξη της ορθότητάς του χωρίς να αποκαλύψει οποιαδήποτε λεπτοµέρεια της υλοποίησης 22 / 32

Ελεγχος Ορθότητας Προγραµµάτων Πλεονεκτήµατα 4. Ο έλεγχος ορθότητας επιτρέπει να χρησιµοποιούµε ένα πιθανώς µη-ορθό πρόγραµµα σαν να ήταν ορθό πολύ χρήσιµο κατά τη διαδικασία αποσφαλµάτωσης f f1 f2 5. Ο έλεγχος ορθότητας υποστηρίζει τη δοκιµή προγράµµατος (testing) for (int n = 0; n < 100; n++) for (int m = 0; m < 100; m++) { random_graph(g,n,m); // random graph with n nodes and m edges list<edge> M = MAX_CARD_MATCHING(G,OSC); CHECK_MAX_CARD_MATCHING(G,M,OSC); } 23 / 32

Ελεγχος Ορθότητας Προγραµµάτων Πλεονεκτήµατα 6. Ενας ελεγκτής (πρόγραµµα ελέγχου ορθότητας) µπορεί να γραφεί αν υπάρχει αυστηρός ορισµός του προβλήµατος που επιλύει το πρόγραµµα που ελέγχει Π.χ. αν ένας αλγόριθµος επίλυσης ενός προβλήµατος γραφηµάτων υποθέτει ότι δεν υπάρχουν µεµονωµένοι κόµβοι στο γράφηµα, τότε η ίδια υπόθεση πρέπει να τηρηθεί και από τον ελεγκτή 24 / 32

Ελεγχος Ορθότητας Προγραµµάτων Αλλα Ϲητήµατα Καθολικότητα: Εχει κάθε πρόβληµα έναν αλγόριθµο πιστοποίησης ; Μπορεί κάθε πρόγραµµα να µετατραπεί σε πρόγραµµα πιστοποίησης ; Κάθε αιτιοκρατικό πρόγραµµα µπορεί να µετατραπεί σε πρόγραµµα πιστοποίησης [McConnell, Mehlhorn, Naeher, Schweitzer, 2011] Τυπική Επαλήθευση (formal verification): προσθέτει ένα επιπλέον επίπεδο εµπιστοσύνης Τυπικές αποδείξεις είναι ορθές και πλήρεις είναι µηχανικά ελεγχόµενες (από ένα πολύ απλό πρόγραµµα) επιτρέπουν τη δηµιουργία µεγάλων ϐιβλιοθηκών έµπιστων αλγορίθµων επιτρέπουν στον χρήστη να καταβάλλει ακόµα µικρότερη διανοητική προσπάθεια εµπιστευθειτε απλώς τον ελεγκτή απόδειξης! 25 / 32

Σύνοψη οκιµή προγραµµάτων Ελεγχος Ορθότητας Προγραµµάτων Αλγόριθµοι/προγράµµατα πιστοποίησης: ιδιαίτερα επωφελή... µπορούν να ελεγχθούν σε κάθε είσοδο είναι αξιόπιστα µπρούµε να τα εµπιστευθούµε χωρίς να γνωρίζουµε τον κώδικα υποστηρίζουν τον υπολογισµό αυξηµένης εµπιστοσύνης... και παρέχουν έναν νέο τρόπο ανάπτυξης αλγορίθµων 26 / 32

Τέλος Ενότητας 27 / 32

Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν έργο αποτελεί την έκδοση 1.0. 28 / 32

Σηµείωµα Ιστορικού Εκδόσεων Εργου Copyright Πανεπιστήµιο Πατρών, Χρήστος Ζαρολιάγκης, 2014. «Τεχνολογίες Υλοποίησης Αλγορίθµων». Εκδοση: 1.0. Πάτρα 2014. ιαθέσιµο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1084 29 / 32

Σηµείωµα Ιστορικού Εκδόσεων Εργου Το παρόν υλικό διατίθεται µε τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εµπορική Χρήση, Οχι Παράγωγα Εργα 4.0 [1] ή µεταγενέστερη, ιεθνής Εκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. ϕωτογραφίες, διαγράµµατα κ.λ.π., τα οποία εµπεριέχονται σε αυτό. [1] http://creativecommons.org/licenses/by-nc-nd/4.0 Ως Μη Εµπορική ορίζεται η χρήση: που δεν περιλαµβάνει άµεσο ή έµµεσο οικονοµικό όφελος από την χρήση του έργου, για το διανοµέα του έργου και αδειοδόχο που δεν περιλαµβάνει οικονοµική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανοµέα του έργου και αδειοδόχο έµµεσο οικονοµικό όφελος (π.χ. διαφηµίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος µπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιµοποιεί το έργο για εµπορική χρήση, εφόσον αυτό του Ϲητηθεί. 30 / 32

Πηγές εικόνων - Χρήση Εργων Τρίτων Εικόνα 1: http://www.boost.org/doc/libs/1_36_0/libs/graph/ doc/figs/planar_plane_straight_line.png Εικόνα 2: https://commons.wikimedia.org/wiki/file:complete_graph_k5.svg Εικόνα 3: https://commons.wikimedia.org/wiki/file:biclique_k_3_3.svg 31 / 32

ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει : το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους 32 / 32