# Dual-Neighborhood Tabu Search for Computing Stable Extensions in Abstract Argumentation Frameworks
## 4 Algorithm Details
### Neighborhood Evaluation  
To quantify the impact of different neighborhood moves on the objective function, we introduce function \(P(vL)\), measuring the correctness of argument \(v\) under the labeling \(L\). This involves assessing the contribution of the move in optimizing the objective function. Based on this evaluation, the most optimal neighborhood move is determined and selected for implementation. The function \(P\) is defined as follows:  
\[P(v,L)=CorrectSelf(v,L)+CorrectNeighbors(v,L) \tag{3}\]  
\[CorrectSelf=\delta(v,L) \tag{4}\]  
\[CorrectNeighbors=\sum_{u\in Neighbors(v)}\delta(u,L) \tag{5}\]  
The evaluation function \(P\) consists of \(CorrectSelf\) and \(CorrectNeighbors\). \(CorrectSelf\) calculates the correctness of labeling a selected argument \(v\) with label \(L(v)\) under the labeling \(L\). \(CorrectNeighbors\) calculates the correctness of the neighbors of \(v\), i.e., \(u\) when argument \(v\) is labeled with \(L(v)\). The criterion for evaluating the quality of a neighborhood move is \(\Delta P\).  
\[\Delta P(v)=P(v,L^{*})-P(v,L) \tag{6}\]  
The altered labeling \(L^{*}\) arises from applying the function \(flip(v)\) to the current labeling \(L\). Lower values of \(\Delta P\) indicate higher quality of neighborhood moves. If \(\Delta P\) is negative, it improves the configuration, and, conversely, if \(\Delta P\) is positive, it deteriorates it. By calculating the evaluation function values for the current argument under different labels, the impact of executing the neighborhood move on the objective function can be assessed. Without involving any other operations, the algorithm selects the neighborhood move that minimizes the \(\Delta P\) value for execution.  
Taking Figure 6 as an example, this paper elucidates the key steps in problem solving. We assume the labeling \(L\) is as follows.  
\(L(A)=\texttt{in}\), \(L(B)=\texttt{in}\), \(L(C)=\texttt{in}\), \(L(D)=\texttt{out}\), \(L(E)=\texttt{in}\)  
During the analysis, based on Definition 8, we identified that the label assignments for arguments \(B\) and \(C\) are incorrect. According to the first clause of Definition 8, all arguments attacking an argument labeled as in should be labeled out. Hence, the label assignments for \(B\) and \(C\) are erroneous. Next, we calculate the \(\Delta P\) of the incorrectly labeled arguments.  
Calculate the \(\Delta P\) of \(B\):  
\[\Delta P(B)=P(B,L^{*})-P(B,L)=-2\]  
Calculate the \(\Delta P\) of \(C\):  
\[\Delta P(C)=P(C,L^{*})-P(C,L)=0\]  
Figure 5: Example of a neighborhood move.  
Argument \(B\) is used as an example to illustrate the calculation process. First, \(P(B,L)\) evaluates the correctness of argument \(B\) under the current label in according to Definition 8. By assessing the correctness of its own and its neighbors under the current label, it is determined that \(B\) is mislabeled and \(C\) is correctly labeled, hence \(P(B,L)=2\). \(P(B,L^{*})\) evaluates the correctness of argument \(B\) under the flipped label out. At this juncture, the label of \(B\) is correct and the label of \(C\) is correct, resulting in \(P(B,L^{*})=0\), leading to a \(\Delta P(B)=-2\).  
Subsequently, based on the calculated results, a greedy selection strategy is employed to operate on the argument with the smallest \(\Delta P\) value.