# A Hybrid Optimization Framework with Dynamic Transition Scheme for Large-Scale Portfolio Management
## 3 Methodology
### Dynamic Information Transition
Specifically, the information is transmitted from the AMPO to the CSDE when the \(stateCount\) is greater than 0 (i.e., the system is in \(S_{A}\) or \(M_{A}\)) whereas the information flow follows the opposite direction when the \(stateCount\) is less than 0 (i.e., the system is in \(S_{C}\) or \(M_{C}\)). Furthermore, the state transition depends on the \(stateCount\) and \(contribSignal\) at the current iteration. The \(stateCount\) stops increasing and the system moves to the stable state \(S_{A}\) when the \(stateCount\) is equal to the predefined value \(T_{stable}\) and the \(contribSignal\) remains true. Similarly, the \(stateCount\) stops decreasing and the system gets into another stable state \(S_{C}\) when the \(stateCount\) is equal to \(-T_{stable}\) and the \(contribSignal\) remains false. Once entering the stable state, the system will stay here until it receives a false contribution signal at the \(S_{A}\) or a true contribution signal at the \(S_{C}\). More importantly, the information transition direction is reversed when the \(stateCount\) increases or decreases to 0. Intrinsically, the chain system drives the state transition based on contributions so that the direction generated by the current state reflects the performance of each branch in the past few iterations, but the preservation of large amounts of historical data is not required for the contribution calculation. The overall procedure of the system state transition mechanism is described in Algorithm 4. Besides the exchange conditions between two unidirectional transitions discussed above, a bi-directional transition mechanism is introduced to prevent the search from keeping the same direction for a long time. When the continuously accumulated iterations of the same direction exceed the predefined trigger condition, the search enables the bi-directional information exchange for a few iterations to share useful ideas in which it may help to escape from local minima. After that, the search will come back to the unidirectional transition. For Algorithm 4, \(currentDirection\) is the current direction of information transition, \(accDirection\) is the accumulated number of the same direction, \(T_{Bi}\) is the number of iterations running on bi-directional transition, and \(T_{trigger}\) is the number of iterations on the same direction to trigger the bi-directional transition. In addition, for the kind of information being transmitted, the whole currently best solution of each meta-heuristic framework will be taken as the most important information being sent to the opposite side. Furthermore, the impact of different kinds of information for transition will be studied in the ablation experiments. Figure 3: The Example of State Transition. ```
Input:\(currentDirection\),\(contribSignal\),\(accDirection\),\(stateCount\),\(T_{Bi}\),\(T_{stable}\), \(T_{trigger}\). Output:\(currentDirection\),\(accDirection\),\(stateCount\). lastDirection \(\leftarrow\)\(currentDirection\). if(\(lastDirection=0\))then if(\(accDirection\geq T_{Bi}\))then /* Bi-directional information transition exits. */ \(accDirection\gets 1\). if(\(contribSignal=True\))then \(stateCount\gets 1\). currentDirection \(\gets 1\). else \(stateCount\leftarrow-1\). currentDirection \(\gets 2\). end if  end if else if(\(contribSignal=True\))then \(stateCount\leftarrow\)\(stateCount+1\). if(\(stateCount=0\))then /* State transition from \(M_{C,1}\) to \(M_{A,1}\)*/ \(stateCount\gets 1\). currentDirection \(\gets 1\). end if else \(stateCount\leftarrow\)\(stateCount-1\). if(\(stateCount=0\))then /* State transition from \(M_{A,1}\) to \(M_{C,1}\)*/ \(stateCount\leftarrow-1\). currentDirection \(\gets 2\). end if  end if if(\(stateCount>T_{stable}\))then /* Move to the stable state \(S_{AMPO}\)*/ \(stateCount\gets T_{stable}\). end if if(\(stateCount<-T_{stable}\))then /* Move to the stable state \(S_{CSDE}\)*/ \(stateCount\leftarrow-T_{stable}\). end if  end if if(\(lastDirection=currentDirection\))then \(accDirection\leftarrow\)\(accDirection+1\). else \(accDirection\gets 1\).