1%% Example RS-
RD Network
2% MATLAB port of example_rsrd.mod
3% RS-
RD network with 20 jobs and 5 queues
12params.M = 5; % Number of queues
13params.N = 20; % Total population
16params.F = [5; 5; 5; 5; 5];
18% Number of phases per queue
19params.K = [2; 2; 2; 2; 2];
21% Routing probabilities
23 0.0, 0.5, 0.0, 0.0, 0.5; % from queue 1
24 0.5, 0.0, 0.5, 0.0, 0.0; % from queue 2
25 0.0, 0.5, 0.0, 0.5, 0.0; % from queue 3
26 0.0, 0.0, 0.5, 0.0, 0.5; % from queue 4
27 0.5, 0.0, 0.0, 0.5, 0.0 % from queue 5
30% Service rates mu{i}(k,h) - completion transition rates
31% Each mu{i}
is a K(i) x K(i) matrix
32params.mu = cell(5, 1);
35 1.016186e+00, 2.585708e-05;
36 1.569888e-03, 1.413298e-02
40% Background transition rates v{i}(k,h)
41% Each v{i}
is a K(i) x K(i) matrix
44 params.v{i} = zeros(2, 2);
47% Load-dependent rates alpha{i}(n) -
default is 1
for all
48% (not specified in example, so
using default)
50%% Solve
for minimum utilization at queue 1
51fprintf(
'====================================\n');
52fprintf(
'QRF RS-RD Example\n');
53fprintf(
'====================================\n');
54fprintf(
'Network: %d queues, %d jobs\n', params.M, params.N);
55fprintf(
'Capacities: [%s]\n', num2str(params.F
'));
56fprintf('Phases: [%s]\n
', num2str(params.K'));
59fprintf(
'--- Minimizing Utilization at Queue 1 ---\n');
60[result_min, x_min, fval_min, exitflag_min] = qrf_rsrd(params, 1,
'min');
62fprintf(
'\n--- Maximizing Utilization at Queue 1 ---\n');
63[result_max, x_max, fval_max, exitflag_max] = qrf_rsrd(params, 1,
'max');
66fprintf(
'\n====================================\n');
68fprintf(
'====================================\n');
69fprintf(
'Utilization bounds for Queue 1:\n');
70fprintf(
' Lower bound: %.6f\n', fval_min);
71fprintf(
' Upper bound: %.6f\n', fval_max);
72fprintf(
'\nAll queue utilizations (at minimum):\n');
74 fprintf(
' Queue %d: U = %.6f\n', i, result_min.U(i));