Koszt zamortyzowany – w informatyce jedna z miar złożoności obliczeniowej operacji na strukturze danych. Koszt zamortyzowany operacji jest średnim czasem wykonania przypadającym na jedną operację w pesymistycznym ciągu operacji.
Analiza kosztu zamortyzowanego zajmuje się oszacowaniem czasu niezbędnego do wykonania ciągu operacji, a nie pojedynczej operacji. Może się bowiem zdarzyć, że wykonanie całego ciągu jest mniej kosztowne niż wskazywałaby na to złożoność obliczeniowa jednej operacji, ponieważ tylko niektóre ciągi operacji są możliwe.
Koszt zamortyzowany różni się od kosztu średniego tym, że bierze pod uwagę ciąg operacji i nie jest metodą probabilistyczną. O ile koszt średni reprezentuje wartość oczekiwaną złożoności czasowej operacji, tak koszt zamortyzowany stanowi oszacowane dla pesymistycznego przypadku średniego kosztu operacji w ciągu.
Spis treści |
Poszczególne metody analizy kosztu zamortyzowanego poniżej będą zilustrowane analizą kosztu operacji na stosie z operacjami Push(x), która wkłada element x na stos, i Multipop(k), która zdejmuje ze stosu k elementów. Niech m oznacza liczbę elementów na stosie. Pesymistyczna złożoność pojedynczej operacji Multipop może być
, ponieważ może nastąpić zdjęcie kolejno wszystkich elementów stosu. Analiza kosztu zamortyzowanego posłuży do lepszego oszacowania złożoności tej operacji jako części ciągów operacji na stosie.
Jeżeli można oszacować sumaryczny koszt ciągu
operacji na strukturze danych przez funkcję
, to mówimy, że zamortyzowany koszt jednej operacji wynosi
. W przeciwieństwie do dwóch pozostałych metod, jeżeli w ciągu znajdują się operacje kilku typów, przy tej metodzie zamortyzowany koszt jest przypisywany niezależnie od typu operacji,
, a koszt zamortyzowany (przypadający na pojedynczą operację) wynosi
.W metodzie księgowania koszt zamortyzowany jednej operacji jest równy sumie jej kosztu faktycznego oraz kredytu, który można przypisać lub odebrać elementom struktury. Operacje, których koszt zamortyzowany przewyższa koszt faktyczny dodają do elementów struktury kredyt, który jest potem wykorzystywany na „opłacenie” operacji, których koszt rzeczywisty jest większy.

W analizie kosztu zamortyzowanego metodą potencjału przypisujemy strukturze danych w jej stanie po wykonaniu
-tej operacji w ciągu liczbę rzeczywistą
, która reprezentuje potencjał struktury danych. Podobnie jak w przypadku kredytu, operacje mogą zwiększać lub zmniejszać potencjał struktury, a sam potencjał może być rozpatrywany jako suma kredytów we wszystkich elementach struktury, z tym, że nie jest on związany z żadnym jej elementem, a z całą strukturą. Koszt zamortyzowany
-tej operacji na strukturze danych określamy następująco:
,gdzie
jest rzeczywistym jej kosztem. Sumaryczny koszt zamortyzowany ciągu
operacji jest równy
.
jako liczbę elementów na stosie. Koszt zamortyzowany operacji Push, wykonanej jako i-ta operacja w ciągu, wynosi
(potencjał rośnie o 1),
, gdzie 
, a jednocześnie potencjał struktury danych spada o
.
.