85
Αλγόριθmοι και Πολυπλοκότητα 1η σειρά γραπτών ασκήσεων Σχέδιο Λύσεων CoReLab ΣΗΜΜΥ Ε.Μ.Π. 17 Νοεmβρίου 2019 Αλγόριθmοι 1η Σειρά Γραπτών Ασκήσεων 1 / 34

Algìrijmoi kai Poluplokìthta 1h seir‹ grapt‚n ask€sewn SqŁdio ...Askhsh 1 (a) - Asumptwtikìc Sumbolismìc Upologismo— Gia th mikrìterh sun‹rthsh isqÔei: Xn k=1 k2 k

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • Αλγόριθμοι και Πολυπλοκότητα

    1η σειρά γραπτών ασκήσεων

    Σχέδιο Λύσεων

    CoReLab

    ΣΗΜΜΥ Ε.Μ.Π.

    17 Νοεμβρίου 2019

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 1 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Η τελική ταξινόμηση έχει ως εξής:

    n∑k=1

    k2−k <log (n!)

    (log n)3< log

    (2n

    n

    )≈ n222

    100

    < 2(log2 n)4<

    < (√n)! < n

    n∑k=0

    (n

    k

    )≈

    n∑k=1

    k2k

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 2 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί

    Για τη μικρότερη συνάρτηση ισχύει:

    n∑k=1

    k2−k <

    ∞∑k=1

    k2−k

    Αν υπολογίσουμε το δεύτερο άθροισμα θα πάρουμε:

    ∞∑k=1

    k2−k = 2 Επομένως:n∑

    k=1

    k2−k ∈ Θ(1)

    Για την επόμενη συνάρτηση

    log (n!)

    (log n)3ισχύει πως: n! ≤ nn

    log (n!) ≤ n log n⇒ log (n!)(log n)3

    ≤ n(log n)2

    = o(n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 3 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί

    Για τη μικρότερη συνάρτηση ισχύει:

    n∑k=1

    k2−k <

    ∞∑k=1

    k2−k

    Αν υπολογίσουμε το δεύτερο άθροισμα θα πάρουμε:

    ∞∑k=1

    k2−k = 2 Επομένως:n∑

    k=1

    k2−k ∈ Θ(1)

    Για την επόμενη συνάρτηση

    log (n!)

    (log n)3ισχύει πως: n! ≤ nn

    log (n!) ≤ n log n⇒ log (n!)(log n)3

    ≤ n(log n)2

    = o(n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 3 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί συνέχειαΓια την επόμενη συνάρτηση ισχύει η γνωστή ανισότητα:

    (n

    k)k ≤

    (n

    k

    )≤ n

    k

    k!≤ (n · e

    k)k

    (π.χ. n log 2 ≤ log(

    2n

    n

    )≤ n log 2e)

    Επομένως:

    log

    (2n

    n

    )∈ Θ(n)

    Για την επόμενη συνάρτηση

    n222100

    = cn ∈ Θ(n)

    Επόμενη συνάρτηση η:

    2(log2 n)4για την οποία ισχύει πως: 2(log2 n)

    4= Θ(n(logn)

    3)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 4 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί συνέχειαΓια την επόμενη συνάρτηση ισχύει η γνωστή ανισότητα:

    (n

    k)k ≤

    (n

    k

    )≤ n

    k

    k!≤ (n · e

    k)k

    (π.χ. n log 2 ≤ log(

    2n

    n

    )≤ n log 2e)

    Επομένως:

    log

    (2n

    n

    )∈ Θ(n)

    Για την επόμενη συνάρτηση

    n222100

    = cn ∈ Θ(n)

    Επόμενη συνάρτηση η:

    2(log2 n)4για την οποία ισχύει πως: 2(log2 n)

    4= Θ(n(logn)

    3)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 4 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί συνέχειαΓια την επόμενη συνάρτηση ισχύει η γνωστή ανισότητα:

    (n

    k)k ≤

    (n

    k

    )≤ n

    k

    k!≤ (n · e

    k)k

    (π.χ. n log 2 ≤ log(

    2n

    n

    )≤ n log 2e)

    Επομένως:

    log

    (2n

    n

    )∈ Θ(n)

    Για την επόμενη συνάρτηση

    n222100

    = cn ∈ Θ(n)

    Επόμενη συνάρτηση η:

    2(log2 n)4για την οποία ισχύει πως: 2(log2 n)

    4= Θ(n(logn)

    3)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 4 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί συνέχεια

    Ακολουθεί η εκθετική συνάρτηση:

    (√n)! ≤ (

    √n)√n ≤ 2

    √n logn ≤ 2

    √n√n ≤ 2n

    Επόμενη συνάρτηση:

    n

    n∑k=0

    (n

    k

    )= n2n ∈ Θ(n2n)

    Και τελευταία η συνάρτηση:

    n∑k=1

    k2k ∈ Θ(n2n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 5 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί συνέχεια

    Ακολουθεί η εκθετική συνάρτηση:

    (√n)! ≤ (

    √n)√n ≤ 2

    √n logn ≤ 2

    √n√n ≤ 2n

    Επόμενη συνάρτηση:

    n

    n∑k=0

    (n

    k

    )= n2n ∈ Θ(n2n)

    Και τελευταία η συνάρτηση:

    n∑k=1

    k2k ∈ Θ(n2n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 5 / 34

  • ΄Ασκηση 1 (α) - Ασυμπτωτικός Συμβολισμός

    Υπολογισμοί συνέχεια

    Ακολουθεί η εκθετική συνάρτηση:

    (√n)! ≤ (

    √n)√n ≤ 2

    √n logn ≤ 2

    √n√n ≤ 2n

    Επόμενη συνάρτηση:

    n

    n∑k=0

    (n

    k

    )= n2n ∈ Θ(n2n)

    Και τελευταία η συνάρτηση:

    n∑k=1

    k2k ∈ Θ(n2n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 5 / 34

  • ΄Ασκηση 1 (β) - Αναδρομικές Σχέσεις

    Για την πρώτη αναδρομική

    T (n) = 3T (n/2)+n2 log n = aT (n/b)+n2 log n όπου a = 3, b = 2

    από Master Theorem T (n) = Θ(n2 log n)

    Για τη δεύτερη αναδρομική

    T (n) = 4T (n/2) + n2 log n

    από το δέντρο αναδρομής για το κ-οστό επίπεδο έχουμε

    n2 log n− n2 log(2k)Αθροίζοντας τα επίπεδα παίρνουμε

    Θ(n2 log2 n)

    Για την τρίτη ανδρομική

    T (n) = 5T (n/2) + n2 log n

    n2 log n < nlog2 5−0.22 ≈ n2.1Master Theorem T (n) = Θ(nlog25)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 6 / 34

  • ΄Ασκηση 1 (β) - Αναδρομικές Σχέσεις

    Για την πρώτη αναδρομική

    T (n) = 3T (n/2)+n2 log n = aT (n/b)+n2 log n όπου a = 3, b = 2

    από Master Theorem T (n) = Θ(n2 log n)

    Για τη δεύτερη αναδρομική

    T (n) = 4T (n/2) + n2 log n

    από το δέντρο αναδρομής για το κ-οστό επίπεδο έχουμε

    n2 log n− n2 log(2k)Αθροίζοντας τα επίπεδα παίρνουμε

    Θ(n2 log2 n)

    Για την τρίτη ανδρομική

    T (n) = 5T (n/2) + n2 log n

    n2 log n < nlog2 5−0.22 ≈ n2.1Master Theorem T (n) = Θ(nlog25)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 6 / 34

  • ΄Ασκηση 1 (β) - Αναδρομικές Σχέσεις

    Για την πρώτη αναδρομική

    T (n) = 3T (n/2)+n2 log n = aT (n/b)+n2 log n όπου a = 3, b = 2

    από Master Theorem T (n) = Θ(n2 log n)

    Για τη δεύτερη αναδρομική

    T (n) = 4T (n/2) + n2 log n

    από το δέντρο αναδρομής για το κ-οστό επίπεδο έχουμε

    n2 log n− n2 log(2k)Αθροίζοντας τα επίπεδα παίρνουμε

    Θ(n2 log2 n)

    Για την τρίτη ανδρομική

    T (n) = 5T (n/2) + n2 log n

    n2 log n < nlog2 5−0.22 ≈ n2.1Master Theorem T (n) = Θ(nlog25)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 6 / 34

  • ΄Ασκηση 1 (β) - Αναδρομικές Σχέσεις

    Για την τέταρτη αναδρομική

    T (n) = T (n/2) + T (n/3) + n, 1/2 + 1/3 = 5/6 < 1

    επομένως T (n) = Θ(n)

    Για την πέμπτη ανδρομική

    T (n) = T (n/2)+T (n/3)+T (n/6)+n επειδή n/2+n/3+n/6 = n

    χρησιμοποιούμε δέντρο αναδρομής για να αποδείξουμε πως

    T (n) = Θ(n log n)( το ύψος φράσσεται από log6 n και log2 n)

    Για την έκτη ανδρομική

    T (n) = T (n/4)+√n για n = m2T (n) = T (m2) = T ((m/2)2)+m

    ΄Εστω S(m) = T (m2) = T ((m/2)2)+m αλλά S(m/2) = T ((m/2)2)

    άρα S(m) = S(m/2)+m από δέντρο αναδρομής S(m) = Θ(m)

    Τελικά T (n) = T (m2) = S(m) = Θ(m) = Θ(√n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 7 / 34

  • ΄Ασκηση 1 (β) - Αναδρομικές Σχέσεις

    Για την τέταρτη αναδρομική

    T (n) = T (n/2) + T (n/3) + n, 1/2 + 1/3 = 5/6 < 1

    επομένως T (n) = Θ(n)

    Για την πέμπτη ανδρομική

    T (n) = T (n/2)+T (n/3)+T (n/6)+n επειδή n/2+n/3+n/6 = n

    χρησιμοποιούμε δέντρο αναδρομής για να αποδείξουμε πως

    T (n) = Θ(n log n)( το ύψος φράσσεται από log6 n και log2 n)

    Για την έκτη ανδρομική

    T (n) = T (n/4)+√n για n = m2T (n) = T (m2) = T ((m/2)2)+m

    ΄Εστω S(m) = T (m2) = T ((m/2)2)+m αλλά S(m/2) = T ((m/2)2)

    άρα S(m) = S(m/2)+m από δέντρο αναδρομής S(m) = Θ(m)

    Τελικά T (n) = T (m2) = S(m) = Θ(m) = Θ(√n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 7 / 34

  • ΄Ασκηση 1 (β) - Αναδρομικές Σχέσεις

    Για την τέταρτη αναδρομική

    T (n) = T (n/2) + T (n/3) + n, 1/2 + 1/3 = 5/6 < 1

    επομένως T (n) = Θ(n)

    Για την πέμπτη ανδρομική

    T (n) = T (n/2)+T (n/3)+T (n/6)+n επειδή n/2+n/3+n/6 = n

    χρησιμοποιούμε δέντρο αναδρομής για να αποδείξουμε πως

    T (n) = Θ(n log n)( το ύψος φράσσεται από log6 n και log2 n)

    Για την έκτη ανδρομική

    T (n) = T (n/4)+√n για n = m2T (n) = T (m2) = T ((m/2)2)+m

    ΄Εστω S(m) = T (m2) = T ((m/2)2)+m αλλά S(m/2) = T ((m/2)2)

    άρα S(m) = S(m/2)+m από δέντρο αναδρομής S(m) = Θ(m)

    Τελικά T (n) = T (m2) = S(m) = Θ(m) = Θ(√n)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 7 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2]

    ΄Εξοδος: Θέσεις i1, i2 ώστε |A1[i1]−A2[i2]| το ελάχιστοδυνατό

    Λύση: Μετακίνηση Δεικτών

    Κρατάμε 2 δείκτες t1, t2 και αρχικοποιούμε t1 = 1, t2 = 1

    Προχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία των δύοπινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, i2 που αντιστοιχούν στο ελάχιστο διάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 8 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Ορθότητα (ιδέα)

    Δεν έχει νόημα να αυξήσουμε το δείκτη του μεγαλύτερουστοιχείου ή να μειώσουμε το δείκτη του μικρότερουστοιχείου, αφού το εύρος του διαστήματος θα αυξηθεί

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

    Επομένως για να πετύχουμε ενδεχόμενη μείωση τουδιαστήματος αυξάνουμε τον δείκτη του μικρότερου στοιχείου

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 9 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Ορθότητα (ιδέα)

    Δεν έχει νόημα να αυξήσουμε το δείκτη του μεγαλύτερουστοιχείου ή να μειώσουμε το δείκτη του μικρότερουστοιχείου, αφού το εύρος του διαστήματος θα αυξηθεί

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

    Επομένως για να πετύχουμε ενδεχόμενη μείωση τουδιαστήματος αυξάνουμε τον δείκτη του μικρότερου στοιχείου

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 9 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Ορθότητα (ιδέα)

    Δεν έχει νόημα να αυξήσουμε το δείκτη του μεγαλύτερουστοιχείου ή να μειώσουμε το δείκτη του μικρότερουστοιχείου, αφού το εύρος του διαστήματος θα αυξηθεί

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

    Επομένως για να πετύχουμε ενδεχόμενη μείωση τουδιαστήματος αυξάνουμε τον δείκτη του μικρότερου στοιχείου

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 9 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Ορθότητα ΄Εστω i1, i2 οι θέσεις που ελαχιστοποιούν τηνποσότητα με A1[i1] ≤ A2[i2]. Θα δειξουμε ότι ο αλγόριθμός μαςπερνά από αυτή την κατάσταση.

    ΄Εστω ότι φτάνουμε πρώτα στο στοιχείο i2. Τότε t1 = x < i1(αφού φτάνουμε πρώτα στο i2), όταν t2 = i2 (για πρώτηφορά). x < i1 ⇒ Ai[x] < Ai[1] ≤ A2[i2] και άρα αυξάνονταςτο μικρότερο, θα φτάσουμε στο i1.

    ΄Εστω ότι φτάνουμε πρώτα στο στοιχείο i1. Τότε t2 = x < i2όταν t1 = i1 (για πρώτη φορά). Αν κουνήσουμε τον t1 πριν οt2 φτάσει στο i2 (έστω t2 = y < i2 όταν συμβαίνει αυτό)⇒A1[i1] < A2[y] < A2[i2], άτοπο αφού θα είχαμεA2[y]−A1[i1] < A2[i2]−A1[i1]

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 10 / 34

  • ΄Ασκηση 2(α) Εύρεση Ελαχίστου Διαστήματος

    Ορθότητα ΄Εστω i1, i2 οι θέσεις που ελαχιστοποιούν τηνποσότητα με A1[i1] ≤ A2[i2]. Θα δειξουμε ότι ο αλγόριθμός μαςπερνά από αυτή την κατάσταση.

    ΄Εστω ότι φτάνουμε πρώτα στο στοιχείο i2. Τότε t1 = x < i1(αφού φτάνουμε πρώτα στο i2), όταν t2 = i2 (για πρώτηφορά). x < i1 ⇒ Ai[x] < Ai[1] ≤ A2[i2] και άρα αυξάνονταςτο μικρότερο, θα φτάσουμε στο i1.

    ΄Εστω ότι φτάνουμε πρώτα στο στοιχείο i1. Τότε t2 = x < i2όταν t1 = i1 (για πρώτη φορά). Αν κουνήσουμε τον t1 πριν οt2 φτάσει στο i2 (έστω t2 = y < i2 όταν συμβαίνει αυτό)⇒A1[i1] < A2[y] < A2[i2], άτοπο αφού θα είχαμεA2[y]−A1[i1] < A2[i2]−A1[i1]

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 10 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2], ... ,Am[1...nm]

    ΄Εξοδος: Θέσεις i1, i2, im ώστεmaxA1[i1], ..., Am[im]−minA1[i1], ..., Am[im] το ελάχιστο δυνατόΛύση: Μετακίνηση Δεικτών

    Παρατηρούμε ότι το να ελαχιστοποιήσουμε τη ζητούμενηποσότητα είναι ισοδύναμο με το να βρούμε ένα διάστημαελάχιστου μήκους που να περιέχει τουλάχιστον ένα στοιχείοαπό κάθε έναν από τους m πίνακεςΕπομένως μπορούμε να χρησιμοποιήσουμε την ίδια ιδέα πουείχαμε στο προηγούμενο ερώτημα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 11 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Είσοδος: Ταξινομημένοι πίνακες A1[1...n1], A2[1...n2], ... ,Am[1...nm]

    ΄Εξοδος: Θέσεις i1, i2, im ώστεmaxA1[i1], ..., Am[im]−minA1[i1], ..., Am[im] το ελάχιστο δυνατόΛύση: Μετακίνηση Δεικτών

    Παρατηρούμε ότι το να ελαχιστοποιήσουμε τη ζητούμενηποσότητα είναι ισοδύναμο με το να βρούμε ένα διάστημαελάχιστου μήκους που να περιέχει τουλάχιστον ένα στοιχείοαπό κάθε έναν από τους m πίνακεςΕπομένως μπορούμε να χρησιμοποιήσουμε την ίδια ιδέα πουείχαμε στο προηγούμενο ερώτημα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 11 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Δημιουργούμε ένα πίνακα με m θέσεις, κάθε θέση i τηναρχικοποιούμε με το πρώτο στοιχείο του AiΠροχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία όλωντων πινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, ..., imπου αντιστοιχούν στο ελάχιστοδιάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 12 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Δημιουργούμε ένα πίνακα με m θέσεις, κάθε θέση i τηναρχικοποιούμε με το πρώτο στοιχείο του AiΠροχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία όλωντων πινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, ..., imπου αντιστοιχούν στο ελάχιστοδιάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 12 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Δημιουργούμε ένα πίνακα με m θέσεις, κάθε θέση i τηναρχικοποιούμε με το πρώτο στοιχείο του AiΠροχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία όλωντων πινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, ..., imπου αντιστοιχούν στο ελάχιστοδιάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 12 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Δημιουργούμε ένα πίνακα με m θέσεις, κάθε θέση i τηναρχικοποιούμε με το πρώτο στοιχείο του AiΠροχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία όλωντων πινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, ..., imπου αντιστοιχούν στο ελάχιστοδιάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 12 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Δημιουργούμε ένα πίνακα με m θέσεις, κάθε θέση i τηναρχικοποιούμε με το πρώτο στοιχείο του AiΠροχωρούμε κατά 1 τον δείκτη που αντιστοιχεί στο μικρότεροστοιχείο

    Επαναλαμβάνουμε μέχρι να εξαντληθούν τα στοιχεία όλωντων πινάκων

    Κατά τη διάσχιση κρατάμε τους δείκτες που αντιστοιχούν στομικρότερο διάστημα

    Επιστρέφουμε i1, ..., imπου αντιστοιχούν στο ελάχιστοδιάστημα

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 12 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Πολυπλοκότητα: Σε κάθε επανάληψη θέλουμε χρόνο O(m)για να βρούμε ελάχιστο/μέγιστο στοιχείο από τον πίνακα με τις mθέσεις, συνολικά κάνουμε O(N) επαναλήψεις, άρα θέλουμε χρόνο(mN)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 13 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Ορθότητα: ΄Εστω i1, ..., im οι ζητούμενοι δείκτες των πινάκωνA1, ..., Am αντίστοιχα, με A1[i1] ≤ A2[i2] ≤ ... ≤ Am[im]

    Αν t1 ≤ i1 ⇒ tj ≤ ij ,∀j ≥ 2, όπου tj ο δείκτης στο τρέχονστοιχείο του Aj (λόγω του τρόπου αύξησης των δεικτών καιτης διάταξης που θεωρήσαμε)

    ΄Οταν t1 = i1 θεωρούμε, χωρίς βλάβη της γενικότητας, ότιA1[i1] = minjAj [tj ] (αφού προχωράμε όλους τους δείκτεςκάποια φορά θα φτάσει να είναι το min). Επίσης ∀tj , j ≥ 2,ισχύει Aj [tj ] ≤ Aj [ij ] ≤ Am[im]⇒ maxjAj [tj ] ≤ Am[im]΄Ετσι, το τρέχον διάστημα (A1[i1],maxjAj [tj ])) έχει εύρος≤ OPT . Επειδή δε γίνεται να είναι αυστηρά μικρότερο θαισχύει η ισότητα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 14 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Ορθότητα: ΄Εστω i1, ..., im οι ζητούμενοι δείκτες των πινάκωνA1, ..., Am αντίστοιχα, με A1[i1] ≤ A2[i2] ≤ ... ≤ Am[im]

    Αν t1 ≤ i1 ⇒ tj ≤ ij ,∀j ≥ 2, όπου tj ο δείκτης στο τρέχονστοιχείο του Aj (λόγω του τρόπου αύξησης των δεικτών καιτης διάταξης που θεωρήσαμε)

    ΄Οταν t1 = i1 θεωρούμε, χωρίς βλάβη της γενικότητας, ότιA1[i1] = minjAj [tj ] (αφού προχωράμε όλους τους δείκτεςκάποια φορά θα φτάσει να είναι το min). Επίσης ∀tj , j ≥ 2,ισχύει Aj [tj ] ≤ Aj [ij ] ≤ Am[im]⇒ maxjAj [tj ] ≤ Am[im]΄Ετσι, το τρέχον διάστημα (A1[i1],maxjAj [tj ])) έχει εύρος≤ OPT . Επειδή δε γίνεται να είναι αυστηρά μικρότερο θαισχύει η ισότητα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 14 / 34

  • ΄Ασκηση 2(β) Ελαχιστοποίηση Ποσότητας

    Ορθότητα: ΄Εστω i1, ..., im οι ζητούμενοι δείκτες των πινάκωνA1, ..., Am αντίστοιχα, με A1[i1] ≤ A2[i2] ≤ ... ≤ Am[im]

    Αν t1 ≤ i1 ⇒ tj ≤ ij ,∀j ≥ 2, όπου tj ο δείκτης στο τρέχονστοιχείο του Aj (λόγω του τρόπου αύξησης των δεικτών καιτης διάταξης που θεωρήσαμε)

    ΄Οταν t1 = i1 θεωρούμε, χωρίς βλάβη της γενικότητας, ότιA1[i1] = minjAj [tj ] (αφού προχωράμε όλους τους δείκτεςκάποια φορά θα φτάσει να είναι το min). Επίσης ∀tj , j ≥ 2,ισχύει Aj [tj ] ≤ Aj [ij ] ≤ Am[im]⇒ maxjAj [tj ] ≤ Am[im]΄Ετσι, το τρέχον διάστημα (A1[i1],maxjAj [tj ])) έχει εύρος≤ OPT . Επειδή δε γίνεται να είναι αυστηρά μικρότερο θαισχύει η ισότητα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 14 / 34

  • ΄Ασκηση 2(γ) Βελτίωση Επίδοσης

    Πρόβλημα: Εύρεση ελάχιστου/μέγιστου στοιχείου του πίνακαδεικτών σε O(m)

    Λύση: Χρήση σωρού

    Θέλουμε χρόνο O(m) για την αρχικοποίηση του σωρού

    Για κάθε εύρεση ελαχίστου και για κάθε εισαγωγή νέουστειχείου στο σωρό (από τη μετακίνηση του δείκτη) θέλουμεχρόνο O(logm)

    Για την εύρεση του μέγιστου στοιχείου (ώστε να ελέγχουμετο τρέχον διάστημα σε κάθε επανάληψη) δεν χρειάζεταισωρός, μπορούμε να υπολογίσουμε το αρχικό max σε χρόνοO(m) και σε κάθε επανάληψη συγκρίνουμε το νέο στοιχείο μετο παλαιό max.

    Επομένως χρειαζόμαστε συνολικό χρόνο O(N logm)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 15 / 34

  • ΄Ασκηση 2(γ) Βελτίωση Επίδοσης

    Πρόβλημα: Εύρεση ελάχιστου/μέγιστου στοιχείου του πίνακαδεικτών σε O(m)

    Λύση: Χρήση σωρού

    Θέλουμε χρόνο O(m) για την αρχικοποίηση του σωρού

    Για κάθε εύρεση ελαχίστου και για κάθε εισαγωγή νέουστειχείου στο σωρό (από τη μετακίνηση του δείκτη) θέλουμεχρόνο O(logm)

    Για την εύρεση του μέγιστου στοιχείου (ώστε να ελέγχουμετο τρέχον διάστημα σε κάθε επανάληψη) δεν χρειάζεταισωρός, μπορούμε να υπολογίσουμε το αρχικό max σε χρόνοO(m) και σε κάθε επανάληψη συγκρίνουμε το νέο στοιχείο μετο παλαιό max.

    Επομένως χρειαζόμαστε συνολικό χρόνο O(N logm)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 15 / 34

  • ΄Ασκηση 2(γ) Βελτίωση Επίδοσης

    Πρόβλημα: Εύρεση ελάχιστου/μέγιστου στοιχείου του πίνακαδεικτών σε O(m)

    Λύση: Χρήση σωρού

    Θέλουμε χρόνο O(m) για την αρχικοποίηση του σωρού

    Για κάθε εύρεση ελαχίστου και για κάθε εισαγωγή νέουστειχείου στο σωρό (από τη μετακίνηση του δείκτη) θέλουμεχρόνο O(logm)

    Για την εύρεση του μέγιστου στοιχείου (ώστε να ελέγχουμετο τρέχον διάστημα σε κάθε επανάληψη) δεν χρειάζεταισωρός, μπορούμε να υπολογίσουμε το αρχικό max σε χρόνοO(m) και σε κάθε επανάληψη συγκρίνουμε το νέο στοιχείο μετο παλαιό max.

    Επομένως χρειαζόμαστε συνολικό χρόνο O(N logm)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 15 / 34

  • ΄Ασκηση 2(γ) Βελτίωση Επίδοσης

    Πρόβλημα: Εύρεση ελάχιστου/μέγιστου στοιχείου του πίνακαδεικτών σε O(m)

    Λύση: Χρήση σωρού

    Θέλουμε χρόνο O(m) για την αρχικοποίηση του σωρού

    Για κάθε εύρεση ελαχίστου και για κάθε εισαγωγή νέουστειχείου στο σωρό (από τη μετακίνηση του δείκτη) θέλουμεχρόνο O(logm)

    Για την εύρεση του μέγιστου στοιχείου (ώστε να ελέγχουμετο τρέχον διάστημα σε κάθε επανάληψη) δεν χρειάζεταισωρός, μπορούμε να υπολογίσουμε το αρχικό max σε χρόνοO(m) και σε κάθε επανάληψη συγκρίνουμε το νέο στοιχείο μετο παλαιό max.

    Επομένως χρειαζόμαστε συνολικό χρόνο O(N logm)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 15 / 34

  • ΄Ασκηση 3 - Παίζοντας Χαρτιά

    Είσοδος: 6 3 5 2 4 1 (κορυφή τράπουλας 6)

    Round 1: Το 6 εκκινεί το παιχνίδι και δημιουργεί μία στοίβα.Round 2: Αφού 3 < 6, το 3 μπαίνει πάνω από το 6.63

    Round 3: Τώρα 5 > 3, άρα αναγκαστικά δημιουργούμε μία νέαστοίβα.6 53

    Round 4: Τραβάμε 2. Παρατηρείστε ότι η εξέλιξη του παιχνιδιούδεν είναι μοναδική :6 532

    ή6 53 2

    . . .

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 16 / 34

  • Ερώτημα 1

    Input : d = c1c2...cN(GS) GreedyStrategy (d = c1c2...cN ):

    Initialization : Δημιούργησε μία στοίβα με την κάρτα c1.

    Step : Τοποθετούμε την k-οστή κάρτα ck πάνω στην μικρότερηςαξίας κάρτα που είναι μεγαλύτερη από την ck. Διαφορετικά (αν δενυπάρχει τέτοια), ανοίγουμε νέα στοίβα και τοποθετούμε την ck τηνκορυφή της.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 17 / 34

  • Ερώτημα 1

    ΄Εστω ότι η GS δεν είναι η βέλτιστη στρατηγική. ΄Εστω OPTο βέλτιστος αλγόριθμος που δημιουργεί λιγότερες στοίβες.Ας υποθέσουμε, ότι σε κάποιον γύρο, οι δύο στρατηγικέςδιαφοροποιούνται. ΄Εστω ότι η άπληστη στρατηγική τοποθετείτο τρέχον φύλλο c στην στοίβα p, ενώ ο ΄βέλτιστος΄αλγόριθμος την τοποθετεί στην στοίβα q. (cp, cq top cards).

    c < cp < cq

    Μπορείτε να σχεδιάσετε στρατηγική OPT ′ που να αποδίδειτουλάχιστον όσο καλά αποδίδει η OPT?Strategy Stealing ArgumentTime Complexity : O(NlgN).Παρατήρηση : Σε κάθε βήμα του αλγορίθμου GS, ηακολουθία των top cards {ci,|pi|}mi=1 είναι άυξουσα απόαριστερά προς τα δεξιά και κάθε στοίβα είναι προφανώςφθίνουσα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 18 / 34

  • Ερώτημα 1

    ΄Εστω ότι η GS δεν είναι η βέλτιστη στρατηγική. ΄Εστω OPTο βέλτιστος αλγόριθμος που δημιουργεί λιγότερες στοίβες.Ας υποθέσουμε, ότι σε κάποιον γύρο, οι δύο στρατηγικέςδιαφοροποιούνται. ΄Εστω ότι η άπληστη στρατηγική τοποθετείτο τρέχον φύλλο c στην στοίβα p, ενώ ο ΄βέλτιστος΄αλγόριθμος την τοποθετεί στην στοίβα q. (cp, cq top cards).

    c < cp < cq

    Μπορείτε να σχεδιάσετε στρατηγική OPT ′ που να αποδίδειτουλάχιστον όσο καλά αποδίδει η OPT?Strategy Stealing ArgumentTime Complexity : O(NlgN).Παρατήρηση : Σε κάθε βήμα του αλγορίθμου GS, ηακολουθία των top cards {ci,|pi|}mi=1 είναι άυξουσα απόαριστερά προς τα δεξιά και κάθε στοίβα είναι προφανώςφθίνουσα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 18 / 34

  • Ερώτημα 1

    ΄Εστω ότι η GS δεν είναι η βέλτιστη στρατηγική. ΄Εστω OPTο βέλτιστος αλγόριθμος που δημιουργεί λιγότερες στοίβες.Ας υποθέσουμε, ότι σε κάποιον γύρο, οι δύο στρατηγικέςδιαφοροποιούνται. ΄Εστω ότι η άπληστη στρατηγική τοποθετείτο τρέχον φύλλο c στην στοίβα p, ενώ ο ΄βέλτιστος΄αλγόριθμος την τοποθετεί στην στοίβα q. (cp, cq top cards).

    c < cp < cq

    Μπορείτε να σχεδιάσετε στρατηγική OPT ′ που να αποδίδειτουλάχιστον όσο καλά αποδίδει η OPT?Strategy Stealing ArgumentTime Complexity : O(NlgN).Παρατήρηση : Σε κάθε βήμα του αλγορίθμου GS, ηακολουθία των top cards {ci,|pi|}mi=1 είναι άυξουσα απόαριστερά προς τα δεξιά και κάθε στοίβα είναι προφανώςφθίνουσα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 18 / 34

  • Ερώτημα 2

    Ιδέα Α : k−way merge - Time : O(Nlgk). Κάνε Merge (η οποίααντιστοιχεί στην 2-way merge) σε ζεύγη πινάκων και άρα, σε κάθεεπανάληψη, το πλήθος των πινάκων πέφτει στο μισό.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 19 / 34

  • Ερώτημα 2

    Ιδέα Β : Direct k-way merge - Time : Θ(Nlgk).Βήματα :

    ΄Εχοντας k στοίβες, δημιουργούμε ένα δέντρο σε Θ(k).

    Το δέντρο είναι balanced, άρα από τα φύλλα στην ρίζαΘ(lgk).

    Συνολικά, μεταφέρουμε N στοιχεία (φύλλα) άρα Θ(Nlgk).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 20 / 34

  • Ερώτημα 2

    Παράδειγμα :Είσοδος : 2 1 10 5 3 4 9 8 7 6.p1 = {1, 2}, p2 = {3, 5, 10}, p3 = {4}, p4 = {6, 7, 8, 9}Φτιάχνω balanced δέντρο με k = 4 φύλλα. Στο φύλλο leafi,τοποθετώ το min pi και το αφαιρώ από την αντίστοιχη λίστα. Ταφύλλα παίζουν ένα τουρνουά και ανεβάζω στην ρίζα το ελάχιστοόλων. Αν το ελάχιστο προήλθε από την λίστα pj , στην θέση τουleafj θέτω το νέο ελάχιστο της λίστας j.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 21 / 34

  • Ερώτημα 3

    Παράδειγμα :3 4 7 82 5 61

    B Στοίβες = 4B len(LIS) = 4 = length( 2→ 4→ 5→ 6) =length(3→ 4→ 5→ 6) = ....Αν παίξουμε σύμφωνα με την GS, τότε #piles = len(LIS).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 22 / 34

  • Ερώτημα 3

    Παράδειγμα :3 4 7 82 5 61

    B Στοίβες = 4B len(LIS) = 4 = length( 2→ 4→ 5→ 6) =length(3→ 4→ 5→ 6) = ....Αν παίξουμε σύμφωνα με την GS, τότε #piles = len(LIS).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 22 / 34

  • Ερώτημα 4

    Αν ci1 , ci2 , ..., ciL μία μέγιστη αύξουσα υπακολουθία τηςτράπουλας c1, ..., cN , τότε σύμφωνα με τους κανόνες τουπαιχνιδιού και έχοντας τοποθετήσει τις κάρτες ci1 , ci2 , .., cik , ητοποθέτηση της κάρτας cik μας επιβάλλει να ανοίξουμε νέα στοίβα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 23 / 34

  • Ερώτημα 5

    B Σε κάθε στάδιο του άπληστου αλγορίθμου, οι top cardsαποτελούν μία αύξουσα ακολουθία από αριστερά προς τα δεξιά.B Ισχύει :#piles ≥ length of any increasing subsequenceΓιατί; Σε κάθε στοίβα, οι κάρτες σχηματίζουν μία φθίνουσαακολουθία. Κάθε πιθανή αύξουσα ακολουθία χρησιμοποιεί το πολύένα φύλλο από κάθε στοίβα. Η ιδιότητα αυτή ονομάζεται weakduality.B min{#piles} = max{length of any increasing subsequence}και η GS τα υπολογίζει. Γιατί; Κάθε φορά που εισάγεται μίακάρτα σε κάποια στοίβα με id = p, τοποθετούμε έναν δείκτη προςτην κάρτα που βρίσκεται στην κορυφή της στοίβας με id = p− 1(στην αριστερή της). Ακολουθώντας τα μονοπάτια από αριστεράπρος τα δεξιά, σχηματίζουμε αύξουσες ακολουθίες. Αν αρχίσουμεαπό την δεξιότερη στοίβα, θα πάρουμε ακολουθία με μήκος όσο τοπλήθος των στοιβών. Από weak duality,οι δύο ποσότητες είναιoptimal. (strong duality).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 24 / 34

  • Ερώτημα 5

    B Σε κάθε στάδιο του άπληστου αλγορίθμου, οι top cardsαποτελούν μία αύξουσα ακολουθία από αριστερά προς τα δεξιά.B Ισχύει :#piles ≥ length of any increasing subsequenceΓιατί; Σε κάθε στοίβα, οι κάρτες σχηματίζουν μία φθίνουσαακολουθία. Κάθε πιθανή αύξουσα ακολουθία χρησιμοποιεί το πολύένα φύλλο από κάθε στοίβα. Η ιδιότητα αυτή ονομάζεται weakduality.B min{#piles} = max{length of any increasing subsequence}και η GS τα υπολογίζει. Γιατί; Κάθε φορά που εισάγεται μίακάρτα σε κάποια στοίβα με id = p, τοποθετούμε έναν δείκτη προςτην κάρτα που βρίσκεται στην κορυφή της στοίβας με id = p− 1(στην αριστερή της). Ακολουθώντας τα μονοπάτια από αριστεράπρος τα δεξιά, σχηματίζουμε αύξουσες ακολουθίες. Αν αρχίσουμεαπό την δεξιότερη στοίβα, θα πάρουμε ακολουθία με μήκος όσο τοπλήθος των στοιβών. Από weak duality,οι δύο ποσότητες είναιoptimal. (strong duality).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 24 / 34

  • Ερώτημα 5

    B Σε κάθε στάδιο του άπληστου αλγορίθμου, οι top cardsαποτελούν μία αύξουσα ακολουθία από αριστερά προς τα δεξιά.B Ισχύει :#piles ≥ length of any increasing subsequenceΓιατί; Σε κάθε στοίβα, οι κάρτες σχηματίζουν μία φθίνουσαακολουθία. Κάθε πιθανή αύξουσα ακολουθία χρησιμοποιεί το πολύένα φύλλο από κάθε στοίβα. Η ιδιότητα αυτή ονομάζεται weakduality.B min{#piles} = max{length of any increasing subsequence}και η GS τα υπολογίζει. Γιατί; Κάθε φορά που εισάγεται μίακάρτα σε κάποια στοίβα με id = p, τοποθετούμε έναν δείκτη προςτην κάρτα που βρίσκεται στην κορυφή της στοίβας με id = p− 1(στην αριστερή της). Ακολουθώντας τα μονοπάτια από αριστεράπρος τα δεξιά, σχηματίζουμε αύξουσες ακολουθίες. Αν αρχίσουμεαπό την δεξιότερη στοίβα, θα πάρουμε ακολουθία με μήκος όσο τοπλήθος των στοιβών. Από weak duality,οι δύο ποσότητες είναιoptimal. (strong duality).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 24 / 34

  • Ερώτημα 5

    B Σε κάθε στάδιο του άπληστου αλγορίθμου, οι top cardsαποτελούν μία αύξουσα ακολουθία από αριστερά προς τα δεξιά.B Ισχύει :#piles ≥ length of any increasing subsequenceΓιατί; Σε κάθε στοίβα, οι κάρτες σχηματίζουν μία φθίνουσαακολουθία. Κάθε πιθανή αύξουσα ακολουθία χρησιμοποιεί το πολύένα φύλλο από κάθε στοίβα. Η ιδιότητα αυτή ονομάζεται weakduality.B min{#piles} = max{length of any increasing subsequence}και η GS τα υπολογίζει. Γιατί; Κάθε φορά που εισάγεται μίακάρτα σε κάποια στοίβα με id = p, τοποθετούμε έναν δείκτη προςτην κάρτα που βρίσκεται στην κορυφή της στοίβας με id = p− 1(στην αριστερή της). Ακολουθώντας τα μονοπάτια από αριστεράπρος τα δεξιά, σχηματίζουμε αύξουσες ακολουθίες. Αν αρχίσουμεαπό την δεξιότερη στοίβα, θα πάρουμε ακολουθία με μήκος όσο τοπλήθος των στοιβών. Από weak duality,οι δύο ποσότητες είναιoptimal. (strong duality).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 24 / 34

  • Ερώτημα 5

    B Σε κάθε στάδιο του άπληστου αλγορίθμου, οι top cardsαποτελούν μία αύξουσα ακολουθία από αριστερά προς τα δεξιά.B Ισχύει :#piles ≥ length of any increasing subsequenceΓιατί; Σε κάθε στοίβα, οι κάρτες σχηματίζουν μία φθίνουσαακολουθία. Κάθε πιθανή αύξουσα ακολουθία χρησιμοποιεί το πολύένα φύλλο από κάθε στοίβα. Η ιδιότητα αυτή ονομάζεται weakduality.B min{#piles} = max{length of any increasing subsequence}και η GS τα υπολογίζει. Γιατί; Κάθε φορά που εισάγεται μίακάρτα σε κάποια στοίβα με id = p, τοποθετούμε έναν δείκτη προςτην κάρτα που βρίσκεται στην κορυφή της στοίβας με id = p− 1(στην αριστερή της). Ακολουθώντας τα μονοπάτια από αριστεράπρος τα δεξιά, σχηματίζουμε αύξουσες ακολουθίες. Αν αρχίσουμεαπό την δεξιότερη στοίβα, θα πάρουμε ακολουθία με μήκος όσο τοπλήθος των στοιβών. Από weak duality,οι δύο ποσότητες είναιoptimal. (strong duality).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 24 / 34

  • Ερώτημα 6

    B {1, 2, ...,mn + 1}. Εκτελούμε την GS για την τράπουλα μεmn + 1 φύλλα. Το πλήθος των στοιβών είναι όσο το len(LIS)και η κάθε στοίβα αντιστοιχεί σε μία φθίνουσα ακολουθία.B Erdős–Szekeres Theorem.B ([5,4,3,2,1], [10,9,8,7,6], ...)

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 25 / 34

  • ΄Ασκηση 4- Γρήγορη Επιλογή στο Πεδίο της Μάχης

    Ερώτημα 1: Μπορούμε να βρούμε με ακρίβεια τη θέσηοποιουδήποτε σωματιδίου οποιαδήποτε χρονική στιγμή σεO (1).Ερώτημα 2: Αν μας δοθούν 2 σωματίδια διαφορετικούτύπου, μπορούμε με ακρίβεια να βρούμε πότε θασυγκρούονταν (αν δεν γίνονταν οι εξαϋλώσεις) σε O (1).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 26 / 34

  • Ερώτημα 1

    Παρατηρούμε πως η πρώτη σύγκρουση θα πρέπει να γίνει

    κάποια στιγμή στο διάστημα[

    L2Vmax

    , L2Vmin

    ].

    Θεωρώντας κάποια ακρίβεια (πχ a = 10−4), έχουμε ένα

    σύνολο από 1a

    (L

    2Vmin− L2Vmax

    )+ 1 = Θ

    (L(

    1Vmin

    − 1Vmax))

    χρονικές στιγμές.

    Κάνουμε δυαδική αναζήτηση σε αυτό το χρονικό διάστημα.

    Αν κάποια στιγμή όλα τα σωματίδια της 1ης κατηγορίαςβρίσκονται πιο αριστερά από τα αντίστοιχα της 2ης, κοιτάμεμεταγενέστερες χρονικές στιγμές. Αλλιώς, κοιτάμεπρογενέστερες.

    Σε κάθε βήμα, O (n) χρόνος για να βρούμε τις θέσεις τωνστοιχείων =⇒ O

    (n log

    (L(

    1Vmin

    − 1Vmax)))

    συνολικά στη

    χειρότερη περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 27 / 34

  • Ερώτημα 1

    Παρατηρούμε πως η πρώτη σύγκρουση θα πρέπει να γίνει

    κάποια στιγμή στο διάστημα[

    L2Vmax

    , L2Vmin

    ].

    Θεωρώντας κάποια ακρίβεια (πχ a = 10−4), έχουμε ένα

    σύνολο από 1a

    (L

    2Vmin− L2Vmax

    )+ 1 = Θ

    (L(

    1Vmin

    − 1Vmax))

    χρονικές στιγμές.

    Κάνουμε δυαδική αναζήτηση σε αυτό το χρονικό διάστημα.

    Αν κάποια στιγμή όλα τα σωματίδια της 1ης κατηγορίαςβρίσκονται πιο αριστερά από τα αντίστοιχα της 2ης, κοιτάμεμεταγενέστερες χρονικές στιγμές. Αλλιώς, κοιτάμεπρογενέστερες.

    Σε κάθε βήμα, O (n) χρόνος για να βρούμε τις θέσεις τωνστοιχείων =⇒ O

    (n log

    (L(

    1Vmin

    − 1Vmax)))

    συνολικά στη

    χειρότερη περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 27 / 34

  • Ερώτημα 1

    Παρατηρούμε πως η πρώτη σύγκρουση θα πρέπει να γίνει

    κάποια στιγμή στο διάστημα[

    L2Vmax

    , L2Vmin

    ].

    Θεωρώντας κάποια ακρίβεια (πχ a = 10−4), έχουμε ένα

    σύνολο από 1a

    (L

    2Vmin− L2Vmax

    )+ 1 = Θ

    (L(

    1Vmin

    − 1Vmax))

    χρονικές στιγμές.

    Κάνουμε δυαδική αναζήτηση σε αυτό το χρονικό διάστημα.

    Αν κάποια στιγμή όλα τα σωματίδια της 1ης κατηγορίαςβρίσκονται πιο αριστερά από τα αντίστοιχα της 2ης, κοιτάμεμεταγενέστερες χρονικές στιγμές. Αλλιώς, κοιτάμεπρογενέστερες.

    Σε κάθε βήμα, O (n) χρόνος για να βρούμε τις θέσεις τωνστοιχείων =⇒ O

    (n log

    (L(

    1Vmin

    − 1Vmax)))

    συνολικά στη

    χειρότερη περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 27 / 34

  • Ερώτημα 1

    Παρατηρούμε πως η πρώτη σύγκρουση θα πρέπει να γίνει

    κάποια στιγμή στο διάστημα[

    L2Vmax

    , L2Vmin

    ].

    Θεωρώντας κάποια ακρίβεια (πχ a = 10−4), έχουμε ένα

    σύνολο από 1a

    (L

    2Vmin− L2Vmax

    )+ 1 = Θ

    (L(

    1Vmin

    − 1Vmax))

    χρονικές στιγμές.

    Κάνουμε δυαδική αναζήτηση σε αυτό το χρονικό διάστημα.

    Αν κάποια στιγμή όλα τα σωματίδια της 1ης κατηγορίαςβρίσκονται πιο αριστερά από τα αντίστοιχα της 2ης, κοιτάμεμεταγενέστερες χρονικές στιγμές. Αλλιώς, κοιτάμεπρογενέστερες.

    Σε κάθε βήμα, O (n) χρόνος για να βρούμε τις θέσεις τωνστοιχείων =⇒ O

    (n log

    (L(

    1Vmin

    − 1Vmax)))

    συνολικά στη

    χειρότερη περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 27 / 34

  • Ερώτημα 1

    Παρατηρούμε πως η πρώτη σύγκρουση θα πρέπει να γίνει

    κάποια στιγμή στο διάστημα[

    L2Vmax

    , L2Vmin

    ].

    Θεωρώντας κάποια ακρίβεια (πχ a = 10−4), έχουμε ένα

    σύνολο από 1a

    (L

    2Vmin− L2Vmax

    )+ 1 = Θ

    (L(

    1Vmin

    − 1Vmax))

    χρονικές στιγμές.

    Κάνουμε δυαδική αναζήτηση σε αυτό το χρονικό διάστημα.

    Αν κάποια στιγμή όλα τα σωματίδια της 1ης κατηγορίαςβρίσκονται πιο αριστερά από τα αντίστοιχα της 2ης, κοιτάμεμεταγενέστερες χρονικές στιγμές. Αλλιώς, κοιτάμεπρογενέστερες.

    Σε κάθε βήμα, O (n) χρόνος για να βρούμε τις θέσεις τωνστοιχείων =⇒ O

    (n log

    (L(

    1Vmin

    − 1Vmax)))

    συνολικά στη

    χειρότερη περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 27 / 34

  • Ερώτημα 2

    Απλή Λύση: Brute Force → δοκίμασε όλα τα n2 ζεύγη(πολυπλοκότητα O

    (n2)).

    Καλή Λύση: Quickselect στα σωματίδια της 1ηςκατηγορίας (πολυπλοκότητα O (n log (n))).Βέλτιστη Λύση: Quickselect στα σωματίδια και των 2κατηγοριών εναλλάξ (πολυπλοκότητα O (n)).

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 28 / 34

  • Ιδέα Καλής Λύσης (i)

    Επίλεξε τυχαία ένα σωματίδιο της 1ης κατηγορίας.

    Βρες πότε θα συγκρουόταν με καθένα από τα σωματίδια της2ης κατηγορίας (αν δεν είχαμε τις εξαϋλώσεις) και κράταεκείνο όπου αντιστοιχεί ο μικρότερος χρόνος σύγκρουσης(έστω j∗ το σωματίδιο και t∗ ο χρόνος).

    Ισχυρισμός: Δεν υπάρχουν σωματίδια της 2ης κατηγορίαςπου να βρίσκονται πιο αριστερά από το j∗ τη στιγμή t∗.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 29 / 34

  • Ιδέα Καλής Λύσης (i)

    Επίλεξε τυχαία ένα σωματίδιο της 1ης κατηγορίας.

    Βρες πότε θα συγκρουόταν με καθένα από τα σωματίδια της2ης κατηγορίας (αν δεν είχαμε τις εξαϋλώσεις) και κράταεκείνο όπου αντιστοιχεί ο μικρότερος χρόνος σύγκρουσης(έστω j∗ το σωματίδιο και t∗ ο χρόνος).

    Ισχυρισμός: Δεν υπάρχουν σωματίδια της 2ης κατηγορίαςπου να βρίσκονται πιο αριστερά από το j∗ τη στιγμή t∗.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 29 / 34

  • Ιδέα Καλής Λύσης (i)

    Επίλεξε τυχαία ένα σωματίδιο της 1ης κατηγορίας.

    Βρες πότε θα συγκρουόταν με καθένα από τα σωματίδια της2ης κατηγορίας (αν δεν είχαμε τις εξαϋλώσεις) και κράταεκείνο όπου αντιστοιχεί ο μικρότερος χρόνος σύγκρουσης(έστω j∗ το σωματίδιο και t∗ ο χρόνος).

    Ισχυρισμός: Δεν υπάρχουν σωματίδια της 2ης κατηγορίαςπου να βρίσκονται πιο αριστερά από το j∗ τη στιγμή t∗.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 29 / 34

  • Ιδέα Καλής Λύσης (ii)

    Πράγματι, αν υπήρχαν τέτοια σωματίδια, τότε το τυχαίαεπιλεγμένο σωματίδιο θα συγκρουόταν με καθένα από αυτάκάποια στιγμή t < t∗ (άτοπο).

    ΄Αρα, τα σωματίδια της 1ης κατηγορίας που βρίσκονταιαριστερά του σημείου σύγκρουσης δεν μπορούν νασυμμετέχουν στην πρώτη σύγκρουση (αφού κάθε στιγμήt < t∗ όλα τα σωματίδια της 2ης κατηγορίας θα βρίσκονταιπιο δεξιά).

    ΄Ετσι, μπορούμε τα σωματίδια αυτά να τα αγνοήσουμε.

    Επαναλαμβάνοντας το ίδιο όσες φορές χρειαστεί ώστε ναμείνει μόνο ένα σωματίδιο της 1ης κατηγορίας, μπορούμε μετάνα βρούμε με ποιο από αυτά της 2ης συγκρούεται πρώτα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 30 / 34

  • Ιδέα Καλής Λύσης (ii)

    Πράγματι, αν υπήρχαν τέτοια σωματίδια, τότε το τυχαίαεπιλεγμένο σωματίδιο θα συγκρουόταν με καθένα από αυτάκάποια στιγμή t < t∗ (άτοπο).

    ΄Αρα, τα σωματίδια της 1ης κατηγορίας που βρίσκονταιαριστερά του σημείου σύγκρουσης δεν μπορούν νασυμμετέχουν στην πρώτη σύγκρουση (αφού κάθε στιγμήt < t∗ όλα τα σωματίδια της 2ης κατηγορίας θα βρίσκονταιπιο δεξιά).

    ΄Ετσι, μπορούμε τα σωματίδια αυτά να τα αγνοήσουμε.

    Επαναλαμβάνοντας το ίδιο όσες φορές χρειαστεί ώστε ναμείνει μόνο ένα σωματίδιο της 1ης κατηγορίας, μπορούμε μετάνα βρούμε με ποιο από αυτά της 2ης συγκρούεται πρώτα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 30 / 34

  • Ιδέα Καλής Λύσης (ii)

    Πράγματι, αν υπήρχαν τέτοια σωματίδια, τότε το τυχαίαεπιλεγμένο σωματίδιο θα συγκρουόταν με καθένα από αυτάκάποια στιγμή t < t∗ (άτοπο).

    ΄Αρα, τα σωματίδια της 1ης κατηγορίας που βρίσκονταιαριστερά του σημείου σύγκρουσης δεν μπορούν νασυμμετέχουν στην πρώτη σύγκρουση (αφού κάθε στιγμήt < t∗ όλα τα σωματίδια της 2ης κατηγορίας θα βρίσκονταιπιο δεξιά).

    ΄Ετσι, μπορούμε τα σωματίδια αυτά να τα αγνοήσουμε.

    Επαναλαμβάνοντας το ίδιο όσες φορές χρειαστεί ώστε ναμείνει μόνο ένα σωματίδιο της 1ης κατηγορίας, μπορούμε μετάνα βρούμε με ποιο από αυτά της 2ης συγκρούεται πρώτα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 30 / 34

  • Ιδέα Καλής Λύσης (ii)

    Πράγματι, αν υπήρχαν τέτοια σωματίδια, τότε το τυχαίαεπιλεγμένο σωματίδιο θα συγκρουόταν με καθένα από αυτάκάποια στιγμή t < t∗ (άτοπο).

    ΄Αρα, τα σωματίδια της 1ης κατηγορίας που βρίσκονταιαριστερά του σημείου σύγκρουσης δεν μπορούν νασυμμετέχουν στην πρώτη σύγκρουση (αφού κάθε στιγμήt < t∗ όλα τα σωματίδια της 2ης κατηγορίας θα βρίσκονταιπιο δεξιά).

    ΄Ετσι, μπορούμε τα σωματίδια αυτά να τα αγνοήσουμε.

    Επαναλαμβάνοντας το ίδιο όσες φορές χρειαστεί ώστε ναμείνει μόνο ένα σωματίδιο της 1ης κατηγορίας, μπορούμε μετάνα βρούμε με ποιο από αυτά της 2ης συγκρούεται πρώτα.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 30 / 34

  • Ανάλυση Πολυπλοκότητας

    Μετά από κάθε βήμα, με μεγάλη πιθανότητα θεωρούμε πωςμένουν το πολύ τα 34 των σωματιδίων της 1ης κατηγορίας (βλ.ανάλυση Quickselect).

    ΄Αρα, έχουμε O (log (n)) επαναλήψεις.Σε κάθε επανάληψη, κάνουμε μία γραμμική αναζήτηση σταστοιχεία της 2ης κατηγορίας όπου κάθε σύγκρουσηυπολογίζεται σε O (1) χρόνο (άρα O (n) συνολικά).Για τα σωματίδια της 1ης κατηγορίας (που σε κάθε επανάληψηείναι ≤ n), υπολογίζουμε τη στιγμή που συγκρούονται με τοj∗. Αν είναι > t∗ καταλαβαίνουμε πως είναι αριστερά από τοσημείο σύγκρουσης, οπότε ξεσκαρτάρονται.

    Συνολικός Χρόνος: O (n log (n)) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 31 / 34

  • Ανάλυση Πολυπλοκότητας

    Μετά από κάθε βήμα, με μεγάλη πιθανότητα θεωρούμε πωςμένουν το πολύ τα 34 των σωματιδίων της 1ης κατηγορίας (βλ.ανάλυση Quickselect).

    ΄Αρα, έχουμε O (log (n)) επαναλήψεις.Σε κάθε επανάληψη, κάνουμε μία γραμμική αναζήτηση σταστοιχεία της 2ης κατηγορίας όπου κάθε σύγκρουσηυπολογίζεται σε O (1) χρόνο (άρα O (n) συνολικά).Για τα σωματίδια της 1ης κατηγορίας (που σε κάθε επανάληψηείναι ≤ n), υπολογίζουμε τη στιγμή που συγκρούονται με τοj∗. Αν είναι > t∗ καταλαβαίνουμε πως είναι αριστερά από τοσημείο σύγκρουσης, οπότε ξεσκαρτάρονται.

    Συνολικός Χρόνος: O (n log (n)) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 31 / 34

  • Ανάλυση Πολυπλοκότητας

    Μετά από κάθε βήμα, με μεγάλη πιθανότητα θεωρούμε πωςμένουν το πολύ τα 34 των σωματιδίων της 1ης κατηγορίας (βλ.ανάλυση Quickselect).

    ΄Αρα, έχουμε O (log (n)) επαναλήψεις.Σε κάθε επανάληψη, κάνουμε μία γραμμική αναζήτηση σταστοιχεία της 2ης κατηγορίας όπου κάθε σύγκρουσηυπολογίζεται σε O (1) χρόνο (άρα O (n) συνολικά).Για τα σωματίδια της 1ης κατηγορίας (που σε κάθε επανάληψηείναι ≤ n), υπολογίζουμε τη στιγμή που συγκρούονται με τοj∗. Αν είναι > t∗ καταλαβαίνουμε πως είναι αριστερά από τοσημείο σύγκρουσης, οπότε ξεσκαρτάρονται.

    Συνολικός Χρόνος: O (n log (n)) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 31 / 34

  • Ανάλυση Πολυπλοκότητας

    Μετά από κάθε βήμα, με μεγάλη πιθανότητα θεωρούμε πωςμένουν το πολύ τα 34 των σωματιδίων της 1ης κατηγορίας (βλ.ανάλυση Quickselect).

    ΄Αρα, έχουμε O (log (n)) επαναλήψεις.Σε κάθε επανάληψη, κάνουμε μία γραμμική αναζήτηση σταστοιχεία της 2ης κατηγορίας όπου κάθε σύγκρουσηυπολογίζεται σε O (1) χρόνο (άρα O (n) συνολικά).Για τα σωματίδια της 1ης κατηγορίας (που σε κάθε επανάληψηείναι ≤ n), υπολογίζουμε τη στιγμή που συγκρούονται με τοj∗. Αν είναι > t∗ καταλαβαίνουμε πως είναι αριστερά από τοσημείο σύγκρουσης, οπότε ξεσκαρτάρονται.

    Συνολικός Χρόνος: O (n log (n)) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 31 / 34

  • Ανάλυση Πολυπλοκότητας

    Μετά από κάθε βήμα, με μεγάλη πιθανότητα θεωρούμε πωςμένουν το πολύ τα 34 των σωματιδίων της 1ης κατηγορίας (βλ.ανάλυση Quickselect).

    ΄Αρα, έχουμε O (log (n)) επαναλήψεις.Σε κάθε επανάληψη, κάνουμε μία γραμμική αναζήτηση σταστοιχεία της 2ης κατηγορίας όπου κάθε σύγκρουσηυπολογίζεται σε O (1) χρόνο (άρα O (n) συνολικά).Για τα σωματίδια της 1ης κατηγορίας (που σε κάθε επανάληψηείναι ≤ n), υπολογίζουμε τη στιγμή που συγκρούονται με τοj∗. Αν είναι > t∗ καταλαβαίνουμε πως είναι αριστερά από τοσημείο σύγκρουσης, οπότε ξεσκαρτάρονται.

    Συνολικός Χρόνος: O (n log (n)) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 31 / 34

  • Ιδέα Βέλτιστης Λύσης

    Ο λόγος που πριν είχαμε πολυπλοκότητα O (n log (n)) ήτανεπειδή έπρεπε να κάνουμε γραμμική αναζήτηση στα σωματίδιατης 2ης κατηγορίας (που ήταν πάντα n).

    Χρησιμοποιούμε την ίδια τεχνική με την προηγούμενη λύση,αλλά την εφαρμόζουμε εναλλάξ στα σωματίδια και των 2κατηγοριών.

    Μειώνεται παράλληλα το πλήθος των υποψήφιων σωματιδίωνκαι από τις 2 κατηγορίες.

    Τελική Πολυπλοκότητα: O (n) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 32 / 34

  • Ιδέα Βέλτιστης Λύσης

    Ο λόγος που πριν είχαμε πολυπλοκότητα O (n log (n)) ήτανεπειδή έπρεπε να κάνουμε γραμμική αναζήτηση στα σωματίδιατης 2ης κατηγορίας (που ήταν πάντα n).

    Χρησιμοποιούμε την ίδια τεχνική με την προηγούμενη λύση,αλλά την εφαρμόζουμε εναλλάξ στα σωματίδια και των 2κατηγοριών.

    Μειώνεται παράλληλα το πλήθος των υποψήφιων σωματιδίωνκαι από τις 2 κατηγορίες.

    Τελική Πολυπλοκότητα: O (n) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 32 / 34

  • Ιδέα Βέλτιστης Λύσης

    Ο λόγος που πριν είχαμε πολυπλοκότητα O (n log (n)) ήτανεπειδή έπρεπε να κάνουμε γραμμική αναζήτηση στα σωματίδιατης 2ης κατηγορίας (που ήταν πάντα n).

    Χρησιμοποιούμε την ίδια τεχνική με την προηγούμενη λύση,αλλά την εφαρμόζουμε εναλλάξ στα σωματίδια και των 2κατηγοριών.

    Μειώνεται παράλληλα το πλήθος των υποψήφιων σωματιδίωνκαι από τις 2 κατηγορίες.

    Τελική Πολυπλοκότητα: O (n) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 32 / 34

  • Ιδέα Βέλτιστης Λύσης

    Ο λόγος που πριν είχαμε πολυπλοκότητα O (n log (n)) ήτανεπειδή έπρεπε να κάνουμε γραμμική αναζήτηση στα σωματίδιατης 2ης κατηγορίας (που ήταν πάντα n).

    Χρησιμοποιούμε την ίδια τεχνική με την προηγούμενη λύση,αλλά την εφαρμόζουμε εναλλάξ στα σωματίδια και των 2κατηγοριών.

    Μειώνεται παράλληλα το πλήθος των υποψήφιων σωματιδίωνκαι από τις 2 κατηγορίες.

    Τελική Πολυπλοκότητα: O (n) στη μέση περίπτωση.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 32 / 34

  • ΄Ασκηση 5 - Κρυμμένος Θησαυρός

    Amortized Ανάλυση:Παίζουμε σε γύρους.

    Στον γύρο i έχουμε ψάξει τους ακέραιους σε απόσταση 2i.

    Σε κάθε γύρο i ξεκινάμε από το 0 και πηγαίνουμε μέχρι το−2i, μετά στο 2i και μετά στο 0 πάλι ⇒ 4 · 2i βήματα

    Συνολικά:n∑

    i=0

    Θ(2i) = Θ(2n)

    Οπότε για να βρούμε τον θησαυρό σε απόσταση |x|, πρέπει ναφτάσουμε στον γύρο n, όπου 2n είναι η επόμενη δύναμη του 2μετά το |x|. ΄Αρα 2n < 2|x|.

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 33 / 34

  • ΄Ασκηση 5 - Κρυμμένος Θησαυρός

    Λύση με καλύτερο παράγοντα.

    ΄Ιδια λογική, αλλά σε κάθε γύρο i ξεκινάμε είτε από το −2i−1,είτε από το 2i.

    Ας υποθέσουμε ότι ξεκινάμε από το −2i−1, και πάμε στο −2iκαι μετά στο 2i. ΄Εχουμε εξευρενήσει όλα τα σημεία σεαπόσταση 2i και κάνουμε συνολικά 5 · 2i−1 βήματα.

    Συνολικά: 3 +n∑

    i=1

    5 · 2i−1 = 5 · 2n − 2

    Για τον τελικό γύρο n ισχύει 2n−1 < |x| ≤ 2n.

    Συνολικά βήματα: 5 · 2n − 2 < 10|x| − 2

    Αλγόριθμοι 1η Σειρά Γραπτών Ασκήσεων 34 / 34