Μια προσέγγιση για τον αλγόριθμο Fast Multipole Method

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

Πεπερασμένες Διαφορές.

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

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

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

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

Αριθμητική Ολοκλήρωση της Εξίσωσης Κίνησης

ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΑΥΓΕΡΙΝΟΣ ΒΑΣΙΛΗΣ

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

Μερικές Διαφορικές Εξισώσεις

Δυαδικό Σύστημα Αρίθμησης

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

ΓΡΑΜΜΙΚΗ ΑΛΓΕΒΡΑ (Εξ. Ιουνίου - 02/07/08) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ

4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ

, ο αριθμός στον οποίο αντιστοιχεί ο 2 καλείται δεύτερος όρος της ακολουθίας και τον συμβολίζουμε συνήθως με

Αριθμητική εύρεση ριζών μη γραμμικών εξισώσεων

Θεωρία Πληροφορίας. Διάλεξη 4: Διακριτή πηγή πληροφορίας χωρίς μνήμη. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

Κεφάλαιο 2. Συστήματα Αρίθμησης και Αναπαράσταση Πληροφορίας. Περιεχόμενα. 2.1 Αριθμητικά Συστήματα. Εισαγωγή

ΜΕΓΙΣΤΙΚΟΣ ΤΕΛΕΣΤΗΣ 18 Σεπτεμβρίου 2014

Σήματα και Συστήματα. Διάλεξη 9: Μελέτη ΓΧΑ Συστημάτων με τον Μετασχηματισμό Fourier. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής

. Πρόκειται για ένα σημαντικό βήμα, καθώς η παράμετρος χρόνος υποχρεωτικά μεταβάλλεται σε κάθε είδους κίνηση. Η επιλογή της χρονικής στιγμής t o

Fast Fourier Transform

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

1 Αριθμητική κινητής υποδιαστολής και σφάλματα στρογγύλευσης

Pr(10 X 15) = Pr(15 X 20) = 1/2, (10.2)

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

ΘΕΩΡΙΑ Β ΓΥΜΝΑΣΙΟΥ. Μια παράσταση που περιέχει πράξεις με μεταβλητές (γράμματα) και αριθμούς καλείται αλγεβρική, όπως για παράδειγμα η : 2x+3y-8

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

Project 1: Principle Component Analysis

ΣΥΣΤΗΜΑΤΑ. 6.1 ΓΡΑΜΜΙΚΑ ΣΥΣΤΗΜΑΤΑ (Επαναλήψεις-Συμπληρώσεις)

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

1.1. Με τι ασχολείται η Αριθμητική Ανάλυση

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

Στ Τάξη. Α/Α Μαθηματικό περιεχόμενο Δείκτες Επιτυχίας Ώρες Διδ. 1 ENOTHTA 1

4. Παραγώγιση πεπερασμένων διαφορών Σειρά Taylor Πολυωνυμική παρεμβολή

Παράλληλος προγραμματισμός περιστροφικών αλγορίθμων εξωτερικών σημείων τύπου simplex ΠΛΟΣΚΑΣ ΝΙΚΟΛΑΟΣ

Α. Οι πραγματικοί αριθμοί και οι πράξεις τους

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

ΜΑΘΗΜΑΤΙΚΑ ΘΕΤΙΚΗΣ & ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΜΙΓΑΔΙΚΟΙ ΑΡΙΘΜΟΙ ΛΥΜΕΝΕΣ & ΑΛΥΤΕΣ ΑΣΚΗΣΕΙΣ. Επιμέλεια: Γ. Π. Βαξεβάνης (Γ. Π. Β.

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

1.1 Βασικές Έννοιες των Διαφορικών Εξισώσεων

ΠΑΡΑΔΕΙΓΜΑΤΑ ΘΕΜΑ Β. 2x 1. είναι Τότε έχουμε: » τον χρησιμοποιούμε κυρίως σε θεωρητικές ασκήσεις.

5 ΠΡΟΟΔΟΙ 5.1 ΑΚΟΛΟΥΘΙΕΣ. Η έννοια της ακολουθίας

i=1 i=1 i=1 (x i 1, x i +1) (x 1 1, x k +1),

Χρήστος Ι. Σχοινάς Αν. Καθηγητής ΔΠΘ. Συμπληρωματικές σημειώσεις για το μάθημα: «Επιχειρησιακή Έρευνα ΙΙ»

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

HY213. ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ ΥΠΟΛΟΓΙΣΜΟΙ ΚΑΙ ΣΦΑΛΜΑΤΑ ΑΡΙΘΜΗΤΙΚΗ ΚΙΝΗΤΗΣ ΥΠΟΔΙΑΣΤΟΛΗΣ

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

 = 1 A A = A A. A A + A2 y. A = (A x, A y ) = A x î + A y ĵ. z A. 2 A + A2 z

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

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

[1] είναι ταυτοτικά ίση με το μηδέν. Στην περίπτωση που το στήριγμα μιας συνάρτησης ελέγχου φ ( x)

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΕΝΤΡΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΣΧΟΛΗ ΤΜΗΜΑ. Μαθηματικά 1. Σταύρος Παπαϊωάννου

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

ΚΕΦΑΛΑΙΟ 3 ΤΟ ΔΙΩΝΥΜΙΚΟ ΘΕΩΡΗΜΑ

ΑΝΑΛΥΣΗ 1 ΕΙΚΟΣΤΟ ΠΡΩΤΟ ΜΑΘΗΜΑ, Μ. Παπαδημητράκης.

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

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

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

Περιπτώσεις συνοριακών συνθηκών σε προβλήματα γεωτεχνικής μηχανικής

4. Παραγώγιση πεπερασμένων διαφορών Σειρά Taylor Πολυωνυμική παρεμβολή

Εισαγωγή Στις Αρχές Της Επιστήμης Των Η/Υ. Η έννοια του Προβλήματος - ΚΕΦΑΛΑΙΟ 2

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

Περιεχόμενα. Ανάλυση προβλήματος. Δομή ακολουθίας. Δομή επιλογής. Δομή επανάληψης. Απαντήσεις. 1. Η έννοια πρόβλημα Επίλυση προβλημάτων...

ΟΙ πιο πάνω έννοιες εκφράζουν όπως λέμε τη μονοτονία της συνάρτησης.

11 ΣΥΝΗΘΕΙΣ ΔΙΑΦΟΡΙΚΕΣ ΕΞΙΣΩΣΕΙΣ

Κεφαλαιο 7: Η ΜΠΣ για ελλειπτικά προβλήματα με μη-ομαλές λύσεις

Μαθηματικά Γ Γυμνασίου

Κεφάλαιο 0: Εισαγωγή

2.1 Αριθμητική επίλυση εξισώσεων

5. (Λειτουργικά) Δομικά Διαγράμματα

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

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Μιγαδικός λογισμός και ολοκληρωτικοί Μετασχηματισμοί

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

Ψευδοκώδικας. November 7, 2011

Άλγεβρα 1 ο Κεφάλαιο ... ν παράγοντες

Δισδιάστατη Αγωγή Θερμότητας: Γραφικές Μέθοδοι Ανάλυσης

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον

Κατακερματισμός (Hashing)

ΠΡΟΒΛΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ

Q 40 th International Physics Olympiad, Merida, Mexico, July 2009

ΦΥΣΙΚΗ. Ενότητα 2: ΔΙΑΝΥΣΜΑΤΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΣΥΝΤΕΤΑΓΜΕΝΩΝ. Αν. Καθηγητής Πουλάκης Νικόλαος ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε.

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

ΜΕΤΡΩΝΤΑΣ ΤΟΝ ΠΛΑΝΗΤΗ ΓΗ

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

A2. Θεωρήστε ότι d << r. Να δώσετε μια προσεγγιστική έκφραση για τη δυναμική ενέργεια συναρτήσει του q,d, r και των θεμελιωδών σταθερών.

Μ Α Θ Η Μ Α Τ Α Γ Λ Υ Κ Ε Ι Ο Υ

ΕΝΟΤΗΤΑ 6 ΜΟΤΙΒΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΥ 2, 5 ΚΑΙ 10. Αρ2.7 Ανακαλύπτουν, διατυπώνουν και εφαρμόζουν τα κριτήρια διαιρετότητας του 2, 5 και του 10.

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

Πρόγραμμα Επικαιροποίησης Γνώσεων Αποφοίτων ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΑΛΓΕΒΡΑ Β ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ

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

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

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟ- ΛΟΓΙΣΤΩΝ Μια προσέγγιση για τον αλγόριθμο Fast Multipole Method Διπλωματική Εργασία Ονοματεπώνυμο: Κολέτσου Κουτσίου Λίντα Λαμπρινή Επιβλέπων: Πιτσιάνης Νικόλαος, Επίκουρος Καθηγητής Θεσσαλονίκη, Μάρτιος 2016

Abstract One of the problems that comes up really often, especially in the field of physics, is the so called N - body problem. A great amount of different algorithms has been proposed in order to solve this problem in the least time, as the direct evaluation is of great computational cost. One of the most important of these algorithms is Fast Multipole Method, proposed by L.Greengard and V.Rohklin. This algorithm solves the problem with O(N) computational cost for a specific accuracy e. In the current thesis we tried to implement a matrix version of the algorithm in an attempt to present it in a more easy to understand way. The matrix version of the algorithm, denudes the algorithm from the strict mathematical description and in the same time makes it easy to expand and further implement. In addition to the serial code, we also created a GPU version of the code.

Περίληψη Ένα από τα προβλήματα που συναντώνται συχνά, ιδιαίτερα στον τομέα της φυσικής είναι το λεγόμενο πρόβλημα Ν - σωμάτων ( N - body problem). Για την επίλυση του προβλήματος αυτού έχουν προταθεί κατά καιρούς διάφοροι αλγόριθμοι που στόχο έχουν την επίλυση του προβλήματος στο λιγότερο δυνατό χρόνο, καθώς η ευθεία επίλυσή του έχει μεγάλο υπολογιστικό κόστος. Ένας από τους πιο σημαντικούς αλγορίθμους που έχουν προταθεί είναι ο Fast Multipole Method που δημιουργήθηκε από τους L.Greengard και V.Rohklin. Πρόκειται για έναν αριθμητικό αλγόριθμο που επιλύει το πρόβλημα με πολυπλοκότητα Ο(Ν) και επιθυμητή ακρίβεια e. Στα πλαίσια της παρούσας διπλωματικής επιχειρήσαμε την υ- λοποίηση μιας έκδοσης αυτού του αλγορίθμου σε μορφή πινάκων, μορφή που καθιστά τον αλγόριθμο περισσότερο εύληπτο, καθώς τον απομακρύνει από την αναλυτική μαθηματική του περιγραφή, ενώ παράλληλα τον καθιστά εύκολα επεκτάσιμο και παραμετροποιήσιμο. Συνοδευτικά προς τον κώδικα που υλοποιήσαμε, προσθέσαμε και μια παράλληλη υλοποίηση του αλγορίθμου, που στοχεύει στη μείωση του χρόνου εκτέλεσης κάνοντας χρήση της GPU.

Ευχαριστίες Η παρούσα εργασία αποτελεί τη διπλωματική μου εργασία για το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης και εκπονήθηκε κατά τη διάρκεια του έτους 2015-2016. Αιτία για την ενασχόληση μου με το συγκεκριμένο θέμα, αποτελεί ο επιβλέπων καθηγητής της διπλωματικής, κ. Πιτσιάνης Νικόλαος, τον οποίο θα ήθελα να ευχαριστήσω ιδιαίτερα για τη δυνατότητα που μου έδωσε να ασχοληθώ με ένα τόσο ενδιαφέρον θέμα, καθώς επίσης και για τη διαρκή καθοδήγηση και τη συμβουλευτική που μου παρείχε όλο αυτό το διάστημα, όπως επίσης και για την μεγάλη υπομονή και εμπιστοσύνη που μου έδειξε. Ακολούθως, θα ήθελα να ευχαριστήσω το συμφοιτητή μου Μυλωνάκη Κωσταντίνο, πολύτιμο συνεργάτη μου σε αυτή την προσπάθεια, για τη συνεργασία μας όλο αυτό το διάστημα, καθώς μαζί υλοποιήσαμε ένα μεγάλο κομμάτι της αλγορίθμου. Βεβαίως, η προσπάθεια αυτή δε θα μπορούσε να ολοκληρωθεί χωρίς την υποστήριξη και τη συμπαράσταση της μητέρας μου και του αδερφού μου, καθώς επίσης και όλων των ανθρώπων που ήταν κοντά μου αυτό το διάστημα. Τέλος, θα ήθελα να ευχαριστήσω ιδιαίτερα, το φυσικό και καθηγητή δευτεροβάθμιας εκπαίδευσης κ. Τουμπεκτσή Σωκράτη, που υπήρξε εκτός από εκπαιδευτικός και υποστηρικτής μου όλα αυτά τα χρόνια. Αφιερώνω, λοιπόν, τη διπλωματική μου σε όλους αυτούς που ήταν μαζί μου όλα αυτά τα χρόνια μέχρι και τη συγγραφή της παρούσας διπλωματικής. Κολέτσου Κουτσίου Λίντα Λαμπρινή

Περιεχόμενα 1 Εισαγωγή 1 1.1 Περιγραφή του προβλήματος........................... 2 1.2 Υπάρχουσες προσεγγίσεις............................. 3 1.3 Στόχοι της εργασίας................................ 3 1.4 Δομή της εργασίας................................. 4 1.5 Τυπογραφικές παραδοχές............................. 4 2 Ο αλγόριθμος Fast Multipole Method 7 2.1 Διαχωρίσιμοι πυρήνες και πίνακες χαμηλής βαθμίδας............. 8 2.2 Διαχωρισμός του πυρήνα χρησιμοποιώντας επεκτάσεις σε σειρά....... 10 2.2.1 Multipole expansion............................ 10 2.2.2 Local expansion.............................. 13 2.2.3 Μετατροπή μιας επέκτασης multipole expansion σε local expansion. 15 2.3 Διαχωρισμός του πυρήνα επιλύοντας προβλήματα Dirichlet.......... 17 2.3.1 Άνω ισοδύναμη κατανομή φορτίων.................... 18 2.3.2 Κάτω ισοδύναμη κατανομή φορτίων................... 20 2.3.3 Μετατροπή μιας άνω ισοδύναμης κατανομής φορτίων σε κάτω ισοδύναμη κατανομή φορτίων........................ 21 2.3.4 Η επιφάνειες ελέγχου και ισοδύναμης κατανομής........... 22 2.4 Ιεραρχική διάσπαση του χώρου.......................... 23 2.4.1 Η διαδρομή μέσα στο δέντρο....................... 24 2.4.2 Μεταφορά της επέκτασης multipole expansion............. 26 2.4.3 Μεταφορά της επέκτασης local expansion............... 28 2.4.4 Περιπτώσεις υπολογισμού χρησιμοποιώντας τη συνάρτηση του πυρήνα 30 3 Υλοποίηση του αλγορίθμου 33 3.1 Σειριακή υλοποίηση του αλγορίθμου....................... 34 3.2 Παράλληλη υλοποίηση του αλγορίθμου..................... 37 4 Συγκριτική μελέτη των υλοποιήσεων 41 4.1 Διαχωρισμός του πυρήνα με τη μέθοδο της επέκτασης σε σειρά....... 42 4.1.1 Σημεία στον όγκο κύβου.......................... 43 4.1.2 Σημεία στην επιφάνεια σφαίρας..................... 45 4.1.3 Σημεία στην επιφάνεια 1 8 της σφαίρας...................... 47 i

ii ΠΕΡΙΕΧΟΜΕΝΑ 4.2 Διαχωρισμός του πυρήνα με τη μέθοδο επίλυσης προβλημάτων Dirichlet... 49 4.2.1 Σημεία στον όγκο κύβου................................ 49 4.2.2 Σημεία στην επιφάνεια σφαίρας........................... 51 4.2.3 Σημεία στην επιφάνεια 1 8 της σφαίρας...................... 52 5 Ανοιχτά θέματα 55 Αʹ Σειριακός κώδικας σε Matlab 57 Αʹ.1 Δομικές συναρτήσεις του αλγορίθμου............................ 57 Αʹ.1.1 Συναρτήσεις αρχικοποίησης του αλγορίθμου.................. 57 Αʹ.1.2 Συναρτήσεις διάσπασης του χώρου........................ 59 Αʹ.1.3 Συνάρτηση για τον υπολογισμό των επιδράσεων μεταξύ των πηγων και των σημείων υπολογισμού............................ 62 Αʹ.1.4 Συνάρτηση υπολογισμού των συνολικών επιδράσεων στα σημεία - στόχους............................................ 64 Αʹ.2 Συναρτήσεις υπολογισμού των τελεστών του αλγορίθμου.............. 65 Αʹ.2.1 Διαχωρισμός του πυρήνα με τη μέθοδο επέκτασης σε σειρά....... 65 Αʹ.2.2 Διαχωρισμός του πυρήνα με τη μέθοδο επίλυσης Dirichlet - type προβλημάτων.......................................... 68 Αʹ.3 Συναρτήσεις δημιουργίας πλεγμάτων............................ 72 Αʹ.4 Άλλες βοηθητικές συναρτήσεις................................ 75 Βʹ Παράλληλος κώδικας σε Matlab 83 Γʹ Σειριακός κώδικας σε Julia 87 Γʹ.1 Δομικές συναρτήσεις του αλγορίθμου............................ 87 Γʹ.1.1 Συναρτήσεις αρχικοποίησης του αλγορίθμου.................. 87 Γʹ.1.2 Συναρτήσεις διάσπασης του χώρου........................ 89 Γʹ.1.3 Συνάρτηση για τον υπολογισμό των επιδράσεων μεταξύ των πηγων και των σημείων υπολογισμού............................ 93 Γʹ.1.4 Συνάρτηση υπολογισμού των συνολικών επιδράσεων στα σημεία - στόχους............................................ 94 Γʹ.2 Συναρτήσεις υπολογισμού των τελεστών του αλγορίθμου.............. 96 Γʹ.3 Συναρτήσεις δημιουργίας πλεγμάτων............................ 99 Γʹ.4 Άλλες βοηθητικές συναρτήσεις................................ 101

Κατάλογος Σχημάτων 2.1 Σχηματική απεικόνιση της χρήσης πίνακα χαμηλής βαθμίδας σε δύο διαστάσεις (από [10], τροποποιημένο)................................ 9 2.2 Multipole expansion (από [14], τροποποιημένο)..................... 11 2.3 Προσέγγιση της επίδρασης των πηγών χρησιμοποιώντας ανάπτυγμα σε ά- πειρη σειρά.............................................. 11 2.4 Η εισαγωγή της έννοιας του local expansion απο τον αλγόριθμο FMM (από [20], τροποποιημένο)....................................... 14 2.5 Local expansion (από [14], τροποποιημένο)........................ 14 2.6 Άνω ισοδύναμη επιφάνεια (πορτοκαλί κύκλος) και άνω επιφάνεια ελέγχου (πράσινος κύκλος) (από [27], τροποποιημένο)...................... 19 2.7 Κάτω ισοδύναμη επιφάνεια (πορτοκαλί κύκλος) και κάτω επιφάνεια ελέγχου (πράσινος κύκλος) (από [27], τροποποιημένο)...................... 21 2.8 Μετατροπή μιας άνω ισοδύναμης κατανομής σε κάτω ισοδύναμη κατανομή (από [27], τροποποιημένο)................................... 22 2.9 Γραφική απεικόνιση της διάσπασης του χώρου σε μία διάσταση (2.9αʹ), σε δύο διαστάσεις (2.9βʹ) και σε τρεις διαστάσεις (2.9γʹ) (από [17], τροποποιημένο).................................................. 24 2.10 Γραφική απεικόνιση του διασπασμένου χώρου ενός δισδιάστατου προβλήματος.................................................... 25 2.11 Διαδικασία υπολογισμού του δυναμικού που δημιουργείται από ένα σύνολο πηγών, σε ένα σύνολο από σημεία - στόχους, για δύο μακρινές περιοχές... 25 2.12 Γραφική απεικόνιση της μεταφοράς της επέκτασης multipole expansion από τους κόμβους παιδιά στον κόμβο γονέα για την περίπτωση δισδιάστατου προβλήματος (από [26], τροποποιημένο).......................... 27 2.13 Μεταφορά της άνω ισοδύναμης κατανομής (από [27], τροποποιημένο).... 28 2.14 Γραφική απεικόνιση της μεταφοράς της επέκτασης local expansion από τον κόμβο γονέα στους κόμβους παιδιά για την περίπτωση δισδιάστατου προβλήματος (από [26], τροποποιημένο)............................ 29 2.15 Μεταφορά της κάτω ισοδύναμης κατανομής (από [27], τροποποιημένο)... 30 3.1 Γραφική απεικόνιση του αλγορίθμου fast multipole method για την περίπτωση μονοδιάστατου προβλήματος (από [6], τροποποιημένο)............. 36 3.2 Τρόποι υπολογισμού της επίδρασης ενός συνόλου πηγών σε ένα σύνολο από σημεία - στόχους.......................................... 37 3.3 Γραφική απεικόνιση των κοντινών (ανοιχτό πράσινο) και των μακρινών (σκούρο πράσινο) γειτόνων ενός κόμβου (κόκκινο) για την περίπτωση δισδιάστατου προβλήματος.......................................... 38 iii

iv ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ 4.1 Διαφορετικές κατανομές που χρησιμοποιήθηκαν για τη δημιουργία πηγών και σημείων - στόχων....................................... 42 4.2 Διαγράμματα χρόνων εκτέλεσης για τη μέθοδο διαχωρισμού του πυρήνα μέσω της επέκτασης σε σειρά Taylor.............................. 43 4.3 Διάγραμμα εκτέλεσης του αλγορίθμου για τις τρεις διαφορετικές συναρτήσεις πυρήνα.............................................. 44 4.4 Διαγράμματα χρόνων εκτέλεσης του αλγορίθμου σε MATLAB και JULIA..... 45 4.5 Διαγράμματα χρόνων εκτέλεσης για τη μέθοδο διαχωρισμού του πυρήνα μέσω της επέκτασης σε σειρά Taylor.............................. 45 4.6 Διάγραμμα εκτέλεσης του αλγορίθμου για τις τρεις διαφορετικές συναρτήσεις πυρήνα.............................................. 46 4.7 Διαγράμματα χρόνων εκτέλεσης του αλγορίθμου σε MATLAB και JULIA..... 47 4.8 Διαγράμματα χρόνων εκτέλεσης για τη μέθοδο διαχωρισμού του πυρήνα μέσω της επέκτασης σε σειρά Taylor.............................. 47 4.9 Διάγραμμα εκτέλεσης του αλγορίθμου για τις τρεις διαφορετικές συναρτήσεις πυρήνα.............................................. 48 4.10 Διαγράμματα χρόνων εκτέλεσης του αλγορίθμου σε MATLAB και JULIA..... 48 4.11 Διαγράμματα χρόνων εκτέλεσης για τη μέθοδο διαχωρισμού του πυρήνα με τη μέθοδο επίλυσης προβλημάτων Dirichlet........................ 49 4.12 Διάγραμμα εκτέλεσης του αλγορίθμου για τις τρεις διαφορετικές συναρτήσεις πυρήνα.............................................. 50 4.13 Διαγράμματα χρόνων εκτέλεσης για τη μέθοδο διαχωρισμού του πυρήνα με τη μέθοδο επίλυσης προβλημάτων Dirichlet........................ 51 4.14 Διάγραμμα εκτέλεσης του αλγορίθμου για τις τρεις διαφορετικές συναρτήσεις πυρήνα.............................................. 51 4.15 Διαγράμματα χρόνων εκτέλεσης για τη μέθοδο διαχωρισμού του πυρήνα μέσω της επίλυσης προβλημάτων Dirichlet.......................... 52 4.16 Διάγραμμα εκτέλεσης του αλγορίθμου για τις τρεις διαφορετικές συναρτήσεις πυρήνα.............................................. 53

Κατάλογος Πινάκων 4.1 Συγκεντρωτικός πίνακας χρόνων εκτέλεσης για τη μέθοδο επέκτασης σε σειρά................................................... 44 4.2 Συγκεντρωτικός πίνακας χρόνων εκτέλεσης για τη μέθοδο επέκτασης σε σειρά................................................... 46 4.3 Συγκεντρωτικός πίνακας χρόνων εκτέλεσης για τη μέθοδο επέκτασης σε σειρά................................................... 48 4.4 Συγκεντρωτικός πίνακας χρόνων εκτέλεσης για τη μέθοδο επέκτασης σε σειρά................................................... 50 4.5 Συγκεντρωτικός πίνακας χρόνων εκτέλεσης για τη μέθοδο επέκτασης μέσω της επίλυσης προβλημάτων Dirichlet............................ 52 4.6 Συγκεντρωτικός πίνακας χρόνων εκτέλεσης για τη μέθοδο επέκτασης μέσω της επίλυσης προβλημάτων Dirichlet............................ 53 v

vi ΚΑΤΑΛΟΓΟΣ ΠΙΝΑΚΩΝ

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

2 1.1. ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ εκάστοτε υπολογισμούς και να αποθηκεύσουμε τους διάφορους όρους και τα ενδιάμεσα αποτελέσματα; Η απάντηση μπορεί να είναι ιδιαίτερα αποθαρρυντική, ειδικά αν σκεφτεί κανείς πως οι ανάγκες σε μνήμη συνεχώς αυξάνονται σε πολλές περιπτώσεις ακόμα και εκθετικά. 1.1 Περιγραφή του προβλήματος Από όσα ειπώθηκαν νωρίτερα, έχει καταστεί παραπάνω από σαφής η ανάγκη για στροφή της επιστημονικής κοινότητας στις αριθμητικές μεθόδους επίλυσης προβλημάτων και στη χρήση αλγορίθμων που τις αξιοποιούν με το βέλτιστο δυνατό τρόπο. Ένα από τα συνηθέστερα προβλήματα που συναντώνται στο πεδίο των φυσικών επιστημών, και ιδιαίτερα στον τομέα της φυσικής, και έχει απασχολήσει κατά καιρούς μαθηματικούς, φυσικούς και αστρονόμους, είναι το λεγόμενο πρόβλημα N - σωμάτων (N - body problem). Το πρόβλημα αυτό αναφέρεται σε περιπτώσεις όπου η κατάσταση ενός στοιχείου ή σώματος ή σωματιδίου ενός συστήματος εξαρτάται στενά από την κατάσταση καθενός από τα υπόλοιπα στοιχεία ή σώματα ή σωματίδια και, συνεπώς, οποιαδήποτε μεταβολή στην κατάσταση οποιουδήποτε από αυτά επηρεάζει την κατάσταση και των υπολοίπων [18]. Πιο συγκεκριμένα, δοσμένου ενός συνόλου X R d από N σημεία, ενός συνόλου Y R d από M σημεία, μιας συνάρτησης πυρήνα G(x, y) και ενός συνόλου {f(x) x X} από βάρη στα σημεία του συνόλου X, υπολογίζουμε για κάθε σημείο y Y τη συνάρτηση u(y) ως εξής [26] : u(y) = G(x, y)f(x) x X Είναι προφανές ότι, ανάλογα με τη μορφή της της συνάρτησης πυρήνα αλλά και των συνόλων X και Y, η παραπάνω σχέση μπορεί να αντιπροσωπεύει τον τρόπο υπολογισμού ενός βαρυτικού δυναμικού (G(x,y) = x y 1, όπου τα σύνολα X και Y αναφέρονται σε θέσεις άστρων), ενός δυναμικού σε πεδίο Coulomb (G(x,y) = x y 1, όπου τα X και Y αποτελούν θέσεις φορτίων) κ.α. [7, 26]. Για τον απευθείας υπολογισμό αθροισμάτων που έχουν την παραπάνω μορφή και χαρακτηριστικά, χρειάζονται O(MN) πράξεις [15]. Βλέπουμε, συνεπώς,

ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ 3 πως το κόστος για τον απευθείας υπολογισμό μπορεί να γίνει απαγορευτικό καθώς οι τιμές των Μ και N μεγαλώνουν. 1.2 Υπάρχουσες προσεγγίσεις Προκειμένου να μειωθεί το κόστος υπολογισμού του αθροίσματος που αναλύθηκε στην προηγούμενη ενότητα, έχουν προταθεί διάφορες λύσεις. Υπάρχουν αλγόριθμοι που μπορούν να μειώσουν το κόστος υπολογισμού σε O(N a ), όπου 1 < a < 2, (O(NlogN), (Nlog 2 N) κλπ). Οι αλγόριθμοι αυτοί ονομάζονται Fast Summation Methods [7, 27] και χωρίζονται σε τρεις βασικές κατηγορίες: (1) τους αλγορίθμους επεξεργασίας δένδρων (tree codes) όπως είναι o Barnes - Hut [24], (2) τους αλγορίθμους fast multipole methods και (3) τους αλγορίθμους regular grid fast convolution methods [27]. Στην τελευταία αυτή κατηγορία ανήκει και ο πιο γνωστός ίσως από τους fast summation algorithms, ο Fast Fourier Transform (FFT), ο οποίος υπολογίζει το ακόλουθο άθροισμα: N u j = k=1 e 2πijk N ω k για j = 1,, N με κόστος 5NlogN [7]. Ο FFT είναι ένας αλγόριθμος ακριβής, που βασίζεται σε συμμετρίες. Ωστόσο, έχει ένα βασικό ελάττωμα. Προκειμένου να εφαρμοστεί αποτελεσματικά θα πρέπει τα σημεία να βρίσκονται σε ένα κανονικό πλέγμα (tensor grid) [7, 25]. Οποιαδήποτε προσπάθεια ενσωμάτωσης άναρχα κατανεμημένων σημείων μπορεί να αυξήσει σημαντικά την πολυπλοκότητα του αλγορίθμου καθιστώντας τον αναποτελεσματικό [16, 25]. O αλγόριθμος που θα παρουσιάσουμε στη συνέχεια ανήκει στη δεύτερη κατηγορία των fast summation algorithms και πρόκειται για μια προσαρμοστική (adaptive) μέθοδο για τον αλγόριθμο fast multipole method. 1.3 Στόχοι της εργασίας Εκείνο που επιδιώκουμε στην παρούσα εργασία, είναι να παρουσιάσουμε μια εκδοχή του αλγορίθμου fast multipole method με έναν τρόπο περισσότερο αλγοριθμικό και λιγότερο

4 1.4. ΔΟΜΗ ΤΗΣ ΕΡΓΑΣΙΑΣ μαθηματικό, ώστε να είναι περισσότερο εύληπτος και κατανοητός στην εφαρμογή και τη χρήση του. Παράλληλα, επιθυμούμε τη δημιουργία ενός κώδικα γενικού, που θα βρίσκει εφαρμογή σε μια ευρεία γκάμα προβλημάτων με όσο το δυνατόν λιγότερες μετατροπές. Για το λόγο αυτό προχωρήσαμε στη συγγραφή ενός κώδικα που υλοποιεί τον αλγόριθμο σε MATLAB, είναι ανεξάρτητος της δοθείσας συνάρτησης πυρήνα, ενώ συγχρόνως προσαρμόζεται κατάλληλα στην εκάστοτε γεωμετρία του προβλήματος. Ο κώδικας αυτός περιλαμβάνεται στο παράρτημα του παρόντος κειμένου και αποτελεί μια υλοποίηση του fast multipole method που κάνει χρήση πινάκων (matrix version). Επιπρόσθετα, υλοποιήσαμε και μια παράλληλη έκδοση του αλγορίθμου, που κάνει χρήση της GPU, με στόχο τη μείωση του χρόνου εκτέλεσής του. 1.4 Δομή της εργασίας Το κείμενο αποτελείται από κεφάλαια τα οποία περιγράφουν τη δομή και τον τρόπο λειτουργίας του αλγορίθμου. Συγκεκριμένα, στο κεφάλαιο 2, που είναι και το εκτενέστερο του κειμένου, περιγράφεται αναλυτικά ο αλγόριθμος και τα βήματα που απαιτούνται για την εφαρμογή του. Το κεφάλαιο 3 σχετίζεται με τις υλοποιήσεις, τόσο τη σειριακή όσο και την παράλληλη που δημιουργήσαμε για τον αλγόριθμο. Στο κεφάλαιο 4 πραγματοποιούμε συγκριτική μελέτη των δύο υλοποιήσεων και παρουσιάζουμε τα αποτελέσματα από τα πειράματα που πραγματοποιήσαμε. Το κεφάλαιο 5, που είναι και το τελευταίο, περιλαμβάνει τα συμπεράσματα στα οποία καταλήξαμε και αναφέρει τα περιθώρια βελτίωσης της υλοποίησής μας, ενώ στο παράρτημα του κειμένου περιλαμβάνεται αναλυτικά ο κώδικας που δημιουργήσαμε. 1.5 Τυπογραφικές παραδοχές Για τη συγγραφή του κειμένου χρησιμοποιήθηκε η γραμματοσειρά DejaVu Sans μεγέθους 11pt, για τους τίτλους η ίδια γραμματοσειρά με μέγεθος 20.74pt, ενώ για τις λεζάντες η γραμματοσειρά εχει μέγεθος 8pt. Για τους κώδικες στα παραρτήματα του κειμένου χρησιμοποιήθηκε η γραμματοσειρά Consolas μεγέθους 11pt. Ορολογίες και σημεία τα οποία απαιτούν επιπρόσθετη προσοχή έχουν επισημανθεί με πλάγια γραφή, ενώ οι ορισμοί φέρουν

ΚΕΦΑΛΑΙΟ 1. ΕΙΣΑΓΩΓΗ 5 υπογράμμιση.

6 1.5. ΤΥΠΟΓΡΑΦΙΚΕΣ ΠΑΡΑΔΟΧΕΣ

Κεφάλαιο 2 Ο αλγόριθμος Fast Multipole Method Έστω, λοιπόν, ότι έχουμε το ακόλουθο πρόβλημα υπολογισμού ενός δυναμικού όπως αυτό περιγράφηκε και στο προηγούμενο κεφάλαιο: u(y) = G(x, y)f(x) (2.1) x X Υποθέτοντας ότι έχουμε N σημεία - πηγές (στο εξής πηγές) και N σημεία στα οποία μας ενδιαφέρει ο υπολογισμός του δυναμικού (στο εξής σημεία - στόχοι) μπορούμε να γράψουμε την παραπάνω σχέση με μορφή πινάκων ως εξής: u = Gq (2.2) όπου u = u(y) R N, q = f(x) R N, G = G(x, y) R NxN Το άθροισμα που εμφανίζεται στη σχέση (2.1) ισοδυναμεί με τον πολλαπλασιασμό του πίνακα G με το διάνυσμα q. Όπως ειπώθηκε και νωρίτερα, ο απευθείας υπολογισμός απαιτεί 7

8 2.1. ΔΙΑΧΩΡΙΣΙΜΟΙ ΠΥΡΗΝΕΣ ΚΑΙ ΠΙΝΑΚΕΣ ΧΑΜΗΛΗΣ ΒΑΘΜΙΔΑΣ O(N 2 ) υπολογισμούς. Ο αλγόριθμος που θα περιγράψουμε στη συνέχεια μπορεί να υπολογίσει το ζητούμενο δυναμικό σε O(N) υπολογισμούς. Οι πρώτοι αλγόριθμοι που δημιουργήθηκαν για την επίλυση του προβλήματος στηρίζονταν σε δύο βασικές ιδέες πρώτον τον προσεγγιστικό υπολογισμό της επίδρασης μιας ομάδας από μακρινές πηγές χρησιμοποιώντας τις πρώτες ροπές (moments) κάποιας επέκτασης και δεύτερον την ιεραρχική διαίρεση του χώρου προκειμένου να οριστούν οι κατάλληλες αποστάσεις για αυτές τις προσεγγίσεις [4, 11, 29]. Ειδικότερα, οι αλγόριθμοι επεξεργασίας δένδρων χρησιμοποιώντας αυτές τις δύο ιδέες κατάφεραν να μειώσουν το υπολογιστικό κόστος σε O(NlogN) [29]. Ο αλγόριθμος Fast Multipole Method (FMM) στις δύο αυτές ιδέες πρόσθεσε και μια τρίτη ιδέα, καταφέρνοντας να μειώσει το κόστος σε O(N). Η τρίτη αυτή ιδέα ήταν η εφαρμογή του λεγόμενου local expansion μια μαθηματική περιγραφή που επιτρέπει σε μακρινές ομάδες από πηγές να αλληλεπιδρούν με ομάδες από σημεία στόχους [10, 20, 29]. 2.1 Διαχωρίσιμοι πυρήνες και πίνακες χαμηλής βαθμίδας Πριν προχωρήσουμε στην ανάλυση του αλγορίθμου αυτή καθεαυτή, θεωρούμε ότι θα ή- ταν αρκετά ωφέλιμο να αναφέρουμε ορισμένα βασικά στοιχεία για τους διαχωρίσιμους πυρήνες και τους πίνακες χαμηλής βαθμίδας. Διαχωρίσιμος (separable/degenerate) θεωρείται ένας πυρήνας G(x, y) αν μπορεί να γραφεί με τη μορφή πεπερασμένου αθροίσματος γινομένων συναρτήσεων, καθεμιά από τις οποίες εξαρτάται μόνο από μια από τις μεταβλητές x και y [5, 7]. Συνεπώς, ένας πυρήνας θεωρείται διαχωρίσιμος εάν μπορεί να εκφραστεί ως εξής: p G(x, y) = φ k (x)ψ k (y) (2.3) k=1 Ένα απλό παράδειγμα διαχωρίσιμου πίνακα είναι το ακόλουθο: Έστω ότι για τη συνάρτηση G(x, y) της σχέσης (2.1) ισχύει:

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 9 G(x, y) = (x y) 2 = y 2 2xy + x 2 όπου x = (x i ) R N και y = (y j ) R N είναι τα διανύσματα των πηγών και των σημείων - στόχων αντίστοιχα. Τότε, για τον υπολογισμό του δυναμικού σε κάθε θέση y j θα ισχύει [10] : u(y j ) = ( N i=1 q i )y j 2 2( N i=1 q i x i )y j + ( N i=1 q i x i 2 ) (2.4) Από τη σχέση (2.4) βλέπουμε ότι οι συντελεστές ( N i=1 q i ), ( N i=1 q i x i )και( N i=1 q i x i 2 ) δεν εξαρτώνται από τη μεταβλητή y j. Συνεπώς, μπορούμε να τους υπολογίσουμε σε ένα βρόχο επανάληψης με O(N) υπολογισμούς και να χρησιμοποιήσουμε έναν άλλο βρόχο για να υπολογίσουμε το άθροισμα με κόστος πάλι O(N) [10]. Κάθε πυρήνας μπορεί να γραφεί με τη μορφή της σχέσης (2.3), με p = N 2. Ωστόσο, το ενδιαφέρον μας εστιάζεται στις περιπτώσεις όπου το p << N [10]. Σε αυτές τις περιπτώσεις ο πίνακας G που αντιστοιχεί στη συνάρτηση G(x, y) ονομάζεται πίνακας χαμηλής βαθμίδας (low rank). Σχήμα 2.1: Σχηματική απεικόνιση της χρήσης πίνακα χαμηλής βαθμίδας σε δύο διαστάσεις (από [10], τροποποιημένο)

10 2.2. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΕΠΕΚΤΑΣΕΙΣ ΣΕ ΣΕΙΡΑ 2.2 Διαχωρισμός του πυρήνα χρησιμοποιώντας επεκτάσεις σε σειρά Συχνά, οι πυρήνες που μας ενδιαφέρουν δεν είναι διαχωρίσιμοι. Ωστόσο, κάτω από ορισμένες συνθήκες μπορούν να προσεγγιστούν αρκετά καλά από έναν πίνακα χαμηλής βαθμίδας [7, 10]. Για να το επιτύχουμε αυτό, θα πρέπει δοσμένης της ακρίβειας που θέλουμε να έχουμε, να αναπτύξουμε τη συνάρτηση του πυρήνα με έναν τρόπο, που θα είναι έγκυρος για ένα μεγάλο αριθμό σημείων και που θα καταστήσει τον πίνακα που θα προκύψει χαμηλής βαθμίδας [7]. Μελετήσαμε δύο τρόπους με τους οποίους μπορούμε να επιτύχουμε την προσέγγιση της συνάρτησης του πυρήνα με τη βοήθεια πίνακα χαμηλής βαθμίδας. Ο πρώτος τρόπος χαρακτηρίζεται ως αναλυτικός και αφορά την ανάπτυξη του πυρήνα με τη βοήθεια κάποιας σειράς. Η σειρά που χρησιμοποιήσαμε είναι η σειρά Taylor, λόγω της απλότητας και της σαφήνειάς της. Ο δεύτερος τρόπος που μελετήσαμε είναι εκείνος που περιγράφεται από τους L.Ying, G.Biros και D.Zorin στο [27] και αφορά το διαχωρισμό του πυρήνα επιλύοντας τοπικά interior και exterior προβλήματα Dirichlet. 2.2.1 Multipole expansion Έστω ότι x c είναι το κέντρο ενός συνόλου από σημεία x i, για i = 1,, N. που βρίσκονται σε έναν κυκλικό δίσκο ακτίνας r. Ορίζουμε σα multipole expansion το ανάπτυγμα μιας συνάρτησης G(x, y) σε μια άπειρη σειρά: G(x i, y) = a k (x i, x c )S k (y x c ) (2.5) k=0 όταν η σειρά συγκλίνει y που βρίσκεται εκτός του δίσκου και σε μεγάλη απόσταση από αυτόν [10, 14, 23].

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 11 Σχήμα 2.2: Multipole expansion (από [14], τροποποιημένο) Αναφερόμενοι, λοιπόν, στο πρόβλημα που μελετάμε, μπορούμε να πούμε ότι για ένα σύνολο από πηγές που βρίσκονται σε ένα κυκλικό δίσκο με κέντρο x c και ακτίνα r, σαν multipole expansion ονομάζουμε την προσέγγιση της επίδρασης των πηγών σε οποιοδήποτε σημείο y που βρίσκεται σε απόσταση D >> r από τις πηγές, χρησιμοποιώντας τους συντελεστές της άπειρης σειράς στο κέντρο των πηγών [27]. Σχήμα 2.3: Προσέγγιση της επίδρασης των πηγών χρησιμοποιώντας ανάπτυγμα σε άπειρη σειρά Για λόγους απλότητας στην ανάλυση μας θα θεωρήσουμε ως συνάρτηση πυρήνα την ακόλουθη: G(x, y) = 1 x y (2.6) όπου i = 1,, N και j = 1,, N. Ο συγκεκριμένος πυρήνας εμφανίζεται σε πολλά προ-

12 2.2. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΕΠΕΚΤΑΣΕΙΣ ΣΕ ΣΕΙΡΑ βλήματα φυσικής και συνεπώς έχει μεγάλο πρακτικό ενδιαφέρον, ωστόσο είναι σαφές ότι μπορούμε να χρησιμοποιήσουμε ένα πλήθος άλλων πυρήνων. Όπως ειπώθηκε και νωρίτερα, η βασική ιδέα πίσω από το ανάπτυγμα που θα δημιουργήσουμε είναι ότι, για ένα σημείο y αρκετά μακρυά από ένα σύνολο από πηγές x i x, το αποτέλεσμα της επίδρασης των πηγών στο σημείο αυτό y, μπορεί να προσεγγιστεί αρκετά καλά από τους όρους του αναπτύγματος μιας σειράς στο κέντρο της περιοχής των πηγών [10, 29] (Σχήμα 2.3). Έτσι, λοιπόν, αν με x c συμβολίσουμε το κέντρο των πηγών και θεωρήσουμε την περίπτωση μονοδιάστατου προβλήματος, έχουμε: G(x i, y) = G(x i x c + x c y) = p 1 k=0 1 k G(x c, y) k! k (x x i x c ) k (2.7) i Αν θέσουμε S k (x c,y) = k G(x c,k) για κάθε k τότε η σχέση (2.1) για συνάρτηση πυρήνα k x i αυτή της σχέσης (2.6) και για βάρη στις θέσεις των πηγών q i q μπορεί να γραφεί ως εξής: u j = N i=1 N p 1 G(x i, y j )q i [ 1 k! q i(x i x c ) k ]S k (x c, y j ) (2.8) i=1 k=0 Βλέπουμε, λοιπόν, ότι έχει αρχίσει να γίνεται ένας μερικός διαχωρισμός της συνάρτησης του πυρήνα το τμήμα της σχέσης (2.8) που εσωκλείεται μέσα στις αγκύλες είναι ανεξάρτητο του j και της μεταβλητής y, εξαρτάται δε μόνο από τις πηγές και το κέντρο αυτών. Αυτό σημαίνει πως μπορεί να υπολογιστεί ανεξάρτητα σε O(pN) πράξεις. Η τιμή p που εμφανίζεται στη σχέση (2.8), είναι εκείνη που καθορίζει τον αριθμό των όρων της σειράς που θα συμπεριληφθούν στον υπολογισμό και εξαρτάται από την ακρίβεια που ε- πιδιώκουμε. Γενικά, πάντως, η τιμή αυτή είναι αρκετά μικρότερη από N καθώς η σειρά συγκλίνει αρκετά γρήγορα για μακρινά y για την περίπτωση των ομαλών συναρτήσεων που μας ενδιαφέρουν. Παρατηρώντας τη σχέση (2.8) βλέπουμε ότι το τμήμα μέσα στην αγκύλη αποτελείται α- πό ένα άθροισμα δύο παραγόντων, το φορτίο κάθε πηγής και την απόσταση κάθε πηγής

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 13 από το κέντρο του συνόλου των πηγών υψωμένη σε κάθε k. Θα μπορούσαμε, λοιπόν, να αντικαταστήσουμε το τμήμα αυτό για όλα τα k ως εξής: N p 1 [ i=1 k=0 q i (x i x c ) k ] = V s q (2.9) όπου ο πίνακας V s είναι ένας πίνακας Vandermonde που έχει την εξής δομή: (x 1 x c ) 0 (x 2 x c ) 0 (x N x c ) 0 (x V s = 1 x c ) 1 (x 2 x c ) 1 (x N x c ) 1 (x 1 x c ) p 1 (x 2 x c ) p 1 (x N x c ) p 1 Στη γενικότερη περίπτωση που το πρόβλημα μας δεν είναι μονοδιάστατο, η διαδικασία που ακολουθείται είναι η ίδια. Η διαφορά έγκειται στη χρήση των αντίστοιχων επεκτάσεων της σειράς για την επιθυμητή διάσταση. Ως εκ τούτου, ο πίνακας V s εξακολουθεί να ισχύει όμως με μια μικρή διαφορά. Στην περίπτωση αυτή τα x i και x c είναι διανύσματα και συνεπώς η διαφορά (x i x c ) k, για k = 0,, p 1 που εμφανίζεται στον πίνακα V s ισοδυναμεί με ένα γινόμενο kronecker [19] k παραγόντων. 2.2.2 Local expansion Αποδεικνύεται αρκετά ωφέλιμο να χρησιμοποιήσουμε αντίστοιχη λογική με αυτήν που αναπτύχθηκε για την επέκταση multipole expansion αλλά από τη μεριά των σημείων - στόχων αυτή τη φορά [21]. Αυτό είναι που ονομάζουμε local expansion και ήταν μια σημαντική προσθήκη του αλγόριθμου στη θεωρία των fast summation algorithms και η βασική διαφορά του από τους αλγόριθμους επεξεργασίας δένδρων [10, 20].

14 2.2. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΕΠΕΚΤΑΣΕΙΣ ΣΕ ΣΕΙΡΑ Σχήμα 2.4: Η εισαγωγή της έννοιας του local expansion απο τον αλγόριθμο FMM (από [20], τροποποιημένο) Έστω y c είναι το κέντρο ενός κυκλικού δίσκου ακτίνας r και x i ένα σύνολο από σημεία εκτός του δίσκου και σε μεγάλη απόσταση από αυτόν. Ορίζουμε σα local expansion το ανάπτυγμα μιας συνάρτησης H(x, y) σε άπειρη σειρά ως εξής: H(x i, y) = b m (x i, y c )S m (y y c ) (2.10) m=0 εάν η σειρά συγκλίνει y που βρίσκεται στο εσωτερικό του δίσκου [14, 23, 10]. Σχήμα 2.5: Local expansion (από [14], τροποποιημένο) Η λογική πίσω από τη δημιουργία της επέκτασης local expansion, όπως φαίνεται και στο Σχήμα 2.4, είναι η επέκταση του δυναμικού ενός συνόλου από πηγές που βρίσκονται εκτός της περιοχής που μας ενδιαφέρει, και η χρήση αυτής της επέκτασης για το διαμερισμό του στα γύρω σημεία - στόχους [20]. Όπως και στην περίπτωση της επέκτασης multipole expansion, ο αριθμός p, που δηλώνει το πλήθος των όρων που θα χρησιμοποιήσουμε, είναι συνήθως αρκετά μικρότερος του N, καθώς η σειρά συγκλίνει αρκετά γρήγορα.

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 15 2.2.3 Μετατροπή μιας επέκτασης multipole expansion σε local expansion Στις δύο προηγούμενες υποενότητες είδαμε τις δύο σημαντικότερες έννοιες του αλγορίθμου τις έννοιες των multipole και local expansions. Το επόμενο σημαντικό βήμα είναι να διαπιστώσουμε πώς μπορούμε να χρησιμοποιήσουμε τις δύο αυτές έννοιες προς όφελος μας. Για το λόγο αυτό είναι σημαντικό να διαπιστώσουμε πώς μπορούμε να μετατρέψουμε μια επέκταση multipole expansion σε local expansion. Για να το επιτύχουμε αυτό θα πρέπει ουσιαστικά να υπολογίσουμε τους συντελεστές b m της συνάρτησης (2.10) χρησιμοποιώντας του συντελεστές a k της συνάρτησης (2.5). Στο σημείο αυτό είναι σημαντικό να παρατηρήσουμε ότι οι συντελεστές αυτοί ορίζουν μοναδικά τις συναρτήσεις G και H των σχέσεων (2.5) και (2.10) [10]. Επεκτείνοντας τη σχέση S k (x c, y) για κάθε k όπως αυτή ορίστηκε νωρίτερα μέσω της σχέσης (2.7) γύρω από το κέντρο y c ενός συνόλου από N σημεία - στόχους που βρίσκονται μακρυά από ένα σύνολο από πηγές θα έχουμε: S k (x c, y) = k G(x c, y) k x i = p 1 m=0 Συνεπώς το δυναμικό σε ένα σημείο y προκύπτει ως εξής: k+m G(x c, y c ) k x i m (y y y c ) m (2.11) u j = N i=1 G(x i, y j )q i N i=1 [ p 1 m=0 p 1 [ k=0 [ 1 k! (x i x c ) k q i ] k+m G(x c, y c k x i m y j [ 1 m! (y j y c ) m ]]] (2.12) Αντίστοιχα με την περίπτωση της επέκτασης multipole expansion, μπορούμε να χρησιμοποιήσουμε έναν πίνακα Vandermonde για να αναπαραστήσουμε το τελευταίο τμήμα στο παραπάνω ανάπτυγμα. Έτσι: N j=1 [ p 1 m=0 (y j y c ) m ] = V t (2.13)

16 2.2. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΕΠΕΚΤΑΣΕΙΣ ΣΕ ΣΕΙΡΑ Ο πίνακας V t, συνεπώς, θα έχει την εξής δομή: (y 1 y c ) 0 (y 2 y c ) 0 (y N y c ) 0 (y V t = 1 y c ) 1 (y 2 y c ) 1 (y N y c ) 1 (y 1 y c ) p 1 (y 2 y c ) p 1 (y N y c ) p 1 Και σε αυτήν την περίπτωση, οι επεκτάσεις τροποποιούνται ανάλογα με τη διάσταση του προβλήματος. Το ίδιο και ο πίνακας Vandermonde, στον οποίο οι διαφορές (y j y c ) m, για m = 0,, p 1 ισοδυναμούν με γινόμενα kronecker [19] m παραγόντων. Οι όροι k+m G(x c,y c ) k x i m y που εμφανίζονται στη σχέση (2.11) εξαρτώνται μόνο από τα x c και y c, δηλαδή τα κέντρα των δύο απομακρυσμένων περιοχών της περιοχής των πηγών και της περιοχής των σημείων - στόχων, ενώ είναι ανεξάρτητοι του N [25]. Αν ονομάσουμε T xc,y c τον πίνακα που αντιπροσωπεύει τους όρους αυτούς τότε μπορούμε να ξαναγράψουμε τη συνάρτηση του πυρήνα με τη βοήθεια πινάκων στην ακόλουθη μορφή [25] : G(x, y) G r = V H t T xc,y c V s (2.14) Όπως φαίνεται και από την παραπάνω σχέση, ο πίνακας T xc,y c είναι ένας πίνακας που συγχρόνως ενώνει και χωρίζει του πίνακες V s και V t και ονομάζεται multipole to local translation [25]. Επιπλέον, εφόσον ο πίνακας αυτός εξαρτάται μόνο από τα δύο κέντρα, μπορεί να υπολογιστεί εύκολα, επιλύοντας την εξίσωση (2.14) ως προς T xc,y c. Ο πίνακας G r της σχέσης υπολογίζεται χρησιμοποιώντας ευθύ υπολογισμό της συνάρτησης του πυρήνα. Ωστόσο, ο πίνακας αυτός υπολογίζεται για μικρό αριθμό σημείων (p πηγές και p σημεία - στόχοι) και συνεπώς έχει μικρό υπολογιστικό κόστος. Ένας προσεκτικός αναγνώστης θα παρατήρησε ίσως πως στους πίνακες V s και V t έχουμε παραλείψει να προσθέσουμε τους παράγοντες της μορφής k! 1 και 1 m! που εμφανίζονται στις δύο επεκτάσεις αντίστοιχα. Ο λόγος είναι ότι με τον τρόπο αυτό μπορούμε να υπολογίσουμε πολύ πιο εύκολα τους δύο πίνακες και ο τρόπος που υπολογίζουμε τον πίνακα

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 17 T xc,y c μας επιτρέπει αυτήν την παράλειψη. Πράγματι, τον πίνακα αυτόν δεν τον υπολογίζουμε αλλά προκύπτει από την επίλυση του συστήματος (2.14) ως προς T xc,y c. Συνεπώς, οι παράγοντες αυτοί που παραλείπονται από τους πίνακες V s και V t, εμφανίζονται στον πίνακα T xc,y c κατά την επίλυση του συστήματος. Ο τρόπος με τον οποίο υπολογίζουμε τον πίνακα T xc,y c, εκτός από την ευκολία που μας παρέχει στον υπολογισμό των πινάκων Vandermonde, επιτελεί και έναν ακόμα πιο σημαντικό σκοπό. Η επίλυση αυτή είναι που καθιστά τον κώδικα μας ανεξάρτητο του πυρήνα. Πράγματι, εφόσον αυτός ο πίνακας δεν προϋπολογίζεται αλλά αντίθετα προκύπτει από την επίλυση ενός μικρού προβλήματος, μας επιτρέπει να χρησιμοποιήσουμε οποιονδήποτε πυρήνα επιθυμούμε. Αν και αυτή η επίλυση που πραγματοποιούμε κάθε φορά που θέλουμε να υπολογίσουμε τον πίνακα T xc,y c στοιχίζει από άποψη χρόνου, η γενίκευση που προσδίδει στον κώδικά μας είναι πιο σημαντική. 2.3 Διαχωρισμός του πυρήνα επιλύοντας προβλήματα Dirichlet Ένας διαφορετικός τρόπος υπολογισμού των επεκτάσεων multipole και local expansion μελετήθηκε από τους L.Ying, G.Biros και D.Zorin. Αντί για την επέκταση με τη βοήθεια κάποιας σειράς, οι συγγραφείς προτείνουν τον υπολογισμό ισοδύναμων κατανομών φορτίων σε επιφάνειες, επιλύοντας local exterior και interior προβλήματα σε κύκλους (σε δισδιάστατα προβλήματα) και σε σφαίρες ή κύβους (σε τρισδιάστατα προβλήματα) [27, 28]. Προκειμένου να αναπαρασταθεί το δυναμικό που δημιουργείται από ένα σύνολο πηγών που βρίσκονται συγκεντρωμένα σε μια περιοχή, χρησιμοποιείται μια ισοδύναμη συνεχής κατανομή φορτιών σε μια επιφάνεια που περικλείει την περιοχή που βρίσκονται οι πηγές [27]. Αντίστοιχα για την περιοχή των σημείων - στόχων, χρησιμοποιείται η αντίστοιχη ισοδύναμη κατανομή που έχει υπολογιστεί από την επίδραση των πηγών που βρίσκονται μακρυά από την κατανομή προκειμένου να υπολογιστεί το δυναμικό σε κάθε σημείο - στόχο [27]. Η συγκεκριμένη έκδοση του αλγορίθμου επιβάλει την ύπαρξη μοναδικής λύσης για το εκάστοτε interior/exterior Dirchlet πρόβλημα που υπολογίζεται και συνεπώς για την εφαρμογή της θα πρέπει η συνάρτηση του πυρήνα που θα χρησιμοποιηθεί να είναι αρμονική.

18 2.3. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΕΠΙΛΥΟΝΤΑΣ ΠΡΟΒΛΗΜΑΤΑ DIRICHLET 2.3.1 Άνω ισοδύναμη κατανομή φορτίων Έστω ότι υπάρχει ένα σύνολο πηγών σε μια περιοχή B x, οι οποίες δημιουργούν κάποιο δυναμικό σε μια μακρινή περιοχή B y. Εκείνο που θέλουμε είναι να αναπαραστήσουμε το δυναμικό αυτό, ως το δυναμικό που δημιουργεί μια κατανομή φορτίων φ Bu σε μια επιφάνεια x [27] Bu. Θέλουμε, δηλαδή, να βρούμε μια κατανομή φορτίων, την οποία ονομάζουμε άνω ισοδύναμη κατανομή (upward equivalent density), η οποία βρίσκεται σε μια επιφάνεια, την οποία ονομάζουμε άνω ισοδύναμη επιφάνεια (upward equivalent surface) και η οποία κατανομή έχει την ίδια επίδραση (δηλαδή δημιουργεί το ίδιο δυναμικό) με τις πηγές της περιοχής B x. Πρόκειται ουσιαστικά για φανταστικές πηγές, τις οποίες επιλέγουμε με τέτοιον τρόπο ώστε να δημιουργούν το ίδιο δυναμικό στην περιοχή B [14] y. Η θεωρία υπαγορεύει δύο περιορισμούς για τη θέση της επιφάνειας x Bu. Αρχικά, για να διασφαλιστεί η ομαλότητα του δυναμικού που δημιουργεί η κατανομή φ Bu, θα πρέπει η επιφάνεια x Bu να μην εισέρχεται στην απομακρυσμένη περιοχή B y. Παράλληλα, για να μπορεί η κατανομή φ Bu να αναπαριστά το δυναμικό που δημιουργείται από οποιοδήποτε πηγή στην περιοχή B x, θα πρέπει η επιφάνεια x Bu να περικλείει την περιοχή B x. Συνεπώς, η x Bu θα πρέπει να βρίσκεται μεταξύ της περιοχής B x και της περιοχής B [27] y. Από τη μοναδική λύση του exterior Dirichlet προβληματος, βρίσκουμε την επιθυμητή ισοδύναμη κατανομή. Πιο συγκεκριμένα, το δυναμικό που δημιουργείται από τις πηγές στην περιοχή B x και εκείνο που δημιουργείται από την κατανομή φ Bu είναι ίσα σε όλα τα σημεία της περιοχής B y, εάν συμπίπτουν στο σύνορο της B y ή σε οποιαδήποτε άλλη επιφάνεια μεταξύ της περιοχής B y και της άνω ισοδύναμης επιφάνειας x Bu. Μια τέτοια ενδιάμεση επιφάνεια ονομάζεται άνω επιφάνεια ελέχου (upward check surface) και την συμβολίζουμε με y Bu, ενώ το δυναμικό που υπολογίζεται σε αυτήν ονομάζεται άνω δυναμικό ελέγχου (upward check potential) και το συμβολίζουμε με q [27] Bu.

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 19 Σχήμα 2.6: Άνω ισοδύναμη επιφάνεια (πορτοκαλί κύκλος) και άνω επιφάνεια ελέγχου (πράσινος κύκλος) (από [27], τροποποιημένο) Με βάση τα όσα ειπώθηκαν παραπάνω ισχύει η εξής ισότητα: G(x, y)φ Bu dx = x B u N i=1 G(x i, y)φ i = q Bu y y Bu (2.15) Επιλύοντας την εξίσωση αυτή, έχουμε υπολογίσει τη ζητούμενη άνω ισοδύναμη επιφάνεια, η οποία είναι το ανάλογο του multipole expansion, καθώς αναπαριστά την επίδραση των πηγών της περιοχής B x με μία κατανομή λιγότερων φορτίων σε μία επιφάνεια. Προκειμένου να επιλύσουμε την ολοκληρωτική εξίσωση της σχέσης (2.15) και να υπολογίσουμε την άνω ισοδύναμη κατανομή, θα ακολουθήσουμε την εξής διαδικασία: Αρχικά θα πρέπει να υπολογίσουμε το δυναμικό ελέγχου που δημιουργούν οι πηγές που βρίσκονται στην περιοχή B x. Αυτό το επιτυγχάνουμε εύκολα δημιουργώντας σημεία στην επιφάνεια ελέγχου (Σχήμα 2.6 πράσινος κύκλος) και υπολογίζοντας τη συνάρτηση του πυρήνα για αυτά. Σαφώς, όπως και στην περίπτωση της επέκτασης σε σειρά, η συνάρτηση του πυρήνα υπολογίζεται για ένα μικρό αριθμό πηγών και σημείων στην επιφάνεια ελέγχου και συνεπώς το κόστος υπολογισμού είναι μικρό. Στη συνέχεια, υπολογίζουμε την ισοδύναμη κατανομή (Σχήμα 2.6 πορτοκαλί κύκλος), χρησιμοποιώντας το δυναμικό ελέγχου που υπολογίσαμε νωρίτερα. Το σύστημα εξισώσεων που επιλύουμε είναι το ακόλουθο: Kφ = q Bu (2.16)

20 2.3. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΕΠΙΛΥΟΝΤΑΣ ΠΡΟΒΛΗΜΑΤΑ DIRICHLET όπου το K αντιπροσωπεύει τον υπολογισμό του δυναμικού με τη βοήθεια του πυρήνα, δηλαδή: K = i x B u G(x i, y)φ i (2.17) 2.3.2 Κάτω ισοδύναμη κατανομή φορτίων Αντίστοιχη λογική ακολουθούμε και από την πλευρά των σημείων - στόχων. Αντιπροσωπεύουμε, δηλαδή, το δυναμικό σε μια περιοχή B y που δημιουργείται από ένα σύνολο από πηγές που βρίσκονται σε μια μακρινή περιοχή B x, ως το δυναμικό που δημιουργείται από μια κατανομή φορτίων φ Bd, την οποία ονομάζουμε κάτω ισοδύναμη κατανομή (downward equivalent density), που βρίσκεται σε μια επιφάνεια x Bd, η οποία ονομάζεται κάτω ισοδύναμη επιφάνεια (downard equivalent surface) [27, 28]. Και σε αυτήν την περίπτωση η κατανομή που επιθυμούμε να υπολογίσουμε είναι ουσιαστικά ένα σύνολο φανταστικών σημείων, τα οποία επιλέγουμε με τέτοιον τρόπο έτσι ώστε να δημιουργούν το ίδιο δυναμικό με τις πηγές της περιοχής B [14] x. Αντίστοιχα με την περίπτωση της άνω ισοδύναμης κατανομής, προκειμένου να διασφαλίσουμε την ύπαρξη της κατανομής φ Bd, η επιφάνεια x Bd θα πρέπει να βρίσκεται μεταξύ της περιοχής B x και της περιοχής B y. Το interior Dirichlet πρόβλημα έχει μοναδική λύση και συνεπώς, αρκεί να εξισώσουμε τα δυναμικά σε μια επιφάνεια y Bd μεταξύ του B y και της επιφάνειας x Bd προκειμένου να βρούμε το δυναμικό στο B y. Η επιφάνεια y Bd ονομάζεται κάτω επιφάνεια ελέγχου (downward check surface) και το αντίστοιχο δυναμικό q Bd, κάτω δυναμικό ελέγχου (downward check potential) [27].

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 21 Σχήμα 2.7: Κάτω ισοδύναμη επιφάνεια (πορτοκαλί κύκλος) και κάτω επιφάνεια ελέγχου (πράσινος κύκλος) (από [27], τροποποιημένο) Με βάση όσα ειπώθηκαν νωρίτερα, λοιπόν, ισχύει η ακόλουθη εξίσωση: x Bd G(x, y)φ Bd dx = N i=1 G(x i, y)φ i = q Bd y y Bd (2.18) H οποία μας δίνει τη ζητούμενη κάτω ισοδύναμη κατανομή. 2.3.3 Μετατροπή μιας άνω ισοδύναμης κατανομής φορτίων σε κάτω ισοδύναμη κατανομή φορτίων Ακριβώς όπως και στην περίπτωση της χρήσης της σειράς, είναι σημαντικό να μπορέσουμε να μετατρέψουμε μια άνω ισοδύναμη κατανομή σε κάτω ισοδύναμη κατανομή. Για να το επιτύχουμε αυτό, αν Α είναι μια περιοχή μακρυά από την περιοχή Β, τότε θα πρέπει να λύσουμε την ακόλουθη εξίσωση ως προς φ [27] Bd : G(x, y)φ Bd (x)dx = G(x, y)φ Au (x)dx y y Bd (2.19) x Bd x A u Προκειμένου να εξασφαλίσουμε την ύπαρξη της φ Bd, θα πρέπει οι επιφάνειες x Bd και x Au να μην τέμνονται για κανένα A στο F B. Για την επίλυση της εξίσωσης (2.19) ακολουθούμε αντίστοιχη διαδικασία με την περίπτωση υπολογισμού της άνω ισοδύναμης επιφάνειας.

22 2.3. ΔΙΑΧΩΡΙΣΜΟΣ ΤΟΥ ΠΥΡΗΝΑ ΕΠΙΛΥΟΝΤΑΣ ΠΡΟΒΛΗΜΑΤΑ DIRICHLET Αρχικά, υπολογίζουμε το δυναμικό ελέγχου της περιοχής B, χρησιμοποιώντας την άνω ι- σοδύναμη κατανομή που έχουμε υπολογίσει για την περιοχή A. Στη συνέχεια, χρησιμοποιώντας το δυναμικό ελέγχου που υπολογίσαμε, υπολογίζουμε την κάτω ισοδύναμη επιφάνεια της περιοχής B, επιλύοντας εξίσωση αντίστοιχη της (2.16) [27]. Σχήμα 2.8: Μετατροπή μιας άνω ισοδύναμης κατανομής σε κάτω ισοδύναμη κατανομή (από [27], τροποποιημένο) Όπως μπορούμε να δούμε από την ανάλυση που προηγήθηκε, η επέκταση του πυρήνα μέσω της επίλυσης προβλημάτων Dirichlet είναι εξ ορισμού ανεξάρτητης της συνάρτησης του πυρήνα, καθώς για τους υπολογισμούς των κατανομών χρησιμοποιείται η ίδια η συνάρτηση του πυρήνα. 2.3.4 Η επιφάνειες ελέγχου και ισοδύναμης κατανομής Τόσο για τις επιφάνειες x Bu και y Bu όσο και για τις επιφάνειες x Bd και y Bd που συμμετέχουν στις εξισώσεις, μπορούμε να χρησιμοποιήσουμε για την περίπτωση δισδιάστατου προβλήματος κύκλους, ενώ για την περίπτωση τρισδιάστατου προβλήματος μπορούμε να επιλέξουμε σφαίρες ή κύβους. Για την περίπτωση δισδιάστατου προβλήματος, τα πράγματα είναι σχετικά απλά, καθώς είναι αρκετά εύκολο να δημιουργήσουμε κανονικές κατανομές σε κύκλους. Για την περίπτωση τρισδιάστατου προβλήματος η δημιουργία κανονικής κατανομής σε σφαίρα δεν είναι τόσο απλή υπόθεση και για το λόγο αυτό η κατανομή που χρησιμοποιήσαμε είναι κύβος.

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 23 2.4 Ιεραρχική διάσπαση του χώρου Βασική προϋπόθεση για την εφαρμογή όλων όσων ειπώθηκαν προηγούμενα, είναι η περιοχή των πηγών και η περιοχή των σημείων - στόχων να βρίσκονται σε μεγάλη απόσταση μεταξύ τους. Ωστόσο, σε ένα πραγματικό πρόβλημα οι πηγές και τα σημεία - στόχοι δε βρίσκονται απαραίτητα μακρυά. Για το λόγο αυτό, προκειμένου να επιτύχουμε τις συνθήκες που θέλουμε, προχωρούμε σε ιεραρχική διάσπαση του χώρου. Με τον τρόπο αυτό μπορούμε να επιτύχουμε τη δημιουργία περιοχών από πηγές και σημεία - στόχους οι οποίες βρίσκονται σε μακρινή απόσταση μεταξύ τους. Η απόσταση μεταξύ των κέντρων των δύο περιοχών, μας ενδιαφέρει να είναι μεγάλη σε σχέση με την απόσταση των σημείων από το εκάστοτε κέντρο, καθώς όσο μεγαλύτερη είναι τόσο καλύτερη προσέγγιση μπορούμε να επιτύχουμε με τόσο λιγότερους όρους στην επέκταση. Σαν ακραίο παράδειγμα μπορούμε να αναφέρουμε την περίπτωση που θέλουμε να υπολογίσουμε την βαρύτητα που ασκεί η γη σε έναν άλλο μακρινό γαλαξία. Στην περίπτωση αυτή μπορούμε να θεωρήσουμε το γαλαξία ως ένα μακρινό μεμονωμένο σημείο, παρόλο που αυτός μπορεί να αποτελείται άπό εκατοντάδες εκατομμύρια ουράνια σώματα, και ως εκ τούτου να υπολογίσουμε μονάχα την πρώτη ροπή της σειράς [10]. Για να επιτύχουμε τη διάσπαση του χώρου, θεωρούμε ότι αρχικά όλες οι πηγές και τα σημεία - στόχοι βρίσκονται στο διάστημα [0 1] και στη συνέχεια προχωρούμε σε διάσπαση του χώρου μέσω διαδοχικών διασπάσεων του διαστήματος στη μέση σε κάθε διάσταση. Με τον τρόπο αυτό δημιουργείται μια δενδρική διάταξη, η οποία στην περίπτωση μονοδιάστατου προβλήματος οδηγεί στη δημιουργία ενός δυαδικού δέντρου (binary tree), στην περίπτωση δισδιάστατου προβλήματος στη δημιουργία τετραδικού δέντρου (quadtree) και στην περίπτωση τρισδιάστατου προβλήματοςστη δημιουργία οκταδικού δέντρου (octree) [7, 8, 16, 17].

24 2.4. ΙΕΡΑΡΧΙΚΗ ΔΙΑΣΠΑΣΗ ΤΟΥ ΧΩΡΟΥ (αʹ) Δυαδικό δέντρο (βʹ) Τετραδικό δέντρο (γʹ) Οκταδικό δέντρο Σχήμα 2.9: Γραφική απεικόνιση της διάσπασης του χώρου σε μία διάσταση (2.9αʹ), σε δύο διαστάσεις (2.9βʹ) και σε τρεις διαστάσεις (2.9γʹ) (από [17], τροποποιημένο) Έχοντας πραγματοποιήσει τη διάσπαση του χώρου, οι πηγές και τα σημεία - στόχοι έχουν ομαδοποιηθεί. Οι διάφορες περιοχές από πηγές και σημεία - στόχους που έχουν δημιουργηθεί, ωστόσο, δε βρίσκονται όλες σε μακρινές μεταξύ τους αποστάσεις. Προκειμένου οι επεκτάσεις που αναφέραμε στην προηγούμενη ενότητα να ισχύουν για μια περιοχή από πηγές και μια περιοχή από σημεία - στόχους, μας αρκεί οι πηγές να απέχουν από την περιοχή των σημείων - στόχων απόσταση τουλάχιστον ίση με το μέγεθος της περιοχής των πηγών [7, 17, 16]. Πριν προχωρήσουμε περισσότερο στην ανάλυσή μας θα θέλαμε να ορίσουμε δύο έννοιες που θα μας φανούν χρήσιμες στη συνέχεια. Ορισμός 1: Δύο κόμβοι του δέντρου καλούνται κοντινοί γείτονες (near neighbors), εάν βρίσκονται στο ίδιο επίπεδο και μοιράζονται κάποιο σύνορο [16]. Ορισμός 2: Δύο κόμβοι ονομάζονται μακρινοί γείτονες (far neighbors), εάν βρίσκονται στο ίδιο επίπεδο και δεν είναι κοντινοί γείτονες [16]. 2.4.1 Η διαδρομή μέσα στο δέντρο Όπως αναφέραμε και νωρίτερα, ο βασικός λόγος της διάσπασης του χώρου είναι να δημιουργηθούν περιοχές από πηγές και σημεία - στόχους οι οποίες βρίσκονται σε μεγάλη απόσταση μεταξύ τους και για τις οποίες θα μπορούσαμε να εφαρμόσουμε τις επεκτάσεις που αναλύθηκαν στις προηγούμενες ενότητες. Ωστόσο, εξυπηρετεί και έναν επιπλέον σκοπό, ο οποίος είναι να μειώσει ακόμα περισσότερο την πολυπλοκότητα του αλγορίθμου.

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 25 (αʹ) Μακρινοί γείτονες (βʹ) Κοντινοί γείτονες Σχήμα 2.10: Γραφική απεικόνιση του διασπασμένου χώρου ενός δισδιάστατου προβλήματος Πριν προχωρήσουμε περισσότερο στην ανάλυση του σκοπού αυτού, ας κάνουμε μια αναδρομή σε όσα ειπώθηκαν μέχρι τώρα. Για δύο κόμβους του δέντρου που περιλαμβάνουν μια περιοχή με πηγές και μια περιοχή με σημεία - στόχους αντίστοιχα, και οι οποίοι αποτελούν μακρινούς γείτονες, το δυναμικό σε κάθε σημείο - στόχο μπορεί να υπολογιστεί ακολουθώντας την εξής διαδρομή: Σχήμα 2.11: Διαδικασία υπολογισμού του δυναμικού που δημιουργείται από ένα σύνολο πηγών, σε ένα σύνολο από σημεία - στόχους, για δύο μακρινές περιοχές Μεταφέροντας αυτή τη διαδοχή σε μεγαλύτερη κλίμακα, παρατηρούμε ότι ακόμα και για ένα μικρό δέντρο ο αριθμός διαδρομών αντίστοιχων με αυτών της εικόνας που μπορούν να υλοποιηθούν είναι μεγάλος και εκτείνεται σε όλα σχεδόν τα επίπεδα του δέντρου. Συνεπώς θα ήταν αρκετά ωφέλιμο αν υπήρχε ένας τρόπος να εκμεταλλευτούμε τη δενδρική δομή που δημιουργήσαμε προκειμένου να μειώσουμε τον αριθμό των απαραίτητων ενεργειών που προβλέπει η διαδρομή στην εικόνα. Ο τρόπος αυτός υπάρχει και περιλαμβάνει τη μεταφορά των επεκτάσεων multipole expansion και local expansion μεταξύ των επιπέδων του δέντρου.

26 2.4. ΙΕΡΑΡΧΙΚΗ ΔΙΑΣΠΑΣΗ ΤΟΥ ΧΩΡΟΥ 2.4.2 Μεταφορά της επέκτασης multipole expansion Έχοντας εκτελέσει, λοιπόν, τη διαδοχική διάσπαση του χώρου και έχοντας δημιουργήσει το κατάλληλο δέντρο, είμαστε σε θέση να χρησιμοποιήσουμε τις επεκτάσεις που αναλύσαμε στην προηγούμενη ενότητα για τις πηγές και τα σημεία - στόχους που βρίσκονται σε κόμβους που αποτελούν μακρινούς γείτονες. Όπως φαίνεται και από το Σχήμα 2.11, το πρώτο στάδιο για τον υπολογισμό του δυναμικού σε ένα σημείο - στόχο που δημιουργείται από έναν κόμβο με πηγές που αποτελεί μακρινό γείτονα του κόμβου που περιέχει το σημείο - στόχο, είναι να υπολογίσουμε την επέκταση multipole expansion γύρω από το κέντρο των πηγών. 2.4.2.1 Μεταφορά της επέκτασης multipole expansion στην περίπτωση της επέκτασης του πυρήνα σε σειρά Στην ανάλυση που προηγήθηκε σχετικά με τις επεκτάσεις, είδαμε ότι εκείνο που ουσιαστικά χρειαζόμαστε για να υπολογίσουμε την επέκταση multipole expansion, είναι το κέντρο της περιοχής που μας ενδιαφέρει. Αυτό σημαίνει ότι θα μπορούσαμε αντί να υπολογίζουμε κάθε φορά την επέκταση multipole expansion, να μεταφέρουμε την επέκταση αυτή από έναν κόμβο στον κόμβο γονέα αυτού του κόμβου, ενέργεια που μειώνει σημαντικά την πολυπλοκότητα του αλγορίθμου. Πράγματι, αυτό είναι εφικτό, αρκεί να βρούμε έναν τελεστή ο οποίος θα πραγματοποιεί αυτή την μετατόπιση. Για να υπολογίσουμε, λοιπόν, την επέκταση multipole expansion σε έναν κόμβο που έχει παιδιά, γνωρίζοντας τις αντίστοιχες επεκτάσεις στα κέντρα των κόμβων παιδιών, εργαζόμαστε ως εξής: Για κάθε κόμβο παιδί υπολογίζουμε για ένα σύνολο p σημείων την επέκταση mutlipole expansion (δηλαδή τον αντίστοιχο πίνακα Vandermonde της σχέσης (2.9)) γύρω από το κέντρο που αντιστοιχεί σε κάθε κόμβο παιδί, καθώς και την αντίστοιχη επέκταση γύρω από τον κόμβο γονέα. Οπότε αν ορίσουμε ως M pi την επέκταση multipole expansion στον κόμβο γονέα και ως M ci την επέκταση στον κόμβο παιδί i, τότε θα ισχύει: M pi = T mpi,mci M ci (2.20)

ΚΕΦΑΛΑΙΟ 2. Ο ΑΛΓΟΡΙΘΜΟΣ FAST MULTIPOLE METHOD 27 Στην εξίσωση (2.20) μοναδικός άγνωστος είναι ο πίνακας T mpi,mci, ο οποίος αποτελεί τμήμα του πίνακα μετασχηματισμού που αναζητούμε. Επαναλαμβάνοντας τη διαδικασία για κάθε παιδί είμαστε σε θέση να πραγματοποιήσουμε τη μετατόπιση που επιθυμούμε πολλαπλασιάζοντας την επέκταση mutlipole expansion κάθε κόμβου παιδιού με τον αντίστοιχο πίνακα T mpi,mci και αθροίζοντας τα αποτελέσματα. Αν τοποθετήσουμε στον πίνακα T mp,mc τους επιμέρους πίνακες T mpi,mci, έχουμε δημιουργήσει τον πίνακα μετατόπισης που επιζητούμε. Τοποθετώντας σε έναν πίνακα M c τις επεκτάσεις των κόμβων παιδιών, τότε η ζητούμενη επέκταση multipole expansion στο κέντρο του κόμβου γονέα M p προκύπτει από τη σχέση: M p = T mp,mc M c (2.21) Ο πίνακας M p ισοδυναμεί με τον πίνακα που θα προέκυπτε αν υπολογίζαμε την επέκταση multipole expansion γύρω από το κέντρο του κόμβου γονέα. Σχήμα 2.12: Γραφική απεικόνιση της μεταφοράς της επέκτασης multipole expansion από τους κόμβους παιδιά στον κόμβο γονέα για την περίπτωση δισδιάστατου προβλήματος (από [26], τροποποιημένο) 2.4.2.2 Μεταφορά της άνω ισοδύναμης κατανομής Στην περίπτωση της επέκτασης του πυρήνα με τη μέθοδο που προτείνουν οι L.Ying, G.Biros, D.Zorin, εκείνο που θέλουμε είναι να υπολογίσουμε την άνω ισοδύναμη κατανομή του κόμβου γονέα, γνωρίζοντας τις άνω ισοδύναμες κατανομές των κόμβων παιδιών [27]. Η διαδικασία είναι ανάλογη με αυτήν που ακολουθήσαμε και στην περίπτωση της επέκτασης σε