ΠΛΗ30 ΜΑΘΗΜΑ 5.4

27
ΠΛΗ30 ΕΝΟΤΗΤΑ 5: ΑΠΟΦΑΣΙΣΙΜΕΣ και ΑΠΟ∆ΕΚΤΕΣ ΓΛΩΣΣΕΣ Μάθηµα 5.4: Αναγωγές ∆ηµήτρης Ψούνης

Transcript of ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Page 1: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

ΠΛΗ30ΕΝΟΤΗΤΑ 5: ΑΠΟΦΑΣΙΣΙΜΕΣ και

ΑΠΟ∆ΕΚΤΕΣ ΓΛΩΣΣΕΣ

Μάθηµα 5.4: ΑναγωγέςΑναγωγές

∆ηµήτρης Ψούνης

Page 2: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

ΠΕΡΙΕΧΟΜΕΝΑΑ. Σκοπός του Μαθήµατος

Β. Θεωρία

1. Η αποδεικτική διαδικασία της αναγωγής

1. Σκεπτικό: Η γλώσσα Halting

2. Το Θεώρηµα Αναγωγής

3. Σχήµα Απόδειξης Αναγωγής

2. Παραδείγµατα Αναγωγών

1. Ο πιο συχνά χρησιµοποιούµενος µετασχηµαισµός

2. Τερµατίζει ένα πρόγραµµα µε οποιαδήποτε είσοδο;

2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

3. Τερµατίζει ένα πρόγραµµα µε είσοδο την κενή συµβολοσειρά;

4. Τερµατίζει ένα πρόγραµµα µε είσοδο έστω µία συµβολοσειρά;

5. Είναι δύο προγράµµατα ισοδύναµα;

6. Το πρόγραµµα δεν τερµατίζει για καµία είσοδο

3. Άλλες Μη Επιλύσιµες Γλώσσες

1. Αναγνώριση συνόλου γλώσσας

2. Ασκ.Αυτ.2.2 και ∆ραστ.2.2

3. Μη Επιλύσιµες Γλώσσες για Γλώσσες Χωρίς Συµφραζόµενα

Γ.Ασκήσεις

Page 3: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Α. Σκοπός του Μαθήµατος

Οι στόχοι του µαθήµατος είναι:

Επίπεδο Α (-)Επίπεδο Β (-)

3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

(-)Επίπεδο Γ Αποδείξη ότι µία γλώσσα δεν είναι επιλύσιµη µε αναγωγή. Γνώση γλωσσών που δεν είναι επιλύσιµες

Page 4: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία1. Η αποδεικτική διαδικασία της αναγωγής1. Σκεπτικό: Η γλώσσα Halting

4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 5: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία1. Η αποδεικτική διαδικασία της αναγωγής2. Το θεώρηµα αναγωγής

Τα παραπάνω συνοψίζονται στο ακόλουθο θεώρηµα:

5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Η χρήση του 2ου σκέλους του θεωρήµατος θα χρησιµοποιείται για να δείξουµε ότι µία γλώσσα δεν είναι αποφασίσιµη:• Θα µας δίνεται στην εκφώνηση ότι µία γλώσσα L1 δεν είναι αποφασίσιµη (θα είναι για µας η

ΓΝΩΣΤΗ µη επιλύσιµη γλώσσα)• Θα µας δίνεται στην εκφώνηση ότι µία γλώσσα L2 δεν είναι αποφασίσιµη (θα είναι για µας η

ΑΓΝΩΣΤΗ µη επιλύσιµη γλώσσα)• Θα κατασκευάζουµε µία αναγωγή της L1 στην L2 (δηλαδή µία αναγωγή της γνωστής γλώσσας στην άγνωστη γλώσσα µε τρόπο που θα µελετήσουµε στην συνέχεια)

Page 6: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία1. Η αποδεικτική διαδικασία της αναγωγής3. Το σχήµα της απόδειξης αναγωγής

Θα µελετήσουµε το σκεπτικό µιας αναγωγικής απόδειξης:

6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Είσοδος

Γνωστής Ερώτηµα Γνωστής

Είσοδος

Αγνωστής Ερώτηµα Αγνωστής

Page 7: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία1. Η αποδεικτική διαδικασία της αναγωγής3. Το σχήµα της απόδειξης αναγωγής

7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Η απόδειξη της αναγωγής είναι µια απόδειξη µε ΑΤΟΠΟ.Υποθέτουµε ότι η ΑΓΝΩΣΤΗ ΓΛΩΣΣΑ είναι επιλύσιµη (αποφασίσιµη).Άρα υπάρχει µία µηχανή Turing Μ2 που την αποφασίζει.

Χρησιµοποιούµε την Μ2 για να αποφασίσουµε την ΓΝΩΣΤΗ µη επιλύσιµη γλώσσα, δηλαδή για να κατασκευάσουµε µια µηχανή Μ1 που αποφασίζει την ΓΝΩΣΤΗ. Αυτό όµως είναι άτοπο!

Απαιτείται λοιπόν ο µετασχηµατισµός της εισόδου του γνωστού, σε είσοδο του άγνωτου

Χρήσιµο θα φανεί το εξής σχήµα (αναγωγής):

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

Μ1

Μ2

Υ

Μηχανή για το γνωστό

Μηχανή για το αγνωστό

Ν

Υ

Νf

Μετασχηµατισµός της εισόδου του γνωστού σε είσοδο του άγνωστου προβλήµατος

<Μ,w>

Είσοδος του Γνωστού

<Μ’,w’,q’>

Είσοδος του Αγνωστού

Page 8: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία1. Η αποδεικτική διαδικασία της αναγωγής3. Το σχήµα της απόδειξης αναγωγής

8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Μετασχηµατισµός της εισόδου του γνωστού σε είσοδο του άγνωστου ώστε να αποφασίζεται το γνωστό µη επιλύσιµο πρόβληµα!

Είναι το πιο δύσκολο κοµµάτι της αναγωγής και απαιτεί έµπνευση και µελέτη πολλών παραδειγµάτων από τη βιβλιογραφία!

Στο συγκεκριµένο παράδειγµα ο µετασχηµατισµός είναι: Μ’=Μ, w’=w, q=τελική κατασταση του M.

Με τον µετασχηµατισµό αυτό η ερώτηση της Μ1:• “Τερµατίζει η Μ µε είσοδο w?».Μετασχηµατίζεται στο ισοδύναµο ερώτηµα:• «Περνάει η Μ µε είσοδο w από την κατάσταση h?»Ισχύει λοιπόν ότι αν η M2 απαντήσει ΝΑΙ, τότε θα θέσουµε την Μ1 να απαντήσει ΝΑΙ.Αν η Μ2 απαντήσει ΌΧΙ, τότε η Μ1 θα θέσουµε την Μ1 να απαντήσει ΌΧΙ.

Μ1

Μ2

Υ

Ν

Υ

Νf

<Μ,w> <M,w,h>

Page 9: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία1. Η αποδεικτική διαδικασία της αναγωγής3. Το σχήµα της απόδειξης αναγωγής

9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Η απόδειξη τυπικά γράφεται ως εξής:

standard

standard

Περιγραφή του µετασχηµατισµού

YES στο ερώτηµα του αγνωστούYES στο ερώτηµα του γνωστού

ΝΟ στο ερώτηµα του αγνωστούΝΟ στο ερώτηµα του γνωστού

Page 10: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών1. Ένας συχνά χρησιµοποιούµενος µετασχηµατισµός

Ενας από τους πιο συχνά χρησιµοποιούµενους µετασχητισµούς στις αναγωγές, είναι δεδοµένης µιας µηχανής Μ και µιας συµβολοσειράς w, να κατασκευάζουµε µια µηχανή Μ’ η οποία προσοµοιώνει την λειτουργία της Μ µε είσοδο w.

Αυτό γίνεται µε µια διαδικασία 3 βηµάτων, δηλαδή η Μ’ κάνει 3 ενέργειες: Σβήνει την είσοδό της, Γράφει w στην στην ταινία της

10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Γράφει w στην στην ταινία της Τρέχει την Μ µε είσοδο w

Αυτή η διαδικασία υλοποιείται εύκολα, π.χ. µε την ακόλουθη µηχανή Μ’ σε διάγραµµα ροής (θεωρούµε ότι ξεκινά µε σχηµατισµό #w#):

Page 11: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών1. Ένας συχνά χρησιµοποιούµενος µετασχηµατισµός

Ανάλογα µε τη συµπεριφορά της µηχανής Μ µε είσοδο w διακρίνουµε δύο περιπτώσεις:

11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 12: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών2. Τερµατίζει ένα πρόγραµµα µε οποιαδήποτε είσοδο;

12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Μ1

Μ2

Υ

Ν

Υ

Νf

<Μ,w> <M’>

Ν Ν

Page 13: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών3. Τερµατίζει ένα πρόγραµµα µε είσοδο την κενή συµβολοσειρά;

13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Μ1

Μ2

Υ

Ν

Υ

Νf

<Μ,w> <M’>

Ν Ν

Page 14: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών4. Τερµατίζει ένα πρόγραµµα για έστω µία συµβολοσειρά;

14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Μ1

Μ2

Υ

Ν

Υ

Νf

<Μ,w> <M’>

Ν Ν

Page 15: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών

Αν και η πιο συχνά χρησιµοποιούµενη (γνωστή) γλώσσα είναι η γλώσσα του Halting, µπορεί να µας δίνεται ως εκφώνηση οποιαδήποτε άλλη γλώσσα.

Στην περίπτωση αυτή η αναγωγή έγκειται στην σωστή απάντηση της ερώτησης:

«Πως µπορώ να µεταµορφώσω την είσοδο του γνωστού προβλήµατος σε

15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

«Πως µπορώ να µεταµορφώσω την είσοδο του γνωστού προβλήµατος σε είσοδο του άγνωστου προβλήµατος, έτσι ώστε η απάντηση της µηχανής που απαντάει για το άγνωστο πρόβληµα, να απαντάει και στο ερώτηµα της γνωστής γλώσσας?»

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

Page 16: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών5. Είναι δύο προγράµµατα ισοδύναµα;

16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Μ1

Μ2

Υ

Ν

Υ

Νf

<Μ> <M1’,Μ2’>

Ν Ν

Page 17: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία2. Παραδείγµατα Αναγωγών6. Το πρόγραµµα δεν τερµατίζει για καµία είσοδο;

17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Μ1

Μ2

Υ

Ν

Υ

Νf

<Μ> <M’ >

Ν Ν

Page 18: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία3. Άλλες Μη Επιλύσιµες Γλώσσες1. Αναγνώριση Συνόλου Γλώσσας

18∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 19: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία3. Άλλες Μη Επιλύσιµες Γλώσσες2. Ασκ.Αυτ.2.2 και ∆ραστ.2.2.

19∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 20: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία3. Άλλες Μη Επιλύσιµες Γλώσσες2. Ασκ.Αυτ.2.2 και ∆ραστ.2.2.

20∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 21: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

B. Θεωρία3. Άλλες Μη Επιλύσιµες Γλώσσες3. Μη Επιλύσιµες Γλώσσες για Γλώσσες Χωρίς Συµφραζόµενα

21∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 22: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Γ. ΑσκήσειςΕφαρµογή 1

∆είξτε ότι η γλώσσα L=<Μ>| H M τερµατίζει µε είσοδο 0011 δεν είναι επιλύσιµη χρησιµοποιώντας αναγωγή από το πρόβληµα του τερµατισµού.

22∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 23: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Γ. ΑσκήσειςΕφαρµογή 2

(2007Β) Έχουµε γνωρίσει γλώσσες που είναι Turing-αποδεκτές και Turing-αποφασίσιµες. Υπάρχουν όµως γλώσσες που δεν είναι ούτε καν Turing-αποδεκτές. Εξετάστε για παράδειγµα τις παρακάτω δύο γλώσσες:

Α = ⟨M,w,q⟩ | η Μ µε είσοδο w µεταβαίνει στην κατάσταση q και Β = ⟨M,w,q⟩ | η Μ µε είσοδο w δεν µεταβαίνει στην κατάσταση q .

23∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Β = ⟨M,w,q⟩ | η Μ µε είσοδο w δεν µεταβαίνει στην κατάσταση q .

∆είτε ότι το συµπλήρωµα της γλώσσας Α είναι η ένωση των γλωσσών Β και όλων των µη νόµιµων κωδικοποιήσεων ⟨M,w,q⟩, δηλαδή = Β ∪ x | x ≠ ⟨M,w,q⟩ .

Α) ∆είξτε (µε σύντοµο τρόπο) ότι οι γλώσσες Α, Β δεν είναι Turing-αποφασίσιµες.

Β) ∆είξτε (µε σύντοµο τρόπο) ότι η γλώσσα Α είναι Turing-αποδεκτή.

Γ) ∆είξτε (µε σύντοµο τρόπο) ότι η γλώσσα Β δεν είναι Turing-αποδεκτή.

Page 24: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Γ. ΑσκήσειςΕφαρµογή 3

(2008Α) ∆ίνονται µηχανές Turing Μ1 και Μ2 και έστω L(Μ1) και L(Μ2) οι γλώσσες που αποδέχονται. Είναι η L(Μ1) συµπληρωµατική της L(Μ2); (Υπόδειξη: Αναγωγή από το µη επιλύσιµο πρόβληµα: “Έστω M µια τυχαία Μηχανή Turing. Ισχύει L(M) = ;”)

24∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 25: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Γ. ΑσκήσειςΕφαρµογή 4

(2008Β) Αποδείξτε, αν τα παρακάτω προβλήµατα είναι ή όχι επιλύσιµα: ∆ίδεται ένα πρόγραµµα στη γλώσσα C και µια εντολή Ε του προγράµµατος. (1) Θα εκτελέσει το πρόγραµµα 10 φορές την εντολή E σε 60 min εκτέλεσής του;(2) Θα εκτελέσει το πρόγραµµα 10 φορές την εντολή E κατά τη διάρκεια της εκτέλεσής του;

25∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 26: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Γ. ΑσκήσειςΕφαρµογή 5

(2009Β) ∆είξτε ότι η γλώσσα L = c(M,w,q) | η µηχανή Turing Μ περνάει από την κατάσταση q όταν ξεκινήσει µε είσοδο τη σ/σειρά w είναι αποδεκτή αλλά µη αποφασίσιµη.

26∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

Page 27: ΠΛΗ30 ΜΑΘΗΜΑ 5.4

Γ. ΑσκήσειςΕφαρµογή 6

(2011Α) ∆ίνεται η γλώσσα L = <M,x,q> | η µηχανή Turing M µε είσοδο την συµβολοσειρά x δεν διέρχεται ποτέ από την κατάσταση q . Αποδείξτε ότι γλώσσα L δεν είναι Turing αποφασίσιµη. Για την απόδειξη, κάντε αναγωγή από την γλώσσα Α = <M,x> | η µηχανή Turing M αποδέχεται την συµβολοσειρά x για την οποία γνωρίζουµε ότι δεν είναι Turing αποφασίσιµη. Υποθέστε ότι η γλώσσα L είναι Turing αποφασίσιµη και καταλήξτε σε άτοπο.

27∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 5.4: Αναγωγές

καταλήξτε σε άτοπο.