LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
spn_closed_fourplaces.m
1clear P T R solver AvgTable
2
3model = Network("model");
4
5P1 = Place(model, "P1");
6P2 = Place(model, "P2");
7P3 = Place(model, "P3");
8P4 = Place(model, "P4");
9
10T1 = Transition(model, "T1");
11T2 = Transition(model, "T2");
12T3 = Transition(model, "T3");
13T4 = Transition(model, "T4");
14
15jobclass = ClosedClass(model, "Class1", 2, P1, 0);
16
17mode1 = T1.addMode("Mode1");
18T1.setDistribution(mode1, Exp(2));
19T1.setEnablingConditions(mode1, jobclass, P1, 2);
20T1.setFiringOutcome(mode1, jobclass, P2, 2);
21
22mode2 = T2.addMode("Mode2");
23T2.setDistribution(mode2, Erlang(3, 4));
24T2.setEnablingConditions(mode2, jobclass, P2, 2);
25T2.setFiringOutcome(mode2, jobclass, P3, 2);
26
27mode3 = T3.addMode("Mode3");
28T3.setDistribution(mode3, HyperExp(0.7, 3, 1.5));
29T3.setEnablingConditions(mode3, jobclass, P3, 2);
30T3.setFiringOutcome(mode3, jobclass, P4, 2);
31
32mu0 = [1.0, 2.0];
33phi0 = [0.6,1.0];
34
35mode4 = T4.addMode("Mode4");
36T4.setDistribution(mode4, Coxian(mu0, phi0));
37T4.setEnablingConditions(mode4, jobclass, P4, 2);
38T4.setFiringOutcome(mode4, jobclass, P1, 2);
39
40routingMatrix = model.initRoutingMatrix();
41routingMatrix.set(jobclass, jobclass, P1, T1, 1.0);
42routingMatrix.set(jobclass, jobclass, P2, T2, 1.0);
43routingMatrix.set(jobclass, jobclass, P3, T3, 1.0);
44routingMatrix.set(jobclass, jobclass, P4, T4, 1.0);
45
46routingMatrix.set(jobclass, jobclass, T1, P2, 1.0);
47routingMatrix.set(jobclass, jobclass, T2, P3, 1.0);
48routingMatrix.set(jobclass, jobclass, T3, P4, 1.0);
49routingMatrix.set(jobclass, jobclass, T4, P1, 1.0);
50
51model.link(routingMatrix);
52%% Set Initial State
53P1.setState(jobclass.population);
54P2.setState(0);
55P3.setState(0);
56P4.setState(0);
57
58%% Solver
59options = Solver.defaultOptions;
60options.keep=2;
61options.verbose=1;
62options.cutoff = 10;
63options.seed = 23000;
64
65solver = {};
66solver{1} = JMT(model,options);
67AvgTable{1} = solver{1}.getAvgTable();
68AvgTable{1}