4. Process Petri nets with time stamps and their applications in project management area

Critical Path Method (CPM) is a method used in modeling and project management that was developed at the end of 1950s and that is commonly used for all the types of projects including software development [10]. The CPM is the most widely used method of so-called network analysis, even though it is designed to analyze the time consumption of only deterministic projects, that is, projects where the duration of each of their activities is exactly known, including all their sub-activities.

The basis for using CPM is to create a project model that includes:


A critical path is then a designation for a sequence of activities whose time duration directly affects the time duration of the entire project. The activities that make up the critical path are then referred to as critical activities. There may be several critical paths in the project. When managing the project, a sequence of activities within a given network chart describing this project that increases the longest total time duration of a project is called its critical path. The critical path within the network chart can be used to determine the shortest time required to complete the project. The application of the CPM method can therefore determine which activities within the studied project are "critical" (i.e., activities on the longest path in the network chart describing the project) and which activities may be delayed in the execution of the project without increasing its total time.

The special class CPNET ⊂ PNTS of PNTS is introduced in the following paragraphs to represent network chart used in the CPM method through PNTS. Special unary operator JOIN that is required in the definition of the class CPNET is introduced first.

Definition 10. The function JOIN: PNTS ! PNTS of net transition joining is defined as follows: if PNTS<sup>1</sup> := (P1, T1, A1, AF1, TP1, TI1, IP1, OP1, RP1) be the arbitrary PNTS, p ∉ P<sup>1</sup> be the arbitrary place, t1 and t2 be the arbitrary transitions, (t1 6¼ t2) ∧ (t1 ∈ T1) ∧ (t2 ∈ T1), ti ∈ N0, then PNTS := PNTS1.JOIN(p, t1, t2, ti), where PNTS PNTS := (P, T, A, AF, TP, TI, IP, OP, RP) fulfills the following:


If PNTS1, PNTS2, …, PNTSn are proper-formed, resp. well-formed, resp. pure-formed, PNTS and AMs = AMs<sup>1</sup> ⊗ AMs<sup>2</sup> ⊗ … ⊗ AMs<sup>n</sup> is the set of all the allowed static markings of PNTS

Figure 3. Symbolic representation of PNTS [PNTS1, PNTS2, …, PNTSn].SYNC(pi, po, ti, to, af1, …, afn, ti1, …, tin, tio).

Proof. Clear, it directly follows from Definition 5, Definition 7 and Definition 9. □

Critical Path Method (CPM) is a method used in modeling and project management that was developed at the end of 1950s and that is commonly used for all the types of projects including software development [10]. The CPM is the most widely used method of so-called network analysis, even though it is designed to analyze the time consumption of only deterministic projects, that is, projects where the duration of each of their activities is exactly known,

4. Process Petri nets with time stamps and their applications in project

The basis for using CPM is to create a project model that includes:

• the list of all activities needed to complete the project,

• the time duration of each activity that is constant, • the dependencies between the project activities,

management area

124 Petri Nets in Science and Engineering

including all their sub-activities.

PNTS, then also PNTS is proper-formed, resp. well-formed, resp. pure-formed, PNTS.


Symbolic representation of the unary operator JOIN application over the PNTS PNTS<sup>1</sup> can be seen in Figure 4.

Definition 11. Let PNTS<sup>1</sup> := (P1, T1, A1, AF1, TP1, TI1, IP1, OP1, RP1), PNTS<sup>2</sup> := (P2, T2, A2, AF2, TP2, TI2, IP2, OP2, RP2), …, PNTSn := (Pn, Tn, An, AFn, TPn, TIn, IPn, OPn, RPn), where n ∈ N, be the arbitrary PNTSs, ∀i, 1 ≤ i ≤ n, ∀j, 1 ≤ j ≤ n: i 6¼ j ) PTSNi ∠ PTSNj. The class CPNET ⊂ PNTS then contains the following PNTSs:

i. if p be an arbitrary place, p ∉ (P<sup>1</sup> ∪ P<sup>2</sup> ∪ … ∪ Pn), then PNTS BASEp ∈ CPNET, where BASEp := ({p}, ∅, ∅, ∅, ∅, ∅, p, p, ∅},

Figure 4. Symbolic representation of PNTS PNTS := PNTS1.JOIN(p, t1, t2, ti).


PNTS≔½ � PNTS1; PNTS2;…; PNTSn :SYNCð Þ pi; po; ti; to; 1;…; 1; ti1; ti2;…; tin; tio ,

	- PNTS := PNTS1.JOIN(p, t1, t2, ti),
	- ⌐(<sup>∃</sup> x1 x2 … xn <sup>∈</sup> CIRCUITSPNTS: (x<sup>1</sup> <sup>∈</sup> T) <sup>∧</sup> (xn <sup>∈</sup> <sup>P</sup>) <sup>∧</sup> (<sup>n</sup> <sup>∈</sup> <sup>N</sup>)). □

Proof. Clear, it directly follows from Definition 5, Definition 7, Definition 10 and Definition 11 and from the fact that any PNTS ∈ CPNET does not contain any resource place (i.e., if the given PNTS is proper-formed PNTS, then it is also immediately well-formed and pure-formed PNTS). Furthermore, it is also clear that if we allow the existence of a circuit within the PNTS PNTS (see (iv) of Definition 11), there is always the danger of a deadlock in such a PNTS and PNTS is in this case neither a proper-formed PTSN. See, for instance, PNTS CPNET4 in its entry state Se in Figure 6, where CPNET4 := CPNET3.JOIN(P12, T7, T2, 6). It is true that

Process Petri Nets with Time Stamps and Their Using in Project Management

http://dx.doi.org/10.5772/intechopen.76769

127

T2 P3 T3 P10 T5 P6 T6 P8 T7 P12∈ CIRCUITSCPNET4:

It is also clear that after the firing of the transition T1 in the entry state Se of the PNTS CPNET4 no one transition will be enabled for any value of the net time τ in this PNTS (i.e., there exists the deadlock marking in this PNTS) and thus the CPNET4 is not even proper-formed PNTS. □

Definition 12. The class CPPNET ⊂ PPNTS contains all the PPNTSs PPNTS := (PNTS, Se) where PNTS <sup>∈</sup> CPNET and Se :<sup>=</sup> ((1, 0, …, 0), (<0>, <>, …, <>), 0). □

An example of a simple process is presented in the following paragraphs the characteristics of which will be studied with using of the PPNTS from the CPPNET class. The studied process is

The CPM chart of the abovementioned process comprising the activities listed in Table 1 is

CPNET4 ∉ CPNET because there exists for instance the circuit.

Figure 5. PNTSs BASEP1, CPNET1, CPNET2 and CPNET3.

described in the following table of activities (see Table 1):

shown in Figure 7 where:

Four simple PNTSs BASEP1 , CPNET1, CPNET2 and CPNET3 that are the members of the class CPNET can be seen in Figure 5, where:


.SYNC(P5, P9, T5, T7, 1, 1, 1, 6, 3),

• CPNET3 := [ANET2, ANET3, BASEP1 ].SYNC(IP, OP, T1, T8, 1, 1, 1, 4, 1, 8, 2)

.JOIN(P10, T3, T5, 4).

.JOIN(P11, T3, T6, 5).

Note also that the PNTS CPNET3 does not contain any circuit as it is required in the (4) of Definition 11.

Lemma 4. Let PNTS ∈ CPNET be an arbitrary PNTS. Then PNTS is pure-formed PNTS.

Process Petri Nets with Time Stamps and Their Using in Project Management http://dx.doi.org/10.5772/intechopen.76769 127

Figure 5. PNTSs BASEP1, CPNET1, CPNET2 and CPNET3.

ii. if PNTS<sup>1</sup> ∈ CPNET, PNTS<sup>2</sup> ∈ CPNET, t be an arbitrary transition, where (t ∉ T1) ∧ (t ∉ T2),

iii. if PNTS1, PNTS2, …, PNTSn ∈ CPNET, pi and po be the arbitrary places, (pi ∉ P<sup>1</sup> ∪ P<sup>2</sup> ∪ … ∪ Pn) ∧ (po ∉ P<sup>1</sup> ∪ P<sup>2</sup> ∪ … ∪ Pn) ∧ (pi 6¼ po), ti and to be the arbitrary transitions, (ti ∉ T<sup>1</sup> ∪ T<sup>2</sup> ∪ … ∪ Tn) ∧ (to ∉ T<sup>1</sup> ∪ T<sup>2</sup> ∪ … ∪ Tn) ∧ (ti 6¼ to), ti1 ∈ N0, ti2 ∈ N0, …, tin ∈ N0, tio ∈ N0, then

PNTS≔½ � PNTS1; PNTS2;…; PNTSn :SYNCð Þ pi; po; ti; to; 1;…; 1; ti1; ti2;…; tin; tio ,

iv. if PNTS<sup>1</sup> ∈ CPNET, p ∉ P<sup>1</sup> be an arbitrary place, t1 and t2 be the arbitrary transitions, (t1 6¼ t2) ∧ (t1 ∈ T1) ∧ (t2 ∈ T1), ti ∈ N<sup>0</sup> and af ∈ N, then also PNTS ∈ CPNET, where PNTS

• ⌐(<sup>∃</sup> x1 x2 … xn <sup>∈</sup> CIRCUITSPNTS: (x<sup>1</sup> <sup>∈</sup> T) <sup>∧</sup> (xn <sup>∈</sup> <sup>P</sup>) <sup>∧</sup> (<sup>n</sup> <sup>∈</sup> <sup>N</sup>)). □

, BASEP3].COMP(T2, 2), BASEP4].COMP(T3, 5),

Note also that the PNTS CPNET3 does not contain any circuit as it is required in the (4) of

Lemma 4. Let PNTS ∈ CPNET be an arbitrary PNTS. Then PNTS is pure-formed PNTS.

, CPNET1, CPNET2 and CPNET3 that are the members of the class

].SYNC(IP, OP, T1, T8, 1, 1, 1, 4, 1, 8, 2)

ti ∈ N0, then also [PNTS1, PNTS2].COMP(t, ti) ∈ CPNET,

Figure 4. Symbolic representation of PNTS PNTS := PNTS1.JOIN(p, t1, t2, ti).

also PNTS PNTS ∈ CPNET, where

:= (P, T, A, AF, TP, TI, IP, OP, RP), such that:

• CPNET2 := [[BASEP6, BASEP8].COMP(T6, 2), BASEP7]

• PNTS := PNTS1.JOIN(p, t1, t2, ti),

Four simple PNTSs BASEP1

126 Petri Nets in Science and Engineering

• CPNET1 := [[BASEP2

CPNET can be seen in Figure 5, where:

.SYNC(P5, P9, T5, T7, 1, 1, 1, 6, 3),

• CPNET3 := [ANET2, ANET3, BASEP1

.JOIN(P10, T3, T5, 4). .JOIN(P11, T3, T6, 5).

Definition 11.

Proof. Clear, it directly follows from Definition 5, Definition 7, Definition 10 and Definition 11 and from the fact that any PNTS ∈ CPNET does not contain any resource place (i.e., if the given PNTS is proper-formed PNTS, then it is also immediately well-formed and pure-formed PNTS). Furthermore, it is also clear that if we allow the existence of a circuit within the PNTS PNTS (see (iv) of Definition 11), there is always the danger of a deadlock in such a PNTS and PNTS is in this case neither a proper-formed PTSN. See, for instance, PNTS CPNET4 in its entry state Se in Figure 6, where CPNET4 := CPNET3.JOIN(P12, T7, T2, 6). It is true that CPNET4 ∉ CPNET because there exists for instance the circuit.

#### T2 P3 T3 P10 T5 P6 T6 P8 T7 P12∈ CIRCUITSCPNET4:

It is also clear that after the firing of the transition T1 in the entry state Se of the PNTS CPNET4 no one transition will be enabled for any value of the net time τ in this PNTS (i.e., there exists the deadlock marking in this PNTS) and thus the CPNET4 is not even proper-formed PNTS. □

Definition 12. The class CPPNET ⊂ PPNTS contains all the PPNTSs PPNTS := (PNTS, Se) where PNTS <sup>∈</sup> CPNET and Se :<sup>=</sup> ((1, 0, …, 0), (<0>, <>, …, <>), 0). □

An example of a simple process is presented in the following paragraphs the characteristics of which will be studied with using of the PPNTS from the CPPNET class. The studied process is described in the following table of activities (see Table 1):

The CPM chart of the abovementioned process comprising the activities listed in Table 1 is shown in Figure 7 where:

lower left quarter of the node) and the possible latest activation time of the given node

Process Petri Nets with Time Stamps and Their Using in Project Management

http://dx.doi.org/10.5772/intechopen.76769

129

• the desired links of the individual activities are expressed through the oriented edges and

• the critical path of the CPM chart passes through its nodes where the earliest possible activation time is equal to the latest possible activation time, that is, through nodes 1, 2, 3, 5 and 6, and it is thus formed by A, D, E and H activities (these activities are represented

The pure-formed PPNTS PROC that represents the process comprising the activities listed in

Places A, B, C, D, E, F, G and H of PNTS PROC represent individual activities of the studied process and the appropriate values of the time interval function TI then express the time durations of relevant activities (i.e., for instance, the time duration of the activity A is

In order to find the critical path of the process represented by PPNTS PROC, we first perform the association of each place and transition of the PPNTS PROC with the value of the critical

Definition 13. Let PPNTS PPNTS := (P, T, A, AF, TP, TI, IP, OP, RP, Se), PPNTS ∈ CPPNET.

iii. <sup>∀</sup><sup>t</sup> <sup>∈</sup> <sup>T</sup>: CP(t) := max({CP(p1), CP(p2), …, CP(pn)}), where •<sup>t</sup> = {p1, <sup>p</sup>2, …, pn}, <sup>n</sup> <sup>∈</sup> <sup>N</sup>. □

by dashed line graphs in the CPM chart) with a total duration of 15 time units.

• PROC := [PROC1, [BASEC, BASEG].COMP(T5, 5)].SYNC(IP, OP, T1, T7, 1, 1, 0, 4, 0),

• PROC1 := [[BASEA, BASEF].COMP(T3, 5), [BASEB, BASEE].COMP(T4, 6)]

(shown in the lower right quarter circle of the node),

their associated nodes in the CPM chart,

Figure 7. CPM chart of process activities listed in Table 1.

Table 1 can be seen in Figure 8, where

.SYNC(P1, H, T2, T6, 1, 1, 2, 3, 3).

i. CP(IP) := 0,

represented by the value of TI(T2, A) = 2, etc.).

path function CP that is introduced in the following Definition 13.

The critical path function CP: (P ∪ T) ! N<sup>0</sup> is defined as follows:

ii. ∀p ∈ (P \ IP): CP(p) := CP(t) + TI(t, p), where t = •p,

Figure 6. PNTS CPNET4 in its entry state Se.


Table 1. Table of activities and their dependencies of studied process.


Figure 7. CPM chart of process activities listed in Table 1.

lower left quarter of the node) and the possible latest activation time of the given node (shown in the lower right quarter circle of the node),


The pure-formed PPNTS PROC that represents the process comprising the activities listed in Table 1 can be seen in Figure 8, where


.SYNC(P1, H, T2, T6, 1, 1, 2, 3, 3).

Places A, B, C, D, E, F, G and H of PNTS PROC represent individual activities of the studied process and the appropriate values of the time interval function TI then express the time durations of relevant activities (i.e., for instance, the time duration of the activity A is represented by the value of TI(T2, A) = 2, etc.).

In order to find the critical path of the process represented by PPNTS PROC, we first perform the association of each place and transition of the PPNTS PROC with the value of the critical path function CP that is introduced in the following Definition 13.

Definition 13. Let PPNTS PPNTS := (P, T, A, AF, TP, TI, IP, OP, RP, Se), PPNTS ∈ CPPNET. The critical path function CP: (P ∪ T) ! N<sup>0</sup> is defined as follows:

i. CP(IP) := 0,

• selected activity of the studied process and its duration is associated with each edge of the

Activity Duration Previous activities

A 2 — B 3 — C 4 — D2 C E 6 B, D F5 A G5 C H 3 E, F

Table 1. Table of activities and their dependencies of studied process.

• each node of the CPM chart is associated with its serial number (indicated in the upper half of the node), the earliest possible activation time of the given node (shown in the

CPM chart,

Figure 6. PNTS CPNET4 in its entry state Se.

128 Petri Nets in Science and Engineering

ii. ∀p ∈ (P \ IP): CP(p) := CP(t) + TI(t, p), where t = •p,

$$\text{iii.} \quad \forall t \in T \colon \text{CP}(t) \coloneqq \max(|\text{CP}(p\_1), \text{CP}(p\_2), \dots, \text{CP}(p\_n)|), \\
\text{where } \bullet \newline t = \langle p\_1, p\_2, \dots, p\_n \rangle, n \in \mathbb{N}. \qquad \square$$

Figure 8. PPNTS PROC of process activities listed in Table 1.

The PPNTS PROC whose each place and transition is associated with the value of the critical path function CP can be seen in Figure 9 (where, for instance, CP(E) = CP(T4) + TI(T4, E) = 6 + 6 = 12, where T4 = •E; CP(T4) = max({CP(B), CP(D)}) = max({3, 6}) = 6, where •T4 = {B, D}, etc.).

BEGIN

END;

5. Conclusions

MaxValue := max({CP(X1), CP(X2), …, CP(Xn)}), where •Node = {X1, X2, …, Xn}, n ∈ N;

given PPNTS may contain more critical paths with the same total time duration.

The critical path of PPNTS PROC is after applying of the above algorithm represented by the set CriticalPath := {IP, T1, C, T5, D, T4, E, T6, H, T7, OP} (see Figure 9). It is also clear that the

Process Petri Nets with Time Stamps and Their Using in Project Management

http://dx.doi.org/10.5772/intechopen.76769

131

Further research in the field of PNTSs is mainly focused on the definition of additional unary, binary and n-ary PPPA operators preserving their specified properties, for instance, the binary SUBST operator that performs the substitution of the given PNTS for the selected place of another PNTS, and so on. In the field of the project management the research is focused on

Node := Xi, where (X<sup>i</sup> ∈ {X1, X2, …, Xn}) ∧ (CP(Xi) = MaxValue);

Figure 9. PPNTS PROC with the associated values of critical path function CP.

CriticalPath := CriticalPath ∪ {Node};

It follows directly from the Definition 4 that the value of the critical path function CP associated with any transition t ∈ T of the arbitrary PPNTS := (P, T, A, AF, TP, TI, IP, OP, RP, Se), where Se := ((1, 0, …, 0), (<0>, <>, …, <>), 0), then represents the net time τ value when the given transition t will be fired. The value of the critical path function CP associated with the output place OP (i.e., CP(OP)) then immediately indicates the total duration of the process critical path (i.e., the net time τ value when the transition t = •OP will be fired). The algorithm for finding the set of PPNTS nodes of which the project critical path is formed is then obvious and it is expressed by the following pseudocode in PASCAL (the set of nodes forming the critical path of the project is then contained in the CriticalPath variable):

Node := OP; CriticalPath := {OP};

WHILE (Node <> IP) DO

Process Petri Nets with Time Stamps and Their Using in Project Management http://dx.doi.org/10.5772/intechopen.76769 131

Figure 9. PPNTS PROC with the associated values of critical path function CP.

BEGIN

MaxValue := max({CP(X1), CP(X2), …, CP(Xn)}), where •Node = {X1, X2, …, Xn}, n ∈ N; Node := Xi, where (X<sup>i</sup> ∈ {X1, X2, …, Xn}) ∧ (CP(Xi) = MaxValue);

CriticalPath := CriticalPath ∪ {Node};

END;

The PPNTS PROC whose each place and transition is associated with the value of the critical path function CP can be seen in Figure 9 (where, for instance, CP(E) = CP(T4) + TI(T4, E) = 6 + 6 = 12,

It follows directly from the Definition 4 that the value of the critical path function CP associated with any transition t ∈ T of the arbitrary PPNTS := (P, T, A, AF, TP, TI, IP, OP, RP, Se), where Se := ((1, 0, …, 0), (<0>, <>, …, <>), 0), then represents the net time τ value when the given transition t will be fired. The value of the critical path function CP associated with the output place OP (i.e., CP(OP)) then immediately indicates the total duration of the process critical path (i.e., the net time τ value when the transition t = •OP will be fired). The algorithm for finding the set of PPNTS nodes of which the project critical path is formed is then obvious and it is expressed by the following pseudocode in PASCAL (the set of nodes forming the critical path

where T4 = •E; CP(T4) = max({CP(B), CP(D)}) = max({3, 6}) = 6, where •T4 = {B, D}, etc.).

of the project is then contained in the CriticalPath variable):

Figure 8. PPNTS PROC of process activities listed in Table 1.

Node := OP; CriticalPath := {OP};

WHILE (Node <> IP) DO

130 Petri Nets in Science and Engineering

The critical path of PPNTS PROC is after applying of the above algorithm represented by the set CriticalPath := {IP, T1, C, T5, D, T4, E, T6, H, T7, OP} (see Figure 9). It is also clear that the given PPNTS may contain more critical paths with the same total time duration.

#### 5. Conclusions

Further research in the field of PNTSs is mainly focused on the definition of additional unary, binary and n-ary PPPA operators preserving their specified properties, for instance, the binary SUBST operator that performs the substitution of the given PNTS for the selected place of another PNTS, and so on. In the field of the project management the research is focused on modeling complex processes, which individual activities can additionally share in parallel a selected set of the resources. These resources are then represented in the given PNTS by individual tokens located in the resource places of its selected net marking. Finding the timeoptimal critical path of such a process as well as verifying the properties of the given PNTS that models such a process is generally a nontrivial problem and the use of PPPAs plays a crucial role here.

[5] Furia CA, Mandrioli D, Morzenti A, Rossi M. Modeling Time in Computing. 1st ed.

Process Petri Nets with Time Stamps and Their Using in Project Management

http://dx.doi.org/10.5772/intechopen.76769

133

[6] van Hee K, Sidorova N. The right timing: Reflections on the modeling and analysis of time. In: Application and Theory of Petri Nets and Concurrency 2013, 34th International Conference Proceedings; 24–28 June 2013; Milan. Berlin: Springer-Verlag; 2013. pp. 1-20 [7] Martos-Salgado M, Rosa-Velardo F. Dynamic networks of timed Petri nets. In: Application and Theory of Petri Nets and Concurrency 2014, 35th International Conference Proceed-

[8] van der Alst W, van Hee K. Workflow Management: Models, Methods and Systems. 1st ed.

[9] Huang H, Jiao L, Cheung T, Mak WM. Property-Preserving Petri Net Process Algebra in Software Engineering. 1st ed. Singapore: World Scientific Publishing; 2012. 318 p. ISBN:

[10] O'Brien JJ, Plotnick FL. CPM in Construction Management. 8th ed. New York: McGraw-

Heidelberg: Springer-Verlag; 2012. 424 p. ISBN: 978-3642323317

ings; 23–27 June 2014; Tunis. Berlin: Springer-Verlag; 2014. pp. 294-313

Massachusetts: MIT Press; 2004. 384 p. ISBN: 978-0262720465

978-981-4324-28-1

Hill; 2016. 736 p. ISBN: 978-1259587276

Another class currently being studied is the class of multiprocess Petri nets with time stamps that represents the generalization of the class of PNTS. The given multiprocess Petri net with time stamps then represents the finite set of processes each of which is modeled by a separate PNTS that share a common set of resources modeled by its individual resource places and their tokens. Many of the studied properties of the multiprocess Petri nets with time stamps are similar or identical to those of the PNTS class and they allow for a further generalization of the concept of a critical path formed by a sequence of activities of the process modeled by the given multiprocess Petri nets with time stamps.
