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

Σχετικά έγγραφα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 2

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Υλοποίηση Εφαρμογής Εστιατορίου (take-away)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Μοντελοποίηση Εστιατορίου (take-away)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 1 Συμβολοσειρές, Πίνακες, Δείκτες

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

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

FIRE PROTECTION NETWORK

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ231: ομές εδομένων και Αλγόριθμοι

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

Κατανεμημένα Συστήματα Ι

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

Κατανεμημένα Συστήματα Ι

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

Σειρά Προβλημάτων 3 Ημερομηνία Παράδοσης: 04/04/16

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

an:3 are:6 a:10

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

Σειρά Προβλημάτων 5 Λύσεις

Β. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α, που αντιστοιχούν σωστά με το γράμμα της Στήλης Β. ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Διδάσκων: Παναγιώτης Ανδρέου

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

Α.Ε.Π.Π. Προετοιμασία Γ Λυκείου

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

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο

Περιγραφή της 3 ης εργαστηριακής εφαρμογής: ρομποτικό σύστημα LEGO NXT

Λιβανός Γιώργος Εξάμηνο 2017Β

Σειρά Προβλημάτων 5 Λύσεις

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

Σειρά Προβλημάτων 5 Λύσεις

EasyBeeScale ΙΙ (V07.00) Οδηγίες χρήσης

Σειρά Προβλημάτων 5 Λύσεις

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα Ι

Ανακτήθηκε από την ΕΚΠΑΙΔΕΥΤΙΚΗ ΚΛΙΜΑΚΑ edu.klimaka.gr ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Εαρινό Εξάμηνο

ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΔΟΚΙΜΑΣΙΑ

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

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

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

Διδάσκων: Παναγιώτης Ανδρέου

Πολυπλοκότητα. Παράμετροι της αποδοτικότητας ενός αλγόριθμου: Χρόνος εκτέλεσης. Απαιτούμενοι πόροι, π.χ. μνήμη, εύρος ζώνης. Προσπάθεια υλοποίησης

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Τ και τιµή του Β θετική µετατρέπεται ισοδύναµα στην εντολή Όσο ως εξής:

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΘΕΜΑ 1ο Α. 1. Να αναφέρετε τα κριτήρια που πρέπει να ικανοποιεί κάθε αλγόριθµος.

Σύστημα Διαχείρισης Σκεπτόμενων Συσκευών CASE STUDY

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 131: ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I ΕΡΓΑΣΙΑ 2

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

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΤΕΛΟΣ 1ΗΣ ΣΕΛΙΔΑΣ

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.

Διδάσκων: Παναγιώτης Ανδρέου

WIRELESS SENSOR NETWORKS (WSN)

ΕΠΛ132 Άσκηση 3 - Αρχές Προγραμματισμού ΙΙ Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

Συμπίεση Πληροφορίας Πλαισίου: χρήση του Αυτοπαλίνδρομου Υποδείγματος για επίτευξη Αποδοτικών Ασύρματων Επικοινωνιών

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

Β. Να γράψετε στο τετράδιό σας τους αριθμούς της Στήλης Α, που αντιστοιχούν σωστά με το γράμμα της Στήλης Β. ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

HY-486 Αρχές Κατανεμημένου Υπολογισμού

ΟΜΑ Α Α ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

Δίκτυα ΙΙ. Κεφάλαιο 7

Ασκήσεις Επανάληψης. Επανάληψη Εαρινό Εξάμηνο 2019 Σελίδα 1

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΜΗΜΑ: Γ2-Γ3

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

1 η εξεταστική περίοδος από 20/10/2013 έως 17/11/2013. γραπτή εξέταση στο μάθημα Α ΝΑΠΤΥΞΗ ΕΦΑΡΜ Ο ΓΩ Ν ΣΕ ΠΡΟΓΡ ΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Γ ΛΥΚΕΙΟΥ

MYY703: Δίκτυα Υπολογιστών I Εργαστήρια

Κόστος Ποσότητα * 440 ΤΕΛΟΣ_ΑΝ Να γραφεί ξανά ώστε να μην περιέχει πλεονασμούς. Μονάδες 6 Α2 Να συμπληρώσετε των παρακάτω πίνακα

μεταβλητής Χ Χ ΑΛΗΘΗΣ Χ Χ 7 > 4 Χ ΨΕΥ ΗΣ Μονάδες 10 ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ - ΕΣΠΕΡΙΝΩΝ

Σειρά Προβλημάτων 5 Λύσεις

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ ΘΕΜΑ Α

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΞΙ (6)

Α. Η «στοίβα» είναι µια δοµή δεδοµένων. 1. Να περιγράψετε τη «στοίβα» µε ένα παράδειγµα από την καθηµερινή ζωή. Μονάδες 6

(1) Σ 0 (2) Κ 0 (3) Αρχή_Επανάληψης (4) ιάβασε Χ (5) Σ Σ+Χ (6) Αν Χ>0 τότε (7) Κ Κ+1 (8) Τέλος_Αν (9) Μέχρις_ότου Σ>1000 (10) Εμφάνισε Χ

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Δραστηριότητα Περίπτωσης. Τίτλος: Οι διαφορές της απλής, της σύνθετης και της εμφωλευμένης δομής επιλογής

Φροντιστήριο 11 Λύσεις

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

Αλγόριθμοι Ταξινόμησης Μέρος 4

i 1 Όσο i <> 100 επανάλαβε i i + 2 Γράψε A[i] Τέλος_επανάληψης

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Οντοκεντρικός Προγραμματισμός II C++ Project Xειμερινό Εξάμηνο Organisms

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 3 Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής: 05/04/2013 Ημερομηνία Παράδοσης: 19/04/2013 ΠΕΡΙΓΡΑΦΗ Σε αυτή την άσκηση καλείστε να υλοποιήσετε το πρόγραμμα Προσομοίωσης Ασύρματου Δικτύου Αισθητήρων (Wireless Sensor Network Simulator) για την ανταλλαγή και διαχείριση μέσα σε ένα τέτοιο δίκτυο. Το πρόγραμμά σας θα ονομάζεται WSNSimulator. Ένα Ασύρματο Δίκτυο Αισθητήρων (ΑΔΑ) είναι ένα σύνολο από υπολογιστικές μονάδες με περιορισμένη υπολογιστική δύναμη και μικρή μνήμη. Τα ΑΔΑ μπορούν να τοποθετηθούν σε δάση, εργοστάσια, κτλ. διασκορπίζοντας τους ασύρματους αισθητήρες με κάποιο τρόπο ο οποίος επιτρέπει την αποδοτική επικοινωνία μεταξύ τους και ανταλλαγή δεδομένων. Οι ασύρματοι αισθητήρες διαθέτουν ασύρματες αντένες που επιτρέπουν επικοινωνία ανάμεσα σε κάποιο αισθητήρα/κόμβο και στους κόμβους που βρίσκονται εντός του εύρους επικοινωνίας του. Επίσης, κάθε κόμβος διαθέτει ένα κυκλώματα τα οποία μετρούν διάφορες περιβαλλοντολογικές παραμέτρους όπως θερμοκρασία, υγρασία, κτλ. Στο συγκεκριμένο πρόβλημα, θεωρήστε ότι θα αναπτύξουμε ένα ΑΔΑ σε ένα δάσος με σκοπό να ελέγχουμε τη θερμοκρασία σε συγκεκριμένες περιοχές εντός του δάσους και να ενημερώνουμε τυχόν πυροσβεστικά κέντρα σε περίπτωση ανίχνευσης πυρκαγιάς.

Το πρόβλημα Θεωρήστε ένα δίκτυο ΑΔΑ όπως περιγράφεται πιο πάνω το οποίο αποτελείται από ένα σύνολο από ασύρματους αισθητήρες (sensors) και ένα σύνολο από κεντρικές μονάδες ελέγχου (πυροσβεστικούς σταθμούς). Κάθε μια από αυτές τις οντότητες διαθέτει κάποια τοποθεσία η οποία δίνεται ως ζεύγος από συντεταγμένες (x, y). Με βάση τις τοποθεσίες αυτές ορίζουμε την απόσταση στην οποία βρίσκονται δύο κόμβοι του δικτύου ως την μεταξύ τους Ευκλείδεια απόσταση. Δηλαδή, αν δύο κόμβοι βρίσκονται στα σημεία (x1, y1) και (x2, y2), αντίστοιχα, τότε η μεταξύ τους απόσταση είναι ίση με: Επιπλέον, υποθέτουμε ότι δύο κόμβοι μπορούν να επικοινωνήσουμε μεταξύ τους αν η μεταξύ τους απόσταση είναι μικρότερη του d, για κάποια τιμή d. Με άλλα λόγια το σύστημα μπορεί να θεωρηθεί ως ένας μη κατευθυνόμενος γράφος με βάρη: Κάθε κόμβος του γράφου αντιστοιχεί σε κάποιο sensor ή κέντρο ελέγχου και η ύπαρξη ακμής ανάμεσα στους κόμβους συνεπάγεται ότι η μεταξύ τους απόσταση είναι μικρότερη του d. Το βάρος της ακμής ανάμεσα σε δύο κόμβους αντιστοιχεί στη μεταξύ τους απόσταση. Το δίκτυο θα πρέπει να παρέχει τις πιο κάτω λειτουργίες: Σε περίπτωση που κάποιος κόμβος ανιχνεύσει ψηλές θερμοκρασίες στο περιβάλλον του θα πρέπει να αποστείλει μήνυμα συναγερμού πάνω στο δίκτυο με τελικό επιδιωκόμενο παραλήπτη του μηνύματος το κοντινότερο πυροσβεστικό κέντρο. Κατά τακτά διαστήματα, τα πυροσβεστικά κέντρα στο δάσος ζητούν να ενημερωθούν για την ψηλότερη θερμοκρασία που υπάρχει στο δάσος. Αυτό προϋποθέτει επικοινωνία με όλους τους κόμβους του δικτύου και υπολογισμό αυτής της μέγιστης τιμής. Για σκοπούς ελαχιστοποίησης του αριθμού μηνυμάτων που στέλλονται και κατ επέκταση της υπολογιστικής δύναμης (μπαταρία) που καταναλώνεται, οι λειτουργίες αυτές επιτυγχάνονται με την κατασκευή ενός ελάχιστου γεννητορικού δένδρου και τη χρήση του ως βάση για τους ζητούμενους υπολογισμούς. Για παράδειγμα, θεωρείστε το πιο κάτω δίκτυο, το οποίο αποτελείται από 5 κόμβους (Α,, Ε), όπου η ύπαρξης ακμής ανάμεσα σε δύο κόμβους δηλώνει την δυνατότητα ασύρματης επικοινωνίας ανάμεσα σε αυτούς και το βάρος της ακμής την απόσταση ανάμεσα στους κόμβους.

Το ελάχιστο γεννητορικό δένδρο του γράφου είναι το εξής: Αν ο κόμβος Α ζητήσει ενημέρωση για την ψηλότερη θερμοκρασία του δικτύου, θα ακολουθήσει μια επικοινωνία μηνυμάτων πάνω στο δένδρο έτσι ώστε: στην πρώτη φάση να ενημερωθούν όλοι οι κόμβοι για το αίτημα του Α και, στη δεύτερη φάση να επιστραφεί από κάθε κόμβο η μέγιστη θερμοκρασία στο δένδρο που ριζώνει στον κόμβο. Στο πιο κάτω σχήμα, σημειώνεται μια δυνατή σειρά μηνυμάτων που υλοποιούν αυτή την ιδέα: Ο κόμβος Α ενημερώνει τον κόμβο Β, ο οποίος με τη σειρά του ενημερώνει τον κόμβο C και στη συνέχεια ο C τους D και E για το αίτημα προς επεξεργασία (μηνύματα 1 4). Στη συνέχεια οι κόμβοι Ε και D ενημερώνουν τον πατέρα τους (κόμβος C) για τις θερμοκρασίες τους (μηνύματα 5 και 6 αντίστοιχα), ενώ ο κόμβος C ενημερώνει τον κόμβο Β για την μέγιστη θερμοκρασία στο υπό δενδρο που ριζώνει σε αυτόν (μήνυμα 7) και, τέλος, ο κόμβος Β ενημερώνει τον κόμβο Α για τη μέγιστη θερμοκρασία του δικτύου που ριζώνει στον Β. Σημειώστε ότι για να στείλει κάποιος κόμβος απάντηση στον πατέρα του θα πρέπει να έχει πάρει απαντήσεις από όλα τα παιδιά του.

Το πρόγραμμα Το πρόγραμμά σας θα πρέπει να παίρνει σαν όρισμα (στη γραμμή εντολής), την τιμή του d και το όνομα ενός αρχείου το οποίο θα περιέχει στοιχεία κόμβων: ID ΣΥΝΤΕΤΑΓΜΕΝΕΣ ΘΕΡΜΟΚΡΑΣΙΑ 01 (42, 85) 30 123 (210, 50) 32 353 (12, 345) 28 02 (190, 300) 30 12 (48, 105) 58 821 (153, 46) 25 όπου οι εγγραφές αυτές δηλώνουν την ύπαρξη κόμβου με ταυτότητα το πρώτο πεδίο (π.χ., 123), τοποθεσία τις συντεταγμένες που εμφανίζονται στο δεύτερο πεδίο (π.χ. (210,50)), και μέτρηση θερμοκρασίας που βρίσκεται στο τρίτο πεδίο (π.χ. 32). Σημειώστε ότι αν η ταυτότητα του κόμβου ξεκινά από 0 τότε ο κόμβος είναι κόμβος ελέγχου, διαφορετικά, είναι υπολογιστικός κόμβος. Κατά την εκκίνηση της εκτέλεσης του προγράμματος, τα στοιχεία του αρχείου που δόθηκε ως παράμετρος στο πρόγραμμα θα πρέπει να διαβάζονται και να κτίζεται ο γράφος που αντιστοιχεί σε αυτά. Αμέσως μετά, το πρόγραμμά σας θα πρέπει να κτίζει ένα ελάχιστο γεννητορικό δένδρο του γράφου. Στη συνέχεια το πρόγραμμά σας θα πρέπει προσφέρει μέσω ενός μενού τις πιο κάτω διαδικασίες: 1. Εκτύπωση του ελάχιστου γεννητορικού δένδρου του γράφου. 2. Εισαγωγή νέου κόμβου (ταυτότητα, συντεταγμένες και θερμοκρασία). Η διαδικασία αυτή θα πρέπει να κάνει τις απαραίτητες αλλαγές στο ελάχιστο γεννητορικό δένδρο που υπάρχει αποθηκευμένο. 3. Αποχώρηση κόμβου (ταυτότητα). Η διαδικασία αυτή θα πρέπει και πάλι να κάνει τις απαραίτητες αλλαγές στο ελάχιστο γεννητορικό δένδρο που υπάρχει αποθηκευμένο. 4. Αλλαγή θερμοκρασίας κόμβου (ταυτότητα, νέα θερμοκρασία). 5. Ενημέρωση του πυροσβεστικού κέντρου Α για πιθανή πυρκαγιά στον κόμβο Β, όπου τα Α και Β είναι ταυτότητες κόμβων και δίνονται ως παράμετρος από τον χρήστη. Η διαδικασία θα πρέπει να ελέγχει τη θερμοκρασία του κόμβου Β και, σε περίπτωση που η θερμοκρασία

αυτή υπερβαίνει τους 50 βαθμούς Κελσίου, να υπολογίζει και να εκτυπώνει μονοπάτι που να ξεκινά στον κόμβο Β και να καταλήγει στον κόμβο Α. Το μονοπάτι αυτό θα πρέπει να ανήκει στο ελάχιστο γεννητορικό δένδρο του γράφου. 6. ΒΟΝUS! Ενημέρωση του πυροσβεστικού κέντρου Α για πιθανή πυρκαγιά στον κόμβο Β, όπου τα Α και Β είναι ταυτότητες κόμβων και δίνονται ως παράμετρος από τον χρήστη μέσω του συντομότερου μονοπατιού. Η διαδικασία θα πρέπει να ελέγχει τη θερμοκρασία του κόμβου Β και, σε περίπτωση που η θερμοκρασία αυτή υπερβαίνει τους 50 βαθμούς Κελσίου, να υπολογίζει και να εκτυπώνει μονοπάτι που να ξεκινά στον κόμβο Β και να καταλήγει στον κόμβο Α. Το μονοπάτι αυτό θα πρέπει να είναι το συντομότερο μονοπάτι ανάμεσα στους δύο κόμβους. Δεν χρειάζεται να ανήκει στο ελάχιστο γεννητορικό δένδρο του γράφου. 7. Έξοδος από το πρόγραμμα επαναγράφοντας τα στοιχεία των κόμβων στο αρχείο όπως διαμορφώθηκαν κατά την εκτέλεση του προγράμματος. Το πρόβλημα πιθανόν να μην είναι πλήρως προδιαγραμμένο. Στην περίπτωση που αποφασίσετε ότι χρειάζεται επιπλέον διασαφήνιση του προβλήματος, μπορείτε να κάνετε οποιαδήποτε (λογική) υπόθεση εφόσον την δικαιολογήσετε στην έκθεσή σας.

ΑΞΙΟΛΟΓΗΣΗ Για την αξιολόγηση του προγράμματος σας, θα ληφθούν οι πιο κάτω παράμετροι: 50% Ορθότητα: ο πρόγραμμα σας πρέπει τρέχει ορθά για οποιαδήποτε είσοδο. 10% Κατανοητά σχόλια: Γράφετε κατανοητά σχόλια που να εξηγούν την λειτουργία της κάθε κλάσης/πεδίου/μεθόδου. 10% Αναφορά Προγράμματος: Θα πρέπει να παραδώσετε μία αναφορά η οποία να περιγράφει συνοπτικά τα διάφορα συστατικά (κλάσεις, μεθόδους, διαπροσωπείες, κτλ.) του προγράμματος σας. Επίσης, η αναφορά θα πρέπει να καταγράφει τυχόν υποθέσεων τις οποίες έχετε κάνει. 30% Αποδοτικότητα: το πρόγραμμα σας θα πρέπει να χρησιμοποιήσει αποδοτικές δομές δεδομένων και αλγόριθμους όπου αρμόζει. ΟΔΗΓΙΕΣ Στο πάνω μέρος της κάθε κλάσης να γράψετε με σχόλια το ονοματεπώνυμο και τον αριθμό ταυτότητας σας. Βεβαιωθείτε ότι τα προγράμματα σας είναι ορθά και τρέχουν. H άσκηση σας θα πρέπει να παραδοθεί στον υπεύθυνο βοηθό μέσω moodle σαν ένα zip αρχείο (που να περιλαμβάνει όλες τις κλάσεις που θα υλοποιήσετε και το έγγραφο τεκμηρίωσης) σε ηλεκτρονική μορφή και σε έντυπη μορφή την ημερομηνία παράδοσης. Το zip αρχείο θα πρέπει να περιλαμβάνει τον κώδικα σας που θα γίνει μέσω export από το eclipse σαν archive file και την αναφορά σας. Το zip αρχείο θα ονομάζεται με τον εξής τρόπο: epl231.pex3.<ταυτότητα>.zip Η αναφορά θα πρέπει να ονομάζεται με τον εξής τρόπο: epl231.pex3.<ταυτότητα>.[doc pdf] Μη τήρηση των ημερομηνιών παράδοσης των εργασιών συνεπάγεται τις ανάλογες βαθμολογικές επιπτώσεις (μέχρι τον μηδενισμό της εργασίας). Οι προγραμματιστικές ασκήσεις θα ελέγχονται από ειδικό πρόγραμμα για την ανίχνευση των αντιγραφών. Οι αντιγραμμένες εργασίες θα μηδενίζονται και για τους αντιγραφείς θα εφαρμόζονται οι κανόνες τού Πανεπιστημίου. Αποφύγετε λοιπόν την αντιγραφή προγραμμάτων από άλλους συναδέλφους σας, διότι έτσι εκτίθετε και αυτούς και τον εαυτό σας στον κίνδυνο μηδενισμού και πειθαρχικής δίωξης. ΚΑΛΗ ΕΠΙΤΥΧΙΑ!!!