G περιέχει τουλάχιστον μία ακμή στο S. spanning tree στο γράφημα G.

Σχετικά έγγραφα
{ i f i == 0 and p > 0

Οι γέφυρες του ποταμού... Pregel (Konigsberg)

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

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

Δ Ι Α Κ Ρ Ι Τ Α Μ Α Θ Η Μ Α Τ Ι Κ Α. 1η σειρά ασκήσεων

21/11/2005 Διακριτά Μαθηματικά. Γραφήματα ΒΑΣΙΚΗ ΟΡΟΛΟΓΙΑ : ΜΟΝΟΠΑΤΙΑ ΚΑΙ ΚΥΚΛΟΙ Δ Ι. Γεώργιος Βούρος Πανεπιστήμιο Αιγαίου

Αναγνώριση Προτύπων. Σήμερα! Λόγος Πιθανοφάνειας Πιθανότητα Λάθους Κόστος Ρίσκο Bayes Ελάχιστη πιθανότητα λάθους για πολλές κλάσεις

Αποδεικτικές Διαδικασίες και Μαθηματική Επαγωγή.

CSE.UOI : Μεταπτυχιακό Μάθημα

Ας υποθέσουμε ότι ο παίκτης Ι διαλέγει πρώτος την τυχαιοποιημένη στρατηγική (x 1, x 2 ), x 1, x2 0,

Αναγνώριση Προτύπων. Σημερινό Μάθημα

«ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ»

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

Φροντιστήριο 2: Ανάλυση Αλγόριθμου. Νικόλας Νικολάου ΕΠΛ432: Κατανεμημένοι Αλγόριθμοι 1 / 10

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Σχέσεις και ιδιότητές τους

HY 280. θεμελιακές έννοιες της επιστήμης του υπολογισμού ΑΣΚΗΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ. Γεώργιος Φρ.

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

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2)

12/1/2006 Διακριτά Μαθηματικά. Ορισμός. Υπό γράφημα Τ γραφήματος Γ καλείται συνδετικό (ή επικαλύπτον)

Εισαγωγικά. 1.1 Η σ-αλγεβρα ως πληροφορία

Εξαναγκασμένες ταλαντώσεις, Ιδιοτιμές με πολλαπλότητα, Εκθετικά πινάκων. 9 Απριλίου 2013, Βόλος

Συναρτήσεις. Σημερινό μάθημα

1. Εστω ότι A, B, C είναι γενικοί 2 2 πίνακες, δηλαδή, a 21 a, και ανάλογα για τους B, C. Υπολογίστε τους πίνακες (A B) C και A (B C) και

ΣΤΟ ΙΑΤΡΕΙΟ. Με την πιστοποίηση του αποκτά πρόσβαση στο περιβάλλον του ιατρού που παρέχει η εφαρμογή.

Η ανισότητα α β α±β α + β με α, β C και η χρήση της στην εύρεση ακροτάτων.

5.1 Μετρήσιμες συναρτήσεις

(3 ο ) Εξαντλητική αναζήτηση I: μεταθέσεις & υποσύνολα (4 o ) Εξαντλητική αναζήτηση II: συνδυασμοί, διατάξεις & διαμερίσεις

Αναγνώριση Προτύπων. Σημερινό Μάθημα

ΠΑΝΕΠΙΣΤΗΜΙΑΚΑ ΦΡΟΝΤΙΣΤΗΡΙΑ ΚΟΛΛΙΝΤΖΑ ΜΑΘΗΜΑ: ΟΙΚΟΝΟΜΙΚΗ ΘΕΩΡΙΑ

Ταξινόμηση των μοντέλων διασποράς ατμοσφαιρικών ρύπων βασισμένη σε μαθηματικά κριτήρια.

Fractional Colorings and Zykov Products of graphs

Pointers. Σημερινό Μάθημα! Χρήση pointer Τελεστής * Τελεστής & Γενικοί δείκτες Ανάκληση Δέσμευση μνήμης new / delete Pointer σε αντικείμενο 2

ΜΙΚΡΟΟΙΚΟΝΟΜΙΚΗ Η ΚΑΤΑΝΑΛΩΤΙΚΗ ΑΠΟΦΑΣΗ. Άσκηση με θέμα τη μεγιστοποίηση της χρησιμότητας του καταναλωτή

Εστω X σύνολο και A μια σ-άλγεβρα στο X. Ονομάζουμε το ζεύγος (X, A) μετρήσιμο χώρο.

ΣΥΝΟΛΑ (προσέξτε τα κοινά χαρακτηριστικά των παρακάτω προτάσεων) Οι άνθρωποι που σπουδάζουν ΤΠ&ΕΣ και βρίσκονται στην αίθουσα

Το κράτος είναι φτιαγμένο για τον άνθρωπο και όχι ο άνθρωπος για το κράτος. A. Einstein Πηγή:

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 01: ΕΞΑΝΤΛΗΤΙΚΗ ΑΝΑΖΗΤΗΣΗ

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Αλγόριθμοι & Βελτιστοποίηση

Εφαρμογές στην κίνηση Brown

(20 ο ) ΣΤΑΔΙΑΚΕΣ ΚΑΤΑΣΚΕΥΕΣ Ι: ΑΠΛΗΣΤΟΙ ΑΛΓΟΡΙΘΜΟΙ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ. Πρώτη Γραπτή Εργασία. Εισαγωγή στους υπολογιστές Μαθηματικά

ιάσταση του Krull Α.Π.Θ. Θεσσαλονίκη Χ. Χαραλαμπους (ΑΠΘ) ιάσταση του Krull Ιανουάριος, / 27

Περιεχόμενα. 3 Γεννήτριες συναρτήσεις Συνήθεις γεννήτριες συναρτήσεις Βασικές γεννήτριες συναρτήσεις

ΤΑΞΙΝΟΜΗΣΗ ΟΡΓΑΝΙΣΜΩΝ

Το δεντροπλάτος και το γνήσιο δεντροπλάτος.

Π. ΚΡΗΤΗΣ, ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ ΗΥ 380, «ΑΛΓΟΡΙΘΜΟΙ & ΠΟΛΥΠΛΟΚΟΤΗΤΑ» Φ 06: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΔΟΜΕΝΩΝ

Ευρωπαϊκά παράγωγα Ευρωπαϊκά δικαιώματα

ΣΤΟ ΦΑΡΜΑΚΕΙΟ. Με την πιστοποίηση του έχει πρόσβαση στο περιβάλλον του φαρμακείου που παρέχει η εφαρμογή.

Ψηφιακή Εικόνα. Σημερινό μάθημα!

Συναρτήσεις & Κλάσεις

ΠΑΝΕΠΙΣΤΗΜΙΑΚΑ ΦΡΟΝΤΙΣΤΗΡΙΑ ΚΟΛΛΙΝΤΖΑ ΜΑΘΗΜΑ: ΕΡΩΤΗΣΕΙΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ

ΑΣΕΠ 2000 ΑΣΕΠ 2000 Εμπορική Τράπεζα 1983 Υπουργείο Κοιν. Υπηρ. 1983

Συγκέντρωση Κίνησης Εισαγωγή Στατική Συγκέντρωση Κίνησης

Επίλυση ειδικών μορφών ΣΔΕ

τεσσάρων βάσεων δεδομένων που θα αντιστοιχούν στους συνδρομητές

Τρίτη, 05 Ιουνίου 2001 ΤΕΧΝΟΛΟΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΣΧΟΛΙΚΟ ΕΤΟΣ ΕΥΘΥΓΡΑΜΜΗ ΟΜΑΛΗ ΚΙΝΗΣΗ ΤΡΙΩΡΗ ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΗ ΦΥΣΙΚΗ A ΛΥΚΕΙΟΥ. Ονοματεπώνυμο Τμήμα

( μ, λ ) ( i ) ( ii ) ( iii ) ( iv ) ( v )

Μαθηματικά Πληροφορικής

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

602. Συναρτησιακή Ανάλυση. Υποδείξεις για τις Ασκήσεις

Έννοια. Η αποδοχή της κληρονομίας αποτελεί δικαίωμα του κληρονόμου, άρα δεν

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Αναλυτικές ιδιότητες

τους στην Κρυπτογραφία και τα

Γενικό Λύκειο Μαραθοκάμπου Σάμου. Άλγεβρα Β λυκείου. 13 Οκτώβρη 2016

Every set of first-order formulas is equivalent to an independent set

Το υπόδειγμα IS-LM: Εισαγωγικά

EE512: Error Control Coding

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

(7 ο ) ΔΙΑΙΡΕΙ & ΒΑΣΙΛΕΥΕ Ι: «ταξινόμηση» (8 ο ) ΔΙΑΙΡΕΙ & ΒΑΣΙΛΕΥΕ ΙΙ: «κυρτό περίβλημα»

( ιμερείς) ΙΜΕΛΕΙΣ ΣΧΕΣΕΙΣ Α Β «απεικονίσεις»

Ο τύπος του Itô. f (s) ds (12.1) f (g(s)) dg(s). (12.2) t f (B s ) db s + 1 2

Περίληψη. του Frostman 4.1. Τέλος, η ϑεωρία του μέτρου Hausdorff αναπτύσσεται περαιτέρω στην τελευταία παράγραφο. Εισαγωγή 2

2 Composition. Invertible Mappings

Ανεξαρτησία Ανεξαρτησία για οικογένειες συνόλων και τυχαίες μεταβλητές

Εκφωνήσεις και Λύσεις των Θεμάτων

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΡΧΕΣ ΟΙΚΟΝΟΜΙΚΗΣ ΘΕΩΡΙΑΣ ΜΑΘΗΜΑ ΕΠΙΛΟΓΗΣ Γ ΛΥΚΕΙΟΥ

ΘΕΜΑ: Διαφορές εσωτερικού εξωτερικού δανεισμού. Η διαχρονική κατανομή του βάρους από το δημόσιο δανεισμό.

Ring Routing and Wavelength Conversion. Γιώργος Ζώης

Επίλυση δικτύων διανομής

(14 ο,15 ο,16 ο ) ΟΡΘΟΤΗΤΑ ΕΝΟΣ ΑΛΓΟΡΙΘΜΟΥ: ΕΝΟΤΗΤΑ Ι ΙΙ ΙΙΙ

Μεταγλωττιστές ΙΙ. Καταμερισμός καταχωρητών. Νικόλαος Καββαδίας Μεταγλωττιστές ΙΙ

Example Sheet 3 Solutions

Μητροπολιτικά Οπτικά Δίκτυα Εισαγωγή

Martingales. 3.1 Ορισμός και παραδείγματα

Ο Ισχυρός Νόμος των Μεγάλων Αριθμών

Εισαγωγή στη Μιγαδική Ανάλυση. (Πρώτη Ολοκληρωμένη Γραφή)

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Β ΤΑΞΗ. ΘΕΜΑ 1ο

Γραμμική Ανεξαρτησία. Τμήμα Μηχανικών Η/Υ Τηλεπικοινωνιών και ικτύων Πανεπιστήμιο Θεσσαλίας. 17 Μαρτίου 2013, Βόλος

Ordinal Arithmetic: Addition, Multiplication, Exponentiation and Limit

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΨΗΦΙΑΚΑ ΗΛΕΚΤΡΟΝΙΚΑ Σχεδίαση Λογικών Κυκλωμάτων

Κεφάλαιο 1. Πίνακες και απαλοιφή Gauss

(13 ο ) ΔΥΝΑΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙII: «βέλτιστο στατικό ευρετήριο»

Κληρονομικότητα. Σήμερα! Κλάση Βάσης Παράγωγη κλάση Απλή κληρονομικότητα Protected δεδομένα Constructors & Destructors overloading

Αναγνώριση Προτύπων. Σημερινό Μάθημα

Transcript:

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΕΠΙΣΤΗΜΗΣ ΥΠΟΛΟΓΙΣΤΩΝ Σχεδίαση και Ανάλυση Αλγορίθμων Διδάσκων: Ε. Μαρκάκης, Φθινοπωρινό εξάμηνο 2014-2015 Λύσεις 3ης Σειράς Ασκήσεων Πρόβλημα 2. Εστω ένας γράφος G = (V, E). Ενα υποσύνολο ακμών E E ονομάζεται σύνολο α- κμών ανάδρασης, αν τέμνει κάθε κύκλο του γραφήματος. Κάθε κύκλος του γραφήματος δηλαδή έχει τουλάχιστον μια ακμή που ανήκει στο Ε. Επομένως αφαιρώντας τις ακμές του E, το γράφημα ϑα γίνει άκυκλο. Σχεδιάστε έναν αποδοτικό αλγόριθμο για το εξής πρόβλημα: σε είσοδο ένα γράφημα με ϑετικά βάρη στις ακμές του, ο αλγόριθμος πρέπει να υπολογίζει ένα σύνολο ακμών ανάδρασης ελαχίστου συνολικού βάρους. Απάντηση. [Παπαευσταθίου] Ενα σύνολο S είναι σύνολο ακμών ανάδρασης στο G αν τέμνει κάθε κύκλο του γραφήματος. Διαφορετικά το S είναι σύνολο ακμών ανάδρασης στο G αν κάθε κύκλος στο G περιέχει τουλάχιστον μία ακμή στο S. Για κάθε σύνολο ακμών ανάδρασης S αν αφαιρέσουμε το S από το γράφημα G, τότε αυτό που ϑα μείνει ϑα είναι ένα δέντρο. Άρα η ελαχιστοποίηση του βάρους του συνόλου ακμών ανάδρασης S ισοδυναμεί με το να μεγιστοποιήσουμε το βάρος αυτού του δέντρου. Συνεπώς το σύνολο ακμών ανάδρασης ελαχίστου βάρους είναι το συμπλήρωμα του μέγιστου spanning tree στο γράφημα G. Algorithm 1 minweightedfeedbackedges et(g) MaxS T = FindmaximumspanningT ree(g) //see algorithm 2 S = MaxS T //find the complement of the maximum spanning tree return S Algorithm 2 FindmaximumspanningT ree(g) T = sort the edges in decreasing order while T n 1 do if T e does not create cycle then add the edge e to T end if end while return T 1

O(nlogn) για το sorting, και O( E log E ) για την εύρεση του maxi- Πολυπλοκότητα: mum spanning tree. Πρόβλημα 3. Οι παρακάτω ερωτήσεις αφορούν τη χρήση ουρών προτεραιότητας,και συγκεκριμένα την υλοποίησή τους με σωρούς που είδαμε και στο μάθημα. 1. Ο σωρός που έχουμε δει στο μάθημα ονομάζεται δυαδικός σωρός (binaryheap), ε- πειδή χρησιμοποιούμε δυαδικό δέντρο για την αναπαράστασή του. Μια άλλη ιδέα για να υλοποιήσουμε μια ουρά προτεραιότητας είναι η χρήση d-αδικού σωρού, για κάποια μικρή τιμή του d. Π.χ. για d 3, αυτό σημαίνει ότι το δέντρο ϑα είναι πλέον τριαδικό, κάθε εσωτερικός κόμβος ϑα έχει 3 παιδιά, και ϑα εξακολουθούν να ισχύουν ό,τι είδαμε και στο δυαδικό σωρό, δηλαδή, το δέντρο ϑα έχει γεμάτα όλα τα επίπεδα εκτός ίσως του τελευταίου, και το κλειδί ενός κόμβου ϑα πρέπει να είναι μικρότερο ή ίσο από τα κλειδιά των παιδιών του. Οι λειτουργίες bubbleup και bubbledown ορίζονται επίσης με τον ίδιο τρόπο,όπως και πριν. Το πλεονέκτημα είναι ότι έτσι μπορεί να μειωθεί το ύψος του δέντρου. Δείξτε πόσο ϑα είναι το ύψος του δέντρου σε ένα d-αδικό σωρό με n στοιχεία και γιατί αυτό συνεπάγεται καποια (έστω μικρή) βελτίωση για την insert Εξηγήστε γιατί αυτό αντισταθμίζεται από καποια μικρή επιβάρυνση για την delete min. 2. Εστω ότι έχετε k ταξινομημένους πίνακες,και κάθε πίνακας έχει n στοιχεία.το k είναι μια παράμετρος με 1 k n. Θέλουμε να συγχωνεύσουμε τους πίνακες σε έναν ταξινομημένο πίνακα μεγέθους nk. Μία λύση είναι να βαλουμε όλα τα στοιχεία σε ένα νέο πίνακα μεγέθους nk, και να τον ταξινομήσουμε. Ποια η πολυπλοκότητα αυτής της λύσης; Σκεφτείτε πώς με τη χρήση δυαδικού σωρού, μπορούμε να πετύχουμε μια πιο αποδοτική υλοποίηση (ως συνάρτηση του k και του n). Απάντηση. [Κουτσούλης, Μιτσοπούλου, Χαριτίδης] 1. Ανάλυση για την insert: Κάθε μία νέα τιμή που εισέρχεται στον d-αδικό σωρό πηγαίνει στην τελευταία ελεύθερη ϑέση στο τέλος του σωρού. Επειτα γίνονται τόσες ενέργειες bubbleup όσες χρειάζονται. Η διαδικασία αυτή γίνεται συγκρίνοντας την τιμή του νέου στοιχείου με τον εκάστοτε γονέα και ανεβαίνοντας εάν είναι μικρότερο, ένα επίπεδο την φορά. Αυτό γίνεται τόσες φορές όσες χρειαστεί. Στο χειρότερο σενάριο (worst case scenario) ϑα ανέβει από το τελευταίο επίπεδο μέχρι και την ρίζα την οπο- ία ϑα αντικαταστήσει. Το ύψος στο σωρό είναι log x y, με x ο αριθμός των παιδιών του κάθε κόμβου στο δέντρο, και y το πλήθος των στοιχείων του δέντρου που υλοποιεί τον σωρό. Επομένως, το άθροισμα των συγκρίσεων αυτών στην χειρότερη περίπτωση είναι log d n, μία σύγκριση ανά επίπεδο, με τον εκάστοτε γονέα. Για d > 2 είναι log d n < log 2 n. Επομένως με την συγκεκριμένη υλοποίηση για κάθε εισαγωγή στον σωρό, γίνονται λιγότερες bubbleup ενέργειες από ότι με τον δυαδικό σωρό. Άρα βελτιώνεται ο χρόνος της διαδικασίας insert κατά την διαφορά αυτή. Οι δύο πολυπλοκότητες είναι: O(log 2 n) 2

για την υλοποίηση με δυαδικό σωρό και O(log d n) για την υλοποίηση με d-αδικό σωρό και O(log d n) < O(log 2 n). Ανάλυση για την delete min: Για την αφαίρεση στοιχείου από τον σωρό με την χρήση της delete min, αφαιρείται η ρίζα που είναι το μικρότερο στοιχείου της δομής δεδομένων. Επειτα, το τελευταίο στοιχείο του δέντρου έρχεται στην ϑέση της ρίζας και γίνονται τόσα bubbledown όσα χρειάζονται. Αντίστοιχα με την προηγούμενη περίπτωση, οι ενέργειες bubbledown στο χειρότερο σενάριο (worst case scenario) ϑα είναι από την κορυφή του δέντρου μέχρι και το τελευταίο επίπεδο. Σε αντίθεση με την προηγούμενη περίπτωση, σε κάθε επίπεδο η σύγκριση πρέπει να γίνει με κάθε παιδί του κόμβου. Θα πρέπει να γίνουν δηλαδή d συγκρίσεις ανά επίπεδο. Επομένως στο χειρότερο σενάριο ϑα γίνουν d log d n συγκρίσεις συνολικά. Στην υλοποίηση της δομής δεδομένων με δυαδικό σωρό, γίνονται μόνο 2 log 2 n συγκρίσεις, με πολυπλοκότητα O(2 log n), ή αλλιώς O(log n). Με την υλοποίηση του d-αδικού σωρού, η πολυπλοκότητα είναι O(d log d n), για την οποία ισχύει O(d log d n) > O(log n). Παρατηρήσεις: 1)Για την ακρίβεια, το ύψος του δέντρου με το οποίο υλοποιείται ο σωρός είναι: log x y + 1. Η πολυπλοκότητα στην προηγούμενη ανάλυση δεν επηρεάζεται. 2)Για d μικρό, η διαφορά με την δυαδική υλοποίηση είναι μικρή. Οταν το d είναι μεγάλο, τότε φαίνεται η διαφορά. Παραδείγματα: α)για d = 3, είναι: log 2 1000 9.97. ενώ log 3 1000 6.29. Με 2*9.97 20 και 3*6.29 19. β)για d = 10, τότε είναι: log 2 1000 9.97. ενώ log 10 1000 = 3. Με 2*9.97 20 και 10*3 30. 2. Για την πρώτη υλοποίηση, η πολυπλοκότητα είναι O(nk log 2 nk), χρησιμοποιώντας έναν από τους γνωστούς αλγόριθμους ταξινόμησης για τον οποίο το πλήθος των στοιχείων ϑα είναι n k. Η πολυπλοκότητα αυτή αναλύεται σε O(nk(log 2 n + log 2 k)) Μια υλοποίηση με χρήση δυαδικού σωρού ϑα μπορούσε να είναι η παρακάτω: 1)δημιουργία άδειου πίνακα Result μεγέθους n k, όπου ϑα αποθηκευτεί ο τελικός ταξινομημένος πίνακας 2)δημιουργία δυαδικού σωρού μεγέθους k. 3)εισαγωγή του πρώτου στοιχείου από τον κάθε πίνακα στον δυαδικό σωρό με την insert. Για το κάθε στοιχείο αποθηκεύεται και ο πίνακας από τον οποίο προήλθε 4)μέχρι να αδείασει ο δυαδικός σωρός: α)αφαίρεση του στοιχείου της ρίζας και εισαγωγή του στον πίνακα Result (χωρίς μεταφορά άλλου στοιχείου στην ρίζα και χωρίς bubbledown) β)αν υπάρχει κι άλλο στοιχείο του πίνακα από τον οποίο είχε εξαχθεί η προηγούμενη ρίζα, τότε εισαγωγή στην ρίζα του επόμενου στοιχείου αυτού και buddledown. Διαφορετικά γίνεται ανακατασκευή του σωρού, με μεταφορά του τελευταίου στοιχείου του σωρού στη ρίζα και bubbledown, κι έτσι μειώνοντας το μέγεθός του κατά έναν κόμβο (συνθήκη τερματισμού του βρόχου) 5)Στο τέλος του αλγορίθμου ο πίνακας Result έχει καταχωρημένα όλα τα στοιχεία όλων των πινάκων σε ταξινομημένη αύξουσα σειρά. 3

Το ύψος του δυαδικού σωρού είναι log 2 k + 1, με πολυπλοκότητα O(log 2 k). Τα πρώτα δύο βήματα είναι σταθερής πολυπλοκότητας. Το τρίτο βήμα απαιτεί k εισαγωγές στον σωρό με την insert, με κάθε εισαγωγή να έχει το πολύ log 2 k bubbleup ενέργειες για την insert. Άρα O(k log 2 k). Για το τέταρτο βήμα χρειάζονται το πολύ nk ανακατεσκευές με χρήση bubbledown, με O(log 2 k) κόστος η κάθε μία. Επομένως έχει πολυπλοκότητα O(nk log 2 k). Άρα η πολυπλοκότητα της λύσης αυτής είναι O(k log 2 k) + O(nk log 2 k), ή αλλιώς O((k log 2 k) + (nk log 2 k)), που είναι ίσο με O(nk log 2 k) για το οποίο προφανώς ισχύει: O(nk log 2 k) < O(nk(log 2 n + log 2 k)), επομένως υπάρχει μια μικρή βελτίωση. Πρόβλημα 4. Ενας τρόπος για να αποδείξει κανείς ότι ένα πρόβλημα Π είναι NP-πλήρες είναι με τη μέθοδο της γενίκευσης. Αυτό σημαίνει ότι πρέπει να δείξουμε ότι το Π αποτελεί γενίκευση κάποιου γνωστού NP-πλήρους προβλήματος (εμπεριέχει δηλαδή όλα τα instances ενός NP-πλήρους προβλήματος). Δείξτε με βάση αυτή την ιδέα ότι τα παρακάτω προβλήματα είναι NP-πλήρη, χρησιμοποιώντας τα NP-πλήρη προβλήματα που έχουμε ήδη δει. 1. Longest Path: Δεδομένου ενός γράφου G = (V, E), και ενός ακεραίου k, υπάρχει μονοπάτι με μήκος τουλάχιστον k. Θεωρήστε ότι δεν έχουμε βάρη και ότι το μήκος του μονοπατιού είναι το πλήθος των ακμών που χρησιμοποιεί. 2. Max-SAT: Δεδομένης μιας CNF φόρμουλας φ, και ενός ακεραίου k, υπάρχει μια απονομή αλήθειας που να ικανοποιεί τουλάχιστον k clauses. 3. Stingy SAT: Δεδομένης μιας CNF φόρμουλας φ, και ενός ακεραίου k, υπάρχει μια απονομή αλήθειας που να ικανοποιεί τη φόρμουλα και όπου το πολύ k μεταβλητές είναι true. Απάντηση. [Πετρίδης, Σπυριδάκης, Τσελεπάκης] 1. Longest Path: Αρχικά παρατηρούμε ότι το πρόβλημα Hamiltonian Path είναι μια ειδική περίπτωση του προβλήματος Longest Path για k = V 1, όπου k το ελάχιστο μήκος μονοπατιού του Longest Path. Το Longest Path έχει polynomial-time verification. Για να είναι ικανοποιήσιμο κάποιο certificate x = (V, E ) ενός instance I =< (V, E), k > του προβλήματος (όπου V V, E E), αρκεί να επιβεβαιωθεί ότι περιέχει μονοπάτι που καλύπτει όλους τους κόμβους v V και για το πλήθος των ακμών ισχύει E = V 1 (που επίσης εξασφαλίζει ότι το μονοπάτι είναι άκυκλο). Για να αποδείξουμε ότι το πρόβλημα είναι NP-hard, προχωράμε σε αναγωγή ( Hamiltonian Path P Longest Path). Εστω ένα instance I =< (V, E) > του προβλήματος Hamiltonian Path. Κατασκευάζουμε ένα instance I =< (V, E), k > του προβλήματος Longest Path, όπου k = V 1. Εστω επίσης ένα certificate x = (V, E ), V V, E E για τα I,I. 4

{ Αν το x ικανοποιεί το instance I προφανώς ικανοποιεί και το I εφόσον σημαίνει ότι περιέχει μονοπάτι μήκους V 1 και για το I ισχύει k = V 1. { Αν το x ικανοποιεί το instance I προφανώς ικανοποιεί και το I εφόσον σημαίνει ότι περιέχει μονοπάτι με μήκος τουλάχιστον k, όπου k = V 1. Συνεπώς το Longest Path NP και είναι NP-hard, άρα Longest Path NPC. 2. Max-SAT: Αρχικά παρατηρούμε ότι το CNF-SAT είναι μια ειδική περίπτωση του Max-SAT για k = m, όπου m ο συνολικός αριθμός των clauses στην φόρμουλα του προβλήματος. Το Max-SAT έχει προφανώς polynomial-time verification όπως και το CNF- SAT και άρα ανήκει στο NP. Για να αποδείξουμε ότι το Max-SAT είναι NP-hard προχωράμε σε reduction CNF-SAT P MAX-SAT. Εστω μια ένα instance I =< Φ > του CNF-SAT, όπου Φ μια boolean formula σε conjuctive normal form με m clauses. Κατασκευάζουμε ένα instance I =< Φ, k > του Max-SAT με k = m. { Αν ένα certificate ικανοποιεί το I προφανώς ικανοποιεί και το I, αφού ικανοποιούνται m clauses της Φ και k = m. { Αν ένα certificate ικανοποιεί το I προφανώς ικανοποιεί και το I, εφόσον ικανοποιούνται k clauses, το σύνολο δηλαδή των clauses της Φ, αφού k = m. Συνεπώς το Max-SAT NP και είναι NP-hard, άρα Max-SAT NPC. 3. Stingy SAT: Αρχικά παρατηρούμε ότι το CNF-SAT είναι μια ειδική περίπτωση του Stingy SAT για k = n, όπου n ο συνολικός αριθμός των variables στην φόρμουλα του προβλήματος. Το Stingy SAT προφανώς ανήκει στο NP καθώς μπορούμε να επιβεβαιώσουμε την εγκυρότητα μιας υποψήφιας λύσης σε πολυωνυμικό χρόνο. Για να αποδείξουμε ότι το Stingy SAT είναι NP-hard ϑα κάνουμε την εξής αναγωγή: CNF-SAT P Stingy SAT. Εστω μια ένα instance I =< Φ > του CNF-SAT, όπου Φ μια boolean formula σε conjuctive normal form με n variables. Κατασκευάζουμε ένα instance I =< Φ, k > του Stingy-SAT με k = n. { Αν ένα certificate ικανοποιεί το I προφανώς ικανοποιεί και το I, αφού ικανοποιείται η Φ με το πολύ n μεταβλητές να είναι true και k = n. { Αν ένα certificate ικανοποιεί το I προφανώς ικανοποιεί και το I, εφόσον ικανοποιείται η Φ με το πολύ k μεταβλητές να είναι true, όπου k = n (συνεπώς οσεσδήποτε από τις n μεταβλητές της Φ μπορούν να είναι true). Συνεπώς το Stingy-SAT NP και είναι NP-hard, άρα Stingy-SAT NPC. 5

Πρόβλημα 5. 1. Δώστε μια αναγωγή από το πρόβλημα SUBSET-SUM στο πρόβλημα PARTITION. 2. Το εξής πρόβλημα (3DM - 3-dimensional matching) αποτελεί γενίκευση των matching προβλημάτων σε διμερείς γράφους. Εστω 3 ξένα μεταξύ τους σύνολα X = x 1,..., x n, Y = y 1,..., y n, και Z = z 1,..., z n με n αντικείμενα το καθένα. Εστω επίσης ένα σύνολο T X Y Z, που αποτελείται από τριάδες της μορφής (x i, y j, z k ). Κάθε τριάδα περιέχει ακριβώς ένα αντικείμενο από τα X, Y, Z. Ενα 3-διάστατο ταίριασμα (matching) είναι ένα υποσύνολο του T, δηλαδή ένα συνολο από τριάδες που δεν έχουν κοινά στοιχεία μεταξύ τους. Αυτο σημαίνει ότι για οποιεσδήποτε 2 τριάδες του ταιριάσματος, (x 1, y 1, z 1 ) και (x 2, y 2, z 2 ), έχουμε x 1 x 2, y 1 y 2, z 1 z 2. Θελουμε να αποφασίσουμε αν υπάρχει ένα ταίριασμα με n τριάδες, δηλαδή ένα ταίριασμα που να καλύπτει όλα τα στοιχεία από τα X, Y, Z. Το 3DM είναι ένα από τα γνωστά NP-πλήρη προβλήματα. Δώστε μια απλή αναγωγή από το 3DM στο SAT, και μια από το 3DM στο SET COVER. Απάντηση. [Καρόζος, Μιχολιά, Φιλιππίδου] Set Cover (SC): There exists a universe U of n elements, as in Figure 1, and a collection of subsets C = {S 1, S 2,..., S m } where S i U with 1 i m and an integer k describing the minimum number of subsets that can cover the universe, such that C k. 3 Dimensional Matching (3DM): There exist 3 disjoint sets, X, Y, Z of n nodes each and T a subset that consists of n triples (x, y, x) such that x X, y Y, z Z. A 3 Dimensional Matching M T is a matching where for any two distinct triples (x 1, y 1, z 1 ) M and (x 2, y 2, z 2 ) M no node of the same set is taken twice x 1 x 2, y 1 y 2, z 1 z 2. Transformation: In order to create a transformation of the Set Cover problem that relates directly to the 3DM, we consider that each disjoint set X, Y, Z consists of n nodes each and the total number of nodes in the matching graph is 3n. To this purpose, we build a universe of 3n elements, as in Figure 2, and every triple (x i, y i, z i ) of the matching containing three distinct nodes, will be mapped to a subset S i with three elements of the universe in each subset, i {1, 2,..., n}. If we also take into account, an instance where the number of subsets equals to the number of triples k = n, then this Set Cover connects directly to 3DM. Reduction: Let us assume, a "yes" instance of the 3DM matching: The number of matches with disjoint elements that cover all points are M = n triples of (x i, y i, z i ), with i {1, 2,..., n} that cover the whole number of nodes 3n. If we set n = k, then the union of the k 6

three-element subsets S i of the Set Cover problem will gives us the whole universe of 3n elements. Let us assume, a "yes" instance of the Set Cover: There is a number of k subsets S i, i {1, 2,..., n} and the union of these subsets, gives us the universe of 3n elements. If we set k = n, and represent each subset S i with a matching M i of n triples (x i, y i, z i ) then the union of the matches results to the whole number of nodes 3n. However, we also need to prove that each node is present exactly once in every matching. This happens indeed, due to the fact that the total number of nodes is 3n and the matches contain three elements each, so the number of matches is bounded by 3n/3 = n. Thus, we cannot have more than n matches in total, and since we have exactly n, no element can be taken twice. Figure 1: Universe of n elements. Figure 2: Universe of 3n elements. Πρόβλημα 6. Απάντηση. [Ονοματεπώνυμα γραφέων] 7

Figure 3: Disjoint sets X,Y,Z. Figure 4: 3 Dimensional Matching. 8