Báo Cáo Seminar - Phương pháp quy hoạch động

Embed Size (px)

Citation preview

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    1/75

    Mc lc

    LI MU ................................................................................................................. 4

    CHNG 1: TNG QUAN VQUY HOCH NG ........................................... 6Bi ton ti u ............................................................... ..61.1

    1.1.1Khi nim6

    1.1.2Mt s v d v bi ton ti u6

    1.1.3Nguyn l ti u Bellman7

    Phng php quy hoch ng. ...................................... ..71.2

    1.2.1Phng php chia tr...8

    1.2.2Khi nim v quy hoch ng.8

    1.2.3Phng php quy hoch ng.10

    1.2.4u im v hn ch ca phng php quy hoch ng12

    CHNG 2: NG DNG PHNG PHP QUY HOCH NG GII MTSBI TON CTH ............................................................................................. 14

    1 Bi ton: Chia phn thng. ................................................................................ 141.1. Pht biu bi ton .......................................................... 14

    1.2. tng 30s ................................................................... 14

    1.3. Lp hthc.................................................................... 15

    1.4. Thut ton ..................................................................... 16

    1.5. Tnh ng n ............................................................... 21

    1.6. phc tp thut ton .................................................. 21

    1.7. ng dng thc tin : ..................................................... 21

    1.8. Chng trnh : ............................................................... 22

    2 Bi ton: Lp lch thu thmay hng thng ...................................................... 242.1 Pht biu bi ton. ......................................................... 24

    2.2 tng 30s. .................................................................. 24

    2.3 Lp hthc.................................................................... 24

    2.4 Thut ton. .................................................................... 25

    2.5 Tnh ng n. .............................................................. 28

    2.6 phc tp thut ton .................................................. 28

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    2/75

    2.7 ng dng ...................................................................... 28

    3 Bi ton: Dy con c tng chia ht cho k ............................................................ 293.1 Pht biu bi ton. ......................................................... 29

    3.2 tng sau 30s ............................................................ 29

    3.3 Phng php quy hoch ng ....................................... 293.4 Thut gii v chng trnh............................................ 30

    3.5 Tnh ng n v tnh dng .......................................... 30

    3.6 phc tp thut ton .................................................. 31

    3.7 ng dng : .................................................................... 31

    4 Bi ton: Tng ca n stnhin sp theo trt tkhng tng......................... 334.1 Pht biu bi ton .......................................................... 33

    4.2 tng 30s ................................................................... 33

    4.3 Lp hthc.................................................................... 33

    4.4 Thut ton ..................................................................... 35

    4.5 Tnh ng n ............................................................... 39

    4.6 phc tp thut ton .................................................. 39

    4.7 ng dng thc tin : ..................................................... 39

    5 Bi ton: Khai trin nhthc Newton ................................................................. 40

    5.1 Pht biu bi ton .......................................................... 40

    5.2 tng 30s ................................................................... 405.3 Lp hthc.................................................................... 40

    5.4 Thut ton ..................................................................... 41

    5.5 Chng minh tnh ng n ........................................... 42

    5.6 phc tp thut ton .................................................. 42

    5.7 ng dng ...................................................................... 42

    6 Bi ton: Tng sln chuyn ghra v chuyn ghvo ................................... 43

    6.1 Pht biu bi ton. ......................................................... 43

    6.2 tng 30s. .................................................................. 436.3 Lp hthc.................................................................... 44

    6.4 Thut ton. .................................................................... 45

    6.5 Tnh ng n. .............................................................. 50

    6.6 phc tp thut ton .................................................. 50

    6.7 ng dng ...................................................................... 50

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    3/75

    7 Bi ton: Cp scng ........................................................................................... 51Pht biu bi ton .......................................................... 517.1

    tng 30s ................................................................... 517.2

    Lp hthc.................................................................... 517.3

    Thut ton ..................................................................... 527.4 Chng minh tnh ng n ........................................... 547.5

    phc tp thut ton .................................................. 547.6

    ng dng ...................................................................... 547.7

    8 Bi ton: Xa t nht k tca mt xu c xu i xng. ...................... 55Pht biu bi ton .......................................................... 558.1

    tng 30s ................................................................... 558.2

    Lp hthc: .................................................................. 568.3

    Thut ton ..................................................................... 578.4

    Tnh ng n. .............................................................. 628.5

    phc tp thut ton .................................................. 628.6

    9 Bi ton: Ngi nng dn ................................................................................... 63Pht biu bi ton .......................................................... 639.1

    tng 30s ................................................................... 639.2

    Lp cng thc................................................................ 649.3

    Thut ton ..................................................................... 649.4 Chng minh tnh ng n ........................................... 669.5

    phc tp thut ton .................................................. 669.6

    ng dng ...................................................................... 669.7

    10 Bi ton nhn ma trn .......................................................................................... 67

    Pht biu bi ton .......................................................... 6710.1

    tng 30s ................................................................... 6810.2

    Gii thut quy hoch ngError! Bookmark not defined.10.3

    Thut ton ..................................................................... 7110.4 Tnh ng n v tnh dng .......................................... 7110.5

    phc tp thut ton .................................................. 7210.6

    ng dng ca ma trn ................................................... 7210.7

    Kt lun.......................................................................................................................... 74

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    4/75

    LI MU

    Trong thc t, khi gp mt bi ton, mt vn cn c gii quyt, ta lunmong mun tm c phng n cho kt qutt nht, ti u nht. Bi vy, cc lp bi

    ton vti u ha lun ng mt cai tr quan trng, v tnh ng dng cao trong thc

    tin.

    i vi lp bi ton ti u, c rt nhiu phng php gii quyt nh: phng

    php nhnh cn, phng php tham lam, phng php quy hoch ng. Ty tng bi

    ton cthm ta sdng phng php thch hp, nhm t c hiu qucao nht

    (hiu nng, tc thc hin, phc tp, bnhsdng..). Trong , phng php

    quy hoch ng (Dynamic programming) lun c u tin la chn v tnh hiu qu

    cao v ti u hn hu ht cc phng php khc.

    Cc bi ton quy hoch ng chim mt vtr kh quan trng trong tchc hot

    ng v sn xut. Chnh v l m trong cc k thi hc sinh gii quc gia v quc t

    chng ta thng gp loi ton ny.

    Thng thng nhng bi ton dng phng php quay lui, vt cn cho cc bi

    ton quy hoch ng th chc thvt c cc tp dliu nh, kch thc chng vi

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    5/75

    chc byte. Nu tm c ng hthc thhin bn cht quy hoch ng ca bi ton

    v kho tchc dliu th ta c thxl c nhng tp dliu kh ln.

    Phng php quy hoch ng l phng php gii quyt tt cc bi ton ti u,

    ng thi khi p dng gii mt sbi ton khng ti u cng cho ra kt qurt tt.

    Tuy nhin, vic p dng phng php quy hoch ng khng phi d, v mi bi ton

    c c im tnh cht ring v cch gii hon ton khc nhau. Vy mt bi ton nh

    thno th c thp dng c phng php quy hoch ng, v liu c phi rng tt

    ccc bi ton u c thgii quyt c bng quy hoch ng?

    Hy vng trong bo co ny, em c thlm r phn no nhng cu hi trn. Vcho mi ngi thy c tng quan vquy hoch ng v cc bi ton no gii quyt

    bng phng php quy hoch ng.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    6/75

    CHNG 1: TNG QUAN VQUY HOCH NG

    Bi ton ti u1.1

    1.1.1

    Khi nim

    Bi ton ti u gm c 1 hm f gi l hm mc tiu hay hm nh gi; cc hm

    g1, g2, , gncho gi trlogic gi l hm rng buc. Yu cu ca bi ton l tm mt

    phng n x thomn tt ccc rng buc g1, g2, , gnv x l tt nht, theo ngha

    khng tn ti mt cu hnh no khc thomn cc hm rng buc m f() tt hn

    f(x).

    Bi ton ti u l bi ton thng c nhiu phng n chp nhn c v minghim c mt gi trnh gi. Mc tiu t ra l tm ra nghim ti u, l phng

    n c gi trnh gi ln nht hoc nhnht (ti u).

    1.1.2 Mt s v d v bi ton ti u

    V d: Bi ton Ba l: c mt ba l c thcha ti a trng lng M v c n

    vt (n 100), mi vt c trng lng wiv gi trbi. (M, wi, b i Hy chn v

    xp cc vt vo ba l tng gi trca ba l l ln nht.

    Vi bi ton trn ta thy:+ Hm mc tiu: ibi max

    + Hm rng buc : ipi M

    Vi pi =0 : vt thI khng c chn

    pi =1 : vt thI c chn.

    Tm li, bi ton ti u rt phong ph, a dng, c ng dng nhiu trong thc

    t. Tuy nhin, cn rt nhiu cc bi ton ti u l khng gii c hoc cha c li

    gii.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    7/75

    1.1.3 Nguyn l ti u Bellman

    Nguyn l ti u ca R.Bellmam c pht biu nh sau: ti u bc th n

    bng cch ti u tt ccon ng tin n bc n-1 v chn con ng c tng chi ph

    tbc 1 n bc n-1 v t n-1 n n l tt nht (nhiu nht).

    Nguyn l ny c tha nhn m khng chng minh.

    Nguyn l ti u Bellman cng c th pht biu theo mt cch khc nh sau:

    Vi mi qu trnh iu khin ti u, bt u t trng thi A0. Khi xy dng trng

    thi Akbt ktrong qu trnh ttrng thi Ak-1,nu Ak-1l ti u, th Akxy dng

    c sti u. Vy trng thi An cui cng sl ti u.

    Phng php tm nghim ti u theo nguyn l Bellman c gi lphng

    php quy hoch ng. Thut ngny ni ln thc cht ca qu trnh iu khin ti u

    l ng: C th trong mt sbc u tin la chn iu khin ti u dng nh

    khng tt nhng tu chung cqu trnh li l tt nht.

    Phng php quy hoch ng1.2

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    8/75

    1.2.1 Phng php chia tr

    Chia tr l phng php tch bi ton ban u thnh cc bi ton con c

    lp, sau gii cc bi ton con ri thp dn li gii tbi ton con nhnht n bi

    ton ban u. Phng php chia trl mt phng php rt thng dng trong tin hc

    v kthut tnh ton.

    Phng php chia trthng c p dng cho nhng bi ton c bn cht

    quy: bi ton P ban u c thc gii bng li gii ca bi ton con P c dng

    ging nh P,nhng theo mt ngha no P phi nhhn P, dgii hn P v vic gii

    n khng cn dng n P. Gii thut dng gii bi

    ton c bn cht quy gi l gii thut quy.

    1.2.2 Khi nim v quy hoch ng

    a. Khi nim

    Phng php quy hoch ng do nh ton hc

    ngi MRichard Bellman (1920- 1984) pht minhnm 1953. Phng php ny dng gii cc bi ton

    ti u c bn cht qui, tc l tm phng n ti u

    cho bi ton c tha v tm phng n ti u

    ca mt shu hn cc bi ton con. Cng p dng

    phng php chia tr, nhng so vi quy, quy

    hoch ng c ci tin v ti u hn rt nhiu.

    Phng php quy gii quyt bi ton theo hng top-down (ttrn xung),

    ngha l gii bi ton ban u, ta phi i gii cc bi ton con b hn, v chia cc

    bi ton con ny b hn na, n cc bi ton c s. y l mt phng php hay, tuy

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    9/75

    nhin phng php ny sgp hn chvmt thi gian, tc do phi tnh i tnh li

    nhiu ln mt sbi ton con ging nhau no .

    Ngc li, phng php quy hoch ng sdng nguyn l bottom-up, ngha l

    "i tdi ln". u tin, ta sphi gii cc bi ton con c s, n gin nht, c th

    tm ngay ra nghim. Sau kt hp cc bi ton con ny li tm li gii cho bi ton

    ln hn v cnh thcho n khi gii c bi ton ban u. Vi phng php ny,

    mi bi ton con sau khi gii xong u c lu trli v em ra sdng nu cn. Do

    tit kim bnhv ci thin c tc .

    Vy phng php quy hoch ng l mt kthut nhm n gin ha vic tnhton cc cng thc truy hi bng cch lu ton bhay mt phn kt qutnh ton ti

    mi bc trc vi mc ch sdng li.

    Quy hoch ng = Chia tr+ Hng lu tr(lu li kt qu).

    b. c im ca phng php quy hoch ng

    Khi gii mt bi ton bng cch chia tr, ta chia bi ton ln thnh cc bi

    ton con cng kiu nhhn, v gii quyt bng gii thut quy. Khi , trn thc t,

    nhiu kt qutrung gian phi tnh li nhiu ln, dn ti vic lng ph v chm tc .

    V vy, trnh vic phi tnh ton li mt skt qutrung gian nhiu ln, ta

    cn xy dng 1 bng phng n lu gicc kt qu tm c ca cc bi ton con.

    T p dng cho vic tm kim kt quca cc bi ton cha ln hn. Vy quy hoch

    ng bt u tvic gii tt ccc bi ton nhnht (bi ton c s) t tng

    bc gii quyt nhng bi ton ln hn cho ti khi gii c bi ton ln nht (bi

    ton ban u).

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    10/75

    Vic p dng bng phng n khin quy hoch ng ti uu hn rt nhiu,

    gim thiu cc qu trnh tnh ton, v thhin sc mnh ca nguyn l chia trn

    cao .

    Quy hoch ng thng dng mt trong 2 cch tip cn sau:

    Tip cn tdi ln (bottom up)

    Tip cn ttrn xung (top down)

    Cch tip cn tdi ln hiu quhn nn cch tip cn tdi ln (bottom up)

    thng c sdng nhiu hn.

    Tm li:

    Quy hoch ng dng gii quyt bi ton ti u theo nguyn l chia

    tr nhng ci tin hn nhiu phng php gii quyt bi ton theo hng

    quy, v thhin t tng chia trn cao .

    Quy hoch ng lm gim phc tp, gim thi gian gii quyt bi

    Quy hoch ng thng tip cn theo hng tdi ln (Bottomup)

    1.2.3 Phng php quy hoch ng

    a. Bi ton thno th c gii quyt bng quy hoch ng?

    Mt bi ton ti u mun gii c bng phng php quy hoch ng khi bi

    ton ti u c cc c im di y:

    Bi ton ln phi phn r c thnh nhiu bi ton con, m sphi hp li gii

    ca cc bi ton con cho ta li gii ca bi ton ln.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    11/75

    V quy hoch ng l i gii tt ccc bi ton con nn nu khng khng

    gian vt l lu trkt qu(bnh, a ) phi hp chng th phng php

    quy hoch ng cng khng ththc hin c.

    Qu trnh tbi bi ton c stm ra li gii bi ton ban u phi qua hu hnbc.

    b. Cc bc thc hin quy hoch ng

    Bc 1: Lp hthc truy hi

    Da vo nguyn l ti u, ta chia bi ton thnh tng giai on, tm cch phn

    r bi ton thnh cc bi ton con tng tc kch thc nhhn, tm hthc quanhgia kt qubi ton kch thc cho vi kt qu ca cc bi ton con cng

    kiu c kch thc nhhn ca n nhm xy dng hthc truy hi.

    Cth, ta chia vic gii bi ton thnh n trng thi: n, n-1, n-2, , 2, 1, 0. Mi

    trng thi k khi chu tc ng iu khin dk sbin thnh trng thi k+1. Trng thi

    k+1 khi chu tc ng iu khin dk+1sbin thnh trng thi k+2. Ta sso snh v tm

    im chung gia cc trng thi d0, d1, d2, , dk, dk+1, , dn-1. T xy dng hthc

    truy hi d l hthc truy hi tng qut cu bi ton.

    Bc 2: Tchc dliu v chng trnh

    Ta tchc dliu sao cho t cc yu cu sau:

    Dliu c tnh ton dn theo cc bc.

    Dliu c lu trvo bng phng n gim lng tnh ton lp li.

    Kch thc bnhdnh cho lu trdliu cng nhcng tt, kiu dliu c

    chn ph hp, nn chn n gin dtruy cp.

    Cth:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    12/75

    Cc gi tr ca Fkthng c lu tr trong mt bng (mng mt chiu hoc

    hai, ba, v.v chiu).

    Ta tnh ton v lu li gi trca cc bi ton c s(ddng tm ra cch gii)

    lm tin gii quyt cc bi ton ln hn. Da vo hthc truy hi v kt quca cc bi ton c sgii cc bi ton

    ln hn

    Lu trnghim tng ng vi cc gi trti u trong tng gian on vo bng

    mt cch thch hp

    Bc 3: Truy vt, tm nghim v lm tt

    Da vo bng lu trnghim v bng phng n ti u trong tng giai on

    xy dng, ta stm ra kt qunghim ti u ca bi ton.

    Sau khi tm c nghim ti u ca bi ton. Ta tm cch lm tt thut ton

    bng cch thu gn h thc truy hi v gim kch thc bnh. V dnh tm cch

    gim b nh lu tr t mng hai chiu thnh mng mt chiu, t mng mt chiu

    xung thnh hs.

    Trong thc t, khi mun lm tt vkhng gian, ta sphi tchc li chng

    trnh v thc hin thm cc bc lm tt, dn ti thit hi v thi gian tnh ton, v

    ngc li. Bi vy, trong mt strng hp, ta cn iu chnh gia lm tt khng gian

    v thi gian t c hiu sut m vic tt nht.

    1.2.4 u im v hn ch ca phng phpquy hoch ng

    a. u im

    Phng php quy hoch ng ci thin ng kcvkhng gian lu trv thi

    gian tnh ton so vi hu ht cc phng php gii quyt bi ton ti u khc.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    13/75

    b. Hn ch

    Vic tm h thc truy hi hoc tm cch phn r bi ton khng phi l d.

    Nhiu khi i hi sphn tch tng hp rt cng phu, dsai st, kh nhn ra nh th

    no l thch hp, i hi nhiu thi gian suy ngh. ng thi khng phi lc no kt

    hp li gii ca cc bi ton con cng cho kt quca bi ton ln hn.

    Khi bng lu tri hi mng hai, ba chiu th kh c thxl dliu khi

    kch c d liu ln. C nhng bi ton ti u khng th gii c bng quy hoch

    ng

    Tng kt :

    Khng phi lc no vic kt hp cc bi ton con cng cho ta kt quca bi

    ton ln hn. Hay ni cch khc l vic tm kim "cng thc truy hi" rt kh khn.

    Ngoi ra, slng cc bi ton con cn lu trc thrt ln, khng chp nhn c v

    dliu v bnhmy tnh khng cho php.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    14/75

    CHNG 2: NG DNG PHNG PHP QUY HOCH NG GII MT

    SBI TON CTH

    1

    Bi ton: Chia phn thng.

    1.1.Pht biu bi ton

    Cn chia ht m phn thng cho n hc sinh sp theo thttgii trxung sao

    cho mi bn khng nhn t phn thng hn bn xp sau mnh.

    1 m, n 70.

    1.2. tng 30s

    Lit k tt ccc cch chia thng. Th d, vi sphn thng m = 7, v shc

    sinh n = 4 sc 11 cch chia 7 phn thng cho 4 hc sinh theo yu cu ca u bi.

    l:

    Phng n 1 2 3 4

    1 7 0 0 0

    2 6 1 0 0

    3 5 2 0 0

    4 5 1 1 0

    5 4 3 0 0

    6 4 2 1 0

    7 3 3 1 0

    8 3 2 2 0

    9 4 1 1 1

    10 3 2 1 1

    11 2 2 2 1

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    15/75

    1.3.Lp h thc

    Gi Chia(i, j) l scch chia i phn thng cho j hc sinh, ta thy: Nu khng c hc sinh no (j = 0) th khng c cch chia no (Chia = 0).

    Nu khng c phn thng no (i = 0) th chc mt cch chia (Chia = 1- mi

    hc sinh nhn 0 phn thng). Ta cng quy c Chia(0, 0) = 1.

    Nu sphn thng t hn shc sinh (i < j) th trong mi phng n chia, t

    hc sinh thi + 1 tri skhng c nhn phn thng no:

    Chia(i, j) = Chia(i, i) nu i < j.

    Ta xt tt ccc phng n chia trong trng hp i j. Ta tch cc phng n

    chia thnh hai nhm khng giao nhau da trn sphn thng m hc sinh ng cui

    bng thnh tch, hc sinh thj, c nhn:

    Nhm th nht gm cc phng n trong hc sinh thj khng c nhn

    thng, tc l i phn thng chchia cho (j1) hc sinh v do , scch chia,

    tc l sphn tca nhm ny sl: Chia(i, j1).

    Nhm th hai gm cc phng n trong hc sinh thj cng c nhn

    thng. Khi , do hc sinh ng cui bng thnh tch c nhn thng th

    mi hc sinh khc cng sc thng. Do ai cng c thng nn ta bt ca

    mi ngi mt phn thng (hlnh sau), sphn thng cn li (i j) s

    c chia cho j hc sinh. Scch chia khi sl Chia(i j, j).

    Tng scch chia cho trng hp i j sl tng sphn tca hai nhm, ta c:

    Chia(i,j) = Chia(i,j - 1) + Chia(i -j,j).

    Tng hp li ta c:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    16/75

    i: l s phn thng.

    j: l s hc sinh

    iu kin Chia(i, j)

    j = 0 Chia(i, j) = 0

    i = 0 v j # 0 Chia(i, j) = 1

    i < j Chia(i, i) =

    i j Chia(i, j) = Chia(i, j - 1) + Chia(i -

    j, j)

    1.4.Thut ton

    Ta c phng n u tin ca gii thut Chia nh sau:

    Phng n 1: quy, s cch chia i phn thng cho j hc

    sinh.

    function Chia(i,j: integer):longint;

    begin

    if j = 0 then Chia:=0

    else {j > 0}

    if i = 0 then {i = 0; j > 0}

    Chia:=1

    else {i,j > 0}if i < j then {0 < i < j}

    Chia:=Chia(i,i)

    else {i >= j > 0}

    Chia:=Chia(i,j-1)+Chia(i-j,j);

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    17/75

    end;

    Phng n ny chy chm v pht sinh ra qu nhiu ln gihm trng lp. Bng di y lit k sln gi hm Chia khi gii biton chia thng vi by phn thng (m = 7) v 4 hc sinh (n = 4).Th d, hm Chia(1,1) sc gi 9 ln, Tng sln gi hm Chial 79. 79 ln gi hm sinh ra kt qu11 l qu tn km. Ta c

    phng n u tin ca gii thut Chia nh sau:

    0 1 2 3 4

    0 0 9 1 1 0

    1 9 9 2 1 0

    2 6 6 1 0 0

    3 5 5 2 1 1

    4 3 3 1 1 0

    5 2 2 1 0 0

    6 1 1 0 0 0

    7 1 1 1 1 1

    Lm tt ln 1:Phng n 1 kh dtrin khai nhng chng trnh s

    chy rt lu, bn hy thgi Chia(66,32) tri nghim c iutrn. Din t quy thng trong sng, nhn tn, nhng khi thc

    hin ssinh ra hin tng gi lp li nhng hm quy. Ci tin u

    tin l trnh nhng ln gi lp nh vy. Mun thchng ta tnh sn

    cc gi trca hm theo cc trca u vo khc nhau v in vo

    mt mng hai chiu cc. Mng cc c m tnh sau:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    18/75

    const

    MN = 70;{gioi han tren cua m va n}

    type

    ml1 = array[0..MN ] of longint;

    ml2 = array[0..mn ] of ml1;

    var cc: ml2;

    Ta quy c cc[i, j] cha scch chia i phn thng cho j hc sinh.

    Theo phn tch ca phng n 1, ta c:

    cc[0, 0] = 1; cc[i, 0] = 0, vi i:=1..m.

    cc[i, j] = cc[i, i], nu i < j

    cc[i, j] = cc[i, j - 1]+cc[i -j, j], nu i j

    Ct j -1 Ct j

    Dng i - j [ij, j]

    ...

    Dng i [i, j1] [i, j]

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    19/75

    T ta suy ra quy trnh in tr vo bng cc nh sau:

    Khi tr

    cc[0, 0]:= 1;

    vi i:=1..m: cc[i, 0]:= 0;

    in bng: Ln lt in theo tng ct j:= 1..n. Ti mi ct j ta

    t:

    vi i:=0..j-1: cc[i,j ]:= cc[i, i];

    vi i:= j..m: cc[i, j]:= cc[i, j-1] + cc[i-j, j];Nhn kt qu: Sau khi in bng, gi tr cc[m,n] chnh l kt

    qu cn tm.

    Phng n 2:Dng mng 2 chiu.

    cc[i,j] = scch chia i phn thng cho j hc sinh

    function Chia2(m,n: integer):longint;

    var i,j: integer;

    begin

    cc[0,0 ]:=1;

    for i:=1 to m do cc[i,0]:=0;

    for j:=1 to n do

    begin

    for i:=0 to j-1 do cc[i,j ]:=cc[i,i ];

    for i:=j to m do cc[i,j ]:=cc[i,j-1 ]+cc[i-j,j ];

    end;

    Chia2:=cc[m,n];

    end;

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    20/75

    Lm tt ln 2: Dng mng hai chiu chng ta ch c th tnh ton

    c vi d liu nh. Bc ci tin sau y kh quan trng: chng ta

    dng mng mt chiu. Quan st k quy trnh gn tr cho mng hai

    chiu theo tng ct chng ta d pht hin ra rng ct th j c th c

    tnh ton t ct th j - 1. Nu gi c l mng mt chiu s dng, ta cho

    s hc sinh tng dn bng cch ln lt tnh j bc, vi j:= 1..n. Ti

    bc th j, c[i] chnh l s cch chia i phn thng cho j hc sinh.

    Nh vy, ti bc th j ta c:

    c[i] ti bcj = c[i] ti bc (j 1), nu i < j. T y suy ra

    on c[0..(j 1)] c bo lu.

    c[i] ti bc j = c[i] ti bc (j 1) + c[i j] ti bc j,

    nu i j.

    Biu thc th hai cho bit khi cp nht mng c t bc th j 1 qua

    bc th j ta phi tnh t trn xung, ngha l tnh dn theo chiu

    tng ca i:= j...m.

    Mng c c khi tr bc j = 0 nh sau:

    c[0] = 1; c[i] = 0, vi i:= 1..m.

    Vi ngha l, nu c 0 hc sinh th chia 0 phn thng cho 0

    hc sinh s c quy nh l 1. Nu s phn thng m khc 0 th

    chia m phn thng cho 0 hc sinh s c 0 phng n.

    Ta c phng n 3, dng mt mng mt chiu c nh sau:

    Phng n 3: dng mng 1 chiu c.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    21/75

    Ti bc th j, c[i ] = s cch chia i phn thng cho j

    hc sinh.

    function Chia1(m,n: integer):longint;

    var i,j: integer;

    begin

    fillchar(c,sizeof(c),0);

    c[0 ]:=1;for j:=1 to n do

    for i:=j to m do c[i ]:=c[i ]+c[i-j ];

    Chia1:=c[m ];

    end

    1.5.Tnh ng n

    Trong bi ton ny ta sdng t tng quy hoch ng voxy dng cng thc truy hi, v kim tra li bng quy cng mtkt qu. Nn gii thut chng ta sdng trn lun cho kt qung.

    1.6. phc tp thut ton

    quy Quy hoch ngQuy hoch ng

    ci tin

    Khng gian O(2n) O(m.n) O(m)

    Thi gian O(2n) O(n2) O(n)

    1.7.ng dng thc tin :

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    22/75

    Phn chia cng vic trong thc t.

    Lp lch cng vic, hoc lp lch cho my tnh

    Lit k mt dy tng dn, hoc gim dn.

    1.8.Chng trnh :

    Code chng trnh vit bng C#:

    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;

    usingSystem.Text;usingSystem.Threading.Tasks;

    namespaceSeminarTin{

    classProgram{

    staticvoidMain(){

    Console.WriteLine("PHUONG PHAP QUY HOACH DONG:\n");Console.WriteLine("Bai toan chia phan thuong\n");

    Console.WriteLine("Nhap vao so hoc sinh:\n");long n= long.Parse(Console.ReadLine());Console.WriteLine("Nhap vao so phan thuong:\n");longm= long.Parse(Console.ReadLine());Console.WriteLine("So cach chia m phan thuong cho n hoc sinh:\n");Console.WriteLine(Chia(m,n));Console.ReadLine();

    }

    staticlongChia(longm, longn){

    long[] c= newlong[m+ 1];for(inti= 0; i

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    23/75

    }}

    nh chy chng trnh:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    24/75

    2 Bi ton: Lp lch thu thmay hng thng

    2.1 Pht biu bi ton.

    C mt hp ng may ca i tc bn Mko di trong T

    thng, ngi qun l cn phi lp lch s dng thmay mi thng

    cho dn. Bit rng:

    sthmay ti thiu cn trong thng thi l Scn[i];

    tin dch vkhi thu 1 thmay mi l DV;

    tin n b khi sa thi mt thmay l ST; lng thng mi thmay phi trl LT

    Cn phi thu hay sa thi bao nhiu thmay mi thng

    tng chi ph thmay ca dn l nhnht.

    Gi thit Kt lun

    T = 3DV=4; ST= 5; LT=6 Scn={11; 9;

    10}

    26511 10 10

    2.2 tng 30s.

    Lc bt u sdng nhiu thmay hon thnh l hng v

    iu chnh theo tng thng. Nhc im tn thi gian, khng phi

    lc no cng tm c sthmay cn thit.

    2.3 Lp h thc.

    Tham sthhin kch thc bi ton l sthng T

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    25/75

    Tng chi ph thmay trong T thng c tnh ttng chi ph

    thmay ca

    T-1 thng cng thm chi ph trthmay ca thng thT.

    Chi ph trthmay ca thng thT bao gm :

    Tin lng trcho sthmay ca thng T v

    Tin dch vnu s thmay ca thng T ln hn s

    th may thng T-1 hay tin sa thi nu s th may

    trong thng T nhhn sthmay ca thng T-1.

    Kch thc bi ton phthuc vo 2 tham s: sthng v sthmay

    ca thng

    2.4 Thut ton.

    Lp cng thc quy.

    Scn[i] luu scng nhn cn thu cho thng thi Smax l scng nhn ca thng cn nhiu ngui nht

    Bi ton con nhnht ng vi i = 1 (thng du tin):

    C(1, j) = j * (DV + LT) vi j = Scn[1]..Smax

    C(i, j) l chi ph ti thiu ca i thng du tin nu ti thng th

    i c j cng nhn duc thu.

    C(i, j) = Min{ C(i-1, k) + chi ph dtk ngui thnh j ngui }

    ( i=2..T; j =Scn[i]..Smax; k = Scn[i-1]..Smax)

    Kt qubi ton l: Kq = Min{C(T, j) + chi ph sa thi j

    ngui}

    j=Scn[T]..Smax

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    26/75

    Xy dng bi ton cha C(i,j)

    Mng C[1..T+1, 1..Smax]: C[i, j] ghi nhn gi trC(i, j)

    C(1, j) = j * (DV + LT) vi j = Scn[1]..Smax

    C(i, j) = Min{ C(i-1, k) + chi ph dtk ngui thnh j ngui }

    ( i=1..T; j =Scn[i]..Smax; k = Scn[i-1]..Smax)

    C(T+1, j) = C(T, j) + (j * ST)j=Scn[T]..Smax

    Scn i \ j 9 10 11

    11 1 999 2 99+45+12=1

    99+50+6=1

    99+55=164

    10 3 155+50=205 155+55+4=214

    4 205+60=265 2144+66=280

    Mng Truoc[1..T, 1..Smax]: Truoc[i, j] := k l snguithu thng thi-1 dc C[i, j]

    Scn i \ j 9 10 1111 1 99

    9 2 99+45+12=156

    99+50+6=155 99+55=164

    10 3 155+50=205 155+55+4=214

    4 205+60=265 2144+66=280

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    27/75

    Thut ton to bng phng n C v Truoc:

    {

    for(j=Scn[1]; j

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    28/75

    2.5 Tnh ng n.

    Trong bi ton ny ta sdng t tng quy hoch ng vo xy dng cngthc truy hi, v kim tra li bng quy cng mt kt qu. Nn gii thut chng tasdng trn lun cho kt qung.

    2.6 phc tp thut ton

    phc tp quy Quy hoch ngQuy hoch ng

    ci tin

    Khng gian O(2n) O(2n) O(n)

    Thi gian O(2n) O(n2) O(n)

    2.7 ng dng

    Lp lch cho cng vic.

    Lp lch cho trong my tnh.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    29/75

    3 Bi ton: Dy con c tng chia ht cho k

    3.1 Pht biu bi ton.

    Cho dy s gm n s nguyn dng a1 , a2 , , an. Hy m xem c bao

    nhiu dy con ( cc phn t lien tip) c tng chia ht cho k.

    INPUT:

    Dng 1: gm 2 s nguyn dng n v k.

    Dng 2: cha n s nguyn dng.

    OUTPUT: ghi kt qu tm c.

    3.2 tng sau 30s

    Sdng phng php vt cn gii bi ton. Lit k tt ccc phng n

    c thxy ra. Chn 2 im bt k lm 2 u ca dy, v c n snn c n*(n-1)/2phng n. Mi dy con cn tnh tng ca dy xem c chia ht cho k hay khng,

    phc tp l O(n) . Nh vy phc tp ca tng vt cn l O(n3).

    3.3 Phng php quy hoch ng

    INPUT OUTPUT

    5 3

    1 2 3 4 5

    7

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    30/75

    Ci tin tphng php vt: Ta thy, mun tnh tng 1 on (i,j) bt k ta c

    thtnh ton n gin hn bng mt php tnh B[j]- B[i-1] vi mng B ngha l Bi

    l tng cc st1 n i. Mng B c xy dng vi cng thc B[i]=B[i-1] + A[i],

    phc tp cho bc ny l O(n).Nhn xt vmng B: Nu Bi v Bjng d khi chia cho k (i

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    31/75

    V n xc nh nn khi (i=n) th chng trnh s dng => thut ton c tnh

    dng.

    Chng minh tnh ng n:

    Ta c Cil slng strong mng B khi chia cho k c sd l i, tc ltrong mng B tn ti Cischia k d i. Vi Cista c tt cCi*(Ci-1)/2 cp s, mi

    cp gm 2 s, tng ng vi Ci*(Ci-1)/2 cp (u,v) no m tng cc s trong

    on (u+1,v) chia ht cho k (u thut ton lun ng.

    3.6 phc tp thut ton

    - Vkhng gian (bnh) : sdng 3 mng 1 chiu A, B, C kch thc N .

    - Vthi gian:

    Nhp dliu : O(n)

    Xy dng mng B : O (n)

    Xy dng mng C : O(n)

    Tnh kt qu: O(n)

    phc tp O(n)

    So snh gia 2 phng php: vt cn v quy hoch ng

    Vt cn Quy hoch ng

    phc tp khng gian O(n) O(n)

    phc tp thi gian O( n3) O(n)

    3.7 ng dng :

    Bi ton rn luyn t duy, v l thi Olympic tin hc.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    32/75

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    33/75

    4

    Bi ton: Tng ca n stnhin sp theo trt tkhng tng.

    4.1 Pht biu bi ton

    Hy tnh scch biu din stnhin mthnh tng ca nstnhin sp

    theo trt tkhng tng. Th d, vi m= 7, n= 4 ta c:

    7 = 7 + 0 + 0 + 0 = 6 + 1 + 0 + 0 = ...

    4.2 tng 30s

    Lit k tt ccc cch biu din . Th d, vi sm = 7, v sn= 4 sc 11

    cch biu din tng ca m = 7 vi n = 4. l:

    7 = 7 + 0 + 0 + 0

    7 = 6 + 1 + 0 + 0

    7 = 5 + 2 + 0 + 0

    7 = 5 + 1 + 1 + 0

    4.3 Lp h thc

    Gi Bieudien(i, j) l scch biu din stnhin i cho j stnhin, ta thy:

    Nu khng c s t nhin no (j = 0) th khng c cch biu din no

    (Bieudien = 0).

    Nu khng c stnhin no (i = 0) th chc mt cch biu din (Bieudien

    = 1- mi stnhin nhn 0 stnhin). Ta cng quy c Bieudien(0, 0) =1.

    Nu sstnhin t hn sstnhin (i < j) th trong mi phng n , ts

    tnhin thi + 1 tri skhng c nhn stnhin no:

    Bieudien(i, j) = Bieudien(i, i) nu i < j.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    34/75

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    35/75

    Ta xt tt ccc phng n biu din trong trng hp i j. Ta tch cc phng

    n biu din thnh hai nhm khng giao nhau da trn sstnhin m stnhin

    nhnht, stnhin thj, c nhn:

    Nhm thnht gm cc phng n trong stnhin thj khng c biudin, tc l i stnhin chbiu din cho (j1) stnhin v do , scchbiu din, tc l sphn tca nhm ny sl: Bieudien(i, j1).

    Nhm thhai gm cc phng n trong s tnhin thj cng c nhn

    thng. Khi , do stnhin nhnht c biu din th mi stnhin khc

    cng scbiu din. Do s tnhin no cng c biu din nn ta bt

    mt stnhin (coinh biu din ), sstnhin cn li (i j) sc

    biu din cho j stnhin. Scch biu din khi sl Bieudien(i j, j).Tng scch biu din cho trng hp i j sl tng sphn tca hai nhm,

    ta c:

    Bieudien(i,j) = Bieudien(i,j - 1) + Bieudien(i -j,j)

    4.4 Thut ton

    Ta c phng n u tin ca gii thut Bieudien nh sau:

    quy

    function Bieudien(i,j: integer):longint;

    begin

    if j = 0 then Bieudien:=0

    else {j > 0}

    if i = 0 then {i = 0; j > 0}

    Bieudien:=1

    else {i,j > 0}

    if i < j then {0 < i < j}

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    36/75

    Bieudien:=Bieudien(i,i)

    else {i >= j > 0}

    Bieudien:=Bieudien(i,j-1)+Bieudien(i-j,j);

    end;

    Biu din vi s t nhin (m = 7) v 4 s t nhin (n = 4). Th d, hm

    Bieudien(1,1) s c gi 9 ln, Tng s ln gi hm Bieudien l 79. 79 ln gi

    hm sinh ra kt qu 11 l qu tn km. Ta c phng n u tin ca gii thut

    Bieudien nh sau:

    Kh d trin khai nhng chng trnh s chy rt lu, bn hy th gi

    Bieudien(66,32) tri nghim c iu trn. Mun thchng ta tnh sn cc gi

    tr ca hm theo cc tr ca u vo khc nhau v in vo mt mng hai chiu

    Mang. Mng Mang c m tnh sau:

    Gioihan

    MN = 90;{gioi han tren cua m va n}

    Kieuml1 = array[0..MN ] of longint;

    ml2 = array[0..mn ] of ml1;

    var Mang: ml2;

    Ta quy c Mang[i, j] cha scch biu din i stnhin cho j stnhin.

    Theo phn tch ca phng n 1, ta c:

    Mang[0, 0] = 1; Mang[i, 0] = 0, vi i:=1..m.

    Mang[i, j] = Mang[i, i], nu i < j

    Mang[i, j] = Mang[i, j - 1]+Mang[i -j, j], nu i j

    T ta suy ra quy trnh in tr vo bng Mang nh sau:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    37/75

    Khi tr

    Mang[0, 0]:= 1;

    vi i:=1..m: Mang[i, 0]:= 0;

    in bng: Ln lt in theo tng ct j:= 1..n. Ti mi ct j ta t:

    vi i:=0..j-1: Mang[i,j ]:= Mang[i, i];

    vi i:= j..m: Mang[i, j]:= Mang[i, j-1] + Mang[i-j, j];

    Nhn kt qu: Sau khi in bng, gi trMang[m, n] chnh l kt qucn tm.

    Lm tt 1:Dng mng 2 chiu

    Mang[i,j] = scch biu din i stnhin cho j stnhin

    function Bieudien2(m,n: integer):longint;

    var i,j: integer;

    begin

    Mang[0,0 ]:=1;

    for i:=1 to m do Mang[i,0]:=0;

    for j:=1 to n do

    begin

    for i:=0 to j-1 do Mang[i,j ]:=Mang[i,i ];

    for i:=j to m do Mang[i,j ]:=Mang[i,j-1 ]+Mang[i-j,j ];

    end;

    Bieudien2:=Mang[m,n];

    end;

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    38/75

    Lm tt ln 2:Dng mng hai chiu chng ta ch c th tnh ton c vi d liu

    nh. Bc ci tin sau y kh quan trng: chng ta dng mng mt chiu. Quan

    st k quy trnh gn tr cho mng hai chiu theo tng ct chng ta d pht hin ra

    rng ct th j c th c tnh ton t ct th j - 1. Nu gi c l mng mt chiu sdng, ta cho s s t nhin tng dn bng cch ln lt tnh j bc, vi j:= 1..n. Ti

    bc th j, c[i] chnh l s cch biu din i s t nhin cho j s t nhin. Nh vy,

    ti bc th j ta c:

    c[i] ti bc j = c[i] ti bc (j 1), nu i < j. T y suy ra on c[0..(j

    1)] c bo lu.

    c[i] ti bc j = c[i] ti bc (j 1) + c[ij] ti bc j, nu i j.Biu thc th hai cho bit khi cp nht mng c t bc th j 1 qua bc

    th j taphi tnh t trn xung, ngha l tnh dn theo chiu tng ca i:= j...m.

    Mng c c khi tr bc j = 0 nh sau:

    c[0] = 1; c[i] = 0, vi i:= 1..m.

    Vi ngha l, nu c 0 s t nhin th biu din 0 s t nhin cho 0 s t

    nhin s c quy nh l1. Nu s s t nhin m khc 0 th biu din m s tnhin cho 0 s t nhin s c 0 phng n.

    Ta c phng n 3, dng mt mng mt chiu c nh sau:

    Lm tt ln 3:dng mng 1 chiu c.

    Ti bc th j, c[i ] = s cch biu din i s t nhin cho j s t

    nhin.

    function Bieudien1(m,n: integer):longint;

    var i,j: integer;

    begin

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    39/75

    fillchar(c,sizeof(c),0);

    c[0 ]:=1;

    for j:=1 to n do

    for i:=j to m do c[i ]:=c[i ]+c[i-j ];

    Bieudien1:=c[m ];

    end

    4.5 Tnh ng n

    Trong bi ton ny ta sdng t tng quy hoch ng vo xy dng cng

    thc truy hi, v kim tra li bng quy cng mt kt qu. Nn gii thut chng

    ta sdng trn lun cho kt qung.

    4.6 phc tp thut ton

    quy Quy hoch ng Quy hoch ngci tin

    Khng gian O(2n) O(m.n) O(m)

    Thi gian O(2n) O(n2) O(n)

    4.7 ng dng thc tin :

    Lp lch cng vic, hoc lp lch cho my tnh

    Lit k mt dy tng dn, hoc gim dn.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    40/75

    5 Bi ton: Khai trin nhthc Newton

    5.1 Pht biu bi ton

    Hy trin khai nhthc Newton (a + b) khi bit gi trn.

    Input: snguyn duong n.

    Output: nhthc (a + b)n c trin khai.

    V d: vi n = 5 ta c khai trin sau:

    (a + b)5 = a5+ 5a4b + 10a3b2+ 10a2b3+ 5ab4+ b+5

    5.2 tng 30s

    Vi sn cho trc b th ta c ththtnh bng tay, nhng vi sn ln th

    xem ra khng khthi. V vy ta thxem c cch no gii quyt bi ton ny tt

    hn khng.

    5.3 Lp h thc

    Nhthc

    Newton c khi

    trin theo cng thc

    sau:

    Vi

    0

    ( )n

    n k n k k

    n

    k

    a b C a b

    ( 1) ( 1) !

    ! !( )!

    k

    n

    n n n k nC

    k k n k

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    41/75

    Nh vy mun khai trin nhthc Newton th phi tnh Cknvi 0 k n.

    Cng thc tnh thp chp n ca k nh sau:

    1

    1 1

    1 0;

    1 1

    k

    n k k

    n n

    k k nC

    C C k n

    5.4 Thut ton

    Ta ci tin thut ton trn bng phng php quy hoch ng tnhCkn

    nh sau:

    Sdng mng C[0..n, 0k] lu cc kt qutnh C[i, j] trc ,

    trong C[i, j] l tnh gi trca Cji

    C[i, j] c tnh:

    1 0; j 1

    1, 1 1, 1

    k

    n

    jC

    C i j C i j j

    Ta c thut ton quy hoch ng nh sau:

    ProcedureC[n, k]

    begin

    { Sdng mng 2 chiu C[0..n,0..k]}fori from0 ton - k doC[i, 0] = 1 endfor (* )

    fori from0 tok doC[i, i] = 1 endfor (* * )

    {tnh tng ct}

    forj from1 tok do

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    42/75

    fori fromj + 1 tonk + j do

    C[i, j] = C[ i- 1, j - 1] + C[i - 1, j] ( * * * )

    endfor

    endforreturnC[n, k]

    end

    Sdng thtc trn dta to duc mng C[0..n, 0..k]. khai trin nhthc

    ta ta cn dng nCkn(1 k n-1). Khi Cknchnh l phn tC[n, k] trong

    mng

    5.5 Chng minh tnh ng n

    Trong bi ton ny ta sdng t tng quy hoch ng da trn cng thc

    c sn nn gii thut chng ta sdng trn lun cho kt qung.

    5.6 phc tp thut ton

    phc tp vmt khng gian l O(n.k)

    phc tp vmt thi gian l O(n.k)

    5.7 ng dng

    Bi ton rn luyn t duy.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    43/75

    6 Bi ton: Tng sln chuyn ghra v chuyn ghvo

    6.1 Pht biu bi ton.

    Cn b tr k nhm hc sinh vo k trong s n phng hc chuyn sao cho

    nhm c s hiu nh c xp vo phng c s hiu nh hn phng cha nhm c

    s hiu ln. Vi mi phng c nhn hc sinh, cc gh tha phi c chuyn ra

    ht, nu thiu gh th phi ly t kho vo cho mi hc sinh mt gh. Bit s hc

    sinh trong mi nhm v s gh trong mi phng. Hy chn phng n b tr sao

    cho tng s ln chuyn gh ra v chuyn gh vol t nht.

    D liu vo ghi trong tp vn bn :

    Dng u tin l hai tr kv n.

    T dng th hai tr i l cc gi tr v[i,j] trong khong 0..10, vi i = 1..k

    vj = 1..n; 1 k n100.

    D liu ra ghi trong tp vn bn gm hai dng: dng u tin l tng s ln

    chuyn gh ra v chuyn gh vo t nht. T dng th hai l dy k s hiu nhm

    c chn cho mi phng hc.

    Cc s liu vo v ra u l s t nhin v c ghi cch nhau bi du cch

    trn midng.

    6.2 tng 30s.

    tng u tin l ta thv lit k tt cc phng n xp k nhm hc vo

    n phng. Sau so snh cc kt quxem cch no l s ln chuyn ghl t

    nht. Song c vcch ny khng khthi.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    44/75

    kt qu241 3 4 6

    V d:

    Kt qu cho bit tng s ln chuyn gh ra v chuyn gh vo t nhtnu :

    -

    Nhm 1 xp vo lp 1;

    -Nhm 2 xp vo lp 3;

    -Nhm 3 xp vo lp 4;

    -Nhm 4 xp vo lp 6.

    6.3 Lp h thc.

    Gi T(i,j) l tng s ln chuyn gh ra v chuyn gh vo khi gii bi tonvi inhm hc sinh m s 1..iv jlp m s 1..j, tc l thm m thu c khi

    xp ht inhm hc sinh u tin vojlp u tin, ta thy:

    a) Nu s nhm hc sinh nhiu hn s lp, i>jth khng c cch xp no.

    T(i,j) = 0

    b) Nu s nhm hc sinh bng s lp (i= j) th ch c mt cch xp l nhm no

    vo lp .

    c) Ta xt trng hp s nhm hc sinh t hn hn s lp (i

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    45/75

    Nu lp thj c chn xp nhm hc sinh i th i1 nhm hc sinh u

    tin sc phn phi vo j1 lp u tin. Tng sln chuyn ghra v

    chuyn ghvo s khi sl

    T(i1, j1) + v[i, j]. Nu lp thjkhng c chn cho phng n ti u th inhm hc sinh

    phi c xp voj1 lp u tin v do tng sln chuyn ghra v

    chuyn ghvo sl

    T(i,j1).

    Tng hp li ta c gi tr ti u khi xp inhm hc sinh vojlp l:

    T(i,j) = max {T(i-1,j-1)+v[i,j],T(i,j-1)}

    6.4 Thut ton.

    Nu dng mng hai chiu T th ta c th tnh nh trong bng di y:

    Ct j 1 Ct j

    Dng i1 [i-1,j-1]

    Dng i [i,j-1] [i,j]

    T(i,j) = max {T(i-1,j-1)+v[i,j],T(i,j-1)}

    Ngoi ra, ta cn cn t trong mi ca bng trn mt mng d liu bao

    gm nphn t nh du lp no c chn cho mi tnh hung. Gi mng d

    liu l L[i,j], ta d thy l nn in bng ln lt theo tng ct, ti mi ct ta

    in bng t di ln theo lut sau:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    46/75

    Nu T[i1,j1] + v[i,j] > T[i,j1] th ta phi thc hin hai thao tc:

    t li tr T[i,j]:= T[i1,j1] + v[i,j].

    Ghi nhn vic chn lp jtrong phng n mi, c th ly phng n

    chn lp (i1,j1) ri b sung thm thng tin chn lp jnh sau: tL[i,j]:=L[i1,j1] v nh du phn tjtrong mngL[i,j].

    Nu T[i1,j1] + v[i,j] T[i,j1] th ta s khng chn lpj xp nhm

    hc sinh iv do ch cn sao L[i, j1] sang L[i, j], tc l ta bo lu

    phng n (i,j1).

    Lm tt.

    Phng n dng mng hai chiu tn km v min nh. Ta c th dng mt

    mng mt chiu T[0..100] xem nh mt ct ca bng T ni trn. Ta duyt jbc.

    Ti bc th j, gi tr T[i] s l tr ti u khi xp ht inhm hc sinh vo j lp.

    Nh vy, ti bc thjta c:

    Nu T[i1] ti bc j1 + v[i,j] > T[i] ti bc j 1 th ta phi thc hin

    hai thao tc: t li tr T[i] ti bc j:= T[i1] ti bc j1 + v[i,j].

    Ghi nhn vic chn lp jtrong phng n mi, c th ly phng n

    chn lp (i1) bcj1 ri b sung thm thng tin chn lpjnh

    sau: tL[i] ti bcj:=L[i1] ti bc j1 v nh du phn tj

    trong mngL[i].

    Nu T[i1] ti bcj1 + v[i,j] T[i] ti bcj1 th ta khng phi

    lm g v s bo lu phng n c.

    Biu thc so snh cho bit khi cp nht mng T t bc th j1 qua bc

    thjta phi tnh t di ln, ngha l tnh dn theo chiu gim ca i:=j..1.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    47/75

    nh du cc lp ta dng mng L[0..MN] mi phn tL[i] li l mt dy

    sbyte. Nu dng mt bit cho mi lp th s byte cn dng nh du ti a MN

    lp phi l:

    kk = (MN+7) div8Vi MN = 101 ta tnh c

    kk = (101+7) div8 = 13

    Khi cn nh du lp th jtrong dyL[i] ta bt bit thjtrongL[i]. Khi cn

    xem lp thjc c chn hay khng ta gi hm GetBit ly tr (0 hoc 1) ca

    bitjtrong dy bitL[i].

    Ta ch ti hai biu thc sau:

    xc nh byte th my trong dy cha bitjta tnh:

    b:= j div8;

    xc nh v tr ca bitjtrong byte th bta tnh:

    p:= j mod8;

    //Cho gia tri bit thu j trong day byte L[i ]

    functiongetbit(i,j: byte):byte;

    varb,p: byte;

    begin

    b:= j div8;

    p:= j mod8;

    getbit:=(L[i ][b ] shrp) and1;

    end;

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    48/75

    //Gan tri 1 cho bit j trong day byte L[i ]

    procedurebatbit(i,j:byte);

    varb,p: byte;

    begin

    b:= j shr3;

    p:= j and7;

    L[i ][b ]:= L[i ][b ] or(1 shlp);

    end;

    Vi j= 0, tc l khi khng c lp no v khng c nhm hc sinh no ta

    khi tr:

    fillchar(L[0 ],16,0);

    T[0 ]:=0;

    Vi mij= 1..n, ta lu s nhm hc sinh phi khng ln hn s lp, tc l

    ij. Vi i=jta s xp mi nhm vo mt lp. thc hin iu ny ta lu rng

    phn tL[j1] ti bc trc cho bit j1 lp u c nhm hc sinh do tach cn nh du lp thjcho bcj:

    L[j ]:=L[j-1 ];

    batbit(j,j);

    Nh vy ta cn chia qu trnh duyt theo cc lp t 1..nthnh hai giai on.

    Giai on 1:Duyt t lp 1 n lp k, trong kchnh l s nhm hc sinh

    v theo u bi, kn.

    Giai on 2:Duyt nt nklp cn li.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    49/75

    Phng n quy hoch ng vi mng mt chiu khi s nh sau:

    procedurexuly;

    vari,j: byte;

    begin

    {1. Khoi tri}

    fillchar(L,sizeof(L),0);

    {danh dau cac lop duoc chon}

    T[0 ]:=0; {dotong so cach}

    {Vi co k nhom hoc sinh nen xet k lo dau tien}

    forj:=1 tok do

    begin

    L[j ]:=L[j-1];

    batbit(j,j);

    T[j ]:= T[j-1 ]+v[j,j ];

    fori:=j-1 downto1 do

    i fT[i ] < T[i-1 ]+v[i,j ] then

    begin

    T[i ]:= T[i-1 ]+v[i,j ];

    L[i ]:= L[i-1 ];

    batbit(i,j);

    end;

    end;{xet cac lop con lai}

    forj:=k+1 ton do

    fori:= k downto1 do

    ifT[i ] < T[i-1 ]+v[i,j ] then

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    50/75

    begin

    T[i ]:= T[i-1 ]+v[i,j ];

    L[i ]:= L[i-1 ];

    batbit(i,j);end;

    end;

    6.5 Tnh ng n.

    Trong bi ton ny ta sdng t tng quy hoch ng vo xy dng cngthc truy hi, v kim tra li bng quy cng mt kt qu. Nn gii thut chng

    ta sdng trn lun cho kt qung.

    6.6 phc tp thut ton

    phc tp quy Quy hoch ngQuy hoch ng

    ci tin

    Khng gian O(2n) O(2n) O(n)

    Thi gian O(2n) O(n2) O(n)

    6.7 ng dng

    Bi ton rn luyn t duy, v l thi Olympic tin hc.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    51/75

    7

    Bi ton: Cp scng

    Pht biu bi ton7.1

    Cho mt tp vn bn gm N (N rt ln) snguyn a1, a2, a3,..,anvi ia 30

    000. Hy tm trong dy A mt dy con di nht lp thnh mt dy cp scng

    c cng sai l d. Vi 0 < d 100.

    Dliu vo:

    -Dng u ghi sN

    - N dng tip theo ghi cc sng vi dy A

    Dliu ra:- Dng u ghi sM l sphn tv cng sai ca dy cp scng

    - M dng tip theo ghi schsca cc sthuc cp scng.

    tng 30s7.2

    Nu dliu nhN=10000 th ta c thdng phng php duyt n thun

    gii bi ton trn mt cch ddng, nhng vi dliu N

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    52/75

    Suy ra: Fx[i]=Fx[i-d]+1;

    V bit cng sai l d nn khi nhp c sk no th mun to thnh

    cp scng tn cng bng k th strc phi l (k-d). Nh vy chiu di di

    nht ca dy cp scng tn cng bng k sbng chiu di di nht ca dy cp scng tn cng l k-d cng 1.

    Ta c thkhai bo nh sau:

    Type arr=array[0..30000] of word;

    var a,b :^arr;

    Nhn xt chiu di ti a ca dy cp scng l 60001 nn ta khai bo word

    l va .

    Vi mng a dng cho cc skhng m,mng b dnh cho cc sm.

    A[i] l chiu di di nht ca dy cp scng tn cng bng i,

    B[i] l chiu di di nht ca dy cp scng tn cng bng -i,

    Vy gii quyt bi ton cp scng ta chcn duyt vi tng cng sai t1 n

    100 l c.

    Thut ton7.4y l thut ton sdng phng php quy hoch ng.

    procedure QHD;

    var i:integer;

    begin

    max:=0;

    for i:=1 to 100 do

    begin

    openf;

    New(a);

    New(b);

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    53/75

    readln(f);

    fillchar(a,sizeof(a),0);

    fillchar(b,sizeof(b),0);

    while not eof(f) dobegin

    d:=max;

    readln(f,k);

    s:=k-i;

    if s>=0 then [k]:=[s]+1

    else

    begin

    if k>=0 then a[k]:=b^[abs(s)]+1

    else b^[abs(k)]:=b^[abs(s)]+1;

    end;

    if max

    if max

    if dmax then

    begin

    luu:=i;

    sc :=k;

    end;

    end;

    dispose(a);dispose(b);

    closef;

    end;

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    54/75

    end;

    Chng minh tnh ng n7.5

    Ta sdng cng thc tng qut tm ra dy con c cp scng. Vic s

    dng phng php quy hoch ng l chng ta lu li cc gi tr tnh trong m

    khng phi gi li nhiu ln. Nn r rng cng thc ny lun ng.

    phc tp thut ton7.6

    phc tp khng gian O(n)

    phc tp thi gian O(n)

    ng dng7.7

    y l mt bi th trong Olypic tin hc.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    55/75

    8 Bi ton: Xa t nht k tca mt xu c xu i xng.

    Pht biu bi ton8.1

    Dy k ts c gi l i xng nu cc phn tcch u u v cui ging

    nhau. Cho dy s to bi n k tgm cc chci hoa v thng phn bit v cc

    chs. Hy cho bit cn xo i ts t nht l bao nhiu k tthu c mt dy

    i xng. Githit rng sau khi xo bt mt sk tts th cc k tcn li st

    ng xch li st nhau.

    tng 30s8.2

    Dliu vo ghi trong tp vn bn vi cu trc nh sau:

    Dng u tin l gi trn, 1 n 1000.

    Dng thhai l n k tca dy vit lin nhau.

    Ta c thchn phng n lit k, thtt ccc cch xa thu c dy con

    i xng.

    Th d, vi dy s gm 9 k t, s = 'baeadbadb' th cn xo t nht 4 k t,

    chng hn, cc k tth5, 7, 8 v 9 sthu c dy i xng chiu di 5 l baeab:

    baeadbadb baeab

    Dnhin l c nhiu cch xo. Th d, c thxo cc k tth2, 3, 4 v 6 t

    dy s thu c dy con i xng khc l bdadb vi cng chiu di 5:

    baeadbadb bdadb

    Tuy nhin p sl st nht cc k tcn loi bkhi s th l duy nht v

    bng 4.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    56/75

    Bi ton ny c nhiu bn c cng bli gii vi mt mng hai chiu

    kch thc n2hoc vi ba mng mt chiu kch thc n, trong n l chiu di ca

    dliu vo.

    Vi mt nhn xt nhta c thpht hin ra rng chcn dng mt mng mtchiu kch thc n v mt vi bin n l .

    Gi dy dliu vo l s. Ta tm chiu di ca dy con i xng v di nht

    trch ts. Khi sk tcn xo ts sl t = length(s) - length(v). Dy con y

    c hiu l dy thu c ts bng cch xo i mt sphn ttrong s. Th dvi

    dy s =baeadbadb th dy con i xng di nht ca s sl baeab hoc bdadb,

    Cc dy ny u c chiu di 5.

    Lp h thc:8.3

    Gi p(i, j) l chiu di ca dy con di nht thu c khi gii bi ton vi d

    liu vo l on s[i..j]. Khi p(1, n) l chiu di ca dy con i xng di nht

    trong dy n k ts[1..n] v do sk tcn loi bkhi dy s[1..n] sl

    n-p(1,n) chnh l p sca bi ton.

    Ta lit k mt stnh cht quan trng ca hm hai bin p(i, j). Ta c:

    Nu i > j, tc l ch s u tri ln hn ch s u phi, ta quy c t

    p(i, j) = 0.

    Nu i = j th p(i, i) = 1 v dy kho st chcha ng 1 k tnn n l i

    xng.

    Nu i j v s[i] = s[j] th p(i, j) = p(i + 1, j 1) + 2. V hai k tu v cui

    dy s[i, j] ging nhau nn chcn xc nh chiu di ca dy con i xng

    di nht trong s[i + 1, j1] ri cng thm 2 n vng vi hai k tu v

    cui dy l c.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    57/75

    Nu i j v s[i] s[j], tc l hai k tu v cui ca dy con s[i..j] l khc

    nhau th ta kho st hai dy con l s[i..(j1)] v s[(i + 1)..j] ly chiu di

    ca dy con i xng di nht trong hai dy ny lm kt qu:

    p(i,j) = max(p(i,j-1),p(i+1,j))

    Vn t ra l cn tnh p(1, n). M mun tnh c p(1, n) ta phi tnh

    c cc p(i, j) vi mi i, j = 1..n.

    Thut ton8.4

    Phng n quy

    Phng n quy di y nh m ttrong hm nguyn rec(i, j) tnh trctip gi trp(i, j) theo cc tnh cht lit k. p scho bi ton khi sl

    n-rec(1,n).

    function rec(i,j: integer): integer;

    begin

    if i > j then rec:=0

    else if i = j then rec:=1

    else {i < j}

    if s[i ] = s[j ] {i < j & s[i ] = s[j ]}

    then rec:=rec(i+1,j-1)+2

    else {i < j & s[i ] s[j ]}

    rec:=max(rec(i,j-1),rec(i+1,j));

    end;

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    58/75

    Ta c bng m tnh sau:

    Dng mt mng hai chiu

    Gi quy spht sinh cc li gi hm trng lp nh phn tch trong bi

    ton. Ta khc phc iu ny bng cch sdng mt mng hai chiu tnh trc

    cc gi trca hm p(i, j), mi gi trc tnh ti a mt ln. Nu dng mt mng

    hai chiu, th dmng p[0..n, 0..n] th gi trca p[i, j] sc in ln lt theo

    tng ct, tct th1 n ct thn. Ti mi ct ta in tdi ln trn. Ta lu :

    Phn tti ct i, dng j l gi trp[i, j] l chiu di ca dy con di

    nht khi kho st dy con s[i..j].

    Vi cc tri > j, ta quy nh p[i, j] = 0. Nh vy na tam gic di ca

    ma trn p scha ton 0.

    Nu i = j th p[i, j] = 1. Nh vy, mi trtrn ng cho chnh ca ma

    trn p sl 1.

    Vi cc cn li to(i, j) sthoiu kin i < j, nn p[i, j] sc

    tnh nh sau:

    if s[i ] = s[j ] then p[i,j ] = p[i+1,j-1 ]+2

    else p[i,j]:= max(p[i,j-1],p[i+1,j ])

    Bn hy thin mt vi gi trcho bng trn rt ra quy lut.

    Hy bt u vi ct 1: p[1, 1] = 0;

    Sau n ct 2:

    p[2, 2] = 1; p[1, 2] = max(p[1, 1], p[2, 2]) = 1, v s[1] s[2].

    Ri n ct 3:

    Dng i [i,j-1] [i,j]

    Dng i+1 [i+1,j-1] [i+1,j]

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    59/75

    p[3,3]=1; p[2,3] = max(p[2, 2], p[3, 3]) = 1, v s[2] s[3];

    p[1,3] = max(p[1,2], p[2,3]) = 1, v s[1] s[3],

    Dng hai mng mt chiu

    Ta skhng theo ui phng n dngmng hai chiu m hy cn cvo

    quy lut in mng hai chiu vn dng cho hai mng mt chiu l v[0..(n + 1)]

    v d[0..(n + 1)]. Theo kinh nghim, ta nn khai bo kch thc mng rng hn

    chng hai phn tsdng cc phn tny nh nhng lnh canh cha cc gi tr

    khi u phc vcho cc trng hp chsi, j nhn cc gi tr0 hoc n + 1.

    Gismng v cha cc gi tr in ca ct j 1 trong mng hai chiu p.

    Ta sin cc gi trcho ct j ca mng p vo mng mt chiu d. Nh vy, phntv[i] sng vi phn tp[j1, i] cn phn td[i] sng vi p[j, i]. Thtc

    in trcho ct d ti bc j da theo kt qulu trong ct v ca bc j1 khi

    snh sau:

    for i:=j-1 downto 1 do

    begin

    if s[i ]=s[j ] then d[i ]:=v[i+1 ]+2

    else d[i ]:=max(v[i ],d[i+1 ]);

    end;

    Sau mi ln lp vi j:=1..n ta chuyn gi tr ca d cho v chun b cho

    bc tip theo.

    procedure QHD2;

    var i,j: integer;

    begin

    fillchar(v,sizeof(v),0);

    for j:=1 to n do

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    60/75

    begin

    d[j ]:=1;

    for i:=j-1 downto 1 do

    begin

    if s[i ]= s[j ] then d[i ]:=v[i+1 ]+2

    else d[i ]:=max(v[i ],d[i+1 ]);

    end;

    v:=d;

    end;

    writeln(nl,n-d[1 ]); {dap so}

    end;

    Dng mt mng mt chiu

    C thchsdng mt mng mt chiu d cho bi ton ny vi nhn xt sau

    y. Ti bc cp nht thj, vi mi i = (j1)..1 ta c d[i] = p[i, j] v c tnh

    nh sau:

    Nu s[i] = s[j] th d[i] ti bc j bng d[i + 1] ti bc j1 cng vi 2.

    Nu s[i] s[j] th

    d[i] ti bc j bng max(d[i] ti bc j1, d[i + 1] ti bc j).

    Nu ta tnh tdi ln, tc l tnh d[i] vi i = n..1 th d[i + 1] c sbghi .

    Ta dng hai bin pht v tr bo lu gi trny.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    61/75

    procedure QHD1;

    var i,j,t,tr: integer;

    begin

    for j:=1 to n do

    begin

    tr:=0;

    d[j ]:=1;

    for i:=j-1 downto 1 do

    begin

    t:=d[i ];

    if s[i ]=s[j ] then d[i ]:=tr+2

    else d[i ]:=max(d[i ],d[i+1 ]);

    tr:=t;

    end;

    end;

    writeln(nl,n-d[1 ]); {dap so}

    end;

    D nhin phng n dng mt mng mt chiu sc coi trng tit kim

    c min nh. Tuy nhin, tinh mt cht, bn spht hin ra rng thi gian tnh

    ton

    D nhin phng n dng mt mng mt chiu sc coi trng tit kim

    c min nh. Tuy nhin, tinh mt cht, bn spht hin ra rng thi gian tnhton theo phng n ny khng t hn phng n dng hai mng mt chiu. Tht

    vy, tnh mi phn tta phi dng thm hai php gn, trong khi dng hai mng

    mt chiu ta ch phi thm mt php gn cho mi phn t. Hn na, dng hai

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    62/75

    mng mt chiu thng trnh c nhm ln, do nhiu ngi thng chn

    phng n ny.

    Tnh ng n.8.5

    Trong bi ton ny ta sdng t tng quy hoch ng vo xy dng cng

    thc truy hi, v kim tra li bng quy cng mt kt qu. Nn gii thut chng

    ta sdng trn lun cho kt qung.

    phc tp thut ton8.6

    phc tp

    quy

    Quy hoch ng

    Quy hoch ng

    ci tin

    Khng gian O(2n) O(n.m) O(m)

    Thi gian O(2n) O(n.m) O(n.m)

    Bi ton vi ba phng n, quy, dng hai mng mt chiu v dng mt

    mng mt chiu khi snh sau.

    Dliu kim th Kt qudkin

    9

    baeadbadb

    4

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    63/75

    9 Bi ton: Ngi nng dn

    Pht biu bi ton9.1

    Mt ngi nng dn c mt scnh ng, mi cnh ng c bao quanh

    bi cc hng cy bch. Ngoi ra ng ta c tp cc di t, mi mt di t c mt

    hng cy bch. Trn cnh ng v gii t, xen gia hai cy bch l mt cy oliu.

    Tt ccc cy bch hoc bao quanh cnh ng hoc nm trn di t v tt ccy

    oliu u trng xem gia hai cy bch lin tip.

    Mt ngy nngi nng dn m nng v cm thy sp phi i xa. Vi ngy

    trc khi qua i ng gi ngi con trai ln nht n v ni vi anh ta Ta cho con

    chn Q cy bch bt kv tt ccy oliu nm gia 2 cy bch lin tip m con

    chn u thuc vcon.Ngi con c thchn thp cc cy bch bt ktcnh

    ng v di t, v ngi con trai ny rt thch cy oliu nn anh ta chn Q cy bch

    sao cho tha hng c nhiu cy bch nht c th.

    Trong hnh di githit, gisngi con chn c 17 cy bch (Q=17)

    c c scy oliu ln nht anh ta phi chn trong cnh ng 1 v cnh ng 2,

    vi cch chn ny anh ta stha hng c 17 cy oliu. Cho trc thng tin vcnh ng, di t v scy bch ngi con c chn. Hy xc nh scy oliu

    ln nht m ngi con c chn.

    tng 30s9.2

    Phng php u tin ta ngh n l thri lit k tt ccc trng hp cy

    oliu. Nhng vi s 17 cy bch chng hn th s t hp ca n cng rt ln ta

    khng thno tnh c. Liu c cch no gii quyt bi ton ny hiu quhn

    khng.

    Input:

    Dng u tin bao gm snguyn Q ( 0 < Q 150000): l scy bch

    ngi con c chn.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    64/75

    Sau snguyn M l scc cnh ng.

    Tip theo l snguyn K s cc di t.

    Dng th2 cha M snguyn N1,N2NM(3 N1,NM 150) l s

    cc cy bch trn cnh ng.

    Dng th2 cha K snguyn N1,N2NM(2 R1,RM 150) l s

    cc cy bch trn di t.

    Ch : tng scy bch trn cnh ng v di t t nht cng bng Q.

    Output:

    L mt snguyn scy oliu duy nht m ngi con c thhng.

    Input Output

    17 3 3

    13 4 8

    4 8 6

    17

    Lp cng thc9.3

    Dthy rng mnh t thi c aicy oliu v di t thj c bj1 cy oliu.

    Coi cc mnh t v cc di t l cc vt, vt thk c khi lng wk(s

    cy bch) v vk(l scy oliu). Nu k l mnh t i th wk= vk= a i, nu k l di

    t th wk = biv vk= bj1. Ta cn tm cc vt sao cho tng khi lng ca

    chng khng vt qu Q v tng gi tr l ln nht. y chnh l bi ton ci ti

    trong trng hp thnht.

    Thut ton9.4

    Void inputdata ()

    {

    ifstream fi( input)

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    65/75

    fi >> q >>m >> n;

    for ( int i =0; i > w[i];

    v[i] = w[i];

    }

    for ( int i = m + 1; i > w[i];

    v[i] = w[i]1;}

    fi.close();

    }

    Void outputdata

    {

    Ofstream fo( output);

    fo b) return a;

    Else return b;

    }

    Void process()

    {

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    66/75

    for ( j = 0; j

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    67/75

    10

    Bi ton nhn ma trn

    Pht biu bi ton10.1

    Nh bit, tnh ca ma trn A ikkch thc m.n vi ma trn Bkjkch thc

    n.p l ma trn Cijkch thc m.p vi cc phn t c tnh theo cng thc:

    1

    q

    ij jk ki

    k

    c a b

    1 i m, 1 j p.

    Nhn mt ma trn kch thc Am.nvi mt ma trn Bn.p, s php nhn phi

    thc hin l m.n.p. Mt khc php nhn cc ma trn c tnh kt hp, tc l:

    (A.B).C = A.(B.C)

    Do khi tnh tch nhiu ma trn, ta c th thc hin theo cc trnh t khc

    nhau, mi trnh t tnh s quyt nh s php nhn cn thc hin.

    Cho N ma trn A1,A2An, ma trn Aic kch thc l di.di+1. Hy xc nh

    trnh t nhn ma trn A1.A2Ansao cho s php nhn cn thc hin l t nht.

    Input:

    -

    n: s ma trn- n+1 s ln lt l kch thc ca cc ma trn theo quy tc: kch

    thc ca ma trn th I l di.di+1.

    Output:

    - Trnh t nhn v s php nhn

    V d: Tnh tch M = ABCD ca bn ma trn, trong A c kch thc

    13 x 5, B c kch thc 5 x 89, C c kch thc 89 x 3 v D c kch thc 3 x 34. Input: n=4

    D[5] = 13.5 .89.3.34

    Output:

    M = (A(BC))D 2856

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    68/75

    tng 30s10.2

    tm phng php hiu qu nht, chng ta c th lit k tt c cc cch in

    du ngoc vo biu thc tch ma trn cho v tnh s lng php nhn i hi

    theo mi cch.

    K hiu T(n) l s cch in ccdu ngoc vo biu thc tch ca n ma trn.

    Gi s ta nh t du ngoc phn tch u tin vo gia ma trn th i v ma trn

    th (i + 1) trong biu thc tch, tc l:

    M = (M1 M2 Mi)(Mi+1Mi+2 Mn)

    Khi c T(i) cch t du ngoc cho tha s th nht (M1 M2 Mi) v T(n-i)

    cch t du ngoc cho tha s th hai (M i+1Mi+2 Mn) v t T(i)T(n-i) cchtnh biu thc (M1 M2 Mi)(Mi+1Mi+2 Mi). Do i c th nhn bt c gi tr no

    trong khong t 1 n n-1, suy ra ta c cng thc truy hi sau tnhT(n):

    1

    1

    ( ) ( ) ( )n

    i

    T n T i T n i

    Bng di y cho mt s gi tr ca T(n).

    n 1 2 3 4 5 10 15

    T(n) 1 1 2 5 14 4862 2674440

    Gi tr ca T(n) c gi l s Catalan. Cng thc sau y cho php tnh T(n)

    qua h s t hp:

    12 21( )

    nnT n C

    n

    n 2.

    T T(n) = 4nn2. Nh vy, phng php duyt ton b khng th s dng

    tm cch tnh hiu qu biu thc tnh ca n ma trn, khi n ln.

    Lp h thc10.3

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    69/75

    Ta nhn thy rng: nu t du ngoc u tin gia ma trn th i v th

    (i+1) ca biu thc tch l ti u, th c hai tch con (M1M2 Mi) v (Mi+1Mi+2

    Mn) cng phi c tnh mt cch ti u. Khi tng s php nhn cn phi thc

    hin s bng tng s php tnh nhn hai dy con (M1M2 Mi) v (Mi+1Mi+2Mn) cng vi s php tnh nhn haima trn tng ng vi hai dy con ny.

    ti u vic nhn dy ma trn (M1M2 Mn) ta quy v vic ti u nhn

    hai tch con (M1M2 Mi) v (Mi+1Mi+2 Mn)

    Gi mijl s php nhn t nht cn thc hin tnh tch

    (Mi+1Mi+2 Mj) , 1 i j n

    Li gii cn tm s lm.n

    Gi s kch thc ca cc ma trn c cho bi vc t d[1, 2, ., n, n+1],

    trong ma trn Mic kch thc di.di+1, i = 1, 2, 3, n. Ta s xy dng bng gi

    tr mijln lt theo tng ng cho, trong ng cho th s cha cc phn t

    mi j tho mn j i = s.

    s = 0 : ji = 0

    s = 1 : ji = 1: tch ca 2 ma trn lin tip

    s = 2 : ji = 2: tch ca 3 ma trn lin tip

    .....

    s = n - 1: ji = n1 : tch ca n ma trn lin tip

    tnh bng gi tr mi jta c th s dng quy tc sau y:

    s = 0; mi j= 0 i = 1, 2, , n

    s = 1; mi j= di.di+1.di+2 , i = 1, 2, , n - 1

    1 < s < n; mij= min{mik+ mk+1,s+ di.dk+1.ds+1 : 1 k

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    70/75

    m13 = min(m11+ m23+ 13 x 5 x 3, m12+ m33+ 13 x 89 x 3)

    = min(1530, 9256) = 1530

    m24 = min(m22+ m34+ 5 x 89 x 34, m23+ m44+ 5 x 3 x 34)

    = min(24208, 1845) = 1845Vi s = 3

    m14 = min(m11+ m24+ 13 x 5 x 34), {k = 1}

    m12+ m34+ 13 x 89 x 34, {k = 2}

    m13+ m44+ 13 x 3 x 34, {k = 3}

    = min(4055, 54201, 2856) = 2856.

    Bng gi trmijc cho trong hnh v di y

    tm li gii ti u, ta dng 2 mng truoc[] v sau[] lu v tr ngoc.

    Quan st bng mijtrn, ta thy v tr t du ngoc l v tr ng vi gi tr min ca

    tng ng cho.V d:

    Vi s = 1, min = 1335 ng vi m23, vy truoc[1] = 2 v sau[1] = 3.

    Ta c M = A.(B.C).D

    Vi s = 2, min = 1530 ng vi m13, vy truoc[2] = 1 v sau[2] = 3

    Ta c M = (A.(B.C)).D

    j=1 2 3 4

    i=1 0 5785 1530 2856

    2 0 1335 1845 s=3

    3 0 9078 s=2

    4 0 s=1

    s=0

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    71/75

    Thut ton10.4

    procedure Matri x-Chain(d,n)

    {m[i,j] - chi ph ti u thc hin nhn dy Mi. . . Mj;

    }

    begin

    for i: = 1 to n do m[i,j]: = 0; //khi to

    for s: = 1 to n do // s = chs ca ng cho

    for i: = 1 to n - s do

    begin

    j: = i + s - 1; m[i,j] =

    for k: = i to j - 1 do

    begin

    q: = m[i,k] + m[k+1,j] + d[i-1]*d[k]*d[j];

    if(q

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    72/75

    Nh nu trn, ti u vic nhn dy ma trn (M1 M2 Mn) ta quy v

    vic ti u nhn hai tch con (M1 M2 Mi) v (Mi+1Mi+2 Mn).

    T cng thc :

    mij= min{mik+ mk+1,s+ di.dk+1.ds+1 : 1 k 0, c n s phn t trn ng cho cn tnh, tnh mi phn

    t ta cn so snh s gi tr s tng ng vi cc gi tr c th ca k. T suy ra

    s php ton cn thc hin theo thut ton l c

    1 1 12

    1 1 1

    2

    3

    3

    ( )s

    ( 1) / 2 ( 1)(2 1) / 6

    ( ) / 6

    0( )

    n n n

    s s s

    n s n s s

    n n n n n

    n n

    n

    V cn mng 2 chiu lu tr gi tr mij, nn chi ph khng gian l O(n2), chi ph

    thi gian l O(n3). y l bi ton c chi ph ln nht trong tt c cc bi ton

    QH thng gp.

    ng dng ca ma trn10.7

    Ma trn c rt nhiu ng dng trong thc t:

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    73/75

    Solving systems of linear equations

    Gii h phng trnh tuyn tnh

    Trong ha my tnh, X l nh

    Cc m hnh trong k ngh v khoa hc tnh ton

    Tnh ton lng t,

    Bi vy vic tnh ton nhanh tch ca cc ma trn c ng dng v ngha rt

    ln trong thc tin.

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    74/75

    Kt lun

    Quy hoch ng l mt phng php hay v hiu qu, n cthgii c

    hu ht cc bi ton ti u. Tuy nhin, khi gii bi ton theo hng quy hoch

    ng, ta cn phi tm cng thc truy hi tht chnh xc v hng minh chnh xc

    tin cy ca n. Cho n nay, vn cha c mt nh l no cho bit chnh xc mt

    bi ton ti u no c thgii quyt hiu qubng quy hoch ng. Tuy nhin,

    bit c bi ton c thgii bng phng php quy hoch ng hay khng, ta c

    thtt cu hi: Mt nghim ti u ca bi ton ln c phi l phi hp cc

    nghim ti u ca cc bi ton con hay khng? v Liu c thno lu trcnghim cc bi ton con di mt hnh thc no phi hp tm nghim ca

    bi ton ln?

  • 8/10/2019 Bo Co Seminar - Phng php quy hoch ng

    75/75