# A Novel Process Recommendation Method That Integrates Disjoint Paths and Sequential Patterns
## 3 Proposed Method
### Edge-Disjoint Path Extraction Method
Then, for the second level, if the current visiting node's parent node is 'Xor', for each r[i] that contains its parent node, a new path r[k] = r[i] is copied, and the current node replaces its parent node to form a new path. Because 'Xor' represents choice, multiple choices indicate multiple different edge-disjoint paths, and thus, multiple path collections need to be generated by copying. Only when the current visiting node's parent node is 'Xor' and the node is the last node of its parent node, a new path does not need to be copied, and the node can directly replace the parent node in the original r[i] path. Figure 5: The EPE algorithm framework. If the current visiting node's parent node is 'And', since 'And' represents parallelism and to show the characteristic of the child nodes being unordered, a new path needs to be copied. If the current node is the first child node of its parent node, a new edge-disjoint path does not need to be copied, and for each r[i] that contains its parent node, the current node replaces its parent node. If the current node is not the first child node, we need to consider the order between it and its sibling nodes in the sequence. We use the method of an alternating front to represent unorderedness. For each path r[i] containing sibling nodes, the current node is inserted in front of its sibling nodes in the original r[i] path. Then, r[k] is copied as the current r[i], and the current node is inserted after its sibling nodes in the new path r[k]. If the current visiting node's parent node is 'Loop', this means that the current node only has one edge-disjoint path. If the node is the first child node of its parent node, for each path r[i] containing its parent node, the current node replaces its parent node. If it is not the first child node of its parent node, that is, it is not the starting node of the loop structure, for each path r[i] containing its sibling nodes, we add the current node to the end of r[i]. Only when the current node is the last child node of its parent node, that is, the end node of the loop structure, do we add the current node to the end of r[i] and insert it after its parent node too. Then, following the same procedure as for the second level, each level from the first to the nth level is visited in turn, and finally, a set of edge-disjoint paths \(R\) is obtained. Take TPST1 in Figure 4 as an example. First, BFS is carried out to obtain 'A', which is placed in r[0]. Similarly, the nodes 'And' and 'B' of the first layer are added to r[0], and r[0] is [A,And,B]. The second layer is then traversed, and the 'Xor' node is discovered first. Since the parent node of 'Xor' belongs to type 'And' and is the first child node of the 'And' node, for each path r[i] that contains its parent node 'And', 'And' is replaced with 'Xor', where r[0] is [A,Xor,B]. Then, for the next node 'C', for each path r[i] that contains its sibling node 'Xor', node 'C' is inserted before the sibling node. Copy the new path r[1] and insert 'C' after the sibling node. Here r[0] is [A,C,Xor,B] and r[1] is [A,Xor,C,B]. Traversing the third layer, the first node is 'D', whose parent node is type 'Xor' and not the last child node. For each r[i] that contains the parent 'Xor', the new path is copied and the 'Xor' in r is replaced with 'D'. For r[0], the copy r[2] = r[0] takes place and the replacement node gets r[2] = [A,C,D,B]; likewise, the copy r[3] = r[1] takes place and the replacement node gets r[3] = [A,D,C,B]. Then, the next node 'E' is accessed because its parent is 'Xor' and is the last child node; for each path r[i] that contains the parent, replace the parent with 'E', and obtain r[0] = [A,C,E,B] and r[1] = [A,E,C,B]. The final output is [A,C,E,B], [A,E,C,B], [A,C,D,B], and [A,D,C,B]. Through experimental comparison and analysis with the VPE, the recommended hit rate of the EPE proposed in this study was improved by 24% on the real dataset, which verified the effectiveness of this proposed algorithm.