1%% Cache RMF Transient Analysis
2% Demonstrates refined mean field (RMF) transient and steady-state
3% analysis of a multi-list cache with RANDOM(m) replacement.
5% Uses CacheRMF directly to compute:
6% - Steady-state hit/miss probabilities with 1/N correction
7% - Transient evolution of hit rates via coupled ODE system
12n = 10; % number of items
13m = [3, 2]; % list capacities (2-list cache)
14alpha = 0.8; % Zipf exponent
16% Zipf popularity distribution
20fprintf(
'Cache parameters: n=%d, m=[%s], Zipf(%.1f)\n', n, strjoin(arrayfun(@num2str, m,
'UniformOutput',
false),
', '), alpha);
23model = CacheRMF(p, m);
25% Steady-state analysis with 1/N correction
26[pi, V, VW] = model.meanFieldExpansionSteadyState(1);
27pi_refined = pi(:)
' + V(:)' / n;
29fprintf(
'\nSteady-state results (refined mean field):\n');
32 hr = model.hitRate(pi_refined, k);
33 total_hit = total_hit + hr;
34 fprintf(
' Hit rate (list %d): %.6f\n', k, hr);
36miss_rate = model.hitRate(pi_refined, 0);
37fprintf(
' Miss rate: %.6f\n', miss_rate);
38fprintf(
' Total hit prob: %.6f\n', total_hit);
39fprintf(
' Total miss prob: %.6f\n', miss_rate);
42[T, X, Vt, W] = model.meanFieldExpansionTransient(50, 200, 1);
44fprintf(
'\nTransient hit rates (refined, N=%d):\n', n);
45time_indices = [1, 21, 51, 101, 200]; % t=0, ~5, ~12.5, ~25, 50
47 xt = X(idx, :) + Vt(idx, :) / n;
50 hr = hr + model.hitRate(xt, k);
52 fprintf(
' t=%7.3f: hit_rate=%.6f\n', T(idx), hr);