SlideShare a Scribd company logo
ΠΛΗ30
ΕΝΟΤΗΤΑ 2: ΣΧΕ∆ΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ
Μάθηµα 2.1:
∆ιαίρει και Βασίλευε∆ιαίρει και Βασίλευε
∆ηµήτρης Ψούνης
ΠΕΡΙΕΧΟΜΕΝΑ
Α. Σκοπός του Μαθήµατος
1. ∆ιαίρει και Βασίλευε
1. Ο αλγόριθµος MergeSort(Ταξινόµησης µε Συγχώνευση)
2. Ο αλγόριθµος QuickSort (Γρήγορη Ταξινόµηση)
3. Ο αλγόριθµος QuickSelect (Γρήγορη Επιλογή)
4. Ο αλγόριθµος Strassen για τον πολ/µο πινάκων
Β.Ασκήσεις
2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Β.Ασκήσεις
1. Εφαρµογές
Α. Σκοπός του Μαθήµατος
Οι στόχοι του µαθήµατος είναι:
Επίπεδο Α
(-)
Επίπεδο Β
Η τεχνική σχεδίασης αλγόριθµων ∆ιαίρει και Βασίλευε
3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Η τεχνική σχεδίασης αλγόριθµων ∆ιαίρει και Βασίλευε
Επίπεδο Γ
Ο αλγόριθµος Γρήγορης Ταξινόµησης (QuickSort)
Ο αλγόριθµος Επιλογής του k-µικρότερου αριθµού σε έναν πίνακα
Ο αλγόριθµος Πολλαπλασιασµού Πινάκων Strassen
B. Θεωρία
Τεχνικές Σχεδίασης Αλγορίθµων
4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Στην 2η ενότητα του µαθήµατος ασχολούµαστε µε τεχνικές που έχουν
αναπτυχθεί, ως γενικές µεθοδολογίες για την κατασκευή ενός αλγορίθµου:
Η τεχνική ∆ιαίρει και Βασίλευε (Μάθηµα 2.1)
Η τεχνική του ∆υναµικού Προγραµµατισµού (Μάθηµα 2.2)
Η κατασκευή των Άπληστων Αλγόριθµων (Μάθηµα 2.3)
Υπάρχουν ακόµη δεκάδες τεχνικές κατασκευής αλγορίθµων που είναι εκτός
ύλης.
B. Θεωρία
1. ∆ιαίρει και Βασίλευε
5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
∆ΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ
Ένας αλγόριθµος διαίρει και βασίλευε συνίσταται από τα εξής βήµατα:
1. ΒΗΜΑ ∆ΙΑΙΡΕΣΗΣ: ∆ιάσπαση του αρχικού προβλήµατος σε µικρότερα
επιµέρους υποπροβλήµατα.
2. ΒΗΜΑ ΕΠΙΛΥΣΗΣ ΕΠΙΜΕΡΟΥΣ ΣΤΙΓΜΙΟΤΥΠΩΝ: Επίλυση των επιµέρους
υποπροβληµάτων (µε αναδροµικές κλήσεις του ίδιου αλγόριθµου)
3. ΒΗΜΑ ΣΥΝΘΕΣΗΣ ΛΥΣΕΩΝ: Υπολογισµός της λύσης του αρχικού
προβλήµατος, από τις επιµέρους λύσεις των υποπροβληµάτων.
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
1. Ο αλγόριθµος ταξινόµησης MergeSort
6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Ο αλγόριθµος ταξινόµησης MergeSort (Ο αλγόριθµος Ταξινόµησης µε
Συγχώνευση) είναι εφαρµογή του ∆ιαίρει και Βασίλευε:
1. ΒΗΜΑ ∆ΙΑΙΡΕΣΗΣ: Ο πίνακας χωρίζεται σε δύο µέρη:
τον πίνακα και τον πίνακα
],...,[ 1 naaA =
],...,[ 2/11 naaA = ],...,[ 12/2 nn aaA +=
Η πολυπλοκότητα του αλγορίθµου είναι:
2. ΒΗΜΑ ΕΠΙΛΥΣΗΣ ΕΠΙΜΕΡΟΥΣ ΣΤΙΓΜΙΟΤΥΠΩΝ: Η επίλυση των δύο
υποπροβληµάτων που προκύπτουν γίνονται µε αναδροµικές κλήσεις του
MergeSort.
3. ΒΗΜΑ ΣΥΝΘΕΣΗΣ ΛΥΣΕΩΝ: Η συγχώνευση των δύο πινάκων γίνεται µε την
διαδικασία Merge (βλέπε Μάθηµα 1.4) σε γραµµικό χρόνο
2/11 n 12/2 nn +
)log(...)(
2
2)( nnn
n
TnT Θ==Θ+





=
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
2. Ο αλγόριθµος ταξινόµησης QuickSort
7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Ο αλγόριθµος ταξινόµησης QuickSort (Ο αλγόριθµος Γρήγορης
Ταξινόµησης) είναι επίσης εφαρµογή του ∆ιαίρει και Βασίλευε:
1. ΒΗΜΑ ∆ΙΑΙΡΕΣΗΣ: Ο πίνακας χωρίζεται σε δύο µέρη:
τον πίνακα Α1 που περιεχει όλα τα στοιχεία που είναι µικρότερα από το α1 και
],...,[ 1 naaA =
1 1
τον Α2 που περιέχει όλα τα στοιχεία που είναι µεγαλύτερα από το α1
2. ΒΗΜΑ ΕΠΙΛΥΣΗΣ ΕΠΙΜΕΡΟΥΣ ΣΤΙΓΜΙΟΤΥΠΩΝ: Η επίλυση των δύο
υποπροβληµάτων (ταξινόµηση των υποπινάκων Α1 και Α2) που προκύπτουν
γίνονται µε αναδροµικές κλήσεις του QuickSort.
3. ΒΗΜΑ ΣΥΝΘΕΣΗΣ ΛΥΣΕΩΝ: Ο πίνακας A = [A1]α1[A2]
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
2. Ο αλγόριθµος ταξινόµησης QuickSort (1.Ψευδοκώδικας)
8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Παρακάτω φαίνεται µια υλοποίηση της διαδικασίας QuickSort:
procedure QuickSort(A,start,finish)
if start<finish then
pos=Partition(A,start,finish)
QuickSort(A,start,pos-1)
QuickSort(A,pos+1,finish)
end ifend if
end procedure
procedure Partition(A,start,finish)
odigo=A[start]
i=start; j=finish
for (k=start+1 to finish)
if (A[k]>odigo)
B[j]=A[k]; j=j-1
else
B[i]=A[k]; i=i+1
end for
B[i]=odigo; Α=Β
return pos;
end procedure
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
2. Ο αλγόριθµος ταξινόµησης QuickSort (2.Παράδειγµα Εκτέλεσης)
9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Ας τρέξουµε ένα παράδειγµα εκτέλεσης της Partition:
B.1
B.2
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7k i j
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7 4k i j
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
B.3
B.4
B.5
B.6
B.7
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7 4 11k i j
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7 4 18 11k i j
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7 4 20 18 11k i j
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7 4 6 20 18 11k i j
1 2 3 4 5 6 7 8
9 7 4 11 18 20 6 1
1 2 3 4 5 6 7 8
7 4 6 1 20 18 11k i j
1 2 3 4 5 6 7 8
7 4 6 1 9 20 18 11
Ο αλγόριθµος ταξινόµησης QuickSort (2.Παράδειγµα Εκτέλεσης)
10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
7 4 11 9 6 1 14 5 2 3 10 13 18 19 22 20
1 2 3 4 5 6 7 8 9 10 11 12
7 4 11 9 6 1 14 5 2 3 10 13
4 6 1 5 2 3 7 13 10 14 9 11
14 15 16
19 22 20
19 20 22
1 2 3 4 5 6
4 6 1 5 2 3
1 2 3 4 5 6
8 9 10 11 12
13 10 14 9 11
10 9 11 13 14
15 16
20 22
20 221 2 3 4 5 6 10 9 11 13 14 20 22
16
22
22
1 2 3
1 2 3
1 3 2
5 6
5 6
5 6
8 9 10
10 9 11
9 10 11
12
14
14
6
6
6
2 3
3 2
2 3
2
2
2
8
9
9
10
11
11
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
2. Ο αλγόριθµος ταξινόµησης QuickSort (3. Ανάλυση)
11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Η διαδικασία του Partition έχει πολυπλοκότητα Θ(n)
Ανάλυση Καλύτερης Περίπτωσης:
Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η
αναδροµή:
)log(...)(2)(
.
nnn
n
TnT
ί
Θ==Θ+



=
αςκυριαρχθ
Ανάλυση Χειρότερης Περίπτωσης:
Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η
αναδροµή:
Στην µέση περίπτωση?
)log(...)(
2
2)( nnn
n
TnT Θ==Θ+





=
( ) )(...)(1)( 2
.
nnnTnT Θ==Θ+−=
επαναληψηςµεθ
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
2. Ο αλγόριθµος ταξινόµησης QuickSort (3. Ανάλυση)
12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Ανάλυση Μέσης Περίπτωσης:
Αν θεωρήσουµε ότι είναι ισοπίθανα τα δυνατά σπασίµατα του πίνακα σε
δύο κοµµάτια τότε κατά µέσο όρο οι πράξεις του αλγορίθµου θα δίνονται
από την αναδροµική σχέση:
[ ] [ ] [ ]nTnTnnTnnTT
nT
)()0()1(...)()2()1()()1()0(
)(
Θ++−++Θ+−Τ++Θ+−+
=
Ή πιο απλά:
Και τελικά
Για την οποία αποδεικνύεται ότι ισχύει T(n)=Θ(nlogn)
[ ] [ ] [ ]
n
nT )( =
[ ]
n
nnnTTT
nT
)()(...)1()0(2
)(
Θ++++
=
[ ] )(
)(...)1()0(2
)( n
n
nTTT
nT Θ+
+++
=
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect
13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
ΠΡΟΒΛΗΜΑ: ∆ίνεται ένας αταξινόµητος πίνακας µε n στοιχεία. Ζητείται να
βρεθεί το k-µικρότερο στοιχείο
Παράδειγµα στιγµιοτύπου:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
Το 5-µικρότερο στοιχείο είναι το 5
Το 10-µικρότερο στοιχείο είναι το 11
Αλγόριθµοι:
Προφανής Αλγόριθµος: Ταξινόµησε τον πίνακα (µε MergeSort) και
επέλεξε το k-ο µικρότερο στοιχείο. Πολυπλοκότητα: Θ(nlogn)
QuickSelect: Εφαρµογή ∆ιαίρει και Βασίλευε: Πολ/τα: O(n)
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (Ιδέα)
14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Εκµεταλλευόµαστε τo σπάσιµο του πίνακα που κάνει η διαδικασία partition.
Θα χρειάζεται κάθε φορά να ψάχνουµε έναν από τους δύο υποπίνακες που
προκύπτουν µε κατάλληλη τροποποίηση του k.
Έτσι αφού η διαδικασία Partition σπάει τον πίνακα ως εξής [A1] apos [A2]
Αν k=pos τότε βρήκαµε το στοιχείο είναι το apos.
Αν k<pos τότε ψαχνουµε στον πίνακα A1 για το k-µικρότερο στοιχείο
Αν k>pos τότε ψάχνουµε στον πίνακα Α2 για το (k-n1-1)-µικρότερο
στοιχείο (όπου n1 το πλήθος των στοιχείων του Α1)
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (1.Ψευδοκώδικας)
15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Η υλοποιηση σε ψευδογλώσσα της παραπάνω διαδικασίας είναι η
ακόλουθη:
procedure QuickSelect(A,start,finish,k)
if start>finish then
return 0
elseelse
pos=Partition(A,start,finish)
if k=pos then
return A[pos]
else if k<pos then
return QuickSelect(A,start,pos-1,k)
else if k>pos then
return QuickSelect(A,pos+1,finish,k-pos)
end if
end if
end procedure
3. Ο αλγόριθµος επιλογης QuickSelect(2.Παράδειγµα Εκτέλεσης για k=12)
16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
7 4 11 9 6 1 14 5 2 3 10 13 18 19 22 20
1 2 3 4 5 6 7 8 9 10 11 12
7 4 11 9 6 1 14 5 2 3 10 13
4 6 1 5 2 3 7 13 10 14 9 11
8 9 10 11 12
13 10 14 9 11
10 9 11 13 1410 9 11 13 14
12
14
14
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (3. Ανάλυση)
17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Η διαδικασία του Partition έχει πολυπλοκότητα Θ(n)
Ανάλυση Καλύτερης Περίπτωσης:
Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η
αναδροµή:
)(...)()(
.
nn
n
TnT
ί
Θ==Θ+



=
αςκυριαρχθ
Ανάλυση Χειρότερης Περίπτωσης:
Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η
αναδροµή:
Χρειαζόµαστε ένα πιο έξυπνο σπάσιµο σπάσιµο του πίνακα ώστε να
επιτυγχάνεται ένα σπάσιµο του πίνακα περίπου στην µέση.
)(...)(
2
)( nn
n
TnT Θ==Θ+





=
( ) )(...)(1)( 2
.
nnnTnT Θ==Θ+−=
επαναληψηςµεθ
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων)
18∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Προτείνεται η διαδικασία των πεντάδων η οποία:
Χωρίζει τα στοιχεία σε 5-αδες
Από κάθε 5-άδα επιλέγουµε το µεσαίο στοιχειο.
Επαναλαµβάνουµε αναδροµικά για τα µεσαία στοιχεία.
Επιλέγουµε δηλαδή το µεσαίο των µεσαίων (των µεσαίων…) από κάθεΕπιλέγουµε δηλαδή το µεσαίο των µεσαίων (των µεσαίων…) από κάθε
πεντάδα.
Π.χ.:
5-άδες
Νεος Πίνακας αναδροµική εκτέλεση
Επιστρέφεται το 9 (επιλογή οδηγού στοιχείου)
16
13
1 2 3 4 5
18 7 4 11 9
6 7 8 9 10
20 6 1 22 19
11 12 13 14 15
14 5 2 3 10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13
1 2 3 4
9 19 5 13
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων)
19∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Η επιλογή του µεσαίου στοιχείου από 5 στοιχεία θέλει σταθερό χρόνο:
Άρα αν ο πίνακας έχει n στοιχεία και θέλουµε συνολικά χρόνο T(n)
Επιλέγουµε n/5 φορές το µεσαίο (µε χρόνο Θ(1)). Το βήµα αυτό θέλει
συνολικό χρόνο
Έπειτα κάνουµε µια αναδροµική κλήση για n/5 δεδοµένα.
)()1(
5
n
n
Θ=Θ
Έπειτα κάνουµε µια αναδροµική κλήση για n/5 δεδοµένα.
Συνεπώς η πολυπλοκότητα της επιλογής του στοιχείου µε την διαδικασία
των 5-άδων προκύπτει από την επίλυση της αναδροµικής σχέσης:
Αποδεικνύεται ότι είναι πολύ καλό σπάσιµο, διότι σε κάθε βήµα θα
απορρίπτονται τουλάχιστον 3n/10 στοιχεία (Η απόδειξη παραλείπεται).
∆ηλαδή µε άλλα λόγια η αναδροµή της QuickSelect θα γίνει για το πολύ
7n/10 στοιχεία.
)(...)(
5
)(
.
nn
n
TnT
ί
Θ==Θ+





=
αςκυριαρχθ
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων)
20∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Ενσωµατώνουµε την διαδικασία επιλογής οδηγού στοιχείου στον
προηγούµενο κώδικα:
procedure QuickSelect(A,start,finish,k)
if start=finish then
return A[start]
elseelse
Επιλογή στοιχείου m µε την διαδικασία των 5-άδων.
swap(A[m],A[start])
pos=Partition(A,start,finish)
if k=pos then
return A[pos]
else if k<pos then
return QuickSelect(A,start,pos-1,k)
else if k>pos then
return QuickSelect(A,pos+1,finish,k-pos)
end if
end if
end procedure
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων)
21∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
Η αναδροµική σχέση που περιγράφει την τελική πολυπλοκότητα του
αλγορίθµου είναι:
Για να λύσουµε ένα πρόβληµα µεγέθους n:
Οι πεντάδες θέλουν χρόνο Θ(n)Οι πεντάδες θέλουν χρόνο Θ(n)
Η διαδικασία Partition θέλει χρόνο Θ(n)
Η αναδροµική κλήση θα γίνει για ένα πρόβληµα µεγέθους το πολύ
7n/10, συνεπώς ο χρόνος που απαιτείται είναι Τ(7n/10)
Συνεπώς:
Αυτή είναι και η χειρότερη περίπτωση, άρα τελικά έχουµε T(n)=O(n)
)(...)(
10
7
)(
.
nn
n
TnT
ί
Θ==Θ+





=
αςκυριαρχθ
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen
22∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
ΠΡΟΒΛΗΜΑ: Να υπολογιστεί το γινόµενο δύο nxn πινάκων Α και Β.






++
++
=





×





=
=×=
2222122121221121
2212121121121111
2221
1211
2221
1211
babababa
babababa
bb
bb
aa
aa
C
BAC
Αλγόριθµοι:
Εφαρµογή του γνωστού αλγορίθµου από ΠΛΗ12. Η πολυπλοκότητα του
είναι Θ(n2).
Αλγόριθµος του Strassen: Εφαρµογή του ∆ιαίρει και Βασίλευε:
Πολυπλοκότητα: Θ(n2,81)
Ακόµη καλύτεροι αλγόριθµοι ∆ιαίρει και Βασίλευε. Η καλύτερη
πολυπλοκότητα µέχρι στιγµής: Θ(n2,38)
 ++ 222212212122112122212221 bababababbaa
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen
O γνωστός αλγόριθµος πολλαπλασιασµού διδιάστατων πινάκων µπορεί να
υλοποιηθεί σε ψευδογλώσσα ως εξής:
23∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
procedure MultMatrix(A,B)
for (i=1 to n)
for (j=1 to n)
C[i][j]=0;
Η πολυπλοκότητα είναι:
C[i][j]=0;
for (k=1 to n)
C[i][j]=C[i][j]+A[i][k]*B[k][j];
end for
end for
end for
return C
end procedure
( ) )(...)1()1()( 3
nnnnnT Θ==Θ⋅+Θ⋅⋅=
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen
Strassen ‘70: Εφαρµογή του διαίρει και βασίλευε (θεωρώ ότι n άρτιος)
Οι πίνακες Α και Β σπάνε στους πίνακες:
24∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε






= 1211
AA
AA
A 





= 1211
BB
BB
B
Όπου κάθε ένας από τους υποπίνακες έχει µέγεθος n/2 x n/2
O Strassen προσπάθησε να υπολογίσει το γινόµενο C=AxB
κατασκευάζοντας τον πίνακα:



 2221 AA 



=
2221 BB
B






=
2221
1211
CC
CC
C
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen
1η προσέγγιση: Ισχύει ότι:
25∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
2222122122
2122112121
2212121112
2112111111
BABAC
BABAC
BABAC
BABAC
+=
+=
+=
+=
Αντί να κάνουµε τον nxn πολ/µο των πινάκων.
∆ΙΑΣΠΑΣΗ: Γίνονται 8 πολ/µοι n/2 x n/2 πινάκων
ΕΠΙΛΥΣΗ: Αναδροµικά µε τον ίδιο τρόπο.
ΣΥΝΘΕΣΗ ΛΥΣΕΩΝ: 4 προσθέσεις nx2 x nx2 πινάκων
Άρα για να λύσω ένα πρόβληµα µεγέθους n, λύνω 8 υποπροβλήµατα
µεγέθους n/2 και συνδυάζω τις λύσεις σε χρόνο Θ(n2)
Η πολυπλοκότητα είναι:
Καµία βελτίωση σε σχέση µε τον
προφανή αλγόριθµο
2222122122 BABAC +=
)(...)(
2
8)( 32
nn
n
TnT
remMasterTheo
Θ==Θ+





=
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen
1η προσέγγιση: Ισχύει ότι:
26∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
2222122122
2122112121
2212121112
2112111111
BABAC
BABAC
BABAC
BABAC
+=
+=
+=
+=
Αντί να κάνουµε τον nxn πολ/µο των πινάκων.
∆ΙΑΣΠΑΣΗ: Γίνονται 8 πολ/µοι n/2 x n/2 πινάκων
ΕΠΙΛΥΣΗ: Αναδροµικά µε τον ίδιο τρόπο.
ΣΥΝΘΕΣΗ ΛΥΣΕΩΝ: 4 προσθέσεις nx2 x nx2 πινάκων
Άρα για να λύσω ένα πρόβληµα µεγέθους n, λύνω 8 υποπροβλήµατα
µεγέθους n/2 και συνδυάζω τις λύσεις σε χρόνο Θ(n2)
Η πολυπλοκότητα είναι:
Καµία βελτίωση σε σχέση µε τον
προφανή αλγόριθµο
2222122122 BABAC +=
)(...)(
2
8)( 32
nn
n
TnT
remMasterTheo
Θ==Θ+





=
Β. Θεωρία
1. ∆ιαίρει και Βασίλευε
4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen
2η προσέγγιση (Strassen): Βρήκε ότι µπορεί να παρει το ίδιο αποτέλεσµα µε τις
εξής πράξεις:
27∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
))((
))((
21123
11112
1112221122211
BBAAM
BAM
BAM
BBBAAAM
−−=
=
=
+−−+=
742121
652112
3211
MMMMC
MMMMC
MMMMC
MMC
+++=
−++=
+++=
+=
)(
)(
))((
22221121126
111222215
BBBBAM
BAAAAM
BBAAM
−−+=
−+−=
−+=
Αντί να κάνουµε τον nxn πολ/µο των πινάκων.
∆ΙΑΣΠΑΣΗ: Γίνονται 7 πολ/µοι n/2 x n/2 πινάκων
ΕΠΙΛΥΣΗ: Αναδροµικά µε τον ίδιο τρόπο.
ΣΥΝΘΕΣΗ ΛΥΣΕΩΝ: 24 προσθαφαιρέσεις nx2 x nx2 πινάκων
Άρα για να λύσω ένα πρόβληµα µεγέθους n, λύνω 7 υποπροβλήµατα µεγέθους
n/2 και συνδυάζω τις λύσεις σε χρόνο Θ(n2)
Η πολυπλοκότητα είναι:
Υπάρχουν και ακόµη καλύτερες διασπάσεις που φτάνουν την πολυπλοκότητα
µέχρι και Θ(n2,37). Ωστόσο ισχύει ότι κάθε αλγόριθµος πολ/µου πινάκων θα έχει
πολυπλοκότητα Ω(n2)
))(( 122221114 BBAAM −−=
)(...)(
2
7)( 81,22
nn
n
TnT
remMasterTheo
Θ==Θ+





=
542122 MMMMC +++=)( 21122211227 BBBBAM −−+=
Γ. Ασκήσεις
Εφαρµογή 1
Ας υποθέσουµε ότι έχουµε να επιλέξουµε ανάµεσα στους ακόλουθους τρεις
αλγόριθµους:
I. Ο αλγόριθµος A λύνει προβλήµατα µεγέθους n µε το να επιλύει
αναδροµικά οκτώ υποπροβλήµατα του µισού µεγέθους το καθένα, και
συνδυάζοντας τις λύσεις τους σε γραµµικό χρόνο ως προς n.
28∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
II. Ο αλγόριθµος B λύνει προβλήµατα µεγέθους n µε το να επιλύει
αναδροµικά ένα υποπρόβληµα µεγέθους n-1 και, στην συνέχεια,
συνάγει την τελική λύση σε χρόνο O(n).
III. Ο αλγόριθµος Γ λύνει προβλήµατα µεγέθους n µε το να επιλύει
αναδροµικά εννιά υποπροβλήµατα µεγέθους n/3 και συνδυάζοντας τις
λύσεις τους σε Ω(n2) χρόνο.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις
αλγορίθµους και ποιον από αυτούς θα διαλέγατε µε βάση την ασυµπτωτική
του πολυπλοκότητα?
Γ. Ασκήσεις
Εφαρµογή 2
Ας υποθέσουµε ότι έχουµε να επιλέξουµε ανάµεσα στους ακόλουθους τρεις
αλγόριθµους:
I. Ο αλγόριθµος A λύνει προβλήµατα µεγέθους n µε το να επιλύει
αναδροµικά ένα υποπρόβληµα, µεγέθους 1/4 του αρχικού
προβλήµατος, ενώ ο χρόνος που απαιτείται για να βρεθεί το
πρόβληµα αυτό (µεγέθους n/4) από το αρχικό (µεγέθους n) είναι
29∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε
πρόβληµα αυτό (µεγέθους n/4) από το αρχικό (µεγέθους n) είναι
γραµµικός ως προς n.
II. Ο αλγόριθµος B λύνει προβλήµατα µεγέθους n µε το να επιλύει
αναδροµικά ένα υποπρόβληµα µεγέθους n/2 και, στην συνέχεια,
συνάγει την τελική λύση σε Ω(n3).
III. Ο αλγόριθµος Γ λύνει προβλήµατα µεγέθους n µε το να επιλύει
αναδροµικά τέσσερα υποπροβλήµατα µεγέθους n/2 και συνδυάζοντας
τις λύσεις τους σε O(n2) χρόνο.
Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις
αλγορίθµους και ποιον από αυτούς θα διαλέγατε µε βάση την ασυµπτωτική
του πολυπλοκότητα?

More Related Content

What's hot

ΠΛΗ30 ΜΑΘΗΜΑ 6.1
ΠΛΗ30 ΜΑΘΗΜΑ 6.1ΠΛΗ30 ΜΑΘΗΜΑ 6.1
ΠΛΗ30 ΜΑΘΗΜΑ 6.1
Dimitris Psounis
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis
 
ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5
Dimitris Psounis
 
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
Dimitris Psounis
 
ΠΛΗ10 ΤΕΣΤ 2
ΠΛΗ10 ΤΕΣΤ 2ΠΛΗ10 ΤΕΣΤ 2
ΠΛΗ10 ΤΕΣΤ 2
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 3.2
ΠΛΗ30 ΜΑΘΗΜΑ 3.2ΠΛΗ30 ΜΑΘΗΜΑ 3.2
ΠΛΗ30 ΜΑΘΗΜΑ 3.2
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 3.4
ΠΛΗ30 ΜΑΘΗΜΑ 3.4ΠΛΗ30 ΜΑΘΗΜΑ 3.4
ΠΛΗ30 ΜΑΘΗΜΑ 3.4
Dimitris Psounis
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 3.3
ΠΛΗ30 ΜΑΘΗΜΑ 3.3ΠΛΗ30 ΜΑΘΗΜΑ 3.3
ΠΛΗ30 ΜΑΘΗΜΑ 3.3
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 0.2
ΠΛΗ20 ΜΑΘΗΜΑ 0.2ΠΛΗ20 ΜΑΘΗΜΑ 0.2
ΠΛΗ20 ΜΑΘΗΜΑ 0.2
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.7
ΠΛΗ20 ΜΑΘΗΜΑ 3.7ΠΛΗ20 ΜΑΘΗΜΑ 3.7
ΠΛΗ20 ΜΑΘΗΜΑ 3.7
Dimitris Psounis
 
ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
Dimitris Psounis
 
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 0.4
ΠΛΗ20 ΜΑΘΗΜΑ 0.4ΠΛΗ20 ΜΑΘΗΜΑ 0.4
ΠΛΗ20 ΜΑΘΗΜΑ 0.4
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 5.1
ΠΛΗ20 ΜΑΘΗΜΑ 5.1ΠΛΗ20 ΜΑΘΗΜΑ 5.1
ΠΛΗ20 ΜΑΘΗΜΑ 5.1
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 1.1
ΠΛΗ20 ΜΑΘΗΜΑ 1.1ΠΛΗ20 ΜΑΘΗΜΑ 1.1
ΠΛΗ20 ΜΑΘΗΜΑ 1.1
Dimitris Psounis
 
ΠΛΗ20 ΜΑΘΗΜΑ 6.2
ΠΛΗ20 ΜΑΘΗΜΑ 6.2ΠΛΗ20 ΜΑΘΗΜΑ 6.2
ΠΛΗ20 ΜΑΘΗΜΑ 6.2
Dimitris Psounis
 

What's hot (20)

ΠΛΗ30 ΜΑΘΗΜΑ 6.1
ΠΛΗ30 ΜΑΘΗΜΑ 6.1ΠΛΗ30 ΜΑΘΗΜΑ 6.1
ΠΛΗ30 ΜΑΘΗΜΑ 6.1
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5
 
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
ΠΛΗ30.ΚΑΡΤΑ - ΑΝΑΛΥΣΗ ΔΙΑΔΙΚΑΣΤΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ
 
ΠΛΗ10 ΤΕΣΤ 2
ΠΛΗ10 ΤΕΣΤ 2ΠΛΗ10 ΤΕΣΤ 2
ΠΛΗ10 ΤΕΣΤ 2
 
ΠΛΗ30 ΜΑΘΗΜΑ 3.2
ΠΛΗ30 ΜΑΘΗΜΑ 3.2ΠΛΗ30 ΜΑΘΗΜΑ 3.2
ΠΛΗ30 ΜΑΘΗΜΑ 3.2
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4in1)
 
ΠΛΗ30 ΜΑΘΗΜΑ 3.4
ΠΛΗ30 ΜΑΘΗΜΑ 3.4ΠΛΗ30 ΜΑΘΗΜΑ 3.4
ΠΛΗ30 ΜΑΘΗΜΑ 3.4
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2ΠΛΗ31 ΜΑΘΗΜΑ 1.2
ΠΛΗ31 ΜΑΘΗΜΑ 1.2
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
ΠΛΗ30 ΜΑΘΗΜΑ 3.3
ΠΛΗ30 ΜΑΘΗΜΑ 3.3ΠΛΗ30 ΜΑΘΗΜΑ 3.3
ΠΛΗ30 ΜΑΘΗΜΑ 3.3
 
ΠΛΗ20 ΜΑΘΗΜΑ 0.2
ΠΛΗ20 ΜΑΘΗΜΑ 0.2ΠΛΗ20 ΜΑΘΗΜΑ 0.2
ΠΛΗ20 ΜΑΘΗΜΑ 0.2
 
ΠΛΗ20 ΜΑΘΗΜΑ 3.7
ΠΛΗ20 ΜΑΘΗΜΑ 3.7ΠΛΗ20 ΜΑΘΗΜΑ 3.7
ΠΛΗ20 ΜΑΘΗΜΑ 3.7
 
ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
ΠΛΗ30 ΤΥΠΟΛΟΓΙΟ ΕΝΟΤΗΤΑΣ 2
 
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 1
 
ΠΛΗ20 ΜΑΘΗΜΑ 0.4
ΠΛΗ20 ΜΑΘΗΜΑ 0.4ΠΛΗ20 ΜΑΘΗΜΑ 0.4
ΠΛΗ20 ΜΑΘΗΜΑ 0.4
 
ΠΛΗ20 ΜΑΘΗΜΑ 5.1
ΠΛΗ20 ΜΑΘΗΜΑ 5.1ΠΛΗ20 ΜΑΘΗΜΑ 5.1
ΠΛΗ20 ΜΑΘΗΜΑ 5.1
 
ΠΛΗ20 ΜΑΘΗΜΑ 1.1
ΠΛΗ20 ΜΑΘΗΜΑ 1.1ΠΛΗ20 ΜΑΘΗΜΑ 1.1
ΠΛΗ20 ΜΑΘΗΜΑ 1.1
 
ΠΛΗ20 ΜΑΘΗΜΑ 6.2
ΠΛΗ20 ΜΑΘΗΜΑ 6.2ΠΛΗ20 ΜΑΘΗΜΑ 6.2
ΠΛΗ20 ΜΑΘΗΜΑ 6.2
 

Viewers also liked

ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ 1.5
ΠΛΗ30 ΚΑΡΤΑ 1.5ΠΛΗ30 ΚΑΡΤΑ 1.5
ΠΛΗ30 ΚΑΡΤΑ 1.5
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
Dimitris Psounis
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
Dimitris Psounis
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
Dimitris Psounis
 

Viewers also liked (19)

ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.4 (4in1)
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
 
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.4 (4sl)
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3
ΠΛΗ30 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.3
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ
ΠΛΗ30 ΜΑΘΗΜΑ 1.6 ΚΑΡΤΑ
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
ΠΛΗ30 ΜΑΘΗΜΑ 1.1 (4sl)
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.5 (4in1)
 
ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.5 (4sl)
 
ΠΛΗ30 ΚΑΡΤΑ 1.5
ΠΛΗ30 ΚΑΡΤΑ 1.5ΠΛΗ30 ΚΑΡΤΑ 1.5
ΠΛΗ30 ΚΑΡΤΑ 1.5
 
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
ΠΛΗ30 ΚΑΡΤΑ 1.3 (4sl)
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.3
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
ΠΛΗ30 ΜΑΘΗΜΑ 1.3 (4in1)
 

Similar to ΠΛΗ30 ΜΑΘΗΜΑ 2.1

Numerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_ToolsNumerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_ToolsSophia Tsiopou
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.2
ΠΛΗ10 ΜΑΘΗΜΑ 1.2ΠΛΗ10 ΜΑΘΗΜΑ 1.2
ΠΛΗ10 ΜΑΘΗΜΑ 1.2
Dimitris Psounis
 
Τεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακών
Τεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακώνΤεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακών
Τεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακών
Theodoros Leftheroudis
 
Απαλοιφή του Γκάους
Απαλοιφή του ΓκάουςΑπαλοιφή του Γκάους
Απαλοιφή του Γκάους
Manolis Vavalis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
Dimitris Psounis
 

Similar to ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (8)

Numerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_ToolsNumerical_Methods_and_Computational_Tools
Numerical_Methods_and_Computational_Tools
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
 
ΠΛΗ10 ΜΑΘΗΜΑ 1.2
ΠΛΗ10 ΜΑΘΗΜΑ 1.2ΠΛΗ10 ΜΑΘΗΜΑ 1.2
ΠΛΗ10 ΜΑΘΗΜΑ 1.2
 
Τεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακών
Τεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακώνΤεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακών
Τεστ προσομοίωσης πανελλαδικών 2016 συστημάτων ψηφιακών
 
Απαλοιφή του Γκάους
Απαλοιφή του ΓκάουςΑπαλοιφή του Γκάους
Απαλοιφή του Γκάους
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
 
ΠΛΗ31 ΜΑΘΗΜΑ 1.1
ΠΛΗ31 ΜΑΘΗΜΑ 1.1ΠΛΗ31 ΜΑΘΗΜΑ 1.1
ΠΛΗ31 ΜΑΘΗΜΑ 1.1
 
ΠΛΗ31 ΤΕΣΤ 18
ΠΛΗ31 ΤΕΣΤ 18ΠΛΗ31 ΤΕΣΤ 18
ΠΛΗ31 ΤΕΣΤ 18
 

More from Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Dimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
Dimitris Psounis
 

More from Dimitris Psounis (20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
 

Recently uploaded

Beige Aesthetic Neutral Thesis Defense Presentation (1).pdf
Beige Aesthetic Neutral Thesis Defense Presentation (1).pdfBeige Aesthetic Neutral Thesis Defense Presentation (1).pdf
Beige Aesthetic Neutral Thesis Defense Presentation (1).pdf
oureilidouan
 
Green Minimalist Case Studies Presentation.pdf
Green Minimalist Case Studies Presentation.pdfGreen Minimalist Case Studies Presentation.pdf
Green Minimalist Case Studies Presentation.pdf
oureilidouan
 
How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...
How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...
How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...
oureilidouan
 
Blue Futuristic Cyber Security Presentation.pdf
Blue Futuristic Cyber Security Presentation.pdfBlue Futuristic Cyber Security Presentation.pdf
Blue Futuristic Cyber Security Presentation.pdf
oureilidouan
 
year-2023-school-9290107-form-16-synopsis (1).pdf
year-2023-school-9290107-form-16-synopsis (1).pdfyear-2023-school-9290107-form-16-synopsis (1).pdf
year-2023-school-9290107-form-16-synopsis (1).pdf
MariaAlexiou13
 
ΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗ
ΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗ
ΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗ
ΟΛΓΑ ΤΣΕΧΕΛΙΔΟΥ
 
Η ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥ
Η ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥΗ ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥ
Η ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥ
earkouli
 
Ανακεφαλαίωση Μαθήματος - Lesson Refresher
Ανακεφαλαίωση Μαθήματος - Lesson RefresherΑνακεφαλαίωση Μαθήματος - Lesson Refresher
Ανακεφαλαίωση Μαθήματος - Lesson Refresher
oureilidouan
 
Independence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - Αφίσα
Independence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - ΑφίσαIndependence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - Αφίσα
Independence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - Αφίσα
Tassos Karampinis
 

Recently uploaded (9)

Beige Aesthetic Neutral Thesis Defense Presentation (1).pdf
Beige Aesthetic Neutral Thesis Defense Presentation (1).pdfBeige Aesthetic Neutral Thesis Defense Presentation (1).pdf
Beige Aesthetic Neutral Thesis Defense Presentation (1).pdf
 
Green Minimalist Case Studies Presentation.pdf
Green Minimalist Case Studies Presentation.pdfGreen Minimalist Case Studies Presentation.pdf
Green Minimalist Case Studies Presentation.pdf
 
How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...
How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...
How to Utilize Technology in Learning Presentation in Green and Brown Cartoon...
 
Blue Futuristic Cyber Security Presentation.pdf
Blue Futuristic Cyber Security Presentation.pdfBlue Futuristic Cyber Security Presentation.pdf
Blue Futuristic Cyber Security Presentation.pdf
 
year-2023-school-9290107-form-16-synopsis (1).pdf
year-2023-school-9290107-form-16-synopsis (1).pdfyear-2023-school-9290107-form-16-synopsis (1).pdf
year-2023-school-9290107-form-16-synopsis (1).pdf
 
ΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗ
ΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗ
ΗΜΕΡΑ ΓΗΣ.pdfφυλλα εργασιων για τη γηκαι το περιβάλλον για Ε και ΣΤ ΤΆΞΗ
 
Η ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥ
Η ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥΗ ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥ
Η ΔΙΑΤΡΟΦΗ ΤΩΝ ΜΑΘΗΤΩΝ/ΤΡΙΩΝ ΤΟΥ ΓΥΜΝΑΣΙΟΥ ΝΑΟΥΣΑΣ ΠΑΡΟΥ
 
Ανακεφαλαίωση Μαθήματος - Lesson Refresher
Ανακεφαλαίωση Μαθήματος - Lesson RefresherΑνακεφαλαίωση Μαθήματος - Lesson Refresher
Ανακεφαλαίωση Μαθήματος - Lesson Refresher
 
Independence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - Αφίσα
Independence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - ΑφίσαIndependence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - Αφίσα
Independence day - Araw ng Kalayaan (09/06/2024). Πρόσκληση - Αφίσα
 

ΠΛΗ30 ΜΑΘΗΜΑ 2.1

  • 1. ΠΛΗ30 ΕΝΟΤΗΤΑ 2: ΣΧΕ∆ΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ Μάθηµα 2.1: ∆ιαίρει και Βασίλευε∆ιαίρει και Βασίλευε ∆ηµήτρης Ψούνης
  • 2. ΠΕΡΙΕΧΟΜΕΝΑ Α. Σκοπός του Μαθήµατος 1. ∆ιαίρει και Βασίλευε 1. Ο αλγόριθµος MergeSort(Ταξινόµησης µε Συγχώνευση) 2. Ο αλγόριθµος QuickSort (Γρήγορη Ταξινόµηση) 3. Ο αλγόριθµος QuickSelect (Γρήγορη Επιλογή) 4. Ο αλγόριθµος Strassen για τον πολ/µο πινάκων Β.Ασκήσεις 2∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Β.Ασκήσεις 1. Εφαρµογές
  • 3. Α. Σκοπός του Μαθήµατος Οι στόχοι του µαθήµατος είναι: Επίπεδο Α (-) Επίπεδο Β Η τεχνική σχεδίασης αλγόριθµων ∆ιαίρει και Βασίλευε 3∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Η τεχνική σχεδίασης αλγόριθµων ∆ιαίρει και Βασίλευε Επίπεδο Γ Ο αλγόριθµος Γρήγορης Ταξινόµησης (QuickSort) Ο αλγόριθµος Επιλογής του k-µικρότερου αριθµού σε έναν πίνακα Ο αλγόριθµος Πολλαπλασιασµού Πινάκων Strassen
  • 4. B. Θεωρία Τεχνικές Σχεδίασης Αλγορίθµων 4∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Στην 2η ενότητα του µαθήµατος ασχολούµαστε µε τεχνικές που έχουν αναπτυχθεί, ως γενικές µεθοδολογίες για την κατασκευή ενός αλγορίθµου: Η τεχνική ∆ιαίρει και Βασίλευε (Μάθηµα 2.1) Η τεχνική του ∆υναµικού Προγραµµατισµού (Μάθηµα 2.2) Η κατασκευή των Άπληστων Αλγόριθµων (Μάθηµα 2.3) Υπάρχουν ακόµη δεκάδες τεχνικές κατασκευής αλγορίθµων που είναι εκτός ύλης.
  • 5. B. Θεωρία 1. ∆ιαίρει και Βασίλευε 5∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε ∆ΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ Ένας αλγόριθµος διαίρει και βασίλευε συνίσταται από τα εξής βήµατα: 1. ΒΗΜΑ ∆ΙΑΙΡΕΣΗΣ: ∆ιάσπαση του αρχικού προβλήµατος σε µικρότερα επιµέρους υποπροβλήµατα. 2. ΒΗΜΑ ΕΠΙΛΥΣΗΣ ΕΠΙΜΕΡΟΥΣ ΣΤΙΓΜΙΟΤΥΠΩΝ: Επίλυση των επιµέρους υποπροβληµάτων (µε αναδροµικές κλήσεις του ίδιου αλγόριθµου) 3. ΒΗΜΑ ΣΥΝΘΕΣΗΣ ΛΥΣΕΩΝ: Υπολογισµός της λύσης του αρχικού προβλήµατος, από τις επιµέρους λύσεις των υποπροβληµάτων.
  • 6. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 1. Ο αλγόριθµος ταξινόµησης MergeSort 6∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Ο αλγόριθµος ταξινόµησης MergeSort (Ο αλγόριθµος Ταξινόµησης µε Συγχώνευση) είναι εφαρµογή του ∆ιαίρει και Βασίλευε: 1. ΒΗΜΑ ∆ΙΑΙΡΕΣΗΣ: Ο πίνακας χωρίζεται σε δύο µέρη: τον πίνακα και τον πίνακα ],...,[ 1 naaA = ],...,[ 2/11 naaA = ],...,[ 12/2 nn aaA += Η πολυπλοκότητα του αλγορίθµου είναι: 2. ΒΗΜΑ ΕΠΙΛΥΣΗΣ ΕΠΙΜΕΡΟΥΣ ΣΤΙΓΜΙΟΤΥΠΩΝ: Η επίλυση των δύο υποπροβληµάτων που προκύπτουν γίνονται µε αναδροµικές κλήσεις του MergeSort. 3. ΒΗΜΑ ΣΥΝΘΕΣΗΣ ΛΥΣΕΩΝ: Η συγχώνευση των δύο πινάκων γίνεται µε την διαδικασία Merge (βλέπε Μάθηµα 1.4) σε γραµµικό χρόνο 2/11 n 12/2 nn + )log(...)( 2 2)( nnn n TnT Θ==Θ+      =
  • 7. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 2. Ο αλγόριθµος ταξινόµησης QuickSort 7∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Ο αλγόριθµος ταξινόµησης QuickSort (Ο αλγόριθµος Γρήγορης Ταξινόµησης) είναι επίσης εφαρµογή του ∆ιαίρει και Βασίλευε: 1. ΒΗΜΑ ∆ΙΑΙΡΕΣΗΣ: Ο πίνακας χωρίζεται σε δύο µέρη: τον πίνακα Α1 που περιεχει όλα τα στοιχεία που είναι µικρότερα από το α1 και ],...,[ 1 naaA = 1 1 τον Α2 που περιέχει όλα τα στοιχεία που είναι µεγαλύτερα από το α1 2. ΒΗΜΑ ΕΠΙΛΥΣΗΣ ΕΠΙΜΕΡΟΥΣ ΣΤΙΓΜΙΟΤΥΠΩΝ: Η επίλυση των δύο υποπροβληµάτων (ταξινόµηση των υποπινάκων Α1 και Α2) που προκύπτουν γίνονται µε αναδροµικές κλήσεις του QuickSort. 3. ΒΗΜΑ ΣΥΝΘΕΣΗΣ ΛΥΣΕΩΝ: Ο πίνακας A = [A1]α1[A2]
  • 8. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 2. Ο αλγόριθµος ταξινόµησης QuickSort (1.Ψευδοκώδικας) 8∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Παρακάτω φαίνεται µια υλοποίηση της διαδικασίας QuickSort: procedure QuickSort(A,start,finish) if start<finish then pos=Partition(A,start,finish) QuickSort(A,start,pos-1) QuickSort(A,pos+1,finish) end ifend if end procedure procedure Partition(A,start,finish) odigo=A[start] i=start; j=finish for (k=start+1 to finish) if (A[k]>odigo) B[j]=A[k]; j=j-1 else B[i]=A[k]; i=i+1 end for B[i]=odigo; Α=Β return pos; end procedure
  • 9. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 2. Ο αλγόριθµος ταξινόµησης QuickSort (2.Παράδειγµα Εκτέλεσης) 9∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Ας τρέξουµε ένα παράδειγµα εκτέλεσης της Partition: B.1 B.2 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4k i j 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 B.3 B.4 B.5 B.6 B.7 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 18 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 20 18 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 6 20 18 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 6 1 20 18 11k i j 1 2 3 4 5 6 7 8 7 4 6 1 9 20 18 11
  • 10. Ο αλγόριθµος ταξινόµησης QuickSort (2.Παράδειγµα Εκτέλεσης) 10∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 7 4 11 9 6 1 14 5 2 3 10 13 18 19 22 20 1 2 3 4 5 6 7 8 9 10 11 12 7 4 11 9 6 1 14 5 2 3 10 13 4 6 1 5 2 3 7 13 10 14 9 11 14 15 16 19 22 20 19 20 22 1 2 3 4 5 6 4 6 1 5 2 3 1 2 3 4 5 6 8 9 10 11 12 13 10 14 9 11 10 9 11 13 14 15 16 20 22 20 221 2 3 4 5 6 10 9 11 13 14 20 22 16 22 22 1 2 3 1 2 3 1 3 2 5 6 5 6 5 6 8 9 10 10 9 11 9 10 11 12 14 14 6 6 6 2 3 3 2 2 3 2 2 2 8 9 9 10 11 11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22
  • 11. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 2. Ο αλγόριθµος ταξινόµησης QuickSort (3. Ανάλυση) 11∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Η διαδικασία του Partition έχει πολυπλοκότητα Θ(n) Ανάλυση Καλύτερης Περίπτωσης: Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η αναδροµή: )log(...)(2)( . nnn n TnT ί Θ==Θ+    = αςκυριαρχθ Ανάλυση Χειρότερης Περίπτωσης: Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η αναδροµή: Στην µέση περίπτωση? )log(...)( 2 2)( nnn n TnT Θ==Θ+      = ( ) )(...)(1)( 2 . nnnTnT Θ==Θ+−= επαναληψηςµεθ
  • 12. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 2. Ο αλγόριθµος ταξινόµησης QuickSort (3. Ανάλυση) 12∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Ανάλυση Μέσης Περίπτωσης: Αν θεωρήσουµε ότι είναι ισοπίθανα τα δυνατά σπασίµατα του πίνακα σε δύο κοµµάτια τότε κατά µέσο όρο οι πράξεις του αλγορίθµου θα δίνονται από την αναδροµική σχέση: [ ] [ ] [ ]nTnTnnTnnTT nT )()0()1(...)()2()1()()1()0( )( Θ++−++Θ+−Τ++Θ+−+ = Ή πιο απλά: Και τελικά Για την οποία αποδεικνύεται ότι ισχύει T(n)=Θ(nlogn) [ ] [ ] [ ] n nT )( = [ ] n nnnTTT nT )()(...)1()0(2 )( Θ++++ = [ ] )( )(...)1()0(2 )( n n nTTT nT Θ+ +++ =
  • 13. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect 13∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε ΠΡΟΒΛΗΜΑ: ∆ίνεται ένας αταξινόµητος πίνακας µε n στοιχεία. Ζητείται να βρεθεί το k-µικρότερο στοιχείο Παράδειγµα στιγµιοτύπου: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 Το 5-µικρότερο στοιχείο είναι το 5 Το 10-µικρότερο στοιχείο είναι το 11 Αλγόριθµοι: Προφανής Αλγόριθµος: Ταξινόµησε τον πίνακα (µε MergeSort) και επέλεξε το k-ο µικρότερο στοιχείο. Πολυπλοκότητα: Θ(nlogn) QuickSelect: Εφαρµογή ∆ιαίρει και Βασίλευε: Πολ/τα: O(n)
  • 14. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (Ιδέα) 14∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Εκµεταλλευόµαστε τo σπάσιµο του πίνακα που κάνει η διαδικασία partition. Θα χρειάζεται κάθε φορά να ψάχνουµε έναν από τους δύο υποπίνακες που προκύπτουν µε κατάλληλη τροποποίηση του k. Έτσι αφού η διαδικασία Partition σπάει τον πίνακα ως εξής [A1] apos [A2] Αν k=pos τότε βρήκαµε το στοιχείο είναι το apos. Αν k<pos τότε ψαχνουµε στον πίνακα A1 για το k-µικρότερο στοιχείο Αν k>pos τότε ψάχνουµε στον πίνακα Α2 για το (k-n1-1)-µικρότερο στοιχείο (όπου n1 το πλήθος των στοιχείων του Α1)
  • 15. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (1.Ψευδοκώδικας) 15∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Η υλοποιηση σε ψευδογλώσσα της παραπάνω διαδικασίας είναι η ακόλουθη: procedure QuickSelect(A,start,finish,k) if start>finish then return 0 elseelse pos=Partition(A,start,finish) if k=pos then return A[pos] else if k<pos then return QuickSelect(A,start,pos-1,k) else if k>pos then return QuickSelect(A,pos+1,finish,k-pos) end if end if end procedure
  • 16. 3. Ο αλγόριθµος επιλογης QuickSelect(2.Παράδειγµα Εκτέλεσης για k=12) 16∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 7 4 11 9 6 1 14 5 2 3 10 13 18 19 22 20 1 2 3 4 5 6 7 8 9 10 11 12 7 4 11 9 6 1 14 5 2 3 10 13 4 6 1 5 2 3 7 13 10 14 9 11 8 9 10 11 12 13 10 14 9 11 10 9 11 13 1410 9 11 13 14 12 14 14
  • 17. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (3. Ανάλυση) 17∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Η διαδικασία του Partition έχει πολυπλοκότητα Θ(n) Ανάλυση Καλύτερης Περίπτωσης: Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η αναδροµή: )(...)()( . nn n TnT ί Θ==Θ+    = αςκυριαρχθ Ανάλυση Χειρότερης Περίπτωσης: Όταν το σπάσιµο γίνεται στην µέση του πίνακα. Τότε προκύπτει η αναδροµή: Χρειαζόµαστε ένα πιο έξυπνο σπάσιµο σπάσιµο του πίνακα ώστε να επιτυγχάνεται ένα σπάσιµο του πίνακα περίπου στην µέση. )(...)( 2 )( nn n TnT Θ==Θ+      = ( ) )(...)(1)( 2 . nnnTnT Θ==Θ+−= επαναληψηςµεθ
  • 18. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων) 18∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Προτείνεται η διαδικασία των πεντάδων η οποία: Χωρίζει τα στοιχεία σε 5-αδες Από κάθε 5-άδα επιλέγουµε το µεσαίο στοιχειο. Επαναλαµβάνουµε αναδροµικά για τα µεσαία στοιχεία. Επιλέγουµε δηλαδή το µεσαίο των µεσαίων (των µεσαίων…) από κάθεΕπιλέγουµε δηλαδή το µεσαίο των µεσαίων (των µεσαίων…) από κάθε πεντάδα. Π.χ.: 5-άδες Νεος Πίνακας αναδροµική εκτέλεση Επιστρέφεται το 9 (επιλογή οδηγού στοιχείου) 16 13 1 2 3 4 5 18 7 4 11 9 6 7 8 9 10 20 6 1 22 19 11 12 13 14 15 14 5 2 3 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13 1 2 3 4 9 19 5 13
  • 19. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων) 19∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Η επιλογή του µεσαίου στοιχείου από 5 στοιχεία θέλει σταθερό χρόνο: Άρα αν ο πίνακας έχει n στοιχεία και θέλουµε συνολικά χρόνο T(n) Επιλέγουµε n/5 φορές το µεσαίο (µε χρόνο Θ(1)). Το βήµα αυτό θέλει συνολικό χρόνο Έπειτα κάνουµε µια αναδροµική κλήση για n/5 δεδοµένα. )()1( 5 n n Θ=Θ Έπειτα κάνουµε µια αναδροµική κλήση για n/5 δεδοµένα. Συνεπώς η πολυπλοκότητα της επιλογής του στοιχείου µε την διαδικασία των 5-άδων προκύπτει από την επίλυση της αναδροµικής σχέσης: Αποδεικνύεται ότι είναι πολύ καλό σπάσιµο, διότι σε κάθε βήµα θα απορρίπτονται τουλάχιστον 3n/10 στοιχεία (Η απόδειξη παραλείπεται). ∆ηλαδή µε άλλα λόγια η αναδροµή της QuickSelect θα γίνει για το πολύ 7n/10 στοιχεία. )(...)( 5 )( . nn n TnT ί Θ==Θ+      = αςκυριαρχθ
  • 20. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων) 20∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Ενσωµατώνουµε την διαδικασία επιλογής οδηγού στοιχείου στον προηγούµενο κώδικα: procedure QuickSelect(A,start,finish,k) if start=finish then return A[start] elseelse Επιλογή στοιχείου m µε την διαδικασία των 5-άδων. swap(A[m],A[start]) pos=Partition(A,start,finish) if k=pos then return A[pos] else if k<pos then return QuickSelect(A,start,pos-1,k) else if k>pos then return QuickSelect(A,pos+1,finish,k-pos) end if end if end procedure
  • 21. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 3. Ο αλγόριθµος επιλογης QuickSelect (4. Παραλλαγή µε τη διαδικασία Πεντάδων) 21∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε Η αναδροµική σχέση που περιγράφει την τελική πολυπλοκότητα του αλγορίθµου είναι: Για να λύσουµε ένα πρόβληµα µεγέθους n: Οι πεντάδες θέλουν χρόνο Θ(n)Οι πεντάδες θέλουν χρόνο Θ(n) Η διαδικασία Partition θέλει χρόνο Θ(n) Η αναδροµική κλήση θα γίνει για ένα πρόβληµα µεγέθους το πολύ 7n/10, συνεπώς ο χρόνος που απαιτείται είναι Τ(7n/10) Συνεπώς: Αυτή είναι και η χειρότερη περίπτωση, άρα τελικά έχουµε T(n)=O(n) )(...)( 10 7 )( . nn n TnT ί Θ==Θ+      = αςκυριαρχθ
  • 22. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen 22∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε ΠΡΟΒΛΗΜΑ: Να υπολογιστεί το γινόµενο δύο nxn πινάκων Α και Β.       ++ ++ =      ×      = =×= 2222122121221121 2212121121121111 2221 1211 2221 1211 babababa babababa bb bb aa aa C BAC Αλγόριθµοι: Εφαρµογή του γνωστού αλγορίθµου από ΠΛΗ12. Η πολυπλοκότητα του είναι Θ(n2). Αλγόριθµος του Strassen: Εφαρµογή του ∆ιαίρει και Βασίλευε: Πολυπλοκότητα: Θ(n2,81) Ακόµη καλύτεροι αλγόριθµοι ∆ιαίρει και Βασίλευε. Η καλύτερη πολυπλοκότητα µέχρι στιγµής: Θ(n2,38)  ++ 222212212122112122212221 bababababbaa
  • 23. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen O γνωστός αλγόριθµος πολλαπλασιασµού διδιάστατων πινάκων µπορεί να υλοποιηθεί σε ψευδογλώσσα ως εξής: 23∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε procedure MultMatrix(A,B) for (i=1 to n) for (j=1 to n) C[i][j]=0; Η πολυπλοκότητα είναι: C[i][j]=0; for (k=1 to n) C[i][j]=C[i][j]+A[i][k]*B[k][j]; end for end for end for return C end procedure ( ) )(...)1()1()( 3 nnnnnT Θ==Θ⋅+Θ⋅⋅=
  • 24. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen Strassen ‘70: Εφαρµογή του διαίρει και βασίλευε (θεωρώ ότι n άρτιος) Οι πίνακες Α και Β σπάνε στους πίνακες: 24∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε       = 1211 AA AA A       = 1211 BB BB B Όπου κάθε ένας από τους υποπίνακες έχει µέγεθος n/2 x n/2 O Strassen προσπάθησε να υπολογίσει το γινόµενο C=AxB κατασκευάζοντας τον πίνακα:     2221 AA     = 2221 BB B       = 2221 1211 CC CC C
  • 25. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen 1η προσέγγιση: Ισχύει ότι: 25∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε 2222122122 2122112121 2212121112 2112111111 BABAC BABAC BABAC BABAC += += += += Αντί να κάνουµε τον nxn πολ/µο των πινάκων. ∆ΙΑΣΠΑΣΗ: Γίνονται 8 πολ/µοι n/2 x n/2 πινάκων ΕΠΙΛΥΣΗ: Αναδροµικά µε τον ίδιο τρόπο. ΣΥΝΘΕΣΗ ΛΥΣΕΩΝ: 4 προσθέσεις nx2 x nx2 πινάκων Άρα για να λύσω ένα πρόβληµα µεγέθους n, λύνω 8 υποπροβλήµατα µεγέθους n/2 και συνδυάζω τις λύσεις σε χρόνο Θ(n2) Η πολυπλοκότητα είναι: Καµία βελτίωση σε σχέση µε τον προφανή αλγόριθµο 2222122122 BABAC += )(...)( 2 8)( 32 nn n TnT remMasterTheo Θ==Θ+      =
  • 26. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen 1η προσέγγιση: Ισχύει ότι: 26∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε 2222122122 2122112121 2212121112 2112111111 BABAC BABAC BABAC BABAC += += += += Αντί να κάνουµε τον nxn πολ/µο των πινάκων. ∆ΙΑΣΠΑΣΗ: Γίνονται 8 πολ/µοι n/2 x n/2 πινάκων ΕΠΙΛΥΣΗ: Αναδροµικά µε τον ίδιο τρόπο. ΣΥΝΘΕΣΗ ΛΥΣΕΩΝ: 4 προσθέσεις nx2 x nx2 πινάκων Άρα για να λύσω ένα πρόβληµα µεγέθους n, λύνω 8 υποπροβλήµατα µεγέθους n/2 και συνδυάζω τις λύσεις σε χρόνο Θ(n2) Η πολυπλοκότητα είναι: Καµία βελτίωση σε σχέση µε τον προφανή αλγόριθµο 2222122122 BABAC += )(...)( 2 8)( 32 nn n TnT remMasterTheo Θ==Θ+      =
  • 27. Β. Θεωρία 1. ∆ιαίρει και Βασίλευε 4. Ο αλγόριθµος πολλαπλασιασµού πινάκων Strassen 2η προσέγγιση (Strassen): Βρήκε ότι µπορεί να παρει το ίδιο αποτέλεσµα µε τις εξής πράξεις: 27∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε ))(( ))(( 21123 11112 1112221122211 BBAAM BAM BAM BBBAAAM −−= = = +−−+= 742121 652112 3211 MMMMC MMMMC MMMMC MMC +++= −++= +++= += )( )( ))(( 22221121126 111222215 BBBBAM BAAAAM BBAAM −−+= −+−= −+= Αντί να κάνουµε τον nxn πολ/µο των πινάκων. ∆ΙΑΣΠΑΣΗ: Γίνονται 7 πολ/µοι n/2 x n/2 πινάκων ΕΠΙΛΥΣΗ: Αναδροµικά µε τον ίδιο τρόπο. ΣΥΝΘΕΣΗ ΛΥΣΕΩΝ: 24 προσθαφαιρέσεις nx2 x nx2 πινάκων Άρα για να λύσω ένα πρόβληµα µεγέθους n, λύνω 7 υποπροβλήµατα µεγέθους n/2 και συνδυάζω τις λύσεις σε χρόνο Θ(n2) Η πολυπλοκότητα είναι: Υπάρχουν και ακόµη καλύτερες διασπάσεις που φτάνουν την πολυπλοκότητα µέχρι και Θ(n2,37). Ωστόσο ισχύει ότι κάθε αλγόριθµος πολ/µου πινάκων θα έχει πολυπλοκότητα Ω(n2) ))(( 122221114 BBAAM −−= )(...)( 2 7)( 81,22 nn n TnT remMasterTheo Θ==Θ+      = 542122 MMMMC +++=)( 21122211227 BBBBAM −−+=
  • 28. Γ. Ασκήσεις Εφαρµογή 1 Ας υποθέσουµε ότι έχουµε να επιλέξουµε ανάµεσα στους ακόλουθους τρεις αλγόριθµους: I. Ο αλγόριθµος A λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά οκτώ υποπροβλήµατα του µισού µεγέθους το καθένα, και συνδυάζοντας τις λύσεις τους σε γραµµικό χρόνο ως προς n. 28∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε II. Ο αλγόριθµος B λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά ένα υποπρόβληµα µεγέθους n-1 και, στην συνέχεια, συνάγει την τελική λύση σε χρόνο O(n). III. Ο αλγόριθµος Γ λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά εννιά υποπροβλήµατα µεγέθους n/3 και συνδυάζοντας τις λύσεις τους σε Ω(n2) χρόνο. Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις αλγορίθµους και ποιον από αυτούς θα διαλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα?
  • 29. Γ. Ασκήσεις Εφαρµογή 2 Ας υποθέσουµε ότι έχουµε να επιλέξουµε ανάµεσα στους ακόλουθους τρεις αλγόριθµους: I. Ο αλγόριθµος A λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά ένα υποπρόβληµα, µεγέθους 1/4 του αρχικού προβλήµατος, ενώ ο χρόνος που απαιτείται για να βρεθεί το πρόβληµα αυτό (µεγέθους n/4) από το αρχικό (µεγέθους n) είναι 29∆ηµήτρης Ψούνης, ΠΛΗ30, Μάθηµα 2.1: ∆ιαίρει και Βασίλευε πρόβληµα αυτό (µεγέθους n/4) από το αρχικό (µεγέθους n) είναι γραµµικός ως προς n. II. Ο αλγόριθµος B λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά ένα υποπρόβληµα µεγέθους n/2 και, στην συνέχεια, συνάγει την τελική λύση σε Ω(n3). III. Ο αλγόριθµος Γ λύνει προβλήµατα µεγέθους n µε το να επιλύει αναδροµικά τέσσερα υποπροβλήµατα µεγέθους n/2 και συνδυάζοντας τις λύσεις τους σε O(n2) χρόνο. Ποιοι είναι οι ασυµπτωτικοί χρόνοι εκτέλεσης για καθένα από τους τρεις αλγορίθµους και ποιον από αυτούς θα διαλέγατε µε βάση την ασυµπτωτική του πολυπλοκότητα?