## 4 Comparison of Two-Label and Three-Label Enumeration Algorithms for Stable Extensions
### Comparison of Two-Label and Three-Label Algorithms  
Figure 1 illustrates specific instances of the two-label (left) and three-label (right) solving algorithms, using the \(\mathit{blank}\) label to represent arguments that have not been labeled. In the instance of the two-label algorithm (left), the algorithm performs three argument selections in the order of \(a_{1}\), \(a_{3}\), and \(a_{6}\). After each labeling propagation, the algorithm checks for label legality. The two-label algorithm primarily involves the following three steps:  
* Step 1: Argument \(a_{1}\) is labeled as _in_ and propagates the _out_ label to argument \(a_{2}\), with all propagated labels being legal.
* Step 2: Argument \(a_{3}\) is labeled as _in_ and propagates the _out_ label to arguments \(a_{4}\) and \(a_{5}\). The arguments \(a_{2}\), \(a_{4}\), and \(a_{5}\), labeled as _out_, are all legal.
* Step 3: Argument \(a_{6}\) is labeled as _in_ without propagating any other argument labels, so no labeling legality check is needed. At this point, all arguments have been legally labeled, so the set of arguments labeled as _in_\(\{a_{1},a_{3},a_{6}\}\) forms a stable extension.  
In the instance of the three-label algorithm (right), there are also three argument selections, following the same order as above. However, the label legality check in this algorithm only applies to arguments labeled as \(must\_out\). The three-label algorithm primarily involves the following three steps:  
* Step 1: Argument \(a_{1}\) is labeled as \(in\) and propagates the label \(out\) to argument \(a_{2}\). No labeling legality check is needed in this round.
* Step 2: Argument \(a_{3}\) is labeled as \(in\) and propagates the labels \(must\_out\) and \(out\) to arguments \(a_{4}\) and \(a_{5}\), respectively. A legality check is performed for argument \(a_{4}\), which is labeled as \(must\_out\).
* Step 3: Argument \(a_{6}\) does not propagate any other argument labels, so no legality check is needed.  
From Figure 1, it is evident that the two-label algorithm is indeed quite simple and intuitive. However, it also shows that, during the label legality check, it often encounters unnecessary checks. For instance, after the labeling propagation in Step 2 of Figure 1, only argument \(a_{4}\) actually requires a label legality check, but the two-label algorithm performs redundant checks on arguments \(a_{2}\) and \(a_{5}\). This greatly affects the algorithm's efficiency. Therefore, to reduce the frequency of redundant searches, the label legality check process needs to be optimized. In the three-label algorithm, the introduction of the \(must\_out\) label distinguishes between \(out\) arguments that may result in illegal labeling propagation and those that definitely will not. Consequently, during each label legality check, only arguments labeled as \(must\_out\) need to be checked. The three-label algorithm significantly reduces the number of redundant searches during the labeling propagation process.  
Although the three-label algorithm appears to have optimized the issue of redundant searches present in the two-label algorithm, it still has some shortcomings. The three-label algorithm only distinguishes the nature of arguments labeled as \(out\) and does not perform a comprehensive and systematic analysis of the nature of all arguments. In fact, the nature of arguments labeled as \(in\) in the labeling propagation process of the three-label algorithm  
Figure 1: How the two-label (left) and three-label (right) algorithms work on an AF instance.  
also exhibits diversity. In the next section, this paper introduces a four-label enumeration stable extension algorithm by incorporating the \(must\_in\) label, along with an illustrative example and detailed description of the algorithm.