Stavo passando per l'Introduzione agli algoritmi di Cormen et al.Nel capitolo intitolato Amortized Analysis, la differenza tra metodi contabili e potenziali è data in questo modo
The accounting method overcharges some operations early in the sequence, storing the overcharge as “prepaid credit” on specific objects in the data structure. ...
The potential method maintains the credit as the “potential energy” of the data structure as a whole instead of associating the credit with individual objects within the data structure.
Ho cercato di capire questo usando l'esempio di array ridimensionabile che raddoppia le sue dimensioni quando non c'è spazio per inserire un elemento. Quello che non riuscivo a capire era la seguente frase
storing the overcharge as “prepaid credit” on specific objects in the data structure
Utilizzo del metodo Contabilità:
ci = l'addebito per l'operazione i-esimo
c'i = costo ammortizzato dell'operazione i-esimo
Si = dimensione dell'array dopo l'operazione i-esima
bi = saldo del credito dopo l'operazione i-esima
i 1 2 3 4 5 6 7 8 9 10
si 1 2 4 4 8 8 8 8 16 16
ci 1 2 3 1 5 1 1 1 9 1
c'i 3 3 3 3 3 3 3 3 3 3
bi 2 3 3 5 3 5 7 9 3 5
che cosa significa esattamente "memorizzare su oggetti specifici nella struttura dati" significa qui?
Nel metodo potenziale, se uso phi per essere 2n-m dove n = numero di elementi currebt nella matrice, e m = dimensione dell'array
n m phi
empty 0 0 0
add first elem 1 1 1
add secondelem 2 2 2
add third elem 3 4 2
add fourth elem 4 4 4
add fifth elem 5 8 2
In questo, cosa significa "... la" energia potenziale "della struttura dati nel suo insieme invece di associare il credito con singoli oggetti all'interno della struttura dati."