Top Banner
27/01/2015 1 Phân tích và Thiết kế THUẬT TOÁN Hà Đại Dương [email protected] Web: fit.mta.edu.vn/~duonghd 1 Bài 2 - Đánh giá độ phức tạp thuật toán PHÂN TÍCH VÀ THIẾT KẾ THUẬ TOÁN 2
25

Bai02 - Danh Gia Do Phuc Tap Thuat Toan

Dec 18, 2015

Download

Documents

maianhtoihehe

đánh giá độ phức tạp
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 27/01/2015

    1

    Phn tch v Thit kTHUT TON

    H i Dng

    [email protected]

    Web: fit.mta.edu.vn/~duonghd

    1

    Bi 2 - nh gi phc tpthut ton

    PHN TCH V THIT K THU TON

    2

  • 27/01/2015

    2

    NI DUNG

    I. Gii thiu

    II. Phn tch trc tip cc on m

    III. Phn tch on m c li gi chn trnh con

    IV. nh gi da trn thc nghim

    V. Bi tp

    3

    1. Gii thiu

    Trc khi thc hin tnh phc tp thut ton A gii bi ton P ta cn f(n): Xc nh di d liu - n: c th l s k t, s phn t ca mng, .

    Tiu ch nh gi: thng nht l s cc thao tc c bn (gn, so snh..)

    nh gi c th s dng: Phn tch trc tip tnh s cc thao tc

    Phng php quy

    4

  • 27/01/2015

    3

    1. Gii thiu

    Da trn mt s quy tc Quy tc cng

    Quy tc nhn

    Quy tc phn tch mt s cu lnh

    Xt tnh cht ca chng trnh con

    5

    1. Gii thiu

    Quy tc cng T1(n) v T2(n) l thi gian thc hin ca hai on chng trnh con ni tip nhau

    (c lp) P1, P2 v T1(n)= O(f1(n)); T2(n)=O(f2(n)) Khi thi gian ( phc tp thi gian) thc hin ca 2 on chng trnh l

    T(n)=T1(n)+T2(n) = O(max{f1(n), f2(n)}Chng minh: Theo u bi, tn ti cc hng M1, M2, n1, n2

    T1(n)M1*f1(n), n>n1, T2(n)M2*f2(n), n>n2Khi

    T(n) = T1(n) + T2(n) M1*f1(n)+M2*f2(n), M.f(n) vi n>n0, M=max(M1,M2), n0=max(n1,n2)

    f(n)=max(f1(n),f2(n))

    6

  • 27/01/2015

    4

    1. Gii thiu

    Quy tc nhn T1(n) v T2(n) l thi gian thc hin ca hai on chng trnh con lng nhau

    (ph thuc) P1, P2 v

    T1(n)= O(f1(n)); T2(n)=O(f2(n))

    Khi thi gian ( phc tp thi gian) thc hin ca 2 on chng trnh l

    T(n)=T1(n)*T2(n) = O(f1(n)*f2(n))

    Chng minh: (tng t vi quy tc cng)

    7

    1. Gii thiu

    Quy tc phn tch cu lnh Cc cu lnh n (gn, c, ghi) c phc tp l Hng - O(1)

    V d:(1) - read(a)

    (2) - read(b)

    (3) - read(c)

    (4) - delta = b*b 4*a*c

    Nhn xt: Trong on chng trnh ch bao gm cc lnh n k tip nhau(khng cha cc vng lp), theo quy tc cng => phc tp thut ton lhng O(1)

    8

  • 27/01/2015

    5

    1. Gii thiu

    Quy tc phn tch cu lnh Cu trc if: thi gian kim tra iu kin + thi gian thc hin sau THEN hoc

    ELSE

    Cu trc lp: thi gian thc hin vng lp l tng thi gian thc hin ca thn vng lp.

    Nu s bc tnh trong vng lp khng i (theo mi bc lp) th thi gian thc hinvng lp bng tch ca s ln lp nhn vi thi gian thc hin thn vng lp.

    9

    2. Phn tch trc tip

    10

  • 27/01/2015

    6

    2. Phn tch trc tip

    11

    2. Phn tch trc tip

    12

  • 27/01/2015

    7

    2. Phn tch trc tip

    13

    2. Phn tch trc tip

    14

  • 27/01/2015

    8

    2. Phn tch trc tip

    ss = n + n 1 = 2n - 1

    gn =n + 1 + (n) = 2n (xu nht)

    15

    2. Phn tch trc tip

    16

  • 27/01/2015

    9

    2. Phn tch trc tip

    17

    2. Phn tch trc tip

    18

  • 27/01/2015

    10

    2. Phn tch trc tip

    19

    2. Phn tch trc tip

    20

  • 27/01/2015

    11

    2. Phn tch trc tip

    21

    2. Phn tch trc tip

    22

  • 27/01/2015

    12

    2. Phn tch trc tip

    23

    2. Phn tch trc tip

    24

  • 27/01/2015

    13

    2. Phn tch trc tip

    25

    2. Phn tch trc tip

    26

  • 27/01/2015

    14

    2. Phn tch trc tip

    27

    2. Phn tch trc tip

    28

  • 27/01/2015

    15

    2. Phn tch trc tip

    29

    2. Phn tch trc tip

    30

  • 27/01/2015

    16

    2. Phn tch trc tip

    31

    3. on chng trnh c gi chng trnh con

    Gi chng trnh con khng quy

    B

    B1 B2

    A

    B11 B12

    32

  • 27/01/2015

    17

    3. on chng trnh c gi chng trnh con

    Gi chng trnh con quy

    Tnh thi gian thc hin ca A?

    A

    33

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy

    Cch gii quyt:1. Thnh lp phng trnh quy

    2. Gii phng trnh quy

    Nghim ca li gii bc 2 l thi gian thc

    hin chng trnh

    34

  • 27/01/2015

    18

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy

    Phng trnh quy: Biu din mi lin h gia T(n) vi T(k), kn0 C(n0): Thi gian thc hin khi n=n0 T(k): thi gian thc hin khi n>k>n0 d*: Thi gian phn chia v tng hp kt qu

    36

  • 27/01/2015

    19

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy

    V d: xt hm tnh giai tha

    Function gt(n)

    begin

    if n=0 then gt=1

    else gt=n*gt(n-1)

    end

    Gi T(n) l thi gian tnh n!, th T(n-1) l thi gian tnh (n-1)!

    Khi n=0, ta c C(0)=1 (php gn)

    37

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy

    V d: xt hm tnh giai tha

    Function gt(n)

    begin

    if n=0 then gt=1

    else gt=n*gt(n-1)

    end

    Khi n>0, hm gi quy gt(n-1), tn T(n-1)

    Tng hp kt qu y cn 1 php gn, d*=1

    38

  • 27/01/2015

    20

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy

    V d: xt hm tnh giai tha

    Function gt(n)

    begin

    if n=0 then gt=1

    else gt=n*gt(n-1)

    end

    Khi n>0, hm gi quy gt(n-1), tn T(n-1)

    Tng hp kt qu y cn 1 php gn, d*=1

    39

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy

    Gii phng trnh quy Phng php truy hi

    1. Vi n>k>n0: dng phng trnh quy ln lt thayth T(k) vo v phi

    2. Dng khi k=n03. Th T(n0) tm T(n)

    40

  • 27/01/2015

    21

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy Gii phng trnh quy Phng php truy hi

    1. V d: Gii

    T(n) = T(n-1) + 1= T(n-2) + 1 + 1.= T(n-i) + i

    Dng khi n-i = 0, hay i=n, khi T(n) = 1 + n = O(n)

    41

    3. on chng trnh c gi chng trnh con

    phc tp chng trnh con dng quy Gii phng trnh quy Phng php truy hi

    1. V d: Gii

    T(n) = T(n/2) + 1= T(n/22) + 1 + 1.= T(n/2i) + i

    Dng: n/2i = 1 (n0), hay i=log2n, khi T(n) = 0 + log2n

    42

  • 27/01/2015

    22

    4. nh gi bng thc nghim

    43

    4. nh gi bng thc nghim

    44

  • 27/01/2015

    23

    4. nh gi bng thc nghim

    45

    4. nh gi bng thc nghim

    46

  • 27/01/2015

    24

    4. nh gi bng thc nghim

    47

    4. nh gi bng thc nghim

    48

  • 27/01/2015

    25

    NI DUNG BI HC

    I. Gii thiu

    II. Phn tch trc tip cc on m

    III. Phn tch on m c li gi chn trnh con

    IV. nh gi da trn thc nghim

    V. Bi tp

    49

    5. Bi tp

    1. Tnh s php so snh trong on m v d 1 slide 11.

    2. S dng cng thc tnh tng dy ly tha tnh ra phc tp lthuyt v d 2 slide 13, nh gi bng thc nghim chng trnhtrong v d 2 slide 13 v so snh vi nh gi l thuyt.

    3. Tnh tham s (i) qua tnh s php so snh v d 10 slide 26

    4. Tnh s php gn v d 10 trang 26.

    5. Tnh s php so snh, s php gn trong on chng trnh v d11 slide 27.

    6. Tnh s php so snh, s php gn trong on chng trnh v d12 slide 28.

    50