ysk progrrg Mtod bl forlsrt v Rchrd Bll (RAN Corporto på -tllt. Progrrg btydg pllgg, t bslutgr. (Hr kk o d kod llr å skrv kod å gør. ysk for å dkr t dt r stgvs prosss. M også t pytord. Hvlk problr? ysk progrrg bruks typsk tl å løs optlsrgsproblr. (Problr hvor dt k vær g ulg løsgr, og hvor v øskr å f d bst optr obktvfukso. Skl v ku løs t probl d dysk progrrg, å dt ku dls opp dr og dr btr hlt tl v kor tl t dlprobl så lt t løsg ltt k fs. V strtr d løsg på så dlproblr, og kobrr dss tl løsgr på størr dlproblr, hlt tl v hr løsg på hl problt. Skl dysk progrrg vær gt tod (rsk, godt svr å: optlttsprsppt hold, dlproblr å ovrlpp, og tll dlproblr vær polyosk. Optlttsprsppt Gtt t optlsrgsprobl, og fukso cob so kobrr løsgr på dlproblr tl løsgr på størr problr, så sr v t optlttsprsppt holdr hvs følgd lltd r st: Hvs S = cob(s, S,, S, og S r optl løsg på s problsts, Ovrlppd dlproblr E dysk progrrgs-lgort strtr d å løs d st dlprobl, og sttr s dss løsg tl løsgr på størr og størr problr. Hvs s dlprobl forkor flr ggr, ugår v dobbltrbd. Løsg på dlprobl lgrs lg, og v slppr å løs dtt dlproblt flr ggr. så r S, S,, S optl løsgr på s rspktv problstsr. Hvs optlttsprsppt holdr, r problt gt for løsg d dysk progrrg. grrs br optl løsgr på dlproblr år v strtr fr optl løsgr på d st dlprobl, og kobrr dss tl løsgr på størr problr.
Ovrlppd dlproblr E dysk progrrgs-lgort strtr d å løs d st dlprobl, og sttr s dss løsg tl løsgr på størr og størr problr. Hvs s dlprobl forkor flr ggr, ugår v dobbltrbd. Løsg på dlprobl lgrs lg, og v slppr å løs dtt dlproblt flr ggr. vd d coqur vs. ysk progrrg vd d coqur (f.ks Qucksort op dow (rkursvt kll Bst gt år dlprobl r uvhgg v hvrdr. r-brgs kk løsgr på dlproblr. Ku rlvt dlproblr løss. ysk progrrg Botto up Egt år dlproblr ovrlppr, ttrso løsgr lgrs tbll og v k slå opp år v støtr på t dlprobl v hr løst. Ulp r t v brgr løsgr på ll dlproblr. Mtod k kobrs, såklt osrg, dvd d coqur lgort k lgr løsgr på dlproblr tbll og slå opp for å ugå dobbltrbd. Fr kl(? stg. Bskrv struktur problt, hvord løsg r stt s v dlløsgr. Vrfsr t optlsrgsprsppt fktsk holdr.. Lg forl for vrd v optl løsg (ut fr vrd v v optl dlløsgr.. Brg vrd tl optl løsg, botto up (lgr vrd v optl dlløsgr tbll. Strgr so lgr (kp.. E strg P r k-pproksso v strg drso k kovrtrs tl P vd å utfør kslt k v følgd oprsor: Substtuso Et sybol bytts ut d t t. llgg Et ytt sybol lggs tl. Slttg Et sybol sltts fr. Edt dstc, E(P,, llo to strgr P og r dt st tll slk oprsor so trgs for å kovrtr P tl.. Kostrur optl løsg ut fr brgd vrdr. (O v fktsk øskr løsg, og kk br øyr oss d vrd v optl løsg. Eks. logrth logrth lgrth lgorth (+, -o, /o
. Strgr so lgr. Strgr so lgr Gtt to strgr og P, øskr v å f dt dstc llo dss. Gtt to strgr og P, øskr v å f dt dstc llo dss. L [, ] = E( P [: ], [: ]. (Edt dstc llo dlstrgr L [, ] = E( P [: ], [: ]. (Edt dstc llo dlstrgr V dlr følgd dlproblr: V dlr følgd dlproblr:. Hvs P [ ] = [ ], så r [, ] = [ -, -]. = P[: ] [: ]. Hvs P [ ] [ ], tkr v oss optl skvs v oprsor so trsforrr [: ] tl P [: ]. sst oprso, for å få [ ] = P [ ], k vær: Substtuso stt [ ] = P [ ], llgg lgg tl sybol pos [ ], Slttg slttg sybol på pos [ ].. Substtuso stt [ ] = P [ ] llgg lgg tl sybol pos [ ] slttg v P [ ] Slttg slttg sybol på pos [ ] f P[: ] [: ] P[: ] [: ] P[: ] [: ] Strgr so lgr Rgr ut [, ] vd å f [ -, -] (dt dstc for dt grå orådt, og lggr tl for substtuso. Å lgg tl r dt s so å sltt P. Rgr ut [, ] vd å f [ -, ](dt dstc for dt grå orådt, og lggr tl for slttg P. Rgr ut [, ] vd å f [, -] (dt dstc for dt grå orådt, og lggr tl for slttg.. Strgr so lgr Forl (rkursv dfso for, ] vl ltså vær so følgr:, ], ] = { [, ] +, [, ] +, [, ] + } substtuso tllgg slttg slttg P, ] =,, ] =, ] =. hvs P[ ] = [ ] llrs Løsg, dt dstc llo strg, fs,] (P r v lgd og v lgd.
. Strgr so lgr. Strgr so lgr Forl (rkursv dfso for, ] vl ltså vær so følgr: Forl (rkursv dfso for, ] vl ltså vær so følgr:, ], ] = {, ] +,, ] +,, ] + substtuso slttg slttg tllgg P, ] =,, ] =, ] =. } hvs P[ ] = [ ] llrs, ], ] = {, ] +,, ] +,, ] + substtuso slttg slttg tllgg P, ] =,, ] =, ] =. } hvs P[ ] = [ ] llrs - - - -...... - - - - +./. Strgr so lgr./. Strgr so lgr fucto Edtstc ( P [: ], [: ] for to do, ] for to do, ] for to do for to do If P [ ] = [ ] th, ] -, - ] ls, ] { -, - ] +, -, ] +,, - ] + } df dfor dfor rtur(, ] d Edtstc ks. P dl s dl
./. Strgr so lgr Optl trsultplkso ks. V r gtt skvs M, M,, M - v trsr og øskr å brg produktt M M M -. V gør dtt vd å stt prtsr, og ultplsr pr v trsr, f.ks slk: M M M M = (M (M M M P s dl dl Prts k stts på g åtr: (M (M (M M (M ((M M M ((M M (M M ((M (M M M (((M M M M Kostd (tll sklr ultplksor k vrr vldg llo d ulk åt å stt prtsr på. Gtt to trsr A = p q trs, B = q r trs. Optl trsultplkso Kostd (tll sklr ultplksor vd å brg A B r p q r (A B r p r trs. Eks. Brg A B C, hvor A r trs, B r trs, og C r trs. Å brg = (A B kostr, og gr trs. Å brg C kostr,. otl kostd for (A B C blr 7,. Å brg E = (B C kostr, og gr trs. Å brg A E kostr,. otl kostd for A (B C blr 7,.. Optl trsultplkso Gtt skvs v trsr M, M,, M -, øskr v å brg produktt på bllgst ulg åt v å f optl prts-struktur. E prtrsrg v skvs r oppdlg to dlskvsr, so hvr for sg å prtrsrs: (M M M k (M k + M k + M - V å prøv ll ulg k for å f hvor dt r bst å dl skvs. Hvrt dlgspukt gr opphv tl to dlproblr prtrsrg v vstr og høyr dlskvs. Bstår skvs br v trs, r d prtrsrg v sg slv. Hr v optl prtrsrg v skvs v trsr, så å prtrsrg v hvr dlskvs også vær optl. Ellrs k v o br bytt ut d so kk vr optl d bdr. (Optlttsprsppt holdr.
. Optl trsultplkso. Optl trsultplkso L d, d,, d vær dso tl skvs v trsr M, M,, M -, slk t trs M hr dso d d +. d L, vær kostd v optl prtrsrg v M, M +,, M Forl (rkursv dfso for, vl vær so følgr:, { + + d d d }, for ll <, =, k k, k + + k<,87, 9,7 7,,7, =, for ll 7,87,7,,,7,6 7,, Kostd v å utfør ultplkso d d optl prtrsrg fr v, -. Optl trsultplkso./. Optl trsultplkso d, 9,7 7,,7 7,87,7,,,7,6 7,,,87,, = (d d d + (, + (,, d d d + (, + (,, d d d + (, + (, = ( + +,, +,6 +,, +,7 + M M M M = M (M M M = (M M (M M c = (M M M M,,87, 9,7 7,,7 7,87,7,,,7,6 7,,
./. Optl trsultplkso. Optl trsultplkso M M M M = M (M M M = (M M (M M = (M M M M, c c,87, 9,7 7,,7 7,87,7,,,7,6 7,, M M M M M M = (M M M (M M M = ((M (M M ((M M (M./. Optl trsultplkso Optl søktrær fucto OptlPrs( d[ : ] for to - do [, ] for dg to do // hlpvrbl for å fyll ut tbll vå for vå for to dgdo + dg [, ] for k to do q [, k] + [k +, ] + d[] d[k + ] d[ + ] f q < [, ] th [, ] q c[,] k df rtur [, ] d OptlPrs A Jo Pt Ry
Optl søktrær Optl søktrær Pt Pt Jo Ry Jo Ry A A A Jo Pt Ry A Jo Pt Ry p p p p p p p p q q q q q q q q q q Gosttlg søktd: p + p + p + p + q + q + q + q + q Optl søktrær For grll søktrær får v følgd forl for gosttlg tll slkgr so gørs: t tr d øklr (søkord lgrt tr odr K,, K -. + bldodr tlsvrr trvllr I,, I llo økl. ssylghtsvktorr p og q for økl og trvll llo d. d r våt tl økkl K, r våt tl bldod so korrspodrr d I. A (,, p, q = p( d + + = = q Optl søktrær Hvs p - r lk og q - r lk, vl dt kopltt bær søktrt vær dt optl. M o ord k vær oftr søkt ttr dr (p - ulk, drfor k dt lø sg d skv trær og dltrær, for å få ord so dt oft blr søkt ttr så høyt so ulg opp trt. V øskr å f dt optl bær søktrt ovr ll ulg, gtt søkssylght (p - og q -. vs trt so rr gosttlg tll slkgr A(,,p,q: A(,, P, Q p - og q - r utggspuktt ssylghtr (tll trvllt [,], so surr tl, v k slkk på krvt og t t d r postv rll tll, dt r ustt br tll so slks. L σ ( p, q = + p q = =
. Optl søktrær Et bært tr for økl K, K - bstår v rot d økkl K, og to dltrær L og R. K. Optl søktrær L vær t søktr for økl K,, K,,. ( r dt to trt o <. K,, K - p,, p - q,, q K +,, K - p +,, p - p +,, q L σ (, = k = + p k + q k k = V å prøv ll ulg røttr K for å f hvor dt r bst å dl trt. Hvr ulg rot gr opphv tl to dlproblr optlsrg v d korrspodrd vstr og høyr dltrær. Forl (rkursv dfso for A(, vl vær so følgr: A( = { A(, k + A( k +, } + σ (, k A( = + + σ(, Gosttlg tll oprsor for trt r gtt vd: A(,, p, q A( L,, p,..., p, q,..., q + A( R, +, p,..., p, q,..., q + σ ( p, q = + + Kostd v dt optl trt fr v A(,-. For klthts skyld skrvr v A( = A(L + A(R + σ(p,q./. Optl søktrær Fyllr ut ulk typr tbllr E lgort k å rltvt klt lgs vd å fyll ut tbll d vrd for A( so dfrt v forl (s åt so for trsultplkso: Botto up A( = { A(, k + A( k +, } + σ (, k A( = + + σ (, I tllgg tl vrd A( å også rprstso v d ktull trær vdlkholds, slk t v fr slv trt.