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