## 3 Integrated Method for SoS Architecture Selection and Reconfiguration
### Solution Algorithm  
The problem with the objective functions in (3) and constraints in (4)-(8) is an optimization problem with multiple non-linear objective functions. Therefore, we employ a classic multi-objective evolutionary algorithm--the Fast Nondominated Sorting Genetic Algorithm (NSGA-II)--to resolve the problem. In addition to the regular single-objective genetic algorithm following the process of encoding, crossover, mutation, and selection, NSGA-II introduced the Pareto-ranking approach for fitness evaluation, the crowding distance for achieving diversity, and a combination of parent and offspring population for maintaining elitist solutions. This paper aims to develop a quantitative, integrated architecture selection and reconfiguration framework rather than proposing an advanced algorithm. Thus, a classic algorithm could be a good fit for the preliminary exploration. The algorithm includes the following steps: (1) an architecture alternative is first selected in some way (e.g., randomly); (2) random disruptions then attack the SoS under a given architecture; (3) optimal reconfiguration decisions are made for each scenario and each designed architecture; (4) go back to step (1) for another architecture and continue the loop; (5) pick out the desired/optimized architecture for the design phase. The decision variables for initial architecture development include binary variable \(y_{m}\) indicating system selection and initial configuration \(x_{ik}^{init}\) that indicates the support level of system \(i\) for activity \(k\) for initial allocated architecture. Decisions for reconfiguration \(x_{ik}^{reconf}\) depend on the initial architecture configuration and the adversary attacks. Thus, we formulate the reconfiguration decision-making in an inner-loop optimization while the initial architecture configuration is in an outer-loop optimization. The initial architecture optimization is a bi-objective optimization problem while the architecture reconfiguration optimization is a single-objective optimization problem. The step-by-step procedures are illustrated in Algorithm 1 and Algorithm 2, respectively. Algorithm 1 employs a typical NSGA-II procedure while Algorithm 2 uses a regular genetic algorithm. \begin{table}
\begin{tabular}{c c} \hline \hline
**Notation** & **Description** \\ \hline \(y_{m}\) & Binary variable indicating if system \(m\) is selected into the architecture \\ \(x_{ik}^{init}\) & Integer variable indicating the support level of system \(i\) for activity \(k\) for initial allocated architecture \\ \(x_{ik}^{reconf}\) & Integer variable indicating the support level of system \(i\) for activity \(k\) during reconfiguration \\ \(SE_{i}\) & Self-effectiveness of activity node \(l\) \\ \(O_{l}\) & Operational capability of activity node \(l\) \\ \(O_{n}\) & Operational capability of final Influence activity node \(n\) \\ \(\alpha_{kl},\beta_{kl},\delta_{kl}\) & Parameters of dependency between activities \(k\) and \(l\) \\ \(unit\_fc_{ik}\) & Function provided for unit support level if allocating system \(i\) to activity \(k\) \\ \(FC_{i}\) & Function capacity of system \(i\) \\ \(unit\_count_{ml}\) & Communication bandwidth need for unit support level between activity \(k\) and \(l\) \\ \(BW_{l}\) & Maximum bandwidth of system \(j\) \\ \(time_{k}^{dunn}\) & Re-connection time of allocating system \(i\) to activity \(k\) \\  & Disconnection time of de-allocating system \(i\) from activity \(k\) \\ \(RT^{upp}\) & Upper limit for reconfiguration time \\ \(cost_{m}^{cap}\) & Development/acquisition cost of system \(m\) \\ \(BG^{acq}\) & Acquisition budget for designing initial architecture \\ \hline \hline \end{tabular}
\end{table}