background image

 

72 

 

περιπτώσεις το σφάλμα μπορεί να μην γίνει ορατό αν αφορά κελί με πολύ χαμηλό ύψος, που 

δεν επηρεάζει σημαντικά την ορατότητα. 

 

Τέλος, προσπάθεια έγινε στον αλγόριθμο να συμπεριληφθεί και χρήση νημάτων για την 

επίτευξη παραλληλισμού σε συνδυασμό με το MPI [28] . Το πρόβλημα με την χρήση νημάτων 

στην Python σχετίζεται με τον μεταφραστή της. Ο μεταφραστής της Python για να πετύχει την 

ασφαλή χρήση των νημάτων, τα περιορίζει, ώστε να εκτελούνται ένα τη φορά. Αποτέλεσμα 

είναι η χρήση τους, είτε να μην αλλάζει τον χρόνο εκτέλεσης, είτε να τον επιβραδύνει [25]. 

Αυτό συμβαίνει καθώς τα νήματα, όχι μόνο εκτελούνται σειριακά, αλλά πραγματοποιούνται 

και εναλλαγές μεταξύ τους, καθυστερώντας έτσι τον αλγόριθμο.  

 

4.3 Μελλοντικές επεκτάσεις 

Όπως αναφέρεται και παραπάνω η ανάλυση οπτικού πεδίου χρησιμοποιείται για ένα 

μεγάλο φάσμα εφαρμογών. Κατά συνέπεια είναι αναμενόμενο να χρειαστούν επεκτάσεις στον 

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

σημαντικό ο αλγόριθμος να προσαρμόζεται εύκολα στις ανάγκες κάθε έργου που θα κληθεί να 

αναλάβει.  Για  αυτό  το  λόγο  η  παρούσα  υλοποίηση  διαχωρίζει  τους  υπολογισμούς  σε 

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

την ίδια έξοδο, δίνοντας έτσι την δυνατότητα για εύκολη αλλαγή η επέκταση οποιουδήποτε 

μέρους του αλγορίθμου. 

 

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

την χρήση τεχνικών παραλληλοποίησης με την χρήση της κάρτας γραφικών. Το κομμάτι που 

μπορεί να υλοποιηθεί με αυτή την τεχνική είναι αυτό της σάρωσης, καθώς αποτελείται από 

υπολογισμούς που είναι ανεξάρτητοι ο ένας από τον άλλο. Η υλοποίηση αυτή θα αποτελούσε 

μια  υβριδική  παραλληλοποίηση  του  αλγορίθμου,  καθώς  ο  υπολογισμός  της  ορατότητας 

χρειάζεται να γίνει με συγκεκριμένη σειρά και δεν είναι ιδανικός για τη μέθοδο αυτή. 

 

Υπάρχουν όμως και επεκτάσεις γενικού τύπου που θα εξυπηρετούσαν τους χρήστες. Ο 

παρών αλγόριθμος δίνει τιμή μηδέν ή ένα, ανάλογα με το αν υπάρχει ορατότητα ή όχι σε ένα 

σημείο.  Η  επέκταση  αφορά  τον  υπολογισμό  του  απαραίτητου  ύψους,  ώστε  να  έχει  ο 

παρατηρητής ορατότητα σε ένα σημείο. Η έξοδος του αλγορίθμου χρειάζεται να αλλάξει από 

μηδέν και σε έναν αριθμό που αντιπροσωπεύει το απαραίτητο ύψος, ώστε το σημείο να είναι 

ορατό από τον παρατηρητή. Αυτή η επέκταση θα εξυπηρετούσε χρήστες που εξετάζουν την 

ορατότητα μεταξύ δύο σημείων να βρουν ευκολότερα το απαιτούμενο ύψος, ώστε να έχει ο 

παρατηρητής ορατότητα στο σημείο.