From: The road not taken: retreat and diverge in local search for simplified protein structure prediction
Procedure localSearch() | Procedure selectMove() | ||
---|---|---|---|
1 | initialize() | 1 | while moveList.notEmpty() do |
2 | initializeTabu() | 2 | m ← getNextCandidate() |
3 | while iteration ≤ maxIteration do | 3 | c ← getConformation(m) |
4 | selectMonomerType() | 4 | e ← getNonIsoEncoding(s) |
5 | generateMoves() | 5 | b ← getPacked(s) |
6 | selectMove() | 6 | if match(b, proximity) then |
7 | performMove() | 7 | discard m |
8 | updateCosts() | 8 | else |
9 | if local minima is detected then | 9 | updateEliteSet() |
10 | storeLocalMinima() | 10 | return m |
11 | end | 11 | end |
12 | if nonImprovingSteps ≥ maxStable then | 12 | end |
13 | initializeTabu() | 13 | if moveList.empty() then |
14 | selectFromEliteSet() | 14 | no moves possible |
15 | end | 15 | nonImprovingSteps ← maxStable + 1 |
16 | end | 16 | end |