Algorithm 2.
Tabu search
| 1: | Input: data , initial DAG , number of additionally allowed steps , size of the tabu list . |
| 2: | Compute and set . |
| 3: | Set . |
| 4: | Initialize . |
| 5: | while do |
| 6: | βInitialize . |
| 7: | βfor all DAGs reachable from by an edge addition, deletion, or reversal do |
| 8: | ββif does not reverse local moves in the tabu list, (i.e., in the last steps) then |
| 9: | βββCompute . |
| 10: | βββif then |
| 11: | ββββSet and . |
| 12: | βββend if |
| 13: | ββend if |
| 14: | βend for |
| 15: | βif then |
| 16: | ββSet and . |
| 17: | ββSet . |
| 18: | βelse |
| 19: | ββSet . |
| 20: | βend if |
| 21: | end while |
| 22: | Output: DAG . |