Τα διαγράμματα Voronoi. Μία εκπαιδευτική προσέγγιση για την δευτεροβάθμια εκπαίδευση Βασίλειος Τσακανίκας Γεώργιος Τσαπακίδης vasilistsakanikas@yahoo.gr georgetsapakidis@yahoo.gr Εκπαιδευτήρια «Παναγία Προυσιώτισσα» Ψηλογέφυρο Αγρινίου, 30100 Περίληψη Είναι κοινός τόπος πως η Ευκλείδεια Γεωμετρία αποτέλεσε και αποτελεί την βάση τόσο των κλασικών όσο και των μοντέρνων μαθηματικών. Σε αυτή την εργασία επιδεικνύεται το πώς η χρήση βασικών θεωρημάτων της Ευκλείδειας Γεωμετρίας χρησιμοποιούνται σε νέους τομείς των μαθηματικών και της επιστήμης των υπολογιστών όπως η τοπολογία και η αναπαράσταση αντικειμένων σε υπολογιστή. Σε αυτό το πλαίσιο, η θεωρία των διαγραμμάτων Voronoi παρουσιάζετε μέσω ενός παραδείγματος, ακολουθώντας την ανακαλυπτική μέθοδο. Στην συνέχεια σκιαγραφείται ένας αλγόριθμος κατασκευής διαγραμμάτων Voronoi καθώς και μία απόδειξη ορθότητάς του, στα πλαίσια της δευτεροβάθμιας εκπαίδευσης. Στο τελευταίο τμήμα της εργασίας παρουσιάζονται οι ιδιότητες των διαγραμμάτων Voronoi, η έννοια της Τριγωνοποίησης Delaunay καθώς και σύγχρονες εφαρμογές των διαγραμμάτων Voronoi. Εισαγωγή Στην παρούσα εργασία επιχειρούμε να παρουσιάσουμε ένα σχέδιο μαθήματος για μαθητές Λυκείου το οποίο στοχεύει στην εισαγωγή και στην προσέγγιση εννοιών όπως «διαγράμματα Voronoi» και «υπολογιστική γεωμετρία». Ακολουθείται η επαγωγική μέθοδος δόμησης του προβλήματος και η ανακαλυπτική μέθοδος για την προσέγγιση της λύσης. Έχει γίνει ιδιαίτερη προσπάθεια να παρουσιαστεί η λύση του προβλήματος της κατασκευής ενός διαγράμματος Voronoi με χρήση αμιγώς γεωμετρικών εργαλείων, τόσο για την ευκολότερη κατανόηση από τους μαθητές όσο και για την παρουσίαση της Ευκλείδειας Γεωμετρίας ως τη βάση μοντέρνων μαθηματικών κλάδων όπως η Υπολογιστική Γεωμετρία και η Τοπολογία.
Το πρόβλημα Ας υποθέσουμε πως σε ένα δάσος υπάρχουν χτισμένα κάποια καταφύγια για τους επισκέπτες και εκδρομείς. Τα καταφύγια αυτά έχουν σαν σκοπό να προσφέρουν στέγη και τροφή σε κάποιον ο οποίος βρεθεί σε έκτατη ανάγκη κατά την επίσκεψή του στο δάσος. Η δική σας δουλειά είναι να κατασκευάσετε έναν χάρτη ο οποίος θα υποδεικνύει στους εκδρομείς το πλησιέστερο καταφύγιο που μπορούν να προσφύγουν στην περίπτωση που συμβεί κάτι. Στην Εικόνα 1 παρουσιάζεται ο χάρτης του δάσους με τα καταφύγια (αριστερά) καθώς και μία απλοποιημένη μορφή του (δεξιά). Εικόνα 1: Δασική έκταση με τα καταφύγια να σημειώνονται με κόκκινο (αριστερά). Απλοποιημένη αναπαράσταση των καταφύγιων (δεξιά). Προς την λύση του προβλήματος Για να λύσουμε το πρόβλημα, θα πρέπει να εντοπίσουμε για κάθε σημείο του δάσους ποιο είναι το πλησιέστερο καταφύγιο. Με άλλα λόγια, θα πρέπει να εντοπίσουμε για κάθε καταφύγιο την «περιοχή ευθύνης» του, η οποία θα περιλαμβάνει όλα εκείνα τα σημεία που θα απέχουν απόσταση μικρότερη από κάθε άλλο καταφύγιο. Θα προσπαθήσουμε να επιλύσουμε το πρόβλημα ξεκινώντας από την πιο απλή εκδοχή του. Αυτή είναι όταν στο δάσος έχουμε μόνο δύο καταφύγια, έστω Α και Β (Εικόνα 2). Σε αυτή την περίπτωση, για να βρούμε τον γεωμετρικό τόπο των σημείων που απέχουν λιγότερο στο Α από ότι στο Β αρκεί να φέρουμε την μεσοκάθετη του ευθύγραμμου τμήματος ΑΒ. Είναι γνωστό πως τα σημεία της μεσοκαθέτου ισαπέχουν από τα Α και Β. Όλα τα σημεία από την μεσοκάθετη και προς το Α απέχουν λιγότερο από το Α παρά
από το Β και αντίστοιχα τα υπόλοιπα σημεία απέχουν λιγότερο από το Β παρά από το Α. Εικόνα 2: Η μεσοκάθετος του ΑΒ διαχωρίζει το επίπεδο σε σημεία πλησιέστερα στο Α (μπλέ) και σε σημεία πλησιέστερα στο Β Στο επόμενο βήμα προσθέτουμε ένα ακόμα καταφύγιο, έστω Γ. Για να ανανεώσουμε τον χάρτη, εργαζόμαστε ως εξής: Εντοπίζουμε σε ποια περιοχή ανήκει το Γ. Χωρίς βλάβη της γενικότητας υποθέτουμε ότι ανήκει στην περιοχή του καταφυγίου Α. Τότε φέρνουμε την μεσοκάθετη του ΑΓ χωρίς να επιτρέψουμε να επεκταθεί πέρα της μεσοκαθέτου του ΑΒ. Στην συνέχεια φέρνουμε την μεσοκάθετο του τμήματος ΒΓ, αντίστοιχα χωρίς να της επιτρέψουμε να επεκταθεί πέρα της μεσοκαθέτου του ΑΓ. Η διαδικασία και το τελικό σχήμα φαίνονται στην Εικόνα 3. (α)
(β) Εικόνα 3: Προσθήκη σημείου Γ σε υπάρχον διάγραμμα. (α) οι μεσοκάθετες εμφανίζονται ως ευθείες, (β) οι μεσοκάθετες εμφανίζονται ως ημιευθείες Ακολουθώντας την ίδια λογική, μπορούμε να προσθέτουμε ένα ένα τα καταφύγια και να ανανεώνουμε συνεχώς τον χάρτη. Στην παρακάτω ακολουθία διαγραμμάτων (Εικόνα 4) παρουσιάζεται η προσθήκη ενός καταφυγίου στην περίπτωση που ο χάρτης έχει 15 καταφύγια.
Εικόνα 4: Αλληλουχία βημάτων για την προσθήκη ενός νέου σημείου σε υπάρχον διάγραμμα Σε μια προσπάθεια αυτοματοποίησης της διαδικασίας προσθήκης ενός νέου καταφυγίου, καταλήγουμε στον παρακάτω αλγόριθμο: Θεωρούμε πως έχουμε έναν χάρτη με ν καταφύγια V = {κ 1, κ 2,, κ ν } και προσθέτουμε το καταφύγιο κ ν+1 Βήμα 1: Εντόπισε το πλησιέστερο καταφύγιο του κ ν+1, έστω κ c Βήμα 2: Φέρε την μεσοκάθετο του ευθύγραμμου τμήματος κ c κ ν+1, έστω ε ξ. Μην επιτρέψεις στην μεσοκάθετη ε ξ να βγει έξω από τα όρια της περιοχής που ορίζεται στον V από το κ c. Βήμα 3: Εάν η ε ξ δεν τέμνει άλλη μεσοκάθετη του χάρτη V, τότε η προσθήκη τελείωσε. Πήγαινε στο Βήμα 5. Εάν συναντήσεις σημείο τομής που έχει ήδη εξεταστεί, η προσθήκη τελείωσε. Πήγαινε στο Βήμα 5. Εάν όχι πήγαινε στο Βήμα 4.
Βήμα 4: Η ε ξ τέμνει μία ή δύο μεσοκαθέτους. Εάν τέμνει δύο, προχώρα αντιωρολογιακά και επέλεξε την τομή που συναντάς πρώτα. Η μεσοκάθετος που τέμνεται με την ε ξ είναι μεταξύ του κ c και ενός άλλου καταφυγίου, έστω κ ρ. Πήγαινε στο Βήμα 2, αντικαθιστώντας το καταφύγιο κ c με το καταφύγιο κ ρ. Βήμα 5: Οι νέες μεσοκάθετες που δημιουργήθηκαν από την παραπάνω διαδικασία ορίζουν την περιοχή του κ ν+1. Διέγραψε τυχόν τμήματα μεσοκαθέτων που βρίσκονται μέσα στην περιοχή. Ο χάρτης V = {κ 1, κ 2,, κ ν, κ ν+1 } είναι ανανεωμένος Ο παραπάνω αλγόριθμος ανήκει στην κατηγορία των «αυξητικών» ή «προοδευτικών» αλγορίθμων (incremental algorithms). Η ορθότητα του αλγορίθμου αποδεικνύεται εύκολα χρησιμοποιώντας την μέθοδο της Μαθηματικής επαγωγής, εκμεταλλευόμενοι τον τρόπο ανανέωσης του χάρτη που περιγράφηκε παραπάνω. Απόδειξη Α. Ελέγχω εάν ισχύει για ν=2. Θεωρώ δύο σημεία Α και Β. Εικόνα 5: Απόδειξη πως τα σημεία αριστερά της μεσοκαθέτου είναι πλησιέστερα στο σημείο Α Φέρνω την μεσοκάθετο του ΑΒ, έστω μ ΑΒ. Χωρίς βλάβη της γενικότητας, θεωρώ σημείο x αριστερά της μεσοκαθέτου. Θα πρέπει να δείξω πως Αx < Βx. Έστω Τ το σημείο τομής του Βx με την μ ΑΒ. Φέρνω το ΑΤ. Από το βασικό θεώρημα της μεσοκαθέτου, ισχύει πως ΑΤ = ΒΤ. Στο τρίγωνο ΑxT, ισχύει πως xt = Bx ΒΤ.
Αλλά, από την τριγωνική ανισότητα στο τρίγωνο AxΤ ισχύει xτ + ΑΤ > xa Bx ΒΤ + ΑΤ > xa Bx ΒΤ + ΒΤ > xa Αx < Βx. Β. Υποθέτω πως έχω έναν χάρτη V όπου τα όρια του ορίζουν περιοχές τα σημεία των οποίων είναι πλησιέστερα στο καταφύγιο κάθε περιοχής. Γ. Εξετάζω εάν ο χάρτης V έχει την ίδια ιδιότητα με παραπάνω εάν προσθέσω ένα νέο καταφύγιο με τον αλγόριθμο που περιγράφηκε παραπάνω. Έστω x ένα σημείο της νέας περιοχής. Η απόδειξη είναι απλή, εάν λάβουμε υπόψη την απόδειξη στο βήμα (Α) και εάν εξετάσουμε και συγκρίνουμε την απόσταση xκ ν+1 με την απόσταση xκ i, για όλα τα υπόλοιπα καταφύγια. Πάντα υπάρχει μία μεσοκάθετος μ i που η χρήση της θα μας βοηθήσει να αποδείξουμε πως xκ ν+1 < xκ i. Διαγράμματα Voronoi Το παραπάνω πρόβλημα πρώτα μελετήθηκε συστηματικά από τον Ρώσο μαθηματικό Georgy Feodosevich Voronoi, γι αυτό και τα διαγράμματα που το επιλύουν ονομάζονται διαγράμματα Voronoi. Το πρόβλημα στο επίπεδο ορίζεται ως εξής: Δοθέντων ν σημείων στο επίπεδο Κ = {κ 1, κ 2,, κ ν } (τα οποία ονομάζονται κέντρα) ορίζουμε μία μη κενή περιοχή σημείων R i γύρω από κάθε κ i. Ορίζουμε επίσης την απόσταση d i των σημείων της περιοχής R i από το κέντρο κ i. Η περιοχή R i ονομάζεται κελί Voronoi όταν τα σημεία της βρίσκονται πλησιέστερα στο κ i από κάθε άλλο κέντρο. Το κελί Voronoi δηλαδή ορίζεται ως η περιοχή σημείων για την οποία ισχύει:. Να βρεθεί για κάθε κ i ένα κελί Voronoi. Τα διαγράμματα Voronoi έχουν κάποιες πολύ όμορφες και χρήσιμες ιδιότητες, 2 εκ των οποίων είναι: 1. Ένα διάγραμμα Voronoi με ν κέντρα (ν 3) έχει το πολύ 3ν-6 ακμές και 2ν-5 κορυφές (κορυφή ονομάζεται το σημείο τομής ακμών).
2. Κάθε κορυφή ενός διαγράμματος Voronoi αποτελεί κέντρο κύκλου ο οποίος διέρχεται από 3 κέντρα και στο εσωτερικό του δεν υπάρχει κανένα κέντρο. 3. Κάθε σημείο μιας ακμής ενός διαγράμματος Voronoi είναι κέντρο κύκλου που διέρχεται από 2 κέντρα και στο εσωτερικό του δεν υπάρχει κανένα κέντρο. Εικόνα 6: Απεικόνιση των βασικών ιδιοτήτων ενός διαγράμματος Voronoi Οι αποδείξεις των παραπάνω στηρίζονται στην Θεωρία Γράφων και κάποιος μπορεί να διαβάσει τις αποδείξεις τους στα πονήματα των (Aurenhammer & Klein). Αλγόριθμοι κατασκευής Διαγραμμάτων Voronoi Όπως θα αναφερθεί στο τελευταίο κομμάτι τις εργασίας, οι εφαρμογές των διαγραμμάτων Voronoi είναι πολλές και χρήσιμες. Γι αυτό το σκοπό είναι επιτακτική ανάγκη να ανακαλύψουμε αποδοτικούς αλγόριθμους κατασκευής τους, υπό το πρίσμα του απαραίτητου χρόνου που χρειάζεται ένας υπολογιστής να υπολογίσει το διάγραμμα, αλλά και της απαιτούμενης μνήμης που θα χρησιμοποιήσει. Παραπάνω περιγράφηκε ήδη ένας αλγόριθμος κατασκευής διαγραμμάτων Voronoi, ο οποίος εντάσσεται στην κατηγορία των αυξητικών ή διαδοχικών αλγόριθμων κατασκευής. Οι αλγόριθμοι αυτής της κατηγορίας είναι ιδιαίτερα αργοί, απαιτώντας βήματα της τάξης του O(ν 2 ), όπου ν τα κέντρα του διαγράμματος. Ευτυχώς τα τελευταία 30 χρόνια έχουν ανακαλυφθεί
αλγόριθμοι πολύ πιο αποδοτικοί. Οι κυριότεροι συνοψίζονται στον παρακάτω πίνακα. Κατηγορία Περιγραφή Πολυπλοκότητα Αναφορά Αυξητική O(ν2) μέθοδος Κάθε φορά προκύπτει το Vn από το Vn-1, εισάγοντας το σημείο p. Στις αυξητικές μεθόδους η κεντρική ιδέα είναι ότι δεδομένου του νέου σημείου p ζητείται να βρεθεί το κομμάτι του διαγράμματος Voronoi που καταστρέφεται εξαιτίας του p ώστε στη συνέχεια ανακατασκευαστεί διάγραμμα γύρω από το p. να το (Green & Sibson, 1978) Μέθοδος με γραμμή σάρωσης (sweepline) Υπάρχει μία κατακόρυφη (ή οριζόντια, αναλόγως τον αλγόριθμο) ευθεία γραμμή η οποία διατρέχει όλο το επίπεδο από τη μία άκρη έως την άλλη. Όσο προχωράει αυτή η γραμμή, συμβαίνουν αλλαγές κάθε φορά που συναντάται κάποιο σημείο, όπως δείχνει η εικόνα 7 O(νlog(ν)) (Fortune, 1987) Διαίρει και Βασίλευε Η τεχνική «διαίρει και βασίλευε» έχει ως εξής: χωρίζεται το σύνολο κέντρων S, μέσω μίας διαχωριστικής γραμμής, σε δύο υποσύνολα L και R περίπου ιδίου μεγέθους. Τα διαγράμματα Voronoi των L και R υπολογίζονται Ο υπολογισμός της διαχωριστικής γραμμής και η ένωση των δύο Voronoi διαγραμμάτων σε ένα (Klein, 1989)
αναδρομικά. χρειάζονται χρόνο O(ν). Λόγω όμως της αναδρομής, απαιτείται χρόνος O(νlog(ν)) Εικόνα 7: Η γραμμή σάρωσης του Fortune Τριγωνοποίηση Delaunay και Περιορισμένα διαγράμματα Voronoi Κοιτώντας το πρόβλημα της κατασκευής ενός διαγράμματος Voronoi από μία άλλη οπτική γωνία, αποδεικνύεται εύκολα πως ισοδύναμο (δυικό) πρόβλημα είναι και η Τριγωνοποίηση Delaunay, με τις εξής αντιστοιχήσεις: Τα κελιά Voronoi αντιστοιχούν σε εστίες, δηλαδή κορυφές τριγώνων Delaunay. Κάθε ζεύγος γειτονικών κελιών (δηλαδή ακμή Voronoi) αντιστοιχεί σε μία ακμή Delaunay, που ορίζεται από τις δύο εστίες: οι ευθείες των δύο ακμών είναι κάθετες μεταξύ τους. Κάθε κορυφή Voronoi αντιστοιχεί σε ένα τρίγωνο Delaunay.
Εικόνα 8: Διάγραμμα Voronoi (συνεχής γραμμές) και η αντίστοιχη Τριγωνοποίηση Delaunay (διακεκομμένες γραμμές). Η Τριγωνοποίηση Delaunay είναι ένας πολύ βολικός τρόπος να μελετήσουμε μία επέκταση των διαγραμμάτων Voronoi, τα Περιορισμένα Διαγράμματα Voronoi. Πολλές φορές κάποια σημεία παρόλο που είναι γεωγραφικώς γειτονικά, δεν μπορούν να θεωρηθούν γείτονες. Παραδείγματος χάριν στο χάρτη του δάσους στο παραπάνω παράδειγμα αν υπάρχει ένα ποτάμι ανάμεσα σε δύο διπλανά καταφύγια, δε θα σχεδιάσουμε τη διαδρομή ενός εκδρομέα να πηγαίνει απ ευθείας από το ένα στο άλλο, διότι προφανώς αυτό δεν είναι εφικτό. Όταν εμφανίζονται τέτοιου είδους περιορισμοί, τότε υπάρχει η ανάγκη για το περιορισμένο διάγραμμα Voronoi (Chew, 1989). Για να κατασκευαστεί δηλαδή αυτό το διάγραμμα, στην είσοδο, εκτός από τα σημεία, δίνονται και οι περιοριστικές ακμές. Χρησιμοποιώντας χωρίς ιδιαίτερες αλλαγές τη μέθοδο της γραμμής σάρωσης που περιγράφεται εδώ (Fortune, 1987), η κατασκευή του γίνεται σε χρόνο O(νlog(ν)) Εικόνα 9: Τριγωνοποίηση Delaunay με περιορισμό
Συζήτηση Στην παρούσα εργασία παρουσιάστηκαν τα διαγράμματα Voronoi. Έγινε προσπάθεια οι βασικές αρχές που παρουσιάστηκαν να απαιτούν γνώσεις δευτεροβάθμιας εκπαίδευσης, για να μπορούν να γίνουν κατανοητές σε μαθητές Λυκείου. Επιπροσθέτως παρατίθενται επιγραμματικά κάποιες ιδιότητες των διαγραμμάτων Voronoi μαζί με τις αντίστοιχες βιβλιογραφικές αναφορές, έτσι ώστε κάποιος να μπορεί να προχωρήσει ένα βήμα παραπάνω στην μελέτη των διαγραμμάτων. Κλείνοντας την εργασία, είναι ενδιαφέρον να αναφέρουμε επιγραμματικά κάποιους από τους τομείς που βρίσκουν εφαρμογή τα διαγράμματα Voronoi και οι επεκτάσεις τους. Έτσι, κάποιος θα χρειαστεί έναν αποδοτικό αλγόριθμο υπολογισμού διαγραμμάτων Voronoi, εάν ασχοληθεί με την Βιολογία, την Χημεία, την υπολογιστική μηχανική, την τοπογραφία, την γεωγραφία, την γεωλογία, την μοντελοποίηση διαδικασιών, την υδροδυναμική, την φαρμακολογία, την ανακατασκευή αντικειμένων σε Η/Υ και τα τηλεπικοινωνιακά δίκτυα. Βιβλιογραφία Aurenhammer, F., & Klein, R. (n.d.). Voronoi Diagrams. Ανάκτηση 2 5, 2015, από Faculty of Mathematics and Computer Sience: http://www.pi6.fernuni-hagen.de/downloads/publ/tr198.pdf Chew, L. P. (1989). Constrained Delaunay triangulations. Algorithmica, 4(1), 97 108. Fortune, S. (1987). A sweepline algorithm for Voronoi diagrams. Algorithmica, 2, 153 174. Green, P. J., & Sibson, R. (1978). Computing Dirichlet tessellations in the plane. The Computer Journal, 21(2), 168 173. Klein, R. (1989). Concrete and Abstract Voronoi Diagrams. Springer- Verlag.