## 4 The Reconfiguration-Dependency Non-Consistent Algorithm Based on Simulated Annealing (RDNC-SA)
### New Solution Based on Neighborhood Solution Set  
Generating a new solution based on the current solution in each iteration is a key step in the SA algorithm. We develop a novel new solution generation approach based on the neighborhood solution set. The new solution is selected from the neighborhood solution set with a specific rule.  
The steps for generating the neighborhood solution set are as follows:  
1. Before disturbing \(n_{d}\), we need to select a set of insertion locations for \(n_{d}\) in \(\mathbf{O}\). The ROV corresponding to these locations is a set of non repeating values. Similarly, a set of non repeating insertion regions is also selected in \(\mathbf{PR}\).
2. Each location and region to be inserted for \(n_{d}\) is arranged to form a number of unique pairs denoted as \(\mathbf{Pair}\). Each element of \(\mathbf{Pair}\) is denoted as \(pair_{i}\). Insert \(n_{d}\) into the \(\mathbf{O}\) and \(\mathbf{PR}\) positions of each \(pair_{i}\). A solution is formed after each disturbance. After the feasibility analysis of the solutions formed by each disturbance, the SL of each feasible solution is calculated. we need to save feasible solutions and corresponding SL.
3. After all of the neighborhood solutions solved, we compared total solution SL to the minimum SL of solution and selecting one as return value according to Metropolis criterion. Noting that this process of selecting is different SA main process. In here, it is only a select strategy for returning a solution from neighborhood. After returning a solution, the SA main process still needs to judge whether reception this new solution as current solution according to Metropolis criterion.  
The above sub-sections constitute the new solution generation algorithm. In the algorithm, because the insertion location for \(n_{d}\) in \(\mathbf{O}\) is not related to the the data dependency in DAG, we call this algorithm reconfiguration-dependency non-consistent algorithm (RDNC-SA), the pseudo code of this algorithm is presented in Algorithm 2.  
```
1:for each insertLocation do
2:for each insertRegion do
3: Disturb(\(n_{d}\), insertLocation, insertRegion, \(\mathbf{O}\), \(\mathbf{PR}\)).
4: exeFeasibility = JudgeExeFeasibility(\(n_{d}\), \(\mathbf{O}\), \(\mathbf{PR}\)).
5:if exeFeasibility == True then
6: resFeasibility = JudgeResFeasibility(\(n_{d}\), \(\mathbf{O}\), \(\mathbf{PR}\)).
7:if resFeasibility == True then
8: Calculate scheduling Length.
9: Preserve insertLocation and insertRegion.
10:endif
11:endif
12:endfor
13:ModuleMerge(\(n_{d}\), \(\mathbf{O}\), \(\mathbf{PR}\))
14:for each insertRegion do
15: Disturb(\(n_{d}\), insertLocation, insertRegion, \(\mathbf{O}\), \(\mathbf{PR}\)).
16: exeFeasibility = JudgeExeFeasibility(\(n_{d}\), \(\mathbf{O}\), \(\mathbf{PR}\)).
17:if exeFeasibility == True then
18: resFeasibility = JudgeResFeasibility(\(n_{d}\), \(\mathbf{O}\), \(\mathbf{PR}\)).
19:if resFeasibility == True then
20: Calculate scheduling Length.
21: Preserve insertLocation and insertRegion.
22:endif
23:endif
24:endfor
25:endfor
```  
**Algorithm 2** Reconfiguration-dependency non-consistent algorithm (RDNC-SA)