## 4 Comparison of Two-Label and Three-Label Enumeration Algorithms for Stable Extensions  
### Labeling Model for Stable Extensions  
In current research, algorithms that solve stable extensions based on depth-first search include two-label algorithms and three-label algorithms. The two-label algorithm is an intuitive labeling algorithm designed based on the properties of stable extensions. The three-label algorithm is a labeling algorithm designed on the basis of the two-label algorithm by introducing the \(must\_out\) label.  
In the two-label algorithm, since arguments within a stable extension attack all arguments not included in the extension, there are only two types of legal labels in the stable extension: the \(in\) label and the \(out\) label. The \(in\) label is used to label arguments that can be included in the stable extension sets, while the \(out\) label is used to label argumentsthat are attacked by _in_ arguments and thus cannot be included in the stable extension sets. Therefore, the two-label algorithm employs two types of label transitions: _in_ transition and _out_ transition.  
**Definition 11**.: _(Two-Label Stable Extension): Given an argumentation framework \(\Gamma=\langle A,R\rangle\) and arguments \(a,b\in A\), let \(\mathit{Lab}:A\rightarrow\{in,out\}\) be a mapping from arguments of the argumentation framework \(\Gamma\) to labels. A stable extension satisfies the following conditions:_  
\[\mathit{Lab}(a) = \mathit{in\ s.t.}\ \forall b\in\{a\}^{-}:\mathit{Lab}(b)=out,\] \[\mathit{Lab}(a) = \mathit{out\ s.t.}\ \exists b\in\{a\}^{-}:\mathit{Lab}(b)=in.\]  
In the three-label algorithm, the \(\mathit{must\_out}\) label is introduced to label arguments that attack the arguments labeled as _in_, thereby distinguishing between different types of _out_ arguments. Consequently, three labeling types participate in labeling propagation within the algorithm. However, the algorithm defines only two types of labeling transition rules: _in_ transition and \(\mathit{must\_out}\) transition. The reasons for using _in_ and \(\mathit{must\_out}\) for the labeling transition in this algorithm are as follows. Firstly, a binary branching structure is more suitable for solving stable extension problems compared to other multi-branch structures. Secondly, conflicting arguments are generally labeled as \(\mathit{must\_out}\). The legality check of the argument labels only needs to focus on the set of arguments labeled as \(\mathit{must\_out}\). Using the \(\mathit{must\_out}\) label as a type of labeling transition can eliminate conflicting arguments more quickly, enabling the algorithm to enumerate stable extensions faster.  
**Definition 12**.: _(must\_out Label): Given an argumentation framework \(\Gamma=\langle A,R\rangle\) and arguments \(a,b\in A\), let \(\mathit{Lab}:A\rightarrow\{in,out,must\_out\}\) be a mapping from arguments of the argumentation framework \(\Gamma\) to labels. If \(b\) satisfies \(b\in\{a\}^{-}\) and \(\mathit{Lab}(a)=in\), then \(\mathit{Lab}(b)=\mathit{must\_out}\)._  
**Definition 13**.: _(Three-Label Stable Extension): Given an argumentation framework \(\Gamma=\langle A,R\rangle\) and arguments \(a,b\in A\), let \(\mathit{Lab}:A\rightarrow\{in,out,must\_out\}\) be the mapping from arguments of the argumentation framework \(\Gamma\) to labels. The three-label stable extension satisfies the following conditions:_  
\[\mathit{Lab}(a) = \mathit{in\ s.t.}\ \forall b\in\{a\}^{-}:\mathit{Lab}(b)=out,\] \[\mathit{Lab}(a) = \mathit{out\ s.t.}\ \exists b\in\{a\}^{-}:\mathit{Lab}(b)=in,\] \[\mathit{Lab}(a) = \mathit{in\ s.t.}\ \forall b\in\{a\}^{-}\wedge\mathit{Lab}(b)\
eq out: \mathit{Lab}(b)=\mathit{must\_out}.\]