Πανεπιστήμιο Αιγαίου Σχολή Θετικών Επιστημών Τμήμα Μαθηματικών

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

Download "Πανεπιστήμιο Αιγαίου Σχολή Θετικών Επιστημών Τμήμα Μαθηματικών"

Transcript

1 Πανεπιστήμιο Αιγαίου Σχολή Θετικών Επιστημών Τμήμα Μαθηματικών Πρόγραμμα Μεταπτυχιακών Σπουδών «Μαθηματική μοντελοποίηση στις φυσικές επιστήμες και στις σύγχρονες τεχνολογίες» Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Καβακιώτη Μαριόρα Επιβλέπων Καθηγητής: Ανδρέας Παπασαλούρος ΣΑΜΟΣ 2010

2 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ Πρόγραμμα Μεταπτυχιακών Σπουδών «Μαθηματική μοντελοποίηση στις φυσικές επιστήμες και στις σύγχρονες τεχνολογίες» Μεταπτυχιακή Διατριβή Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Καβακιώτη Μαριόρα Επιβλέπων καθηγητής: Παπασαλούρος Ανδρέας ΣΑΜΟΣ 2010

3 Η παρούσα διπλωματική εργασία παρουσιάστηκε ενώπιον του διδακτικού προσωπικού του Πανεπιστημίου Αιγαίου σε μερική εκπλήρωση των απαιτήσεων για το δίπλωμα ειδίκευσης του μεταπτυχιακού προγράμματος «Μαθηματική μοντελοποίηση στις φυσικές επιστήμες και στις σύγχρονες τεχνολογίες» του Τμήματος Μαθηματικών της Σχολής Θετικών Επιστημών του Πανεπιστημίου Αιγαίου. Η ΤΡΙΜΕΛΗΣ ΕΠΙΤΡΟΠΗ ΔΙΔΑΣΚΟΝΤΩΝ ΕΠΙΚΥΡΩΝΕΙ ΤΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΗΣ ΚΑΒΑΚΙΩΤΗ ΜΑΡΙΟΡΑΣ ΠΑΠΑΣΑΛΟΥΡΟΣ ΑΝΔΡΕΑΣ (Επιβλέπων) Λέκτορας Τμήματος Μαθηματικών Πανεπιστημίου Αιγαίου ΧΟΥΣΙΑΔΑΣ ΚΩΣΤΑΣ (Μέλος) Αναπληρωτής Καθηγητής Τμήματος Μαθηματικών Πανεπιστημίου Αιγαίου ΧΑΤΖΗΝΙΚΗΤΑΣ ΑΓΑΠΗΤΟΣ (Μέλος) Επίκουρος Καθηγητής Τμήματος Μαθηματικών Πανεπιστημίου Αιγαίου ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΑΜΟΣ 2010

4 Abstract This dissertation studies the gravitational problem of a collisionless N-body system described by a Plummer sphere model. In order to compute the force exerted on the system s bodies three different methods are presented: Direct method, Barnes-Hut method and a distributed implementation of the Barnes-Hut method, utilizing ProActive open source distributed framework. Three programs are implemented in Java, each one simulating an N-body system using one of the above methods, and a variety of simulations are conducted so as to compare the methods experimentally in terms of accuracy and required computational time.

5 Περίληψη Στην παρούσα διπλωματική παρουσιάζεται και μελετάται μέσω προσομοιώσεων το βαρυτικό πρόβλημα των Ν-σωμάτων ενός συστήματος χωρίς συγκρούσεις, στις 3 διαστάσεις, το οποίο περιγράφεται από ένα μοντέλο Plummer. Για την επίλυση του προβλήματος χρησιμοποιούνται τρείς διαφορετικές μέθοδοι υπολογισμού της δύναμης: η Άμεση μέθοδος, η μέθοδος Barnes- Hut και μια κατανεμημένη εκδοχή της μεθόδου Barnes-Hut. H υλοποίηση των προσομοιώσεων έγινε στη γλώσσα Java με χρήση της βιβλιοθήκης κατανεμημένου υπολογισμού ανοιχτού κώδικα ProActive. Για κάθε μία εκ των τριών παραπάνω μεθόδων εκτελέστηκε ένα πλήθος προσομοιώσεων με σκοπό την πειραματική σύγκρισή τους ως προς την ακρίβεια των αποτελεσμάτων και τον απαιτούμενο χρόνο εκτέλεσης.

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

7 1 Πίνακας περιεχομένων Εισαγωγή... 4 Κεφάλαιο 1: Περιγραφή προβλήματος - βασικοί τύποι & μέθοδοι επίλυσης Το πρόβλημα των N-σωμάτων Ο νόμος της παγκόσμιας έλξης για 2 σώματα Ο νόμος της παγκόσμιας έλξης για Ν σώματα Παραγωγή της εξίσωσης του προβλήματος των Ν-σωμάτων Ο αριθμητικός τρόπος επίλυσης Μετατροπή διαφορικών εξ. σε εξισώσεις διαφορών Μέθοδος του Euler Εφαρμογή της μεθόδου Euler στο πρόβλημα των Ν-σωμάτων Προσομοίωση συστήματος Ν-σωμάτων Μέθοδοι επίλυσης ανάλογα με το πρόβλημα Πολυπλοκότητα αλγορίθμων...13 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις Περιγραφή συστήματος χωρίς συγκρούσεις Βελτίωση τύπου υπολογισμού της δύναμης για σύστημα χωρίς συγκρούσεις Διαδικασία υπολογισμού των ταχυτήτων & θέσεων των σωμάτων Άμεση μέθοδος Πολυπλοκότητα Άμεσης μεθόδου Hierarchical Tree Code Method (Barnes-Hut Method) Περιγραφή κατασκευής του δέντρου Κριτήριο αποδοχής κόμβου Υπολογισμός της επιτάχυνσης Παράμετρος θ και ακρίβεια της μεθόδου Πολυπλοκότητα μεθόδου Δέντρων Κατανεμημένη μέθοδος Barnes-Hut Orthogonal Recursive Bisection (ORB) Χωρισμός χωρίς ισοκατανομή υπολογιστικού φορτίου Παράδειγμα στις 2 διαστάσεις: Χωρισμός με ισοκατανομή υπολογιστικού φορτίου (Load Balancing) Locally Essential Trees Υπολογισμός της επιτάχυνσης Πολυπλοκότητα κατανεμημένης μεθόδου Δέντρων Κεφάλαιο 3: Αντικειμενοστρεφής προσέγγιση & Κατανεμημένος Υπολογισμός Αντικειμενοστρεφής υλοποίηση... 37

8 2 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Αντικείμενα (passive & active objects) Κατανεμημένος & Παράλληλος υπολογισμός Γενικά Παράλληλη - κατανεμημένη υλοποίηση εφαρμογών και αποδοτικότητα Κατανεμημένος προγραμματισμός με το ProActive Γενικά Κλήσεις Ειδικότερα για τα ενεργά αντικείμενα Κεφάλαιο 4: Σχεδίαση & Υλοποίηση Σημαντικές κλάσεις και αντικείμενα Άμεση μέθοδος Μέθοδος Barnes-Hut Κατανεμημένη μέθοδος Barnes-Hut Α. Τροποποιήσεις λόγω χρήσης του ProActive Β. Περιγραφή κλάσεων του κατανεμημένου Β-Η Άμεση μέθοδος Μέθοδος Barnes-Hut Κατανεμημένη μέθοδος Barnes-Hut Κεφάλαιο 5: Εκτέλεση προσομοίωσης Αρχικά δεδομένα προσομοίωσης (Input) Plummer model Προσομοίωση μιας σφαίρας Plummer Πειράματα A Κατηγορία πειραμάτων: Σύγκριση μεταξύ Άμεσης μεθόδου & σειριακής μεθόδου Δέντρων (Barnes-Hut) Β Κατηγορία πειραμάτων: Κατανεμημένο Barnes-Hut Γ Κατηγορία πειραμάτων: Σύγκριση μεταξύ και των τριών μεθόδων...62 Κεφάλαιο 6: Αποτελέσματα -συμπεράσματα Αποτελέσματα Α Κατηγορίας πειραμάτων Αποτελέσματα Β Κατηγορίας πειραμάτων Αποτελέσματα Γ Κατηγορίας πειραμάτων Βιβλιογραφία Παράρτημα... 73

9 3 Πίνακας Εικόνων Εικόνα 1-1: Η δύναμηfij που ασκεί το σώμα j στο σώμα i Εικόνα 1-2: Η συνολική δύναμη Fi που ασκείται στο σώμα i από τα υπόλοιπα Ν-1 σώματα Εικόνα 2-1: H ιδιότητα που χαρακτηρίζει τη μέθοδο Β-Η Εικόνα 2-2: Διαδοχικές διαιρέσεις ενός χωρίου στις 2 και στις 3 διαστάσεις Εικόνα 2-3: Το χωρίο που περικλείει το σύστημα στις 2 διαστάσεις Εικόνα 2-4: Διαίρεση χωρίου 2 διαστάσεων στα 4 «παιδιά» του Εικόνα 2-5: Το χωρίο που περικλείει το σύστημα στις 3 διαστάσεις Εικόνα 2-6: Διαίρεση χωρίου 3 διαστάσεων στα 8 «παιδιά» του Εικόνα 2-7: Διαίρεση χώρου και κατασκευή δέντρου στις 2 διαστάσεις Εικόνα 2-8: Κόμβος που ικανοποιεί το κριτήριο Εικόνα 2-9: Κόμβος που δεν ικανοποιεί το κριτήριο Εικόνα 2-10: Τομή χωρίου των 2 ή 3 διαστάσεων, σε δύο υπο-χωρία, για όλες τις πιθανές διαστάσεις τομής που μπορεί να επιλεγούν Εικόνα 2-11: Διαίρεση του χώρου χωρίς Load balancing σε 5 επεξεργαστές Εικόνα 2-12: Η ελάχιστη απόσταση d μεταξύ συνόρου ενός τομέα και κέντρου μάζας ενός κόμβου.. 34 Εικόνα 3-1: Σύγχρονη κλήση Εικόνα 3-2: Ασύγχρονη κλήση Εικόνα 4-1: Απεικόνιση της κλάσης Star για την Άμεση μέθοδο Εικόνα 4-2 Απεικόνιση της κλάσης Vector3D Εικόνα 4-3: Απεικόνιση της κλάσης GalaxyFactory Εικόνα 4-4: Απεικόνιση της κλάσης Star για το σειριακό Β-Η Εικόνα 4-5: Απεικόνιση της κλάσης TreeGenerator για το σειριακό Β-Η Εικόνα 4-6: Διάγραμμα των κλάσεων TreeNode, InnerNode, LeafNode και EmptyNode για το σειριακό Β-Η (στις 3 διαστάσεις) Εικόνα 4-7: Απεικόνιση της κλάσης Star για το κατανεμημένο Β-Η Εικόνα 4-8: Διάγραμμα των κλάσεων TreeNode, InnerNode, LeafNode και EmptyNode για το κατανεμημένο Β-Η (στις 3 διαστάσεις) Εικόνα 4-9: Απεικόνιση της κλάσης TreeGenerator για το κατανεμημένο Β-Η Εικόνα 4-10: Απεικόνιση της κλάσης Manager Εικόνα 4-11: Διάγραμμα ακολουθιών για την επίλυση του προβλήματος μέσω της Άμεσης μεθόδου.. 52 Εικόνα 4-12: Διάγραμμα ακολουθιών για την επίλυση του προβλήματος μέσω της σειριακής μεθόδου Barnes-Hut Εικόνα 4-13: Διάγραμμα ακολουθιών για την επίλυση του προβλήματος μέσω της κατανεμημένης μεθόδου Barnes-Hut Εικόνα 4-14: Διάγραμμα ακολουθιών ειδικότερα για τις κλήσεις εντός ενός iteration, της κατανεμημένης μεθόδου Barnes-Hut Εικόνα 5.1: Μορφή μιας σφαίρας Plummer Εικόνα 5.2: Στιγμιότυπα προσομοίωσης μιας σφαίρας Plummer χρησιμοποιώντας τη μέθοδο Barnes- Hut Εικόνα 6.1: Σχέση σχετικού σφάλματος της μεθόδου Β-Η με τον αριθμό των επαναλήψεων και το πλήθος Ν των σωμάτων του συστήματος Εικόνα 6.2: Σχέση σχετικού σφάλματος της μεθόδου Β-Η με τον αριθμό των επαναλήψεων Εικόνα 6.3: Σχέση σχετικού σφάλματος της μεθόδου Β-Η με το πλήθος Ν των σωμάτων του συστήματος Εικόνα 6.4: Σχέση μεταξύ της παραμέτρου θ τόσο με το σχετικό σφάλμα της μεθόδου Β-Η όσο και με τον συνολικό χρόνο εκτέλεσης της προσομοίωσης Εικόνα 6.5: Σχέση μεταξύ πλήθους χρησιμοποιούμενων υπολογιστικών κόμβων & χρόνου εκτέλεσης του κατανεμημένου Β-Η Εικόνα 6.6: Σχέση του χρόνου εκτέλεσης & του πλήθους των σωμάτων ανά μέθοδο επίλυσης (μέχρι και για 1,000 σώματα) Εικόνα 6.7: Σχέση του χρόνου εκτέλεσης & του πλήθους των σωμάτων ανά μέθοδο επίλυσης

10 4 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Εισαγωγή Με την ανάπτυξη των υπολογιστών δημιουργήθηκε ένας νέος κλάδος στις φυσικές επιστήμες, πέρα από τους ήδη υπάρχοντες, δηλαδή τον θεωρητικό και τον πειραματικό, ο υπολογιστικός, ο οποίος, χρησιμοποιώντας στοιχεία από τους δύο άλλους κλάδους, προσφέρει νέες δυνατότητες στη μελέτη του φυσικού κόσμου. Με τη βοήθεια μαθηματικών μοντέλων που περιγράφουν ένα φυσικό σύστημα και χρησιμοποιώντας κατάλληλες τεχνικές είναι δυνατή η προσομοίωση του συστήματος αυτού, μέσω των υπολογιστών. Η προσομοίωση μας επιτρέπει να μελετήσουμε το σύστημα και είναι εξαιρετικά χρήσιμη σε περιπτώσεις όπου η αναλυτική λύση του αντίστοιχου προβλήματος δεν είναι διαθέσιμη ή όπου δεν είναι δυνατό να αναπαραχθεί στο εργαστήριο ώστε να μελετηθεί πειραματικά. Στη συγκεκριμένη εργασία, συνδυάζοντας τεχνικές και γνώσεις από τα Μαθηματικά, τη Φυσική και την Πληροφορική, ασχολούμαστε με τη μελέτη της δυναμικής ενός συστήματος άστρων κάτω από την επίδραση της βαρύτητας. Αυτό γίνεται με την προσομοίωση της εξέλιξης στο χρόνο ενός συστήματος Ν-σωμάτων 1 (δεδομένων κάποιων αρχικών συνθηκών), τα οποία αλληλεπιδρούν μεταξύ τους βαρυτικά. Η μελέτη ενός τέτοιου συστήματος είναι γνωστή ως «πρόβλημα των Ν-σωμάτων» ή, αλλιώς, Nbody problem. Για Ν 3 το σύστημα των διαφορικών εξισώσεων που περιγράφουν το σύστημα των σωμάτων δεν λύνεται αναλυτικά 2, επομένως γίνεται χρήση μεθόδων της αριθμητικής ανάλυσης για την επίλυσή του. Θεωρούμε ότι το σύστημα των σωμάτων που μελετάμε ανήκει στον τριδιάστατο χώρο, τα σώματα είναι σημειακές μάζες, η μοναδική δύναμη που ασκείται στα σώματα είναι αυτή της Νευτώνειας βαρύτητας, ότι στο σύστημα των σωμάτων που μελετάμε δεν εφαρμόζεται κάποια εξωτερική δύναμη, καθώς και ότι ο αριθμός των σωμάτων παραμένει σταθερός (δεν υφίστανται γεννήσεις ούτε θάνατοι άστρων). Για τον υπολογισμό των δυνάμεων που ασκούνται μεταξύ των σωμάτων χρησιμοποιούμε τρείς διαφορετικές μεθόδους, οι οποίες συγκαταλέγονται ανάμεσα στις συχνότερα χρησιμοποιούμενες για προσομοιώσεις Ν-σωμάτων τέτοιου είδους: την Άμεση μέθοδο Direct method, την Ιεραρχική μέθοδο Δέντρων Hierarchical Tree Code method ή αλλιώς μέθοδο Barnes-Hut και μια εκδοχή της μεθόδου Barnes-Hut, στην οποία η προσομοίωση εκτελείται εφαρμόζοντας τον κατανεμημένο υπολογισμό. Σκοπός της παρούσας διπλωματικής είναι: Πρώτον να παρουσιαστεί όλη η διαδικασία με την οποία προσομοιώνουμε ένα βαρυτικό σύστημα Ν-σωμάτων, να περιγραφούν οι τρεις μέθοδοι υπολογισμού της δύναμης, καθώς και τα εργαλεία του κατανεμημένου υπολογισμού που χρησιμοποιούνται στην υλοποίηση της τρίτης μεθόδου. Έπειτα να υλοποιηθεί σε γλώσσα Java ο κώδικας, ο οποίος είναι υπεύθυνος για την εκτέλεση της προσομοίωσης σε τρία διαφορετικά προγράμματα, ανάλογα με τη μέθοδο που 1 Όπου Ν είναι το πλήθος των σωμάτων που περιέχει το σύστημα. 2 Εκτός από κάποιες ειδικές περιπτώσεις για Ν = 3.

11 Εισαγωγή 5 χρησιμοποιείται. Στη συνέχεια να εκτελεστεί ένα πλήθος προσομοιώσεων τόσο σειριακών όσο και κατανεμημένων, και, τέλος, τα αποτελέσματα των προσομοιώσεων αυτών να συγκριθούν μεταξύ τους, ώστε να βγάλουμε συγκριτικά συμπεράσματα για τις τρείς μεθόδους υπολογισμού ως προς την ακρίβεια των αποτελεσμάτων και τον συνολικό απαιτούμενο υπολογιστικό χρόνο. Ακολουθεί περιγραφή της διάρθρωσης του κειμένου ανά κεφάλαιο: Στο πρώτο κεφάλαιο γίνεται μια εισαγωγή στο πρόβλημα που θα μελετήσουμε και αναφέρονται οι βασικοί τύποι και οι μαθηματικές τεχνικές που σχετίζονται με την επίλυσή του. Ακολουθεί μια αναφορά διάφορων μεθόδων που χρησιμοποιούνται για τέτοιου είδους προσομοιώσεις (όπου αυτές που θα χρησιμοποιήσουμε περιγράφονται αναλυτικά στο δεύτερο κεφάλαιο) και δίνεται ο ορισμός κάποιων βασικών εννοιών που σχετίζονται με αλγορίθμους. Στο δεύτερο κεφάλαιο δίνουμε τον ορισμό ενός συστήματος χωρίς συγκρούσεις καθώς και κάποιες σχετικές, με αυτό, μετατροπές στον τρόπο υπολογισμού της δύναμης, και, στη συνέχεια, αναπτύσσονται αναλυτικά και οι τρεις μέθοδοι επίλυσης του προβλήματος των Ν-σωμάτων που θα χρησιμοποιήσουμε (Άμεση μέθοδος, μέθοδος Barnes-Hut και κατανεμημένη μέθοδος Barnes-Hut). Στο τρίτο κεφάλαιο γίνεται περιγραφή εννοιών του αντικειμενοστρεφούς προγραμματισμού, στη συνέχεια ορίζονται οι έννοιες του παράλληλου και του κατανεμημένου υπολογισμού και, τέλος, περιγράφονται κάποια βασικά για τη βιβλιοθήκη ProActive, η οποία θα χρησιμοποιηθεί για την κατανεμημένη υλοποίηση της μεθόδου Barnes-Hut. Στο τέταρτο κεφάλαιο γίνεται, στην ουσία, η σύνδεση, μέσω διαγραμμάτων UML (συγκεκριμένα χρησιμοποιούνται διαγράμματα κλάσεων και ακολουθιών), της θεωρίας σχετικά με τις μεθόδους επίλυσης που περιγράψαμε στο δεύτερο κεφάλαιο, καθώς και της θεωρίας που είδαμε στο κεφάλαιο τρία (σχετικά με την αντικειμενοστρεφή υλοποίηση, τον κατανεμημένο υπολογισμό και τη χρήση της βιβλιοθήκης ProActive), με την υλοποίηση του κώδικα των προγραμμάτων που δημιουργήθηκαν για να επιλύσουν το πρόβλημα. Στο πέμπτο κεφάλαιο περιγράφονται αναλυτικά οι προσομοιώσεις που εκτελέστηκαν, όπως επίσης και το ποιος ήταν ο σκοπός εκτέλεσης της κάθε μίας. Στο έκτο κεφάλαιο παρουσιάζονται, μέσω διαγραμμάτων, τα αποτελέσματα των προσομοιώσεων και ο σχολιασμός αυτών των αποτελεσμάτων. Τέλος, στο παράρτημα παρατίθεται ο κώδικας της εργασίας.

12 6 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Κεφάλαιο 1: Περιγραφή προβλήματος - βασικοί τύποι & μέθοδοι επίλυσης 1.1 Το πρόβλημα των N-σωμάτων Έστω ότι έχουμε N σώματα, τα οποία αλληλεπιδρούν μεταξύ τους ασκώντας δυνάμεις το ένα στο άλλο σύμφωνα με κάποιο νόμο (π.χ. δυνάμεις Coulomb για φορτισμένα σωματίδια, δύναμη του Νεύτωνα για ουράνια σώματα κ.α.). Το πρόβλημα της πρόβλεψης των μετέπειτα κινήσεων των σωμάτων του συστήματος, γνωρίζοντας τις αρχικές τους συνθήκες, ονομάζεται πρόβλημα Ν-σωμάτων. Στη συγκεκριμένη εργασία θα ασχοληθούμε με το βαρυτικό πρόβλημα των N-σωμάτων. Ο χώρος στον οποίο θα μελετήσουμε τις κινήσεις τους είναι ο τριδιάστατος χώρος. Θα θεωρούμε τα σώματα ως σημειακές μάζες, οι οποίες αλληλεπιδρούν βαρυτικά μεταξύ τους σύμφωνα με τους νόμους του Νεύτωνα. Τα δεδομένα που χρειάζονται ώστε να μπορεί να προβλεφθεί η θέση και η ταχύτητα οποιουδήποτε σώματος του συστήματος σε κάποια μετέπειτα χρονική στιγμή t i είναι η αρχική θέση r 0 και η αρχική ταχύτητα v 0 που έχει κάθε σώμα τη χρονική στιγμή t 0, καθώς και η μάζα για κάθε σώμα του συστήματος Ο νόμος της παγκόσμιας έλξης για 2 σώματα Έστω ότι έχουμε 2 σώματα, i και j. Η δύναμη F (ως μονόμετρο μέγεθος) που ασκεί το σώμα j στο σώμα i (καθώς και το σώμα i στο j, μιας και εδώ αναφερόμαστε στο μέτρο της δύναμης) δίνεται από τον τύπο: F = G m i m j r ji 2 (1.1) Όπου m i και m j είναι οι μάζες των σωμάτων i και j αντίστοιχα. Η σταθερά G είναι η παγκόσμια βαρυτική σταθερά, ίση με m 3 kg 1 s 2 [21]. r ji = r i r j = x i x j 2 + y i y j 2 + z i z j 2 είναι η απόσταση μεταξύ των δύο σωμάτων. Η δύναμη, όμως, εκτός από μέτρο έχει και κατεύθυνση. Η δύναμη F ij (ως διανυσματικό μέγεθος) που ασκεί το σώμα j στο σώμα i δίνεται από τον τύπο: F ij = G m i m j r ji r ji 3 (1.2)

13 Κεφάλαιο 1: Περιγραφή προβλήματος - βασικοί τύποι & μέθοδοι επίλυσης 7 Η (1.2) προέκυψε από τον πολλαπλασιασμό της (1.1) με το μοναδιαίο διάνυσμα r ji r ji, το οποίο δίνει την κατεύθυνση της δύναμης. Εικόνα 1-1: Η δύναμη F ij που ασκεί το σώμα j στο σώμα i. Το διάνυσμα r ji = r i r j = (x i x j, y i y j, z i z j ) έχει κατεύθυνση από το σώμα j προς το σώμα i. Το πρόσημο (-) που υπάρχει στην εξίσωση δηλώνει ότι η φορά της δύναμης F ij είναι αντίθετη από εκείνη του διανύσματος r ji, δηλαδή ότι η δύναμη είναι ελκτική [15] Ο νόμος της παγκόσμιας έλξης για Ν σώματα Εικόνα 1-2: Η συνολική δύναμη F i που ασκείται στο σώμα i από τα υπόλοιπα Ν-1 σώματα. Έστω τώρα ότι έχουμε Ν σώματα, τα οποία αλληλεπιδρούν βαρυτικά. Κάθε σώμα i (όπου i = 1,2,..,N) κινείται υπό από την επίδραση της συνισταμένης των δυνάμεων που

14 8 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων του ασκούν τα υπόλοιπα Ν 1 σώματα. Επομένως, έχουμε ότι η δύναμη F i, που ασκείται συνολικά σε ένα σώμα i από τα υπόλοιπα Ν 1 σώματα, δίνεται από τον τύπο: N F i = G m i m j r i r j r i r j 3 j=1 j i (1.3) Παραγωγή της εξίσωσης του προβλήματος των Ν-σωμάτων Ο 2 ος Νόμος του Νεύτωνα για το σώμα i είναι: F i = m i a i (1.4) Εξισώνοντας τις (1.3) & (1.4) παίρνουμε ότι: N a i = G m j r i r j r i r j 3 j=1 j i (1.5) Η επιτάχυνση ενός σώματος i είναι a i = d2 r i dt2, οπότε η (1.5) γίνεται: N d 2 r i dt 2 = G m j r i r j r i r j 3 j=1 j i (1.6) Η παραπάνω διαφορική εξίσωση 2 ης προβλήματος των Ν-σωμάτων [16]. τάξης αποτελεί τη μαθηματική έκφραση του Η (1.6) μπορεί να γραφεί και ως σύστημα δύο διαφορικών εξισώσεων 1 ης τάξης, ως εξής: (1.7α) (1.7β) d r i dt d v i dt = v i N = G m j r i r j r i r j 3 j=1 j i (1.7) Όπου v i είναι η ταχύτητα ενός σώματος i. Δεδομένων αρχικών συνθηκών, οι οποίες αποτελούνται από την αρχική θέση r 0 και την αρχική ταχύτητα v 0, για κάθε σώμα i = 1,2,, Ν του συστήματος, η λύση της (1.6) ή ισοδύναμα της (1.7) είναι μοναδική και δίνει τις θέσεις και τις ταχύτητες των σωμάτων σε οποιαδήποτε επιλεγμένη χρονική στιγμή [21]. 1.2 Ο αριθμητικός τρόπος επίλυσης Παρ όλα αυτά, για τη διαφορική εξίσωση (1.6) ή ισοδύναμα την (1.7) δεν υπάρχει αναλυτική λύση για πάνω από 2 σώματα (εκτός από ειδικές περιπτώσεις για Ν = 3). Αυτό δεν σημαίνει, όμως, ότι δεν μπορεί να λυθεί. Η επίλυσή της μπορεί να γίνει

15 Κεφάλαιο 1: Περιγραφή προβλήματος - βασικοί τύποι & μέθοδοι επίλυσης 9 αριθμητικά για οποιοδήποτε πλήθος σωμάτων, χρησιμοποιώντας μεθόδους της αριθμητικής ανάλυσης [21] Μετατροπή διαφορικών εξ. σε εξισώσεις διαφορών Μέθοδος του Euler Για να λυθεί αριθμητικά μια διαφορική εξίσωση, αυτή πρέπει πρώτα να μετατραπεί σε μια εξίσωση διαφορών. Έστω ότι έχουμε τo παρακάτω πρόβλημα αρχικών τιμών: dy(x) dx = f(x, y(x)), y(x 0 ) = y 0 (1.8) Η διαφορική εξίσωση είναι 1 ης τάξης και η αρχική συνθήκη είναι y(x 0 ) = y 0. Η f(x, y(x)) = dy(x) dx = lim h 0 y(x+h) y(x) h περιγράφει το πώς αλλάζει η συνάρτηση y (την κλίση της δηλαδή) σε ένα σημείο (x, y). Θα προσεγγίσουμε το όριο lim h 0, όπου η τιμή του h τείνει στο 0, με διακριτά «βήματα» x, όπου x ένας μικρός, μη μηδενικός αριθμός. Στο αρχικό σημείο x 0 γνωρίζουμε ότι η y παίρνει την τιμή y 0. Μπορούμε να βρούμε προσεγγιστικά την τιμή της y στο γειτονικό σημείο του x 0 το x 1, όπου x 1 = x 0 + x. Ο ρυθμός με τον οποίο αλλάζει η y ως προς το x (η κλίση δηλαδή της συνάρτησης y) στο αρχικό σημείο (x 0, y 0 ) είναι f(x 0, y 0 ). Αν θεωρήσουμε ότι είναι σταθερός σε όλο το διάστημα x από το x 0 στο x 1, τότε: y 1 = y(x 1 ) = y(x 0 + x) = y(x 0 ) + y y(x 0 ) + f(x 0, y 0 ) x (1.9) Με τον ίδιο τρόπο μπορούμε να πάρουμε προσεγγιστικά την τιμή της y στο σημείο x 2 = x 1 + x, η οποία είναι: y 2 = y(x 2 ) = y(x 1 + x) = y(x 1 ) + y y(x 1 ) + f(x 1, y 1 ) x (1.10) Ομοίως βρίσκουμε τα y 3, y 4, κ.ο.κ. Με αυτό τον τρόπο, εκτελώντας n ακόμα φορές τη διαδικασία που ακολουθήσαμε για το y 1, μπορούμε να υπολογίσουμε προσεγγιστικά την τιμή της y σε οποιοδήποτε σημείο x n+1, όπου x n+1 = x n + x: y n+1 = y(x n ) + f(x n, y n ) x (1.11) H παραπάνω επαναληπτική μέθοδος εύρεσης της συνάρτησης y λέγεται μέθοδος του Euler. Χαρακτηρίζεται από το εξής: ο ρυθμός με τον οποίο αλλάζει η y υπολογίζεται στην αρχή κάθε διαστήματος και θεωρείται σταθερός σε όλο το διάστημα x από το x n στο x n+1 [13, 10]. Αντίστοιχα, ένα σύστημα διαφορικών εξισώσεων 1 ης τάξης με αρχικές συνθήκες:

16 10 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων dx = f(t, v) dt dv = g(t, x) dt, x(t 0 ) = x 0, v(t 0 ) = v 0 (1.12) εφαρμόζοντας τη μέθοδο Euler γίνεται: v n+1 = v n + g(t n, x n ) t x n+1 = x n + f(t n, v n ) t (1.13) όπου t είναι, στη συγκεκριμένη περίπτωση, το χρονικό «βήμα» και t n = t 0 + n t είναι ο χρόνος μετά από n «βήματα» [44, 38]. Η μέθοδος Euler είναι απλή στη μορφή και στην υλοποίηση και σχετικά γρήγορη στον υπολογισμό. Δίνοντας μικρότερες τιμές στο διάστημα x παίρνουμε καλύτερες προσεγγίσεις της τιμής της y (αν και κερδίζοντας σε ακρίβεια χάνουμε σε ταχύτητα, λόγω του μικρότερου βήματος x). Όμως, η Euler θεωρείται λιγότερο ακριβής σε σχέση με άλλες μεθόδους, με αποτέλεσμα, συνήθως, να μην χρησιμοποιείται στην πράξη [26]. Μερικές από τις μεθόδους που χρησιμοποιούνται συχνότερα είναι κάποιες παραλλαγές της Euler και οι μέθοδοι της οικογένειας Runge-Kutta. Στόχος της παρούσας εργασίας είναι να δειχθεί το κατά πόσο επιταχύνεται η επίλυση του προβλήματος των Ν-σωμάτων, εφαρμόζοντας κατανεμημένο υπολογισμό και χρησιμοποιώντας για τον υπολογισμό των δυνάμεων κατάλληλη μέθοδο (τη μέθοδο Δέντρων Tree method, όπως θα δούμε παρακάτω). Επομένως, έμφαση θα δοθεί σε αυτά τα δύο και όχι τόσο στην αριθμητική μέθοδο. Κατά συνέπεια, παρ όλης της ανακρίβειας της μεθόδου Euler, λόγω της απλής μορφής της και του μικρού, σχετικά, υπολογιστικού της κόστους θα χρησιμοποιηθεί μια παραλλαγή της, η Euler-Cromer, η οποία παρουσιάζεται στη συνέχεια Εφαρμογή της μεθόδου Euler στο πρόβλημα των Ν-σωμάτων Για να μπορέσουμε να λύσουμε αριθμητικά την (1.7) θα πρέπει να τη μετατρέψουμε σε εξισώσεις διαφορών, εφαρμόζοντας σε αυτή κάποια αριθμητική μέθοδο. Αν χρησιμοποιήσουμε τη μέθοδο Euler, τότε έχουμε ότι η (1.7 α) γίνεται: r n+1 = r n + v n t και η (1.7 β) γίνεται αντίστοιχα: v n+1 = v n + a n t. Οπότε, έχουμε ότι: v n+1 = v n + a n t r n+1 = r n + v n t (1.14) Το χρονικό διάστημα t είναι το βήμα t = t 1 t 0 = t 2 t 1 = = t n+1 t n. Η επιτάχυνση, η ταχύτητα και η θέση ενός σώματος i τη χρονική στιγμή t n = t 0 + n t είναι a n, v n, r n αντίστοιχα. Μπορούμε, λοιπόν, να δούμε ότι, σύμφωνα με την (1.12), η καινούργια ταχύτητα v n+1 (η ταχύτητα στο τέλος κάθε διαστήματος) ενός σώματος υπολογίζεται από την παλιά ταχύτητα v n (την ταχύτητα στην αρχή του διαστήματος) και από την παλιά

17 Κεφάλαιο 1: Περιγραφή προβλήματος - βασικοί τύποι & μέθοδοι επίλυσης 11 επιτάχυνση 3 a n που υπήρχε στην αρχή του διαστήματος. Η καινούργια θέση r n+1 (η θέση στο τέλος καθενός χρονικού διαστήματος) υπολογίζεται από την παλιά θέση r n (τη θέση στην αρχή του διαστήματος) και από την παλιά ταχύτητα v n που υπήρχε στην αρχή του διαστήματος. Η μέθοδος που θα χρησιμοποιήσουμε για να λύσουμε αριθμητικά την (1.7) είναι μια παραλλαγή της μεθόδου Euler και λέγεται Euler-Cromer. Εφαρμόζοντας λοιπόν την Euler-Cromer η (1.7) γίνεται: v n+1 = v n + a n t r n+1 = r n + v n+1 t (1.15) Η ταχύτητα στο τέλος κάθε διαστήματος υπολογίζεται όπως και στην (1.12). Η μόνη διαφορά είναι ότι τώρα η καινούργια θέση υπολογίζεται από την καινούργια ταχύτητα (την ταχύτητα δηλαδή στο τέλος του διαστήματος) και όχι από την παλιά όπως πριν. Δεν είναι πιο ακριβής από την Euler 4, αλλά είναι πιο ευσταθής. Έχει την ιδιότητα να διατηρεί την ενέργεια του συστήματος περισσότερο από ότι η μέθοδος Euler, στην οποία η συνολική ενέργεια αυξάνεται σταθερά με την πάροδο του χρόνου, κάνοντάς την έτσι πιο κατάλληλη για προβλήματα Κλασσικής Μηχανικής από την απλή Euler [44, 47, 13]. 1.3 Προσομοίωση συστήματος Ν-σωμάτων Στην αστροφυσική δεν είναι δυνατό να εκτελεστούν πειράματα με τον ίδιο τρόπο που μπορεί κάποιος να το κάνει σε άλλους τομείς της φυσικής. Για παράδειγμα, δεν είναι δυνατό να αναπαραχθούν στο εργαστήριο φαινόμενα που περιλαμβάνουν τεράστιες ποσότητες ύλης και τα οποία χρειάζονται αρκετά δισεκατομμύρια έτη για να ολοκληρωθούν, όπως η εξέλιξη των αστρικών σμηνών ή η γέννηση και η σύγκρουση γαλαξιών. Με τη βοήθεια όμως των υπολογιστών, κατασκευάζοντας απλοποιημένα μοντέλα του φυσικού συστήματος που θέλουμε να μελετήσουμε, χρησιμοποιώντας κατάλληλες μεθόδους, όπως θα δούμε παρακάτω, και εφαρμόζοντας αριθμητικές μεθόδους, μπορούμε να προσομοιώσουμε την εξέλιξη ενός τέτοιου συστήματος μέσα σε μερικές μόνο ώρες ή ημέρες υπολογισμού Μέθοδοι επίλυσης ανάλογα με το πρόβλημα Υπάρχουν διάφορες μέθοδοι υπολογισμού της δύναμης (ή της επιτάχυνσης) σε μια προσομοίωση Ν-σωμάτων. Ανάλογα με τον τύπο του αστρονομικού προβλήματος που έχουμε να επιλύσουμε ενδείκνυνται διαφορετικές μέθοδοι. Παρακάτω αναφέρονται μερικές από αυτές: 3 Υπάρχουν διάφοροι τρόποι υπολογισμού της επιτάχυνσης α n, κάποιοι από τους οποίους αναφέρονται στην επόμενη ενότητα Στην παρούσα εργασία θα χρησιμοποιηθούν δύο από αυτούς, οι οποίοι και περιγράφονται αναλυτικά στο Κεφάλαιο 2. 4 Το συνολικό σφάλμα της μεθόδου Euler είναι της τάξης του βήματος t, για αυτό και λέμε ότι η Euler είναι μέθοδος πρώτης τάξης [13].

18 12 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Η πιο πρωταρχική καθώς και απλή κατηγορία μεθόδων, είναι οι Άμεσες μέθοδοι λέγονται και Direct ή Particle-Particle (P-P) ή Brute-Force Methods, στις οποίες η δύναμη που ασκείται σε κάθε σώμα i υπολογίζεται από το άθροισμα των επιμέρους δυνάμεων που ασκούν σε αυτό κάθε ένα από τα υπόλοιπα Ν 1 σώματα. Είναι πολύ ακριβείς, όμως αργές στον υπολογισμό και έτσι συνήθως χρησιμοποιούνται σε προσομοιώσεις που περιέχουν μικρό, σχετικά, αριθμό σωμάτων, τα οποία βρίσκονται κοντά μεταξύ τους, και για αυτό και απαιτείται ακρίβεια στον υπολογισμό των δυνάμεων, π.χ. προσομοίωση της κίνησης των πλανητών σε ένα αστρικό σύστημα ή προσομοίωση της εξέλιξης ενός αστρικού σμήνους [30, 31, 21]. Ένα παράδειγμα της Άμεσης μεθόδου παρατίθεται στο [4]. Αρκετές μέθοδοι έχουν προταθεί ώστε να επιταχυνθεί ο υπολογισμός σε σχέση με τις Άμεσες μεθόδους: Οι μέθοδοι Πλέγματος 5 αναφέρονται ως Grid methods ή Particle-Mesh (P-M). Δημιουργείται ένα πλέγμα στο χώρο συντεταγμένων που περιέχει τα σώματα, στα κελιά του οποίου αναθέτονται οι μάζες των σωμάτων. Η πυκνότητα του πλέγματος είναι η ίδια παντού, ακόμα και στις περιοχές που δεν περιέχουν σώματα. Τώρα, τα σώματα δεν αλληλεπιδρούν άμεσα μεταξύ τους, αλλά οι δυνάμεις υπολογίζονται μέσω του πεδίου του δυναμικού της βαρύτητας, το οποίο έχει κατασκευαστεί πάνω στο πλέγμα. Αυτές οι μέθοδοι είναι κατάλληλες κυρίως για συστήματα που η κατανομή των σωμάτων είναι ομοιόμορφη [30, 31, 29, 21]. Οι μέθοδοι Δέντρων (Barnes & Hut 1986)[2] Hierarchical Tree Code Methods. Ο χώρος που περιέχει τα σώματα διαιρείται, μέχρι, σε κάθε κομμάτι του, να περιέχεται το πολύ ένα μόνο σώμα, και δημιουργείται η δομή ενός δέντρου, η οποία χρησιμεύει στο να ορίσουμε ποια σώματα θεωρούνται απομακρυσμένα. Ο υπολογισμός της δύναμης που ασκείται σε ένα σώμα i του συστήματος χωρίζεται σε δύο μέρη. Η δύναμη που ασκούν τα σώματα που είναι γειτονικά του i υπολογίζεται όπως ακριβώς και στην Άμεση μέθοδο, ενώ των σωμάτων που θεωρούνται ότι βρίσκονται αρκετά μακριά από το i υπολογίζεται προσεγγιστικά, θεωρώντας τα ως ένα ενιαίο σώμα. Αυτού του είδους οι μέθοδοι είναι πολύ χρήσιμες σε περιπτώσεις που τα σώματα είναι άνισα κατανεμημένα στο χώρο, όπου, αλλού υπάρχουν μεγάλες συγκεντρώσεις σωμάτων και αλλού ο χώρος είναι σχεδόν κενός. Δεν έχουν πλέγμα, όπως η προηγούμενη κατηγορία μεθόδων, και έτσι δεν χάνουν χρόνο προσομοιώνοντας ακόμα και τις περιοχές οι οποίες είναι κενές 6 από σώματα. Εφαρμόζονται για την επίλυση συστημάτων χωρίς συγκρούσεις, στα οποία δεν χρειάζεται μεγάλη ακρίβεια στον υπολογισμό της συνεισφοράς στη συνολική δύναμη που ασκείται πάνω σε ένα σώμα i από τα σώματα τα οποία βρίσκονται πολύ μακριά του. Επομένως, χρησιμοποιούνται για την προσομοίωση π.χ. της εξέλιξης ενός γαλαξία, της σύγκρουσης μεταξύ γαλαξιών καθώς και σε κοσμολογικές προσομοιώσεις, όπως είναι η εξέλιξη της Δομής Μεγάλης Κλίμακας Large Scale Structure [30, 31, 29, 21, 6, 11]. 5 Δεν έχει καμία σχέση με την έννοια του πλέγματος Grid, όπως χρησιμοποιείται στον κατανεμημένο υπολογισμό, που θα δούμε στο Κεφάλαιο 3. 6 Το τι σημαίνει όταν λέγεται, ότι ένα σύστημα Ν-σωμάτων θεωρείται χωρίς συγκρούσεις, εξηγείται στην αρχή του 2 ου Κεφαλαίου.

19 Κεφάλαιο 1: Περιγραφή προβλήματος - βασικοί τύποι & μέθοδοι επίλυσης 13 Οι μέθοδοι Fast Multipole (Greengard & Rokhlin 1987)[14] αποτελούν εξέλιξη της προηγούμενης μεθόδου. Εφαρμόζεται ο κατακερματισμός του χώρου και η δημιουργία δέντρων όπως και στη μέθοδο που μόλις αναφέραμε, με τη διαφορά ότι η επαναληπτική κατάτμηση του χώρο συνεχίζεται για έναν προκαθορισμένο αριθμό επαναλήψεων, έτσι ώστε το πλήθος των κομματιών του χώρου που θα προκύψουν να είναι περίπου ίσο με το πλήθος των σωμάτων. Ο υπολογισμός της δύναμης γίνεται μεταξύ τμημάτων του χώρου. Αντιμετωπίζουν τα γειτονικά σώματα ακριβώς με τον ίδιο τρόπο όπως και οι Tree Code Methods αλλά διαφέρουν στο γεγονός ότι τα απομακρυσμένα τμήματα του χώρου θεωρούνται ως ένα ενιαίο μακρινό πεδίο και η δύναμη που ασκούν υπολογίζεται ως υψηλής τάξης πολυπολικό ανάπτυγμα high order multipole expansion. Αυτή η μέθοδος είναι κατάλληλη για περιπτώσεις όπου η κατανομή των σωμάτων είναι σχετικά ομοιόμορφη. Συνήθως χρησιμοποιείται στις ίδιες κατηγορίες προσομοιώσεων με τις Tree Code Methods [31, 29, 21, 11] Πολυπλοκότητα αλγορίθμων Ένα από τα πρώτα ζητήματα που θα μας απασχολήσουν σε μια προσομοίωση Ν- σωμάτων, όπου το πλήθος Ν των σωμάτων είναι μεγάλο, είναι ο χρόνος εκτέλεσής της να μην είναι απαγορευτικά μεγάλος. Ο χρόνος αυτός εξαρτάται από τον αριθμό των βημάτων που πρέπει να εκτελεστούν ώστε να λυθεί το εκάστοτε πρόβλημα. Ο αριθμός όμως αυτό συνήθως δεν είναι δυνατό να υπολογιστεί με ακρίβεια, μιας και δεν εξαρτάται μόνο από τους αλγορίθμους που θα χρησιμοποιηθούν, αλλά και από το υπολογιστικό σύστημα (hardware), από τη γλώσσα στην οποία έχει γραφτεί ο κώδικας, όσο και από το πόσο αποδοτικά έχει αυτός υλοποιηθεί. Σε γενικές όμως γραμμές, θεωρούμε ότι η ταχύτητα του αλγορίθμου που θα χρησιμοποιηθεί, δίνει μια γενική ιδέα και για το χρόνο που θα απαιτηθεί ώστε να λυθεί το πρόβλημα. Επομένως, είναι πολύ χρήσιμο να ξέρουμε το πόσο γρήγορος είναι ο αλγόριθμος μιας μεθόδου, ώστε να επιλεγεί για την προσομοίωση εκείνη η μέθοδος η οποία είναι και η ταχύτερη. Η ταχύτητα ενός αλγορίθμου εξαρτάται από την υπολογιστική πολυπλοκότητά του. Η υπολογιστική πολυπλοκότητα ενός αλγορίθμου δηλώνεται ως εξής: O(f(n)) και λέγεται τάξη της f (Το O καλείται συμβολισμός κεφαλαίου όμικρον, Big O notation ). Η συνάρτηση f δίνει τον αριθμό βημάτων εκτέλεσης ενός αλγορίθμου συναρτήσει του n, όπου n είναι ένα μέτρο του μεγέθους των δεδομένων εισόδου (input data), το οποίο, στο πρόβλημα που μελετάμε, είναι το πλήθος των σωμάτων του συστήματος. Ο αυστηρός μαθηματικός ορισμός είναι: Έστω συνάρτηση f: N N. H τάξη της f, O(f) ορίζεται να είναι το σύνολο όλων των συναρτήσεων g: N N, για τις οποίες c, d > 0 N τέτοιοι ώστε να ισχύει n N ότι g(n) c f(n) + d. Τότε, λέμε ότι g(n) O(f(n)) [23]. Στην ουσία, αυτό που περιγράφει είναι ο ρυθμός (growth rate) με τον οποίο αυξάνεται η συνάρτηση g(n).

20 14 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Συνήθως, στην πράξη, για να βρεθεί η πολυπλοκότητα μιας συνάρτησης δεν χρησιμοποιείται ο ορισμός αλλά οι παρακάτω κανόνες [35] που απλοποιούν τη μορφή της σε μια συνάρτηση f(n), ανάλογα με το ρυθμό αύξησης της: Αν η συνάρτηση αποτελείται από το άθροισμα κάποιων όρων, τότε ο όρος με το μεγαλύτερο ρυθμό αύξησης είναι η πολυπλοκότητά της, ενώ οι υπόλοιποι όροι θεωρούνται αμελητέοι και παραλείπονται. Αν η συνάρτηση είναι γινόμενο κάποιων παραγόντων, τότε οι σταθεροί όροι παραλείπονται. Για παράδειγμα, έστω ότι έχουμε ένα πρόβλημα μεγέθους n (όπου n τα δεδομένα εισόδου) και ότι ο αριθμός των βημάτων που χρειάζεται για να λυθεί δίνεται από τη συνάρτηση f(n) = 8n 3 3n n + 5. Τότε, O( f(n) ) = O( n 3 ) και λέμε ότι η f(n) έχει πολυπλοκότητα της τάξης n 3. Αυτό γιατί, καθώς το n αυξάνεται, ο όρος που κυριαρχεί στη συνάρτηση είναι o n 3.

21 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 15 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 2.1 Περιγραφή συστήματος χωρίς συγκρούσεις Στην παρούσα εργασία θα εκτελεστούν προσομοιώσεις βαρυτικής αλληλεπίδρασης σωμάτων τα οποία θεωρούνται αστέρες που συνθέτουν ένα γαλαξία. Τέτοια συστήματα αστέρων, θεωρείται ότι, είναι χωρίς συγκρούσεις collisionless. Με τον όρο «σύγκρουση» δεν αναφερόμαστε σε φυσική σύγκρουση 7 των σωμάτων (δηλαδή των αστεριών), αλλά χρησιμοποιείται για να περιγράψει σημαντικές παρεκκλίσεις από τις τροχιές τους, κατά τη διάρκεια μιας, μεταξύ τους, προσέγγισης. Η χρονική κλίμακα t rel, 2-body relaxation time (χρόνος αποκατάστασης ή εφησυχασμού) εκφράζει το χρόνο, μετά από τον οποίο, οι προσεγγίσεις μεταξύ των σωμάτων του συστήματος αρχίζουν να διαταράσσουν τις τροχιές τους. Ισοδύναμα, είναι ο μέσος χρόνος που χρειάζεται για να αλλάξει η ενέργεια ενός σώματος μετά από διαδοχικές συγκρούσεις. Ο χρόνος αυτός εξαρτάται από το πλήθος Ν των σωμάτων και από τη γεωμετρία του συστήματος. Οι γαλαξίες θεωρούνται δυναμικά συστήματα χωρίς συγκρούσεις, με την έννοια ότι οι προσεγγίσεις μεταξύ δύο ή περισσοτέρων σωμάτων τους δεν επιφέρουν αλλαγές στην κίνηση των σωμάτων αυτών. Η τροχιά ενός άστρου επηρεάζεται σχεδόν εξ ολοκλήρου από το συνολικό δυναμικό του γαλαξία, η επιρροή που ασκούν τα κοντινά σε αυτό άστρα θεωρείται αμελητέα. Αυτό συμβαίνει γιατί, λόγω του μεγάλου πλήθους των σωμάτων τους, ο χρόνος t rel τους είναι μεγαλύτερος από το χρόνο ζωής του σύμπαντος. Αντίστοιχα, υπάρχουν και συστήματα με συγκρούσεις collisional, όπως είναι τα αστρικά σμήνη. Είναι μικρότερα συστήματα και έχουν t rel μικρότερο από την ίδια τους την ηλικία. Κατά συνέπεια, οι προσεγγίσεις μεταξύ των σωμάτων τους διαδραματίζουν επίσης σημαντικό ρόλο στη δυναμική του συστήματος, και οι τροχιές των σωμάτων μεταβάλλονται σημαντικά από αυτές [29, 11, 21, 5, 4, 16]. 7 Οι φυσικές συγκρούσεις μεταξύ των άστρων ενός γαλαξία θεωρούνται σχεδόν απίθανες, μιας και οι αποστάσεις μεταξύ τους είναι περίπου 10 8 φορές μεγαλύτερες των αστρικών τους διαμέτρων. Επιπρόσθετα, στην προσομοίωση έχουν εξαλειφθεί λόγω της απλούστευσης που έχουμε κάνει, να θεωρήσουμε τα σώματα ως σημειακές μάζες. Παρά όλα αυτά, υπάρχουν συστήματα αρκετά πυκνά, Dense Stellar Systems, όπως οι γαλαξιακοί πυρήνες, ώστε να συμβαίνουν πραγματικές συγχωνεύσεις άστρων. Προσομοιώσεις τέτοιων συστημάτων γίνονται διαφορετικά από αυτές που μελετάμε, τα σώματα δεν θεωρούνται σημειακές μάζες [16].

22 16 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Βελτίωση τύπου υπολογισμού της δύναμης για σύστημα χωρίς συγκρούσεις Σύμφωνα με τα παραπάνω, για να προσομοιώσουμε πιστά ένα σύστημα χωρίς συγκρούσεις θα πρέπει τα σώματα του να μην πλησιάζουν πολύ το ένα το άλλο. Όταν δύο σημειακές μάζες i, j έρχονται πολύ κοντά μεταξύ τους (δηλαδή όταν η απόσταση r ji τείνει να μηδενιστεί), οι δυνάμεις που ασκεί το ένα στο άλλο γίνονται τεράστιες και, κατά συνέπεια, οι επιταχύνσεις που θα υπολογιστούν, σε συνδυασμό με το μεγάλο βήμα timestep t, μπορούν να οδηγήσουν σε μεγάλα σφάλματα στις καινούριες ταχύτητες και θέσεις των σωμάτων. Για αυτό το λόγο, δεν θα χρησιμοποιήσουμε για τον υπολογισμό της δύναμης τον τύπο (1.3), αλλά τον παρακάτω τροποποιημένο: N F i = G m i j=1 j i m j r i r j r i r j 2 + ε (2.1) Η μόνη διαφορά σε σχέση με τον τύπο (1.3) είναι ότι προσθέσαμε στον παρανομαστή ένα μικρό 8 πραγματικό αριθμό, το ε, το οποίο λέγεται softening parameter ή softening length. Επομένως, η επιτάχυνση τώρα βρίσκεται από: N a i = G j=1 j i m j r i r j r i r j 2 + ε (2.2) Αυτό που ουσιαστικά κάνει το ε, είναι να «αποσβένει» τις αλληλεπιδράσεις μεταξύ σωμάτων με απόσταση r ji μικρότερη της τιμής του, οι οποίες δεν μπορούν να προσομοιωθούν σωστά, λόγω αυτών που αναφέραμε παραπάνω, και να προχωρά στους υπολογισμούς των επιταχύνσεών τους σαν τα σώματα αυτά να απείχαν ε μεταξύ τους. Για μικρές αποστάσεις υπάρχει διαφορά μεταξύ των τιμών της δύναμης σύμφωνα με τον τύπο (1.3), και της τιμής που παίρνει χρησιμοποιώντας τον τύπο (2.1). Για μεγάλες αποστάσεις, αυτή η παραλλαγή στον τρόπο υπολογισμού της δύναμης έχει ελάχιστη σημασία, γιατί το ε είναι πολύ μικρός αριθμός. Η εφαρμογή του softening length αλλοιώνει σε ένα βαθμό τη δυναμική του συστήματος, αλλά αποτρέπει τις αφύσικες επιταχύνσεις που θα δημιουργούνταν από τις στενές προσεγγίσεις μεταξύ των σωμάτων. (Αντίθετα, σε συστήματα με συγκρούσεις δεν χρειάζεται να τροποποιήσουμε τον τύπο της δύναμης. Το βήμα t σε αυτές τις περιπτώσεις πρέπει να είναι αρκετά μικρό ώστε να αποφεύγονται μεγάλα σφάλματα, κατά τη διάρκεια προσεγγίσεων μεταξύ των σωμάτων, στις ταχύτητες και στις θέσεις) [29, 11, 21, 4]. 8 Πρέπει να είναι μικρός σε σύγκριση με τα μεγέθη του γαλαξία, ώστε να μην αλλοιώσει πολύ τη δυναμική του συστήματος. Στις περισσότερες προσομοιώσεις επιλέγεται να είναι της τάξης της μέσης απόστασης που έχουν τα σώματα του συστήματος μεταξύ τους.

23 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις Διαδικασία υπολογισμού των ταχυτήτων & θέσεων των σωμάτων Έστω ότι έχουμε ένα πρόβλημα Ν-σωμάτων, προς επίλυση. Για όλα τα σώματα έχουμε τις μάζες, τις αρχικές τους θέσεις και τις ταχύτητες. Μετά τη μετατροπή των εξισώσεων (1.7), έχοντας χρησιμοποιήσει τη μέθοδο Euler-Cromer, το πρόβλημα μας έχει αναχθεί στην επίλυση της (1.15). Δίνοντας ένα αρκούντως μικρό βήμα t, για κάθε σώμα i του συστήματος, κάνουμε τα εξής: Πρώτα υπολογίζεται η επιτάχυνση a 0 που δέχεται αυτό το σώμα, στην αρχική του θέση, από όλα τα υπόλοιπα σώματα του συστήματος, με βάση κάποια μέθοδο σαν αυτές που αναφέραμε στο προηγούμενο κεφάλαιο. Μετά, αυτή η επιτάχυνση χρησιμοποιείται μαζί με την αρχική του ταχύτητα, v 0, για να βρεθεί η ταχύτητα v 1 που θα έχει μετά από χρόνο t. Τέλος, χρησιμοποιώντας την ταχύτητα που έχουμε ήδη βρει παραπάνω και την αρχική του θέση, βρίσκουμε τη θέση r 1 που θα έχει μετά από χρόνο t. Τα παραπάνω αποτελούν τα βήματα που γίνονται σε μία επανάληψη του υπολογισμού. Επαναλαμβάνονται όσες φορές χρειάζεται, ανάλογα με το συνολικό χρονικό διάστημα κατά το οποίο επιθυμούμε να παρακολουθήσουμε την εξέλιξη του συστήματος. Θεωρώντας, κάθε φορά, ως αρχική επιτάχυνση, θέση και ταχύτητα, την επιτάχυνση, τη θέση και την ταχύτητα που έχει το σώμα στην αρχή κάθε χρονικού διαστήματος t n+1 t n = t, δηλαδή τις α n, v n, r n. Στο πρώτο βήμα που περιγράψαμε παραπάνω, η επιτάχυνση a n υπολογίζεται χρησιμοποιώντας κάποια μέθοδο. Σε αυτή την εργασία, γίνεται χρήση δύο διαφορετικών μεθόδων, της μεθόδου Δέντρων Hierarchical Tree Code Method και της Άμεσης μεθόδου Direct Method, την οποία χρησιμοποιούμε ως μέτρο σύγκρισης, τόσο για να ελέγξουμε την ακρίβεια της μεθόδου Δέντρων, όσο και για να αναδείξουμε την επιτάχυνση που προσφέρει η προαναφερθείσα μέθοδος στην επίλυση του προβλήματος. 2.3 Άμεση μέθοδος Παρακάτω περιγράφουμε πώς χρησιμοποιείται η Άμεση μέθοδος για τον υπολογισμό της επιτάχυνσης ενός σώματος i του συστήματος. Στην Άμεση μέθοδο, η δύναμη που ασκείται σε ένα σώμα i από Ν άλλα σώματα, βρίσκεται προσθέτοντας τις επιμέρους δυνάμεις που ασκεί κάθε ένα από αυτά τα Ν σώματα στο i. Συνεπώς, η εύρεση της επιτάχυνσης που ασκείται σε ένα σώμα i του συστήματος είναι απλή εφαρμογή του τύπου (1.5)(ή του (2.2) αν χρησιμοποιήσουμε softening length ). Η διαδικασία υπολογισμού της επιτάχυνσης που ασκείται σε ένα σώμα i από τα υπόλοιπα (αν την εκτελέσουμε για κάθε i = 1, 2,, N θα έχουμε τις επιταχύνσεις για όλα τα σώματα του συστήματος) είναι: Για κάθε σώμα j = 1, 2,, N του συστήματος:

24 18 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Ελέγχουμε αν ταυτίζεται με το σώμα i (του οποίου την επιτάχυνση θέλουμε να υπολογίσουμε). Αν ταυτίζεται, ορίζεται η τιμή της συνεισφοράς του στην επιτάχυνση του i να είναι ίση με 9 μηδέν. Αν δεν ταυτίζεται, τότε υπολογίζουμε την απόσταση που έχει το σώμα j από το σώμα i και την αντικαθιστούμε στον τύπο (1.5). Έτσι βρίσκουμε την επιτάχυνση που ασκείται, από το συγκεκριμένο σώμα, στο σώμα i. Τέλος, προσθέτουμε όλες αυτές τις επιμέρους επιταχύνσεις και έχουμε τη συνολική επιτάχυνση του i Πολυπλοκότητα Άμεσης μεθόδου Η Άμεση μέθοδος δεν χρησιμοποιεί προσεγγίσεις για την επίλυση των εξισώσεων κίνησης, επιτυγχάνοντας, έτσι, μεγαλύτερη ακρίβεια από άλλες μεθόδους. Αυτό όμως έχει ως αποτέλεσμα να απαιτείται και περισσότερος υπολογιστικός χρόνος. Για τον υπολογισμό της επιτάχυνσης που δέχεται ένα από τα Ν σώματα, ο αλγόριθμος της Άμεσης μεθόδου έχει να υπολογίσει επιμέρους επιταχύνσεις από (Ν-1) σώματα. Συνολικά, για να βρεθούν οι επιταχύνσεις για ολόκληρο το σύστημα των Ν σωμάτων, χρειάζονται Ν (Ν 1) ~ Ν 2 υπολογισμοί. Για αυτό λέμε ότι ο αλγόριθμος της Άμεσης μεθόδου έχει O(Ν 2 ) πολυπλοκότητα. Για παράδειγμα, αν έχουμε να μελετήσουμε την εξέλιξη ενός συστήματος 10 6 σωμάτων θέλουμε υπολογισμούς και αυτοί είναι μόνο οι υπολογισμοί που γίνονται κατά τη διάρκεια ενός βήματος t. Για μια ικανοποιητική προσομοίωση μπορεί να χρειαστεί να παρακολουθήσουμε την εξέλιξη του συστήματος για αρκετά μεγάλο χρονικό διάστημα, κάτι που μπορεί να απαιτεί χιλιάδες ή ακόμα και εκατοντάδες χιλιάδες βήματα. Είναι, επομένως, εύκολα ορατός ο υπολογιστικός φόρτος που ενέχει η εκτέλεση μια τέτοιας προσομοίωσης. Με την επιλογή μιας άλλης μεθόδου αντί της Άμεσης, όπως της μεθόδου Δέντρων που περιγράφεται στην επόμενη ενότητα, είναι δυνατή η μείωση του πλήθους των υπολογισμών [29]. 2.4 Hierarchical Tree Code Method (Barnes-Hut Method) Λέγεται και μέθοδος Βarnes Ηut. Αυτή η μέθοδος, για να μειώσει το πλήθος των υπολογισμών που απαιτούνται για να βρεθεί η δύναμη που ασκείται σε ένα σώμα i, χρησιμοποιεί την εξής, διαισθητικά προφανή, ιδιότητα: Αν μια ομάδα σωμάτων θεωρείται ότι βρίσκεται αρκετά μακριά από ένα σώμα i τότε, για να βρεθεί η δύναμη που δέχεται το i, δεν είναι αναγκαίο να υπολογιστούν οι επιμέρους δυνάμεις που του ασκούνται από κάθε ένα σώμα. Ο υπολογισμός της δύναμης, σε αυτή τη περίπτωση, μπορεί να γίνει προσεγγιστικά θεωρώντας τα σώματα της απομακρυσμένης ομάδας ως ένα ενιαίο σώμα. Για παράδειγμα έστω ότι έχουμε να υπολογίσουμε την βαρυτική επίδραση που ασκείται πάνω στον Ήλιο από το γαλαξία της Ανδρομέδας (Μ31). Ο Μ31 έχει αστέρια, 9 Είναι λογικό, ένα σώμα δεν ασκεί δύναμη στον ίδιο του τον εαυτό.

25 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 19 βρίσκεται όμως αρκετά μακριά από τον Ήλιο, συγκεκριμένα 778 Kpc (ή αλλιώς 2.54 εκατομμύρια έτη φωτός) [34]. Έτσι, φαίνεται λογικό να τον θεωρήσουμε ως ένα ενιαίο σώμα (με μάζα το άθροισμα των μαζών των άστρων του και θέση το κέντρο μάζας τους) και να υπολογίσουμε τη δύναμη που ασκεί αυτό το σώμα στον Ήλιο, και όχι τα επιμέρους άστρα του. Αντί, λοιπόν, του υπολογισμού αλληλεπιδράσεων ώστε να βρούμε τη δύναμη που ασκείται στον Ήλιο, έχουμε τον υπολογισμό μόνο μίας. Στην Εικόνα 2-1 που ακολουθεί, φαίνεται σχηματικά η ιδιότητα που μόλις περιγράψαμε, την οποία εφαρμόζει η μέθοδος Βarnes Ηut. Εικόνα 2-1: H ιδιότητα που χαρακτηρίζει τη μέθοδο Β-Η. Η διαφορά, λοιπόν, σε σχέση με την Άμεση μέθοδο, έγκειται στο ότι κατά τον υπολογισμό της δύναμης που ασκείται σε ένα σώμα i από Ν άλλα σώματα, τα σώματα που βρίσκονται αρκετά μακριά 10 από το i θα τα θεωρούμε ως ένα σώμα, μειώνοντας έτσι το πλήθος των απαιτούμενων υπολογισμών Περιγραφή κατασκευής του δέντρου Η πρώτη ενέργεια που κάνουμε στη μέθοδο Βarnes Ηut είναι να κατασκευάσουμε το δέντρο για το σύστημα των Ν-σωμάτων. Υπάρχουν δύο τρόποι κατασκευής του δέντρου, ο Top-Down και ο Bottom-Up. Ο πρώτος τρόπος είναι αυτός που χρησιμοποιείται συχνότερα. Τοποθετούμε όλα τα σώματα στο χώρο και τον διαιρούμε σε μικρότερα χωρία, τους κόμβους, και συνεχίζουμε έως ότου σε κάθε υπο-χωρίο να υπάρχει το πολύ ένα σώμα. Αυτά τα ονομάζουμε «φύλλα». Στον δεύτερο το δέντρο φτιάχνεται ανάποδα, παίρνουμε σε ζεύγη τα δύο κοντινότερα σώματα, τα ονομάζουμε «φύλλα» και μετά συνεχίζουμε προς τα «πάνω» ενώνοντας τα φύλλα σε κόμβους, σχηματίζοντας έτσι, το δέντρο. Στην παρούσα εργασία θα χρησιμοποιήσουμε την Top- Down κατασκευή του δέντρου. 10 Το αν ένα σώμα θεωρείται ότι βρίσκεται αρκετά μακριά ή όχι, ορίζεται από το κριτήριο που περιγράφεται στην ενότητα 2.4.2

26 20 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Η κατασκευή του γίνεται ως εξής: 1. Περικλείουμε το σύστημα των σωμάτων με ένα χωρίο κατάλληλου μεγέθους. Στις 2 διαστάσεις είναι ένα τετράγωνο (ή πιο γενικά ένα ορθογώνιο) και στις 3 διαστάσεις ένας κύβος (ή γενικά ένα ορθογώνιο παραλληλεπίπεδο). Το αρχικό αυτό χωρίο που περιέχει όλα τα σώματα της προσομοίωσης το ονομάζουμε «ρίζα» Root. 2. Ελέγχουμε το πλήθος των σωμάτων που βρίσκονται μέσα σε αυτό το χωρίο. Αν υπάρχουν παραπάνω από ένα σώματα: Χωρίζουμε το αρχικό χωρίο σε μικρότερα, χωρίζοντας κάθε διάσταση στη μέση (βλέπε σχήμα 2-2). Δηλαδή θα έχουμε 4 ίσα τετράγωνα (για 2D) ή 8 ίσους κύβους (για 3D). Εκτελούμε ξανά το βήμα 2. για κάθε ένα από τα χωρία που προέκυψαν. Κάθε χωρίο που έχει παραπάνω του ενός σωμάτων ονομάζεται «κόμβος» Node ή Inner Node. Αν περιέχει ακριβώς ένα σώμα, τότε το χωρίο ονομάζεται «φύλλο» Leaf ή Leaf Node. Αν είναι κενό τότε το χωριό ονομάζεται Empty Node. Στο τέλος της διαδικασίας θα έχουμε φτιάξει το δέντρο του συστήματος μας. Στις 2 διαστάσεις το δέντρο ονομάζεται Quad-Tree, κάθε κόμβος του οποίου χωρίζεται σε 4 «παιδιά», ενώ στις 3 διαστάσεις λέγεται Oct-Tree και κάθε κόμβος του έχει 8 «παιδιά» [29, 11, 28, 3, 9]. Εικόνα 2-2: Διαδοχικές διαιρέσεις ενός χωρίου στις 2 και στις 3 διαστάσεις. Στις 2 διαστάσεις, το τετράγωνο αυτό το καθορίζουν δύο σημεία, το P 1 (x 1, y 1 ) και το P 2 (x 2, y 2 ) τα οποία τα ορίζουμε εμείς, έτσι ώστε το χωρίο που θα σχηματίσουν να περικλείει όλο το σύστημα των Ν-σωμάτων. Θεωρούμε ότι ένα σώμα περιέχεται σε αυτό, αν βρίσκεται μέσα στη περιοχή που απεικονίζεται στο επόμενο σχήμα.

27 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 21 Εικόνα 2-3: Το χωρίο που περικλείει το σύστημα στις 2 διαστάσεις. Η διαίρεση του χωρίου στα 4 γίνεται βρίσκοντας τις συντεταγμένες των 5 καινούριων σημείων, όπως φαίνεται στο σχήμα παρακάτω. Κάθε τετράγωνο καθορίζεται από τα δύο διαγώνια σημεία του (τα σημεία τομής του με μία εκ των διαγωνίων του). Εικόνα 2-4: Διαίρεση χωρίου 2 διαστάσεων στα 4 «παιδιά» του.

28 22 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Ομοίως, στις 3 διαστάσεις, τον κύβο τον καθορίζουν τα δύο σημεία P 1 (x 1, y 1, z 1 ) και P 2 (x 2, y 2, z 2 ). Θεωρούμε ότι ένα σώμα περιέχεται σε αυτόν, αν βρίσκεται μέσα στη περιοχή που απεικονίζεται στο παρακάτω σχήμα. Εικόνα 2-5: Το χωρίο που περικλείει το σύστημα στις 3 διαστάσεις. Ο χώρος διαιρείται σε 8 ίσα κομμάτια βρίσκοντας τις συντεταγμένες των 13 καινούριων σημείων, όπως φαίνεται στο παρακάτω σχήμα, τα οποία σκοπό έχουν να ορίσουν τους κύβους που θα προκύψουν από τη διαίρεση. Εικόνα 2-6: Διαίρεση χωρίου 3 διαστάσεων στα 8 «παιδιά» του.

29 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 23 Στο σχήμα που ακολουθεί, περιγράφεται ένα παράδειγμα (για τις 2 διαστάσεις) διαίρεσης του χώρου και κατασκευής του Quad-Tree για ένα σύστημα Ν-σωμάτων. Ανάλογα, κατασκευάζεται και ένα Oct-Tree (για τις 3 διαστάσεις). Εικόνα 2-7: Διαίρεση χώρου και κατασκευή δέντρου στις 2 διαστάσεις.

30 24 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Κριτήριο αποδοχής κόμβου Κατά τη διαδικασία κατασκευής του δέντρου μπορούμε, ταυτόχρονα, να υπολογίζουμε τη συνολική μάζα και το κέντρο μάζας για κάθε μη κενό χωρίο που δημιουργείται. Οι τιμές τους χρειάζονται αργότερα για τον υπολογισμό της επιτάχυνσης. Η συνολική μάζα Μ ενός χωρίου βρίσκεται από το άθροισμα των μαζών των σωμάτων που περιέχει. Tο κέντρο μάζας R = (R x, R y, R z ) υπολογίζεται από τον παρακάτω τύπο: R = i m i r i (2.3) i m i Όπου m i, r i είναι η μάζα και η θέση ενός σώματος i, το οποίο περιέχεται στο χωρίο. Μετά την κατασκευή του δέντρου, το επόμενο βήμα είναι να υπολογίσουμε την επιτάχυνση που δέχεται κάθε σώμα i από τα υπόλοιπα. Η διαδικασία είναι παρόμοια με αυτή που είδαμε στην Άμεση μέθοδο. Θα εφαρμοστεί πάλι ο τύπος (1.5) (ή ο (2.2) αν χρησιμοποιήσουμε softening length ), με τη διαφορά ότι τα σώματα που είναι αρκούντως μακριά από το i, θα θεωρηθούν ως ένα ενιαίο ψευδοσώμα, και η συνεισφορά τους στην επιτάχυνση του i θα θεωρηθεί ότι είναι η επιτάχυνση που ασκεί το ψευδοσώμα στο i. Ο έλεγχος της εγγύτητας ως προς το i δεν γίνεται ανά σώμα αλλά ανά κόμβο Node, μέσω του κριτηρίου (Barnes & Hut 1986)[2]. Θα «διασχίσουμε» το δέντρο ξεκινώντας τον έλεγχο πρώτα από τον κόμβο της ρίζας root, συνεχίζοντας ύστερα σε κάθε έναν από τους κόμβους στους οποίους χωρίζεται, επαναλαμβάνοντας τη διαδικασία μέχρι τα φύλλα. Αν ένας κόμβος το ικανοποιεί, θεωρούμε ότι βρίσκεται αρκετά μακριά από το i ώστε να εφαρμοστεί η προσέγγιση της μεθόδου Barnes-Hut στον υπολογισμό της επιτάχυνσης. Για τον υπολογισμό δεν θα χρησιμοποιηθούν τα μεμονωμένα σώματα που περιέχει, αλλά ένα ψευδοσώμα με θέση το κέντρο μάζας τους και με μάζα το άθροισμα των μαζών τους. Αν δεν ικανοποιείται το κριτήριο, τότε ο κόμβος «ανοίγει» και ο έλεγχος μεταφέρεται στα «παιδιά» του κόμβου. «Διασχίζοντας» το δέντρο, αν φτάσουμε σε Leaf Nodes τότε υπολογίζεται η συνεισφορά τους στην επιτάχυνση του i, όπως και στην Άμεση μέθοδο, ενώ τα Empty Nodes έχουν συνεισφορά ίση με μηδέν. Το κριτήριο για την επιλογή ενός κόμβου είναι να ισχύει η παρακάτω σχέση: d > l θ (2.4) Όπου l είναι το μήκος της πλευράς του κόμβου και d είναι η απόσταση του κέντρου μάζας του από το σώμα i. Η σταθερά θ είναι μια θετική, μη μηδενική παράμετρος που ορίζει την ακρίβεια της μεθόδου. Στην ουσία, η απόσταση d του κέντρου μάζας, του υπό εξέταση κόμβου, από το σώμα i, συγκρίνεται με το μέγεθος του (του κόμβου) [29, 11, 9, 2].

31 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις Υπολογισμός της επιτάχυνσης Παραδείγματος χάριν, έστω ότι έχουμε να βρούμε την επιτάχυνση που ασκείται σε ένα σώμα i από έναν κόμβο Inner Node. Αν αυτός βρίσκεται αρκετά μακριά ώστε να ικανοποιείται το κριτήριο (2.4), τότε δεν θα μας απασχολήσει η εσωτερική του δομή. Ο υπολογισμός της επιτάχυνσης θα γίνει σαν να περιείχε ένα μόνο σώμα, με μάζα το άθροισμα των μαζών του κόμβου και θέση τις συντεταγμένες του κέντρου μάζας τους. (Εικόνα 2-8) Εικόνα 2-8: Κόμβος που ικανοποιεί το κριτήριο. Αν όμως ο κόμβος είναι πιο κοντά και δεν ικανοποιεί το κριτήριο, τότε θα ανοίξει στα «παιδιά» του. Άρα η επιτάχυνση του σώματος i θα είναι το άθροισμα από τις επιταχύνσεις που του ασκεί καθένα από τα «παιδιά» του κόμβου. (Εικόνα 2-9) Εικόνα 2-9: Κόμβος που δεν ικανοποιεί το κριτήριο. Συνοψίζοντας, η εύρεση της επιτάχυνσης που ασκείται σε κάθε ένα σώμα του συστήματος, σύμφωνα με τη μέθοδο Barnes-Hut βρίσκεται ως εξής: 1. Κατασκευάζουμε τo δέντρο και βρίσκουμε κέντρα μάζας και συνολική μάζα για κάθε κόμβο. 2. Για κάθε σώμα i του συστήματος: Ελέγχουμε όλους τους κόμβους για το αν ικανοποιούν το κριτήριο. Αυτό γίνεται «διασχίζοντας» το δέντρο όπως περιγράψαμε παραπάνω.

32 26 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Υπολογίζουμε τη συνεισφορά, στην επιτάχυνση του i, των κόμβων που ικανοποιούν το κριτήριο όσο και των μεμονωμένων Leaf Nodes, στα οποία δεν εφαρμόζεται η προσέγγιση τη μεθόδου, και τις προσθέτουμε. Μόλις βρεθούν οι επιταχύνσεις για όλα τα σώματα, συνεχίζεται η πορεία των υπολογισμών όπως περιγράψαμε στην ενότητα 2.2 και υπολογίζονται οι καινούριες τους θέσεις. Κάθε επανάληψη που ακολουθεί, ξεκινάει με τον ίδιο τρόπο που άρχισε και η πρώτη, κατασκευάζοντας δηλαδή το δέντρο από την αρχή. Αυτό γίνεται γιατί κάποια σώματα ενδέχεται να έχουν μετακινηθεί τόσο, ώστε να έχει αλλάξει αρκετά η θέση τους σε σχέση με τα υπόλοιπα, και το δέντρο που είχε κατασκευαστεί στην προηγούμενη επανάληψη να μην αντιπροσωπεύει πια την τωρινή κατανομή των σωμάτων του συστήματος. Θα μπορούσαμε, βέβαια, για να κερδίσουμε σε χρόνο, να μην το κατασκευάζουμε σε κάθε επανάληψη, αλλά για παράδειγμα ανά 10 ή 20 επαναλήψεις, έχοντας έτσι κάποιο πιθανό σφάλμα στους υπολογισμούς, γιατί ίσως οι θέσεις των σωμάτων να έχουν αλλάξει αρκετά σε σχέση με τις αρχικές, κατά τη διάρκεια αυτών των επαναλήψεων. Δεν είναι ανάγκη όμως να εφαρμόσουμε κάτι τέτοιο, μιας και η κατασκευή του δέντρου δεν είναι χρονοβόρα 11 συγκριτικά με άλλες διαδικασίες, όπως ο υπολογισμός των επιταχύνσεων [29, 11, 9] Παράμετρος θ και ακρίβεια της μεθόδου Η παράμετρος θ είναι πολύ σημαντική για τη μέθοδο Barnes-Hut, γιατί η τιμή της καθορίζει το πλήθος των κόμβων που θα ανοιχτούν στα «παιδιά» τους για τον υπολογισμό της επιτάχυνσης. Αν της δώσουμε μεγάλη τιμή, περισσότεροι κόμβοι θα ικανοποιούν το κριτήριο, δηλαδή θα θεωρηθεί ότι βρίσκονται αρκετά μακριά από το σώμα i και δεν θα ανοιχτούν στα «παιδιά» τους. Αυτό συνεπάγεται περισσότερους κόμβους που η συνεισφορά τους στην επιτάχυνση του i θα υπολογιστεί προσεγγιστικά. Επομένως, θα έχουμε σημαντική μείωση του χρόνου που χρειάζεται για να επιλυθεί το πρόβλημα, αλλά μικρότερη ακρίβεια στις τιμές των αποτελεσμάτων. Με τον ίδιο τρόπο, αν δοθεί μικρή τιμή στην παράμετρο, τότε θα είναι περισσότεροι οι κόμβοι που δεν θα ικανοποιούν το κριτήριο, που θα θεωρείται δηλαδή ότι βρίσκονται κοντά στο σώμα i, και επομένως θα ανοίξουν στα «παιδιά» τους, με αποτέλεσμα να έχουμε περισσότερους υπολογισμούς για την εύρεση της επιτάχυνσης του i, και άρα αύξηση του υπολογιστικού χρόνου, αλλά παράλληλα μεγαλύτερη ακρίβεια στα αποτελέσματα. Συνήθως επιλέγεται τιμή για το θ, η οποία βρίσκεται μέσα στο διάστημα: [0.3, 1.0]. Ένας από τους σκοπούς της παρούσας εργασίας είναι να συγκρίνουμε το χρόνο υπολογισμού και την ακρίβεια της μεθόδου Barnes-Hut ως προς την Άμεση μέθοδο, για διάφορες τιμές της παραμέτρου θ. 11 Ο χρόνος κατασκευής του δέντρου θεωρείται αμελητέος. Οι Bhatt & Liu (200ο) [3] αναφέρουν ότι για 10,000 σώματα σε σειριακή υλοποίηση της B-H μεθόδου πάνω από το 90% του χρόνου αφιερώνεται στον υπολογισμό των επιταχύνσεων και λιγότερο από 1% για την κατασκευή του δέντρου.

33 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις Πολυπλοκότητα μεθόδου Δέντρων Εφαρμόζοντας τα παραπάνω, μειώνεται κατά πολύ το πλήθος των υπολογισμών που πρέπει να εκτελεστούν ώστε να επιλυθεί το πρόβλημα, γεγονός που μας επιτρέπει να εκτελούμε προσομοιώσεις με μεγαλύτερο πλήθος σωμάτων και για περισσότερο χρόνο. Ξοδεύεται βέβαια κάποιος χρόνος για την κατασκευή του δέντρου, αλλά είναι μικρός όπως αναφέραμε στην υποσημείωση 9. Η πολυπλοκότητα κατασκευής του δέντρου έχει υπολογιστεί ότι είναι O(N logn), (γιατί, ξεκινώντας από τη ρίζα του δέντρου, για να φτάσουμε σε ένα φύλλο χρειάζονται, κατά μέσο όρο, O(logN) διαιρέσεις του χώρου περίπου. Ένα δέντρο περιέχει N φύλλα, οπότε ο χρόνος που χρειάζεται για να κατασκευαστεί το δέντρο συνολικά είναι της τάξης O(N logn) [11]). Όμως, και για τον υπολογισμό των δυνάμεων που ασκούνται πάνω στα σώματα του συστήματος, ο υπολογιστικός χρόνος είναι της τάξης O(N logn), (ο Hernquist (1988) [17] έδειξε ότι ο χρόνος που απαιτείται για να υπολογιστεί η συνολική δύναμη που ασκείται πάνω σε ένα σώμα i είναι O(logN), άρα για τον υπολογισμό των δυνάμεων που ασκούνται πάνω στα Ν σώματα του συστήματος είναι O(N logn)). Επομένως, καταλήγουμε στο ότι συνολικά η υπολογιστική πολυπλοκότητα της μεθόδου Δέντρων (ή Barnes-Hut) είναι O(N logn) [11]. 2.5 Κατανεμημένη μέθοδος Barnes-Hut Οι μέθοδοι που είδαμε μέχρι τώρα (Άμεση μέθοδος και Barnes-Hut) είναι σειριακές, δηλαδή εκτελούνται από έναν μόνο υπολογιστή (ή επεξεργαστή), ο οποίος περιέχει όλα τα δεδομένα και κάνει όλους τους υπολογισμούς για την επίλυση του προβλήματος. Για μεγάλο πλήθος σωμάτων, οι απαιτήσεις σε μνήμη, υπολογιστική ισχύ και υπολογιστικό χρόνο είναι πολύ μεγάλες. Αν όμως κατανέμαμε, με κάποιο τρόπο, την επίλυση του προβλήματος σε ένα πλήθος υπολογιστικών κόμβων (υπολογιστών ή επεξεργαστών), οι οποίοι δουλεύουν παράλληλα, θα μειωνόταν ο χρόνος επεξεργασίας και δεν θα ήταν αναγκαίο οι επιμέρους υπολογιστές να έχουν τόση μνήμη και επεξεργαστική ισχύ, όπως εάν έλυνε το πρόβλημα ένας υπολογιστής. Λόγω των χαρακτηριστικών, όμως, του προβλήματος που μελετάμε, η κατανεμημένη επίλυση δεν είναι κάτι εύκολο και πρέπει να γίνει με προσοχή. Η κατανομή των σωμάτων στο χώρο είναι ανομοιόμορφη, όπως επίσης και δυναμική (γιατί αλλάζουν συνεχώς θέσεις). Επιπρόσθετα, είναι απαραίτητη η επικοινωνία και ανταλλαγή δεδομένων μεταξύ των υπολογιστικών μονάδων, μιας και για τον υπολογισμό της επιτάχυνσης κάθε σώματος χρειάζονται και τοπικά δεδομένα αλλά και απομακρυσμένα από όλους τους άλλους υπολογιστές [3, 28]. Για να είναι δυνατός ο διαμερισμός των υπολογισμών στις διάφορες υπολογιστικές μονάδες, θα χρειαστεί να τροποποιηθεί κάπως η μέθοδος Barnes-Hut. Δεν θα αλλάξει η ουσία της μεθόδου, αλλά θα γίνουν κάποιες μετατροπές στις διαδικασίες και θα εισαχθούν κάποιες καινούριες έννοιες. Παρακάτω περιγράφεται η κατανεμημένη μέθοδος Barnes-Hut.

34 28 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Orthogonal Recursive Bisection (ORB) Η πρώτη ενέργεια που γίνεται στην αρχή κάθε 12 επανάληψης του κατανεμημένο Barnes- Hut, είναι ο διαμερισμός του αρχικού χωρίου σε τομείς domains, τόσους όσοι και οι διαθέσιμοι επεξεργαστές (domain decomposition), και η ανάθεση καθενός τομέα σε έναν επεξεργαστή. Αυτό γίνεται με τη μέθοδο Orthogonal Recursive Bisection (Ορθογώνια Αναδρομική Διχοτόμηση), ή εν συντομία ORB. Στην ORB, ο χώρος αναπαριστάται από μια ιεραρχία ορθογώνιων παραλληλεπιπέδων. Ένα δέντρο, δηλαδή, παρόμοιο με το δέντρο Barnes-Hut. Οι διαφορές σε σχέση με το δέντρο Β-Η είναι δύο. Η πρώτη είναι ότι κάθε χωρίο κόβεται στα δύο. Άρα κάθε κόμβος έχει 2 «παιδιά» και επομένως το δέντρο ORB είναι δυαδικό binary-tree. Ένα δέντρο ORB n επιπέδων αντιστοιχεί σε μια διαίρεση του χώρου σε 2 n υπο-χωρία [9, 3]. Η δεύτερη είναι ότι η επαναληπτική διαίρεση των χωρίων σταματά, όχι όταν σε κάθε χωρίο υπάρχει το πολύ ένα σώμα, αλλά όταν σε ένα επίπεδο του ORB tree το συνολικό πλήθος των υπο-χωρίων φτάσει να ισούται με αυτό των διαθέσιμων επεξεργαστικών μονάδων. Τα τελευταία αυτά υπο-χωρία (τα φύλλα του ORB tree ) είναι που μας ενδιαφέρουν, γιατί αντιπροσωπεύουν τους τομείς. Οι τομείς είναι ορθογώνια παραλληλεπίπεδα, κομμάτια του χώρου που έχουμε να προσομοιώσουμε. Ορίζονται από τις συντεταγμένες των δύο διαγώνιων σημείων τους P 1, P 2, όπως και οι κόμβοι του δέντρου Barnes-Hut. Όταν λέμε ότι αναθέτουμε κάθε τομέα σε έναν επεξεργαστή, αυτό που εννοούμε είναι ότι, στην ουσία, του αναθέτουμε τα σώματα που αυτός περιέχει. Ο κάθε επεξεργαστής έχει την ευθύνη να υπολογίζει τις επιταχύνσεις που δέχονται τα σώματά του, καθώς και να βρίσκει τις καινούριες ταχύτητες και θέσεις τους [45]. Η διαδικασία, γενικά, έχει ως εξής [9]: Πρώτα, το αρχικό χωρίο διχοτομείται ως προς μια επιλεγμένη διάσταση (ή τη x ή τη y ή τη z), σε μια επιλεγμένη θέση (ως σημείο τομής μπορούμε να διαλέξουμε το μέσο της πλευράς του χωρίου ή κάποιο άλλο σημείο). Από αυτή την τομή προκύπτουν δύο χωρία 13 (βλέπε Εικόνα 2-10). Στη συνέχεια, τα δύο αυτά χωρία κόβονται, με τη σειρά τους, ως προς την ίδια ή ως προς μια άλλη διάσταση, σε επιλεγμένα σημεία. Συνήθως, οι διαστάσεις που κόβονται τα χωρία εναλλάσσονται κυκλικά, ή διαλέγουμε κάθε φορά να κόψουμε ως προς εκείνη τη διάσταση, για την οποία το χωρίο έχει τη 14 μεγαλύτερη πλευρά. 12 Ο καταμερισμός του χώρου και των σωμάτων στις διαθέσιμες υπολογιστικές μονάδες θα επαναλαμβάνεται στην αρχή κάθε επανάληψης, για τους ίδιους λόγους που και στο σειριακό Β- Η επαναλαμβάναμε την κατασκευή του δέντρου. 13 Τα χωρία καθορίζονται από τα δυο διαγώνια σημεία τους P 1, P 2. Όταν επιλέγεται η θέση όπου θα κόψουμε ένα χωρίο, στην ουσία, αυτό που γίνεται είναι η εύρεση των συντεταγμένων δύο καινούργιων σημείων P 3, P 4 οι οποίες μαζί με τα P 1, P 2 θα καθορίσουν τα δύο υπο-χωρία που θα προκύψουν από τη διαίρεση του χωρίου. Το πρώτο υπο-χωρίο περιγράφεται από τα P 1, P 4 και το δεύτερο από τα P 3, P Με την απλή εναλλαγή διαστάσεων μπορεί να προκύψουν τομείς λεπτοί και μακριοί, με αποτέλεσμα γειτονικά σώματα να ανήκουν σε διαφορετικούς επεξεργαστές. Κάτι τέτοιο είναι

35 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 29 Οι τομές συνεχίζονται επαναληπτικά, όσες φορές χρειάζεται. (Δηλαδή μέχρι να έχουμε τόσους τομείς, όσοι είναι οι υπολογιστικοί κόμβοι). Εικόνα 2-10: Τομή χωρίου των 2 ή 3 διαστάσεων, σε δύο υπο-χωρία, για όλες τις πιθανές διαστάσεις τομής που μπορεί να επιλεγούν. Συνήθως στη βιβλιογραφία, για λόγους απλότητας, αφού κάθε φορά κόβουμε κάθε χωρίο που δημιουργείται σε δύο τμήματα, προτιμάται το πλήθος των επεξεργαστών που θα εκτελέσουν την προσομοίωση να είναι δυνάμεις του 2. Δηλαδή 2 n όπου n είναι ο αριθμός των φορών που διαιρούμε το χώρο (έτσι μπορούμε να χρησιμοποιήσουμε 2, 4, 8, 16, 32, κ.ο.κ. επεξεργαστές). Παρά την ευκολία που προσφέρει ο διαμερισμός του προβλήματος σε πλήθος επεξεργαστών που είναι δυνάμεις του 2, είναι, κατά κάποιο τρόπο, «ανελαστικός», με αποτέλεσμα εύκολα να μένουν ανεκμετάλλευτοι διαθέσιμοι υπολογιστικοί πόροι. Για παράδειγμα, αν έχουμε 15 υπολογιστές πρέπει αναγκαστικά ή να βρούμε ακόμα έναν για να γίνουν 16 ή να χρησιμοποιήσουμε μόνο τους 8 από αυτούς. Γιατί να μην μπορούμε να αξιοποιήσουμε και τους 15 υπολογιστές που έχουμε, στην προσομοίωση μας; Για αυτό το λόγο, στην παρούσα εργασία θα χρησιμοποιηθεί μια εκδοχή του ORB η οποία διαιρεί το χώρο για οποιοδήποτε πλήθος επεξεργαστών [26]. Το μόνο αρνητικό είναι ότι περιπλέκεται λίγο ο τρόπος διαμερισμού του χώρου σε τομείς. Ανάλογα με το πώς διαλέγουμε κάθε φορά το σημείο τομής μπορούμε να χαρακτηρίσουμε το διαμερισμό ως διαμερισμό με ή χωρίς ισοκατανομή υπολογιστικού φορτίου. Αν ο διαμερισμός γίνει λαμβάνοντας υπόψη μόνο τα γεωμετρικά πιθανόν να επιβαρύνει το δίκτυο κατά την ανταλλαγή των πληροφοριών (των Locally Essential Trees, όπως θα δούμε στην ενότητα 2.5.2, που είναι αναγκαίες για τον υπολογισμό των επιταχύνσεων μεταξύ των τομέων), με παραπάνω όγκο δεδομένων, ενώ με αυτό τον τρόπο επιλογής της διάστασης κοπής, οι τομείς που προκύπτουν είναι πιο τετραγωνισμένοι [32, 3].

36 30 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων χαρακτηριστικά του χωρίου (τα μήκη των πλευρών του), τότε λέμε ότι έχει γίνει χωρίς ισοκατανομή του υπολογιστικού φορτίου, ενώ αν γίνει λαμβάνοντας υπόψη την ίση κατανομή του πλήθους των σωμάτων ή του υπολογιστικού φορτίου, τότε λέμε ότι έγινε με ισοκατανομή του υπολογιστικού φορτίου ( load balance ). Χωρισμός χωρίς ισοκατανομή υπολογιστικού φορτίου Σε γενικές γραμμές έχει ως εξής: αν ένα χωρίο έχουμε να το μοιράσουμε σε άρτιο πλήθος επεξεργαστών, τότε το χωρίζουμε στη μέση και σε κάθε τμήμα του αναθέτουμε τους μισούς από τους αρχικούς επεξεργαστές, ενώ αν έχουμε να το μοιράσουμε σε περιττό πλήθος επεξεργαστών, τότε δεν το χωρίζουμε στη μέση αλλά σε δύο άνισα κομμάτια. Στο μεγαλύτερο τμήμα αναθέτουμε τους περισσότερους από τους μισούς αρχικούς επεξεργαστές και στο μικρότερο τους υπόλοιπους. Η όλη διαδικασία συνεχίζεται επαναληπτικά, για κάθε ένα από τα τμήμα που έχουν προκύψει. Δηλαδή, επαναλαμβάνουμε τον έλεγχο και τη διαίρεση, μέχρι σε κάθε υπο-χωρίο να έχει ανατεθεί μόνο ένας επεξεργαστής. Η διαδικασία περιγράφεται πιο αναλυτικά παρακάτω [32] : Έστω p το πλήθος των επεξεργαστών και w το μήκος της πλευράς του χωρίου, ως προς την οποία θα γίνει η τομή. Ξεκινώντας από το αρχικό χωρίο που περικλείει όλα τα σώματα της προσομοίωσης: 1. Ελέγχουμε το πλήθος των επεξεργαστών, στους οποίους έχουμε να διαμοιράσουμε το χωρίο: Αν p = 1: Τότε το χωρίο είναι ένας τομέας domain και αποθηκεύουμε τα διαγώνια σημεία που τον ορίζουν. Αλλιώς ελέγχουμε αν p είναι περιττός ή άρτιος. Αν p άρτιος: Τότε χωρίζουμε την πλευρά του χωρίου στη μέση, οπότε τα υπο-χωρία που θα προκύψουν θα έχoυν (σε εκείνη τη διάσταση) μήκος πλευράς w/2. Σε κάθε ένα αναθέτουμε p 2 επεξεργαστές. Αν p περιττός: Τότε χωρίζουμε την πλευρά του χωρίου σε ένα σημείο τέτοιο ώστε, το ένα υπο-χωρίο να έχει τα (p 1)/2p του μήκους της, δηλαδή μήκος ίσο με w(p 1)/2p και το άλλο να έχει (p + 1)/2p του μήκους της, δηλαδή μήκος w(p + 1)/2p. Στο χωρίο με το μικρότερο μήκος αναθέτουμε (p 1)/2 επεξεργαστές, και σε αυτό με το μεγαλύτερο (p + 1)/2 επεξεργαστές. 2. Επαναλαμβάνουμε το βήμα 1. για κάθε ένα από τα υπο-χωρία που δημιουργήθηκαν από τη διαίρεση. 3. Η διαδικασία συνεχίζεται επαναληπτικά, μέχρι για όλα τα υπο-χωρία να έχουμε p = 1, δηλαδή σε κάθε ένα να έχει ανατεθεί μόνο ένας επεξεργαστής. Παράδειγμα στις 2 διαστάσεις: Για παράδειγμα, έστω ότι έχουμε να λύσουμε ένα πρόβλημα στις 2 διαστάσεις, με Ν=8 σώματα, την επίλυση του οποίου θέλουμε να κατανείμουμε σε p = 5 υπολογιστές.

37 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 31 Θεωρούμε, για ευκολία, ότι η πλευρά του αρχικού τετραγώνου που περικλείει το σύστημα, έχει μήκος ίσο με τη μονάδα (δηλαδή P 1 = (0,0) και P 2 = (1,1)) και ότι σε κάθε διαίρεση του χώρου θα εναλλάσσουμε τη διάσταση στην οποία θα γίνεται η τομή, αρχίζοντας από την x. Θα περιγράψουμε πως εφαρμόζουμε τη μέθοδο ORB για να διαιρέσουμε το χώρο σε 5 τομείς: Εικόνα 2-11: Διαίρεση του χώρου χωρίς Load balancing σε 5 επεξεργαστές. Για το αρχικό χωρίο έχουμε p = 5 περιττός, άρα η τομή στη διάσταση x θα γίνει για x = = 2. Το 1ο τμήμα θα έχει πλευρά 2/5 και έχουμε να το διαιρέσουμε σε p = 5 1 = 2 υπολογιστές και το 2ο πλευρά 3/5 και πρέπει να 2 κατανεμηθεί σε p = 5+1 = 3 υπολογιστές. 2 ο Επαναλαμβάνουμε τον έλεγχο τώρα για αυτά τα δύο υπο-χωρία. Για το 1 p = 2 άρτιος άρα θα τμηθεί στη διάσταση y, σε δύο ίσα τμήματα το 1.1, και το 1.2 για y = 0 + 1/2. Για καθένα από τα 1.1, 1.2 το p = 1, άρα είναι τομείς και η διαίρεση του χώρου σταματάει για αυτά. Για το 2 ο p = 3 περιττός. Επομένως, θα τμηθεί στη διάσταση y, στο σημείο με y = = 1, στα χωρία 2.1 πλευράς 1/3 και 2.2 πλευράς 2/ Για το 2.1 p = 1, οπότε είναι τομέας. Για το 2.2 p = 2 άρτιος, άρα θα τμηθεί στη διάσταση x, για x = = 7 σε δυο τμήματα και καθένα μήκους 3/10 (είναι το μισό του 3/5).

38 32 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Για καθένα από τα και έχουμε ότι p = 1, άρα είναι τομείς και η διαίρεση του χώρου σταματάει. Χωρισμός με ισοκατανομή υπολογιστικού φορτίου (Load Balancing) Όταν οι κατανομές των σωμάτων στο χώρο δεν είναι ομοιόμορφες μια διαίρεση του χώρου όπως η παραπάνω δεν είναι αρκετά αποδοτική, γιατί θα είχε ως συνέπεια την άνιση κατανομή των σωμάτων μεταξύ των επεξεργαστών, επομένως και καθυστέρηση της επίλυσης του προβλήματος εξαιτίας της άνισης κατανομής του υπολογιστικού φόρτου. Για να αποφύγουμε κάτι τέτοιο, πρέπει η διαίρεση του χώρου σε τομείς να γίνει με τέτοιο τρόπο, ώστε το υπολογιστικό φορτίο work load, να είναι κατανεμημένο ισόποσα μεταξύ των επεξεργαστών. Μια σκέψη είναι να επιλέγουμε κάθε φορά το σημείο τομής έτσι, ώστε τα δύο υπο-χωρία που θα προκύψουν να έχουν το ίδιο πλήθος σωμάτων. Παρ όλα αυτά, ο ισόποσος διαμοιρασμός των σωμάτων στους επεξεργαστές δεν συνεπάγεται πάντα ότι και το υπολογιστικό φορτίο θα είναι ισόποσα μοιρασμένο 15 (θα ίσχυε μόνο εάν κάθε σώμα είχε το ίδιο υπολογιστικό φορτίο). Επομένως, θα πρέπει κάθε τομή που θα γίνεται, να μοιράζει το υπολογιστικό φορτίο στα δύο. Αυτό γίνεται μετρώντας σε κάθε επανάληψη το πλήθος των αλληλεπιδράσεων που χρειάστηκαν ώστε να υπολογιστεί η επιτάχυνση κάθε σώματος. Έτσι, στην επόμενη επανάληψη, ο καταμερισμός των σωμάτων στους τομείς να γίνει λαμβάνοντας υπόψη, όσο είναι δυνατόν, τον ισόποσο διαμοιρασμό του συνολικού πλήθους αλληλεπιδράσεων της προηγούμενης επανάληψης [3, 9]. Ο συγκεκριμένος τρόπος διαίρεσης χωρίου είναι παρόμοιος με αυτόν που μόλις περιγράψαμε (τον χωρισμό χωρίς Load balance ). Ταξινομούμε τον πίνακα με τις συντεταγμένες θέσης των σωμάτων (ή το πλήθος των αλληλεπιδράσεων ανά σώμα) με κάποιον αλγόριθμο ταξινόμησης, όπως για παράδειγμα τον 16 Quicksort [18], ώστε να μπορεί να επιλεγεί στη συνέχεια το στοιχείο που βρίσκεται στην επιθυμητή θέση, ή το επιλέγουμε κάνοντας χρήση κάποιου αλγόριθμου επιλογής π.χ. του Find [18]. Αν το πλήθος των επεξεργαστών είναι άρτιο, τότε η τομή του χωρίου θα γίνει στις συντεταγμένες του μεσαίου στοιχείου, ως προς τη διάσταση στην οποία γίνεται η διχοτόμηση. Στο κάθε ένα υπο-χωρίο θα αναθέσουμε τα p 2 των επεξεργαστών. Αν το πλήθος των επεξεργαστών είναι περιττό, τότε η τομή γίνεται στις συντεταγμένες του στοιχείου που βρίσκεται στην n(p 1)/2p θέση, όπου n το πλήθος των 15 Μπορεί δύο τομείς να έχουν το ίδιο πλήθος σωμάτων, αλλά τα σώματα στον ένα να βρίσκονται σε πιο πυκνή διάταξη από ότι στον άλλο. Με συνέπεια ο ένας τομέας, να χρειάζεται περισσότερους υπολογισμούς για να υπολογίσει τις επιταχύνσεις τους (αφού όταν τα σώματα είναι κοντά μεταξύ τους, συνεπάγεται ότι θα ανοίξουν περισσότεροι κόμβοι στα «παιδιά» τους). 16 Ή μπορούμε, για πιο γρήγορη ταξινόμηση, να χρησιμοποιήσουμε κάποια παράλληλη υλοποίηση του Quicksort [48] εκμεταλλευόμενοι την υπολογιστική ισχύ που διαθέτουμε. Μιας και στην παρούσα φάση, διαίρεσης του χώρου σε τομείς, οι επεξεργαστές δεν είναι επιφορτισμένοι με υπολογισμούς επιτάχυνσης.

39 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 33 σωμάτων που περιέχει το χωρίο και p ο αριθμός των επεξεργαστών που θέλουμε να του αναθέσουμε. Έτσι, στο υπο-χωρίο με τα περισσότερα σώματα (ή με το μεγαλύτερο πλήθος αλληλεπιδράσεων) αναθέτουμε τους περισσότερους επεξεργαστές ((p + 1)/2 το πλήθος) και σε αυτό με το μικρότερο πλήθος σωμάτων (ή αλληλεπιδράσεων) τους υπόλοιπους (p 1)/2 [32] Locally Essential Trees Στο κατανεμημένο Barnes-Hut δεν κατασκευάζουμε το συνολικό δέντρο του συστήματος. Αφού καταμεριστεί ο χώρος στους επεξεργαστές, κάθε τομέας κατασκευάζει το δικό του τοπικό δέντρο. Το επόμενο βήμα είναι να υπολογίσει τις επιταχύνσεις των σωμάτων του. Για να το κάνει αυτό χρειάζεται, εκτός από τα δεδομένα που έχει για τα σώματα του, και δεδομένα από τους άλλους τομείς. Λόγω του κριτηρίου Β-Η, για τον υπολογισμό της επιτάχυνσης, του κάθε σώματος, δεν είναι απαραίτητο, σε όλο του το βάθος, το συνολικό δέντρο που περιγράφει το σύστημα. Ορίζουμε ως Essential Nodes (ουσιαστικούς κόμβους) ενός σώματος i το σύνολο όλων των κόμβων (δηλαδή των LeafNodes και των InnerNodes ) που είναι απαραίτητοι για τον υπολογισμό της επιτάχυνσής του. Κάθε σώμα έχει το δικό του σύνολο απαραίτητων κόμβων, το οποίο αλλάζει με την πάροδο του χρόνου λόγω της μετακίνησης των σωμάτων [3]. Επομένως, κάθε τομέας, για να υπολογίσει τις επιταχύνσεις των σωμάτων του, δεν χρειάζεται να έχει τα αντίγραφα ολόκληρων των τοπικών δέντρων των υπολοίπων τομέων του συστήματος. Για κάθε σώμα ενός τομέα απαιτείται μόνο ένα τμήμα από τα τοπικά δέντρα των υπόλοιπων. Ως Locally Essential Tree ενός τομέα, ορίζουμε να είναι η ένωση όλων των απαραίτητων κόμβων Essential Nodes (ή αλλιώς όλων των απαραίτητων δέντρων) για κάθε ένα από τα σώματα που περιέχει ο τομέας. (Άρα το Locally Essential Tree περιλαμβάνει το δικό του τοπικό δέντρο και τμήματα από τα δέντρα των άλλων τομέων) [28]. Στην πράξη, για να κατασκευάσουμε το Locally Essential Tree ενός τομέα, δεν θα ακολουθήσουμε αυστηρά τον ορισμό, δηλαδή δεν θα βρούμε για κάθε σώμα του τομέα τα τμήματα που τους είναι απαραίτητα από τα δέντρα των άλλων τομέων, και μετά να πάρουμε την ένωση τους. (Αυτό γίνεται εφαρμόζοντας το κριτήριο Β-Η μεταξύ σώματος και κέντρου μάζας των κόμβων του δέντρου του τομέα). Θα κατασκευάσουμε το Locally Essential Tree, μειώνοντας κατά πολύ το πλήθος των συγκρίσεων που πρέπει να γίνουν, εφαρμόζοντας το κριτήριο Β-Η, όχι για κάθε σώμα, αλλά μόνο ανά τομέα. Είναι, δηλαδή, σαν να υποθέτουμε 17 ότι όλα τα σώματα εντός του τομέα έχουν τους 17 Η υπόθεση αυτή δεν επηρεάζει την ορθότητα των αποτελεσμάτων μας, μιας και αφού το κριτήριο εφαρμόζεται μεταξύ συνόρου τομέα και κέντρου μάζας των άλλων τομέων, θα έχουμε σίγουρα, τουλάχιστον το Locally Essential Tree που θα είχαμε αν εφαρμόζαμε τον ορισμό. Για κάποια σώματα του τομέα θα υπάρχουν και παραπάνω κόμβοι από ότι χρειάζονται (οι οποίοι θα απορριφθούν βέβαια στη συνέχεια, μέσω του κριτηρίου, κατά τον υπολογισμό των

40 34 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων ίδιους Essential Nodes από τα τοπικά δέντρα των άλλων τομέων. Έτσι, κάθε τομέας θα αρχίσει να εφαρμόζει το κριτήριο Β-Η μεταξύ αυτού και καθενός από τους άλλους τομείς, ελέγχοντας κάθε φορά την απόσταση d του συνόρου του με αυτή της θέσης του κέντρου μάζας των κόμβων του δέντρου του άλλου τομέα (αρχίζοντας από τη ρίζα του). Στο τέλος της διαδικασίας, κάθε τομέας θα έχει βρει τα τμήματα που χρειάζεται από τα τοπικά δέντρα των άλλων τομέων και θα τα μεταφέρει μέσω του δικτύου για να υπολογίσει τις επιταχύνσεις των σωμάτων του [9]. Ως απόσταση d μεταξύ συνόρου ενός τομέα και κέντρου μάζας ενός κόμβου, ορίζουμε την ελάχιστη απόσταση μεταξύ τους. Το ποιά θα είναι η ελάχιστη απόσταση κάθε φορά, εξαρτάται από τη θέση που θα έχουν οι συντεταγμένες του κέντρου μάζας του εκάστοτε κόμβου, σε σχέση με τις αντίστοιχες συντεταγμένες P 1, P 2 που ορίζουν τον τομέα. Η εικόνα 2.12 δείχνει την ελάχιστη απόσταση, για κάθε πιθανή σχετική θέση, ενός κόμβου από έναν τομέα, για τις δύο διαστάσεις. Εικόνα 2-12: Η ελάχιστη απόσταση d μεταξύ συνόρου ενός τομέα και κέντρου μάζας ενός κόμβου. επιταχύνσεων). Έχουμε λοιπόν λιγότερους υπολογισμούς, το μειονέκτημα είναι ότι θα μεταφερθούν μέσω του δικτύου παραπάνω δεδομένα.

41 Κεφάλαιο 2: Προσομοίωση συστήματος Ν-σωμάτων χωρίς συγκρούσεις 35 Αυτός ο τρόπος μέτρησης της απόστασης που χρησιμοποιούμε για το κριτήριο κατά τη διάρκεια κατασκευής των Locally Essential Trees, είναι διαφορετικός από αυτόν που χρησιμοποιούμε στο κριτήριο όταν ελέγχουμε αποστάσεις για τον υπολογισμό των επιταχύνσεων, τόσο στο σειριακό Β-Η, όσο και στο κατανεμημένο. Κατά τον έλεγχο του κριτηρίου για τον υπολογισμό των επιταχύνσεων μετράμε την απόσταση μεταξύ σώματος και κέντρου μάζας κόμβου, ενώ κατά την κατασκευή των Locally Essential Trees μετράμε την απόσταση μεταξύ συνόρου τομέα και κέντρου μάζας κόμβου. Δεν χρησιμοποιήσαμε τον ίδιο, όπως είπαμε και παραπάνω, ώστε να μειωθεί ο χρόνος κατασκευής κάθε Locally Essential Tree. Επίσης, επιλέξαμε να μετρήσουμε την απόσταση μεταξύ συνόρου τομέα και κέντρου μάζας κόμβου και όχι μεταξύ κέντρου μάζας τομέα και κέντρου μάζας κόμβου (που επίσης θα μείωνε το χρόνο κατασκευής των Locally Essential Trees ) διότι τότε, το Locally Essential Tree που θα προέκυπτε θα ήταν υποσύνολο αυτού που θα είχαμε εάν εφαρμόζαμε τον ορισμό (άρα θα έδινε λάθος αποτελέσματα) ενώ μετρώντας την απόσταση από το σύνορο εξασφαλίζουμε ότι θα είναι υπερσύνολο αυτού που θα είχαμε εάν εφαρμόζαμε τον ορισμό (δες υποσημείωση 17, σελ.33) Υπολογισμός της επιτάχυνσης Αφού, λοιπόν, χωριστεί ο χώρος σε τομείς, κατασκευαστούν τα τοπικά δέντρα και βρεθούν για κάθε τομέα τα Locally Essential Trees, μένει να υπολογίσει ο κάθε τομέας τις επιταχύνσεις που θα έχουν τα σώματά του, και ύστερα να βρει τις καινούριες ταχύτητες και θέσεις τους. Αφού έχει γίνει ήδη η μεταφορά των δεδομένων μεταξύ των επεξεργαστών, για τον υπολογισμό των επιταχύνσεων των σωμάτων και για τον υπολογισμό των καινούργιων ταχυτήτων και θέσεων τους, δεν χρειάζεται πια να έχουν επικοινωνία μεταξύ τους και μπορούν να δουλεύουν παράλληλα. Η επιτάχυνση που δέχεται συνολικά από όλο το σύστημα ένα σώμα i ενός τομέα, βρίσκεται σε δύο φάσεις: Πρώτα, υπολογίζεται η συνεισφορά στην επιτάχυνση του i από τα υπόλοιπα σώματα του τομέα του. Αυτό γίνεται με τον ίδιο τρόπο όπως και στο σειριακό B-H, (διασχίζοντας δηλαδή το δέντρο, ελέγχοντας το κριτήριο για όλους τους κόμβους και υπολογίζοντας ανάλογα τη συνεισφορά στη επιτάχυνση του i), μόνο που τώρα η όλη διαδικασία γίνεται για το τοπικό δέντρο. Ύστερα, προστίθενται στην επιτάχυνση που βρήκαμε στο προηγούμενο βήμα και οι συνεισφορές από όλους τους υπόλοιπους τομείς, για να βρούμε τη συνολική επιτάχυνση που δέχεται το σώμα i από όλο το σύστημα. Η συνεισφορά στην επιτάχυνση του i από τους υπόλοιπους τομείς βρίσκεται διασχίζοντας κάθε ένα από τα τμήματα των άλλων τοπικών δέντρων που μεταφέραμε στον τομέα και ελέγχοντας το κριτήριο. Συνοψίζοντας τα παραπάνω, η εύρεση της επιτάχυνσης που ασκείται σε κάθε ένα σώμα του συστήματος, σύμφωνα με τη κατανεμημένη μέθοδο Barnes-Hut, βρίσκεται ως εξής:

42 36 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων 1. Διαίρεση του χωρίου που περικλείει το σύστημα σε τομείς, τόσους όσοι και οι διαθέσιμοι επεξεργαστές. 2. Για κάθε τομέα: a. Κατασκευή του τοπικού δέντρου. b. Εύρεση του Locally Essential Tree. (Σε αυτό το βήμα έχουμε επικοινωνία μεταξύ των επεξεργαστών, ενώ στα υπόλοιπα βήματα οι επεξεργαστές δουλεύουν ανεξάρτητα). c. Για κάθε σώμα (του τομέα): i. Υπολογισμός της επιτάχυνσης που του ασκούν τα υπόλοιπα σώματα του τομέα του. ii. Υπολογισμός της επιτάχυνσης που του ασκούν οι κόμβοι, των τμημάτων των δέντρων όλων των άλλων τομέων. iii. Άθροιση των επιμέρους επιταχύνσεων, στη συνολική επιτάχυνση του i. iv. Υπολογισμός της καινούργιας ταχύτητας και θέσης του σώματος, όπως περιγράψαμε στην ενότητα Τα δύο παραπάνω βήματα 1, 2, αποτελούν τις ενέργειες που γίνονται σε ένα iteration (δηλαδή σε μία επανάληψη). Επαναλαμβάνουμε τα βήματα 1. και 2. για όσα iterations επιθυμούμε Πολυπλοκότητα κατανεμημένης μεθόδου Δέντρων Η υπολογιστική πολυπλοκότητα της σειριακής μεθόδου Δέντρων (ή αλλιώς σειριακής μεθόδου Barnes-Hut), όπως περιγράφηκε στην ενότητα 2.4.5, είναι συνολικά O(N logn). Στην κατανεμημένη εκδοχή της μεθόδου Δέντρων ο υπολογιστικός φόρτος κατανέμεται σε q, το πλήθος, υπολογιστικούς κόμβους, και, επομένως, αν θεωρήσουμε ότι το υπολογιστικό φορτίο έχει κατανεμηθεί ισόποσα μεταξύ τους, η υπολογιστική πολυπλοκότητά της θα είναι της τάξης O N q log (N q).παρόλα αυτά, η επιτάχυνση, την οποία προσφέρει στην επίλυση του προβλήματος η κατανεμημένη μέθοδος Δέντρων, είναι κάπως μικρότερη από αυτή που θα έπρεπε να προσφέρει κανονικά, σύμφωνα με την πολυπλοκότητά της. Αυτό συμβαίνει, όπως περιγράφεται στο επόμενο κεφάλαιο, λόγω του επιπλέον χρόνου που απαιτεί η επικοινωνία μεταξύ των ξεχωριστών υπολογιστικών μονάδων.

43 Κεφάλαιο 3: Αντικειμενοστρεφής προσέγγιση & Κατανεμημένος Υπολογισμός 37 Κεφάλαιο 3: Αντικειμενοστρεφής προσέγγιση & Κατανεμημένος Υπολογισμός 3.1 Αντικειμενοστρεφής υλοποίηση Ως γλώσσα υλοποίησης της παρούσας εργασίας θα χρησιμοποιηθεί η Java. Η Java είναι μία αντικειμενοστρεφής ( object- oriented ) γλώσσα προγραμματισμού, στην οποία κεντρικό ρόλο διαδραματίζουν τα αντικείμενα, τα οποία ορίζουμε στην παρακάτω υποενότητα, και οι μέθοδοί τους. Βασικές αρχές τις οποίες υποστηρίζει μια αντικειμενοστρεφής γλώσσα είναι η κληρονομικότητα inheritance, η αλληλεπίδραση των αντικειμένων μέσω ανταλλαγής μηνυμάτων, η αφαίρεση abstraction, η κελυφοποίηση encapsulation και ο πολυμορφισμός polymorphism [12] Αντικείμενα (passive & active objects) Ως αντικείμενο object καλούμε την αφαιρετική αναπαράσταση μιας «οντότητας», η οποία υπάρχει στο πρόβλημα για το οποίο γράφεται ο κώδικας, και η οποία χαρακτηρίζεται από την ταυτότητα, την κατάσταση (τις τιμές των δεδομένων της) και τη συμπεριφορά της (η οποία εκφράζεται μέσω των μεθόδων της). Για παράδειγμα, στο πρόβλημά μας, ένα αστέρι ή ένας κόμβος Inner Node αποτελούν αντικείμενα [33]. Ενεργά αντικείμενα active objects καλούνται τα αντικείμενα τα οποία έχουν το δικό τους νήμα εκτέλεσης thread, και, κατά συνέπεια, μπορεί το κάθε ένα από αυτά να εκτελείται ταυτόχρονα με τα υπόλοιπα, για αυτό και χρησιμοποιούνται σε παράλληλες ή κατανεμημένες εφαρμογές. Στην παρούσα εργασία, για τη δημιουργία, τον χειρισμό και τον τερματισμό των active objects θα χρησιμοποιήσουμε το ενδιάμεσο λογισμικό Πλέγματος ( Grid middleware ) ProActive, περισσότερα γα το οποίο αναφέρονται στην ενότητα 3.3. Τα αντικείμενα, τα οποία δεν έχουν το δικό τους νήμα εκτέλεσης, σε αντιδιαστολή με τα ενεργά, καλούνται παθητικά αντικείμενα passive objects ή συνήθη αντικείμενα ή αλλιώς, για συντομία, απλώς αντικείμενα [24]. 3.2 Κατανεμημένος & Παράλληλος υπολογισμός Κατά τη δεκαετία του 90 παρατηρήθηκε μια μεταστροφή στον τύπο των υπολογιστικών συστημάτων που χρησιμοποιούνταν για απαιτητικές εργασίες επεξεργασίας δεδομένων, από μεμονωμένους ισχυρούς υπολογιστές, προς τον παράλληλο και κατανεμημένο υπολογισμό χρησιμοποιώντας παράλληλους υπερ-υπολογιστές massively parallel machines και τεχνολογίες πλέγματος Grid computing.

44 38 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Γενικά Με τον όρο «παράλληλος υπολογισμός», εννοούμε το είδος του υπολογισμού κατά το οποίο υπολογιστικές εργασίες γίνονται ταυτόχρονα (δηλαδή παράλληλα), αντί η μία μετά την άλλη (σειριακά), κερδίζοντας έτσι σε χρόνο εκτέλεσης. Βασίζεται στο γεγονός ότι, συχνά, μια μεγάλη εφαρμογή μπορεί να διαιρεθεί σε μικρότερα τμήματα, τα οποία και λύνονται στη συνέχεια παράλληλα. Ο κατανεμημένος υπολογισμός είναι είδος παράλληλου υπολογισμού, στο οποίο ένα πρόγραμμα χωρίζεται σε τμήματα τα οποία τρέχουν παράλληλα σε πολλαπλούς ξεχωριστούς υπολογιστές που συνδέονται μεταξύ τους μέσω δικτύου. Από την άλλη, ο όρος «παράλληλος υπολογισμός» χρησιμοποιείται συνήθως για να υποδηλώσει ότι ένα πρόγραμμα χωρίζεται σε τμήματα τα οποία τρέχουν παράλληλα σε πολλαπλούς επεξεργαστές εντός του ιδίου υπολογιστή [41, 37]. Ο υπολογισμός Πλέγματος Grid computing ανήκει στο παραπάνω είδος υπολογισμού, αλλά ξεχωρίζει από τον συμβατικό κατανεμημένο υπολογισμό, λόγω της μεγάλης, συνήθως, κλίμακας, γεωγραφικής διασποράς και ετερογένειας των συστημάτων των οποίων οι πόροι χρησιμοποιούνται 18. Οι πόροι αυτοί μπορεί να προέρχονται από πολλούς (μερικές φορές έως πολλές χιλιάδες) ξεχωριστούς υπολογιστές, οι οποίοι μπορεί να βρίσκονται οπουδήποτε στον κόσμο, και είναι, συνήθως, συνδεδεμένοι μέσω του Διαδικτύου, καθιστώντας δυνατή την επίλυση μεγάλων υπολογιστικών προβλημάτων 19, τα οποία, διαφορετικά, δεν θα ήταν δυνατό να επιλυθούν ή θα απαιτούσαν την υπολογιστική ισχύ ακριβών υπερ-υπολογιστών. Έχουν τη δυνατότητα να διαχειρίζονται δυναμικά τους προσφερόμενους πόρους, δηλαδή να προσθέτουν και να αφαιρούν υπολογιστές στη δομή τους, ανάλογα με την διαθεσιμότητα, καθώς και να εκμεταλλεύονται το χρόνο κατά τον οποίο οι επεξεργαστές των μηχανημάτων θα περίμεναν αδρανείς, αναθέτοντάς τους, τότε, την επίλυση ενός τμήματος του προβλήματος. Έτσι, είναι δυνατή η εκμετάλλευση της υπολογιστικής ισχύος μηχανημάτων τα οποία χρησιμοποιούνται ήδη από τους χρήστες τους για άλλες εργασίες, χωρίς να τις διαταράσσουν [7, 27]. Ο μαζικά παράλληλος υπολογισμός massive parallel processing ανήκει στον παράλληλο υπολογισμό. Στον συγκεκριμένο, χρησιμοποιείται ένα μηχάνημα με πολλούς επεξεργαστές (συνήθως πολύ περισσότερους από 100), οι οποίοι συνδέονται μέσω εξειδικευμένου υλικού δικτύων, για να υπάρχει μεταξύ τους υψηλή ταχύτητα επικοινωνίας [41]. 18 Αν και γενικά, το μέγεθος ενός grid μπορεί να κυμαίνεται από μερικούς μόνο υπολογιστές συνδεδεμένους μέσω συμβατικού τοπικού δικτύου με κοινή αρχιτεκτονική και λειτουργικό σύστημα, μέχρι το πολύ μεγάλο πλήθος, που αναφέρεται στη συνέχεια, το οποίο ενώνει ετερογενείς υπολογιστές από όλο τον κόσμο μέσω του Διαδικτύου [7]. 19 Εξαιτίας του ενδεχόμενου περιορισμένου εύρους ζώνης και της υψηλής καθυστέρησης που μπορεί να υφίσταται στο Διαδίκτυο, η χρήση τεχνολογιών πλέγματος συνήθως περιορίζεται στην επίλυση embarrassingly parallel προβλημάτων [41]. (Ο ορισμός μιας embarrassingly parallel εφαρμογής δίνεται στην υποενότητα 3.2.2).

45 Κεφάλαιο 3: Αντικειμενοστρεφής προσέγγιση & Κατανεμημένος Υπολογισμός Παράλληλη - κατανεμημένη υλοποίηση εφαρμογών και αποδοτικότητα Το αν και κατά πόσο είναι δυνατό να υλοποιηθεί παράλληλα μια εφαρμογή, εξαρτάται από το είδος της. Σε κάποιες εφαρμογές 20, η φύση του προβλήματος, που αυτές περιγράφουν, είναι τέτοια που τους επιτρέπει να επιλυθούν σχεδόν εξολοκλήρου 21 από ένα πλήθος επεξεργαστών (ή υπολογιστών), οι οποίοι δουλεύουν παράλληλα και ανεξάρτητα ο ένας από τον άλλο στο μεγαλύτερο μέρος του προγράμματος, με ελάχιστη μόνο επικοινωνία μεταξύ τους. Αντιθέτως, σε άλλες εφαρμογές μπορεί μόνο ένα μικρό μέρος να υλοποιηθεί παράλληλα, και χρειάζεται να υπάρχει συχνή επικοινωνία μεταξύ των επεξεργαστών, με σκοπό την ανταλλαγή δεδομένων και τον συγχρονισμό των ταυτόχρονων διεργασιών. Γενικά, μπορούμε να χωρίσουμε τις εφαρμογές σε κατηγορίες, ανάλογα με το επίπεδο λεπτομέρειας τους ( granularity ), η οποία εκφράζει το λόγο του πλήθους των υπολογισμών προς τη συχνότητα επικοινωνίας μεταξύ των επεξεργαστών [39]. Ως embarrassingly parallel χαρακτηρίζονται οι εφαρμογές για τις οι οποίες μεταξύ των επεξεργαστών χρειάζεται ελάχιστη ή καθόλου επικοινωνία. Αυτή είναι και η ευκολότερη, ως προς την παράλληλη υλοποίηση, κατηγορία εφαρμογών, χωρίζοντας το πρόβλημα σε τμήματα και αναθέτοντας κάθε ένα σε κάποιον επεξεργαστή. Ως coarse-grained χαρακτηρίζονται εκείνες οι εφαρμογές για τις οποίες δεν χρειάζεται ιδιαίτερα συχνή επικοινωνία μεταξύ των επεξεργαστών, και όταν αυτή συμβαίνει είναι μετά από μεγάλο πλήθος ανεξάρτητων υπολογισμών. Τέλος ως fine-grained χαρακτηρίζονται εκείνες για τις οποίες μεταξύ μικρού πλήθους υπολογισμών, κατά τους οποίους οι επεξεργαστές δουλεύουν ανεξάρτητα, παρεμβάλλεται πολύ συχνή (αρκετές φορές ανά δευτερόλεπτο) επικοινωνία μεταξύ των επεξεργαστών. Η εφαρμογή που μελετάμε σε αυτή την εργασία εμπίπτει στη συγκεκριμένη κατηγορία. Θεωρητικά, αν ένα πρόβλημα μπορούσε να υλοποιηθεί παράλληλα στο 100% του, κατανέμοντας την επίλυση του σε p επεξεργαστές θα περιμέναμε, σε σχέση με τη σειριακή υλοποίηση, η επίλυση να επιταχυνθεί κατά p φορές (δηλαδή, ισοδύναμα, η τάξη του συνολικού χρόνου επεξεργασίας να διαιρεθεί με το p). Παρόλα αυτά, στην πράξη, η επιτάχυνση θα είναι μικρότερη από αυτή την τιμή λόγω του χρόνου που χρειάζεται η επικοινωνία μεταξύ των επεξεργαστών [9, 7]. Η καθυστέρηση λόγω ανταλλαγής μηνυμάτων αυξάνεται ανάλογα με το πλήθος των επεξεργαστών. Οπότε, για μια συγκεκριμένη, παράλληλη ή κατανεμημένη, υλοποίηση μιας εφαρμογής θα υπάρχει και ένα βέλτιστο πλήθος 22 υπολογιστικών μονάδων που μπορούμε να 20 Όπως για παράδειγμα η πρόσθεση ενός μεγάλου πλήθους αριθμών μεταξύ τους [7]. 21 Ακόμα και αυτές οι εφαρμογές θα έχουν πάντα κάποιο μέρος του κώδικα τους, έστω και μικρό, το οποίο δεν θα υλοποιείται παράλληλα. 22 Μπορεί να αυξηθεί μέχρι ένα σημείο αυτό το βέλτιστο πλήθος υπολογιστικών μονάδων, βελτιώνοντας την υλοποίηση ώστε να ελαχιστοποιηθούν οι επικοινωνίες, καθώς και αναβαθμίζοντας το υλικό του δικτύου που ενώνει τις υπολογιστικές μονάδες (π.χ. αντικαθιστώντας τα καλώδια Ethernet με καλώδια οπτικών ινών), αλλά πάντα θα υπάρχει.

46 40 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων χρησιμοποιήσουμε. Προσθέτοντας ολοένα και παραπάνω επεξεργαστές, το όφελος, σε χρόνο εκτέλεσης, της κατανομής του υπολογισμού θα γίνεται μικρό σε σχέση με την καθυστέρηση που θα δημιουργεί η μεταξύ τους επικοινωνία, μέχρι που, τελικώς, ο συνολικός χρόνος εκτέλεσης θα αυξάνεται αντί να μειώνεται parallel slowdown [22, 42]. 3.3 Κατανεμημένος προγραμματισμός με το ProActive Υπάρχουν διάφορα ενδιάμεσα λογισμικά που χρησιμοποιούνται στις τεχνολογίες πλέγματος ( Grid computing ) και τα οποία καλούνται Grid middleware. Το ProActive είναι ένα από αυτά. Ενδεικτικά, κάποια άλλα Grid middleware είναι το Globus, το Gridbus, κ.α.[7, 27]. Το ProActive είναι,στην ουσία, μία ανοιχτού κώδικα βιβλιοθήκη για τη Java, η οποία έχει ως σκοπό την απλούστευση του προγραμματισμού των παράλληλων και κατανεμημένων εφαρμογών. Επιτρέπει τον ταυτόχρονο και παράλληλο υπολογισμό και προσφέρει κατανεμημένες και ασύγχρονες επικοινωνίες [24]. Στην παρούσα εργασία το ProActive θα χρησιμοποιηθεί στην κατανεμημένη υλοποίηση της μεθόδου Β-Η 23, αλλά περισσότερο, ως ένα πλαίσιο κατανεμημένου υπολογισμού και όχι ως ενδιάμεσο λογισμικό πλέγματος Γενικά Μια κατανεμημένη εφαρμογή, η οποία δημιουργείται χρησιμοποιώντας το ProActive, έχει ως βασικές μονάδες της τα ενεργά αντικείμενα. Μια δεδομένη κλάση μπορεί να έχει τόσο ενεργά όσο και παθητικά στιγμιότυπα instances της, (δηλαδή μπορούν να υπάρχουν ενεργά, και παθητικά αντικείμενα της ίδιας κλάσης). Κάθε ένα από τα ενεργά αντικείμενα έχει το δικό του νήμα εκτέλεσης (όπως αναφέραμε στον ορισμό τους, παραπάνω) και την ικανότητα να «αποφασίζει» με ποια σειρά θα εξυπηρετεί τις εισερχόμενες κλήσεις των μεθόδων, οι οποίες, μέχρι να έρθει η σειρά τους να εξυπηρετηθούν, αποθηκεύονται αυτόματα σε μια σειρά αιτημάτων προς επεξεργασία 24. Τα ενεργά αντικείμενα μπορούν να δημιουργηθούν σε οποιονδήποτε από τους διαθέσιμους υπολογιστικούς κόμβους. Το ProActive διαχειρίζεται τα νήματα εκτέλεσης των ενεργών αντικειμένων, κάνοντας τη χρήση τους, καθώς και την κατανομή του υπολογισμού, διαφανή για τον προγραμματιστή. Επομένως, αφού δημιουργηθεί ένα ενεργό αντικείμενο, τόσο η δραστηριότητά του (δηλαδή το γεγονός ότι έχει το δικό του νήμα εκτέλεσης) όσο και η θέση του (είτε απομακρυσμένη, σε κάποιον άλλο υπολογιστικό κόμβο, είτε τοπική) είναι διαφανείς, επιτρέποντας ο χειρισμός των ενεργών αντικειμένων να γίνεται με τον ίδιο τρόπο που θα γινόταν αν ήταν παθητικά στιγμιότυπα της ίδιας κλάσης [24]. 23 Το ProActive στο εγχειρίδιο του περιγράφει μία ενδεικτική, μερική (σε σχέση με την υλοποίηση της παρούσας εργασίας) υλοποίηση του κατανεμημένου Β-Η. 24 Αν δεν οριστεί διαφορετικά, από προεπιλογή εξυπηρετούνται κατά σειρά άφιξης FIFO first come, first served.

47 Κεφάλαιο 3: Αντικειμενοστρεφής προσέγγιση & Κατανεμημένος Υπολογισμός Κλήσεις Μια κλήση καλείται σύγχρονη όταν ο καλών περιμένει πρώτα να του επιστραφεί το αποτέλεσμα της κλήσης και μετά να συνεχίσει με τον υπολογισμό τον υπολοίπων εργασιών του. (βλέπε Εικόνα 3-1) Εικόνα 3-1: Σύγχρονη κλήση. Μια κλήση λέγεται ασύγχρονη όταν ο καλών δεν περιμένει την επιστροφή του αποτελέσματος για να συνεχίσει. Μέχρι αυτό να του επιστραφεί, συνεχίζει με την εκτέλεση των υπολοίπων λειτουργιών του. Εικόνα 3-2: Ασύγχρονη κλήση. Χρησιμοποιώντας ασύγχρονες κλήσεις, εκμεταλλευόμαστε τα οφέλη του κατανεμημένου υπολογισμού, γιατί εκτελούνται ταυτόχρονα διεργασίες. Αυτό έχει ως αποτέλεσμα σημαντική μείωση στο συνολικό απαιτούμενο υπολογιστικό χρόνο [8].

48 42 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Οι κλήσεις προς ενεργά αντικείμενα χρησιμοποιώντας το ProActive είναι ασύγχρονες 25. Όταν καλείται μια μέθοδος σε ένα ενεργό αντικείμενο, τότε εκείνη επιστρέφει αμέσως ένα μελλοντικό αντικείμενο future object. Το μελλοντικό αντικείμενο δεν είναι η επιστρεφόμενη τιμή της μεθόδου, αλλά στην ουσία κρατάει θέση για το αποτέλεσμα της μεθόδου, όταν αυτό επιστρέψει. Ο καλών δεν μπορεί να κάνει διάκριση μεταξύ του future object και της τιμής που θα είχε επιστραφεί αν η κλήση γινόταν σε ένα παθητικό αντικείμενο και έτσι το νήμα εκτέλεσης του καλούντος συνεχίζει με την εκτέλεση του δικού του κώδικα, όπως θα έκανε εάν η μέθοδος είχε επιστρέψει. Ο σκοπός του future object είναι να σταματήσει (block) το νήμα εκτέλεσης του καλούντος μέχρι να επιστραφεί το αποτέλεσμα της μεθόδου, στη περίπτωση όπου αυτός το χρειαστεί (δηλαδή όταν θέλει να καλέσει κάποια μέθοδο σε αυτό), αλλά το ενεργό αντικείμενο, στο οποίο έγινε η κλήση, δεν έχει προλάβει ακόμη να το υπολογίσει και να το επιστρέψει. Αυτού του είδους ο συγχρονισμός που εκτελείται από το future object είναι γνωστός ως wait-by-necessity [24]. Σε ορισμένα σημεία (ανάλογα με τη φύση του προγράμματος) μεταξύ των ασύγχρονων κλήσεων, μπορεί να χρειάζεται να τοποθετηθούν από τον προγραμματιστή σημεία 26 συγχρονισμού για να αποφευχθούν τυχόν συνθήκες ανταγωνισμού Race conditions, αδιέξοδα 27 Deadlocks και σφάλματα στα αποτελέσματα των υπολογισμών. Με το ProActive, η δημιουργία σημείων συγχρονισμού γίνεται με κλήση των μεθόδων PAFuture.waitFor() και PAFuture.waitforall() Ειδικότερα για τα ενεργά αντικείμενα Τα ενεργά αντικείμενα έχουν διαφορετική εντολή αρχικοποίησης από αυτή των παθητικών. Το ProActive προσφέρει 2 εναλλακτικές εντολές για την αρχικοποίηση τους: την PAActiveObject.newActive(), η οποία δημιουργεί ένα ενεργό αντικείμενο σε κάποιον υπολογιστικό κόμβο (και είναι αυτή η οποία χρησιμοποιείται στην παρούσα εργασία) και την PAActiveObject.newActiveInParallel(), η οποία δημιουργεί πολλαπλά ενεργά αντικείμενα σε έναν ή περισσότερους υπολογιστικούς κόμβους. Εναλλακτικά, η δημιουργία τους μπορεί να γίνει από ήδη υπάρχοντα παθητικά αντικείμενα, τα οποία μετατρέπονται σε ενεργά μέσω της εντολής PAActiveObject.turnActive(). Ο 25 Δεδομένου ότι ικανοποιείται η προϋπόθεση η επιστρεφόμενη τιμή της μεθόδου να είναι είτε void (δηλαδή να μην επιστρέφει κάτι) είτε κάποιο αντικείμενο και όχι βασικού τύπου π.χ. Int, Double κ.τ.λ. (όπου σε αυτή την περίπτωση, η κλήση προς το ενεργό αντικείμενο είναι σύγχρονη). 26 Προκύπτουν όταν διαφορετικές διεργασίες μοιράζονται και μεταβάλουν κάποια κοινά δεδομένα με τέτοιο τρόπο ώστε το αποτέλεσμα να εξαρτάται από τη χρονική σειρά με την οποία θα τα προσπελάσουν [43]. 27 Δημιουργούνται όταν δύο ή περισσότερες διεργασίες οι οποίες μοιράζονται κάποιον πόρο, επιχειρούν να τον κάνουν χρήση ταυτόχρονα, με αποτέλεσμα να περιμένουν η κάθε μία από την άλλη να τον απελευθερώσει ώστε να συνεχίσουν. Έτσι δημιουργείται μια κυκλική αλυσίδα όπου, η κάθε διεργασία, για να συνεχίσει με τις υπόλοιπες εργασίες της, χρειάζεται τον πόρο που κατέχει η άλλη διεργασία. Αυτό οδηγεί σε άπειρη αναμονή των διεργασιών αυτών και επομένως σε κόλλημα του προγράμματος επ αόριστον [36].

49 Κεφάλαιο 3: Αντικειμενοστρεφής προσέγγιση & Κατανεμημένος Υπολογισμός 43 τερματισμός τους πρέπει να γίνεται ρητά από τον προγραμματιστή 28, χρησιμοποιώντας την PAActiveObject.terminateActiveObject(), μιας και δεν τα τερματίζει αυτόματα μετά τη χρήση τους, όπως γίνεται με τα συνήθη αντικείμενα, ο garbage collector της Java. Για τις εφαρμογές με ενεργά αντικείμενα, χρησιμοποιώντας το ProActive, ισχύουν τα παρακάτω: Οι κλάσεις των οποίων τα αντικείμενα θα χρειαστεί να μεταφερθούν μέσω του δικτύου πρέπει να υλοποιούν τη διασύνδεση Interface Serializable. Η κλάση στην οποία γίνεται η αρχικοποίηση των ενεργών αντικειμένων, απαιτείται να είναι public και να μην είναι final. Στην κλάση των ενεργών αντικειμένων είναι απαραίτητη η ύπαρξη ενός άδειου κατασκευαστή empty constructor. Όταν γίνονται κλήσεις προς ενεργά αντικείμενα, οι οποίες έχουν ως παραμέτρους παθητικά αντικείμενα, τότε αυτά περνιούνται με deep-copy 29, ενώ αν έχουν ως παραμέτρους ενεργά αντικείμενα, τότε αυτά περνιούνται με αναφορά by reference. Το ίδιο ισχύει και για τις επιστρεφόμενες τιμές κλήσεων προς ενεργά αντικείμενα. Αν η επιστρεφόμενη τιμή είναι ενεργό αντικείμενο, τότε θα επιστραφεί μια αναφορά σε αυτό, ενώ αν είναι παθητικό θα γίνει deep-copy και θα επιστραφεί ένα αντίγραφο του αντικειμένου [24]. 28 Βεβαίως, πρέπει να δοθεί προσοχή σε ποιό σημείο του προγράμματος θα γίνει ο τερματισμός τους, ώστε να μην τα τερματίσουμε πριν ολοκληρώσουν τις εργασίες για την εκτέλεση των οποίων και τα δημιουργήσαμε. 29 Όταν γίνεται αντιγραφή ενός αντικειμένου μέσω Deep-copy δημιουργείται ένα νέο αντικείμενο αντίγραφο του αρχικού, και όχι απλά μια αναφορά στο αρχικό αντικείμενο, με την ιδιαιτερότητα ότι το αρχικό αντικείμενο αναπαράγεται σε όλο του το βάθος. Δηλαδή αν το αρχικό είχε αναφορές σε άλλα αντικείμενα, το αντίγραφο του δεν θα έχει αναφορές σε εκείνα αλλά δημιουργεί εκ νέου αντίγραφα όλων εκείνων των αντικειμένων με τα οποία συνδέεται [40].

50 44 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Κεφάλαιο 4: Σχεδίαση & Υλοποίηση Στο παρόν κεφάλαιο περιγράφονται οι κλάσεις και οι μέθοδοι που χρησιμοποιήθηκαν στον κώδικα για την επίλυση του προβλήματος των Ν-σωμάτων, μέσω UML διαγραμμάτων (διαγράμματα κλάσεων class diagrams και ακολουθιών sequence diagrams ) [46]. 4.1 Σημαντικές κλάσεις και αντικείμενα Δημιουργήθηκαν τρία ανεξάρτητα προγράμματα για την επίλυση του προβλήματος, καθένα χρησιμοποιεί και διαφορετική μέθοδο επίλυσης (Άμεση, Barnes-Hut, κατανεμημένη Barnes-Hut).Οι κλάσεις θα περιγραφούν ανά είδος μεθόδου επίλυσης, μιας και υπάρχει διαφορά μεταξύ τους, τόσο στα πεδία των κλάσεων, όσο και στις μεθόδους. Όσες κλάσεις δεν έχουν υποστεί μετατροπές, για να προσαρμοστούν στη μέθοδο επίλυσης που χρησιμοποιείται, θα περιγραφούν μόνο μια φορά Άμεση μέθοδος Οι κλάσεις οι οποίες δημιουργούν τα αντικείμενα, τα οποία θα μας απασχολήσουν περισσότερο, είναι οι εξής: η Star και η TreeNode. Ο κατασκευαστής της Star, δημιουργεί τα σώματα τα οποία θέλουμε να μελετήσουμε, δηλαδή τα αστέρια. Κάθε αντικείμενό της έχει 3 πεδία, τα οποία θεωρούμε ότι περιγράφουν ικανοποιητικά ένα αστέρι για την εκτέλεση της προσομοίωσης. Αυτά τα πεδία είναι: η μάζα του, η θέση του και η ταχύτητά του. Στην υλοποίηση της Άμεσης μεθόδου, θεωρούμε ότι κάθε αντικείμενο Star είναι «υπεύθυνο» για τον υπολογισμό της επιτάχυνσής του (λόγω της επίδρασης που του ασκούν τα υπόλοιπα σώματα του συστήματος), της καινούργιας ταχύτητας και της καινούργιας θέσης του. Επομένως, στην κλάση Star θα περιέχονται οι μέθοδοι που υπολογίζουν την επιτάχυνση, την ταχύτητα και τη θέση. Ακολουθεί η απεικόνιση της κλάσης Star: Star +mass: double +p: Vector3D +v: Vector3D +a: Vector3D +dt: final double +G: static final double +epsilon2: static final double +Star(mass: double, p: Vector3D, v: Vector3D) +calculateacceleration(vector<star>bodies): Vector3D +calculatenewpossition(): Vector3D Εικόνα 4-1: Απεικόνιση της κλάσης Star για την Άμεση μέθοδο.

51 Κεφάλαιο 4: Σχεδίαση & Υλοποίηση 45 Η θέση, η ταχύτητα και η επιτάχυνση ενός αντικειμένου της κλάσης Star είναι διανυσματικές ποσότητες, και, εφόσον θα μελετήσουμε το πρόβλημα στις 3 διαστάσεις, έχουν από 3 συντεταγμένες x, y, z η κάθε μία. Και οι τρείς προαναφερθείσες διανυσματικές ποσότητες εκφράζονται από το αντικείμενο Vector3D. Η κλάση Vector3D απεικονίζεται στο παρακάτω σχήμα και είναι η ίδια, τόσο για την Άμεση μέθοδο όσο και για το σειριακό, αλλά και για το κατανεμημένο Barnes-Hut. +x: double +y: doyble +z: double Vector3D +Vector3D(x1: double, y1: double, z1: double) +Vector3D() +createpoint(r: double, theta: double, phi: double): Vector3D Εικόνα 4-2 Απεικόνιση της κλάσης Vector3D. Η κλάση GalaxyFactory είναι ίδια και για τις τρεις μεθόδους επίλυσης. Είναι μια κλάση δημιουργίας αντικειμένων Factory [49] η οποία κατασκευάζει τα αρχικά δεδομένα του συστήματος, δηλαδή τα αστέρια ομαδοποιημένα σε γαλαξίες, χρησιμοποιώντας τις κλάσεις που περιγράφηκαν πιο πάνω, μέσω της μεθόδου creategalaxy. Η μέθοδος creategalaxy() παίρνει ως παραμέτρους τα χαρακτηριστικά του γαλαξία (το πλήθος των άστρων που τον αποτελούν, την ακτίνα του, τη θέση όπου θα τοποθετηθεί το κέντρο του στο χώρο συντεταγμένων και την ταχύτητα του ως σύνολο) και μας επιστρέφει τα αντικείμενα Star από τα οποία αποτελείται (δηλαδή τα αστέρια του). Περισσότερα για αυτά τα αρχικά δεδομένα και για τον τρόπο με τον οποίο κατασκευάζονται οι γαλαξίες που θα χρησιμοποιηθούν για τις προσομοιώσεις της παρούσας εργασίας, περιγράφονται στο κεφάλαιο 5. +sqrt2: static final double +vfact: static final double GalaxyFactory +creategalaxy(nbodies: int, alpha: double, galpos: Vector3D, galvel: Vector3D): Vector<Star> +g(q: double): double +Ve(r: double): double Εικόνα 4-3: Απεικόνιση της κλάσης GalaxyFactory.

52 46 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Μέθοδος Barnes-Hut Αντίθετα από την Άμεση μέθοδο, τόσο στο σειριακό όσο και στο κατανεμημένο Barnes- Hut, ο υπολογισμός της επιτάχυνσης των σωμάτων δεν εκτελείται από την κλάση Star αλλά από τις μεθόδους της κλάσης TreeNode. Η Star είναι υπεύθυνη μόνο για τον υπολογισμό της ταχύτητας και της θέσης των αντικειμένων της. Παρακάτω παρατίθεται η απεικόνιση της κλάσης Star για το σειριακό Β-Η (για το κατανεμημένο Β-Η διαφέρει). +mass: double +p: Vector3D +v: Vector3D +a: Vector3D +dt: final double Star +Star(mass: double, p: Vector3D, v: Vector3D) +calculatenewpossition(b: Star): Vector3D Εικόνα 4-4: Απεικόνιση της κλάσης Star για το σειριακό Β-Η. Η κλάση TreeGenerator είναι υπεύθυνη για τη δημιουργία του δέντρου του συστήματος, και, κατά συνέπεια, περιέχει διάφορες μεθόδους σχετικές με τη κατασκευή του, εφαρμόζοντας τη διαδικασία που περιγράψαμε στην ενότητα ITERATIONS: static final int TreeGenerator +main(string[ ] args): void +isin(p: Vector3D, p1: Vector3D, p2: Vector3D): boolean +getmassesin(b: Vector<Star>, p1: Vector3D, p2: Vector3D): Vector<Star> +constructtree(b: Vector<Star>, p1: Vector3D, p2: Vector3D): TreeNode +movebodies(b: Vector<Star>): void +setaccelerations(t: TreeNode, b: Vector<Star>): void +showtree(t: TreeNode): void Εικόνα 4-5: Απεικόνιση της κλάσης TreeGenerator για το σειριακό Β-Η. Η κλάση TreeNode δημιουργήθηκε για να περιγράψει τους κόμβους του δέντρου που κατασκεύασαν οι μέθοδοι της κλάσης TreeGenerator. Η υπερκλάση TreeNode είναι μια αφηρημένη κλάση abstract, και, στην ουσία, σκιαγραφεί τα χαρακτηριστικά των

53 Κεφάλαιο 4: Σχεδίαση & Υλοποίηση 47 μεθόδων των υποκλάσεων της, οι οποίες και θα μας απασχολήσουν. Οι υποκλάσεις της TreeNode είναι η InnerNode (οι ενδιάμεσοι κόμβοι) και η LeafNode (τερματικός κόμβος που περιέχει μόνο ένα σώμα). Υπάρχει, επίσης, η κλάση EmptyNode (άδειος κόμβος), η οποία είναι υποκλάση της LeafNode. Η TreeNode είναι υπεύθυνη για τον υπολογισμό των επιταχύνσεων μέσω της αφηρημένης ( abstract ) μεθόδου calculateacceleration(), η οποία υλοποιείται στις υποκλάσεις της. Στην calculateacceleration() γίνεται εφαρμογή του πολυμορφισμού, γιατί για κάθε υποκλάση της TreeNode η μέθοδος υλοποιείται διαφορετικά. Έτσι, αλλιώς θα γίνει ο υπολογισμός της επιτάχυνσης που δέχεται ένα σώμα από ένα συγκεκριμένο κόμβο, αν αυτός ο κόμβος είναι InnerNode, αλλιώς αν είναι ένα LeafNode και αλλιώς αν είναι EmptyNode. Στο διάγραμμα κλάσεων που ακολουθεί, περιγράφονται οι κλάσεις TreeNode, InnerNode, LeafNode και EmptyNode, καθώς και οι σχέσεις που έχουν αυτές μεταξύ τους. 8 TreeNode +G: static final double #epsilon2: static final double +masses(): double +centerofmass(): Vector3D +calculateacceleration(b: Star): Vector3D +p1: Vector3D +p2: Vector3D +bodies: Vector<Star> +totalmass: double +cm: Vector3D +theta: static final double InnerNode +InnerNode(bodies: Vector<Star>, p1: Vector3D, p2: Vector3D) +masses(): double +centerofmass(): Vector3D +cubelength(p1: Vector3D, p2: Vector3D): double +calculateacceleration(b: Star): Vector3D +b: Star LeafNode +LeafNode(b: Star) +LeafNode() +masses(): double +centerofmass(): Vector3D +calculateacceleration(bb: Star): Vector3D EmptyNode +calculateacceleration(bb: Star): Vector3D Εικόνα 4-6: Διάγραμμα των κλάσεων TreeNode, InnerNode, LeafNode και EmptyNode για το σειριακό Β-Η (στις 3 διαστάσεις).

54 48 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Κατανεμημένη μέθοδος Barnes-Hut Η κατανεμημένη υλοποίηση του Β-Η κάνει χρήση της βιβλιοθήκης ProActive. Ωστόσο στο κατανεμημένο Β-Η πρέπει να γίνουν οι απαραίτητες ενέργειες ώστε να πληροί τις προϋποθέσεις, που αναφέρθηκαν στο προηγούμενο κεφάλαιο, τις οποίες θέτει το ProActive για τη σωστή λειτουργία του, και να αντιμετωπιστούν τα προβλήματα που δημιουργεί κάνοντας deep-copy στα απλά αντικείμενα, όταν είναι οι επιστρεφόμενες τιμές μεθόδων ενεργών αντικειμένων. Α. Τροποποιήσεις λόγω χρήσης του ProActive Οι κλάσεις TreeNode (επομένως και οι υποκλάσεις της), Star και Vector3D που τα αντικείμενα τους θα χρειαστεί να μεταφερθούν μέσω δικτύου, υλοποιούν τη διασύνδεση Interface Serializable. Το ProActive απαιτεί, στην κλάση των active objects, την ύπαρξη ενός άδειου κατασκευαστή empty constructor. Τα active objects διαλέγουμε να είναι τύπου TreeGenerator, άρα θα πρέπει στην κλάση TreeGenerator να προσθέσουμε, εκτός από τον ήδη υπάρχοντα κατασκευαστή, και έναν άδειο. Κατά την εύρεση του Locally Essential Tree ενός τομέα γίνεται κλήση των μεθόδων των υπολοίπων active objects, ώστε να του επιστραφούν τα κομμάτια των τοπικών τους δέντρων, τα οποία τού είναι απαραίτητα. Τα κομμάτια, όμως, αυτά είναι τύπου InnerNode και LeafNode, που είναι απλά αντικείμενα, και, όπως αναφέραμε στο προηγούμενο κεφάλαιο, λόγω του μηχανισμού κλήσης του ProActive, θα γίνει deepcopy και θα επιστραφούν αντίγραφά τους (όχι αυτά τα ίδια τα αντικείμενα) σε όλο τους το βάθος. Δηλαδή, έστω ότι ένας τομέας θέλει να βρει αν ένας κόμβος ενός άλλου ενεργού αντικειμένου τού είναι απαραίτητος ή όχι. Αυτό γίνεται ελέγχοντας το κριτήριο Barnes- Hut: Αν το κριτήριο ικανοποιείται, δηλαδή κριθεί ότι ο κόμβος είναι αρκετά μακριά, τότε: Αν είναι LeafNode, τότε θα επιστραφεί ένα αντίγραφο του LeafNode. Αν είναι InnerNode, τότε επιστρέφεται ένα καινούργιο αντικείμενο τύπου LeafNode με μάζα το άθροισμα των μαζών των παιδιών του InnerNode και θέση το κέντρο μάζας τους. Αυτό το κάναμε γίνεται γιατί στη συγκεκριμένη περίπτωση δεν μας νοιάζει η εσωτερική δομή του κόμβου (δεν χρειάζονται δηλαδή τα «παιδιά» του). Αν δεν είχαμε ορίσει να επιστραφεί αυτό το καινούργιο αντικείμενο τύπου LeafNode, εξαιτίας του μηχανισμού deep-copy του ProActive, θα επιστρεφόταν το InnerNode με τα «παιδιά» του, InnerNodes και LeafNodes, σε όλο του το βάθος.

55 Κεφάλαιο 4: Σχεδίαση & Υλοποίηση 49 Αν το κριτήριο δεν ικανοποιείται, δηλαδή κριθεί ότι ο κόμβος είναι αρκετά κοντά, τότε: Αν είναι LeafNode, επιστρέφεται ένα αντίγραφο του. Αν είναι InnerNode, τότε επιστρέφεται αντίγραφο του κόμβου, μέσω υπερβάσης της clone(), και η διαδικασία επαναλαμβάνεται αναδρομικά για τα παιδιά του (δηλαδή γίνεται έλεγχος του κριτηρίου για κάθε ένα από αυτά). Εάν δεν είχαμε τη συγκεκριμένη μέθοδο αντιγραφής κόμβων, εξαιτίας του μηχανισμού deep-copy του ProActive, θα επιστρεφόταν το InnerNode σε όλο του το βάθος. Επίσης, ένα ακόμη πρόβλημα, το οποίο πηγάζει και αυτό, όπως και το προηγούμενο, από το deep-copy των παθητικών αντικειμένων, είναι το ότι οι μέθοδοι των ενεργών αντικειμένων, οι οποίες είναι υπεύθυνες για τον υπολογισμό των επιταχύνσεων, των καινούριων ταχυτήτων και των καινούριων θέσεων των σωμάτων παίρνουν ως παραμέτρους τα σώματα αυτά, τα οποία είναι παθητικά αντικείμενα και όχι ενεργά, και, επομένως, δεν θα περαστούν ως αναφορές αλλά θα γίνει deep-copy. Έτσι, οι μέθοδοι θα υπολογίσουν τις προαναφερθείσες ιδιότητες, όχι των αρχικών σωμάτων αλλά των αντιγράφων τους. Δηλαδή, με το πέρας των κλήσεων αυτών, τα πεδία των αντιγράφων θα είναι αυτά που θα έχουν ενημερωθεί (με καινούργιες ταχύτητες και θέσεις) και όχι τα πεδία των αρχικών σωμάτων. Για την επόμενη επανάληψη χρειάζονται ως δεδομένα τα ενημερωμένα αντικείμενα σωμάτων της προηγούμενης. Εφόσον, για το λόγο που μόλις περιγράψαμε, δεν γίνεται αυτόματα η ενημέρωση των αρχικών, πρέπει αναγκαστικά στο τέλος κάθε επανάληψης να «αδειάζουμε» από τα στοιχεία του το διάνυσμα με τα σώματα (το οποίο στην παρούσα φάση περιέχει τόσο τα αρχικά σώματα, όσο και τα ενημερωμένα αντίγραφα τους), και στη θέση τους να τοποθετούμε μόνο τα ενημερωμένα αντίγραφα. 30 Β. Περιγραφή κλάσεων του κατανεμημένου Β-Η Η κλάση Star είναι ίδια με αυτή του σειριακού, με τη διαφορά ότι έχει προστεθεί ακόμα ένας κατασκευαστής της κλάσης, ο οποίος περιέχει όλα τα πεδία του πρώτου κατασκευαστή εκτός από το πεδίο ταχύτητα. Αυτός ο δεύτερος κατασκευαστής χρειάζεται για τη δημιουργία του καινούργιου αντικειμένου τύπου LeafNode που αναφέρθηκε προηγουμένως (κατά την εύρεση του Locally Essential Tree, στην περίπτωση που το κριτήριο ικανοποιείται για έναν κόμβο τύπου InnerNode) Αν δεν το κάνουμε αυτό, για το λόγο που περιγράψαμε, η επόμενη επανάληψη θα ξεκινήσει έχοντας ως αρχικό δεδομένο το διάνυσμα με τα αρχικά σώματα του συστήματος, αλλά και τα ενημερωμένα αντίγραφα τους (δηλαδή διπλάσιο αριθμό σωμάτων από ότι κανονικά θα έπρεπε) και σε κάθε επανάληψη που θα ακολουθήσει, το πλήθος των στοιχείων του διανύσματος θα διπλασιάζεται κάθε φορά σε σχέση με την προηγούμενη. 31 Στη περίπτωση που για ένα InnerNode ικανοποιείται το κριτήριο Β-Η φτιάξαμε, από αυτό το InnerNode, ένα καινούργιο αντικείμενο τύπου LeafNode. Για το ψευδοσώμα που περιέχει αυτό το LeafNode δεν γνωρίζουμε, και δεν μας χρειάζεται να γνωρίζουμε στη φάση της δημιουργίας του, την ταχύτητα του, για αυτό προσθέσαμε αυτό τον κατασκευαστή στην κλάση Star.

56 50 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων +mass: double +p: Vector3D +v: Vector3D +a: Vector3D +dt: final double Star +Star(mass: double, p: Vector3D, v: Vector3D) +Star(mass: double, p: Vector3D) +calculatenewpossition(): void Εικόνα 4-7: Απεικόνιση της κλάσης Star για το κατανεμημένο Β-Η. Στη κλάση TreeNode, στα πλαίσια της διαδικασίας εύρεσης του Locally Essential Tree για κάθε τομέα, προστέθηκε η μέθοδος getlesnode(), η οποία βρίσκει από τους κόμβους των δέντρων των υπόλοιπων τομέων, για τον τομέα (υπενθυμίζουμε ότι, για κάθε τομέα είναι υπεύθυνο, ένα active object ) για τον οποίο καλείται, τους απαραίτητους κόμβους. Στην InnerNode έγινε η προσθήκη της μεθόδου clone(), η οποία αναφέρθηκε παραπάνω. 8 TreeNode +G: static final double #epsilon2: static final double +masses(): double +centerofmass(): Vector3D +calculateacceleration(b: Star): Vector3D +getlesnode(p1: Vector3D, p2: Vector3D): TreeNode +p1: Vector3D +p2: Vector3D +totalmass: double +cm: Vector3D +theta: static final double InnerNode +InnerNode(bodies: Vector<Star>, p1: Vector3D, p2: Vector3D) +InnerNode(p1: Vector3D, p2: Vector3D) +InnerNode() +masses(): double +centerofmass(): Vector3D +cubelength(p1: Vector3D, p2: Vector3D): double +calculateacceleration(b: Star): Vector3D +clone(): InnerNode +getlesnode(pp1: Vector3D, pp2: Vector3D): TreeNode +b: Star LeafNode +LeafNode(b: Star) +LeafNode() +masses(): double +centerofmass(): Vector3D +calculateacceleration(bb: Star): Vector3D +getlesnode(p1: Vector3D, p2: Vector3D): TreeNode EmptyNode +calculateacceleration(bb: Star): Vector3D +centerofmass(): Vector3D +getlesnode(p1: Vector3D, p2: Vector3D): TreeNode Εικόνα 4-8: Διάγραμμα των κλάσεων TreeNode, InnerNode, LeafNode και EmptyNode για το κατανεμημένο Β-Η (στις 3 διαστάσεις).

57 Κεφάλαιο 4: Σχεδίαση & Υλοποίηση 51 Στο κατανεμημένο Barnes-Hut, εκτός των συνήθων αντικειμένων που είδαμε μέχρι τώρα, έχουμε και τα ενεργά active objects, τα οποία ορίζουμε να είναι τύπου TreeGenerator, και τα αναθέτουμε στα στοιχεία ενός πίνακα (τον έχουμε ονομάσει sections). Άρα, θα ονομάζουμε το κάθε ένα από αυτά ως sections[i], όπου i = 1,, p, με p το πλήθος των διαθέσιμων υπολογιστικών κόμβων. Ουσιαστικά, κάθε ενεργό αντικείμενο sections[i] αντιστοιχεί σε έναν τομέα, και οι υπολογισμοί που είναι απαραίτητοι για την επίλυση του επιμέρους προβλήματός του εκτελούνται από έναν εκ των επεξεργαστών. Καθένα από τα active objects κάνει τους υπολογισμούς για τον τομέα του, ταυτόχρονα και παράλληλα με τα υπόλοιπα. Στο παρακάτω σχήμα απεικονίζονται τα πεδία και οι μέθοδοι της κλάσης TreeGenerator. Οι καινούργιες μέθοδοι που έχουν προστεθεί (σε σχέση με την TreeGenerator του σειριακού Β-Η) έχουν σχέση με την κατασκευή των Locally Essential Trees και με τον υπολογισμό των συνεισφορών στην επιτάχυνση ενός σώματος, από τα σώματα του ίδιου τομέα με αυτό, καθώς και από τα σώματα των άλλων τομέων. TreeGenerator +root: TreeNode +bodies: Vector<Star> +p1: Vector3D +p2: Vector3D +n: int +theothertrees: TreeGenerator +thisnodeslocalesstree: Vector<TreeNode> +TreeGenerator(p1: Vector3D, p2: Vector3D) +TreeGenerator() +getlestree(p1: Vector3D, p2: Vector3D): TreeNode +getroot(): TreeNode +isin(p: Vector3D, p1: Vector3D, p2: Vector3D): boolean +getmassesin(b: Vector<Star>, pp1: Vector3D, pp2: Vector3D): Vector<Star> +constructtree(bb: Vector<Star>): EmptyNode +constructtree(b: Vector<Star>, pp1: Vector3D, pp2: Vector3D): TreeNode +move(): Vector<Star> +getlocalessentialtree(p1: Vector3D, p2: Vector3D): Vector<TreeNode> +movebodies(b: Vector<Star>): void +setzero(b: Vector<Star>): void -computelocalaccelerations(b: Vector<Star>): void +fetchlocalessentialtrees(): EmptyNode +setaccelerations(t: TreeNode, b: Vector<Star>): void +computeotheraccelerations(b: Vector<Star>): Vector<Star> +showtree(t: TreeNode): void Εικόνα 4-9: Απεικόνιση της κλάσης TreeGenerator για το κατανεμημένο Β-Η. Επίσης, το κατανεμημένο Barnes-Hut, εκτός από τις κλάσεις και τις μεθόδους που έχει κοινές με το σειριακό Β-Η, έχει κάποιες άλλες, οι οποίες σχετίζονται με τον κατανεμημένο υπολογισμό. Η κλάση, η οποία είναι επιφορτισμένη με την κατανομή της επίλυσης του προβλήματος στους διαθέσιμους υπολογιστικούς κόμβους και τη διαχείριση των active objects, είναι η κλάση Manager, η οποία τα κάνει όλα αυτά μέσω της ομώνυμης μεθόδου της, που περιγράφεται αναλυτικά στην επόμενη ενότητα.

58 52 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Manager +ITERATIONS: static final int +bodies: Vector<Star> +n: int +count: int +depth: int +domainpoints: Vector3D +vecs: Vector<Vector<Star>> +Manager(bodies: Vector<Star>, p1: Vector3D, p2: Vector3D) #deploy(string descriptor): VirtualNode[ ] +distributebodies(): void +domains(p1: Vector3D, p2: Vector3D, n: int): void #domains(p1: Vector3D, p2: Vector3D, n: int, depth: int): void Εικόνα 4-10: Απεικόνιση της κλάσης Manager. 4.2 Περιγραφή της επίλυσης του προβλήματος μέσω διαγραμμάτων ακολουθιών sequence diagrams Στην παρούσα ενότητα περιγράφεται η επίλυση του προβλήματος, ανά μέθοδο (Άμεση, B-H, κατανεμημένη B-H), μέσω των κλήσεων των μεθόδων των κλάσεων Άμεση μέθοδος Η διαδικασία επίλυσης του προβλήματος, χρησιμοποιώντας την Άμεση μέθοδο, σκιαγραφείται από το παρακάτω διάγραμμα ακολουθιών: Εικόνα 4-11: Διάγραμμα ακολουθιών για την επίλυση του προβλήματος μέσω της Άμεσης μεθόδου.

59 Κεφάλαιο 4: Σχεδίαση & Υλοποίηση Μέθοδος Barnes-Hut Για την επίλυση μέσω της μεθόδου Barnes-Hut ακολουθήθηκε η διαδικασία η οποία περιγράφεται στο διάγραμμα που ακολουθεί: Εικόνα 4-12: Διάγραμμα ακολουθιών για την επίλυση του προβλήματος μέσω της σειριακής μεθόδου Barnes-Hut.

60 54 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Κατανεμημένη μέθοδος Barnes-Hut Στο κατανεμημένο Barnes-Hut, η βασική κλάση Manager είναι υπεύθυνη για τα παρακάτω: 1. Τον κατακερματισμό του χώρου προσομοίωσης σε τομείς domains. 2. Τη δημιουργία των ενεργών αντικειμένων. 3. Την ενημέρωση καθενός από τα ενεργά αντικείμενα για την ύπαρξη των υπολοίπων. 4. Την επαναληπτική εκτέλεση ν φορών (όπου ν, το πλήθος των επαναλήψεων) των παρακάτω: a. Αναθέτει τα σώματα, αναλόγως του διαμοιρασμού που έγινε σε τομείς, στα αντίστοιχα active objects (ισοδύναμα στους αντίστοιχους επεξεργαστές). b. Καλεί τα active objects να υπολογίσουν τα τοπικά τους δέντρα. c. Καλεί τα active objects να υπολογίσουν τα Locally Essential Trees τους. d. Καλεί τα active objects να υπολογίσουν τις επιταχύνσεις, τις καινούργιες ταχύτητες και τις καινούργιες θέσεις για όλα τα σώματά τους. 5. Τον τερματισμό των active objects. (Η προσομοίωση έχει φτάσει στο τέλος της). Οι κλήσεις των μεθόδων στα βήματα 2, 3, 4 (4.b, 4.c, 4.d) και 5 είναι ασύγχρονες, ενώ στα βήματα 1 και 4.a είναι σύγχρονες. Έχουν τοποθετηθεί τρία σημεία συγχρονισμού, στα σημεία εκείνα όπου κρίθηκε απαραίτητη η ύπαρξη τους, για τη σωστή λειτουργία του προγράμματος, δηλαδή για την αποφυγή συνθηκών ανταγωνισμού race conditions και επομένως, σφαλμάτων στους υπολογισμούς. Για τη δημιουργία τους χρησιμοποιήθηκε η μέθοδος του ProActive, PAFuture.waitforall(). Το πρώτο σημείο συγχρονισμού βρίσκεται μετά την κατασκευή των τοπικών δέντρων (δηλαδή μεταξύ των βημάτων b και c που αναφέραμε παραπάνω), διότι είναι αναγκαίο τα ενεργά αντικείμενα που τελείωσαν πρώτα να περιμένουν και τα υπόλοιπα να κατασκευάσουν τα τοπικά δέντρα τους, πριν αρχίσουν να τα ελέγχουν (τα τοπικά δέντρα των άλλων) ώστε να φτιάξουν τα Locally Essential Trees τους. Το δεύτερο σημείο συγχρονισμού έχει τοποθετηθεί μετά την κατασκευή των Locally Essential Trees (δηλαδή μεταξύ των βημάτων c και d), για να εξαλειφθεί η πιθανότητα κάποιο ενεργό αντικείμενο να τελειώσει γρήγορα το στάδιο c και να προχωρήσει στο d, κάτι που θα είχε ως αποτέλεσμα, να δώσει τις καινούργιες θέσεις και ταχύτητες των σωμάτων του, και όχι τις παλιές, στα υπόλοιπα ενεργά αντικείμενα που ακόμα υπολογίζουν τα Locally Essential Trees τους. Το τρίτο σημείο συγχρονισμού είναι μετά τη μετακίνηση των σωμάτων (δηλαδή μετά το βήμα d), ώστε να μην αρχίσει κάποιο ενεργό αντικείμενο την επόμενη επανάληψη, ενώ τα υπόλοιπα βρίσκονται ακόμα στην προηγούμενη. Η επίλυση μέσω της κατανεμημένης μεθόδου Barnes-Hut περιγράφεται από τα δύο παρακάτω διαγράμματα. Το πρώτο απεικονίζει τη διαδικασία επίλυσης στο σύνολό της,

61 Κεφάλαιο 4: Σχεδίαση & Υλοποίηση 55 αλλά, όσο αφορά στις κλήσεις που γίνονται εντός των επαναλήψεων ( iterations ), δείχνονται μόνο οι πιο βασικές, παραλείποντας τις λεπτομέρειες. Στο δεύτερο διάγραμμα ακολουθιών περιγράφονται αναλυτικά μονό οι μέθοδοι που καλούνται εντός μίας επανάληψης. Στα διαγράμματα, τα βέλη αντιστοιχούν σε κλήσεις μεθόδων. Αυτά που καταλήγουν σε τρίγωνο (δηλαδή " ") αντιστοιχούν σε σύγχρονες κλήσεις, ενώ αυτά που έχουν απλώς μια αιχμή (δηλαδή " > " ) αντιστοιχούν σε ασύγχρονες κλήσεις. Με κόκκινο τονίστηκαν οι κλήσεις οι οποίες συνιστούν την επικοινωνία μεταξύ των ενεργών αντικειμένων (κλήση της μεθόδου ενός ενεργού αντικειμένου από ένα άλλο ενεργό αντικείμενο). Εικόνα 4-13: Διάγραμμα ακολουθιών για την επίλυση του προβλήματος μέσω της κατανεμημένης μεθόδου Barnes-Hut.

62 56 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Εικόνα 4-14: Διάγραμμα ακολουθιών ειδικότερα για τις κλήσεις εντός ενός iteration, της κατανεμημένης μεθόδου Barnes-Hut.

63 Κεφάλαιο 5: Εκτέλεση προσομοίωσης 57 Κεφάλαιο 5: Εκτέλεση προσομοίωσης 5.1 Αρχικά δεδομένα προσομοίωσης (Input) Οι συντεταγμένες των αρχικών θέσεων των σωμάτων, που θα χρησιμοποιηθούν στις προσομοιώσεις, θα είναι τέτοιες ώστε η κατανομή τους να προσομοιάζει ρεαλιστικά αστρονομικά αντικείμενα. Συγκεκριμένα, θα δουλέψουμε με προσομοιώσεις συστημάτων οπού τα σώματά τους συνιστούν έναν γαλαξία ελλειπτικού τύπου στην απλούστερη μορφή του, δηλαδή έναν σφαιρικό γαλαξία. Για να το κάνουμε αυτό χρειαζόμαστε μια συνάρτηση κατανομής πυκνότητας, η οποία να δίνει το επιθυμητό σχήμα. Ένα μοντέλο που χρησιμοποιείται συχνά για την κατασκευή αστρονομικών συστημάτων με σφαιρική συμμετρία (σφαιρικών γαλαξιών, σφαιρωτών σμηνών και γενικά σφαιρικών τμημάτων γαλαξιών) είναι το μοντέλο Plummer (1911) [25]. ρ(r) = 3M [ 1 + (r R 4πR3 )2 ] 5/2 (5.1) Η (5.1) είναι μια συνάρτηση κατανομής πυκνότητας. Μ είναι η συνολική μάζα του συστήματος, R είναι μια παράμετρος που καθορίζει τις διαστάσεις του συστήματος και r είναι η θέση ενός σώματος [1]. Η μορφή ενός συστήματος (Ν = 50,000 και R = 10,000), το οποίο κατασκευάζεται μέσω του μοντέλου Plummer, απεικονίζεται στο παρακάτω σχήμα: Εικόνα 5.1: Μορφή μιας σφαίρας Plummer.

64 58 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων Plummer model Για να κατασκευάσουμε ένα σφαιρικό γαλαξία, μέσω του μοντέλου Plummer, ακολουθούμε τη διαδικασία που αναφέρεται στο παράρτημα του [1] ώστε να δώσουμε αρχικές θέσεις και ταχύτητες σε όλα τα σώματα του συστήματος. Αυτή τη διαδικασία χρησιμοποιεί και η μέθοδος creategalaxy() της κλάσης GalaxyFactory, για την κατασκευή του γαλαξία. Συγκεκριμένα έχει ως εξής: Για λόγους απλότητας τα G, R, M θεωρείται ότι είναι ίσα με τη μονάδα. Δίνεται ότι η μάζα που περικλείεται μέσα σε μια σφαίρα ακτίνας r είναι: H (5.2) εκφράζει την αθροιστική κατανομή μάζας. m(r) = r 3 (1 + r 2 ) 3/2 (5.2) Για την επιλογή αρχικών συνθηκών θέσης και ταχύτητας για κάθε σώμα του συστήματος εφαρμόζεται η μέθοδος Monte Carlo. Πρώτα παίρνουμε μια αρχική θέση για το σώμα, σύμφωνα με την κατανομή του μοντέλου Plummer [25]. Αυτό γίνεται χρησιμοποιώντας κάποια μέθοδο, η οποία δημιουργεί τυχαίους αριθμούς, μέσω της ομοιόμορφης κατανομής, στο διάστημα [0, 1], ώστε να παράγουμε ένα τυχαίο αριθμό X 1. Στη συνέχεια τον X 1 τον εξισώνουμε με την m(r), έτσι το r θα δίνεται από: 2 r = (X 3 1 1) 1 2 (5.3) Όλες οι συναρτήσεις που είδαμε μέχρι τώρα είναι μιας διάστασης. Κατά συνέπεια, το αποτέλεσμα που θα μας επιστραφεί από την (5.3) θα είναι η θέση του σώματος στο R, δηλαδή, στην ουσία, η απόσταση του σώματος από το κέντρο της σφαίρας Plummer. Για να τοποθετήσουμε το σώμα στον τριδιάστατο χώρο, παράγουμε 2 τυχαίους αριθμούς θ, φ με τον ίδιο τρόπο όπως έγινε το X 1, μόνο που το θ παράγεται από το διάστημα [0, π] και το φ από το [0, 2π]. Επομένως, η θέση του σώματος στις 3 διαστάσεις σε σφαιρικές συντεταγμένες θα είναι (r, φ, θ). Στο υπόλοιπο πρόγραμμα, οι υπολογισμοί γίνονται σε καρτεσιανές συντεταγμένες. Έτσι μένει μόνο να μετατρέψουμε τις σφαιρικές συντεταγμένες σε καρτεσιανές. Έχουμε ότι: x = r sinθ cosφ y = r sinθ sinφ z = r cosθ (5.4) Άρα κάνοντας την παραπάνω μετατροπή έχουμε τη θέση του σώματος p (x, y, z) σε καρτεσιανές συντεταγμένες. Η διαδικασία συνεχίζεται για να υπολογίσουμε και την αρχική ταχύτητα του σώματος. Η μέγιστη τιμή που μπορεί να έχει η ταχύτητα ενός σώματος, το οποίο ανήκει στο σύστημα και έχει απόσταση r από το κέντρο του, είναι η ταχύτητα διαφυγής V esc (για μεγαλύτερες τιμές το σώμα διαφεύγει).

65 Κεφάλαιο 5: Εκτέλεση προσομοίωσης 59 V esc = 2 (1 + r 2 ) 1/4 (5.5) Παίρνουμε την αρχική ταχύτητα του σώματος σύμφωνα με την παρακάτω κατανομή πιθανότητας, της ποσότητας q = V V esc. g(q) = q 2 (1 q 2 ) 7/2 (5.6) Θα πάρουμε τιμές της ποσότητας q από την παραπάνω κατανομή χρησιμοποιώντας την τεχνική αποδοχής/απόριψης του von Neumann. Το q παίρνει τιμές από 0 έως 1, ενώ το g(q) είναι πάντα μικρότερο από 0.1. Παράγουμε δύο τυχαίους αριθμούς X 4, X 5, αν ισχύει ότι 0.1 Χ 5 < g(x 4 ) τότε δεχόμαστε την τιμή X 4, και θεωρούμε το q = X 4. Αν όχι, παράγουμε ξανά ένα καινούργιο ζεύγος αριθμών X 4, X 5 και ελέγχουμε την ισχύ της ανισότητας μέχρι να βρούμε ένα ζεύγος αριθμών που να την ικανοποιεί. Μετά, υπολογίζουμε την ταχύτητα V από την εξ. (5.5) και τη σχέση q = V V esc. Η ταχύτητα V που υπολογίσαμε, είναι στην ουσία, το μέτρο της ταχύτητας του σώματος. Για να του δώσουμε κατεύθυνση στο χώρο, παράγουμε 2 τυχαίους αριθμούς θ, φ ακριβώς όπως είχαμε κάνει και για τη θέση. Παίρνουμε την ταχύτητα σε σφαιρικές συντεταγμένες (V, φ, θ) και ύστερα τις μετατρέπουμε σε καρτεσιανές, ως εξής: v x = V sinθ cosφ v y = V sinθ sinφ v z = V cosθ (5.7) Άρα έχουμε την ταχύτητα του σώματος v (v x, v y, v z ) σε καρτεσιανές συντεταγμένες. Ακολουθούμε ολόκληρη την παραπάνω διαδικασία ξανά από την αρχή, τόσες φορές όσα είναι και τα σώματα του συστήματος, ώστε να δοθούν αρχικές συνθήκες σε όλα [1, 19, 29] Προσομοίωση μιας σφαίρας Plummer Από κατασκευής της, μια σφαίρα Plummer βρίσκεται σε δυναμική ισορροπία, οπότε δεν περιμένουμε μεγάλη αλλαγή στη μορφή της κατά τη διάρκεια μιας προσομοίωσης [29]. Στην παρακάτω εικόνα παρουσιάζονται μια σειρά από 6 στιγμιότυπα της προσομοίωσης ενός συστήματος, η οποία εκτελέστηκε για 18,200 επαναλήψεις 32, χρησιμοποιώντας τη μέθοδο Barnes-Hut με παράμετρο θ = 1.0, softening length ε = 0 και dt = Το σύστημα αποτελείται από μια σφαίρα Plummer Ν = 10,000 σωμάτων (όπου το κάθε σώμα έχει μάζα 100), η οποία είναι ακτίνας R = 10,000. Το πρώτο στιγμιότυπο δείχνει τη σφαίρα Plummer στην αρχική της μορφή (λήφθηκε ης πριν αρχίσει η πρώτη επανάληψη), το τελευταίο λήφθηκε μετά το τέλος της 18,200P επανάληψης και τα άλλα λήφθηκαν σε τυχαία ενδιάμεσα σημεία. Ο αριθμός που υπάρχει στο πάνω δεξί άκρο κάθε στιγμιότυπου έχει τοποθετηθεί εκεί για να δώσει μια ιδέα του χρόνου που παρήλθε από την αρχή της προσομοίωσης μέχρι τη λήψη του 32 Οι 18,200 επαναλήψεις διήρκεσαν, περίπου, 4.5 ώρες σε πραγματικό υπολογιστικό χρόνο (η προσομοίωση εκτελέστηκε από έναν υπολογιστή με επεξεργαστή Intel Core i5 στα 2.26 GHz και μνήμη 4 GB).

66 60 Κατανεμημένη επίλυση προβλήματος Ν-σωμάτων συγκεκριμένου στιγμιότυπου. Ο αριθμός αυτός δηλώνει πλήθος των μονάδων του υπολογιστικού χρόνου 33 computational unit time που είχαν συμπληρωθεί μέχρι τη στιγμή που έγινε η λήψη του στιγμιότυπου. Εικόνα 5.2: Στιγμιότυπα προσομοίωσης μιας σφαίρας Plummer χρησιμοποιώντας τη μέθοδο Barnes-Hut. 5.2 Πειράματα Στις υποενότητες που ακολουθούν, περιγράφονται οι προσομοιώσεις που εκτελέστηκαν, χωρισμένες σε κατηγορίες και υποκατηγορίες, ανάλογα με το τι θέλουμε να συγκρίνουμε κάθε φορά. Για τις προσομοιώσεις κάθε κατηγορίας, αναφέρεται ποια δεδομένα έχουν κοινά μεταξύ τους και ποια όχι, καθώς και για ποιο σκοπό εκτελέστηκαν. Τα αποτελέσματά τους περιγράφονται στο κεφάλαιο 6. Οι αρχικές θέσεις και ταχύτητες των σωμάτων που θα χρησιμοποιηθούν στις προσομοιώσεις δίνονται από ένα μοντέλο τύπου Plummer με ακτίνα R = 10,000. Το dt = To G θεωρούμε ότι είναι ίσο με τη μονάδα και το softening length ε = Για την εκτέλεση των προσομοιώσεων χρησιμοποιήθηκαν: Ένας υπολογιστής με επεξεργαστή Intel 3GHz και μνήμη 512 MB, για επίλυση μέσω της Άμεσης ή της Β-Η μεθόδου. 33 Στη συγκεκριμένη προσομοίωση επιλέχθηκε dt = 0.03, άρα περίπου επαναλήψεις κάνουν μία υπολογιστική μονάδα.

ΕΝΟΤΗΤΑ 1.2 ΔΥΝΑΜΙΚΗ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ

ΕΝΟΤΗΤΑ 1.2 ΔΥΝΑΜΙΚΗ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ ΕΝΟΤΗΤΑ 1.2 ΔΥΝΑΜΙΚΗ ΣΕ ΜΙΑ ΔΙΑΣΤΑΣΗ 1. Τι λέμε δύναμη, πως συμβολίζεται και ποια η μονάδα μέτρησής της. Δύναμη είναι η αιτία που προκαλεί τη μεταβολή της κινητικής κατάστασης των σωμάτων ή την παραμόρφωσή

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

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

Πώς μια μάζα αντιλαμβάνεται ότι κάπου υπάρχει μια άλλη και αλληλεπιδρά με αυτή ; Η αλληλεπίδραση μεταξύ μαζών περιγράφεται με την έννοια του πεδίου. ΒΑΡΥΤΙΚΟ ΠΕΔΙΟ ΓΕΝΙΚΑ Δυο σημειακές μάζες που απέχουν απόσταση r έλκονται με δύναμη που είναι ανάλογη του γινομένου των μαζών και αντίστροφα ανάλογη του τετραγώνου της απόστασής τους. Όπου G η σταθερά

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

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Παραγώγιση Εισαγωγή Ορισμός 7. Αν y f x είναι μια συνάρτηση ορισμένη σε ένα διάστημα

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

Μονάδα μέτρησης του ηλεκτρικού φορτίου στο Διεθνές Σύστημα (S.I.) είναι το προς τιμήν του Γάλλου φυσικού Charles Augustin de Coulomb.

Μονάδα μέτρησης του ηλεκτρικού φορτίου στο Διεθνές Σύστημα (S.I.) είναι το προς τιμήν του Γάλλου φυσικού Charles Augustin de Coulomb. Βασικές έννοιες Τα σώματα μπορούν να αλληλεπιδράσουν ηλεκτρικά. Ο Θαλής ο Μιλήσιος παρατήρησε πρώτος την έλξη μικρών αντικειμένων από ήλεκτρο, αφού πρώτα τριφτεί σε ξηρό ύφασμα. Το φαινόμενο αυτό ονομάστηκε

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

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών 7. Εισαγωγή (ορισμός προβλήματος, αριθμητική ολοκλήρωση ΣΔΕ, αντικατάσταση ΣΔΕ τάξης n με n εξισώσεις ης τάξης) 7. Μέθοδος Euler 7.3

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

Φυσικά μεγέθη. Φυσική α λυκείου ΕΙΣΑΓΩΓΗ. Όλα τα φυσικά μεγέθη τα χωρίζουμε σε δύο κατηγορίες : Α. τα μονόμετρα. Β.

Φυσικά μεγέθη. Φυσική α λυκείου ΕΙΣΑΓΩΓΗ. Όλα τα φυσικά μεγέθη τα χωρίζουμε σε δύο κατηγορίες : Α. τα μονόμετρα. Β. ΕΙΣΑΓΩΓΗ Φυσικά μεγέθη Όλα τα φυσικά μεγέθη τα χωρίζουμε σε δύο κατηγορίες : Α. τα μονόμετρα Β. τα διανυσματικά Μονόμετρα ονομάζουμε τα μεγέθη εκείνα τα οποία για να τα γνωρίζουμε χρειάζεται να ξέρουμε

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

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών. Εισαγωγή (ορισμός προβλήματος, αριθμητική ολοκλήρωση ΣΔΕ, αντικατάσταση ΣΔΕ τάξης n με n εξισώσεις ης τάξης). Μέθοδος Euler 3. Μέθοδοι

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

Μέθοδοι μονοδιάστατης ελαχιστοποίησης

Μέθοδοι μονοδιάστατης ελαχιστοποίησης Βασικές αρχές μεθόδων ελαχιστοποίησης Μέθοδοι μονοδιάστατης ελαχιστοποίησης Οι μέθοδοι ελαχιστοποίησης είναι επαναληπτικές. Ξεκινώντας από μια αρχική προσέγγιση του ελαχίστου (την συμβολίζουμε ) παράγουν

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ. ΕΞΕΤΑΣΗ ΣΤΗ ΜΗΧΑΝΙΚΗ Ι Σεπτέµβριος 2004

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ. ΕΞΕΤΑΣΗ ΣΤΗ ΜΗΧΑΝΙΚΗ Ι Σεπτέµβριος 2004 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΕΞΕΤΑΣΗ ΣΤΗ ΜΗΧΑΝΙΚΗ Ι Σεπτέµβριος 2004 Τµήµα Π. Ιωάννου & Θ. Αποστολάτου Θέµα 1 (25 µονάδες) Ένα εκκρεµές µήκους l κρέµεται έτσι ώστε η σηµειακή µάζα να βρίσκεται ακριβώς

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

kg(χιλιόγραμμο) s(δευτερόλεπτο) Ένταση ηλεκτρικού πεδίου Α(Αμπέρ) Ένταση φωτεινής πηγής cd (καντέλα) Ποσότητα χημικής ουσίας mole(μόλ)

kg(χιλιόγραμμο) s(δευτερόλεπτο) Ένταση ηλεκτρικού πεδίου Α(Αμπέρ) Ένταση φωτεινής πηγής cd (καντέλα) Ποσότητα χημικής ουσίας mole(μόλ) ΕΙΣΑΓΩΓΗ- ΦΥΣΙΚΑ ΜΕΓΕΘΗ Στα φυσικά φαινόμενα εμφανίζονται κάποιες ιδιότητες της ύλης. Για να περιγράψουμε αυτές τις ιδιότητες χρησιμοποιούμε τα φυσικά μεγέθη. Τέτοια είναι η μάζα, ο χρόνος, το ηλεκτρικό

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

ΠΕΙΡΑΜΑ 5. Μελέτη ευθύγραμμης ομαλής και επιταχυνόμενης κίνησης.

ΠΕΙΡΑΜΑ 5. Μελέτη ευθύγραμμης ομαλής και επιταχυνόμενης κίνησης. ΠΕΙΡΑΜΑ 5 Μελέτη ευθύγραμμης ομαλής και επιταχυνόμενης κίνησης. Σκοπός του πειράματος Σκοπός του πειράματος είvαι vα μελετηθούν τα βασικά φυσικά μεγέθη της μεταφορικής κίνησης σε μία διάσταση. Τα μεγέθη

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

Φυσική για Μηχανικούς

Φυσική για Μηχανικούς Φυσική για Μηχανικούς Εικόνα: Μητέρα και κόρη απολαμβάνουν την επίδραση της ηλεκτρικής φόρτισης των σωμάτων τους. Κάθε μια ξεχωριστή τρίχα των μαλλιών τους φορτίζεται και προκύπτει μια απωθητική δύναμη

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

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ Διατήρηση Ορμής Επιμέλεια: ΑΓΚΑΝΑΚΗΣ A.ΠΑΝΑΓΙΩΤΗΣ, Φυσικός htt://hyiccore.wordre.co/ Βασικές Έννοιες Μέχρι τώρα έχουμε ασχοληθεί με την μελέτη ενός σώματος και μόνο. Πλέον

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

Κεφάλαιο 5. Το Συμπτωτικό Πολυώνυμο

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

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

ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΦΥΣΙΚΗΣ Α ΛΥΚΕΙΟΥ ΜΕ ΝΕΟ ΣΥΣΤΗΜΑ 2014

ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΦΥΣΙΚΗΣ Α ΛΥΚΕΙΟΥ ΜΕ ΝΕΟ ΣΥΣΤΗΜΑ 2014 1 ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΦΥΣΙΚΗΣ Α ΛΥΚΕΙΟΥ ΜΕ ΝΕΟ ΣΥΣΤΗΜΑ 2014 ΘΕΜΑ Α.1 Α1. Να χαρακτηρίσετε με (Σ) τις σωστές και με (Λ) τις λανθασμένες προτάσεις Στην ευθύγραμμα ομαλά επιβραδυνόμενη κίνηση: Α. Η ταχύτητα

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

Αριθμητική Ανάλυση και Εφαρμογές

Αριθμητική Ανάλυση και Εφαρμογές Αριθμητική Ανάλυση και Εφαρμογές Διδάσκων: Δημήτριος Ι. Φωτιάδης Τμήμα Μηχανικών Επιστήμης Υλικών Ιωάννινα 07-08 Αριθμητική Ολοκλήρωση Εισαγωγή Έστω ότι η f είναι μία φραγμένη συνάρτηση στο πεπερασμένο

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

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ Β ΤΑΞΗ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ

ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ Β ΤΑΞΗ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ Δυνάμεις Μεταξύ Ηλεκτρικών Φορτίων σελ. 1 ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙ ΕΙΑΣ Β ΤΑΞΗ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΔΥΝΑΜΕΙΣ ΜΕΤΑΞΥ ΗΛΕΚΤΡΙΚΩΝ ΦΟΡΤΙΩΝ 1. Ο νόμος του Coulomb. Ηλεκτρικό πεδίο 3. Ηλεκτρική δυναμική ενέργεια 4. Δυναμικό

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

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D.

Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Βασίλειος Μαχαιράς Πολιτικός Μηχανικός Ph.D. Μη γραμμικός προγραμματισμός: βελτιστοποίηση χωρίς περιορισμούς Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών ΤμήμαΠληροφορικής Διάλεξη 7-8 η /2017 Τι παρουσιάστηκε

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

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

ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ ΣΤΗΝ ΕΥΘΥΓΡΑΜΜΗ ΚΙΝΗΣΗ ΠΕΡΙΛΗΨΗ ΘΕΩΡΙΑΣ ΣΤΗΝ ΕΥΘΥΓΡΑΜΜΗ ΚΙΝΗΣΗ Αλγεβρική τιμή διανύσματος Όταν ένα διάνυσμα είναι παράλληλο σε έναν άξονα (δηλαδή μια ευθεία στην οποία έχουμε ορίσει θετική φορά), τότε αλγεβρική τιμή του διανύσματος

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

Κεφάλαιο 2. Κίνηση κατά μήκος ευθείας γραμμής

Κεφάλαιο 2. Κίνηση κατά μήκος ευθείας γραμμής Κεφάλαιο 2 Κίνηση κατά μήκος ευθείας γραμμής Στόχοι 1 ου Κεφαλαίου Περιγραφή κίνησης σε ευθεία γραμμή όσον αφορά την ταχύτητα και την επιτάχυνση. Διαφορά μεταξύ της μέσης και στιγμιαίας ταχύτητας καθώς

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

Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων

Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Καθηγητής κ. Σ. Νατσιάβας Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων Στοιχεία Φοιτητή Ονοματεπώνυμο: Νατσάκης Αναστάσιος Αριθμός Ειδικού Μητρώου:

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

ΓΕΝΙΚΟ ΕΡΓΑΣΤΗΡΙΟ ΦΥΣΙΚΗΣ. Μελέτη ευθύγραμμων κινήσεων

ΓΕΝΙΚΟ ΕΡΓΑΣΤΗΡΙΟ ΦΥΣΙΚΗΣ. Μελέτη ευθύγραμμων κινήσεων ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΓΕΝΙΚΟ ΕΡΓΑΣΤΗΡΙΟ ΦΥΣΙΚΗΣ Εργαστηριακή αναφορά Μελέτη ευθύγραμμων κινήσεων του Ανδριόπουλου Ανδρέα ΑΕΜ: 19232 ΠΕΡΙΛΗΨΗ ΑΣΚΗΣΗΣ: Η εργαστηριακή άσκηση

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

Γ. Β Α Λ Α Τ Σ Ο Σ. 4ο ΓΥΜΝΑΣΙΟ ΛΑΜΙΑΣ 1. Γιώργος Βαλατσός Φυσικός Msc

Γ. Β Α Λ Α Τ Σ Ο Σ. 4ο ΓΥΜΝΑΣΙΟ ΛΑΜΙΑΣ 1. Γιώργος Βαλατσός Φυσικός Msc 4ο ΓΥΜΝΑΣΙΟ ΛΑΜΙΑΣ 1 1. Πότε τα σώματα θεωρούνται υλικά σημεία; Αναφέρεται παραδείγματα. Στη φυσική πολλές φορές είναι απαραίτητο να μελετήσουμε τα σώματα χωρίς να λάβουμε υπόψη τις διαστάσεις τους. Αυτό

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

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ

Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ Ε π ι μ έ λ ε ι α Κ Ο Λ Λ Α Σ Α Ν Τ Ω Ν Η Σ 1 Συναρτήσεις Όταν αναφερόμαστε σε μια συνάρτηση, ουσιαστικά αναφερόμαστε σε μια σχέση ή εξάρτηση. Στα μαθηματικά που θα μας απασχολήσουν, με απλά λόγια, η σχέση

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

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr

I. ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ. math-gr I ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ i e ΜΕΡΟΣ Ι ΟΡΙΣΜΟΣ - ΒΑΣΙΚΕΣ ΠΡΑΞΕΙΣ Α Ορισμός Ο ορισμός του συνόλου των Μιγαδικών αριθμών (C) βασίζεται στις εξής παραδοχές: Υπάρχει ένας αριθμός i για τον οποίο ισχύει i Το σύνολο

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

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα. ΔΙΑΛΕΞΗ 03 Νόμοι κίνησης του Νεύτωνα

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα. ΔΙΑΛΕΞΗ 03 Νόμοι κίνησης του Νεύτωνα Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα ΔΙΑΛΕΞΗ 03 Νόμοι κίνησης του Νεύτωνα ΦΥΣ102 1 Δύναμη είναι: Η αιτία που προκαλεί μεταβολή

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

ΦΥΣΙΚΗ Β ΓΥΜΝΑΣΙΟΥ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ 2017

ΦΥΣΙΚΗ Β ΓΥΜΝΑΣΙΟΥ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ 2017 ΦΥΣΙΚΗ Β ΓΥΜΝΑΣΙΟΥ ΕΠΑΝΑΛΗΨΗ ΘΕΩΡΙΑΣ 2017 ΚΕΦΑΛΑΙΟ 1 ο ΕΙΣΑΓΩΓΗ 1.3 Τα φυσικά μεγέθη και οι μονάδες τους 1. Ποια μεγέθη ονομάζονται θεμελιώδη; Θεμελιώδη ονομάζονται τα μεγέθη τα οποία δεν ορίζονται με

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

2. Οι νόµοι της κίνησης, οι δυνάµεις και οι εξισώσεις κίνησης

2. Οι νόµοι της κίνησης, οι δυνάµεις και οι εξισώσεις κίνησης Οι νόµοι της κίνησης, οι δυνάµεις και οι εξισώσεις κίνησης Βιβλιογραφία C Kittel, W D Knight, A Rudeman, A C Helmholz και B J oye, Μηχανική (Πανεπιστηµιακές Εκδόσεις ΕΜΠ, 1998) Κεφ, 3 R Spiegel, Θεωρητική

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

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

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα. ΔΙΑΛΕΞΗ 07 Ορμή Κρούσεις ΦΥΣ102 1

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα. ΔΙΑΛΕΞΗ 07 Ορμή Κρούσεις ΦΥΣ102 1 Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα ΔΙΑΛΕΞΗ 07 Ορμή Κρούσεις ΦΥΣ102 1 Ορμή και Δύναμη Η ορμή p είναι διάνυσμα που ορίζεται από

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

Q 40 th International Physics Olympiad, Merida, Mexico, 12-19 July 2009

Q 40 th International Physics Olympiad, Merida, Mexico, 12-19 July 2009 Q 40 th International Physics Olympiad, erida, exico, -9 July 009 ΘΕΩΡΗΤΙΚΟ ΠΡΟΒΛΗΜΑ No. Η ΕΞΕΛΙΞΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΓΗΣ-ΣΕΛΗΝΗΣ Οι επιστήμονες μπορούν να προσδιορίσουν την απόσταση Γης-Σελήνης, με μεγάλη

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

Κατακόρυφη πτώση σωμάτων. Βαρβιτσιώτης Ιωάννης Πρότυπο Πειραματικό Γενικό Λύκειο Αγίων Αναργύρων Μάιος 2015

Κατακόρυφη πτώση σωμάτων. Βαρβιτσιώτης Ιωάννης Πρότυπο Πειραματικό Γενικό Λύκειο Αγίων Αναργύρων Μάιος 2015 Κατακόρυφη πτώση σωμάτων Βαρβιτσιώτης Ιωάννης Πρότυπο Πειραματικό Γενικό Λύκειο Αγίων Αναργύρων Μάιος 2015 Α. Εισαγωγή Ερώτηση 1. Η τιμή της μάζας ενός σώματος πιστεύετε ότι συνοδεύει το σώμα εκ κατασκευής

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

ẋ = f(x), x = x 0 όταν t = t 0,

ẋ = f(x), x = x 0 όταν t = t 0, Κεφάλαιο 2 ΤΟ ΘΕΩΡΗΜΑ ΥΠΑΡΞΗΣ ΚΑΙ ΜΟΝΑΔΙΚΟΤΗΤΑΣ 2.1 Πρόβλημα αρχικών τιμών Στο κεφάλαιο αυτό θα δούμε ότι το πρόβλημα αρχικών τιμών (ΑΤ) ẋ = f(x), x = x 0 όταν t = t 0, έχει λύση και μάλιστα μοναδική για

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

Θεωρία Φυσικής Τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών Τ.Ε.Ι. Λαμίας

Θεωρία Φυσικής Τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών Τ.Ε.Ι. Λαμίας Θεωρία Φυσικής Τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών Τ.Ε.Ι. Λαμίας Νόμος της Βαρύτητας επιτάχυνση της βαρύτητας Κίνηση δορυφόρου Νόμοι Keple Το σύμπαν και οι δυνάμεις βαρύτητας Ο λόγος που

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

ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ- 2018

ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ- 2018 ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ- 2018 Κώστας Γαλιώτης, καθηγητής Τμήμα Χημικών Μηχανικών galiotis@chemeng.upatras.gr 1 Περιεχόμενα ενότητας Α Βασικές έννοιες Στατική υλικού σημείου Αξιωματικές αρχές Νόμοι Νεύτωνα

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

ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ- 2015

ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ- 2015 ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ- 2015 1. Εισαγωγικές έννοιες στην μηχανική των υλικών Κώστας Γαλιώτης, καθηγητής Τμήμα Χημικών Μηχανικών 1 Περιεχόμενο μαθήματος Μηχανική των Υλικών: τμήμα των θετικών επιστημών που

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

ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ 2016

ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ 2016 ΜΗΧΑΝΙΚΗ ΤΩΝ ΥΛΙΚΩΝ 2016 Κώστας Γαλιώτης, καθηγητής Τμήμα Χημικών Μηχανικών galiotis@chemeng.upatras.gr 1 Περιεχόμενα ενότητας Α Βασικές έννοιες Στατική υλικού σημείου Αξιωματικές αρχές Νόμοι Νεύτωνα Εξισώσεις

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

Κεφ.3 Δυνάμεις ΓΕΝΙΚΑ. Τα σώματα κινούνται (κεφ.2) και αλληλεπιδρούν. (κεφ.3)

Κεφ.3 Δυνάμεις ΓΕΝΙΚΑ. Τα σώματα κινούνται (κεφ.2) και αλληλεπιδρούν. (κεφ.3) Κεφ.3 Δυνάμεις ΓΕΝΙΚΑ Τα σώματα κινούνται (κεφ.2) και αλληλεπιδρούν. (κεφ.3) Αλληλεπίδραση σημαίνει : Έλξη ή άπωση. Η αλληλεπίδραση έχει αμοιβαίο χαρακτήρα ( η λέξη «άλληλα» θέλει να δηλώσει ότι όταν ένα

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

Άσκηση 3 Υπολογισμός του μέτρου της ταχύτητας και της επιτάχυνσης

Άσκηση 3 Υπολογισμός του μέτρου της ταχύτητας και της επιτάχυνσης Άσκηση 3 Υπολογισμός του μέτρου της ταχύτητας και της επιτάχυνσης Σύνοψη Σκοπός της συγκεκριμένης άσκησης είναι ο υπολογισμός του μέτρου της στιγμιαίας ταχύτητας και της επιτάχυνσης ενός υλικού σημείου

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

ΔΕΙΓΜΑ ΠΡΙΝ ΤΙΣ ΔΙΟΡΘΩΣΕΙΣ - ΕΚΔΟΣΕΙΣ ΚΡΙΤΙΚΗ

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

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

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ Tel.: +30 2310998051, Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Φυσικής 541 24 Θεσσαλονίκη Καθηγητής Γεώργιος Θεοδώρου Ιστοσελίδα: http://users.auth.gr/theodoru ΙΑ ΟΧΙΚΕΣ ΒΕΛΤΙΩΣΕΙΣ

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΟΝΤΕΛΟΠΟΙΗΣΗ-ΨΗΦΙΑΚΗ ΣΥΝΘΕΣΗ ΕΙΚΟΝΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΟΝΤΕΛΟΠΟΙΗΣΗ-ΨΗΦΙΑΚΗ ΣΥΝΘΕΣΗ ΕΙΚΟΝΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΟΝΤΕΛΟΠΟΙΗΣΗ-ΨΗΦΙΑΚΗ ΣΥΝΘΕΣΗ ΕΙΚΟΝΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ 3 η Σειρά Ασκήσεων 1. Ένα σωματίδιο με μάζα m=4 βρίσκεται αρχικά (t=0) στη θέση x=(2,2)

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

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων

Κεφάλαιο 2. Διανύσματα και Συστήματα Συντεταγμένων Κεφάλαιο 2 Διανύσματα και Συστήματα Συντεταγμένων Διανύσματα Διανυσματικά μεγέθη Φυσικά μεγέθη που έχουν τόσο αριθμητικές ιδιότητες όσο και ιδιότητες κατεύθυνσης. Σε αυτό το κεφάλαιο, θα ασχοληθούμε με

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

y 1 (x) f(x) W (y 1, y 2 )(x) dx,

y 1 (x) f(x) W (y 1, y 2 )(x) dx, Συνήθεις Διαφορικές Εξισώσεις Ι Ασκήσεις - 07/1/017 Μέρος 1ο: Μη Ομογενείς Γραμμικές Διαφορικές Εξισώσεις Δεύτερης Τάξης Θεωρούμε τη γραμμική μή-ομογενή διαφορική εξίσωση y + p(x) y + q(x) y = f(x), x

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

ΘΕΜΑ ΈΡΕΥΝΑΣ: Η ΣΧΕΣΗ ΑΝΑΜΕΣΑ ΣΤΗ

ΘΕΜΑ ΈΡΕΥΝΑΣ: Η ΣΧΕΣΗ ΑΝΑΜΕΣΑ ΣΤΗ Μαθήτρια: Αίγλη Θ. Μπορονικόλα Καθηγητής : Ιωάννης Αντ. Παπατσώρης ΜΑΘΗΜΑ: ΈΡΕΥΝΑ & ΤΕΧΝΟΛΟΓΙΑ ΘΕΜΑ ΈΡΕΥΝΑΣ: Η ΣΧΕΣΗ ΑΝΑΜΕΣΑ ΣΤΗ ΓΩΝΙΑ ΚΕΚΛΙΜΕΝΟΥ ΕΠΙΠΕΔΟΥ ΚΑΙ ΤΗ ΔΥΝΑΜΗ ΕΛΞΗΣ ΓΙΑ ΝΑ ΙΣΟΡΡΟΠΗΣΕΙ ΕΝΑ ΣΩΜΑ

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

Μέτρηση της επιτάχυνσης της βαρύτητας με τη βοήθεια του απλού εκκρεμούς.

Μέτρηση της επιτάχυνσης της βαρύτητας με τη βοήθεια του απλού εκκρεμούς. Μ2 Μέτρηση της επιτάχυνσης της βαρύτητας με τη βοήθεια του απλού εκκρεμούς. 1 Σκοπός Η εργαστηριακή αυτή άσκηση αποσκοπεί στη μέτρηση της επιτάχυνσης της βαρύτητας σε ένα τόπο. Αυτή η μέτρηση επιτυγχάνεται

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

ΑΤΕΙ ΠΕΙΡΑΙΑ/ ΣΤΕΦ 16/2/2012 ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ A ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ Ι

ΑΤΕΙ ΠΕΙΡΑΙΑ/ ΣΤΕΦ 16/2/2012 ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ A ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ Ι ΑΤΕΙ ΠΕΙΡΑΙΑ/ ΣΤΕΦ 6//0 ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ A ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ Ι ΕΞΕΤΑΣΤΗΣ: ΒΑΡΣΑΜΗΣ ΧΡΗΣΤΟΣ ΔΙΑΡΚΕΙΑ ΩΡΕΣ ΑΣΚΗΣΗ Σωματίδιο μάζας m = Kg κινείται ευθύγραμμα και ομαλά στον

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

ΚΕΦΑΛΑΙΟ 5: ΣΥΣΤΗΜΑΤΑ ΠΟΛΛΩΝ ΣΩΜΑΤΩΝ

ΚΕΦΑΛΑΙΟ 5: ΣΥΣΤΗΜΑΤΑ ΠΟΛΛΩΝ ΣΩΜΑΤΩΝ ΚΕΦΑΛΑΙΟ 5: ΣΥΣΤΗΜΑΤΑ ΠΟΛΛΩΝ ΣΩΜΑΤΩΝ Στο κεφάλαιο αυτό θα ασχοληθούµε αρχικά µε ένα µεµονωµένο σύστηµα δύο σωµάτων στα οποία ασκούνται µόνο οι µεταξύ τους κεντρικές δυνάµεις, επιτρέποντας ωστόσο και την

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

website:

website: Αλεξάνδρειο Τεχνολογικό Εκπαιδευτικό Ιδρυμα Θεσσαλονίκης Τμήμα Μηχανικών Αυτοματισμού Μαθηματική Μοντελοποίηση Αναγνώριση Συστημάτων Μαάιτα Τζαμάλ-Οδυσσέας 6 Μαρτίου 2017 1 Εισαγωγή Κάθε φυσικό σύστημα

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

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας Διανύσματα Καστοριά,

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

ENOTHTA 1.1 ΕΥΘΥΓΡΑΜΜΗ ΚΙΝΗΣΗ

ENOTHTA 1.1 ΕΥΘΥΓΡΑΜΜΗ ΚΙΝΗΣΗ ENOTHTA. ΕΥΘΥΓΡΑΜΜΗ ΚΙΝΗΣΗ ΦΥΣΙΚΗ Α ΛΥΚΕΙΟΥ ΜΕΡΟΣ ο. Πώς προσδιορίζουμε τη θέση των αντικειμένων; A O M B ' y P Ì(,y) Ð Για τον προσδιορισμό της θέσης πάνω σε μία ευθεία πρέπει να έχουμε ένα σημείο της

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

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

ΗΛΕΚΤΡΟΜΑΓΝΗΤΙΚΗ ΘΕΩΡΙΑ ΗΛΕΚΤΡΙΚΟ ΦΟΡΤΙΟ ΚΑΙ ΗΛΕΚΤΙΚΟ ΠΕΔΙΟ ΗΛΕΚΤΡΟΜΑΓΝΗΤΙΚΗ ΘΕΩΡΙΑ ΗΛΕΚΤΡΙΚΟ ΦΟΡΤΙΟ ΚΑΙ ΗΛΕΚΤΙΚΟ ΠΕΔΙΟ 1 1. ΗΛΕΚΤΡΙΚΟ ΦΟΡΤΙΟ Οι αρχαίοι Έλληνες ανακάλυψαν από το 600 π.χ. ότι, το κεχριμπάρι μπορεί να έλκει άλλα αντικείμενα όταν το τρίψουμε με μαλλί.

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

Γενική Φυσική. Ο νόμος Coulomb. Το ηλεκτρικό πεδίο. Κωνσταντίνος Χ. Παύλου 1

Γενική Φυσική. Ο νόμος Coulomb. Το ηλεκτρικό πεδίο. Κωνσταντίνος Χ. Παύλου 1 Γενική Φυσική Κωνσταντίνος Χ. Παύλου Φυσικός Ραδιοηλεκτρολόγος (MSc) Καστοριά, Σεπτέμβριος 14 1. Η έννοια του ηλεκτρικού πεδίου. 3. Πεδίο σημειακού φορτίου 4. Οι δυναμικές γραμμές 5. Η αρχή της υπέρθεσης

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

Το διαστημόπλοιο. Γνωστικό Αντικείμενο: Φυσική (Δυναμική σε μία διάσταση - Δυναμική στο επίπεδο) Τάξη: Α Λυκείου

Το διαστημόπλοιο. Γνωστικό Αντικείμενο: Φυσική (Δυναμική σε μία διάσταση - Δυναμική στο επίπεδο) Τάξη: Α Λυκείου Το διαστημόπλοιο Γνωστικό Αντικείμενο: Φυσική (Δυναμική σε μία διάσταση - Δυναμική στο επίπεδο) Τάξη: Α Λυκείου Χρονική Διάρκεια Προτεινόμενη χρονική διάρκεια σχεδίου εργασίας: 5 διδακτικές ώρες Διδακτικοί

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

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

ΔΙΕΡΕΥΝΗΣΗ ΤΩΝ ΕΝΝΟΙΩΝ ΕΝΤΑΣΗ ΚΑΙ ΔΥΝΑΜΙΚΟ ΣΕ ΗΛΕΚΤΡΙΚΟ ΠΕΔΙΟ ΠΟΥ ΔΗΜΙΟΥΡΓΕΙΤΑΙ ΑΠΟ ΔΥΟ ΣΗΜΕΙΑΚΑ ΦΟΡΤΙΑ 2 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 475 ΔΙΕΡΕΥΝΗΣΗ ΤΩΝ ΕΝΝΟΙΩΝ ΕΝΤΑΣΗ ΚΑΙ ΔΥΝΑΜΙΚΟ ΣΕ ΗΛΕΚΤΡΙΚΟ ΠΕΔΙΟ ΠΟΥ ΔΗΜΙΟΥΡΓΕΙΤΑΙ ΑΠΟ ΔΥΟ ΣΗΜΕΙΑΚΑ ΦΟΡΤΙΑ Μαστρογιάννης Αθανάσιος Εκπαιδευτικός Δευτεροβάθμιας

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

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

Μελέτη ευθύγραμμης ομαλά επιταχυνόμενης κίνησης και. του θεωρήματος μεταβολής της κινητικής ενέργειας. με τη διάταξη της αεροτροχιάς Εργαστηριακή Άσκηση 4 Μελέτη ευθύγραμμης ομαλά επιταχυνόμενης κίνησης και του θεωρήματος μεταβολής της κινητικής ενέργειας με τη διάταξη της αεροτροχιάς Βαρσάμης Χρήστος Στόχος: Μελέτη της ευθύγραμμης

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

Φυσική Θετικών Σπουδών Γ τάξη Ενιαίου Λυκείου 2 0 Κεφάλαιο

Φυσική Θετικών Σπουδών Γ τάξη Ενιαίου Λυκείου 2 0 Κεφάλαιο Φυσική Θετικών Σπουδών Γ τάξη Ενιαίου Λυκείου 0 Κεφάλαιο Περιέχει: Αναλυτική Θεωρία Ερωτήσεις Θεωρίας Ερωτήσεις Πολλαπλής Επιλογής Ερωτήσεις Σωστού - λάθους Ασκήσεις ΘΕΩΡΙΑ 4- ΕΙΣΑΓΩΓΗ Στην μέχρι τώρα

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

Κεφάλαιο M5. Οι νόμοι της κίνησης

Κεφάλαιο M5. Οι νόμοι της κίνησης Κεφάλαιο M5 Οι νόμοι της κίνησης Οι νόμοι της κίνησης Μέχρι τώρα, περιγράψαμε την κίνηση ενός σώματος συναρτήσει της θέσης, της ταχύτητας, και της επιτάχυνσής του. Δεν λάβαμε υπόψη μας τι μπορεί να επηρεάζει

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

Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville

Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville Τµήµα Π. Ιωάννου & Θ. Αποστολάτου 16/5/2000 Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville Στη Χαµιλτονιανή θεώρηση η κατάσταση του συστήµατος προσδιορίζεται κάθε στιγµή από ένα και µόνο σηµείο

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Κ ε φ. 1 Κ Ι Ν Η Σ Ε Ι Σ

Κ ε φ. 1 Κ Ι Ν Η Σ Ε Ι Σ Κ ε φ. 1 Κ Ι Ν Η Σ Ε Ι Σ Χρήσιμες έννοιες Κίνηση (σχετική κίνηση) ενός αντικειμένου λέγεται η αλλαγή της θέσης του ως προς κάποιο σύστημα αναφοράς. Τροχιά σώματος ονομάζουμε τη νοητή γραμμή που δημιουργεί

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

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα

Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα Τμήμα Φυσικής Πανεπιστημίου Κύπρου Χειμερινό Εξάμηνο 2016/2017 ΦΥΣ102 Φυσική για Χημικούς Διδάσκων: Μάριος Κώστα ΔΙΑΛΕΞΗ 11 Εισαγωγή στην Ηλεκτροδυναμική Ηλεκτρικό φορτίο Ηλεκτρικό πεδίο ΦΥΣ102 1 Στατικός

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

Γενική Φυσική. Ο νόμος Coulomb. Το ηλεκτρικό πεδίο. Κωνσταντίνος Χ. Παύλου 1

Γενική Φυσική. Ο νόμος Coulomb. Το ηλεκτρικό πεδίο. Κωνσταντίνος Χ. Παύλου 1 Γενική Φυσική Κωνσταντίνος Χ. Παύλου Φυσικός Ραδιοηλεκτρολόγος (MSc) Καστοριά, Σεπτέμβριος 14 Το ηλεκτρικό πεδίο 1. Η έννοια του ηλεκτρικού πεδίου 2. 3. Πεδίο σημειακού φορτίου 4. Οι δυναμικές γραμμές

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

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. 5 Μαίου 2012

ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική. 5 Μαίου 2012 ΦΥΣ 145 Μαθηµατικές Μέθοδοι στη Φυσική 5 Μαίου 2012 Συµπληρώστε τα στοιχεία σας στο παρακάτω πίνακα τώρα Ονοµατεπώνυµο Αρ. Ταυτότητας Username Password Δηµιουργήστε ένα φάκελο στο home directory σας µε

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

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

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

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

Φυσική Α Λυκείου. Κωστής Λελεδάκης

Φυσική Α Λυκείου. Κωστής Λελεδάκης Φυσική Α Λυκείου Κωστής Λελεδάκης 2 ΚΕΦΑΛΑΙΟ 1 ΕΥΘΥΓΡΑΜΜΕΣ ΚΙΝΗΣΕΙΣ 1.1 ΕΙΣΑΓΩΓΙΚΕΣ ΓΝΩΣΕΙΣ 1.1.1 Θέση και Σύστημα αναφοράς Στην καθημερινή μας ζωή για να περιγράψουμε τη θέση ενός αντικειμένου, χρησιμοποιούμε

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

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

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

Θεωρία Φυσικής Τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών Τ.Ε.Ι. Λαμίας

Θεωρία Φυσικής Τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών Τ.Ε.Ι. Λαμίας Θεωρία Φυσικής Τμήματος Πληροφορικής και Τεχνολογίας Υπολογιστών Τ.Ε.Ι. Λαμίας Νόμοι Νεύτωνα - Δυνάμεις Εισαγωγή στην έννοια της Δύναμης Παρατηρούμε συχνά ότι κάποια σώματα γύρω μας ενώ είναι ακίνητα ή

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

Κατακόρυφη πτώση σωμάτων

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

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

Κεφάλαιο 5. Ενέργεια συστήματος

Κεφάλαιο 5. Ενέργεια συστήματος Κεφάλαιο 5 Ενέργεια συστήματος Εισαγωγή στην ενέργεια Οι νόμοι του Νεύτωνα και οι αντίστοιχες αρχές μας επιτρέπουν να λύνουμε μια ποικιλία προβλημάτων. Ωστόσο, μερικά προβλήματα, που θεωρητικά μπορούν

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

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

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΟΛΥΦΑΣΙΚΑ, ΠΟΛΥΣΥΣΤΑΤΙΚΑ & ΑΝΤΙΔΡΩΝΤΑ ΣΥΣΤΗΜΑΤΑ ΔΠΜΣ ΥΠΟΛΟΓΙΣΤΙΚΗ ΜΗΧΑΝΙΚΗ Ακαδημαϊκό Έτος: 2015-2016 / Εαρινό Εξάμηνο 1/30 ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΕ ΠΟΛΥΦΑΣΙΚΑ, ΠΟΛΥΣΥΣΤΑΤΙΚΑ & ΑΝΤΙΔΡΩΝΤΑ ΣΥΣΤΗΜΑΤΑ Καθηγήτρια Φούντη Μαρία Γενικευμένη Εξίσωση Μεταφοράς

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

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ ΦΥΣΙΚΗ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ Β ΛΥΚΕΙΟΥ Καμπυλόγραμμες Κινήσεις Επιμέλεια: Αγκανάκης Α. Παναγιώτης, Φυσικός http://phyiccore.wordpre.com/ Βασικές Έννοιες Μέχρι στιγμής έχουμε μάθει να μελετάμε απλές κινήσεις,

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

Ευθύγραμμες Κινήσεις

Ευθύγραμμες Κινήσεις Οι παρακάτω σημειώσεις διανέμονται υπό την άδεια: Creaive Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 4.0 Διεθνές. 1 Θέση και Σύστημα αναφοράς Στην καθημερινή μας ζωή για να περιγράψουμε

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

Φυσική Α Λυκείου. Σημειώσεις από τη θεωρία του σχολικού βιβλίου (βοήθημα για μια γρήγορη επανάληψη)

Φυσική Α Λυκείου. Σημειώσεις από τη θεωρία του σχολικού βιβλίου (βοήθημα για μια γρήγορη επανάληψη) Φυσική Λυκείου Σημειώσεις από τη θερία του σχολικού βιβλίου (βοήθημα για μια γρήγορη επανάληψη) Εισαγγή στις φυσικές επιστήμες Οι φυσικές επιστήμες αποτελούν την προσπάθεια του ανθρώπου να περιγράψει και

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

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης; 10. Τι ονομάζουμε Ευκλείδεια διαίρεση και τέλεια διαίρεση; Όταν δοθούν δύο φυσικοί αριθμοί Δ και δ, τότε υπάρχουν δύο άλλοι φυσικοί αριθμοί π και υ, έτσι ώστε να ισχύει: Δ = δ π + υ. Ο αριθμός Δ λέγεται

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

Ονοματεπώνυμο Φοιτητή. Εργαστηριακό Τμήμα Π.χ. Δευτέρα

Ονοματεπώνυμο Φοιτητή. Εργαστηριακό Τμήμα Π.χ. Δευτέρα Ονοματεπώνυμο Φοιτητή Εργαστηριακό Τμήμα Π.χ. Δευτέρα 11 00 13 00 Ομάδα Π.χ. 1A Πειραματική άσκηση Ελεύθερη πτώση Ημερομηνία Εκτέλεσης Άσκησης... / / 2015 Ημερομηνία παράδοσης εργαστ.αναφοράς... / / 2015

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

Εργαστήριο Ανώτερης Γεωδαισίας Μάθηµα 7ου Εξαµήνου (Ακαδ. Έτος ) «Εισαγωγή στο Γήινο Πεδίο Βαρύτητας» ΕΞΑΜΗΝΟ ΑΣΚΗΣΗ 2

Εργαστήριο Ανώτερης Γεωδαισίας Μάθηµα 7ου Εξαµήνου (Ακαδ. Έτος ) «Εισαγωγή στο Γήινο Πεδίο Βαρύτητας» ΕΞΑΜΗΝΟ ΑΣΚΗΣΗ 2 Εργαστήριο Ανώτερης Γεωδαισίας Μάθηµα 7ου Εξαµήνου (Ακαδ. Έτος 2018-19) «Εισαγωγή στο Γήινο Πεδίο Βαρύτητας» ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΕΞΑΜΗΝΟ Ηµεροµηνία Παράδοσης : 6/11/2018 ΑΣΚΗΣΗ 2 Σκοπός: Η παρούσα εργασία αποσκοπεί

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

Μαθηματική Εισαγωγή Συναρτήσεις

Μαθηματική Εισαγωγή Συναρτήσεις Φυσικός Ραδιοηλεκτρολόγος (MSc) ο Γενικό Λύκειο Καστοριάς Καστοριά, Ιούλιος 14 A. Μαθηματική Εισαγωγή Πράξεις με αριθμούς σε εκθετική μορφή Επίλυση βασικών μορφών εξισώσεων Συναρτήσεις Στοιχεία τριγωνομετρίας

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

Ηλεκτρομαγνητισμός. Μαγνητικό πεδίο. Νίκος Ν. Αρπατζάνης

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

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

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

Μέθοδοι πολυδιάστατης ελαχιστοποίησης Μέθοδοι πολυδιάστατης ελαχιστοποίησης με παραγώγους Μέθοδοι πολυδιάστατης ελαχιστοποίησης Δ. Γ. Παπαγεωργίου Τμήμα Μηχανικών Επιστήμης Υλικών Πανεπιστήμιο Ιωαννίνων dpapageo@cc.uoi.gr http://pc64.materials.uoi.gr/dpapageo

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

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

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

ΦΥΣΙΚΗ Α ΛΥΚΕΙΟΥ. Επιμέλεια Σημειώσεων : Ελένη Κασούτσα ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ-ΜΑΘΗΜΑΤΙΚΟ ΒΟΗΘΗΜΑ

ΦΥΣΙΚΗ Α ΛΥΚΕΙΟΥ. Επιμέλεια Σημειώσεων : Ελένη Κασούτσα ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ-ΜΑΘΗΜΑΤΙΚΟ ΒΟΗΘΗΜΑ ΦΥΣΙΚΗ Α ΛΥΚΕΙΟΥ Επιμέλεια Σημειώσεων : Ελένη Κασούτσα ΕΙΣΑΓΩΓΙΚΟ ΚΕΦΑΛΑΙΟ-ΜΑΘΗΜΑΤΙΚΟ ΒΟΗΘΗΜΑ Περιεχόμενα Μαθηματικό Βοήθημα... 3 Μονόμετρα και Διανυσματικά Μεγέθη... 7 Το Διεθνές Σύστημα Μονάδων (S.I.)...

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

Κίνηση πλανητών Νόµοι του Kepler

Κίνηση πλανητών Νόµοι του Kepler ΦΥΣ 111 - Διαλ.29 1 Κίνηση πλανητών Νόµοι του Keple! Θα υποθέσουµε ότι ο ήλιος είναι ακίνητος (σχεδόν σωστό αφού έχει τόσο µεγάλη µάζα και η γη δεν τον κινεί).! Οι τροχιές των πλανητών µοιάζουν κάπως σα

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

minimath.eu Φυσική A ΛΥΚΕΙΟΥ Περικλής Πέρρος 1/1/2014

minimath.eu Φυσική A ΛΥΚΕΙΟΥ Περικλής Πέρρος 1/1/2014 minimath.eu Φυσική A ΛΥΚΕΙΟΥ Περικλής Πέρρος 1/1/014 minimath.eu Περιεχόμενα Κινηση 3 Ευθύγραμμη ομαλή κίνηση 4 Ευθύγραμμη ομαλά μεταβαλλόμενη κίνηση 5 Δυναμικη 7 Οι νόμοι του Νεύτωνα 7 Τριβή 8 Ομαλη κυκλικη

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

Η πρόβλεψη της ύπαρξης και η έµµεση παρατήρηση των µελανών οπών θεωρείται ότι είναι ένα από τα πιο σύγχρονα επιτεύγµατα της Κοσµολογίας.

Η πρόβλεψη της ύπαρξης και η έµµεση παρατήρηση των µελανών οπών θεωρείται ότι είναι ένα από τα πιο σύγχρονα επιτεύγµατα της Κοσµολογίας. Η πρόβλεψη της ύπαρξης και η έµµεση παρατήρηση των µελανών οπών θεωρείται ότι είναι ένα από τα πιο σύγχρονα επιτεύγµατα της Κοσµολογίας. Παρ' όλα αυτά, πρώτος ο γάλλος µαθηµατικός Λαπλάςτο 1796 ανέφερε

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

ΕΙΔΙΚΗ ΘΕΩΡΙΑ ΤΗΣ ΣΧΕΤΙΚΟΤΗΤΑΣ

ΕΙΔΙΚΗ ΘΕΩΡΙΑ ΤΗΣ ΣΧΕΤΙΚΟΤΗΤΑΣ ΕΙΔΙΚΗ ΘΕΩΡΙΑ ΤΗΣ ΣΧΕΤΙΚΟΤΗΤΑΣ Διδάσκων: Θεόδωρος Ν. Τομαράς 1. Μετασχηματισμοί συντεταγμένων και συμμετρίες. 1α. Στροφές στο επίπεδο. Θεωρείστε δύο καρτεσιανά συστήματα συντεταγμένων στο επίπεδο, στραμμένα

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

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη;

1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; ΚΕΦΑΛΑΙΟ 2 ο ΚΙΝΗΣΗ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης. Στην Κινηματική

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

ΤΕΧΝΙΚΗ ΜΗΧΑΝΙΚΗ Ι ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ- ΥΝΑΜΕΙΣ ΣΤΟ ΕΠΙΠΕ Ο ΚΑΙ ΣΤΟ

ΤΕΧΝΙΚΗ ΜΗΧΑΝΙΚΗ Ι ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ- ΥΝΑΜΕΙΣ ΣΤΟ ΕΠΙΠΕ Ο ΚΑΙ ΣΤΟ ΤΕΧΝΙΚΗ ΜΗΧΑΝΙΚΗ Ι ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ- ΥΝΑΜΕΙΣ ΣΤΟ ΕΠΙΠΕ Ο ΚΑΙ ΣΤΟ ΧΩΡΟ Στη συνέχεια θα δοθούν ορισμένες βασικές έννοιες μαθηματικών και φυσικήςμηχανικής που είναι απαραίτητες για την κατανόηση του μαθήματος

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Πτυχιακή εξέταση στη Μηχανική ΙI 20 Σεπτεμβρίου 2007

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Πτυχιακή εξέταση στη Μηχανική ΙI 20 Σεπτεμβρίου 2007 ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Φυσικής Πτυχιακή εξέταση στη Μηχανική ΙI 0 Σεπτεμβρίου 007 Τμήμα Π. Ιωάννου & Θ. Αποστολάτου Απαντήστε στα ερωτήματα που ακολουθούν με σαφήνεια, ακρίβεια και απλότητα. Όλα τα

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

8. Σύνθεση και ανάλυση δυνάμεων

8. Σύνθεση και ανάλυση δυνάμεων 8. Σύνθεση και ανάλυση δυνάμεων Βασική θεωρία Σύνθεση δυνάμεων Συνισταμένη Σύνθεση δυνάμεων είναι η διαδικασία με την οποία προσπαθούμε να προσδιορίσουμε τη δύναμη εκείνη που προκαλεί τα ίδια αποτελέσματα

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

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

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

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

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ

Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ Κίνηση ΚΕΦΑΛΑΙΟ 2 Β ΓΥΜΝΑΣΙΟΥ 2.1 Περιγραφή της Κίνησης 1. Τι είναι η Κινηματική; Ποια κίνηση ονομάζεται ευθύγραμμη; Κινηματική είναι ο κλάδος της Φυσικής που έχει ως αντικείμενο τη μελέτη της κίνησης.

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

ΟΙ ΚΙΝΗΣΕΙΣ ΤΗΣ ΓΗΣ. www.meteo.gr - 1 -

ΟΙ ΚΙΝΗΣΕΙΣ ΤΗΣ ΓΗΣ. www.meteo.gr - 1 - ΟΙ ΚΙΝΗΣΕΙΣ ΤΗΣ ΓΗΣ H Γη είναι ένας πλανήτης από τους οκτώ συνολικά του ηλιακού μας συστήματος, το οποίο αποτελεί ένα από τα εκατοντάδες δισεκατομμύρια αστρικά συστήματα του Γαλαξία μας, ο οποίος με την

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

Δυνάμεις μεταξύ ηλεκτρικών φορτίων

Δυνάμεις μεταξύ ηλεκτρικών φορτίων Φυσική ενικής Παιδείας Β Λυκείου Δυνάμεις μεταξύ εκτρικών φορτίων- 3. Δυνάμεις μεταξύ εκτρικών φορτίων Φυσική ενικής Παιδείας Β Λυκείου Δυνάμεις μεταξύ εκτρικών φορτίων-. Νόμος του Coulomb Ανάμεσα σε δύο

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

ΕΚΦΕ Χανίων «Κ. Μ. Κούμας» Νίκος Αναστασάκης Γιάννης Σαρρής

ΕΚΦΕ Χανίων «Κ. Μ. Κούμας» Νίκος Αναστασάκης Γιάννης Σαρρής ΕΚΦΕ Χανίων «Κ. Μ. Κούμας» Νίκος Αναστασάκης Γιάννης Σαρρής Σκοπός Στόχοι Άσκησης Οι μαθητές να: Αναγνωρίζουν τις δυνάμεις που ασκούνται στα σώματα και αντιλαμβάνονται τις σχέσεις μεταξύ τους,

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

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

Γ ΛΥΚΕΙΟΥ ΟΙ ΚΙΝΗΣΕΙΣ ΤΩΝ ΣΤΕΡΕΩΝ ΣΩΜΑΤΩΝ Όποτε χρησιμοποιείτε το σταυρό ή το κλειδί της εργαλειοθήκης σας για να ξεσφίξετε τα μπουλόνια ενώ αντικαθιστάτε ένα σκασμένο λάστιχο αυτοκινήτου, ολόκληρος ο τροχός αρχίζει να στρέφεται και θα πρέπει

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

1.1 ΟΡΙΣΜΟΙ, ΣΤΟΙΧΕΙΩΔΗΣ ΠΡΟΣΕΓΓΙΣΗ

1.1 ΟΡΙΣΜΟΙ, ΣΤΟΙΧΕΙΩΔΗΣ ΠΡΟΣΕΓΓΙΣΗ Κεφάλαιο 1 ΔΙΑΝΥΣΜΑΤΙΚΗ ΑΝΑΛΥΣΗ 1.1 ΟΡΙΣΜΟΙ, ΣΤΟΙΧΕΙΩΔΗΣ ΠΡΟΣΕΓΓΙΣΗ Στις θετικές επιστήμες και στις τεχνολογικές τους εφαρμογές συναντάμε συχνά μεγέθη που χαρακτηρίζονται μόνο από το μέτρο τους: τη μάζα,

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

Κεφάλαιο Η2. Ο νόµος του Gauss

Κεφάλαιο Η2. Ο νόµος του Gauss Κεφάλαιο Η2 Ο νόµος του Gauss Ο νόµος του Gauss Ο νόµος του Gauss µπορεί να χρησιµοποιηθεί ως ένας εναλλακτικός τρόπος υπολογισµού του ηλεκτρικού πεδίου. Ο νόµος του Gauss βασίζεται στο γεγονός ότι η ηλεκτρική

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

Φυσική Β Γυμνασίου - Κεφάλαιο 2: Κινήσεις ΚΕΦΑΛΑΙΟ 2: ΚΙΝΗΣΕΙΣ. Φυσική Β Γυμνασίου

Φυσική Β Γυμνασίου - Κεφάλαιο 2: Κινήσεις ΚΕΦΑΛΑΙΟ 2: ΚΙΝΗΣΕΙΣ. Φυσική Β Γυμνασίου ΚΕΦΑΛΑΙΟ 2: ΚΙΝΗΣΕΙΣ Φυσική Β Γυμνασίου Εισαγωγή Τα πάντα γύρω μας κινούνται. Στο διάστημα όλα τα ουράνια σώματα κινούνται. Στο μικρόκοσμο συμβαίνουν κινήσεις που δεν μπορούμε να τις αντιληφθούμε άμεσα.

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