Teat: Pogaowanie dynaiczne. Pogaowanie dynaiczne Uycie stategii pogaowania dynaicznego polega na zapaitaniu w odpowiednie stutuze (naczcie tablicy) wyniów ozwizania podpobleów, na tóe został podzielony poble zasadniczy, uniac w ten sposób wielootnych oblicze dla tego saego podpobleu. Pogaowanie dynaiczne powadzi do całowite bd czciowe eliinaci euenci.. Cig Fibonacciego Funca obliczaca watoci eleentów cigu Fibonacciego Cig Fibbonaciego: F() F() F(n)F(n-)F(n-) dla n> Algoyt I (ozwizanie euencyne) int fib(int n) if (n) etun ; else etun fib(n-)fib(n-); } Koszt czasowy: O( n ) Koszt paiciowy: O(n) W funci fib powtaza si wywołania dla te sae watoci paaetu n. Na pzyład w wywołaniu fib() dwa azy powtaza si wywołanie fib(), tzy azy powtaza si wywołanie fib(). Powtazace si wywołania angau poceso, co powodue wzost złoonoci czasowe algoytu. Reody atywaci wywoła euencynych zwisza złoono paiciow algoytu.
Algoyt II (pogaowanie dynaiczne w wesi z tablic) int fib(int n) int f[n]; f[]f[]; fo (int i;in;i) f[i]f[i-]f[i-]; etun f[n]; } Koszt czasowy: O(n) Koszt paiciowy: O(n) Algoyt III (pogaowanie dynaiczne w wesi bez tablicy) int fib(int n) int a,b,c; fo (int i; in; i) cab; ab; bc; } etun c; } Koszt czasowy: O(n) Złoono paiciowa: O(). Poble optyalnego noenia aciezy WP : Cig aciezy:,,..., n, gdzie i est aciez o i wieszach i i olunach. WK : Wyniie est taie ozstawienie nawiasów w iloczynie... n, aby ilo wyonanych opeaci noenia pzy obliczaniu iloczynu aciezy była inialna. Rozia zadania: n Opeaca eleentana: obliczenie iloci wyonanych noe podczas opeaci wyznaczania iloczynu dwóch
aciezy. Na pzyład,,, [ ] [ ] [ ] [ ] Ogólnie, eeli noyy dwie acieze A [ p q] B [ q ] wyonywanych est pq noe.,, to I oleno: (( ) ( )) Ilo noe: oszt noenia aciezy oszt noenia aciezy oszt noenia aciezy II oleno: ( ( ( ))) ( ) Ilo noe: oszt noenia aciezy oszt noenia aciezy oszt noenia aciezy 7 Algoyt naiwny Rozway wszystie oliwe ustawienia nawiasów, obliczac dla ade oliwoci ilo wyonanych opeaci noenia. Liczba oliwych ustawie nawiasów X(n) w iloczynie wyaa si nastpuc zalenoci euencyn:... n X n n i dla n (*) X ( i) X ( n i ) dla n > ona poaza, e posta awna ównania (*) est nastpuca: n n... (n ) ( n )... (n ) X n n n n ( n )! ( n )! ona poaza, e: ( n ) ( n )... (n ) n ( n )!
Algoyt opaty na pogaowaniu dynaiczny Oznaczenie: i - inialny oszt obliczenia iloczynu aciezy i in i i... dla i ( ) i dla i i i n dla i i inialny oszt noenia aciezy i i... o oziaze i inialny oszt noenia aciezy... o oziaze oszt noenia aciezy o oziaze i i i Dla i wato i, i, i,..., -. Roziay aciezy uieszczay w tablicy R [,,...,, ] : n n. Watoci i zapaituey w tablicy dwuwyiaowe. Na pzyład niech n. Rozwaay iloczyn : acieze a nastpuce oziay: R : [ ], [ ], [ ], [ ] [,,,, ], gdzie
,,, in in in in in in }, in, in in }, in, in in
in ( ) in,, in,, } Czyli: Wynii: Optyalne ozstawienie nawiasów w iloczynie : ( ( ) ) Algoyt fo (i;in;i) ii : ; fo (t;tn-;t) fo (i;i n-t; i) it; i in( i i ); }; i Złoono pesyistyczna: T n n n... n n ax ona poaza, e T ( n) Θ( n ) ax. 6
. Poble optyalne tiangulaci wielota wypułego WP: v, v,..., v n- cig wiezchołów wielota wypułego W WK: T zbió nie pzecinacych si pzetnych wielota, dzielcych go na ozłczne tóty ta, e sua obwodów powstały tótów est naniesza. Algoyt wyozystucy pogaowanie dynaiczne Poble optyalnego noenia aciezy est szczególny pzypadie pobleu optyalne tiangulaci. Kady egzeplaz pobleu nawiasowania iloczynu aciezy ona sfoułowa ao ównowany egzeplaz pobleu optyalne tiangulaci.,,...,, n Cigowi oziaów aciezy odpowiada cig wiezchołów wielota v, v, v,..., v n. Wystaczy w algoytie ustalacy optyalne nawiasowanie iloczyn oziaów aciezy: i zastpi wywołanie funci obliczace obwód tóta v i, v, v. Wato i aciezy wyznaczone w algoytie optyalnego nawiasowania opowiada wyniowi optyalne tiangulaci wielota: v i, vi,..., v. 7
Odpowiedniie ozstawienia nawiasów w iloczynie aciezowy ( ( ) ) est nastpuca tiangulaca: v, v, v v ( ) ( ), v, v, v v v v v v 8