SlideShare ist ein Scribd-Unternehmen logo
1 von 10
Downloaden Sie, um offline zu lesen
Αλγόριθµοι & Πολυπλοκότητα

    1ο Σύνολο Ασκήσεων




Γιαννούσης Κωνσταντίνος (ΑΜ 1115201000225)
   Τµήµα Πληροφορικής & Τηλεπικοινωνιών
Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών




  copyright © 2011 by Constantine Yannoussis
1
Ποια είναι η ελάχιστη τιµή του n για την οποία ένας αλγόριθµος µε χρόνο
εκτέλεσης 100n2 εκτελείται γρηγορότερα από έναν αλγόριθµο µε χρόνο εκτέ-
λεσης 2n στην ίδια µηχανή ;



    Αυτό που Ϲητάµε ουσιαστικά είναι για ποια ελάχιστη τιµή του n ισχύει η
ανισότητα 100n2 < 2n .
    Για να µπορέσουµε να ϐρούµε την ελάχιστη τιµή του n δουλεύουµε παίρ-
νοντας την ισότητα 100n2 = 2n . Θέλουµε δηλαδή αρχικά να ϐρούµε για ποια
τιµή οι δύο χρόνοι εκτέλεσης είναι ίσοι.
    Θεωρούµε λοιπόν τη συνάρτηση f (n) = 100n2 − 2n . Από την λύση της
εξίσωσης f (n) = 0 ϐρίσκουµε τις ϱίζες δηλαδή τις τιµές όπου οι δυο χρόνοι
είναι ίσοι. Κατόπιν ϑα ελέγξουµε τις πλησιέστερες ακέραιες τιµές στις ϱίζες
για να ϐρούµε αυτές που να ικανοποιούν τη Ϲητούµενη ανίσωση.
    ΄Ετσι, µετά από υπολογισµούς καταλήγουµε σε τρεις ϱίζες της εξίσωσης
100n2 − 2n :
                              n1 0.103658
                              n2 −0.096704
                              n3  14.3247
    ΄Οπως ϕαίνεται, µεταξύ των ϱιζών n1 και n2 υπάρχει µοναδικός ακέραιος
το 0 ο οποίος όµως δεν ανήκει στην f (n). Επίσης, για αρνητικές τιµές του
n γίνεται άµεσα αντιληπτό πως δεν ικανοποιείται η Ϲητούµενη ανίσωση. ΄Ε-
τσι καταφεύγουµε στην τρίτη ϱίζα, την n3 , και ελέγχουµε τις ακέραιες τιµές
εκατέρωθεν της ϱίζας αυτής, δηλαδή, τις τιµές n = 14 και n = 15:

    • Για n = 14 έχουµε :
      100 · 142 = 19600
      214 = 16384
      ∆ηλαδή, 100n2 > 2n .

    • Για n = 15 έχουµε :
      100 · 152 = 22500
      215 = 32768
      ∆ηλαδή, ισχύει η Ϲητούµενη ανίσωση 100n2 < 2n .

   Αν συνεχίζαµε τον έλεγχο και για πιο µεγάλες τιµές του n ϑα παρατηρού-
σαµε ότι ϑα εξακολουθούσε να ισχύει η ανίσωση.
   Συνεπώς, στο πρόβληµά µας, η µικρότερη ακέραια τιµή του n για την
οποία ισχύει ότι ο χρόνος εκτέλεσης 100n2 εκτελείται γρηγορότερα από το
χρόνο εκτέλεσης 2n στην ίδια µηχανή, είναι η n = 15.




                                    1
2
Για κάθε συνάρτηση f (n) και χρόνο t στον παρακάτω πίνακα, ϐρείτε το µέ-
γιστο µέγεθος n του στιγµιοτύπου ενός προβλήµατος που µπορεί να λυθεί σε
χρόνο t, υποθέτοντας ότι ο αλγόριθµος που λύνει το πρόβληµα απαιτεί f (n)
microseconds.

 f (n)t    1 δευτερόλεπτο            1 λεπτό               1 ώρα

                       6                     7                    9
 log n             210                 26·10                23.6·10
 n                 106                6 · 107              3.6 · 109
 nlogn           62746.1           2.80142 · 106
                                     √                   6.0482 · 107
 n2                103                 60 · 103             6 · 104
 2n              log 106            log(6 · 107 )       log(3.6 · 109 )

3
΄Εστω f, f1 , f2 , g, g1 , g2 , h ϑετικές συναρτήσεις. Αποφασίστε αν οι παρακάτω
προτάσεις είναι αληθείς ή ψευδείς. ∆ικαιολογήστε τις απαντήσεις σας.

    1. f (n) = Ω(g(n)) ⇒ g(n) = O(f (n))
       Από τον ορισµό του Ω(g(n)) ισχύει ότι f (n) = Ω(g(n)) αν υπάρχουν
       ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| ≥ c|g(n)| για κάθε n > k .
       Οπότε αφού c > 0 τότε ϑα ισχύει και 1 |f (n)| ≥ |g(n)| για κάθε n > k .
                                           c
       Συνεπώς, αν ϑέσουµε c = 1 τότε ϑα ισχύει |g(n)| ≤ c |f (n)| για κάθε
                                 c
       n > k.
       ∆ηλαδή, σύµφωνα µε τον ορισµό του Big − O notation πρόταση f (n) =
       Ω(g(n)) ⇒ g(n) = O(f (n)) είναι αληθής.

    2. n! = Θ(n log n)
       ΄Εστω ότι ισχύει n! = Θ(n log n). Εποµένως, n! = O(n log n), ΄Εστω
       συνάρτηση g(n) = 2n . Αποδεικνύεται ότι g(n) = O(n!)
       ( 2n = 2 · 2 · . . . 2 ≤ 2 · 3 · . . . n = n!)
                  n times
       οπότε κατ΄ επέκταση ϑα ισχύει και 2n = O(n log n). Κάτι τέτοιο όµως
       είναι άτοπο, εποµένως η αρχική πρόταση δεν ισχύει.

    3. f (n) = ω(g(n)) ⇒ f (n) = Ω(g(n))
       Από τον ορισµό του ω(g(n)) ισχύει ότι f (n) = ω(g(n)) αν υπάρχουν
       ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| > c|g(n)| για κάθε n > k .
       Αφού λοιπόν έχουµε από τα δεδοµένα ότι αυτό ισχύει, δηλαδή ότι |f (n)| >
       c|g(n)| ϑα ισχύει και ότι για c , k ϑετικές σταθερές έχουµε |f (n)| ≥
       c |g(n)| για κάθε n > k . Θα έχουµε δηλαδή ότι ισχύει f (n) = Ω(g(n)).

                                                 2
4. Αν f (n) = O(g(n)) και f (n) = Ω(h(n)) ⇒ g(n) = Θ(h(n))
  Από τον ορισµό του Big-O notation έχουµε ότι f (n) = O(g(n)) ισχύει
  όταν υπάρχουν ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| ≤ c|g(n)|
  για κάθε n > k .
  Επίσης από τον ορισµό του Big-Ω notation έχουµε ότι f (n) = Ω(h(n))
  ισχύει όταν υπάρχουν ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| ≥
  c |h(n)| για κάθε n > k .
  Για να ισχύει λοιπόν το g(n) = Θ(h(n)), ϑα πρέπει να δείξουµε ότι
  ισχύει g(n) = O(h(n)) και ταυτόχρονα g(n) = Ω(h(n)).
  Από τα δεδοµένα έχουµε ότι f (n) = O(g(n)), δηλαδή ότι και g(n) =
  Ω(f (n)) (ϐλέπε απόδειξη 1 ίδιας άσκησης). Επίσης από τα δεδοµένα
  έχουµε f (n) = Ω(h(n)). ΄Ετσι ϑα υπάρχουν c και k ϑετικά τέτοια
  ώστε να ισχύει και |g(n)| ≥ c|f (n)| ≥ c |h(n)| ⇒ |g(n)| ≥ c |h(n)|,
  δηλαδή, g(n) = Ω(h(n)).
  ΄Οµως ϕαίνεται ότι το αντίθετο δεν ισχύει, δηλαδή, δεν ισχύει ότι g(n) =
  O(h(n)). Θα προσπαθήσουµε να δείξουµε ότι δεν ισχύει µε ένα αντιπα-
  ϱάδειγµα.
  ΄Εστω, οι συναρτήσεις h(n) = log n, f (n) = n και g(n) = n log n.
  Εύκολα αποδεικνύουµε ότι οι συναρτήσεις είναι της µορφής που Ϲητάµε,
  δηλαδή ισχύει f (n) = Ω(h(n)) και f (n) = O(g(n)) που είναι και η
  αρχική συνθήκη και συνεπώς ισχύει και το συµπέρασµα ότι g(n) =
  Ω(h(n)) που δείξαµε πιο πάνω.
  ΄Εστω ότι ισχύει η συνθήκη ότι g(n) = O(h(n)), ότι δηλαδή, n log n =
  O(log n). Υπάρχουν λοιπόν ϑετικά l και m τέτοια ώστε |n log n| ≤
  l| log n| για κάθε n > m. ΄Οταν n ≤ l η σχέση αυτή ϕαίνεται να ι-
  σχύει, αφού µιλάµε για ϑετικές ποσότητες. ΄Οταν όµως το n αυξάνει ενώ
  το l είναι µια σταθερή ποσότητα και κάποια στιγµή ϑα είναι n > l, οπότε
  η ανισότητα |n log n| ≤ l| log n| δεν ϑα ισχύει. ΄Ετσι µπορούµε να πούµε
  ότι τελικά η ανισότητα |n log n| ≤ l| log n| δεν ισχύει για κάθε n > k , και
  εποµένως δεν ισχύει η αρχική συνθήκη.
  Συνεπώς, η πρόταση δεν είναι αληθής.

5. 4n2 + 5n − 9 = Ω(10n2 )
  Από τη ϑεωρία γνωρίζουµε ότι µια πολυωνυµική συνάρτηση έχει τάξη
  (Θ) τον όρο µε το µεγαλύτερο εκθέτη.
  Συνεπώς, η τάξη της f (n) = 4n2 + 5n − 9 = Θ(n2 ). Αυτό σηµαίνει
  επίσης ότι, f (n) = Ω(n2 ).
  Κατά τον ίδιο τρόπο g(n) = 10n2 = Θ(n2 ) και εποµένως g(n) = Ω(n2 ).
  Οπότε η πρόταση ισχύει.



                                    3
6. log(n!) = Θ(n log n)
   Στο πρώτο ϐήµα της απόδειξης, ϑα δείξουµε ότι ισχύει log(n!) = O(n log n).

                 n! = 1 · 2 . . . n − 1 · n ≤ n · n . . . n ⇒ n! ≤ nn

   Εποµένως
                           log n! ≤ log nn ⇒ log n! ≤ n log n
   ΄Ετσι υπάρχουν ϑετικές ποσότητες c, k τέτοιες ώστε | log n!| ≤ c|n log n|,
   για κάθε n ≥ k , δηλαδή, ισχύει ότι log(n!) = O(n log n).
   Αφού αποδείξαµε το πρώτο µέρος, αποµένει να δείξουµε ότι ισχύει και
   log(n!) = Ω(n log n).
   ΄Ετσι,
                     n n            n              n n     nn2
                n! ≥    · ( + 1) · ( + 2) · . . . ( + ) ≥      ⇒
                     2 2            2              2  2    2
                               nn2              n    n
                          n! ≥     ⇒ log n! ≥ log ⇒
                               2                2    2
                            n                   1        1
                     n! ≥ (log n − log 2) = n log n − n
                            2                   2        2
   Εποµένως υπάρχουν ϑετικές ποσότητες c , k τέτοιες ώστε | log n!| ≥
   c|n log n|, για κάθε n ≥ k , δηλαδή, ισχύει ότι log(n!) = Ω(n log n).
   Συνεπώς η πρόταση είναι αληθής.

7. f (n) + g(n) = Θ(min(g(n), f (n)))
   Γνωρίζουµε ότι ισχύει το f (n) = Θ(f (n)) και g(n) = Θ(g(n)). Επίσης
   ισχύει ότι f (n) + g(n) = Ω(min(g(n), f (n))). Συνεπώς για να ισχύει η
   πρόταση ϑα πρέπει να ισχύει ότι f (n) + g(n) = O(min(g(n), f (n))).
   ΄Εστω ότι f (n) + g(n) = O(min(g(n), f (n))) ισχύει. Οπότε έστω οι
   συναρτήσεις f (n) = n και g(n) = 2n . Συνεπώς min(f (n), g(n)) =
   f (n) = n. ΄Αρα από την αρχική υπόθεση ϑα είναι n + 2n = O(n). Κάτι
   τέτοιο δεν ισχύει οπότε και η πρόταση f (n)+g(n) = O(min(g(n), f (n)))
   δεν ισχύει.
   Συνεπώς, και η αρχική πρόταση δεν ισχύει.
            √          √
8. n + 2 n = Ω(n n)
   Από το ϑεώρηµα ισχύει ότι f (n) + g(n) = Ω(min(g(n), f (n))). Επίσης,
                            √                             √
   αν f (n) = n και g(n) = 2 n, τότε, min(f (n), g(n)) = 2 n = g(n), για
   κάθε n > 4.
                                                  √
   Οπότε αρκεί να δείξουµε ότι η g(n) = Ω(n n). ΄Εστω ότι ισχύει g(n) =
      √
   Ω(n n). ∆ηλαδή υπάρχουν ϑετικές ποσότητες c, k τέτοιες ώστε |g(n)| ≥
      √
   c|n n|, για κάθε n > k . ΄Εχουµε δηλαδή,
                                   √       √        √
                       |g(n)| ≥ c|n n| ⇒ |2 n| ≥ c|n n| ⇒

                                        4
√    c √       √         √
                              | n| ≥ |n n| ⇒ | n| ≥ c |n n|
                                    2
        Κάτι τέτοιο είναι άτοπο για ϑετικές ποσότητες οπότε ισχύει η πρόταση
                    √
        g(n) = Ω(n n) και συνεπώς ισχύει η αρχική πρόταση.

    9. Αν f (n) = O(g(n)) και g(n) = Ω(f (n)) ⇒ f (n) = Θ(g(n))
        Για να ισχύει η πρόταση αυτή ϑα έπρεπε να ισχύει f (n) = O(g(n)) και
        g(n) = O(f (n)). ΄Οµως επειδή δεν γνωρίζουµε αν g(n) = O(f (n)),
        αλλά µόνο ότι g(n) = Ω(f (n)) τότε η πρόταση δεν ισχύει.
        Αν η πρόταση µας έλεγε ότι ισχύει f (n) = O(g(n)) και g(n) = Θ(f (n))
        τότε η πρόταση ϑα ήταν αληθής.


4
Χωρίστε τη λίστα των συναρτήσεων σε κλάσεις, τέτοιες ώστε οι f (n) και g(n)
να ανήκουν στην ίδια κλάση αν και µόνο αν f (n) = Θ(g(n)). Στη συνέχεια
επιλέξτε έναν εκπρόσωπο από κάθε κλάση και κατατάξτε τους κατά αύξουσα
σειρά πολυπλοκότητας

          n                 n2 −n               n
    •             = ... =     2     οπότε            = Θ(n2 )
          2                                     2

    • n log n = Θ(n log n)
          n   1
    •     k=1 k    = log n + c = Θ(log n)

    • 8n2 = Θ(n2 )
            √                               1
    • log       log n = log(log n)1/2 =     2   log log n = Θ(log log n)

    • n! = Θ(n!)

    • log log n = Θ(log log n)

    • nlog n = Θ(nlog n )

    • log n! = Θ(n log n)
                                2
    • 4log n = 22 log n = 2log n = n2 = Θ(n2 )

          n        n
    •     k=0           = 2n = Θ(2n )
                   k
          2
    • 2log n = 2log n log n = nlog n = Θ(nlog n )

    • 10100 = Θ(10100 )

    • 2n = Θ(2n )


                                                 5
• log n = Θ(log n)
       √                             1/2         √      √
    • ( 2)log n = 21/2 log n = 2log n    = n1/2 = n = Θ( n)

    • (n − 1)! = Θ((n − 1)!)

    • log nn = n log n = Θ(n log n)

    • 5800 = Θ(5800 )
        √            √
    • 5 n = Θ( n)

    Οπότε κατηγοριοποιώντας έχουµε :

         n
    •             = 8n2 = 4log n = Θ(n2 )
         2

    • n log n = log n! = log nn = Θ(n log n)
            √
    • log       log n = log log n = Θ(log log n)
                   2
    • nlog n = 2log n = Θ(nlog n )
        √                √        √
    • ( 2)log n = 5 n = Θ( n)

         n         n
    •    k=0             = 2n = Θ(2n )
                   k

    • 5800 = 10100 = Θ(1)

    • (n − 1)! = Θ((n − 1)!)

    • n! = Θ(n!)
                     n   1
    • log n =        k=1 k   = Θ(log n)

   Αν επιλέξουµε έναν αντιπρόσωπο από κάθε κλάση µπορούµε να ταξινοµή-
σουµε τις κλάσεις ως εξής :


                               √
    10100 , log log n, log n, 5 n, n log n, 8n2 , nlog n , 2n , (n − 1)!, n!


5
Για κάθε Ϲεύγος εκφράσεων (A, B) του παρακάτω πίνακα αποφασίστε αν το
Α είναι Ο, ο, Ω, ω ή Θ του Β. Υποθέστε ότι οι k ≥ 1,          > 0 και c > 1
είναι σταθερές. Απαντήστε σηµειώνοντας ένα `ναι΄ ή ένα `όχι΄ σε κάθε ϑέση του
πίνακα.



                                            6
Α         Β        Ο         ο       Ω     ω       Θ

     a.   logk n      n        ναι       ναι
     b.     nk        cn       ναι       ναι
     c.     2n      2n/2                         ναι   ναι
     d.    nlog c   clog n     ναι               ναι         ναι

                         A
Παίρνουµε το όριο limn→∞ B . ΄Ετσι έχουµε,

a.
                              logk n ∞      k logk−1 n ·           1
                                                                   n
                             lim    = ∞ lim                            =
                           n→∞ n        n→∞      n −1
                                  k logk−1 n               k!
                              lim            = . . . = lim k
                              n→∞      n              n→∞    n
     Οπότε,
                                                  k!       1
                                          lim          =     =0
                                         n→∞ k n           ∞

     Εποµένως, logk n = o(n ) ⇒ logk n = O(n ).

b.
                                      nk ∞          knk−1  ∞
                                   lim   = ∞ lim n        =∞
                               n→∞ cn        n→∞ c · ln c

                                               k!       1
                               . . . = lim            =   =0
                                       n→∞ cn · lnk c   ∞

     Εποµένως, nk = o(cn ) ⇒ nk = O(cn ).

c.
                         2n        2n/2+n/2       2n/2 2n/2
                     lim     = lim          = lim           =
                    n→∞ 2n/2  n→∞    2n/2    n→∞    2n/2
                                               lim 2n/2 = ∞
                                               n→∞

     Εποµένως, 2n = ω(2n/2 ) ⇒ 2n = Ω(2n/2 ).

d.
                                                    nlog c
                                                 lim
                                                n→∞ clog n

     ΄Οµως γνωρίζουµε ότι nlog c = clog n , συνεπώς

                                                   nlog c
                                               lim        =1
                                               n→∞ clog n

     Εποµένως, nlog c = Θ(clog n ).



                                                  7
6
       Ποια είναι η πολυπλοκότητα των παρακάτω τµηµάτων προγράµµατος ;

Αλγόριθµος 1
                                    n                 n                  n                n
                                    2        n2       4                  2       n2       4

                                                          Θ(1) = Θ(1)                             1
                                  i=1 j=1 k=1                           i=1 j=1 k=1

               οπότε,
                                                          n 2 n          n4
                                             Θ(1) ·         · n · = Θ(1)
                                                          4      2       8
               Εποµένως ο αλγόριθµος είναι τάξης Θ(n4 ).

Αλγόριθµος 2
                              n−1       2i        j                     n−1      2i           j
                                    (        (        Θ(1))) = Θ(1)          (        (           1))
                               i=1 j=1 k=1                              i=1 j=1 k=1

               ΄Ετσι υπολογίζουµε :
                        j       (1+1)j
                        k=1 1 =    2   =j
                        2i      (1+ni)ni        2 2
                        j=1 j =     2    = ni+n i
                                              2
                                                        2
                       n−1 ni+n2 i2
                       i=1      2     = i=1 ( ni + (ni) ) =
                                            n−1
                                                2     2
                       n−1 ni         n−1 (ni)2
                       i=1 ( 2 +      i=1     2 =
                    n    n−1       n2     n−1 2
                    2    i=1 i + 2        i=1 i =
                    n (1+(n−1))(n−1)         2
                    2         2         + n (n−1)((n−1)+1)(2(n−1)+1)
                                            2           6                             =
                    n (n2 −n)     n2 n(n−1)(2n−1)
                    2    2    + 2           6     =
                    n3 −n     n3 (n−1)(2n−1)
                      4    +         12

               Οπότε τελικά, ο αλγόριθµος προκύπτει ότι είναι τάξης Θ(n5 ).


       7
       Να υπολογίσετε τον χρόνο εκτέλεσης µέσης περίπτωσης του αλγορίθµου 3, δε-
       δοµένου ότι γνωρίζουµε πως το στοιχείο που ψάχνουµε (το k ) ϐρίσκεται στην
       τελευταία ϑέση µε πιθανότητα 1/4, στην προτελευταία ϑέση µε πιθανότητα
       1/4, ενώ η πιθανότητα να ϐρίσκεται σε οποιαδήποτε από τις υπόλοιπες n − 2
                              1
       ϑέσεις είναι ίση µε 4(n−2) , n ≥ 3.



           Αν ϑεωρήσουµε ως Dn το σύνολο των διαφορετικών εισόδων στο πρόβληµα
       και d ∈ D µια είσοδό του τότε :


                                                             8
• Πολυπλοκότητα στην ϐέλτιστη περίπτωση (Best Case Scenario):
         Cbcs (n) = min{κόστος(d), d ∈ Dn }
         Αν το k είναι το πρώτο στοιχείο της ακολουθίας, τότε ϑα κάνει 2 συγκρί-
         σεις (από τον έλεγχο της WHILE) και µια καταχώρηση (i = 0). Αν το
         k είναι το δεύτερο στοιχείο της ακολουθίας, τότε ϑα κάνει 4 συγκρίσεις
         και 2 καταχωρήσεις και γενικά αν είναι το i−οστό στοιχείο ϑα κάνει 2i
         συγκρίσεις και i καταχωρήσεις.

    • Πολυπλοκότητα στην χείριστη περίπτωση(Worst Case Scenario):
         Cwcs (n) = max{κόστος(d), d ∈ Dn }
         Στη χειρότερη περίπτωση που το k δεν ανήκει στην ακολουθία, τότε ο
         αλγόριθµος ϑα εκτελέσει 2n + 2 συγκρίσεις (στην τελευταία επανάληψη
         υποθέτουµε ότι ϑα κάνει και τις δύο συγκρίσεις) και n+1 καταχωρήσεις.
         Η πιθανότητα να µην ϐρίσκεται το k στην ακολουθία είναι

                                                     1     2    n−2
                p = 1 − p ⇒ p = 1 − ((n − 2)              + )=
                                                  4(n − 2) 4   4(n − 2)

    • Πολυπλοκότητα κατά µέσο όρο :
         Cµo (n) =   d∈Dn   p(d)κόστος(d)
         Η κατά µέσο όρο πολυπλοκότητα, είναι πόσες πράξεις κάνει (ή πόση
         µνήµη δεσµεύει) ο αλγόριθµος κατά µέσο όρο. ΄Ετσι µετράµε τις πράξεις
         (κόστος(d)) που κάνει ο αλγόριθµος για κάθε δυνατή είσοδο d ∈ Dn που
         δίνεται µε πιθανότητα p(d).

    ΄Ετσι έχουµε πολυπλοκότητα κατά µέσο όρο (για συγκρίσεις):

                                     1           1
                      Cµo (n) =            2+          4 + ...
                                  4(n − 2)    4(n − 2)
                      1          1      n−2
                     + 2(n − 1) + 2n +          2(n + 1)
                      4          4     4(n − 2)
΄Ετσι,
                                                n−2
                                       1                     6n − 1
                        Cµo (n) =                     2i +
                                    4(n − 2)                   4
                                                i=0




                                            9

Weitere ähnliche Inhalte

Was ist angesagt?

Η εξίσωση του κύματος στις η+1 διαστάσεις
Η εξίσωση του κύματος στις η+1 διαστάσειςΗ εξίσωση του κύματος στις η+1 διαστάσεις
Η εξίσωση του κύματος στις η+1 διαστάσεις
John Fiorentinos
 
ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
Dimitris Psounis
 
Ελατήριο με δύο μάζες
Ελατήριο με δύο μάζεςΕλατήριο με δύο μάζες
Ελατήριο με δύο μάζες
John Fiorentinos
 
Ελατήριο ανάμεσα σε δύο μάζες
Ελατήριο ανάμεσα σε δύο μάζεςΕλατήριο ανάμεσα σε δύο μάζες
Ελατήριο ανάμεσα σε δύο μάζες
John Fiorentinos
 

Was ist angesagt? (20)

Η εξίσωση του κύματος στις η+1 διαστάσεις
Η εξίσωση του κύματος στις η+1 διαστάσειςΗ εξίσωση του κύματος στις η+1 διαστάσεις
Η εξίσωση του κύματος στις η+1 διαστάσεις
 
Rayleigh jeans
Rayleigh   jeansRayleigh   jeans
Rayleigh jeans
 
ΠΛΗ30 ΜΑΘΗΜΑ 6.2
ΠΛΗ30 ΜΑΘΗΜΑ 6.2ΠΛΗ30 ΜΑΘΗΜΑ 6.2
ΠΛΗ30 ΜΑΘΗΜΑ 6.2
 
Planck
PlanckPlanck
Planck
 
ΠΛΗ30 ΤΕΣΤ 9
ΠΛΗ30 ΤΕΣΤ 9ΠΛΗ30 ΤΕΣΤ 9
ΠΛΗ30 ΤΕΣΤ 9
 
ΠΛΗ30 ΜΑΘΗΜΑ 6.3
ΠΛΗ30 ΜΑΘΗΜΑ 6.3ΠΛΗ30 ΜΑΘΗΜΑ 6.3
ΠΛΗ30 ΜΑΘΗΜΑ 6.3
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1ΠΛΗ30 ΜΑΘΗΜΑ 2.1
ΠΛΗ30 ΜΑΘΗΜΑ 2.1
 
ΠΛΗ30 ΜΑΘΗΜΑ 2.2
ΠΛΗ30 ΜΑΘΗΜΑ 2.2ΠΛΗ30 ΜΑΘΗΜΑ 2.2
ΠΛΗ30 ΜΑΘΗΜΑ 2.2
 
Lec3 number systems_number_theory
Lec3 number systems_number_theoryLec3 number systems_number_theory
Lec3 number systems_number_theory
 
ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 6.2
 
Aoristo olokliroma
Aoristo olokliromaAoristo olokliroma
Aoristo olokliroma
 
Protypo ladahl
Protypo  ladahlProtypo  ladahl
Protypo ladahl
 
ΠΛΗ30 ΤΕΣΤ 10
ΠΛΗ30 ΤΕΣΤ 10ΠΛΗ30 ΤΕΣΤ 10
ΠΛΗ30 ΤΕΣΤ 10
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.1
ΠΛΗ30 ΜΑΘΗΜΑ 1.1ΠΛΗ30 ΜΑΘΗΜΑ 1.1
ΠΛΗ30 ΜΑΘΗΜΑ 1.1
 
δύο μαθηματικά εκκρεμή με
δύο μαθηματικά εκκρεμή με  δύο μαθηματικά εκκρεμή με
δύο μαθηματικά εκκρεμή με
 
Ελατήριο με δύο μάζες
Ελατήριο με δύο μάζεςΕλατήριο με δύο μάζες
Ελατήριο με δύο μάζες
 
Ελατήριο ανάμεσα σε δύο μάζες
Ελατήριο ανάμεσα σε δύο μάζεςΕλατήριο ανάμεσα σε δύο μάζες
Ελατήριο ανάμεσα σε δύο μάζες
 
ΠΛΗ30 ΤΕΣΤ 4
ΠΛΗ30 ΤΕΣΤ 4ΠΛΗ30 ΤΕΣΤ 4
ΠΛΗ30 ΤΕΣΤ 4
 
Parousiasi d.ntrizou
Parousiasi d.ntrizouParousiasi d.ntrizou
Parousiasi d.ntrizou
 
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4
 

Andere mochten auch

Bài tập về dãy số kaczor, mt nowak
Bài tập về dãy số   kaczor, mt nowakBài tập về dãy số   kaczor, mt nowak
Bài tập về dãy số kaczor, mt nowak
Thế Giới Tinh Hoa
 
Giải giúp nha cac p
Giải giúp nha cac pGiải giúp nha cac p
Giải giúp nha cac p
Hoang Tu Duong
 
παράγωγος 3
παράγωγος 3παράγωγος 3
παράγωγος 3
Kozalakis
 
672.представляющие системы теория и приложения
672.представляющие системы теория и приложения672.представляющие системы теория и приложения
672.представляющие системы теория и приложения
efwd2ws2qws2qsdw
 
Phong cách ngôn ngữ tiếng việt
Phong cách ngôn ngữ tiếng việtPhong cách ngôn ngữ tiếng việt
Phong cách ngôn ngữ tiếng việt
Học Huỳnh Bá
 
[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung
[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung
[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung
Đức Mạnh Ngô
 
διακριτά μαθηματικά
διακριτά μαθηματικάδιακριτά μαθηματικά
διακριτά μαθηματικά
Christos Loizos
 
đề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.com
đề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.comđề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.com
đề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.com
Thế Giới Tinh Hoa
 
đề Cương ôn tập môn ngữ văn 11truonghocso.com
đề Cương ôn tập môn ngữ văn 11truonghocso.comđề Cương ôn tập môn ngữ văn 11truonghocso.com
đề Cương ôn tập môn ngữ văn 11truonghocso.com
Thế Giới Tinh Hoa
 
Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10
Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10
Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10
Thế Giới Tinh Hoa
 

Andere mochten auch (20)

Bài tập về dãy số kaczor, mt nowak
Bài tập về dãy số   kaczor, mt nowakBài tập về dãy số   kaczor, mt nowak
Bài tập về dãy số kaczor, mt nowak
 
μεθοδολογια συναρτησεων 2
μεθοδολογια συναρτησεων 2μεθοδολογια συναρτησεων 2
μεθοδολογια συναρτησεων 2
 
2 math mama_bkk
2 math mama_bkk2 math mama_bkk
2 math mama_bkk
 
Giải giúp nha cac p
Giải giúp nha cac pGiải giúp nha cac p
Giải giúp nha cac p
 
Math auth
Math authMath auth
Math auth
 
E3 f1 bộ binh
E3 f1 bộ binhE3 f1 bộ binh
E3 f1 bộ binh
 
Công trình
Công trìnhCông trình
Công trình
 
παράγωγος 3
παράγωγος 3παράγωγος 3
παράγωγος 3
 
672.представляющие системы теория и приложения
672.представляющие системы теория и приложения672.представляющие системы теория и приложения
672.представляющие системы теория и приложения
 
μαρία καραμεσίνη
μαρία καραμεσίνημαρία καραμεσίνη
μαρία καραμεσίνη
 
Day them toan 11
Day them toan 11Day them toan 11
Day them toan 11
 
Các bài toán tổ hợp 11
Các bài toán tổ hợp 11Các bài toán tổ hợp 11
Các bài toán tổ hợp 11
 
Phong cách ngôn ngữ tiếng việt
Phong cách ngôn ngữ tiếng việtPhong cách ngôn ngữ tiếng việt
Phong cách ngôn ngữ tiếng việt
 
[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung
[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung
[Vnmath.com] bai giang-trong_tam_ve_ham_so_thay_dang_viet_hung
 
μαθηματικό τυπολόγιο
μαθηματικό τυπολόγιομαθηματικό τυπολόγιο
μαθηματικό τυπολόγιο
 
διακριτά μαθηματικά
διακριτά μαθηματικάδιακριτά μαθηματικά
διακριτά μαθηματικά
 
đề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.com
đề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.comđề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.com
đề Cương ôn tập ngữ văn 12 học kì i năm học 2011 2012truonghocso.com
 
Math prosanatolismou lyceum_b
Math prosanatolismou lyceum_bMath prosanatolismou lyceum_b
Math prosanatolismou lyceum_b
 
đề Cương ôn tập môn ngữ văn 11truonghocso.com
đề Cương ôn tập môn ngữ văn 11truonghocso.comđề Cương ôn tập môn ngữ văn 11truonghocso.com
đề Cương ôn tập môn ngữ văn 11truonghocso.com
 
Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10
Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10
Hướng dẫn thực hiện chuẩn kiến thức, kĩ năng toán 10
 

Ähnlich wie Algorithms - Exercise 1

ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
Dimitris Psounis
 
Mαθηματικά I
Mαθηματικά IMαθηματικά I
Mαθηματικά I
aris_ant
 
6 Ασκήσεις Αριθμητικής Ανάλυσης
6 Ασκήσεις Αριθμητικής Ανάλυσης6 Ασκήσεις Αριθμητικής Ανάλυσης
6 Ασκήσεις Αριθμητικής Ανάλυσης
Tasos Lazaridis
 
εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4
εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4
εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4
Γιάννης Πλατάρος
 

Ähnlich wie Algorithms - Exercise 1 (20)

Οι λύσεις μου σε θέματα γνωστών συγγραφέων για το lisari
Οι λύσεις μου σε θέματα γνωστών συγγραφέων για το lisariΟι λύσεις μου σε θέματα γνωστών συγγραφέων για το lisari
Οι λύσεις μου σε θέματα γνωστών συγγραφέων για το lisari
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΜΑΘΗΜΑ 1.3ΠΛΗ30 ΜΑΘΗΜΑ 1.3
ΠΛΗ30 ΜΑΘΗΜΑ 1.3
 
Themata kai lyseis_mathimatikwn_epan_2021_l
Themata kai lyseis_mathimatikwn_epan_2021_lThemata kai lyseis_mathimatikwn_epan_2021_l
Themata kai lyseis_mathimatikwn_epan_2021_l
 
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
ΠΛΗ30 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 2
 
Mαθηματικά I
Mαθηματικά IMαθηματικά I
Mαθηματικά I
 
Πλήρεις σημειώσεις στον Ολοκληρωτικό λογισμό (2015 - 16)
Πλήρεις σημειώσεις στον Ολοκληρωτικό λογισμό (2015 - 16)Πλήρεις σημειώσεις στον Ολοκληρωτικό λογισμό (2015 - 16)
Πλήρεις σημειώσεις στον Ολοκληρωτικό λογισμό (2015 - 16)
 
28 9636diag paragogoi_mexri_rythmo(2015-16)
28 9636diag paragogoi_mexri_rythmo(2015-16)28 9636diag paragogoi_mexri_rythmo(2015-16)
28 9636diag paragogoi_mexri_rythmo(2015-16)
 
2015 τριγωνομετρια
2015 τριγωνομετρια2015 τριγωνομετρια
2015 τριγωνομετρια
 
2015 τριγωνομετρια
2015 τριγωνομετρια2015 τριγωνομετρια
2015 τριγωνομετρια
 
λύση ασκ. 21
λύση ασκ. 21λύση ασκ. 21
λύση ασκ. 21
 
ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1ΠΛΗ30 Τυπολόγιο Ενότητας 1
ΠΛΗ30 Τυπολόγιο Ενότητας 1
 
λυση ασκ 10
λυση ασκ 10λυση ασκ 10
λυση ασκ 10
 
31η αναρτηση
31η αναρτηση31η αναρτηση
31η αναρτηση
 
6 Ασκήσεις Αριθμητικής Ανάλυσης
6 Ασκήσεις Αριθμητικής Ανάλυσης6 Ασκήσεις Αριθμητικής Ανάλυσης
6 Ασκήσεις Αριθμητικής Ανάλυσης
 
Σημειώσεις στις Σειρές
Σημειώσεις στις ΣειρέςΣημειώσεις στις Σειρές
Σημειώσεις στις Σειρές
 
Math pros 2020_neo_them_lyseis_l
Math pros 2020_neo_them_lyseis_lMath pros 2020_neo_them_lyseis_l
Math pros 2020_neo_them_lyseis_l
 
απειροστικός ιιι (μερκουράκης)
απειροστικός ιιι (μερκουράκης)απειροστικός ιιι (μερκουράκης)
απειροστικός ιιι (μερκουράκης)
 
λυση ασκ. 14
λυση ασκ. 14λυση ασκ. 14
λυση ασκ. 14
 
εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4
εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4
εφαρμοζομενα μαθηματικα σε ενα φυλλο χαρτι α4
 
Προσομοιωτικό διαγώνισμα μέχρι το Διαφορικό Λογισμό από τη Βαρβάκειο Σχολή
Προσομοιωτικό διαγώνισμα μέχρι το Διαφορικό Λογισμό από τη Βαρβάκειο ΣχολήΠροσομοιωτικό διαγώνισμα μέχρι το Διαφορικό Λογισμό από τη Βαρβάκειο Σχολή
Προσομοιωτικό διαγώνισμα μέχρι το Διαφορικό Λογισμό από τη Βαρβάκειο Σχολή
 

Kürzlich hochgeladen

5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
Athina Tziaki
 

Kürzlich hochgeladen (9)

Μαθητικά συμβούλια .
Μαθητικά συμβούλια                                  .Μαθητικά συμβούλια                                  .
Μαθητικά συμβούλια .
 
Μαθητικές καταλήψεις
Μαθητικές                                  καταλήψειςΜαθητικές                                  καταλήψεις
Μαθητικές καταλήψεις
 
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ  : ΕΠΑΝΑΛΗΨΗ 2024
ΙΣΤΟΡΙΑ Α΄ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΨΗ 2024
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ  ΜΕΡΟΣ 1ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 1ο
 
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2οΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
ΙΣΤΟΡΙΑ Α' ΓΥΜΝΑΣΙΟΥ : ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΜΕΡΟΣ 2ο
 
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνηΣουρεαλιστικά ταξίδια μέσα από την τέχνη
Σουρεαλιστικά ταξίδια μέσα από την τέχνη
 
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη-Διψήφιοι  αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
-Διψήφιοι αριθμοί-δεκαδες μονάδες-θέση ψηφίου Α- Β τάξη
 
Σεβασμός .
Σεβασμός                                   .Σεβασμός                                   .
Σεβασμός .
 
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
5ο Κεφάλαιο - Το Λογισμικό του Υπολογιστή.pptx
 

Algorithms - Exercise 1

  • 1. Αλγόριθµοι & Πολυπλοκότητα 1ο Σύνολο Ασκήσεων Γιαννούσης Κωνσταντίνος (ΑΜ 1115201000225) Τµήµα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήµιο Αθηνών copyright © 2011 by Constantine Yannoussis
  • 2. 1 Ποια είναι η ελάχιστη τιµή του n για την οποία ένας αλγόριθµος µε χρόνο εκτέλεσης 100n2 εκτελείται γρηγορότερα από έναν αλγόριθµο µε χρόνο εκτέ- λεσης 2n στην ίδια µηχανή ; Αυτό που Ϲητάµε ουσιαστικά είναι για ποια ελάχιστη τιµή του n ισχύει η ανισότητα 100n2 < 2n . Για να µπορέσουµε να ϐρούµε την ελάχιστη τιµή του n δουλεύουµε παίρ- νοντας την ισότητα 100n2 = 2n . Θέλουµε δηλαδή αρχικά να ϐρούµε για ποια τιµή οι δύο χρόνοι εκτέλεσης είναι ίσοι. Θεωρούµε λοιπόν τη συνάρτηση f (n) = 100n2 − 2n . Από την λύση της εξίσωσης f (n) = 0 ϐρίσκουµε τις ϱίζες δηλαδή τις τιµές όπου οι δυο χρόνοι είναι ίσοι. Κατόπιν ϑα ελέγξουµε τις πλησιέστερες ακέραιες τιµές στις ϱίζες για να ϐρούµε αυτές που να ικανοποιούν τη Ϲητούµενη ανίσωση. ΄Ετσι, µετά από υπολογισµούς καταλήγουµε σε τρεις ϱίζες της εξίσωσης 100n2 − 2n : n1 0.103658 n2 −0.096704 n3 14.3247 ΄Οπως ϕαίνεται, µεταξύ των ϱιζών n1 και n2 υπάρχει µοναδικός ακέραιος το 0 ο οποίος όµως δεν ανήκει στην f (n). Επίσης, για αρνητικές τιµές του n γίνεται άµεσα αντιληπτό πως δεν ικανοποιείται η Ϲητούµενη ανίσωση. ΄Ε- τσι καταφεύγουµε στην τρίτη ϱίζα, την n3 , και ελέγχουµε τις ακέραιες τιµές εκατέρωθεν της ϱίζας αυτής, δηλαδή, τις τιµές n = 14 και n = 15: • Για n = 14 έχουµε : 100 · 142 = 19600 214 = 16384 ∆ηλαδή, 100n2 > 2n . • Για n = 15 έχουµε : 100 · 152 = 22500 215 = 32768 ∆ηλαδή, ισχύει η Ϲητούµενη ανίσωση 100n2 < 2n . Αν συνεχίζαµε τον έλεγχο και για πιο µεγάλες τιµές του n ϑα παρατηρού- σαµε ότι ϑα εξακολουθούσε να ισχύει η ανίσωση. Συνεπώς, στο πρόβληµά µας, η µικρότερη ακέραια τιµή του n για την οποία ισχύει ότι ο χρόνος εκτέλεσης 100n2 εκτελείται γρηγορότερα από το χρόνο εκτέλεσης 2n στην ίδια µηχανή, είναι η n = 15. 1
  • 3. 2 Για κάθε συνάρτηση f (n) και χρόνο t στον παρακάτω πίνακα, ϐρείτε το µέ- γιστο µέγεθος n του στιγµιοτύπου ενός προβλήµατος που µπορεί να λυθεί σε χρόνο t, υποθέτοντας ότι ο αλγόριθµος που λύνει το πρόβληµα απαιτεί f (n) microseconds. f (n)t 1 δευτερόλεπτο 1 λεπτό 1 ώρα 6 7 9 log n 210 26·10 23.6·10 n 106 6 · 107 3.6 · 109 nlogn 62746.1 2.80142 · 106 √ 6.0482 · 107 n2 103 60 · 103 6 · 104 2n log 106 log(6 · 107 ) log(3.6 · 109 ) 3 ΄Εστω f, f1 , f2 , g, g1 , g2 , h ϑετικές συναρτήσεις. Αποφασίστε αν οι παρακάτω προτάσεις είναι αληθείς ή ψευδείς. ∆ικαιολογήστε τις απαντήσεις σας. 1. f (n) = Ω(g(n)) ⇒ g(n) = O(f (n)) Από τον ορισµό του Ω(g(n)) ισχύει ότι f (n) = Ω(g(n)) αν υπάρχουν ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| ≥ c|g(n)| για κάθε n > k . Οπότε αφού c > 0 τότε ϑα ισχύει και 1 |f (n)| ≥ |g(n)| για κάθε n > k . c Συνεπώς, αν ϑέσουµε c = 1 τότε ϑα ισχύει |g(n)| ≤ c |f (n)| για κάθε c n > k. ∆ηλαδή, σύµφωνα µε τον ορισµό του Big − O notation πρόταση f (n) = Ω(g(n)) ⇒ g(n) = O(f (n)) είναι αληθής. 2. n! = Θ(n log n) ΄Εστω ότι ισχύει n! = Θ(n log n). Εποµένως, n! = O(n log n), ΄Εστω συνάρτηση g(n) = 2n . Αποδεικνύεται ότι g(n) = O(n!) ( 2n = 2 · 2 · . . . 2 ≤ 2 · 3 · . . . n = n!) n times οπότε κατ΄ επέκταση ϑα ισχύει και 2n = O(n log n). Κάτι τέτοιο όµως είναι άτοπο, εποµένως η αρχική πρόταση δεν ισχύει. 3. f (n) = ω(g(n)) ⇒ f (n) = Ω(g(n)) Από τον ορισµό του ω(g(n)) ισχύει ότι f (n) = ω(g(n)) αν υπάρχουν ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| > c|g(n)| για κάθε n > k . Αφού λοιπόν έχουµε από τα δεδοµένα ότι αυτό ισχύει, δηλαδή ότι |f (n)| > c|g(n)| ϑα ισχύει και ότι για c , k ϑετικές σταθερές έχουµε |f (n)| ≥ c |g(n)| για κάθε n > k . Θα έχουµε δηλαδή ότι ισχύει f (n) = Ω(g(n)). 2
  • 4. 4. Αν f (n) = O(g(n)) και f (n) = Ω(h(n)) ⇒ g(n) = Θ(h(n)) Από τον ορισµό του Big-O notation έχουµε ότι f (n) = O(g(n)) ισχύει όταν υπάρχουν ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| ≤ c|g(n)| για κάθε n > k . Επίσης από τον ορισµό του Big-Ω notation έχουµε ότι f (n) = Ω(h(n)) ισχύει όταν υπάρχουν ϑετικές σταθερές c και k τέτοιες ώστε |f (n)| ≥ c |h(n)| για κάθε n > k . Για να ισχύει λοιπόν το g(n) = Θ(h(n)), ϑα πρέπει να δείξουµε ότι ισχύει g(n) = O(h(n)) και ταυτόχρονα g(n) = Ω(h(n)). Από τα δεδοµένα έχουµε ότι f (n) = O(g(n)), δηλαδή ότι και g(n) = Ω(f (n)) (ϐλέπε απόδειξη 1 ίδιας άσκησης). Επίσης από τα δεδοµένα έχουµε f (n) = Ω(h(n)). ΄Ετσι ϑα υπάρχουν c και k ϑετικά τέτοια ώστε να ισχύει και |g(n)| ≥ c|f (n)| ≥ c |h(n)| ⇒ |g(n)| ≥ c |h(n)|, δηλαδή, g(n) = Ω(h(n)). ΄Οµως ϕαίνεται ότι το αντίθετο δεν ισχύει, δηλαδή, δεν ισχύει ότι g(n) = O(h(n)). Θα προσπαθήσουµε να δείξουµε ότι δεν ισχύει µε ένα αντιπα- ϱάδειγµα. ΄Εστω, οι συναρτήσεις h(n) = log n, f (n) = n και g(n) = n log n. Εύκολα αποδεικνύουµε ότι οι συναρτήσεις είναι της µορφής που Ϲητάµε, δηλαδή ισχύει f (n) = Ω(h(n)) και f (n) = O(g(n)) που είναι και η αρχική συνθήκη και συνεπώς ισχύει και το συµπέρασµα ότι g(n) = Ω(h(n)) που δείξαµε πιο πάνω. ΄Εστω ότι ισχύει η συνθήκη ότι g(n) = O(h(n)), ότι δηλαδή, n log n = O(log n). Υπάρχουν λοιπόν ϑετικά l και m τέτοια ώστε |n log n| ≤ l| log n| για κάθε n > m. ΄Οταν n ≤ l η σχέση αυτή ϕαίνεται να ι- σχύει, αφού µιλάµε για ϑετικές ποσότητες. ΄Οταν όµως το n αυξάνει ενώ το l είναι µια σταθερή ποσότητα και κάποια στιγµή ϑα είναι n > l, οπότε η ανισότητα |n log n| ≤ l| log n| δεν ϑα ισχύει. ΄Ετσι µπορούµε να πούµε ότι τελικά η ανισότητα |n log n| ≤ l| log n| δεν ισχύει για κάθε n > k , και εποµένως δεν ισχύει η αρχική συνθήκη. Συνεπώς, η πρόταση δεν είναι αληθής. 5. 4n2 + 5n − 9 = Ω(10n2 ) Από τη ϑεωρία γνωρίζουµε ότι µια πολυωνυµική συνάρτηση έχει τάξη (Θ) τον όρο µε το µεγαλύτερο εκθέτη. Συνεπώς, η τάξη της f (n) = 4n2 + 5n − 9 = Θ(n2 ). Αυτό σηµαίνει επίσης ότι, f (n) = Ω(n2 ). Κατά τον ίδιο τρόπο g(n) = 10n2 = Θ(n2 ) και εποµένως g(n) = Ω(n2 ). Οπότε η πρόταση ισχύει. 3
  • 5. 6. log(n!) = Θ(n log n) Στο πρώτο ϐήµα της απόδειξης, ϑα δείξουµε ότι ισχύει log(n!) = O(n log n). n! = 1 · 2 . . . n − 1 · n ≤ n · n . . . n ⇒ n! ≤ nn Εποµένως log n! ≤ log nn ⇒ log n! ≤ n log n ΄Ετσι υπάρχουν ϑετικές ποσότητες c, k τέτοιες ώστε | log n!| ≤ c|n log n|, για κάθε n ≥ k , δηλαδή, ισχύει ότι log(n!) = O(n log n). Αφού αποδείξαµε το πρώτο µέρος, αποµένει να δείξουµε ότι ισχύει και log(n!) = Ω(n log n). ΄Ετσι, n n n n n nn2 n! ≥ · ( + 1) · ( + 2) · . . . ( + ) ≥ ⇒ 2 2 2 2 2 2 nn2 n n n! ≥ ⇒ log n! ≥ log ⇒ 2 2 2 n 1 1 n! ≥ (log n − log 2) = n log n − n 2 2 2 Εποµένως υπάρχουν ϑετικές ποσότητες c , k τέτοιες ώστε | log n!| ≥ c|n log n|, για κάθε n ≥ k , δηλαδή, ισχύει ότι log(n!) = Ω(n log n). Συνεπώς η πρόταση είναι αληθής. 7. f (n) + g(n) = Θ(min(g(n), f (n))) Γνωρίζουµε ότι ισχύει το f (n) = Θ(f (n)) και g(n) = Θ(g(n)). Επίσης ισχύει ότι f (n) + g(n) = Ω(min(g(n), f (n))). Συνεπώς για να ισχύει η πρόταση ϑα πρέπει να ισχύει ότι f (n) + g(n) = O(min(g(n), f (n))). ΄Εστω ότι f (n) + g(n) = O(min(g(n), f (n))) ισχύει. Οπότε έστω οι συναρτήσεις f (n) = n και g(n) = 2n . Συνεπώς min(f (n), g(n)) = f (n) = n. ΄Αρα από την αρχική υπόθεση ϑα είναι n + 2n = O(n). Κάτι τέτοιο δεν ισχύει οπότε και η πρόταση f (n)+g(n) = O(min(g(n), f (n))) δεν ισχύει. Συνεπώς, και η αρχική πρόταση δεν ισχύει. √ √ 8. n + 2 n = Ω(n n) Από το ϑεώρηµα ισχύει ότι f (n) + g(n) = Ω(min(g(n), f (n))). Επίσης, √ √ αν f (n) = n και g(n) = 2 n, τότε, min(f (n), g(n)) = 2 n = g(n), για κάθε n > 4. √ Οπότε αρκεί να δείξουµε ότι η g(n) = Ω(n n). ΄Εστω ότι ισχύει g(n) = √ Ω(n n). ∆ηλαδή υπάρχουν ϑετικές ποσότητες c, k τέτοιες ώστε |g(n)| ≥ √ c|n n|, για κάθε n > k . ΄Εχουµε δηλαδή, √ √ √ |g(n)| ≥ c|n n| ⇒ |2 n| ≥ c|n n| ⇒ 4
  • 6. c √ √ √ | n| ≥ |n n| ⇒ | n| ≥ c |n n| 2 Κάτι τέτοιο είναι άτοπο για ϑετικές ποσότητες οπότε ισχύει η πρόταση √ g(n) = Ω(n n) και συνεπώς ισχύει η αρχική πρόταση. 9. Αν f (n) = O(g(n)) και g(n) = Ω(f (n)) ⇒ f (n) = Θ(g(n)) Για να ισχύει η πρόταση αυτή ϑα έπρεπε να ισχύει f (n) = O(g(n)) και g(n) = O(f (n)). ΄Οµως επειδή δεν γνωρίζουµε αν g(n) = O(f (n)), αλλά µόνο ότι g(n) = Ω(f (n)) τότε η πρόταση δεν ισχύει. Αν η πρόταση µας έλεγε ότι ισχύει f (n) = O(g(n)) και g(n) = Θ(f (n)) τότε η πρόταση ϑα ήταν αληθής. 4 Χωρίστε τη λίστα των συναρτήσεων σε κλάσεις, τέτοιες ώστε οι f (n) και g(n) να ανήκουν στην ίδια κλάση αν και µόνο αν f (n) = Θ(g(n)). Στη συνέχεια επιλέξτε έναν εκπρόσωπο από κάθε κλάση και κατατάξτε τους κατά αύξουσα σειρά πολυπλοκότητας n n2 −n n • = ... = 2 οπότε = Θ(n2 ) 2 2 • n log n = Θ(n log n) n 1 • k=1 k = log n + c = Θ(log n) • 8n2 = Θ(n2 ) √ 1 • log log n = log(log n)1/2 = 2 log log n = Θ(log log n) • n! = Θ(n!) • log log n = Θ(log log n) • nlog n = Θ(nlog n ) • log n! = Θ(n log n) 2 • 4log n = 22 log n = 2log n = n2 = Θ(n2 ) n n • k=0 = 2n = Θ(2n ) k 2 • 2log n = 2log n log n = nlog n = Θ(nlog n ) • 10100 = Θ(10100 ) • 2n = Θ(2n ) 5
  • 7. • log n = Θ(log n) √ 1/2 √ √ • ( 2)log n = 21/2 log n = 2log n = n1/2 = n = Θ( n) • (n − 1)! = Θ((n − 1)!) • log nn = n log n = Θ(n log n) • 5800 = Θ(5800 ) √ √ • 5 n = Θ( n) Οπότε κατηγοριοποιώντας έχουµε : n • = 8n2 = 4log n = Θ(n2 ) 2 • n log n = log n! = log nn = Θ(n log n) √ • log log n = log log n = Θ(log log n) 2 • nlog n = 2log n = Θ(nlog n ) √ √ √ • ( 2)log n = 5 n = Θ( n) n n • k=0 = 2n = Θ(2n ) k • 5800 = 10100 = Θ(1) • (n − 1)! = Θ((n − 1)!) • n! = Θ(n!) n 1 • log n = k=1 k = Θ(log n) Αν επιλέξουµε έναν αντιπρόσωπο από κάθε κλάση µπορούµε να ταξινοµή- σουµε τις κλάσεις ως εξής : √ 10100 , log log n, log n, 5 n, n log n, 8n2 , nlog n , 2n , (n − 1)!, n! 5 Για κάθε Ϲεύγος εκφράσεων (A, B) του παρακάτω πίνακα αποφασίστε αν το Α είναι Ο, ο, Ω, ω ή Θ του Β. Υποθέστε ότι οι k ≥ 1, > 0 και c > 1 είναι σταθερές. Απαντήστε σηµειώνοντας ένα `ναι΄ ή ένα `όχι΄ σε κάθε ϑέση του πίνακα. 6
  • 8. Α Β Ο ο Ω ω Θ a. logk n n ναι ναι b. nk cn ναι ναι c. 2n 2n/2 ναι ναι d. nlog c clog n ναι ναι ναι A Παίρνουµε το όριο limn→∞ B . ΄Ετσι έχουµε, a. logk n ∞ k logk−1 n · 1 n lim = ∞ lim = n→∞ n n→∞ n −1 k logk−1 n k! lim = . . . = lim k n→∞ n n→∞ n Οπότε, k! 1 lim = =0 n→∞ k n ∞ Εποµένως, logk n = o(n ) ⇒ logk n = O(n ). b. nk ∞ knk−1 ∞ lim = ∞ lim n =∞ n→∞ cn n→∞ c · ln c k! 1 . . . = lim = =0 n→∞ cn · lnk c ∞ Εποµένως, nk = o(cn ) ⇒ nk = O(cn ). c. 2n 2n/2+n/2 2n/2 2n/2 lim = lim = lim = n→∞ 2n/2 n→∞ 2n/2 n→∞ 2n/2 lim 2n/2 = ∞ n→∞ Εποµένως, 2n = ω(2n/2 ) ⇒ 2n = Ω(2n/2 ). d. nlog c lim n→∞ clog n ΄Οµως γνωρίζουµε ότι nlog c = clog n , συνεπώς nlog c lim =1 n→∞ clog n Εποµένως, nlog c = Θ(clog n ). 7
  • 9. 6 Ποια είναι η πολυπλοκότητα των παρακάτω τµηµάτων προγράµµατος ; Αλγόριθµος 1 n n n n 2 n2 4 2 n2 4 Θ(1) = Θ(1) 1 i=1 j=1 k=1 i=1 j=1 k=1 οπότε, n 2 n n4 Θ(1) · · n · = Θ(1) 4 2 8 Εποµένως ο αλγόριθµος είναι τάξης Θ(n4 ). Αλγόριθµος 2 n−1 2i j n−1 2i j ( ( Θ(1))) = Θ(1) ( ( 1)) i=1 j=1 k=1 i=1 j=1 k=1 ΄Ετσι υπολογίζουµε : j (1+1)j k=1 1 = 2 =j 2i (1+ni)ni 2 2 j=1 j = 2 = ni+n i 2 2 n−1 ni+n2 i2 i=1 2 = i=1 ( ni + (ni) ) = n−1 2 2 n−1 ni n−1 (ni)2 i=1 ( 2 + i=1 2 = n n−1 n2 n−1 2 2 i=1 i + 2 i=1 i = n (1+(n−1))(n−1) 2 2 2 + n (n−1)((n−1)+1)(2(n−1)+1) 2 6 = n (n2 −n) n2 n(n−1)(2n−1) 2 2 + 2 6 = n3 −n n3 (n−1)(2n−1) 4 + 12 Οπότε τελικά, ο αλγόριθµος προκύπτει ότι είναι τάξης Θ(n5 ). 7 Να υπολογίσετε τον χρόνο εκτέλεσης µέσης περίπτωσης του αλγορίθµου 3, δε- δοµένου ότι γνωρίζουµε πως το στοιχείο που ψάχνουµε (το k ) ϐρίσκεται στην τελευταία ϑέση µε πιθανότητα 1/4, στην προτελευταία ϑέση µε πιθανότητα 1/4, ενώ η πιθανότητα να ϐρίσκεται σε οποιαδήποτε από τις υπόλοιπες n − 2 1 ϑέσεις είναι ίση µε 4(n−2) , n ≥ 3. Αν ϑεωρήσουµε ως Dn το σύνολο των διαφορετικών εισόδων στο πρόβληµα και d ∈ D µια είσοδό του τότε : 8
  • 10. • Πολυπλοκότητα στην ϐέλτιστη περίπτωση (Best Case Scenario): Cbcs (n) = min{κόστος(d), d ∈ Dn } Αν το k είναι το πρώτο στοιχείο της ακολουθίας, τότε ϑα κάνει 2 συγκρί- σεις (από τον έλεγχο της WHILE) και µια καταχώρηση (i = 0). Αν το k είναι το δεύτερο στοιχείο της ακολουθίας, τότε ϑα κάνει 4 συγκρίσεις και 2 καταχωρήσεις και γενικά αν είναι το i−οστό στοιχείο ϑα κάνει 2i συγκρίσεις και i καταχωρήσεις. • Πολυπλοκότητα στην χείριστη περίπτωση(Worst Case Scenario): Cwcs (n) = max{κόστος(d), d ∈ Dn } Στη χειρότερη περίπτωση που το k δεν ανήκει στην ακολουθία, τότε ο αλγόριθµος ϑα εκτελέσει 2n + 2 συγκρίσεις (στην τελευταία επανάληψη υποθέτουµε ότι ϑα κάνει και τις δύο συγκρίσεις) και n+1 καταχωρήσεις. Η πιθανότητα να µην ϐρίσκεται το k στην ακολουθία είναι 1 2 n−2 p = 1 − p ⇒ p = 1 − ((n − 2) + )= 4(n − 2) 4 4(n − 2) • Πολυπλοκότητα κατά µέσο όρο : Cµo (n) = d∈Dn p(d)κόστος(d) Η κατά µέσο όρο πολυπλοκότητα, είναι πόσες πράξεις κάνει (ή πόση µνήµη δεσµεύει) ο αλγόριθµος κατά µέσο όρο. ΄Ετσι µετράµε τις πράξεις (κόστος(d)) που κάνει ο αλγόριθµος για κάθε δυνατή είσοδο d ∈ Dn που δίνεται µε πιθανότητα p(d). ΄Ετσι έχουµε πολυπλοκότητα κατά µέσο όρο (για συγκρίσεις): 1 1 Cµo (n) = 2+ 4 + ... 4(n − 2) 4(n − 2) 1 1 n−2 + 2(n − 1) + 2n + 2(n + 1) 4 4 4(n − 2) ΄Ετσι, n−2 1 6n − 1 Cµo (n) = 2i + 4(n − 2) 4 i=0 9