2. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 2
ΘΕΜΑ 1: (Μονάδες 10+10)
(Α) Να ταξινοµηθούν οι ακόλουθες συναρτήσεις κατά αύξουσα τάξη µεγέθους:
n
n
nn
nnf
nnf
n
nnn
nf
3log4
3
log
2
4
1
9
2
3log)(
)(log8)(
log
logloglog
)(
+=
+=
+
=
Ο συµβολισµός log παριστάνει λογάριθµο µε βάση το 2. . Η συνάρτηση f έχει την ίδια τάξη µεγέθους (ίδιο ρυθµό
αύξησης) µε την g (f ≡ g), αν f = Θ(g) (ισοδύναµα Θ(f) = Θ(g)). Η συνάρτηση f έχει µικρότερη τάξη µεγέθους
(µικρότερο ρυθµό αύξησης) από την g (f < g), αν f = o(g).
3. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 3
(Β) Να υπολογίσετε την λύση των αναδροµικών σχέσεων:
n
n
T
n
TnT +
+
=
7
5
12
9
)()1(
4
2
18)()2( n
n
TnT +
=
2
3 2
3 4
5
5)()3( n
n
TnT +
=
2
3
5
25)()4( n
n
TnT +
=
Στη συνέχεια, να διαταχθούν οι λύσεις τους κατά αύξουσα τάξη µεγέθους.
Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση T(n) = aT(n/b) + f(n), όπου a≥1, b>1 είναι σταθερές, και
f(n) είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις:
log log
( ) ( ), ( )b ba a
(1) αν f n O n για κάποια σταθερά ε>0, τότε T(n) = nεεεε−−−−
= Θ= Θ= Θ= Θ
log log
( ) ( ), ( log )b ba a
(2) αν f n n τότε T(n) = n n= Θ Θ= Θ Θ= Θ Θ= Θ Θ
log
( ) ( ), ,
( ( )).
b a
0
0
(3) αν f n n για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n τέτοια
n
ώστε, για κάθε n n , af cf(n) για κάποια σταθερά c<1, τότε T(n) = f n
b
εεεε++++
= Ω= Ω= Ω= Ω
≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ
4. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 4
ΘΕΜΑ 2: (Μονάδες 10+5+5)
Υποθέστε ότι προσλαµβάνεστε ως διαχειριστής έργων (project manager) σε µια εταιρεία. Για κάθε έργο που σας
αναθέτει, η διοίκηση της εταιρείας θέλει να γνωρίζει τον αριθµό εργάσιµων ηµερών που απαιτούνται για την
ολοκλήρωση του ανατιθέµενου έργου.
Για να ικανοποιήσετε την απαίτηση αυτή, αναλύετε κάθε έργο σε υποέργα διάρκειας µίας εργάσιµης ηµέρας και
καθορίζετε τις αλληλοεξαρτήσεις τους (δηλ. ποιο υποέργο πρέπει να περιµένει τα αποτελέσµατα άλλων
υποέργων προκειµένου να εκτελεστεί). Υποέργα εξαρτώµενα από ήδη ολοκληρωµένα υποέργα µπορούν να
εκτελεστούν παράλληλα κατά την διάρκεια µιας µέρας. Κατόπιν, µοντελοποιείτε την εκτέλεση των υποέργων ως
ένα κατευθυνόµενο γράφηµα G = (V, E) στο οποίο κάθε κορυφή v αντιστοιχεί σε ένα υποέργο, και υπάρχει
κατευθυνόµενη ακµή (u,v) στο G αν το υποέργο v χρειάζεται τα αποτελέσµατα του υποέργου u προκειµένου να
εκτελεστεί. Η φύση των έργων είναι τέτοια, έτσι ώστε η προκύπτουσα µοντελοποίηση έχει τις εξής ιδιότητες:
(1) Το προκύπτον γράφηµα G είναι ακυκλικό, αφού δεν µπορεί να υπάρχει κυκλική αλληλεξάρτηση µεταξύ των
υποέργων. Αυτό σηµαίνει ότι οι κορυφές µπορούν να διαταχθούν τοπολογικά, δηλ. να αριθµηθούν µε τέτοιο
τρόπο v1, …, vn (υποθέτοντας ότι έχετε n υποέργα) έτσι ώστε για κάθε ακµή (vi, vj) ∈ E να ισχύει πάντοτε ότι i <
j.
(2) Κάθε κορυφή εκτός από την vn έχει τουλάχιστον µία εξερχόµενη ακµή και κάθε κορυφή εκτός από την v1 έχει
τουλάχιστον µία εισερχόµενη ακµή, δηλαδή, για κάθε κορυφή vi, µε i = 1, 2, ..., n – 1, υπάρχει τουλάχιστον µία
ακµή της µορφής (vi, vj) και για κάθε κορυφή vj, µε j = 2, 3, ..., n, υπάρχει τουλάχιστον µία ακµή της µορφής
(vk, vj).
Για να βρείτε τώρα τον αριθµό εργάσιµων ηµερών που απαιτούνται για την ολοκλήρωση του ανατιθέµενου
έργου αρκεί να υπολογίσετε το µήκος της µεγαλύτερης διαδροµής µεταξύ του πρώτου υποέργου (v1) και του
τελευταίου υποέργου (vn), και να προσθέσετε 1.
Με άλλα λόγια, καλείστε να επιλύσετε το ακόλουθο πρόβληµα: δεδοµένου ενός κατευθυνόµενου ακυκλικού
γραφήµατος µε κόστη ακµών ίσα µε 1, και στο οποίο οι κορυφές έχουν διαταχθεί τοπολογικά, κάθε κορυφή
εκτός της vn έχει βαθµό εξόδου τουλάχιστον 1 και κάθε κορυφή εκτός της v1 έχει βαθµό εισόδου τουλάχιστον 1,
βρείτε το µήκος της µεγαλύτερης διαδροµής από την κορυφή v1 στην κορυφή vn.
Θεωρήστε, για παράδειγµα, το παρακάτω κατευθυνόµενο ακυκλικό γράφηµα
όπου η µεγαλύτερη διαδροµή έχει µήκος 5 και αποτελείται από τις ακµές (v1, v2), (v2, v3), (v3, v4), (v4, v6) και (v6,
v7). Συνεπώς απαιτούνται 6 εργάσιµες µέρες, παρατηρώντας ότι η v5 µπορεί να γίνει παράλληλα µε τη v3.
(A) Σχεδιάστε έναν αλγόριθµο δυναµικού προγραµµατισµού ο οποίος, δεδοµένου ενός κατευθυνόµενου
ακυκλικού γραφήµατος µε κόστη ακµών ίσα µε 1 όπως παραπάνω, βρίσκει το µήκος της µεγαλύτερης
διαδροµής από την κορυφή v1 στην κορυφή vn (κόστος βέλτιστης λύσης). Η περιγραφή του αλγορίθµου µπορεί
να είναι σε άτυπη µορφή, αλλά πρέπει να περιλαµβάνει οπωσδήποτε την/τις αναδροµική/-κες σχέση/-εις που
διέπουν τον αλγόριθµο και συµπληρώνουν τον πίνακα δυναµικού προγραµµατισµού. ∆ώστε τον χρόνο
εκτέλεσης του αλγορίθµου σας, ο οποίος πρέπει να είναι πολυωνυµικός ως προς το n.
v1 v2 v3 v4 v5 v6 v7
5. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 5
(Β) Εκτελέστε τον αλγόριθµό σας στο παραπάνω παράδειγµα δίνοντας τις τιµές του πίνακα δυναµικού
προγραµµατισµού σε κάθε βήµα.
(Γ) Με βάση τον αλγόριθµο που σχεδιάσατε, προτείνετε (σε άτυπη µορφή) µια µέθοδο υπολογισµού της
µεγαλύτερης διαδροµής από την κορυφή v1 στην κορυφή vn και εκτελέστε την στο παραπάνω παράδειγµα.
Υπόδειξη: ακολουθήστε οπισθόδροµα τον πίνακα δυναµικού προγραµµατισµού – δηλ. από την τελευταία προς
την αρχική του θέση – επιλέγοντας κάθε φορά να συνεχίσετε προς τα πίσω σε εκείνη τη θέση (που
περιλαµβάνεται στο δεξιό µέλος της αναδροµικής σχέσης), η οποία καθόρισε το αποτέλεσµα της τρέχουσας
θέσης του πίνακα και σηµειώνοντας παράλληλα την κορυφή που ανήκει στη βέλτιστη λύση.
6. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 6
ΘΕΜΑ 3: (Μονάδες 10+10)
1. ∆ίδεται η κανονική έκφραση: 0*1 + 1*0
(A) ∆ώστε Μη Ντετερµινιστικό Πεπερασµένο Αυτόµατο (ΜΠΑ) της L
(Β) ∆ώστε το ισοδύναµο Ντετερµινιστικό Πεπερασµένο Αυτόµατο (ΝΠΑ) της L
7. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 7
2. Από τις παρακάτω γλώσσες η µία είναι κανονική και η άλλη δεν είναι κανονική. Για την µη
κανονική γλώσσα χρησιµοποιήστε το λήµµα της άντλησης για να αποδείξετε ότι δεν είναι
κανονική. Για την κανονική γλώσσα δώστε την αντίστοιχη κανονική έκφραση.
A = {04
1n
04
| n ≥ 0}
B = {x∈{0,1}* | o αριθµός των µηδενικών είναι µεγαλύτερος από τον αριθµό των άσσων}
Το Λήµµα Άντλησης για Κανονικές Γλώσσες:
Έστω µια άπειρη κανονική γλώσσα. Τότε υπάρχει ένας αριθµός (µήκος άντλησης) τέτοιος ώστε κάθε ∈ µε | | να
µπορεί να γραφεί στην µορφή όπου για τις συµβολοσειρές , και ισχύει:
| |
∈ για κάθε φυσικό
8. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 8
ΘΕΜΑ 4: (Μονάδες 5+5+5+5)
(Α) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L1 = {an
ban
| n ∈ } όπου είναι το σύνολο των φυσικών αριθµών
(B) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L2 = {ban
bm
| n < m}.
(Γ) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L3 = {wccwR
| w ∈ {a,b}*}
(∆) ∆ώστε µια γραµµατική χωρίς συµφραζόµενα που παράγει τη γλώσσα:
L4 = {ak+1
bk+2
an+3
bn+2
| n,k≥0}.
9. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 9
ΘΕΜΑ 5: (Μονάδες 10+10)
Να ταξινοµηθούν οι παρακάτω συναρτήσεις σε αύξουσα σειρά τάξης µεγέθους, καθώς το n τείνει στο άπειρο:
f1(n) = n2
log n + log2013
n3
f2(n) = 2n
+ n2
f3(n) = nlog n
+ n2
logn
f4(n) = n0.5
+ log0.5
2n
f5(n) = n2
log2 + 2log2
n
10. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 10
(Β) Εχουµε να επιλέξουµε ανάµεσα στους ακόλουθους τρεις αλγορίθµους Α, Β και Γ:
Ο αλγόριθµος A λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά οκτώ υποπροβλήµατα του µισού
µεγέθους καθένα, και συνδυάζοντας τις λύσεις τους σε γραµµικό χρόνο ως προς n.
Ο αλγόριθµος B λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά ένα υποπρόβληµα µεγέθους n–1
και, στην συνέχεια, συνάγει την τελική λύση σε γραµµικό χρόνο.
Ο αλγόριθµος Γ λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά εννιά υποπροβλήµατα µεγέθους n/3
και συνδυάζοντας τις λύσεις τους σε Ο(n2
) χρόνο.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις αλγορίθµους και ποιον από αυτούς θα
διαλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα;
Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση T(n) = aT(n/b) + f(n), όπου a≥1, b>1 είναι σταθερές, και
f(n) είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις:
log log
( ) ( ), ( )b ba a
(1) αν f n O n για κάποια σταθερά ε>0, τότε T(n) = nεεεε−−−−
= Θ= Θ= Θ= Θ
log log
( ) ( ), ( log )b ba a
(2) αν f n n τότε T(n) = n n= Θ Θ= Θ Θ= Θ Θ= Θ Θ
log
( ) ( ), ,
( ( )).
b a
0
0
(3) αν f n n για κάποια σταθερά ε>0, και αν υπάρχει σταθερά n τέτοια
n
ώστε, για κάθε n n , af cf(n) για κάποια σταθερά c<1, τότε T(n) = f n
b
εεεε++++
= Ω= Ω= Ω= Ω
≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ≥ ≤ Θ
11. ∆ηµήτρης Ψούνης – ΠΛΗ30, Επαναληπτικό ∆ιαγώνισµα 2 11
ΘΕΜΑ 6: (Μονάδες 8+8+4)
∆ίδονται τα ντετερµινιστικά πεπερασµένα αυτόµατα Μ1 και Μ2 που αναγνωρίζουν τις γλώσσες
L1 και L2 αντίστοιχα
Μ1 Μ2
(Α) Κατασκευάστε µε τον αλγόριθµο κλειστότητας της τοµής το ΝΠΑ της τοµής των δύο
αυτοµάτων.
(Β) Απλοποιήστε το ΝΠΑ που προκύπτει.
(Γ) ∆ώστε τις κανονικές εκφράσεις των γλωσσών L1,L2 και L1∩L2