ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού"

Transcript

1 ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού Συναρτήσεις και υπολογισιμότητά τους Μηχανές Turig Στοιχειώδης γλώσσα προγραμματισμού Μη υπολογίσιμη συνάρτηση Πολυπλοκότητα προβλημάτων Προβλήματα κλάσης P, NP, NP- Complete παραδείγματα Κρυπτογραφία δημόσιου κλειδιού Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα και τις διαλέξεις προηγούμενων ετών του κ. Κουκουμπέτη 1

2 Θεωρία Υπολογισμού Τι μπορούν ή δε μπορούν να κάνουν οι υπολογιστές Που βρίσκεται το σύνορο μεταξύ επιλύσιμων ή μη προβλημάτων από υπολογιστή Ορισμός του συνόρου με απλές μηχανές (Turig) Προβλήματα των οποίων η λύση βρίσκεται πέρα από τις δυνατότητες των αλγορίθμων και των σημερινών (και αυριανών) υπολογιστών Μεταξύ των προβλημάτων που είναι επιλύσιμα, υπάρχουν προβλήματα των οποίων η λύση είναι τόσο περίπλοκη που πρακτικά θεωρούνται άλυτα 2

3 Συναρτήσεις Μία συνάρτηση είναι μία αντιστοιχία μεταξύ ενός συνόλου πιθανών τιμών εισόδου και ενός συνόλου τιμών εξόδου, έτσι ώστε κάθε πιθανή είσοδος να αντιστοιχεί σε μία και μοναδική έξοδο. Π.χ. Ταξινόμηση λίστας, πρόσθεση 2 αριθμών,... Υπολογίσιμη συνάρτηση είναι αυτή της οποίας η τιμή εξόδου μπορεί να προσδιοριστεί αλγοριθμικά από την τιμή εισόδου. Μπορεί να γραφεί π.χ. και σε αναλυτική μορφή, δηλ. με μαθηματικό τύπο, ή με μορφή πίνακα Μη υπολογίσιμη είναι η συνάρτηση που δεν μπορεί να προσδιοριστεί από κανένα αλγόριθμο. Δηλ. Υπάρχουν συναρτήσεις που είναι τόσο περίπλοκες που δεν υπάρχει καλά ορισμένος τρόπος, βήμα- προς- βήμα για να καθοριστεί η έξοδος βάσει των εισόδων Υπολογιστικό πρόβλημα = συνάρτηση 3

4 Παραδείγματα συναρτήσεων Program iput halts P1 x1 0 P2 x2 0 P2 x3 1 4

5 Υπολογισιμότητα < Υπάρχουν προβλήματα που δεν μπορούν να λυθούν από ένα υπολογιστή; ΝΑΙ! < Αρχική υπόθεση (Hilbert): κάθε καλώς ορισμένο πρόβλημα έχει μια απάντηση που μπορούμε να βρούμε! < δημιουργία μαθηματικού συστήματος που μπορεί να περιγράφει κάθε πρόβλημα < κατασκευή αλγορίθμου που να αποφασίζει (σωστό ή λάθος) < Η υπόθεση Hilbert όριζε ένα μηχανικό τρόπο να αποφασίζουμε όλα τα προβλήματα < Δείτε και: < Goedel: Θεώρημα της μη πληρότητας (Icompleteess theorem).. < Με βάση τα αξιώματα της αριθμητικής για τους ακεραίους, υπάρχουν θεωρήματα για ιδιότητες των ακεραίων που δεν μπορούν να αποδειχθούν! < Αρα, πόσο μάλλον μηχανικός τρόπος.. 5

6 Άλυτα προβλήματα (μέχρι σήμερα) < Η εικασία του Goldbach (1742): κάθε άρτιος αριθμός > 2 μπορεί να γραφεί σαν άθροισμα δύο πρώτων αριθμών < Τελευταίο θεώρημα του Fermat (1637): (λύθηκε πριν 20 χρόνια!) < Δεν υπάρχουν θετικοί ακέραιοι a,b,c τέτοιοι ώστε a + b = c, > 2 < P = NP < Riema hypothesis (1859) < Riema hypothesis: ζ(s) = Σ =1 1/ s < s μιγαδικός < Οι ρίζες της ζ(s) είναι s=- 2, - 4,. ή είναι μιγαδικές με πραγματικό μέρος 1/2 6

7 Ιστορία Αla Turig: τι είναι υπολογίσιμο; Ένα πρόβλημα είναι υπολογίσιμο αν μπορούμε να περιγράψουμε ένα σύνολο εντολών που αν τις ακολουθήσουμε θα λύσουμε το πρόβλημα (procedure, or algorithm) Για να γίνουμε όμως συγκεκριμένοι πρέπει να ορίσουμε τις ικανότητες της μηχανής που θα εκτελέσει τις εντολές Μηχανές με διαφορετικές δυνατότητες θα μπορούσαν να εκτελούν διαφορετικά σύνολα εντολών, και άρα θα μπορούν να επιλύσουν διαφορετικές κατηγορίες προβλημάτων Ο Turig πρότεινε ένα τύπο μηχανών γνωστών σαν μηχανές Turig. Αυτές οι μηχανές βοήθησαν στον τυπικό ορισμό της υπολογιστικής διαδικασίας που ονομάζουμε υπολογισιμότητα κατά Turig (Turig- computability) 7

8 Τα στοιχεία μιας μηχανής Turig 8

9 Λειτουργίες μίας μηχανής Turig Αλφάβητο = πεπερασμένο σύνολο από σύμβολα Παράδειγμα: Αλφάβητο = {0,1,*} Σε κάθε κυψελίδα γράφεται ένα σύμβολο Σύνολο καταστάσεων Μηχανής: {ΕΝΑΡΞΗ, ΠΡΟΣΘΕΣΗ, ΚΡΑΤΟΥΜΕΝΟ, ΥΠΕΡΧΕΙΛΙΣΗ, ΕΠΙΣΤΡΟΦΗ, ΤΕΛΟΣ} Είσοδοι σε κάθε βήμα της μηχανής: Τωρινή Κατάσταση (μια από ένα πεπερασμένο σύνολο από καταστάσεις) Τιμή στην τρέχουσα κυψελίδα της ταινίας (εκεί που βρίσκεται τώρα η κεφαλή) Οι ενέργειες σε κάθε βήμα: Γράφει μία τιμή στην τρέχουσα κυψελίδα της ταινίας. Κινεί την κεφαλή εγγραφή/ανάγνωσης μια θέση δεξιά ή μια θέση αριστερά Αλλάζει κατάσταση 9

10 Παράδειγμα: Μια μηχανή Turig για την αύξηση μιας τιμής κατά μία μονάδα αγνοείται Αρχική Κατάσταση: ΕΝΑΡΞΗ 10

11 Church- Turig thesis Είδαμε ένα παράδειγμα συνάρτησης που είναι υπολογίσιμη κατά Turig (Turig computable) Δίνουμε είσοδο στην μηχανή Turig, βγάζει έξοδο Αύξηση τιμής της μηχανής κατά 1 Ερώτηση: το ότι δεν υπάρχει αλγόριθμος που να λύνει μία κλάση προβλημάτων οφείλεται στο ότι το μοντέλο του υπολογιστή είναι αδύναμο; Church- Turig: όλα τα μοντέλα υπολογιστών και αλγορίθμων που υπάρχουν ή μπορεί να προταθούν στο μέλλον είναι υπολογιστικά ισοδύναμα με την Μηχανή Turig! 11

12 Church- Turig thesis (2) Άρα η μη- υπολογισιμότητα είναι ιδιότητα του προβλήματος και δεν εξαρτάται από το υπολογιστικό σύστημα Church- Turigthesis: To σύνολο των υπολογίσιμων συναρτήσεων είναι ίδιο με το σύνολο συναρτήσεων των υπολογίσιμων κατά Turig Ισοδύναμα: Μια συνάρτηση είναι υπολογίσιμη αν και μόνο αν είναι υπολογίσιμη κατά Turig 12

13 Καθολική γλώσσα προγραμματισμού Μία μηχανή Turig μπορεί να υπολογίσει κάθε υπολογίσιμη συνάρτηση κάθε υπολογίσιμη συνάρτηση είναι υπολογίσιμη κατά Turig. Δεν αποδεικνύεται αλλά είναι γενικά αποδεκτό. Γι αυτό το λέμε thesis Καθολική γλώσσα προγραμματισμού είναι μία γλώσσα που μπορεί να εκφράσει ένα πρόγραμμα υπολογισμού για κάθε υπολογίσιμη συνάρτηση Aν ένας προγραμματιστής βρει ότι ένα πρόβλημα δεν μπορεί να λυθεί με αυτή τη γλώσσα, θα σημαίνει ότι δεν υπάρχει αλγόριθμος για να λύσει το πρόβλημα Παράδειγμα: Η στοιχειώδης γλώσσα (Bare Boes) 13

14 Η Στοιχειώδης Γλώσσα Η Στοιχειώδης Γλώσσα είναι μία απλή και καθολική γλώσσα. Προσδιορισμοί καταστάσεων: clear όνοµα; icr όνοµα; decr όνοµα; while όνοµα ot 0 do; ed; Παράδειγμα 1: x à 3 Παράδειγμα 2 x à z 14

15 Άσκηση: Τι κάνει το παρακάτω πρόγραμμα σε Στοιχειώδη Γλώσσα; Αποδείξτε ότι κάνει το Ζ= Χ Υ 15

16 Άλλα Παραδείγματα Στοιχειώδους Γλώσσας Icr X; Υπολογίζει την ίδια συνάρτηση που υπολόγιζε η μηχανή Turig Άλλο παράδειγμα: 16

17 Στοιχειώδης Γλώσσα Έχει αποδειχθεί ότι η Στοιχειώδης Γλώσσα επαρκεί και μπορεί να χρησιμοποιηθεί για να εκφράσει τους αλγορίθμους για να υπολογίσουμε όλες τις συναρτήσεις που είναι υπολογίσιμες κατά Turig Συνδυάζοντας με το Turig- Church thesis: κάθε υπολογίσιμη συνάρτηση μπορεί να υπολογιστεί με ένα πρόγραμμα γραμμένο στη Στοιχειώδη Γλώσσα Η Στοιχειώδης γλώσσα είναι καθολική με την έννοια ότι, αν υπάρχει ένας αλγόριθμος που λύνει ένα πρόβλημα, το πρόβλημα μπορεί να λυθεί με ένα πρόγραμμα σε Στοιχειώδη Γλώσσα 17

18 Μια μη υπολογίσιμη συνάρτηση Θα δούμε μια συνάρτηση που δεν είναι υπολογίσιμη κατά Turig και άρα και γενικά είναι μη υπολογίσιμη Αυτό λέγεται «Το πρόβλημα του Τερματισμού» (Haltig Problem) Είναι το πρόβλημα του να προβλέπουμε αν ένα πρόγραμμα θα τερματίσει ή όχι για κάποιες αρχικές συνθήκες Π.χ. Αν ξεκινήσει με Χ=0, θα τερματίσει Γενικά για οποιοδήποτε πρόγραμμα, θα αποδείξουμε ότι είναι αδύνατο να υπολογίζουμε αν θα τερματίζει ή οχι 18

19 Πρόγραμμα που γίνεται είσοδος σε άλλα προγράμματα Αυτο- αναφορά (self- referece): η ιδέα ένα αντικείμενο να αναφέρεται στον εαυτό του. Το σύνολο από bit που προκύπτει όπως παραπάνω από την αναπαράσταση του Προγράμματος σε δυαδική μορφή, αποτελεί έναν (πολύ μεγάλο) αριθμό Χ 19

20 Αυτο- αναφορά Έστω το πρόγραμμα Χ η μεταβλητή που παριστάνει την αριθμητική τιμή που προκύπτει από το πρόγραμμα (όπως πριν) Το πρόγραμμα δεν τερματίζει! Τώρα, έστω το πρόγραμμα: Χ η μεταβλητή που παριστάνει την αριθμητική τιμή που προκύπτει από το πρόγραμμα Το πρόγραμμα τερματίζει! Aυτο- τερματιζόμενο (self- termiatig) πρόγραμμα: Αν εκτελεστεί με όλες τις μεταβλητές αρχικοποιημένες στην αριθμητική τιμή που προκύπτει από το πρόγραμμα καθαυτό, τερματίζει Δηλαδή τερματίζει αν λάβει ως είσοδο τον εαυτό του 20

21 Το πρόβλημα τερματισμού Πρόβλημα τερματισμού: είναι το πρόβλημα του καθορισμού αν ένα Στοιχειώδες πρόγραμμα είναι αυτο- τερματιζόμενο Θα αποδείξουμε ότι δεν υπάρχει αλγόριθμος για να απαντήσουμε στο παραπάνω ερώτημα Προσοχή: Το ότι σε κάποιες ειδικές περιπτώσεις μπορούμε να καθορίζουμε αν ένα Στοιχειώδες πρόγραμμα είναι αυτο- τερματιζόμενο, δεν σημαίνει ότι λύσαμε το πρόβλημα τερματισμού 21

22 Απόδειξη μη επιλυσιμότητας του προβλήματος τερματισμού Συνάρτηση τερματισμού (haltig fuctio): Είσοδος: αριθμητική τιμή που προκύπτει από ένα πρόγραμμα Έξοδος: 1, αν το πρόγραμμα είναι αυτο- τερματιζόμενο 0, αν το πρόγραμμα δεν είναι αυτο- τερματιζόμενο Απόδειξη μέσω της μεθόδου της αντίφασης: Θα δείξουμε ότι μια υπόθεση είναι λάθος με το να δείξουμε ότι δεν μπορεί να είναι αληθής Θα αποδείξουμε ότι η συνάρτηση τερματισμού δεν είναι υπολογίσιμη Έστω ότι η συνάρτηση τερματισμού είναι υπολογίσιμη è Υπάρχει Στοιχειώδες πρόγραμμα που την υπολογίζει 22

23 Απόδειξη Απόδειξη Της μη επιλυσιμό- τητας του πρόβληματος τερματισμού 23

24 Σύμβολα Ladau ασυμπτωτικό άνω φράγμα την έχει )): ( ( ) ( g f O g f k g f ) ( ) (, όταν κάτω φράγμα ασυμπτωτικό άνω και την έχει )): ( ( ) ( g f g f Θ 2 1 ) ( ) ( ) (, όταν k g f k g ) (2 2 2 ), ( ), ( ,5 2 O O O + + ) log ( 5 10 log 2 ), ( Θ + Θ + 24

25 Χρονική πολυπλοκότητα προβλημάτων H χρονική πολυπλοκότητα αναφέρεται στο πλήθος των εντολών που απαιτούνται να εκτελεστούν όχι το πλήθος των εντολών που υπάρχουν στον κώδικα! Ένα πρόβλημα είναι της τάξης Ο(f()) αν μπορεί να λυθεί και με αλγόριθμο της τάξης Θ(f()). Ένα πρόβλημα είναι τάξης Θ(f()) αν μπορεί να λυθεί με έναν αλγόριθμο της τάξης Θ(f()) και δεν υπάρχει αλγόριθμος μικρότερης πολυπλοκότητας που να το λύνει Πολυπλοκότητα αλγορίθμου: ποσότητα πόρων (χρόνος, μνήμη) που χρησιμοποιεί ο αλγόριθμος ασυμπτωτική πολυπλοκότητα : ο όρος που υπερισχύει Θ( 2 ) Θ(2 ) εκθετικοί και πολυωνυμικοί αλγόριθμοι πολυπλοκότητα χειρότερης, μέσης περίπτωσης 25

26 Παραδείγματα για πολυπλοκότητα Παράδειγμα 1: Δυαδική αναζήτηση σε λίστα ονομάτων με αλφαβητική ταξινόμηση: Ο(log) Έχει αποδειχθεί ότι το πρόβλημα αναζήτησης είναι τάξης Θ(log) Άρα, η δυαδική αναζήτηση είναι το καλύτερο που μπορεί να κάνει κανείς (βέλτιστο) Παράδειγμα 2: Ταξινόμηση λίστας ονομάτων με τη μέθοδο ταξινόμησης με εισαγωγή: O( 2 ) Έχει αποδειχθεί ότι το πρόβλημα της ταξινόμησης είναι της τάξης Θ( log) Άρα, η μέθοδος ταξινόμησης με εισαγωγή δεν είναι η βέλτιστη λύση 26

27 Παράδειγμα καλύτερης λύσης για την ταξινόμηση λίστας: MergeSort Κοινός τρόπος επίλυσης προβλημάτων: ανάγουμε το πρόβλημα στην λύση μικρότερων προβλημάτων! à Διαίρει και βασίλευε (divide ad coquer) Παράδειγμα: ταξινόμηση λίστας αριθμών: module sort(list) if >1 the {L1 = firsthalf(list); L2 = secodhalf(list); L1:= sort(l1); L2:= sort(l2); retur L := merge(l1,l2)} 27

28 Μέθοδος MergeSort 28

29 Aλγόριθμος ταξινόμησης συγχώνευσης (MergeSort) και πολυπλοκότητα log O ( log ) Σε κάθε επίπεδο του δυαδικού δέντρου, χρειάζεται η συγχώνευση (merge) λιστών Η συγχώνευση μιας λίστας μήκους m με μια λίστα μήκους είναι Ο(m+) 29

30 Aλγόριθμος ταξινόμησης λίστας με Συγχώνευση (MergeSort) και πολυπλοκότητά του Σε κάθε επίπεδο του δέντρου, χρειάζεται συγχώνευση (merge) λιστών Η συγχώνευση μιας λίστας μήκους m με μια λίστα μήκους είναι Ο(m+) γιατί χρειάζονται το πολύ m+ συγκρίσεις Σε κάθε επίπεδο του δέντρου πάντα υπάρχουν συνολικά στοιχεία Στο 2 ο επίπεδο χρειάζεται να γίνουν (/2) + (/2) = συγκρίσεις για να γίνει η συγχώνευση Στο 3 ο επίπεδο χρειάζεται να γίνουν 2[(/4) + (/4)] = συγκρίσεις Κ.ο.κ Στο τελευταίο επίπεδο του δέντρου, γίνεται σύγκριση λίστας με μήκος < 2 και άρα δε χρειάζονται καν συγκρίσεις Συμπέρασμα: σε κάθε επίπεδο του δέντρου χρειάζονται το πολύ συγκρίσεις Ο αριθμός των επιπέδων του δυαδικού δέντρου είναι lοg (στρογγυλεμένο στον επόμενο ακέραιο αν το δεν είναι δύναμη του 2) Τελικά: η MergeSort είναι τάξης Ο( log) Έχει αποδειχθεί ότι είναι και Θ( log) à είναι η καλύτερη λύση από άποψη πολυπλοκότητας 30

31 Γραφήματα των μαθηματικών παραστάσεων ν, lg v, v lg v και v 2 31

32 Χρόνος εκτέλεσης αλγορίθμων μέγεθος εισόδου log x πολυπλοκότητα αλγορίθμου sec 100 7x x10 11 αιώνες * x * 1 βήμα = 1 sec x * x ώρες 32

33 Πολυωνυμικά προβλήματα Ένα πρόβλημα λέγεται πολυωνυμικό (polyomial) αν είναι της τάξης Ο(f()) όπου f() είναι είτε πολυώνυμο, είτε είναι άνω φραγμένο από πολυώνυμο Το σύνολο των πολυωνυμικών προβλημάτων είναι γνωστό ως κλάση προβλημάτων P To να ανήκει ένα πρόβλημα στην κλάση προβλημάτων P είναι σημαντικό, γιατί σημαίνει ότι έχει πρακτική λύση Δυσεπίλυτα (itractable) (ή μη- εφικτά, ifeasible) είναι όλα τα προβλήματα που είναι πολύ περίπλοκα για να επιλυθούν πρακτικά Οι επιστήμονες υπολογιστών θεωρούν την τάξη Ρ ως το όριο μεταξύ δισεπίλυτων και αυτών που έχουν πρακτική λύση. Δείτε τι συμβαίνει π.χ. για το πρόβλημα που είναι Θ(2 ) Το 2 δεν μπορεί να είναι φραγμένο από ένα πολυώνυμο Παράδειγμα: Η εύρεση όλων των δυνατών υποσυνόλων ενός συνόλου με στοιχεία είναι πολυπλοκότητας Θ(2 ) 33

34 Μη εφικτά προβλήματα: Το πρόβλημα της συσκευασίας Προβλήματα μη υπολογίσιμα σε πολυωνυμικό χρόνο Το πρόβλημα της συσκευασίας (bi packig problem) Ν κιβώτια βάρους w 1, w 2, w N μπορούν να μεταφερθούν από Κ φορτηγά που το καθένα μπορεί να σηκώσει το πολύ W; W = 14 W = 14 34

35 Το πρόβλημα Kapsack Μεγιστοποίηση της συνολικής αξίας των αντικειμένων που μπορεί να χωρέσουν μέσα στο σάκο του κλέφτη 35

36 Μη εφικτά προβλήματα (2) Το πρόβλημα του πλανόδιου πωλητή(travelig Salesma Problem) Με δεδομένο ένα χάρτη δρόμων με Ν πόλεις και τις αντίστοιχες χιλιομετρικές αποστάσεις, είναι δυνατόν ένας πωλητής να ολοκληρώσει κάποιο ταξίδι όπου περνάει από κάθε πόλη ακριβώς μία φορά η συνολική διαδρομή έχει μήκος < Κ κύκλος Hamilto 36

37 Το πρόβλημα του πλανόδιου πωλητή Πολύ δύσκολο, χρειάζεται να εξετάσω όλα τα πιθανά μονοπάτια και να εξετάσω αν το μήκος κάποιου από αυτά είναι < Κ Μη πολυωνυμικός χρόνος (διότι ο αριθμός των πιθανών μονοπατιών αυξάνει εκθετικά με το N) Παρατήρηση: αν υπάρχει κάποιο τέτοιο μονοπάτι και το επιλέξουμε πρώτο, θα βρω τη λύση γρήγορα! Θεωρείστε αλγορίθμους του τύπου: Είναι μη ντετερμινιστικός (μη αιτιοκρατικός) αλγόριθμος (λόγω της 1 ης εντολής) Είναι αρκετά γρήγορος αλγόριθμος (πολυωνυμικού χρόνου), γιατί ο χρόνος εκτέλεσης είναι ανάλογος του αριθμού των πόλεων Αλλά χρειάζεται τύχη! 37

38 Το πρόβλημα του πλανόδιου πωλητή (2) Ανήκει στην κατηγορία προβλημάτων για τα οποία υπάρχει μη ντετερμιστικός (αιτιοκρατικός) αλγόριθμος που εκτελείται σε πολυωνυμικό χρόνο Αλλά δεν έχει βρεθεί κάποιος ντετερμιστικός αλγόριθμος πολυωνυμικού χρόνου Ένα πρόβλημα που μπορεί να λυθεί σε πολυωνυμικό χρόνο με ένα μη ντετερμινιστικό αλγόριθμο λέγεται μη ντετερμιστικό πολυωνυμικό πρόβλημα (No- determiistic Polyomial, NP) Η κλάση αυτών των προβλημάτων λέγεται NP 38

39 Τάξη ΝΡ (No- determiistic Polyomial) Τάξης ΝΡ είναι όλα τα προβλήματα που μπορούν να επιλυθούν από έναν μη αιτιοκρατικό αλγόριθμο σε πολυωνυμικό χρόνο. Πολλά από τα δύσκολα προβλήματα που μας ενδιαφέρουν είναι στην τάξη ΝΡ (αποκρυπτογράφηση, συσκευασίας, πλανόδιου πωλητή,...) Μη αιτιοκρατικός είναι ο αλγόριθμος του οποίου τα βήματα μπορεί να μην είναι μοναδικά (άρα και αιτιοκρατικά): ρίχνει ζάρια για να αποφασίσει πως να προχωρήσει. Χαρακτηριστικό των προβλημάτων NP είναι ότι η λύση είναι υπολογιστικά εφικτό! (όχι να βρεθεί!) μια μη- ντετερμινιστική μηχανή μπορεί να διαλέξει στην τύχη μια λύση και να την επαληθεύσει σε πολυωνυμικό χρόνο Είναι ακόμα άγνωστο αν η τάξη ΝΡ είναι μεγαλύτερη της τάξης Ρ (P=? NP). P NP 39

40 Γραφική σύνοψη κατηγοριοποίησης προβλημάτων 40

41 Προβλήματα NP- Complete Tο παραπάνω ερώτημα οδήγησε στην ανακάλυψη μιας ειδικής κατηγορίας προβλημάτων ανάμεσα σε αυτά της τάξης NP Τάξη προβλημάτων ΝΡ- Complete: Μια λύση σε πολυωνυμικό χρόνο για οποιοδήποτε από αυτά θα έδινε μια λύση σε πολυωνυμικό χρόνο για όλα τα άλλα προβλήματα της τάξης ΝΡ Δηλ. Αν υπάρχει ένας ντετερμινιστικός αλγόριθμος που να λύνει κάποιο από τα προβλήματα της τάξης NP- Complete, τότε αυτός ο αλγόριθμος μπορεί να επεκταθεί για να λύσει οποιοδήποτε άλλο πρόβλημα στην τάξη NP, δηλ. αυτό θα σημάνει ότι P = NP!! Πρόβλημα πλανόδιου πωλητή: NP- Complete 41

42 Προβλήματα NP- complete NP- complete: υποσύνολο των πιο δύσκολων προβλημάτων στο NP Κάθε πρόβλημα στο NP μετασχηματίζεται με πολυωνυμικό κόστος σε κάποιο πρόβλημα στο NP- complete Εάν λυθεί σε πολυωνυμικό χρόνο ένα πρόβλημα στο NP- Complete τότε λύνονται πολυωνυμικά όλα τα προβλήματα στο NP ΠΑ P2 P1 P3 NP- complete P4 P7 } NP ΠΑ = Πολυωνυμική Αναγωγή (επόμενη διαφάνεια) P9 42

43 Πολυωνυμική Αναγωγή Πολυωνυμική αναγωγή (ΠΑ) Ρ2- >Ρ1: Το πρόβλημα P2 το κωδικοποιώ σε πολυωνυμικό χρόνο ως μια μερική περίπτωση του P1. Λύνω το P1, και από την λύση του κατασκευάζω με πολυωνυμικό κόστος την λύση του P2 Ρ2- >Ρ1 => Ρ1 πιο δύσκολο από το Ρ2 P1 P 2 P1 P 2 P2 εάν λύνεται σε πολυωνυμικό χρόνο ΠΑ το Ρ1, τότε λύνεται σε πολυωνυμικό χρόνο και το Ρ2 P1 P3 43

44 Προβλήματα NP- complete (2) = NP πρόβλημα Πολυωνυμική αναγωγή P2 P1 P3 Βήμα 1: βρίσκω το πρώτο πρόβλημα στην τάξη ΝΡ- complete. Έστω P1: Πιο δύσκολο πρόβλημα στο NP. Όλα τα προβλήματα στο ΝΡ ανάγονται πολυωνυμικά στο Ρ1 (1971, Cook) Βήμα 2: προσθέτω περισσότερα προβλήματα στο ΝΡ- complete. P2 στο ΝΡ- complete εάν Ρ1 ανάγεται πολυωνυμικά στο Ρ2. Ρ3 στο ΝΡ- complete εάν Ρ1 ή Ρ2 ανάγονται στο Ρ3, κλπ... 44

45 Παράδειγμα (3- SAT) SAT (Satisfiability): δεδομένης μίας boolea φόρμουλας, υπάρχουν τιμές για τις μεταβλητές που να την κάνουν TRUE; ( x x1 V ( x x )) (( x x ) ) x =, x = 0, x 0 3- SAT πρόβλημα: η φόρμουλα είναι το λογικό ΚΑΙ (AND) σχέσεων (clauses) οι οποίες είναι το λογικό Η (OR) το πολύ 3 μεταβλητών. Π.χ. (με 4 clauses) Θεώρημα του Cook: To 3- SAT είναι NP- complete = ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) 45

46 Κ- Idepedet Set (K- IS) σε γράφο Ανεξάρτητο Σύνολο (Ιdepedet Set): ένα σύνολο από κόμβους που δεν υπάρχει ακμή που να τους συνδέει Πρόβλημα του Ανεξάρτητου Συνόλου μεγέθους Κ Σε ένα γράφο G, υπάρχει σύνολο Κ κόμβων οι οποίοι να μην είναι γειτονικοί (να μην υπάρχει ακμή που να τους συνδέει) ; Είναι NP- complete; K=4 46

47 Βήματα στην αναγωγή 1. Αρχίζω με μία οποιαδήποτε φόρμουλα (είσοδος στο 3- SAT πρόβλημα) 2. Κατασκευάζω με έξυπνο τρόπο ένα γράφο που κωδικοποιεί τα δεδομένα της φόρμουλας, και η ερώτηση για την φόρμουλα ανάγεται στην ερώτηση εάν ο γράφος έχει Κ ανεξάρτητους κόμβους (Κ = αριθμός από παρενθέσεις στην φόρμουλα) 3. Προσέχω ώστε η κατασκευή του γράφου να είναι πολυωνυμική στο μέγεθος της φόρμουλας 4. Αποτέλεσμα: Δεδομένου πως το 3- SAT είναι ΝΡ- complete, τότε και το K- GIS είναι ΝΡ- complete 47

48 Αναγωγή του 3- SAT στο Κ- idepedet Set ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) ( x1 x2 x3) K = 4 x 1 x x 1 2 x3 x 1 x 2 x 2 x 3 x x 1 2 x3 x 3 48 Κατασκευή γράφου ενώνοντας αυτές τις μεταβλητές που δεν μπορεί να είναι 1 ταυτόχρονα

49 Κρυπτογραφία Δημόσιου Κλειδιού Κρυπτογραφία Δημοσίου Κλειδιού (Public Key Cryptography) Βασίζεται στην δυσκολία του να βρεθούν οι παράγοντες ενός ακεραίου αριθμού Δηλ. οι αριθμοί που τον διαιρούν Κλειδί (key): Μια τιμή που χρησιμοποιείται για την κρυπτογράφηση ή αποκρυπτογράφηση ενός μηνύματος Δημόσιο κλειδί (public key): Χρησιμοποιείται για κρυπτογράφηση μηνυμάτων Ιδιωτικό κλειδί (private key): Χρησιμοποιείται για αποκρυπτογράφηση μηνυμάτων RSA: δημοφιλής κρυπτογραφικός αλγόριθμος δημόσιου κλειδιού Βασίζεται στη (θεωρούμενη) δυσεπιλυσιμότητα του προβλήματος παραγοντοποίησης μεγάλων αριθμών 49

50 Κρυπτογραφία δημόσιου κλειδιού (2) 50

51 Βασικά Στοιχεία Αν οι p, q είναι πρώτοι αριθμοί, και m ακέραιος μεταξύ 0 και pq, τότε: Επιλέγω p,q και έστω = pq Επιλέγω e, d θετικούς ακεραίους ώστε e d = k(p- 1)(q- 1) + 1 για κάποιο θετικό ακέραιο k Οι τιμές e, είναι τα κλειδιά κρυπτογράφησης (δημόσια κλειδιά) Οι τιμές d, είναι τα κλειδιά αποκρυπτογράφησης (ιδιωτικά κλειδιά) =91, e = 5 = 91, d=29 Δίνω τα δημόσια κλειδιά σε όποιον θέλει να στείλει μηνύματα (σε μένα) Κρατάω τα ιδιωτικά κλειδιά για μένα (και τις τιμές p,q) 51

52 Δημιουργία ενός συστήματος κρυπτογράφησης δημοσίου κλειδιού RSA 52

53 Παράδειγμα Κρυπτογράφησης: Κρυπτογράφηση του Δυαδικού Μηνύματος = Έστω p = 7, q = 13 Και έστω e = 5, d = 29 Κλειδιά κρυπτογράφησης: = 91 ad e = 5 23 e = 23 5 = έχει υπόλοιπο = Επομένως, η κρυπτογραφημένη εκδοχή του είναι το

54 Παράδειγμα Αποκρυπτογράφησης Κλειδιά αποκρυπτογράφησης: d = 29, = 91 Έστω ότι θέλω να αποκρυπτογραφήσω την κρυπρογραφημένη πληροφορία: = d = 4 29 = έχει υπόλοιπο = Επομένως, η αποκρυπτογραφημένη εκδοχή του 100 είναι το

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών

11.1 Συναρτήσεις. ΚΕΦΑΛΑΙΟ 11: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ : Θεωρία υπολογισµών. Συναρτήσεις και ο υπολογισµός τους. Μηχανές Turig.3 Καθολικές γλώσσες προγραµµατισµού.4 Μια µη υπολογίσιµη συνάρτηση.5 Πολυπλοκότητα προβληµάτων.6 Κρυπτογραφία δηµόσιου κλειδιού.

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισμού 12.1 Συναρτήσεις και ο υπολογισμός τους 12.2 Μηχανές Turing 12.3 Καθολικές γλώσσες προγραμματισμού 12.4 Μια μη υπολογίσιμη συνάρτηση 12.5 Πολυπλοκότητα προβλημάτων 12.6

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών

ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών ΚΕΦΑΛΑΙΟ 12: Θεωρία υπολογισµών 1 Συναρτήσεις και ο υπολογισµός τους 2 Μηχανές Turing 3 Καθολικές γλώσσες προγραµµατισµού 4 Μια µη υπολογίσιµη συνάρτηση 5 Πολυπλοκότητα προβληµάτων 1 Συναρτήσεις Μία συνάρτηση

Διαβάστε περισσότερα

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος Περιγραφή μαθήματος Θεωρία Υπολογισμού Άρτιοι ΑΜ Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας (Θεωρία Αλγορίθμων). Διδάσκων: Σταύρος Κολλιόπουλος

Διαβάστε περισσότερα

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Θεωρία Υπολογισμού Άρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr Περιγραφή μαθήματος Σκοπός του μαθήματος είναι η εισαγωγή στη Θεωρία Υπολογισμού και στη Θεωρία Υπολογιστικής Πολυπλοκότητας

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Θέματα Απόδοσης Αλγορίθμων 1 Η Ανάγκη για Δομές Δεδομένων Οι δομές δεδομένων οργανώνουν τα δεδομένα πιο αποδοτικά προγράμματα Πιο ισχυροί υπολογιστές πιο σύνθετες εφαρμογές Οι πιο σύνθετες εφαρμογές απαιτούν

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη

Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι αλη Υποθέσεις - - Θεωρήματα Μαθηματικά Πληροφορικής 1ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Στα μαθηματικά και στις άλλες επιστήμες

Διαβάστε περισσότερα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα αναζήτησης είναι ένα πρόβλημα στο

Διαβάστε περισσότερα

CSC 314: Switching Theory

CSC 314: Switching Theory CSC 314: Switching Theory Course Summary 9 th January 2009 1 1 Θέματα Μαθήματος Ερωτήσεις Τι είναι αλγόριθμος? Τι μπορεί να υπολογιστεί? Απαντήσεις Μοντέλα Υπολογισμού Δυνατότητες και μη-δυνατότητες 2

Διαβάστε περισσότερα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 18: Χρονική και Χωρική Πολυπλοκότητα Τι θα κάνουμε σήμερα Εισαγωγικά Χρονική Πολυπλοκότητα (7) Κλάση P (7.2) Κλάση ΝΡ (7.3) ΝΡ-πληρότητα (7.4) Χωρική

Διαβάστε περισσότερα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1, Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιμότητα Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβλημα αναζήτησης (search problem) Ένα πρόβλημα

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κλάσεις P, NP NP-πληρότητα 15 Απριλίου 2008 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να περιγράψουμε με

Διαβάστε περισσότερα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 13: Παραλλαγές Μηχανών Turing και Περιγραφή Αλγορίθμων Τι θα κάνουμε σήμερα Εισαγωγή Πολυταινιακές Μηχανές Turing (3.2.1) Μη Ντετερμινιστικές Μηχανές

Διαβάστε περισσότερα

Υποθέσεις - Θεωρήματα. Μαθηματικά Πληροφορικής 1ο Μάθημα. Η χρυσή τομή. Υποθέσεις - Εικασίες

Υποθέσεις - Θεωρήματα. Μαθηματικά Πληροφορικής 1ο Μάθημα. Η χρυσή τομή. Υποθέσεις - Εικασίες Υποθέσεις - - Θεωρήματα Υποθέσεις - - Θεωρήματα Υποθέσεις - Θεωρήματα Μαθηματικά Πληροορικής ο Μάθημα Στα μαθηματικά και στις άλλες επιστήμες κάνουμε συχνά υποθέσεις. Οταν δείξουμε ότι μια υπόθεση είναι

Διαβάστε περισσότερα

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιµότητα. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Κεφάλαιο 8 NP και Υπολογιστική Δυσεπιλυσιµότητα Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 πρόβληµα αναζήτησης (search problem) Ένα πρόβληµα αναζήτησης είναι ένα πρόβληµα στο

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές

Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Θεωρία Υπολογισμού και Πολυπλοκότητα Αναγωγές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ανεπίλυτα Προβλήματα από τη Θεωρία Γλωσσών (5.1) To Πρόβλημα της Περάτωσης Το Πρόβλημα της Κενότητα

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 9 P vs NP 1 / 13 Δυσκολία επίλυσης υπολογιστικών προβλημάτων Κάποια προβλήματα είναι εύκολα να λυθούν με

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 11: Περιορισμοί της Αλγοριθμικής Ισχύος Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

Κλάσεις Πολυπλοκότητας

Κλάσεις Πολυπλοκότητας Κλάσεις Πολυπλοκότητας Παύλος Εφραιμίδης pefraimi ee.duth.gr Κλάσεις Πολυπλοκότητας 1 Οι κλάσεις πολυπλοκότητας P και NP P: Polynomial ΗκλάσηP περιλαμβάνει όλα τα υπολογιστικά προβλήματα που μπορούν

Διαβάστε περισσότερα

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity CSC 314: Switching Theory Chapter 7, 8 : Time, Space Complexity 12 December 2008 1 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτεμπορούμεναπεριγράψουμεμεένααλγόριθμο μπορεί να

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Διάλεξη 04: Παραδείγματα Ανάλυσης

Διάλεξη 04: Παραδείγματα Ανάλυσης Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

Διαβάστε περισσότερα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα

Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα Αλγόριθμοι πολυωνυμικού χρόνου Ένας αλγόριθμος πολυωνυμικού χρόνου έχει χρόνο εκτέλεσης όπου είναι μία (θετική) σταθερά Κλάση πολυπλοκότητας : περιλαμβάνει τα προβλήματα που επιδέχονται λύση σε πολυωνυμικό

Διαβάστε περισσότερα

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτογραφία Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι) Κρυπτοσυστήματα Δημοσίου κλειδιού Αποστολέας P Encryption C Decryption P Παραλήπτης Προτάθηκαν το 1976 Κάθε συμμετέχων στο

Διαβάστε περισσότερα

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ροή Δικτύου Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Μοντελοποίηση Δικτύων Μεταφοράς Τα γραφήματα χρησιμοποιούνται συχνά για την μοντελοποίηση

Διαβάστε περισσότερα

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα

Διαβάστε περισσότερα

Θεωρία Υπολογισµού Theory of Computation

Θεωρία Υπολογισµού Theory of Computation 1 ο µέρος Θεωρία Υπολογισµού Theory of Computation 1 Υπολογισιµότητα - Computability o Υπολογισιµότητα (Computability) n Τι µπορεί να υπολογιστεί και τι όχι; o Υπολογιστική πολυπλοκότητα (Computational

Διαβάστε περισσότερα

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων

NP-πληρότητα. Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων NP-πληρότητα Λεωνίδας Παληός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων Πολυωνυμικός μετασχηματισμός Ένας πολυωνυμικός μετασχηματισμός από την L 1 Σ 1 * στην L 2 Σ 2 * είναι μια συνάρτηση

Διαβάστε περισσότερα

Υπολογίσιμες Συναρτήσεις

Υπολογίσιμες Συναρτήσεις Υπολογίσιμες Συναρτήσεις Σ Π Υ Ρ Ι Δ Ω Ν Τ Ζ Ι Μ Α Σ Δ Τ Ο Μ Ε Α Σ Τ Μ Η Μ Α Μ Α Θ Η Μ Α Τ Ι Κ Ω Ν Σ Χ Ο Λ Η Θ Ε Τ Ι Κ Ω Ν Ε Π Ι Σ Τ Η Μ Ω Ν Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Ι Ω Α Ν Ν Ι Ν Ω Ν Υπολογίσιμες Συναρτήσεις

Διαβάστε περισσότερα

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Πιο κάτω υπάρχει ένα σχεδιάγραμμα που τοποθετεί τις κλάσεις των κανονικών, ασυμφραστικών, διαγνώσιμων και αναγνωρίσιμων γλωσσών μέσα στο σύνολο όλων των γλωσσών. Ακολουθούν

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Κεφάλαιο 14. Χρονική Πολυπλοκότητα 17, 20, 24 Απριλίου 2007 Δρ. Παπαδοπούλου Βίκη 1 Υπολογίσιμα και Εφικτά Υπολογίσιμα Προβλήματα Είδαμε ότι 1. Οτιδήποτε μπορούμε να

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί

Αριθμήσιμα σύνολα. Μαθηματικά Πληροφορικής 5ο Μάθημα. Παραδείγματα αριθμήσιμων συνόλων. Οι ρητοί αριθμοί Αριθμήσιμα σύνολα Μαθηματικά Πληροφορικής 5ο Μάθημα Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Ορισμός Πόσα στοιχεία έχει το σύνολο {a, b, r, q, x}; Οσα και το σύνολο {,,, 4, 5} που είναι

Διαβάστε περισσότερα

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο

12. ΑΝΙΣΩΣΕΙΣ Α ΒΑΘΜΟΥ. είναι δύο παραστάσεις μιας μεταβλητής x πού παίρνει τιμές στο ΓΕΝΙΚΑ ΠΕΡΙ ΑΝΙΣΩΣΕΩΝ Έστω f σύνολο Α, g Α ΒΑΘΜΟΥ είναι δύο παραστάσεις μιας μεταβλητής πού παίρνει τιμές στο Ανίσωση με έναν άγνωστο λέγεται κάθε σχέση της μορφής f f g g ή, η οποία αληθεύει για ορισμένες

Διαβάστε περισσότερα

4.3 Ορθότητα και Πληρότητα

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

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Φροντιστήριο 11 Λύσεις

Φροντιστήριο 11 Λύσεις Άσκηση 1 Φροντιστήριο 11 Λύσεις Να αποδείξετε ότι η κλάση Ρ είναι κλειστή ως προς τις πράξεις της ένωσης, της συναρμογής και του συμπληρώματος. Θα πρέπει να δείξουμε ότι: (α) Ένωση: Αν οι Λ 1 και Λ 2 είναι

Διαβάστε περισσότερα

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων.

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι έχουμε δει μέχρι τώρα. Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων. HY118-Διακριτά Μαθηματικά Θεωρία γράφων/ γραφήματα Τρίτη, 15/05/2018 Αντώνης Α. Αργυρός e-mail: argyros@csd.uoc.gr 16-May-18 1 1 16-May-18 2 2 Τι έχουμε δει μέχρι τώρα Κατευθυνόμενοι μη κατευθυνόμενοι

Διαβάστε περισσότερα

Κλάση NP, NP-Complete Προβλήματα

Κλάση NP, NP-Complete Προβλήματα Κλάση NP, NP-Complete Προβλήματα Βαγγέλης ούρος douros@aueb.gr 1 11/6/2012 Αλγόριθμοι, Εαρινό Εξάμηνο 2012, Φροντιστήριο #14 Προβλήματα Απόφασης & Βελτιστοποίησης 2 Πρόβλημα Απόφασης: Κάθε πρόβλημα που

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 04: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G,k η G είναι μια ασυμφραστική γραμματική η οποία παράγει κάποια λέξη 1 n όπου n k } (β) { Μ,k η Μ είναι

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1) Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες () Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Πεπερασμένα Αυτόματα (Κεφάλαιο., Sipser) Ορισμός πεπερασμένων αυτομάτων και ορισμός του

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 3η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης

Διαβάστε περισσότερα

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5

Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5 Υπολογιστική Πολυπλοκότητα Εξέταση Ιουνίου 2017 Σελ. 1 από 5 Στη σελίδα αυτή γράψτε μόνο τα στοιχεία σας. Γράψτε τις απαντήσεις σας στις επόμενες σελίδες, κάτω από τις αντίστοιχες ερωτήσεις. Στις απαντήσεις

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { R η R είναι μια κανονική έκφραση η οποία παράγει μια μη πεπερασμένη γλώσσα} (β) { G η G είναι μια CFG η οποία

Διαβάστε περισσότερα

Υπολογιστική Πολυπλοκότητα

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Γιατί κάποια (επιλύσιμα) προβλήματα είναι δύσκολο

Διαβάστε περισσότερα

Chapter 7, 8 : Time, Space Complexity

Chapter 7, 8 : Time, Space Complexity CSC 314: Switching Theory Chapter 7, 8 : Time, Space Complexity 19 December 2008 1 1 Κλάση NP 2 Μη-Ντετερμινιστικές Μηχανές Turing: Eίναι δυνατόν σε μια συνολική κατάσταση να υπάρχουν πολλές δυνατές επόμενες

Διαβάστε περισσότερα

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα

Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα Θεωρία Υπολογισμού και Πολυπλοκότητα Χρονική Πολυπλοκότητα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Μέτρηση της Πολυπλοκότητας (7.1) Η κλάση Ρ (7.2) Η κλάση ΝΡ (7.3) ΝΡ-πληρότητα (7.4)

Διαβάστε περισσότερα

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Διαβάστε περισσότερα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Επανάληψη Μαθήματος ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Επανάληψη Μαθήματος Το Μάθημα σε μια Διαφάνεια Υπολογιστικά μοντέλα Κανονικές Γλώσσες Ντετερμινιστικά Αυτόματα Μη Ντετερμινιστικά Αυτόματα Κανονικές Εκφράσεις

Διαβάστε περισσότερα

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Βυζαντινά Σφάλματα Τι θα δούμε σήμερα Κάτω Φράγμα για Αλγόριθμους Συμφωνίας με Βυζαντινά Σφάλματα: n > 3f Αλγόριθμος Συμφωνίας

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) ({ G η G είναι μια ασυμφραστική γραμματική που δεν παράγει καμιά λέξη με μήκος μικρότερο του 2 } (β) { Μ,w

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { Μ η Μ είναι μια ΤΜ η οποία διαγιγνώσκει το πρόβλημα ΙΣΟΔΥΝΑΜΙΑ ΤΜ (διαφάνεια 9 25)} (α) Γνωρίζουμε ότι το

Διαβάστε περισσότερα

Λύσεις 4ης Σειράς Ασκήσεων

Λύσεις 4ης Σειράς Ασκήσεων Λύσεις 4ης Σειράς Ασκήσεων Άσκηση 1 Αναγάγουμε τν Κ 0 που γνωρίζουμε ότι είναι μη-αναδρομική (μη-επιλύσιμη) στην γλώσσα: L = {p() η μηχανή Turing Μ τερματίζει με είσοδο κενή ταινία;} Δοσμένης της περιγραφής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

t M (w) T ( w ) O( n) = O(n 2 )

t M (w) T ( w ) O( n) = O(n 2 ) Κεφάλαιο 9 Υπολογιστική Πολυπλοκότητα Σύνοψη Πέρα από το ερώτημα του αν για ένα πρόβλημα υπάρχει Μηχανή Turing, που το επιλύει, μας απασχολεί επίσης και το ερώτημα του αν ένα πρόβλημα είναι «πρακτικά»

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα

Διαβάστε περισσότερα

Υπολογιστική Πολυπλοκότητα

Υπολογιστική Πολυπλοκότητα Υπολογιστική Πολυπλοκότητα ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός Επιμέλεια διαφανειών: Δημήτρης Φωτάκης (λίγες προσθήκες: Άρης Παγουρτζής) Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91 Ε.Μ.Πoλυτεχνείο ΣΗΜΜΥ, ΣΕΜΦΕ Τομέας Τεχνολογίας Πληροφορικής & Υπολογιστών Διδάσκων: Ε.Ζαχος Ονοματεπώνυμο:... Αριθμός Μητρώου:... Σχολή:... εξάμηνο:... ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 005 Σύνολο

Διαβάστε περισσότερα

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ

Περιεχόμενα. Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23. Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ Περιεχόμενα Εισαγωγή του επιμελητή, Γιάννης Σταματίου 15 Πρόλογος 17 Εισαγωγή 23 Μέρος I. ΕΠΑΝΑΛΗΠΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΑΝΑΛΛΟΙΩΤΕΣ ΣΥΝΘΗΚΕΣ 1. Επαναληπτικοί αλγόριθμοι: Μέτρα προόδου και αναλλοίωτες συνθήκες.....................................................29

Διαβάστε περισσότερα

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Κρυπτογραφία Έλεγχος πρώτων αριθών-παραγοντοποίηση Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Σχολή ΗΜΜΥ ΕΜΠ Κρυπτογραφία

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Λογική Δημήτρης Πλεξουσάκης 3ο μέρος σημειώσεων: Μέθοδος της Επίλυσης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται στην άδεια

Διαβάστε περισσότερα

Σειρά Προβλημάτων 4 Λύσεις

Σειρά Προβλημάτων 4 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα { ww w {a,b}* }. (β) Να διατυπώσετε την τυπική περιγραφή

Διαβάστε περισσότερα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

Διαβάστε περισσότερα

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ Θεωρία Υπολογισμού Ενότητα 26: Καθολική Μηχανή Turing Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που

Διαβάστε περισσότερα

Εφαρμοσμένη Κρυπτογραφία Ι

Εφαρμοσμένη Κρυπτογραφία Ι Εφαρμοσμένη Κρυπτογραφία Ι Κωνσταντίνου Ελισάβετ ekonstantinou@aegean.gr http://www.icsd.aegean.gr/ekonstantinou Ιστορία Ασύμμετρης Κρυπτογραφίας Η αρχή έγινε το 1976 με την εργασία των Diffie-Hellman

Διαβάστε περισσότερα

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,... KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός

Διαβάστε περισσότερα

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Εισαγωγικές Έννοιες. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Εισαγωγικές Έννοιες ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { D το D είναι ένα DFA το οποίο αποδέχεται όλες τις λέξεις στο Σ * } (α) Για να διαγνώσουμε το πρόβλημα μπορούμε

Διαβάστε περισσότερα

Chapter 7, 8 : Completeness

Chapter 7, 8 : Completeness CSC 314: Switching Theory Chapter 7, 8 : Completeness 19 December 2008 1 1 Αναγωγές Πολυωνυμικού Χρόνου Ορισμός. f: Σ * Σ * ονομάζεται υπολογίσιμη σε πολυνωνυμικό χρόνο αν υπάρχει μια πολυωνυμικά φραγμένη

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Διάλεξη : Παραδείγματα Ανάλυσης Πολυπλοκότητας / Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, 6 παραδείγματα

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας Εισαγωγή στους Αλγόριθμους Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr 1 Περιεχόμενα Μαθήματος Εισαγωγή στου Αλγόριθμους Πολυπλοκότητα Αλγορίθμων Ασυμπτωτική Ανάλυση Θεωρία Γράφων Κλάσεις Πολυπλοκότητας

Διαβάστε περισσότερα

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας Διάλεξη 2: Μαθηματικό Υπόβαθρο Τι θα κάνουμε σήμερα Συναρτήσεις & Σχέσεις (0.2.3) Γράφοι (Γραφήματα) (0.2.4) Λέξεις και Γλώσσες (0.2.5) Αποδείξεις (0.3) 1

Διαβάστε περισσότερα

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ

ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Ενότητα 12: Μη ντετερμινιστικές μηχανές Turing Ρεφανίδης Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Σειρά Προβλημάτων 5 Λύσεις

Σειρά Προβλημάτων 5 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 5 Λύσεις Να δείξετε ότι οι πιο κάτω γλώσσες είναι διαγνώσιμες. (α) { G 1, G 2 οι G 1 και G 2 είναι δύο CFG που παράγουν μια κοινή λέξη μήκους 144 } (β) { D,k το D είναι ένα DFA

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών 4ο εξάμηνοσhmμy 1η ενότητα: Βασικές έννοιες θεωρίας υπολογισμού: υπολογιστικά προβλήματα, υπολογισιμότητα, πολυπλοκότητα Επιμέλεια διαφανειών: Στάθης Ζάχος, Άρης

Διαβάστε περισσότερα

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία Κρυπτογραφία Δημοσίου Κλειδιού Άρης Παγουρτζής Στάθης Ζάχος Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Κρυπτοσύστημα

Διαβάστε περισσότερα

Ελίνα Μακρή

Ελίνα Μακρή Ελίνα Μακρή elmak@unipi.gr Μετατροπή Αριθμητικών Συστημάτων Πράξεις στα Αριθμητικά Συστήματα Σχεδίαση Ψηφιακών Κυκλωμάτων με Logism Άλγεβρα Boole Λογικές Πύλες (AND, OR, NOT, NAND, XOR) Flip Flops (D,

Διαβάστε περισσότερα

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι Συναίνεση χωρίς την παρουσία σφαλμάτων Κατανεμημένα Συστήματα Ι 4η Διάλεξη 27 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου Κατανεμημένα Συστήματα Ι 4η Διάλεξη 1 Συναίνεση χωρίς την παρουσία σφαλμάτων Προηγούμενη

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

Διαβάστε περισσότερα

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ

2ογελ ΣΥΚΕΩΝ 2ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ ογελ ΣΥΚΕΩΝ ογελ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β Λυκει(ου ο ΓΕΛ ΣΥΚΕΩΝ ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Β ΛΥΚΕΙΟΥ ογελ ΣΥΚΕΩΝ ογελ ΣΥΚΕΩΝ ΣΧΟΛΙΚΟ ΕΤΟΣ -4 ΠΟΛΥΩΝΥΜΙΚΕΣ ΣΥΝΑΡΤΗΣΕΙΣ Επιμέλεια: ΧΑΛΑΤΖΙΑΝ ΠΑΥΛΟΣ

Διαβάστε περισσότερα

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε» Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε» ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε

Διαβάστε περισσότερα