LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
example_no_impatience.m
1% Example: Baseline Model Without Impatience
2%
3% This example serves as a baseline to verify backward compatibility.
4% It creates a simple queueing network WITHOUT any impatience configured,
5% ensuring that existing models continue to work as expected.
6%
7% Model:
8% - Two queues in series
9% - Single job class
10% - NO impatience configured (standard queueing behavior)
11%
12% Purpose: Verify that:
13% 1. Models without impatience continue to work correctly
14% 2. JMT XML generation produces 'null' for impatience parameters
15% 3. Results match standard queueing theory predictions
16%
17% Copyright (c) 2012-2026, Imperial College London
18% All rights reserved.
19
20clear node jobclass solver AvgTable
21
22model = Network('Baseline - No Impatience');
23
24% Define nodes
25node{1} = Source(model, 'Source');
26node{2} = Queue(model, 'Queue1', SchedStrategy.FCFS);
27node{3} = Queue(model, 'Queue2', SchedStrategy.FCFS);
28node{4} = Sink(model, 'Sink');
29
30% Define job class
31jobclass{1} = OpenClass(model, 'Class1', 0);
32
33% Set service times
34node{2}.setService(jobclass{1}, Exp(2.0)); % Mean service = 0.5
35node{3}.setService(jobclass{1}, Exp(1.0)); % Mean service = 1.0
36
37% Set arrival rate
38node{1}.setArrival(jobclass{1}, Exp(0.4)); % Arrival rate = 0.4
39
40% NOTE: NO patience is configured - this is intentional!
41% The model should work exactly as before the impatience feature was added.
42
43% Define routing
44K = model.getNumberOfClasses();
45P = cell(K, K);
46P{1,1} = [0, 1, 0, 0; % Source -> Queue1
47 0, 0, 1, 0; % Queue1 -> Queue2
48 0, 0, 0, 1; % Queue2 -> Sink
49 0, 0, 0, 0]; % Sink -> nowhere
50
51model.link(P);
52
53%% Solve with JMT
54options = Solver.defaultOptions;
55options.keep = true;
56options.verbose = 1;
57options.samples = 1e5;
58options.seed = 23000;
59
60disp('This is a baseline example WITHOUT impatience to verify backward compatibility.');
61disp(' ');
62disp('Model parameters:');
63disp(' - Arrival rate: 0.4');
64disp(' - Queue1 service rate: 2.0');
65disp(' - Queue2 service rate: 1.0');
66disp(' - NO impatience configured');
67disp(' ');
68disp('Expected behavior:');
69disp(' - Standard M/M/1 queueing with no job abandonment');
70disp(' - JMT XML should contain <value>null</value> for impatience parameters');
71disp(' - Results should match traditional queueing analysis');
72disp(' ');
73
74solver{1} = JMT(model, options);
75
76fprintf(1, 'SOLVER: %s\n', solver{1}.getName());
77AvgTable{1} = solver{1}.getAvgTable();
78AvgTable{1}
79
80disp(' ');
81disp('Backward compatibility verified: Model runs successfully without impatience.');
Definition mmt.m:92