+ All Categories
Home > Documents > Bai 1 Analysis

Bai 1 Analysis

Date post: 15-Feb-2018
Category:
Upload: sang-vo
View: 217 times
Download: 0 times
Share this document with a friend

of 47

Transcript
  • 7/23/2019 Bai 1 Analysis

    1/47

    PHN TCH GII THUT

    Bi ging Cu trc dliu v Gii thut

    1

  • 7/23/2019 Bai 1 Analysis

    2/47

    Gii thiu mn hc

    Phn tch gii thut

    Cu trc dliu v Gii thut

  • 7/23/2019 Bai 1 Analysis

    3/47

    Gii thiu mn hc Trng tm ca mn hc:Cc cu trc dliu v gii thut c lin quan Tnh ng n v phc tp (thi gian v khng gian)

    Yu cu:Nhp mn v Kthut lp trnh: hm, mng, cu trc,

    qui, con tr

    Ngn nglp trnh: C/C++

    Song song: Lp trnh hng i tng

    3

  • 7/23/2019 Bai 1 Analysis

    4/47

    Tchc mn hc Tnh im (thang im 10):n: 40% Thi vit cui k(m): 60%

    im cng (trnh by n): 30%

    Trao i thng tin: Trang web mn hc

    Email: [email protected]

    Gio vin hng dn

    4

  • 7/23/2019 Bai 1 Analysis

    5/47

    Gii thiu CTDL & GT Pht biu ni ting:

    Chng trnh = Gii thut + Cu trc dliu. Tt cchng ta u lp trnh; do c lm quen

    vi gii thut v cu trc dliu.

    C lta khng thy nhng vn ny mt cch ringbit; M ta thy nhng cu trc dliu di dng nhng

    thnh phn lp trnh n gin (c cung cp bi

    STLthvin mu chun). Tuy nhin, cu trc dliu khc bit so vi gii thut,

    v c vai tr rt quan trng.

    5

  • 7/23/2019 Bai 1 Analysis

    6/47

    Mc tiu Mc tiu chnh ca mn hc ny l cung cp mt

    suy nghc hthng vgii thut v cu trc dliu. Hai nguyn l nh hng vmn hc: tnh tru

    tng v phn tch hnh thc. Tnh tru tng: Tp trung trn cc chc

    ng dng rng ri trn nhiu bi ton khc nhau. Phn tch: Sdng mt cch hnh thc so snh

    hai i tng (cu trc dliu hay gii thut). Cth, ta squa tm vtnh ng n, v cc

    gii hn vthi gian v khng gian (bnh) trongtrng hp xu nht.

    6

  • 7/23/2019 Bai 1 Analysis

    7/47

    Khi qut mn hc Phn tch gii thut

    Kiu dliu tru tng (ADT) Danh sch lin kt

    Stack/Queue Bm/Bng bm

    Cu trc cy

    Cc gii thut sp xp Nn/gii nn

    7

  • 7/23/2019 Bai 1 Analysis

    8/47

    Gii thut v Cu trc dliu

    Phn tch gii thut Cc k hiu tim cn BigO

    Cc quy tc phn tch gii thut

    Mt sv d

    Phn tch gii thut

  • 7/23/2019 Bai 1 Analysis

    9/47

    Phn tch gii thut Cc nn tng ca phn tch gii thut v cu trc d

    liu. Phn tch: Lm sao don hiu quca mt gii thut

    Mt gii thut thc hin tt n mc no Lm sao so snh cc gii thut khc nhau cho 1 bi ton

    Cu trc dliu Lm sao lu tr, truy xut v qun l dliu hiu qu

    Cc cu trc dliu nh hng n hiu quca gii thut

    9

  • 7/23/2019 Bai 1 Analysis

    10/47

    V d

    cho gi

    i thut

    int factorial (int n) {

    if (n

  • 7/23/2019 Bai 1 Analysis

    11/47

    V dcc gii thut ni ting Tnh bi schung ca Euclid

    Tm cn bc hai ca Newton Bin i Fourier nhanh

    Nn (Huffman, Lempel-Ziv, GIF, MPEG)

    M ho DES, RSA Gii thut n gin cho lp trnh tuyn tnh

    Gii thut tm ng i ngn nht(Dijkstra, Bellman-Ford)

    M ho sa li(CDs, DVDs) Kim sot tc nghn TCP, nh tuyn IP

    So khp mu (Hnh hc)

    ng ctm kim (Search Engines)

    11

  • 7/23/2019 Bai 1 Analysis

    12/47

    Vai tr ca gii thut trong thgii

    hin i Lng dliu khng l Thng mi in t(Amazon, Ebay) Lu thng trn mng (theo di, tnh tin dch vvin

    thng)

    Giao dch csdliu (Mua bn, kim k) Cc o trong khoa hc (khng gian, a cht)

    Mng sensor, cc thRFID

    Sinh tin hc (genome, ngn hng protein)

    12

  • 7/23/2019 Bai 1 Analysis

    13/47

    Bi ton Chui con Ln nht Cho mt chui snguyn A1, A2, , An, tm gi trln nht

    c thca chui con Ai, , Aj. Sc thm.

    Ta cn tm mt on lin tc vi tng ln nht.

    V d: -2, 11, -4, 13, -5, -2 Kt qul 20 (chui con tA2 n A4).

    Chng ta c 4 gii thut khc nhau, vi phc tp vmtthi gian l O(n3), O(n2), O(n log n), and O(n).

    Vi n = 106, gii thut 1 cn > 10 nm; gii thut 4 chcnmt phn trm giy!

    13

  • 7/23/2019 Bai 1 Analysis

    14/47

    int maxSum = 0;

    for( int i=0; i

  • 7/23/2019 Bai 1 Analysis

    15/47

    Gii thut 2 tng: Vi tng ti n j-1, ta c thtnh tng ti n j

    trong khong thi gian hng s. Gii thut ny bqua vng lp trong, v gim thi gian chy

    xung O(n2).

    into maxSum = 0;

    for( int i = 0; i < n; i++ )

    int thisSum = 0;

    for( int j = i; j < n; j++ )

    { thisSum += a[ j ];

    if( thisSum > maxSum )

    maxSum = thisSum;

    }

    return maxSum;

    15

  • 7/23/2019 Bai 1 Analysis

    16/47

    Gii thut 3 Gii thut ny dng cch chia tr.

    Gista chia i chui ban u ti im gia. Chui con ln nht hoc nm hon ton na bn tri, hon

    ton na bn phi, hoc ct ngang im gia.

    V d: na tri | na phi

    4 -3 5 -2 | -1 2 6 -2

    Ln nht bn tri l 6 (A1 n A3); ln nht bn phi l 8(A6 n A7). Nhng ct ngang im gia ln nht l 11 (A1n A7).

    16

  • 7/23/2019 Bai 1 Analysis

    17/47

    V d:

    na tri | na phi4 -3 5 -2 | -1 2 6 -2 Chui con ln nht hai bn c thtm c bng qui. Lm cch no tm c chui con ln nht ct ngang im

    gia? im lu : Bn tri ca chui ct ngang im gia l chui con ln

    nht kt thc -2. Bn phi l chui con ln nht bt u -1.

    C thtnh chui ny bng 1 dng qut tuyn tnh trong thi

    gian O(n).

    Gii thut 3 (tt)17

  • 7/23/2019 Bai 1 Analysis

    18/47

    Gii thut 3: Phn tch

    Cch tt nht phn tch chia trl hi qui:

    T(1) = 1

    T(n) = 2T(n/2) + O(n)

    Kt quca biu thc hi qui: T(n) = O(n log n).

    18

  • 7/23/2019 Bai 1 Analysis

    19/47

    Gii thut 4

    phc tp thi gian r rng l O(n)

    Nhng liu gii thut trn c chnh xc? (Cn chng minh)

    2, 3, -2, 1, -5, 4, 1, -3, 4, -1, 2int maxSum = 0, thisSum = 0;

    for( int j = 0; j < n; j++ )

    {

    thisSum += a[j];

    if ( thisSum > maxSum )

    maxSum = thisSum;

    else if ( thisSum < 0 )

    thisSum = 0;

    }

    return maxSum;

    }

    19

  • 7/23/2019 Bai 1 Analysis

    20/47

    Gii thut 4: chng minh Chui con ln nht khng thbt u hay kt thc ti Ai m.

    Tng qut hn, chui con ln nht khng thc phn u vitng m.

    Vd: -2 11 -4 13 -5 -2

    Do , bt ckhi no thy Ai n Aj c tng < 0, tng c thtin i n j+1

    CM: Gisj l chsu tin sau i m tng < 0

    Chui con ln nht khng thbt u tbt kvtr p nmgia i v j. V Ain Ap-1 dng, do bt u ti stthn.

    20

  • 7/23/2019 Bai 1 Analysis

    21/47

    Gii thut 4int maxSum = 0, thisSum = 0;

    for( int j = 0; j < n; j++ ){

    thisSum += a[j];

    if ( thisSum > maxSum )

    maxSum = thisSum;

    else if ( thisSum < 0 )

    thisSum = 0;

    }

    return maxSum

    Gii thutt li gi tr khi phnu < 0. Ngcli, n tnh tng mi v cp nht maxSum trongmt lt.

    21

  • 7/23/2019 Bai 1 Analysis

    22/47

    Ti sao c

    n Cc Gii thut Hi

    u qu?

    GisN = 106

    Mt PC c thc/xl N mu tin trong 1 giy. Nhng nu gii thut thc hin N*N php tnh, n cn 1 triu

    giy = 11 ngy!!!

    Bi ton Ngi bn hng (TSP) i qua 100 thnh ph. Mt siu my tnh c thkim tra 100 tvng/giy vn cn

    10100 nm!

    Cc gii thut phn tch tha snhanh c thbcc m hnhm ho. Nghin cu cc gii thut gip xc nh di mho an ton. (> 100 chs)

    22

  • 7/23/2019 Bai 1 Analysis

    23/47

    Lm cch no nh gi hiu

    qugii thut? o no dng nh gi cc gii thut?

    di ca chng trnh (s dng lnh)D lp trnh (pht hin li, qun l)

    B nh

    Thi gian thc thi

    Thi gian thc thi l tiu chun quytnh.C th lng gic v d dng so snh

    Thng lyu t c chai quan trng

    23

  • 7/23/2019 Bai 1 Analysis

    24/47

    Tnh tru tng Mt gii thut c ththc thi khc nhau tuthuc vo:

    nn tng phn cng (PC, Cray, Sun) ngn nglp trnh (C, Java, C++) lp trnh vin (you, me, Bill Joy)

    Tuy khc nhau vchi tit, tt cm hnh phn cng vchng trnh u c im tng tnhau: chng l cc myTuring.

    Chcn m cc php ton cbn l .

    o n gin nhng c gi tri vi hiu quca cc thutton l mt hm ca kch thc input.

    24

  • 7/23/2019 Bai 1 Analysis

    25/47

    Trng hp Trung bnh, Xu nht

    v Tt nht Hiu quca gii thut c nh gi trong trng

    hp input no? Trng hp trung bnh: Kh don phn phi ca thgii tht

    Trng hp tt nht: C vkhng thc t

    Trng hp xu nht:a ra bo m tuyt i Ta sdng o trong trng hp xu nht.

    25

  • 7/23/2019 Bai 1 Analysis

    26/47

    V d

    Cng vector Z = A+B

    for (int i=0; i

  • 7/23/2019 Bai 1 Analysis

    27/47

    Nhn (ngoi) vector Z = A*BT

    for (int i=0; i

  • 7/23/2019 Bai 1 Analysis

    28/47

    n gin ho binT(n) = ckn

    k+ ck-1nk-1+ ck-2 n

    k-2+ + c1n + co

    qu phc tp qu nhiu shng

    Rt kh so snh hai biu thc m mi biu thc c 10 hay

    20 shng Ta c thc scn nhiu biu thc nhvy khng?

    28

  • 7/23/2019 Bai 1 Analysis

    29/47

    Chcn gimt shng!

    shng tng nhanh nht (chi phi thi gian thc thi) Khng cn gicc hshng Cc hshng chu nh hng bi phn cng, ngn

    ng,

    Gi trtim cn (khi n ln) c xc nh hon ton bi shng dn u. V d T(n) = 10 n3 + n2 + 40n + 800

    Nu n = 1,000, th T(n) = 10,001,040,800 sai sl 0.01% nu loi bmi shng tr n3

    Trong mt dy chuyn lp rp ngi thchm nht quytnh tc sn xut.

    Cc bc n gin ho29

  • 7/23/2019 Bai 1 Analysis

    30/47

    Shng tng nhanh hn (v d2n) sdn dn ln t

    cc shng tng chm hn(vd, 1000n) bt khsca chng l g!

    Ni cch khc, vi cng mt sgia tng vthigian cho php, mt gii thut c bc cao hn skhng thu c li trong vic gii quyt cc bi

    ton ln hn.

    n gin ho30

  • 7/23/2019 Bai 1 Analysis

    31/47

    T(n) gimt s

    hng

    bhs

    3n2+4n+1 3 n2 n2

    101 n2+102 101 n2 n2

    15 n2+6n 15 n2 n2

    a n2+bn+c a n2 n2

    Tt cu c tc tng nhnhau

    Cc tim cn31

  • 7/23/2019 Bai 1 Analysis

    32/47

    T(n)

    n n nlog n n2 n3 n4 n10 2n

    10 .01s .03s .1s 1s 10s 10s 1s

    20 .02s .09s .4s 8s 160s 2.84h 1ms

    30 .03s .15s .9s 27s 810s 6.83d 1s

    40 .04s .21s 1.6s 64s 2.56ms 121d 18m

    50 .05s .28s 2.5s 125s 6.25ms 3.1y 13d

    100 .1s .66s 10s 1ms 100ms 3171y 41013

    y

    103

    1s 9.96s 1ms 1s 16.67m 3.171013

    y 3210283

    y

    104

    10s 130s 100ms 16.67m 115.7d 3.171023

    y

    10

    5

    100s 1.66ms 10s 11.57d 3171y 3.1710

    33

    y10

    6 1ms 19.92ms 16.67m 31.71y 3.17107y 3.171043y

    Gismy tnh thc hin1 tthao tc mi giy.

    phc tp v tnh khthi32

  • 7/23/2019 Bai 1 Analysis

    33/47

    Khng chp nht vo cu ch

    mt thut gii 100n t hn mt thut gii n2 khi n N.

    c dng nhiu nht

    Big-Omega, cn di: T(n) = (f(n)) Tn ti c>0 v N sao cho T(n) cf(n) khi n > N. Tng tf(n) = O(T(n)).

    Big-Theta, cn trn v di: T(n) = (f(n)) Tng tT(n) = O(f(n)) v T(n) = (f(n))

    Cc k hiu tim cn34

  • 7/23/2019 Bai 1 Analysis

    35/47

    33

    25

    10 0

    (?)(?)

    nn

    nn

    nn

    O

    23 2)( nnnT +=

    V d

    35

  • 7/23/2019 Bai 1 Analysis

    36/47

    )(log/

    ))/((!)(

    )(

    )(

    )(

    )()(c

    )(

    ni

    ennnrr

    ni

    ni

    ni

    nnc

    nf

    n

    i

    n

    nini

    kkni

    ni

    ni

    kii

    ki

    =

    =

    +

    =

    =

    =

    =

    1

    1

    1

    0

    1

    1

    32

    1

    2

    1

    1

    V d

    Tim cn

    36

  • 7/23/2019 Bai 1 Analysis

    37/47

    T(n) = cknk+ ck-1n

    k-1+ ck-2 nk-2+ + c1n + co

    Qu phc tp O(nk)

    mt shng duy nht loi bcc hshng

    n gin hn nhiu, cc shng v hshng khckhng c nh hngn tim cn

    Cc chskhc rt kh nh lng

    Tm tt (Ti sao O(n)?)37

  • 7/23/2019 Bai 1 Analysis

    38/47

    Phn tch Th

    i gian th

    c thi Cc quy tc

    pht biu n gin (c, ghi, gn)O(1)

    cc php tnh n gin (+ - * / == > >= <

  • 7/23/2019 Bai 1 Analysis

    39/47

    Hai qui tc quan trngQuy tc cng nu ta thc hin mt sthao tc theo tht, thi gian

    thc thi bchi phi bi thao tc tn nhiu thi gian nht

    Quy tc nhn nu ta lp li mt thao tc mt sln, tng thi gian thc

    thi l thi gian thc thi ca thao tc nhn vi svng lp

    Phn tch Th

    i gian th

    c thi (tt)39

  • 7/23/2019 Bai 1 Analysis

    40/47

    if (cond) then O(1)

    body1 T1(n)else

    body2 T2(n)

    T(n) = O(max (T1(n), T2(n))

    Phn tch Th

    i gian th

    c thi (tt)40

  • 7/23/2019 Bai 1 Analysis

    41/47

    Gi hm

    A gi BB gi C

    Mt chui thao tc gi hm ng cp:T(n) = max(TA(n), TB(n), TC(n))

    Phn tch Th

    i gian th

    c thi (tt)41

  • 7/23/2019 Bai 1 Analysis

    42/47

    V d

    for (i=1; i maxVal){

    maxVal= A[i];

    maxPos= i;

    }

    phc tp tim cn: O(n)

    Php so snh: O(n) Php gn: Xu nht: O(n)

    Trung bnh: O(n)

    42

  • 7/23/2019 Bai 1 Analysis

    43/47

    V d

    for (i=0; i= i+1; j--)

    if (A[j-1] > A[j]){

    temp = A[j-1];

    A[j-1] = A[j];

    A[j] = tmp;}

    }

    }

    phc tp tim cn l O(n2)

    43

  • 7/23/2019 Bai 1 Analysis

    44/47

    Th

    i gian Th

    c thi cho

    qui T(n) cnh ngha qui theo T(k), k

  • 7/23/2019 Bai 1 Analysis

    45/47

    V d: Giai tha

    int factorial (int n) {

    if (n

  • 7/23/2019 Bai 1 Analysis

    46/47

    V d: Giai tha (tt)

    int factorial1(int n) {

    if (n

  • 7/23/2019 Bai 1 Analysis

    47/47

    Bi tp

    Vit chng trnh v Tnh phc tp :

    Tm phn t ln th nh ca 1 mngBi ton tm di chui con tng lin tip di nht

    ca mt dys: vit t nht hai chng trnh vi

    phc tp khc nhau.V d: 19 43 23 5 36 72 => 3

    (*) Bi ton tm di chui con tngkhng lin tipdi nht ca mt dys:V d: 19 43 23 5 36 72 => 4

    47


Recommended