Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Robustness in Geometric Computations Christoph M. Hoffmann.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Robustness in Geometric Computations Christoph M. Hoffmann."— Μεταγράφημα παρουσίασης:

1 Robustness in Geometric Computations Christoph M. Hoffmann

2 Εισαγωγή Η σωστή ανάπτυξη λογισμικού προϋποθέτει την χρήση της βασικής στρατηγικής της διαστρωμάτωσης Ο στόχος της διαστρωμάτωσης είναι να διαχειριστεί την πολυπλοκότητα και να επιτύχει επαναχρησιμοποίηση των τμημάτων κώδικα και έτσι να μειώσει την πιθανότητα λάθους

3 Εισαγωγή Αυτή η μέθοδος είναι τόσο βασική ώστε οι πιο πολλοί προγραμματιστές δεν την λαμβάνουν καθόλου υπ’ όψιν και ασχολούνται με τα επαγόμενα γνωρίσματα όπως πολυπλοκότητες και αλληλεξάρτηση κώδικα

4 Εισαγωγή Στην ανάπτυξη γεωμετρικών εφαρμογών, ωστόσο, πρέπει να αναθεωρήσουμε τα βασικά τμήματα ανάπτυξης κώδικα ώς κομμάτι της αλγοριθμικής στρατηγικής και πρέπει να επανεξετάσουμε υποθέσεις που θεωρούνται πλέον αυτόματα

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

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

7 Τυπική Διαστρωμάτωση Υψηλότερες ευκολίες όπως τομή faces, διάσχιση ορίου (boundary traversal), διαχείριση τοπολογίας Πράξεις τμημάτων όπως τομή κελυφών και, χτίζοντας πάνω σε αυτό, ο αλγόριθμος τομής ο ίδιος Εννοείται ότι τα χαμηλότερα επίπεδα πρέπει να είναι εξ’ ολοκλήρου έμπιστα

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

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

10 Το Πρόβλημα Της Ευρωστίας Έστω ότι θέλουμε να υπολογίσουμε την τομή των παρακάτω δύο πολυέδρων:

11 Το Πρόβλημα Της Ευρωστίας

12 Αν υποθέσουμε ότι στην πάνω επιφάνεια η γωνία είναι μεγάλη και στην μπροστά είναι μικρή, τότε είναι πιθανό να θεωρηθεί από το σύστημα ότι η τομή στην πάνω επιφάνεια ανήκει στο εσωτερικό της επιφάνειας, ενώ η τομή στην μπροστά επιφάνεια να ανήκει στην ακμή της. Έτσι μπορεί να προκύψει το εξής:

13 Το Πρόβλημα Της Ευρωστίας

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

15 Το Πρόβλημα Της Ευρωστίας Επίσης το ίδιο γεωμετρικό πρόβλημα μπορεί να προκύψει πολλές φορές με άλλα νούμερα και να πάρουμε αντιφατικές απαντήσεις. Η σοβαρότητα του προβλήματος είναι συνάρτηση της πολυπλοκότητας των γεωμετρικών αντικειμένων που χρησιμοποιούμε.

16 Κάποιες Προσεγγίσεις Λύσεων Απ’ ευθείας μπορούμε να αναγνωρίσουμε μερικές στρατηγικές: 1. Χρήση ακριβούς αριθμητικής 2. Χρήση συμβολικής λογικής 3. Χρήση αξιόπιστων υπολογισμών

17 Ακριβής Αριθμητική Εδώ και παραπάνω από 30 χρόνια ο Macsyma υλοποίησε ακριβή αριθμητική άρα μπορεί να χρησιμοποιηθεί γενικά. Υπάρχουν όμως 2 προβλήματα: 1. Διάδοση (Proliferation) 2. Irrationality

18 Proliferation Αν η είσοδος σε μία γεωμετρική πράξη έχει ακρίβεια των k-bit το αποτέλεσμα μπορεί να απαιτεί μεγαλύτερη ακρίβεια. Για παράδειγμα ας φανταστούμε την τομή δύο ευθυγράμμων τμημάτων όπως φαίνεται στο επόμενο σχήμα:

19 Proliferation

20 Irrationality Μερικές πράξεις οδηγούν σε συντεταγμένες που δεν έχουν πεπερασμένη ακρίβεια. Ένα παράδειγμα είναι ένας μοναδιαίος κύβος που τον περιστρέφουμε κατά 45 μοίρες.

21 Ακριβής Αριθμητική Υπάρχει τρόπος να υλοποιηθεί αριθμητική άπειρης ακρίβειας αλλά είναι πολύ «ακριβός» για να χρησιμοποιηθεί σαν γενικός τρόπος στα συστήματα CAD. Υπάρχουν όμως συγκεκριμένες εφαρμογές που μειώνουν την απαιτούμενη ακρίβεια:

22 Τομή Ευθυγράμμων Τμημάτων Έστω ότι έχουμε το τμήμα S1 με σημεία τα A1=(x1,y1), B1=(x2,y2) και το S2 με σημεία τα A2=(x3,y3), B2=(x4,y4)

23 Έλεγχος Τομής Στην πιο απλή περίπτωση επιθυμούμε να δούμε απλώς αν τα τμήματα τέμνονται χωρίς να μας ενδιαφέρει το σημείο τομής. Τα σημεία του S1 δίνονται παραμετρικά από την εξίσωση t1A1+(1-t1)B1 όπου 0<=t1<=1. Αν τα τμήματα τέμνονται τότε το γραμμικό σύστημα. t1A1+(1-t1)B1=t2A2+(1-t2)B2 Έχει λύση με 0<=t1,t2<=1.

24 Έλεγχος Τομής Αν υπάρχει λύση, τότε είναι της μορφής t1= D1/D0 t2= D2/D0 Με D1 = 1 x2 y2 1 x3 y3 1 x4 y4

25 Έλεγχος Τομής D2= 1 x4 y4 1 x2 y2 1 x1 y1 D0= 1 x1 y1 1 x2 y2 1 x3 y3

26 Έλεγχος Τομής Για να διαπιστώσουμε εάν τα t1, t2 έχουν πεπερασμένες τιμές και είναι στο κατάλληλο διάστημα, εξετάζουμε το πρόσημο των οριζουσών και μερικές κατάλληλες διαφορές αυτών. Έτσι: Αν D0=0, τότε τα τμήματα είναι παράλληλα ή συγγραμικά. Οι υποπεριπτώσεις είναι

27 Έλεγχος Τομής Α) Αν D1  0, τότε τα 2 τμήματα δεν είναι συγγραμικά και άρα δεν τέμνονται. Β) Αν D1=0 και x1=x2, δηλαδή αν τα τμήματα είναι κάθετα, τότε υπάρχει τομή ανν y1  y3  y2 ή ανν y1  y4  y2 ή ανν y3  y1  y4 ή ανν y3  y2  y4. Γ) Αν D1=0 και τα τμήματα δεν είναι κάθετα, τότε ελέγχουμε τις x συντεταγμένες όπως στο Β) ή αλλιώς τις y συντεταγμένες ανάλογα, σύμφωνα με την κλίση των τμημάτων.

28 Έλεγχος Τομής Αν D0  0 τότε τα 2 τμήματα δεν είναι παράλληλα. Υποθέτοντας ότι D0>0, υπολογίζουμε το διάστημα του t1 ως εξής: If (D1<0) assert(t1<0); else if (D1= =0) assert(t1 = = 0); else if (D1 – D0 <= 0) assert( 0 < t1 <=1 ); else assert(t1>1);

29 Έλεγχος Τομής Αν D0<0 τότε ο κώδικας πρέπει να αλλαχθεί ανάλογα. Με παρόμοιο τρόπο υπολογίζουμε το διάστημα του t2. Παρατηρούμε ότι η διαδικασία απόφασης έχει αναχθεί στο να υπολογίζουμε το πρόσημο των οριζουσών και των διαφορών τους.

30 Έλεγχος Τομής Εξαιτίας της μορφής των οριζουσών αυτών, όλοι οι υπολογισμοί πρόσημου είναι της μορφής: Σ x k y k – Σ x j y j. Aν υποθέσουμε ότι οι συντεταγμένες εισόδου είναι πραγματικοί αριθμοί απλής ακρίβειας, τα γινόμενα μπορούν να υπολογιστούν ακριβώς με αριθμητική διπλής ακρίβειας. Ο αλγόριθμος ESSA υπολογίζει το πρόσημο ενός τέτοιου αθροίσματος ακριβώς.

31 Ο Αλγόριθμος ESSA Υπολογίζεται το πρόσημο ενός αθροίσματος της μορφής s= Σ a i - Σ b i με τα a και b θετικά με αριθμητική διπλής ακρίβειας. Η ιδέα έγκειται στο να αφαιρείται η ίδια ποσότητα από τα a και b έτσι ώστε να μην αλλάζει το πρόσημο του s.

32 Ο Αλγόριθμος ESSA Οι όροι σε κάθε άθροισμα ταξινομούνται από το μεγαλύτερο στο μικρότερο. Η ποσότητα u επιλέγεται με τέτοιο τρόπο ώστε οι διαφορές a1-u και b1-u να είναι ίδιες. Επίσης ένας από τους όρους μειώνεται στο 0 σε ένα ή περισσότερα βήματα έτσι τελικά τα αθροίσματα μετασχηματίζονται σε τέτοια μορφή ώστε ένα από αυτά να είναι άδειο. Σε αυτό το σημείο το πρόσημο του s είναι γνωστό. Ακολουθεί ο αλγόριθμος.

33 Ο Αλγόριθμος ESSA

34 Υπολογίζοντας Τις Τομές Αν δεν θέλουμε απλά να δούμε αν υπάρχει μόνο τομή αλλά θέλουμε και να την υπολογίσουμε, τότε ο ESSA δεν είναι αρκετός. Ας υποθέσουμε ότι τα δύο τμήματα τέμνονται σε ένα μόνο σημείο και αυτό είναι το p=(x,y).

35 Υπολογίζοντας Τις Τομές Τότε το p πρέπει να ικανοποιεί τις παρακάτω εξισώσεις: (y2-y1)x + (x1-x2)y = x1y2 – x2y1 (y4-y3)x + (x3-x4)y = x3y4 – x4y3 Η λύση του συστήματος είναι x=D 1 /D 0 y=D 2 /D 0

36 Υπολογίζοντας Τις Τομές D 1 = x1y2 – x2y1 x1 – x2 x3y4 – x4y3 x3 – x4 D 2 = y2 – y1 x1y2 – x2y1 y4 – y3 x3y4 – x4y3 D 0 = y2 – y1 x1 – x2 y4 – y3 x3 – x4

37 Υπολογίζοντας Τις Τομές Οι ορίζουσες σχηματίζονται από αθροίσματα τριπλών γινομένων x i x j y k και x i y i y k. Κάθε άθροισμα έχει μέχρι και 8 όρους. Έτσι αν η ακρίβεια εισόδου είναι της τάξης των k bits, τα αθροίσματα απαιτούν 3k+3 bits για να υπολογισθούν σωστά όταν δίνονται σε ακέραια αριθμητική. Επίσης πρέπει να προσέξουμε ότι ότι το ακέραιο πλέγμα σημείων που αναπαρίστανται είναι ομοιόμορφο ενώ το πλέγμα των αναπαριστώμενων πραγματικών αριθμών δεν είναι.

38 Υπολογίζοντας Τις Τομές Σχήμα 3

39 Υπολογίζοντας Τις Τομές Σχήμα 4

40 Ακριβές Εσωτερικό Γινόμενο Σύμφωνα με το IEEE ο πραγματικός αριθμός απλής ακρίβειας έχει ένα εκθετικό μέρος των 8 bit και ένα δεκαδικό μέρος των 24 bit. Προτείνεται η μετατροπή του σε έναν αριθμό με δεκαδικό μέρος των 280 bit. Αν επιτρέψουμε και μερικά ακόμα για να γίνουν σωστά οι πολλαπλασιασμοί και οι προσθέσεις σε λογικά πλαίσια, ένας συσσωρευτής των 40 bytes μπορεί να υπολογίσει ένα εσωτερικό γινόμενο μετρίου μήκους ακριβώς σχεδόν σε όλες τις περιπτώσεις. Η τιμή που κρατείται μπορεί να τοποθετηθεί σε έναν πραγματικό αριθμό απλής ακρίβειας με στρογγυλοποίηση.

41 Περίληψη Από Την Τομή Τμημάτων Οι τεχνικές που παρουσιάστηκαν δεν σχετίζονται με την γενική στρατηγική που χρησιμοποιείται όταν πολλά τμήματα τέμνονται. Αναφέρονται μόνο σε 2 και είναι μια τεχνική που θα υλοποιούσε κάποιος σε μια βιβλιοθήκη και θα το ξεχνούσε έκτοτε. Το κόστος όμως είναι αρκετά υψηλό.

42 Περίληψη Από Την Τομή Τμημάτων Οι αλγόριθμοι τομής τμημάτων σε βιβλία απαιτούν τον έλεγχο της ισότητας των συντεταγμένων του σημείου τομής αλλά θεωρούν ότι το τεστ είναι τετριμμένο το οποίο όμως όπως είδαμε είναι λανθασμένη προσέγγιση.

43 Τομή Πολυέδρων Η τομή 2 πολυέδρων είναι μία καλή περίπτωση για να μελετηθεί το proliferation μιας και η τομή τους είναι πάλι ένα πολύεδρο καθώς και το irrationality που προκύπτει από τις περιστροφές. Επίσης, ένας καλός αλγόριθμος τομής πολυέδρων μπορεί να επεκταθεί εύκολα και στην τομή στερεών με καμπύλες επιφάνειες

44 Η Μέθοδος Του Sugihara Τα γεωμετρικά στοιχεία αναπαρίστανται χωρίς πλεονασμούς έχοντας μόνο τους συντελεστές των εξισώσεων των επιπέδων. Οι συντεταγμένες των vertices υπολογίζονται όταν χρειάζονται να υπολογιστούν με τον ίδιο τρόπο που υπολογίζονται στην τομή τμημάτων.

45 Η Μέθοδος Του Sugihara Η γενική εξίσωση του επιπέδου είναι ax+by+cz+d=0 d1 b1 c1 D x= - d2 b2 c2 d3 b3 c3

46 Η Μέθοδος Του Sugihara a1 d1 c1 Dy= - a2 d2 c2 a3 d3 c3 a1 b1 d1 Dz= - a2 b2 d2 a3 b3 d3

47 Η Μέθοδος Του Sugihara a1 b1 c1 Dw = a2 b2 c2 a3 b3 c3 Οι συντεταγμένες της τομής των τριών επιπέδων είναι (D x / D w, D y / D w, D z / D w )

48 Η Μέθοδος Του Sugihara Όπου και υποθέτουμε ότι D w  0 δηλαδή τα normals των επιπέδων είναι γραμμικά ανεξάρτητα. Τα αναπαριστώμενα πολύεδρα δεν χρειάζεται να είναι κυρτά μιας και οι συντεταγμένες των σημείων υπολογίζονται όταν χρειάζονται ως τομή γειτονικών επιπέδων που ορίζονται από τα faces.

49 Η Μέθοδος Του Sugihara Έτσι οι ακμές μπορούν να οριστούν τοπολογικά, από τα ονόματα των συγκεκριμένων σημείων, και οι βρόχοι ακμών που ορίζουν ένα face μπορούν να οριστούν καθαρά τοπολογικά χωρία καμία ανάγκη για συγκεκριμένη πληροφορία συντεταγμένων. Όλες οι συντεταγμένες μπορούν να υπολογισθούν από τις εξισώσεις των επιπέδων όπως χρειάζεται.

50 Η Μέθοδος Του Sugihara Αν θεωρήσουμε ότι χρησιμοποιούμε ακέραιους συντελεστές των B bits, τότε χρειάζονται περίπου 3B bits για τις συντεταγμένες των σημείων χωρίς διαίρεση. Καλύτερα όμως να χρησιμοποιήσουμε συντελεστές d που έχουν 2B bits μιας και οδηγούν σε ένα πιο ομοιόμορφο πλέγμα από αναπαριστώμενα επίπεδα. Σε αυτήν την περίπτωση χρειαζόμαστε συντεταγμένες τετραπλής ακρίβειας.

51 Η Μέθοδος Του Sugihara Αν και χρειαζόμαστε τετραπλή ακρίβεια για τους υπολογισμούς μας, το τελικό πολύεδρο κληρονομεί όλες τις επιφάνειές του από τα αρχικά πολύεδρα. Οπότε, το τελικό πολύεδρο δεν χρειάζεται μεγαλύτερη ακρίβεια από τα αρχικά για να παρασταθεί. Έτσι, δεν έχουμε proliferation σε αντίθεση με την τομή τμημάτων.

52 Η Μέθοδος Του Sugihara Έτσι, αν και φαίνεται ότι η αναπαράσταση με vertices θα αύξανε εκθετικά την ακρίβεια όπως η τομή ευθυγράμμων τμημάτων, η αύξηση της ακρίβειας συμβαίνει μόνο μία φορά και ποτέ ξανά.

53 Αναπαράσταση Μετά Από Περιστροφή Η τομή δύο πολυέδρων μπορεί να γίνει σωστά με ακριβή αριθμητική αν τα πολύεδρα εισόδου είναι σωστά. Αν περιστρέψουμε έναν απλό κύβο (με ελάχιστες απαιτήσεις σε ακρίβεια) τότε ούτε οι συντελεστές των γραμμών ούτε οι συντεταγμένες των σημείων είναι λογικοί αριθμοί.

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

55 Αναπαράσταση Μετά Από Περιστροφή Θα μπορούσαμε να χρησιμοποιήσουμε περιστροφές που διατηρούν την λογικότητα των συντελεστών και των συντεταγμένων. Τέτοιες περιστροφές αντιστοιχούν στα λογικά σημεία του μοναδιαίου κύκλου που παίρνονται από λογικές τιμές του t: x(t)=(1-t²)/(1+t²) y(t)=(2t)/(1+t²)

56 Αναπαράσταση Μετά Από Περιστροφή O Sugihara και ο Iri αποφεύγουν το πρόβλημα θεωρώντας ότι ένα στερεό αναπαρίσταται από 2 αναπαραστάσεις: 1. Αναπαράσταση ορίων 2.CSG Προτείνουν να γίνονται οι περιστροφές στα 3εδρα σχήματα που αναπαριστούν το πολύεδρο τα οποία παραμένουν σωστά (δεν έχουν μικρά στοιχεία και είναι μεγαλύτερα από ένα ελάχιστο μέγεθος), και μετά να χρησιμοποιούμε το CSG για να δημιουργήσουμε το στερεό.

57 Η Μέθοδος Του Fortune Ξανά η κύρια αναπαράσταση είναι η εξίσωση επιπέδου ax + by + cz + d = 0, όπου οι συντελεστές είναι ακέραιοι των B bit εκτός από το d του οποίου η ακρίβεια είναι 2B. Σε αντίθεση με τους Sugihara και Iri, ο Fortune ανέχεται τα αυτοτεμνόμενα στοιχεία στα πολύεδρα ως το αποτέλεσμα κίνησης άκαμπτου σώματος, αλλά τελικά αφαιρεί τον πυρήνα πού είναι πάντα ένα σωστό πολύεδρο.

58 Η Μέθοδος Του Fortune

59

60

61 Μια αριθμητική πράξη ονομάζεται κατηγόρημα αν η τιμή της επηρεάζει την ροή εκτέλεσης ενός αλγορίθμου και κατασκευαστής(constructor) αν η τιμή του χρησιμοποιείται για να ορίσει γεωμετρικά δεδομένα

62 Η Μέθοδος Του Fortune Η αποτίμηση των κατηγορημάτων συνήθως απαιτεί τον καθορισμό προσήμου αλλά πρέπει να είναι ακριβής. Η αποτίμηση των κατασκευαστών μπορεί να ανεχθεί μερικά λάθη εν όψει του σχήματος στρογγυλοποίησης που αποσπά τον πυρήνα.

63 Η Μέθοδος Του Fortune Και τα κατηγορήματα και οι κατασκευαστές είναι πολυώνυμα ακεραίων. Ένας προεπεξεργαστής εξετάζει κάθε πολυώνυμο και καθορίζει πότε μία αποτίμηση έχει αρκετή ακρίβεια για να αποτιμηθεί το πολυώνυμο με βεβαιότητα. Βασιζόμενος σε αυτόν τον καθορισμό, ο προεπεξεργαστής παράγει κώδικα C++ που υλοποιεί την αποτίμηση.

64 Καμπύλες Επιφάνειες Στις περιπτώσεις των ευθύγραμμων τμημάτων τετραπλή αριθμητική ακρίβεια είναι αρκετή για να αποτιμηθούν αυτά που χρειαζόμαστε. Στις δευτεροβάθμιες επιφάνειες, ακριβή τεστ σημείου / επιφανείας γίνονται μη πραγματοποιήσιμα.

65 Καμπύλες Επιφάνειες Ας θεωρήσουμε την δευτεροβάθμια επιφάνεια ax² + by² + cz² + dxy + eyz + fzx + gx + hy + iz + j =0 Όπου οι συντελεστές είναι ακέραιοι και -L ≤ a,b,c,d,e,f ≤ L -L² ≤g,h,i ≤L² -L³ ≤j ≤L³

66 Καμπύλες Επιφάνειες Κάνοντας υπολογισμούς βρίσκουμε ότι χρειαζόμαστε L 720 ακρίβεια για να μπορούμε να διαχωρίσουμε 2 τομές δευτεροβάθμιων επιφανειών. Κάτι που αχρηστεύει την στρατηγική της ακριβούς αριθμητικής. Υπάρχουν όμως και μερικές στρατηγικές που επιτρέπουν τη χρήση πιο αποδοτικών ακριβών μεθόδων.

67 Συμβολικός Λογισμός Έχει παρατηρηθεί ότι τα κατηγορήματα απαντούν σε γεωμετρικές ερωτήσεις. Έτσι το πρόβλημα της αναγνώρισης ότι μια απόφαση υπονοείται από προηγούμενες αποφάσεις που έχουν παρθεί βρίσκεται στο πεδίο της συμβολικής λογικής. Επίσης μπορούμε να ανεχτούμε μια λανθασμένη απόφαση σε μια οριακή περίπτωση όσο είναι συνεπής με όλες τις άλλες αποφάσεις.

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

69 Αποφάσεις Στην Τομή Πολυέδρων

70 Το να πάρουμε συνεπείς αποφάσεις απαιτεί το να ενημερώσουμε για την απόφασή μας όλες τις επηρεαζόμενες τομές. Έτσι, αν αποφασίσουμε στο σχήμα 1 ότι η τομή του τετράεδρου με την μπροστά επιφάνεια γίνεται στην ακμή του κύβου, πρέπει να ενημερώσουμε και την άλλη επιφάνεια του κύβου.

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

72 Αποφάσεις Στην Τομή Πολυέδρων Μια άλλη σκέψη είναι να ελαχιστοποιηθεί η εμφάνιση των ισότιμων κατηγορημάτων και να μειωθούν όλες οι αποφάσεις σε όσο το δυνατόν μικρότερο σετ από κατηγορήματα γίνεται. Αυτό μειώνει τις ευκαιρίες για ασυνέπειες που δεν αναγνωρίζονται. Έτσι στην λίστα αποφάσεων που ακολουθεί μερικές από αυτές είναι κύριες και υπολογίζονται από τα γεωμετρικά δεδομένα:

73 Αποφάσεις Στην Τομή Πολυέδρων 1. u ∩ f : Ο κόμβος u πρέπει να είναι αρκετά κοντά στο επίπεδο που ορίζει η πλευρά f. Αυτό είναι μια ∈ - κρίση 2. e ∩ e’ : Τα e και e’ πρέπει να είναι αρκετά κοντά. Τέμνουμε το e με ένα επίπεδο γειτονικό του e’ και επιβεβαιώνουμε ότι η τομή βρίσκεται σε όλα τα άλλα επίπεδα γειτονικά του e’

74 Αποφάσεις Στην Τομή Πολυέδρων Επίσης υπάρχουν και δευτερεύοντες αποφάσεις. 3. u ∩ e: f είναι μια πλευρά γειτονική στο e. Το σημείο u πρέπει να είναι πάνω στο επίπεδο από κάθε γειτονική πλευρά f. 4. u ∩ u’: Ο κόμβος u πρέπει να βρίσκεται πάνω σε κάθε ακμή που βρίσκεται ο u’. Δηλαδή ο u πρέπει να βρίσκεται σε κάθε επίπεδο πλευράς που βρίσκεται ο u’ και αντίστροφα

75 Αποφάσεις Στην Τομή Πολυέδρων 5. e on f: όλοι οι κόμβοι στην ακμή πρέπει να βρίσκονται στο επίπεδο πλευράς f 6. e συγγραμικό με e’: Έστω f μία πλευρά γειτονική στο e. Οι κόμβοι του e’ πρέπει να βρίσκονται στο επίπεδο πλευράς από κάθε γειτονική πλευρά f. Αντίστροφα, οι κόμβοι στο e πρέπει να βρίσκονται σε κάθε επίπεδο πλευράς f’ που βρίσκεται στο e’

76 Αποφάσεις Στην Τομή Πολυέδρων 7. e ∩ f : Έλεγχος αν η ακμή τέμνει το επίπεδο πλευράς εγκάρσια, δηλαδή, αν τα σημεία του e βρίσκονται σε αντίθετες μεριές του f ή αν κάποιο από αυτά βρίσκεται πάνω στο f ενώ κάποιο άλλο όχι. 8. f ∩ f’ : Κάθε σημείο στο f πρέπει να βρίσκεται πάνω στο επίπεδο επιφανείας του f’ και κάθε σημείο του f’ πρέπει να βρίσκεται πάνω στο επίπεδο επιφανείας του f.

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

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

79 Αποφάσεις Στην Τομή Πολυέδρων

80

81 Υπολογισμός Διαστημάτων Στους υπολογισμούς με έναν υπολογιστή, δεν χρησιμοποιούμε ποτέ ακριβής αριθμούς αλλά πάντα προσεγγίσεις. Οι ακέραιοι έχουν τέλεια ακρίβεια αλλά έχουν το πρόβλημα της υπερχείλισης Η ακριβής αριθμητική είναι ακριβής μιας και προέρχεται από ακέραια αριθμητική αλλά η απαιτούμενη ακρίβεια είναι πολύ μεγάλη και υπάρχουν και μη λογικά αποτελέσματα.

82 Υπολογισμός Διαστημάτων Από την φύση τους, οι πραγματικοί αριθμοί είναι περίεργοι λογικοί αριθμοί με ένα περίεργο εύρος αναπαράστασης όπως φαίνεται και στο σχήμα. Για να δουλέψουμε με πραγματικούς αριθμούς οικονομικά χρησιμοποιούμε τα πραγματικά διαστήματα (floating-point interval).

83 Υπολογισμός Διαστημάτων Ένα πραγματικό διάστημα συμβολίζεται ως [x]=[x, x] Όπου x, x πραγματικοί αριθμοί. Το διάστημα αυτό περιλαμβάνει όλους τους πραγματικούς αριθμούς μεταξύ x, x : [x]={r ∈ R | x  r  x }

84 Βασικά Των Διαστημάτων

85 Πραγματικά Διαστήματα Η διάμετρος ενός διαστήματος [x] είναι d([x]), η ακτίνα είναι r([x]) και το μέσο είναι m([x]) όπου d([x]) = x – x r([x]) = (x – x) / 2 m([x]) = (x + x) / 2

86 Πραγματικά Διαστήματα Η ελάχιστη και η μέγιστη απόλυτη τιμή ενός διαστήματος είναι = min { |x| | ∈ [x] } |[x]| = max { |x| | x ∈ [x] } = max (|x|,|x|) Το 0 ∈ [x] ανν = 0

87 Πραγματικά Διαστήματα Η σχετική διάμετρος μας δείχνει την ποιότητα μιας προσέγγισης από ένα διάστημα. Ορίζεται ως D rel = d([x])/ αν 0 ∉ [x] d([x]) αλλιώς

88 Πραγματικά Διαστήματα Βασική αριθμητική: [x] + [y] = [x + y, x + y ] [x] – [y] = [x – y, x – y] [x] * [y] = [min(xy,xy,xy,xy), max(xy,xy,xy,xy)] Συναρτήσεις: Φ([x]) = { Φ(x) | x ∈ [x] }

89 Πραγματικά Διαστήματα [x] 2 = [ 2, |[x]| 2 ] e [x] = [e x, e x ] log([x]) = [ log(x), log(x) ] [x] n = [x n, x n ] αν 0 < x ή n περιττός [0, |[x]| n ] αν 0 ∈ x και n άρτιος [x n, x n ] αν x < 0 και n άρτιος

90 Πραγματικά Διαστήματα Το βασικό πρόβλημα με την αριθμητική διαστημάτων είναι ο υπολογισμός του εύρους της επέκτασης μιας συνάρτησης f σε ένα διάστημα [x]. Αν πάρουμε ένα πολυώνυμο f(x) = a 0 + a 1 x + a 2 x 2 + … + a n x n Τότε η αποτίμηση του διαστήματος θα ήταν f [] ([x]) = [a 0 ] + [a 1 ][x] + [a 2 ][x] 2 + … + [a n ][x] n

91 Πραγματικά Διαστήματα Παρατηρούμε τον εγκλεισμό f([x]) ⊆ f [] ([x]) Αυτό είναι ένα πρόβλημα. Συνήθως το πόσο μικρή είναι η κλειστότητα είναι δείκτης ποιότητας πληροφορίας. Χαλαρές κλειστότητες δίνουν λίγη πληροφορία.

92 Πραγματικά Διαστήματα Μια γενική τεχνική για να μειωθεί αυτή η υπερεκτίμηση είναι η κεντρική μορφή (centered form) που προέρχεται από το θεώρημα της μέσης τιμής. Αν η f είναι παραγωγίσιμη στο D και c,x ∈ [x] τότε f(x) ⊆ f(c) + f’ ([x])([x]-c)

93 Προτεταμένα Διαστήματα Επεκτείνουμε την έννοια του διαστήματος για να επιτρέψουμε άπειρα όρια. Διαστήματα με ένα ή και τα δύο όρια άπειρα λέγονται προτεταμένα διαστήματα (extended intervals). Οι βασικές πράξεις γίνονται κανονικά. Στην περίπτωση της διαίρεσης έχουμε

94 Προτεταμένα Διαστήματα [x] / [y] = [- ∞, + ∞ ] if x < 0 < x or [x] =0 or [y] =0 [x/y, + ∞] if x ≤ 0 and y < y = 0 [ - ∞, x/y ] ∪ [ x/y, + ∞] if x≤0 and y<0

95 Προτεταμένα Διαστήματα Στην ειδική περίπτωση όπου το x είναι ένα thin interval (κάτω και άνω όριο ταυτίζονται), και το [y] έχει τουλάχιστον ένα άπειρο όριο, έχουμε x – [y] = [- ∞, + ∞ ] if [y]= [- ∞, + ∞ ] [ - ∞, x – y] if [y]= [y, + ∞] [x – y, + ∞] if [y] = [ - ∞, y ]

96 Αριθμητική Των Πραγματικών Υλοποιούμε τους υπολογισμούς των διαστημάτων χρησιμοποιώντας floating point αριθμούς. Για να παραμείνει όμως η κλειστότητα πρέπει οι στρογγυλοποιήσεις να γίνονται σωστά.

97 Αριθμητική Των Πραγματικών Η στρογγυλοποίηση προς τα πάνω (rounding up) ενός αριθμού r είναι ο πιο κοντινός αριθμός που μπορεί να αναπαρασταθεί από υπολογιστή ∆(r)≥r που να μην είναι μικρότερος του r. Αντίστοιχα ορίζεται και η στρογγυλοποίηση προς τα κάτω (rounding down) ως ∇ (r).

98 Αριθμητική Των Πραγματικών Αν συμβολίσουμε με + ∆ και + ∇ τις προσθέσεις που στρογγυλοποιούν το αποτέλεσμα προς τα πάνω και κάτω αντίστοιχα και με - ∆ και - ∇ όμοια για τις αφαιρέσεις έχουμε: [x] + [y] = [x + ∇ y, x + ∆ y] [x] – [y] = [x - ∇ y, x - ∆ y]

99 Αριθμητική Των Πραγματικών Ο κλασσικός τρόπος στρογγυλοποίησης μεταβάλλει το μέγεθος του αριθμού. Αυτό είναι άχρηστο για τους υπολογισμούς διαστημάτων γιατί αναιρεί την ιδιότητα της κλειστότητας και επανεισάγει την αβεβαιότητα. Μερικές FPU έχουν την ικανότητα να κάνουν σωστές στρογγυλοποιήσεις αλλά απαιτείται ένας ειδικός assembler για να δώσει τις κατάλληλες εντολές και ένας compiler που να μην τις διαγράψει ως τμήμα βελτιστοποίησης.

100 Univariate Root Finding Γενικά το πρόβλημα έχει λυθεί αλλά οι αλγόριθμοι είναι πολύπλοκοι. Για πολλούς, οι νευτώνειες επαναλήψεις είναι μια καλή και απλή λύση που αν αρχικοποιηθεί κατάλληλα θα βρει μια ρίζα. Αδυνατεί όμως να λειτουργήσει όταν υπάρχουν πολλές ρίζες. Επίσης, έχοντας βρει μια ρίζα x*, επαναλαμβανόμενες διαιρέσεις του πολυωνύμου με το (x-x*) συσσωρεύουν ανακριβείς συντελεστές.

101 Αποτίμηση Πολυωνύμου Το σχήμα Horner είναι μια αποδοτική και σταθερή διαδικασία για την αποτίμηση πολυωνύμων με ορίσματα πραγματικούς αριθμούς. Το πολυώνυμο f(x) = a 0 + a 1 x + a 2 x 2 + … + a n x n μετατρέπεται σε (…((a n x + a n-1 )x + a n-2 )x + … + a 1 ) x + a 0

102 Αποτίμηση Πολυωνύμου Δεν είναι δυνατόν να περιορίσουμε την κλειστότητα ενός διαστήματος σε μια ρίζα υψηλής τάξης χρησιμοποιώντας αποτίμηση μέσα στην γειτονιά της ρίζας, ούτε μπορούμε να απομονώσουμε αρκετές ρίζες με μικρό διαχωρισμό. Ας πάρουμε για παράδειγμα την αποτίμηση του f(x) = x 4 – 8x x 2 – 32x + 16 = (x – 2) 4 κοντά στην τετραπλή ρίζα 2 καθώς και του f(x) = (1-x) 3.

103 Αποτίμηση Πολυωνύμου

104 Interval Newton Θεωρούμε f(x)=0 όπου η f είναι συνεχώς παραγωγίσιμη. Από το θεώρημα της μέσης τιμής παίρνουμε f(m([x])) – f(x*) = f’(ξ) (m([x]) – x*) με x*, ξ ∈ [x] Υποθέτουμε ότι x* είναι ρίζα του f(x).

105 Interval Newton Ορίζουμε N([x]) = m([x]) – f(m([x])) / f’([x]) Τότε x* = m([x]) – f(m([x]))/f’(ξ) ∈ N([x])

106 Interval Newton Συνεπώς το x* βρίσκεται και στο [x] και στο N([x]) και άρα στην τομή των δύο διαστημάτων. Ξεκινώντας από ένα αρχικό διάστημα [x] 0 κάνουμε επαναλήψεις [x] (k+1) = [x] (k) ∩ N([x] (k) ), 0 ∉ f’([x] (k) ) and k = 0, 1, 2…

107 Interval Newton Αφού όλα τα διαστήματα περιέχονται στο αρχικό διάστημα η μέθοδος δεν μπορεί να αποκλίνει. Γεωμετρικά η μέθοδος είναι αντίστοιχη με την κλασσική μέθοδο του Νεύτωνα. Υποθέτουμε ότι f’=[g,g] και ότι οι γραμμές με αυτές τις κλίσεις τέμνουν τον άξονα x στα l, r. Αυτό είναι και το διάστημα N([x] (k) ) = [l, r]. Αν η τομή είναι άδεια τότε ξέρουμε σίγουρα ότι δεν υπάρχει ρίζα στο [x].

108 Interval Newton

109 Χρησιμοποιώντας προτεταμένα διαστήματα μπορούμε να ξεφύγουμε από τον περιορισμό ότι 0 ∉ f’([x] (k) ). Αν το διάστημα f’([x] (k) ) περιέχει το 0, παίρνουμε προτεταμένα διαστήματα για το Ν: N([x] (k) ) = [- ∞, r ] ∪ [l, ∞ ] Τομή με το [x] δίνει ως αποτέλεσμα δύο πεπερασμένα σύνολα [x] (k+1) = [x (k), r] ∪ [l, x (k) ]

110 Interval Newton

111 Συμπερασματικά το ακόλουθο είναι αληθές: f : D ⊆ R → R συνεχώς παραγωγίσιμη συνάρτηση [x] ⊆ D ένα διάστημα στο πεδίο της f. Τότε το N([x]) = m([x]) – f(m([x])) / f’([x]) Έχει τις εξής ιδιότητες:

112 Interval Newton 1. Κάθε x* ∈ [x] ικανοποιεί το x* ∈ N([x]) 2. Αν N([x]) ∩ [x] = 0 τότε δεν υπάρχει ρίζα της f στο [x] 3. Αν το N([x]) περιέχεται στο [x], τότε υπάρχει μία μοναδική ρίζα της f στο [x] και άρα στο N([x])

113 Διαστήματα στους Γεωμετρικούς Υπολογισμούς Στην περίπτωση των Newton Intervals θα μας ενδιέφερε να δούμε το πώς μεταβιβάζεται το σφάλμα γεωμετρικά σε διάφορες κατασκευές. Ένα καλό παράδειγμα για μελέτη είναι η αποτίμηση της καμπύλης bezier C(t).

114 Κυρτά Σύνολα Ένα σύνολο K λέγεται κυρτό (convex) αν για κάθε δυο σημεία του, το ευθύγραμμο τμήμα που τα συνδέει είναι μέσα στο Κ. Το επίπεδο E είναι το επίπεδο υποστήριξης (support plane) του Κ αν τα Κ και Ε έχουν ένα κοινό σημείο και το Κ ανήκει σε έναν από τους ημιχώρους που ορίζει το Ε.

115 Κυρτά Σύνολα

116 Η συνάρτηση υποστήριξης s K είναι μια συνάρτηση που απεικονίζει κάθε μοναδιαίο διάνυσμα n στο επίπεδο s k (n) που είναι ορθογώνιο στο n και είναι επίπεδο υποστήριξης του K. Οι αριθμητικές πράξεις γίνονται όπως περίπου και με τα διαστήματα. Για έναν αριθμό t ορίζουμε το tK ως σύνολο σημείων tx όπου το x είναι στο Κ.

117 Κυρτά Σύνολα Το σύνολο (1-t)K1 + tK2 είναι ένας σχετικός συνδυασμός (affined combination) των Κ1 και Κ2. Αν 0 ≤ t ≤ 1 τότε είναι ένας κυρτός συνδυασμός (convex combination). Αν s(n) συνάρτηση υποστήριξης του Κ, τότε s’(n)=ts(n) είναι η συνάρτηση υποστήριξης του Κ’=tK. Συγκεκριμένα s’(n)=s(-n) είναι η συνάρτηση υποστήριξης του Κ’ = -Κ.

118 Κυρτά Σύνολα Αν s1 και s2 είναι συναρτήσεις υποστήριξης των K1 και K2 και 0 ≤ t ≤ 1 τότε ο κυρτός συνδυασμός Κ=(1-t)K1 + tK2 είναι επίσης κυρτός και έχει συνάρτηση υποστήριξης s=(1-t)s1 + ts2. Το κλειδί είναι ότι οι συντελεστές t και 1-t είναι μη αρνητικοί. Πιο γενικά: K= Σ t j K j + Σ t j k j = Σ t j K j + Σ (-t j )(-K j ) t j >0 t j 0 t j <0

119 Κυρτά Σύνολα Έτσι η συνάρτηση υποστήριξης είναι s(n)= Σ t j s j (n) + Σ (-t j )s j (-n) Η απόσταση μεταξύ δύο επιπέδων υποστήριξης με normals n και –n είναι η διάμετρος dn ενός κυρτού συνόλου.

120 Καμπύλες Bezier C(t) = Σ P i B i n (t) Τα σημεία της καμπύλης συνήθως υπολογίζονται από τον αλγόριθμο του DeCasteljau

121 Καμπύλες Bezier

122 Το πρόσημο των συναρτήσεων Bernstein δίνεται από τον τύπο sgn(B i n (t)) = sgn(t) n-i sgn(1-t) i Η συνάρτηση υποστήριξης του κυρτού σώματος Κ= Σ B i n (t)Κ i είναι s(n) = ΣB i n (t)s i * (n)

123 Καμπύλες Bezier Όπου s i *(n)= s i (n) if t 1, i even, or 0 ≤ t ≤ 1 -s i (-n) if t 1, i odd Μπορούμε να αποτιμήσουμε την τιμή μιας συνάρτησης ανοχής δοθέντων των τιμών των σημείων ελέγχου με ανοχή.

124 Καμπύλες Bezier

125

126

127 Interval control points

128 Λεπτομέρειες Ουσιαστικά, δοθέντος ενός κυρτού συνόλου Κ και ενός σημείου ελέγχου, κάθε ευκλείδιο σημείο στο σύνολο μπορεί να είναι σημείο ελέγχου. Άρα η καμπύλη «ανοχής» είναι η ένωση όλων των καμπυλών.


Κατέβασμα ppt "Robustness in Geometric Computations Christoph M. Hoffmann."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google