Спец часть (часть 3) (3 поток) (2015) (by Кибитова) (1161603), страница 4
Текст из файла (страница 4)
Пусть f (n)O(g(n)).Этаоценка вявляетсяветствиисопределением..растающаяо которойговоритсяв определении.. еслиТогдасуществуетположительнаяc такая,чтоточной,и последовательность,толькоесли неверно,чтоf (n)константа= o(g(n)). нии..существуетположительнаяc такая,| f (nc| g(nТогда1, 2,сложности..., и соотношениеf (n)константа= o(g(n))местаДлярассматриваемойалгоритма пробныхделенийне не чтоk) | !k ) |, k =Доказательство.Пусть оценка является точной, и {nk } — воз|f(n)|!c|g(n)|,k=1,2,...,исоотношениеf(n)=o(g(n))верна,!скажем,оценкаO(log n), потомучтоэтой сложностиоцен-места неимеет.Обратно,еслиневерно,чтоf (n)= дляo(g(n)),тоkk! повопределениюрастающаяпоследовательность,о которой говоритсяопределека имеет.O( n) являетсяточнойив тожечтовремяlogno(g(n)),= o( n).то по определениюОбратно,еслиf (n)=последовательностьсимволасуществуютϵ >неверно,0ивозрастающая{nk }нии ..o Тогдасуществуетположительнаяконстантаc такая, чтоНелишнимбудет такие,заметить,чтосложностьалгоритмапробныхдесимволаoсуществуютϵ>0ивозрастающаяпоследовательностьнатуральныхчиселчто|f(n)|!ϵ|g(n)|,k=1,2,...Еслипри {nk }k| f (nk ) | ! c| g(nk ) |, k = 1, 2, ..., и соотношениеfk(n) = o(g(n)) места не5ленийдопускаетоценкиO(n),O(n),O(nlogn)ит.д.,хотя,разумеетнатуральныхтакие, чтоf (n=| ! ϵ| g(nто, k!определению= 1, 2, ...
Если приk )o(g(n)),k ) |поимеет.Обратно, чиселесли неверно,что |f (n)ся, эти оценки являются более грубыми в сравнении с O( n). Еще разсимвола o существуют ϵ > 0 и возрастающая последовательность {n }подчеркнем, что оценка f (n) = O(g(n)) есть асимптотическая верхняяkнатуральных чисел такие, что | f (nk ) | ! ϵ| g(nk ) |, k = 1, 2, ... Если приоценка, равно как оценка f (n) = Ω(g(n))— асимптотическая нижняя .Как, например, из l < 5 и m < 100 нельзя вывести, что l < m, так и изf (n) = O(n2 ), g(n) = O(n3 ) нельзя вывести, что хотя бы для достаточнозатрат,норазным дляразмерамвходаалгоритма— ∥ · ∥ и A,∥ · считая,∥ , принимаюкT ′учетаоценкамT=иE |наобороткакого-либоA (n)(|V|,|E|)Θ(|).+VLщимв " , соответствуютпричем∥одномуxимеет∥ = n местодлянекотороговходаx, точтоэти значениядве сложностии томуспособуПредложение2.1.
Соотношениеf (n)=еслиΘ(g(n))тогдажеи толькотогда, когда∗∗∥ x ∥ затрат,= m = λно(n)=⌊log2размерамnи⌋f+таком—случае,выполненоучетаразнымвхода∥ · ∥этого,и ∥очевидно,·f∥(n), =принимаюодновременноf (n)= O(g(n))(n)1.=ΩВ(g(n));помимоΩ(g(n))тогда и только§.Длиначисла+ как возможный размер входащимзначенияв =O(" ,f причемесли∥x∥=nдлянекотороговходаx,тотогда,когда g(n)(n)).TA∗ (m) = max TA (n).(.)∗∥ x ∥ = m = λ(n) = ⌊log2 n⌋ + 1. В таком2mслучае,−1 # n<2m очевидно, выполненоЧасто,хотя и 2.3.не Есливсегда,дляалгоритмовцелочисленнойарифметики,Определениеимеетместооценка f (n)=O(g(n)), то она называетсяточной, коль∗T(m)=maxT(n).(.)AЯсно,существуетчто TA (n)несетболееполнуюинформациюорассматриваевходомкоторыхявляетсяцелоенеотрицательноечислоn,размеромAскоронеограниченновозрастающаяпоследовательностьнеотрицательных2m−1 #n<2mвходанеA,самоn,TA∗аϕ(k)=егоf битовуюдлину,или,словамомвыбираюталгоритмечемдля(m):значенияTA∗ )(m),mместо=иными1, 2,...,Ωобразуютцелыхчисел , - такая,что(имеетϕ(k)=(ψ(k)).
), ψ(k)= g(Ясно,чтоT(n)несетболееполнуюинформациюорассматриваеAми,количество λ(n) цифрв его двоичнойзаписи:подпоследовательностьпоследовательностиTA (n), n = 1, 2, ... Поэто∗∗момалгоритмеA,чемT(m):значенияT(m),m=1, 2, к...,оценкамобразуют∗арифметики,AAЧасто,хотяиневсегда,дляалгоритмовцелочисленнойвходомкоторых!му естественно, что переходот оценок для TA (m)дляTA (n)подпоследовательностьпоследовательностиT(n),n=1,2,...Поэто1,если=0,A nвходаявляетсяцелоенеотрицательноечислоn,размеромвыбираютнесамоn,егоприводит к болеегрубомурезультату, ∗чем тот, который может абытьλпереход(n)= от оценокмубитовуюестественно,чтодляT(m)коценкамдляT(n)A записи.или, иными словами,цифрA λ(n)⌊log2рассмотренииn⌋количество+ 1, еслиnразмера>0.
в его∥двоичнойполучендлину,x ∥ = бытьn.Особенноприводитк приболееизначальномгрубому результату,чем тот, которыйможет это касаетсянижних оценок(пример. прямоуказываетна это).полученприизначальномрассмотренииразмера∥x∥=n.ОсобенноНаряду с его⌊ужесложностью этоговведемеще одну можноВыражениеlog2рассмотреннойn⌋ + 1 во второйстрочкеопределения∗нижних оценок (пример . прямо указывает на это).этокасаетсясложность (),заменитьна⌈..log2m=λ(n).(n + 1)⌉f—см..ЛеммаПусть(x)— задачунеубывающаяфункция вещественнойпе ∗ременной.# f (m), тоTA (n) #f (log2 n + 1).Лемма ..ТогдаПустьеслиf (x)T—неубывающаяфункциявещественнойпеA (m)Лемма 4.1.
Пусть f (x)—неубывающаяфункция вещественной переменной.∗ременной. Тогдаесли TA (m) # f (m), то TA (n) # f (log2 n +m1).Тогдаесли ∗ () ≤ (),то m≤и(logДоказательство.Пустьn фиксированы,2 −1 # n < 2m , и пусть2 + 1)m−1Доказательство.Следуетиз неубыванияf.Доказательство.Пустьm и n фиксированы, 2# n < 2m , и пустьзначениеn̂ таково,чтозначение n̂ таково, что2m−1 #mn̂ < 2m ,(.)m −1Лемма 4.2. Пусть g(x)—неубывающая2# n̂функция< 2 , вещественнойпе(.)ременной.Тогдаи при этоми (i)приэтомесли ≤ (),то ∗ ≤ (2 ),∗TA(n̂)(.)∗ = TA (m).= T−1(m).(.)(ii) если ≥ ()то ∗ TA≥(n̂)(2).AИспользуемнеубываниеИспользуемнеубываниеf (x):f (x):Теорема 4.1. Пусть f (x)—неубывающая функция вещественнойпеременной.∗Тогдаесли(()),то=1));TA (n)TA==(n̂)TA∗#(m)#f (m)= 2f (n⌊⌋log⌋+1) 2#nf+(log 2+1)TA (n)#TA#(n̂)TA∗=(m)f (m)=f (⌊((loglogf (log1).
2 n + 1).2+n# как следствие, при f (x +1)= O( f (x)) имеем = ( log 2 ).ЛеммаПусть— неубывающаяфункциявещественнойпеЛемма....Пустьg(x) g(x)— неубывающаяфункциявещественнойпеременной.Тогдаременной.Тогдаg(x)—неубывающая функция вещественнойпеременной.Теорема4.2.Пусть∗∗ g(2m ),(i) (i)еслиTA (n)g(n),то TтоТогдаеслиTA#(n)# g(n),T#(m) # g(2m ),A (m)A∗m∗−1 ).
m−1∗ g(2если(n)! g(n),!(i)(ii)еслиTA= ), тото T=T(если(ii)T(то(m)2 ! ),g(2).A (m)A (n) ! g(n),A∗ −1(ii)если=Ω(),то=Ω(2);какследствие, Глава. Сложности алгоритмовкак функциичисловых аргументов . Сложности∗ алгоритмовкак функции числовых аргументовПриГлава 2 = Ω , = Ω( 2 );Доказательство. Пусть m фиксировано,m2−m1 −1 ! n <m2m , и пусть знаДоказательство. Пусть m фиксировано, 2! n < 2 , и пусть значение n̂ таково, что выполнены (.) и (.). Используем неубываниечение n̂ таково, что выполнены (.) и (.).
Используем неубываниеg(x):g(x): ∗(i)T (m) = T (n̂) ! g(n̂) ! g(2m ),(i) TAA∗∗(m) = TAA(n̂) ! g(n̂) ! g(2m ),m−1(ii)TA∗ (m)(m)==TTA(n̂)(n̂)""g(n̂)g(n̂)""g(2g(2m−1 ).(ii) T).AA УтвержденияследующихдвухтеоремнепосредственноследуютУтверждения следующих двух теорем непосредственно следуютиздоказанныхлемм. (При(Прирассмотрениирассмотренииасимптотическойасимптотическойоценки,из доказанных лемм.оценки,содержащейнекоторую переменную,переменную,подразумевается,подразумевается,значениесодержащей некоторуючточтозначениеэтойстремитсяккбесконечности.)бесконечности.)этой переменнойпеременной стремитсяТеорема..
ПустьПусть f f(x)(x)——неубывающаянеубывающаяфункцияфункциявещественнойТеорема ..вещественной∗∗переменной. Тогдаf (m)),(n)= O(f (logпеременной.Тогда еслиесли TTA A(m)(m)==O(O(f (m)),тотоTAT= O(f (log+ 1));2 n 2+n1));A (n)как следствие,следствие, при(n)= O(f (logкакпри f f(x(x++1)1)==O(O(f (x))f (x))имеемимеемTAT= O(f (log2 n)).A (n)2 n)). Теорема ..вещественнойТеорема.. ПустьПусть g(x)g(x)——неубывающаянеубывающаяфункцияфункциявещественнойпеременной.Тогдапеременной.
Тогда∗∗m(i) если= O(g(2m )),(i)если TTAA(n)(n)==O(g(n)),O(g(n)),тотоTAT(m))),A∗(m) = O(g(2 m−1(ii)еслиT(n)=Ω(g(n)),тоT(m)=Ω(g(2∗−1 как следствие,A (n) = Ω(g(n)), то AT (m) = Ω(g(2m));(ii)!T)); как следствие,! если"AA"xпри g x = Ω(g(x)) имеем TA∗ (m)= Ω(g(2m )).∗при g 2 = Ω(g(x)) имеем T(m)= Ω(g(2m )).A2Существуютфункции, для которых условие f (x + 1) = O( f (x)) или! Существуют"функции, для которых условие f (xx 2+ 1) = O( xf (x)) илиx! " Теорема ..
Пусть f (x) — неубывающая функция вещественнойпеременной. Тогда если TA∗ (m) = O( f (m)), то TA (n) = O( f (log2 n + 1));как следствие, при f (x + 1) = O( f (x)) имеем TA (n) = O( f (log2 n)).Теорема .. Пусть g(x) — неубывающая функция вещественнойпеременной. Тогда(i) если TA (n) = O(g(n)), то TA∗ (m) = O(g(2m )),(ii)! еслиTA (n) = Ω(g(n)), то TA∗ (m) = Ω(g(2m−1 )); как следствие,"при g x2= Ω(g(x)) имеем TA∗ (m) = Ω(g(2m )).функции, для которых условие f (x + 1) = O( f (x)) или! Существуют"2xg= Ω(g(x)) не выполнено — например, f (x) = 2 x , g(x) = 2 x .2∗Для рассмотренных в примере . сложностей TTD (n), TTD(m) сиx /2туация выглядит следующим образом. Функция f (x) = 2явля∗m/2ется возрастающей, и по теореме . из TTD (m) = O(2 ) следует#TTD (n) = O(2(log2 n+1)/2 ) = O( n).
Рассматривая возрастающую функ#цию g(x) =# x, мы можем, применивтеорему .(i), вывести из#∗mTTD (n) = O( n) оценку TTD (m) = O( 2 ) = O(2m/2 ).#∗Получить из оценки TTD(m) = Ω(2m/2 ) оценку TTD (n) = Ω( n) мыне можем, так как последняя оценка не верна; это не противоречитдоказанным утверждениям.Пример .. Идея бинарного алгоритма возведения a в целуюнеотрицательную степень n, называемого также алгоритмом повторного возведения в квадрат (мы будем обозначать его буквами RS, отанглийского названия алгоритма repeated squaring — повторное возведение в квадрат), состоит в том, что если двоичная запись n естьβk ...