Amortizovaná časová složitost označuje časovou složitost algoritmu v sekvenci nejhorších možných vstupních dat. Na rozdíl od průměrné složitosti nevyužívá pravděpodobnosti a je proto zaručená.

Amortizovaná vs. asymptotická složitost

Asymptotická složitost je deklarována na základě nejhorší (nejlepší) možné instance běhu algoritmu, což ale není vždy vypovídající, protože i nejhorší sekvence případů může mít výrazně lepší průběh, než by asymptotická složitost napovídala. Tento zdánlivý paradox je zapříčiněn tím, že operace s vysokou složitostí změní datovou strukturu tak, že takto špatný případ nenastane po nějakou delší dobu - tím se složitá operace amortizuje.


Příklad

Mějme dynamické pole (ArrayList), které se natahuje klasickým způsobem – je-li jeho kapacita vyčerpána, naalokuje se dvojnásobné pole a to původní se do něj překopíruje.

Asymptotická složitost operace vkládání je očividně O(n), protože v nejhorším případě dojde k realokaci pole a kopírování všech prvků. Amortizovaná složitost, jak si nyní ukážeme, je pouze O(1).

Účetní metoda

Pro výpočet použijeme tzv. účetní metodu, při které je každé operaci přirazena amortizovaná a skutečná cena. Pokud je amortizovaná cena vyšší než skutečná, tak rozdíl vložíme na společný účet, je-li skutečná cena vyšší, pak rozdíl z účtu vybereme. V každém okamžiku musí být zůstatek na účtu nezáporný.

Vkládejme prvky do pole a stanovme této operaci amortizovanou cenu (2k + 1) žetonů, kde k je nějaká konstanta. První žeton vždy spotřebujeme na samotnou operaci insert (skutečná cena). Zbylé žeton uchovejme na společném účtu. V okamžiku, kdy se původní pole naplní, zaalokujeme nové, překopírujeme prvky a smažeme staré pole (složitost této operace na jeden prvek stanovme jako k, pro n prvků k \\cdot n). Protože jsme od minulé alokace pole přidali přesně n/2 prvků, máme na účtu k \\cdot n žetonů, což přesně zmíněné cena realokace pole. Amortizovaná složitost algoritmu je proto O(2k+1) = O(1).

Tento závěr mj. odpovídá na otázku, proč může být dynamické pole výkonnější než spojový seznam, ač vkládání jeho prvků vyžaduje občasnou realokaci.

Použití

Amortizovaná složitost dává přesnější popis dlouhodobého chování systému než asymptotická složitost. Její použití se však omezuje pouze na situace, kdy nemusíme garantovat okamžitou odezvu systému, protože vždy může nastat ona jednotlivá nejhorší situace.


SEO od společnosti Digital Pylon


Online casino s algoritmem

České casino online online slot-vegas.cz

Hrajte nejlepší hry jako je GoodGame Empire.





Zajímavé články: Jak najít práci snů? Zvolte kariéru v IT!, Češi mají rádi hrací automaty online, Jak funguje algoritmické obchodování Casino, Online výuka Algoritmus a online marketing mají svá pravidla, Automaty, Matematický vliv, Ratings, Jak fungují algoritmy hazardních her online: více znalostí, více peněz, SYPWAI - nástroj pro vědecký vývoj, Vynikají na globálním trhu: Nejlepší vývojáři softwaru pro online výherní automaty, Jak si vybrat nejlepší české online casino, Proč byste měli hrát online casino VPN revoluce, Kde najdeme algoritmy v každodenním životě?, Čeká vás pracovní pohovor mimo město? Podívejte se, jak dokonale zvládnout včasný příchod, 5 úžasných technologií ze světa hazardních her, Mirror and access to Mostbet, Svou kancelář můžete mít stále po ruce, Jaké výhody má digitalizovaná firma oproti off-line konkurenci?, Jaký systém vybrat pro snadné řízení výroby?, Nahradí umělá inteligence ajťáky?, Důvody, proč používat SnapTik ke stahování videí TikTok, Dokonalý den na pláži: Co si vzít s sebou, aby byl výlet zábavný a bezpečný?, Jak přežít dlouhý let?, Go pay GoodGame Empire, Blockchain, Rozhovor


Doporučujeme

Internet pro vaši firmu na míru

https://www.algoritmy.net