## 2 Related Work
The SSWS algorithm uses a fixed parameter L to assign the number of work items in individual tasks given to each mining computing node. On account of the fact that the parameter L is fixed, it will also have some problematic issues from this assumption. For example, if the parameter L is set to one, then the time complexity of the SSWS algorithm is the same as the ROD algorithm. On the other hand, if the parameter L is too large, then it may increase the time spent in network communication. Therefore, to find an improved balance, the PSWS algorithm was proposed, which can determine a good size for the parameter L automatically. Test results show that the PSWS algorithm is one of the most efficient algorithms for finding frequent patterns. Although the PSWS algorithm was presented as the fastest algorithm among the four algorithms by [PERSON] et al. discussed so far, the PSWS algorithm does not define the appropriate number of computing nodes; rather, for this algorithm, this number is determined by an expert's experience. If this node number setting is not fair, then it might lead to some computing nodes being idle and the waste of resources. Owing to the fact that each computing node starts a mining task after it receives the compressed FP tree, the PSWS algorithm might waste too much time allocating tasks to too many nodes. To overcome this problem, the DAN-mining method, proposed by [26], automatically determines the appropriate number of nodes to complete a mining task with respect to frequent patterns. This algorithm, which is also based on the CARM architecture, evaluates the required mining time by sampling y% of header items from the header table. Although the DAN-mining algorithm can determine how many nodes are needed to mine the data, it has no criteria for determining the value of y. Therefore, the FLR-mining algorithm [10] was also proposed to determine the appropriate number of computing nodes automatically. In the FLR-mining algorithm environmental structure, it needs the kernel node, which stores the FP tree and the compressed FP tree. In the beginning of an assignment strategy, the FP tree and all tasks are sent to the first computing node. And, at the same time that the first computing node starts executing the first mining task, the second computing node also receives the FP tree. After receiving a process/task complete message from the first node, the kernel node sends a message to the first computing node to request the information about how the first node performed and how long it took, during the same time that the second computing node was receiving the FP tree. The kernel node utilizes this information to calculate the average time used to complete each task. From then on, the kernel node can calculate how many tasks can be assigned during the time the FP tree was sent to the computing node. After the kernel node finishes the calculation, it then reallocates tasks to the first and second computing nodes. If not all the tasks are finished, then the kernel node will transmit the compressed FP tree to a third computing node. After that, the kernel node will again collect the information on the finished tasks and reallocate tasks to the same number or a larger number of computing nodes as appropriate. The process is repeated until all the tasks are done. In the following algorithm proposed by [PERSON] et al., FLR-mining is one of the fastest algorithms for mining frequent patterns in distributed computing environments based on CARM architecture. FLR-mining also considers the factors of load balancing and resources efficiently, and it can determine the appropriate number of computing nodes automatically. But there is still a big problem. Previous studies assumed that the network bandwidth is constant, but this assumption fails in a real network environment. There are packet collisions caused by many mining tasks running simultaneously.