ΥΠΟΛΟΓΙΣΤΙΚΗ ΝΟΗΜΟΣΥΝΗ ΙΙ

 

6.3     Συνδυασμος Γενετικων Αλγοριθμων και Τεχνητων Νευρωνικων Δικτυων

 

Τα Τεχνητά Νευρωνικά Δίκτυα είναι μοντέλα παράλληλης επεξεργασίας που η οργάνωσή τους προσπαθεί να μιμηθεί το δίκτυο των νευρώνων του ανθρώπινου εγκεφάλου. Η ανάπτυξή τους σήμερα είναι αρκετά δυναμική και οι εφαρμογές που στηρίζονται σε αυτά πάρα πολλές. Χρησιμοποιούνται σε χώρους, όπως η Ιατρική, η Οικονομία, η Μηχανολογία, η Επεξεργασία Ήχου, η Επεξεργασία Εικόνας, η Αναγνώριση Προτύπων, η Βελτιστοποίηση, κ.τ.λ. Με την εμφάνιση των Γ.Α., ένα πλήθος ερευνητών προσπάθησε να συνδυάσει τις δυο τεχνολογίες, ώστε να ξεπεραστούν τα προβλήματα της μιας από την άλλη. Αυτό οδήγησε στο να υπάρχουν σήμερα πολλές αξιόλογες υβριδικές εφαρμογές. Η χρήση των Γ.Α. μέσα στον χώρο των Νευρωνικών Δικτύων (Ν.Δ.) μπορεί να γίνει με διάφορους τρόπους, οι κυριότεροι από τους οποίους είναι η σχεδίαση (μέσω Γ.Α.) βέλτιστων Ν.Δ. για συγκεκριμένα προβλήματα και η εκπαίδευσή τους. Ακολουθεί η παρουσίαση μερικών εφαρμογών που παρουσιάζουν ενδιαφέρον.

 

Στην κλασσική τους μορφή, τα Ν.Δ. περιέχουν πολλά στρώματα αθροιστικών μονάδων (νευρώνες), όπου κάθε είσοδος πολλαπλασιάζεται με κάποιο βάρος και όλες μαζί αθροίζονται για να περαστεί ένα αποτέλεσμα στο επόμενο στρώμα. Αν οι αθροιστικές μονάδες είναι αρκετές, τότε το δίκτυο προσεγγίζει τη λύση ενός προβλήματος με περισσότερη ακρίβεια. Ωστόσο, συχνά παρουσιάζονται συναρτήσεις τόσο περίπλοκες που για να αναπαραχθούν από το Ν.Δ. με ικανοποιητική ακρίβεια απαιτείται υπερβολικά μεγάλος αριθμός μονάδων.

 

Λύση σε αυτό το πρόβλημα έδωσε μερικώς, η χρήση της Σίγμα-Πι μονάδος (Sigma-Pi unit), στην οποία ένα βάρος εφαρμόζεται όχι μόνο σε κάθε είσοδο αλλά και σε δεύτερης και ίσως και σε υψηλότερης τάξης δυνάμεις της εισόδου. Η μέθοδος αυτή αποδείχτηκε πιο ισχυρή, χωρίς όμως να μπορεί και αυτή να αντιμετωπίσει μεγάλης πολυπλοκότητας προβλήματα με πολλές εισόδους, διότι ο αριθμός των βαρών αυξάνεται εντυπωσιακά.

 

Μια παραλλαγή της Σίγμα-Πι μονάδας είναι η μονάδα γινομένου (product unit). Mε αυτήν υπολογίζεται το γινόμενο όλων των εισόδων, υψωμένης της κάθε μιας σε μια δύναμη:

.

 

Ο όρος  χρησιμοποιείται με τον ίδιο τρόπο που χρησιμοποιούνται τα βάρη στις αθροιστικές μονάδες. Οι μονάδες γινομένου είναι πιο γενικές από τις Σίγμα-Πι, διότι οι Σίγμα-Πι περιορίζονται στη χρήση μόνο πολυωνυμικών όρων, ενώ οι μονάδες γινομένου μπορούν να χρησιμοποιήσουν κλασματικούς και αρνητικούς όρους και, επιπλέον, μπορούν να σχηματίσουν εκφράσεις απλών γινομένων περιορίζοντας τα βάρη σε ακέραιες τιμές. Παρ' όλ' αυτά, δεν χρησιμοποιούνται μόνες τους σε ένα Ν.Δ., γιατί η πράξη της ύψωσης σε δύναμη είναι αρκετά χρονοβόρα. Συνήθως προτιμάται ένας συνδυασμός αθροιστικών μονάδων γινομένου. Τέτοιου είδους δίκτυα ονομάζονται Νευρωνικά Δίκτυα Γινομένου (Product Neural Networks) ή απλά Δίκτυα Γινομένου (Δ.Γ.). Ένα παράδειγμα Δ.Γ. φαίνεται στο Σχήμα 6.1.

 

Ο συνήθης τρόπος εκπαίδευσης των Γ.Α. είναι ο αλγόριθμος πίσω-διάδοσης (back-propagation). Ο αλγόριθμος αυτός εργάζεται καλά, όταν ο χώρος των λύσεων είναι ομαλός. Δυστυχώς όμως, ο χώρος αυτός για Δ.Γ. αρκετά συχνά είναι πολύ περίπλοκος, με πολλά τοπικά ακρότατα που μπορούν να παγιδεύσουν το δίκτυο, με αποτέλεσμα να μην συγκλίνει ποτέ. Αυτό συμβαίνει γιατί πολύ μικρές αλλαγές της τιμής του εκθέτη προκαλούν μεγάλες αλλαγές στο συνολικό λάθος.

 

Στο σημείο αυτό, τη λύση έρχονται να τη δώσουν οι Γ.Α., η απόδοση των οποίων δεν εξαρτάται σε μεγάλο βαθμό από το χώρο αναζήτησης. Η ιδέα που επινοήθηκε από τους Janson και Frenzel [19] είναι να εκπαιδευτεί το δίκτυο με ένα Γ.Α., ώστε να γίνουν επιλύσημα τα προβλήματα μεγάλης πολυπλοκότητας. Η μορφή του Γ.Α. που χρησιμοποιήθηκε γι' αυτό το σκοπό είναι η εξής:

Σχήμα 6.1: Παράδειγμα Νευρωνικού Δικτύου Γινομένου.

 

Επιλέχτηκε η δυαδική κωδικοποίηση, έχοντας ως προϋπόθεση ότι ο σχεδιαστής γνωρίζει την αρχιτεκτονική του Δ.Γ. που πρόκειται να εκπαιδευτεί. Κάθε συμβολοσειρά καθορίστηκε να περιλαμβάνει ένα ορισμένο αριθμό δυαδικών ψηφίων για κάθε βάρος. Στα πειράματα που έλαβαν χώρα, οι τιμές του μεγέθους του πληθυσμού ήταν από 30 έως 100, ενώ για την αναπαράσταση του κάθε βάρους μέσα σε κάθε συμβολοσειρά αφιερώθηκαν 32 δυαδικά ψηφία. Το δίκτυο που χρησιμοποιήθηκε περιελάμβανε συνολικά 37 βάρη, άρα το μήκος της κάθε συμβολοσειράς ήταν 1184 δυαδικά ψηφία.

 

Η λειτουργία της αποκωδικοποίησης γίνεται ως εξής: Για κάθε συμβολοσειρά υπολογίζεται το Άθροισμα του Τετραγωνικού Λάθους () και η απόδοσή της τίθεται ίση με:

.

 

Αυτό σημαίνει ότι υψηλή απόδοση για κάποια συμβολοσειρά αντιστοιχεί σε καλύτερη λειτουργία του δικτύου και σε ένα τέλειο δίκτυο αντιστοιχεί απόδοση ίση με 1.

 

Ακολουθεί η φάσης της αναπαραγωγής. Εδώ χρησιμοποιείται ένας μηχανισμός διαβάθμισης με βάση τη σειρά, προκειμένου να αποφευχθεί η πρόωρη σύγκλιση: ταξινομούνται τα άτομα με βάση τις ικανότητές τους και τα 20 καλύτερα δίνουν δύο απογόνους, τα 20 χειρότερα δεν δίνουν κανένα απόγονο και τα υπόλοιπα δίνουν έναν απόγονο στην επόμενη γενιά. Στη διασταύρωση ακολουθείται η τεχνική του διπλού σημείου. Τέλος, η μετάλλαξη συμβαίνει με πιθανότητα μία ανά κάθε 1000 δυαδικά ψηφία γενετικού υλικού.

Το υβριδικό αυτό σχήμα χρησιμοποιήθηκε από τους δημιουργούς του στον ιδιαίτερα απαιτητικό και δύσκολο χώρο του CAD και πιο συγκεκριμένα στο σχεδιασμό CMOS κυκλωμάτων. Στην αρχική της μορφή, η εφαρμογή περιελάμβανε μόνο χρήση του Δ.Γ. για τη βελτιστοποίηση των διαστάσεων ενός transistor για ένα CMOS διακόπτη, έχοντας ως εισόδους θερμοκρασία, τάση τροφοδοσίας και ελάχιστη αγωγιμότητα. Η εκπαίδευση, όμως, του δικτύου από τον αλγόριθμο της πίσω-διάδοσης ήταν πολύ δύσκολη. Έτσι, χρησιμοποιήθηκε ο Γ.Α. που περιγράφηκε πιο πάνω. Τα αποτελέσματα, σε σύγκριση με την πίσω-διάδοση ήταν εντυπωσιακά. Μέσα από πολλές δοκιμές, φάνηκε ότι ο Γ.Α. είχε 5 έως 20 φορές καλύτερα αποτελέσματα.

 

Μια άλλη σκέψη των ίδιων ερευνητών είναι ο συνδυασμός των δύο μεθόδων (πίσω-διάδοση και Γ.Α.) για την εκπαίδευση του Δ.Γ. Κατ' αυτόν τον τρόπο, θα μπορούσε να αυξηθεί ακόμη περισσότερο η απόδοση, αν σε πρώτη φάση χρησιμοποιηθεί ο Γ.Α. για τον εντοπισμό της περιοχής της βέλτιστης λύσης και σε δεύτερη φάση η πίσω-διάδοση για τον ακριβέστερο εντοπισμό της λύσης αυτής μέσα στην περιοχή της. Το υβριδικό αυτό σχήμα κάνει επιλεκτική χρήση των πλεονεκτημάτων των δύο μεθόδων. Αρχικά, με τον Γ.Α. αποφεύγεται η παγίδευση σε κάποιο τοπικό ακρότατο και έπειτα χρησιμοποιείται η πίσω-διάδοση που συγκλίνει πιο γρήγορα σε ομαλούς χώρους. Το συμπέρασμα αυτής της σκέψης είναι ότι ο συνδυασμός αυτός θα είναι ικανός να επιλύει προβλήματα μεγαλύτερης πολυπλοκότητας.

 

Πρωτότυπη και πολύ ενδιαφέρουσα στο χώρο των Ν.Δ. είναι η εφαρμογή που δημιούργησαν οι Harp και Samad. Σε αυτήν χρησιμοποιείται ένας Γ.Α. για το σχεδιασμό της αρχιτεκτονικής ενός Ν.Δ. Η εργασία αυτή είναι ιδιαίτερα δύσκολη, γιατί πρέπει να καθοριστούν η δομή και οι παράμετροι των κανόνων μάθησης μέσα από ένα ευρύτατο σύνολο επιλογών. Μέχρι σήμερα, το πρόβλημα αυτό αντιμετωπίζεται με ευρετικούς αλγόριθμους, που όμως δεν εξυπηρετούν απόλυτα τους στόχους της βελτιστοποίησης, αφενός επειδή ο χώρος αναζήτησης είναι τεράστιος και, αφετέρου γιατί η έννοια της καλής αρχιτεκτονικής είναι άμεσα εξαρτώμενη από την εφαρμογή για την οποία θα χρησιμοποιηθεί το Ν.Δ. Έτσι, είναι συνηθισμένο το φαινόμενο να γίνεται συνεχής επανασχεδίαση και αναπροσαρμογή του δικτύου μέχρι να επιτευχθεί ένα επαρκές επίπεδο λειτουργίας. Οι περισσότερες, μάλιστα, σχεδιάσεις περιορίζονται σε απλές δομές και συντηρητικές τιμές των παραμέτρων των κανόνων μάθησης, αποκλείοντας κατ' αυτόν τον τρόπο ένα μεγάλο μέρος του χώρου αναζήτησης, λόγω αδυναμίας συστηματικής και αποδοτικής εξερεύνησης του.

 

Πιο συγκεκριμένα, οι Harp και Samad [19] δημιούργησαν ένα πειραματικό σύστημα, με το όνομα NeuroGENESYS, στο οποίο γίνεται χρήση Γ.Α. για το σχεδιασμό της δομής και τον καθορισμό των παραμέτρων των κανόνων μάθησης ενός Ν.Δ. Το κύριο βάρος δίνεται σε σχέσεις ανάμεσα σε σύνολα μονάδων και σύνολα συνδέσεων και όχι σε κάθε μία σύνδεση ξεχωριστά. Στόχος των κατασκευαστών ήταν η δημιουργία ενός ισχυρού εργαλείου, στο οποίο ο σχεδιαστής θα δίνει την περιγραφή του προβλήματος (ή της κλάσης των προβλημάτων) που επιθυμεί το Ν.Δ. να λύνει και να παίρνει ως έξοδο από το σύστημα το βέλτιστο σχεδιασμό Ν.Δ. που αυτό προτείνει. Αξίζει να σημειωθεί ότι όλη η διαδικασία της βελτιστοποίησης δεν επηρεάζει τον αλγόριθμο μάθησης του δικτύου, που είναι η πίσω-διάδοση. Το NeuroGENESYS ασχολείται μόνο με την εύρεση των βέλτιστων τιμών για παραμέτρους, όπως ο αριθμός των επεξεργαστικών μονάδων, οι συνδέσεις μεταξύ τους, κ.τ.λ.

 

Ο Γ.Α. παράγει ένα πληθυσμό από άτομα που αποτελούν κωδικοποιημένες περιγραφές Ν.Δ. Αυτές αποκωδικοποιούνται, μεταφράζονται δηλαδή στο αντίστοιχό τους δίκτυο, το δίκτυο εκπαιδεύεται με πίσω-διάδοση, εκτιμάται η απόδοσή του κι έπειτα αναλαμβάνει πάλι τον έλεγχο ο Γ.Α. για να παράγει μια καινούρια, καλύτερη γενιά, κατά τα γνωστά.

Ενδιαφέρον σε αυτό το σημείο παρουσιάζει η προσαρμογή των λειτουργιών του Γ.Α. στις ανάγκες του προβλήματος, διότι είναι φανερό ότι υπάρχουν σημαντικές ιδιαιτερότητες που δημιουργούν απορίες, π.χ. για το πώς μπορεί να γίνει μια καλή αναπαράσταση της δομής και των παραμέτρων ενός Ν.Δ., πώς μπορεί να αξιολογηθεί η απόδοσή του, ποια θα είναι η μορφή των γενετικών λειτουργιών, κ.τ.λ. Τα θέματα αυτά εξετάζονται παρακάτω.

 

Η αναπαράσταση (κωδικοποίηση) είναι ένα από τα πιο δύσκολα και σημαντικά προβλήματα. Το είδος που τελικά θα επιλεχθεί πρέπει να έχει τη δυνατότητα να φέρει πολλών ειδών πληροφορίες, όπως ο αριθμός των στρωμάτων, ο αριθμός των μονάδων σε κάθε στρώμα, ο βαθμός διασύνδεσης μεταξύ των στρωμάτων, ο ρυθμός εκμάθησης (learning rate), ο παράγοντας λάθους που χρησιμοποιείται από τον κανόνα μάθησης και αν θα υπάρχουν συνδέσεις ανάδρασης (feedback connections). Επιπλέον, η αναπαράσταση θα πρέπει να αναδεικνύει τα δίκτυα που έχουν σημαντική απόδοση για το πρόβλημα που προορίζονται και να ενθαρρύνει τον αποκλεισμό όσων μειονεκτούν. Τέλος, θα πρέπει να παρέχει την δυνατότητα στο Γ.Α. να εξερευνήσει μεγάλες περιοχές του χώρου αναζήτησης για να έχει καλύτερο αποτέλεσμα η βελτιστοποίηση. Όλοι αυτοί οι παράγοντες οδήγησαν τους δύο ερευνητές σε ένα πρωτότυπο, συμπαγές και δυναμικό σχήμα αναπαράστασης που κατόρθωσε να ικανοποιήσει τις απαιτήσεις και να φανεί ιδιαίτερα ευέλικτο. Σύμφωνα, λοιπόν με αυτό, ένα Ν.Δ. περιγράφεται από ένα χρωμόσωμα (που μάλιστα του έδωσαν και την ειδική ονομασία blueprint-προσχέδιο), το οποίο φέρει γονίδια που αποφασίζουν για την σύνθεσή της δομής και τις τιμές των παραμέτρων των κανόνων μάθησης.

 

Η κάθε συμβολοσειρά περιλαμβάνει ένα ή περισσότερα τμήματα, που το καθένα αντιστοιχεί σε μια περιοχή του δικτύου (δηλαδή ένα σύνολο μονάδων) μαζί με τις συνδέσεις τους (μόνο συνδέσεις που ξεκινούν από τις μονάδες και όχι που καταλήγουν). Κάθε τμήμα περιλαμβάνει δύο υποτμήματα:

1)        τον Καθορισμό Παραμέτρων της Περιοχής (ΚΠΠ) και

2)        το Πεδίο Καθορισμού Συνδέσεων (ΠΚΣ).

 

Στο πρώτο περιλαμβάνονται πληροφορίες για τα χαρακτηριστικά της περιοχής, όπως αριθμός μονάδων, οργάνωση, παράμετροι μάθησης κ.τ.λ. Το δεύτερο περιλαμβάνει πληροφορίες για τις συνδέσεις από μια περιοχή σε μια άλλη, όπως διεύθυνση της στοχευόμενης περιοχής, βαθμός διασύνδεσης κ.τ.λ. Καθώς ο αριθμός των στρωμάτων σε ένα δίκτυο δεν είναι καθορισμένος, κάθε συμβολοσειρά είναι δυνατό να έχει περισσότερο από ένα ΠΚΣ, κάτι που οδηγεί σε συμβολοσειρές μεταβλητού μεγέθους. Το φαινόμενο αυτό δεν είναι αρκετά συνηθισμένο, αλλά εξυπηρετεί άριστα τις ανάγκες του προβλήματος και φανερώνει τη μεγάλη ευελιξία των Γ.Α. Κυρίως όμως, δίνει τη δυνατότητα στον Γ.Α. να εξερευνήσει πολύ μεγαλύτερες περιοχές του χώρου αναζήτησης.

 

Για να γίνουν σαφή τα όρια των διαφόρων τμημάτων και υποτμημάτων γίνεται χρήση διαχωριστών (markers) που δείχνουν που αρχίζει και που τελειώνει το καθένα. Έτσι, διευκολύνεται η συντακτική ανάλυση της συμβολοσειράς από το πρόγραμμα που θα το διαβάσει για να το μεταφράσει σε δίκτυο.

 

Μετά την επιλογή της αναπαράστασης, ακολουθεί ο καθορισμός των άλλων στοιχείων του Γ.Α. Το μέγεθος του πληθυσμού κυμαίνεται από 30 έως 100 άτομα. Στη φάση της αναπαραγωγής υιοθετείται η τεχνική του ελιτισμού, δηλαδή το καλύτερο άτομο πάντα αφήνει απογόνους. Η διασταύρωση είναι προσαρμοσμένη στις ιδιαιτερότητες της αναπαράστασης. Η ανταλλαγή υλικού γίνεται με μορφή ανταλλαγής ομόλογων τμημάτων των χρωμοσωμάτων. Επειδή το μήκος των χρωμοσωμάτων δεν είναι σταθερό, χρησιμοποιείται μια τροποποιημένη έκδοση της διασταύρωσης διπλού σημείου, που μπορεί να ξεχωρίζει τα ομόλογα τμήματα έχοντας ως σημεία αναφοράς τους διαχωριστές.

 

 Οι κύριοι λόγοι που οδήγησαν σε αυτή την επιλογή είναι δύο:

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

 και

2)        εξυπηρετείται ο στόχος της μέγιστης δυνατής εξερεύνησης του χώρου αναζήτησης.

Η μετάλλαξη δεν παρουσιάζει κάτι το καινούριο και συμβαίνει με πιθανότητα 0.01 ή λιγότερο.

 

Παρ' όλο που αποκλείστηκε η εμφάνιση μη αποδεκτών συμβολοσειρών, υπάρχει η πιθανότητα να προκύψουν άλλα που θεωρητικά είναι αποδεκτά, αλλά στην πράξη δεν είναι λειτουργικά. Σε αυτή την κατηγορία ανήκουν δίκτυα που δεν έχουν καθόλου συνδέσεις, ή έχουν συνδέσεις που δεν καταλήγουν πουθενά ή δίκτυα που περιλαμβάνουν ανάδραση (που δεν είναι ανεκτή από τον αλγόριθμο της πίσω-διάδοσης). Δύο στρατηγικές ακολουθούνται για την αποφυγή αυτών των συμβολοσειρών:

1)        Μέσα από την διαδικασία της αναπαραγωγής, εξαλείφονται τα άτομα που έχουν εγγενείς ανωμαλίες, δηλαδή χαρακτηριστικά που τα κάνουν να εμπίπτουν στην παραπάνω κατηγορία

 και

2)        άτομα με μικρά ελαττώματα υφίστανται ένα είδος "εξαγνισμού", δηλαδή τα ελαττώματά τους δεν εκφράζονται μέσα στο τεχνητό περιβάλλον.

 

Τέλος, το θέμα που έμεινε ασχολίαστο είναι ο τρόπος υπολογισμού της ικανότητας. Σε αυτό τον υπολογισμό πρέπει να λαμβάνονται υπ' όψη χαρακτηριστικά, όπως η ταχύτητα μάθησης, η ακρίβεια και οι παράγοντες κόστους (π.χ. μέγεθος, πολυπλοκότητα, κ.τ.λ.). Οι ερευνητές κατέληξαν στον εξής τύπο για την ικανότητα  ενός ατόμου :

.

 

Δηλαδή, η ικανότητα εκφράζεται ως γραμμικός συνδυασμός κάποιων παραγόντων απόδοσης  που προαιρετικά έχουν μετασχηματιστεί από μια συνάρτηση . Ο χρήστης του EuroGENESYS μπορεί να προσαρμόσει τους συντελεστές  για να εκφράσει την επιθυμητή περιγραφή του δικτύου.

 

Τα αποτελέσματα της εφαρμογής του NeuroGENESYS ήταν εντυπωσιακά. Χρησιμοποιήθηκε για σχεδιασμό δικτύων που προορίζονταν για προβλήματα τυπικά του χώρου των Ν.Δ., την αναγνώριση ενός ψηφίου και το πρόβλημα του Exclusive-OR.

 

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

 

Στην περίπτωση του Exclusive-OR (EX-OR), το neuroGENESYS πρότεινε πολλά δίκτυα που μαθαίνουν γρήγορα και είχαν συνδέσεις από τις μονάδες εισόδου στις μονάδες εξόδου (εκτός, βέβαια, από τις ενδιάμεσες). Τα περισσότερα από αυτά ήταν αρκετά μεγάλα, αλλά κάνοντας ένα συμβιβασμό ανάμεσα σε ταχύτητα μάθησης, μέγεθος και ακρίβεια το σύστημα σχεδίασε ένα δίκτυο της μορφής του Σχήματος 6.2.

 

Σχήμα 6.2: Το δίκτυο που πρότεινε το NeuroGENESIS.

 

Στο δίκτυο αυτό, η ακρίβεια είναι , ενώ το βάρος των συνδέσεων . Αυτή η σχεδίαση είναι πολύ κοντά στη βέλτιστη, σύμφωνα με τους Harp και Samad.

 

 

ΑΡΧΗ ΚΕΦΑΛΑΙΟΥ