LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
ag_multiclass_closed.m
1%% Multiclass Closed Network with MAM
2%
3% This example demonstrates MAM with RCAT methods on a multiclass closed queueing
4% network. The RCAT algorithm handles multiple job classes by creating
5% separate processes for each (station, class) pair.
6%
7% Copyright (c) 2012-2025, Imperial College London
8% All rights reserved.
9
10clear; clc;
11
12%% Parameters
13N1 = 5; % Number of class 1 jobs
14N2 = 3; % Number of class 2 jobs
15mu1_q1 = 2.0; % Service rate for class 1 at queue 1
16mu2_q1 = 1.5; % Service rate for class 2 at queue 1
17mu1_q2 = 1.0; % Service rate for class 1 at queue 2
18mu2_q2 = 0.8; % Service rate for class 2 at queue 2
19
20%% Create model
21model = Network('Multiclass-Closed');
22
23queue1 = Queue(model, 'Queue1', SchedStrategy.PS);
24queue2 = Queue(model, 'Queue2', SchedStrategy.PS);
25
26class1 = ClosedClass(model, 'Class1', N1, queue1);
27class2 = ClosedClass(model, 'Class2', N2, queue1);
28
29queue1.setService(class1, Exp(mu1_q1));
30queue1.setService(class2, Exp(mu2_q1));
31queue2.setService(class1, Exp(mu1_q2));
32queue2.setService(class2, Exp(mu2_q2));
33
34% Simple routing: each class cycles through both queues
35P = model.initRoutingMatrix();
36P{1,1} = Network.serialRouting({queue1, queue2});
37P{2,2} = Network.serialRouting({queue1, queue2});
38model.link(P);
39
40%% Solve with MAM using INAP method (default)
41solverINAP = MAM(model, 'method', 'inap');
42avgTableINAP = solverINAP.getAvgTable()
43
44%% Solve with MAM using exact method (AutoCAT)
45solverExact = MAM(model, 'method', 'exact');
46avgTableExact = solverExact.getAvgTable()
47
48%% Solve with MVA for comparison
49solverMVA = MVA(model);
50avgTableMVA = solverMVA.getAvgTable()