## 3 Hybrid EDA Solution for the GC-CRSN Problem
### EDA for GC-CRSN Problem  
In the implementation of EDA for the optimization problem in \(OP1\), each individual can be designated by an (\(L+K\))-dimensional real-valued vector. First, \(L\)-dimensions are for relay powers, and the next \(K\) dimensions are for source power. We denote by \(\Delta_{t}\), the population at the \(t\)th iteration, and \(|\Delta_{t}|\) denotes its cardinality, \(\eta_{t}\), the set of best candidate solutions selected from set \(|\Delta_{t}|\) at the \(t\)th iteration, and \(\rho_{s}\) is the selection probability. The EDA selects \(\rho_{s}|\Delta_{t}|\) individuals from the set \(|\Delta_{t}|\) to make up the set \(\eta_{t}\). In our implementation of EDA, each individual represents the transmission power of the relays and source. We denote by a row vector, \(P=(p_{1},p_{2},\cdots,p_{L},p_{L+1},\cdots,p_{L+K})\), as an individual in the population, where \(p_{i},i=1,2,\cdots,L\) is the relay power vector and \(p_{i},i=L+1,L+2,\cdots,L+K\) is the source power vector. The transmission power of the each relay and source is bounded by \(W_{Low}\) and \(W_{High}\), where \(W_{Low}\) and \(W_{High}\) are the lower and upper limit of the EDA search window. In each iteration, the EDA maintains a population of individuals. Population \(\Delta_{t}\) can be specified by the following \(|\Delta_{t}|\times(L+K)\) matrix:  
\[\Lambda_{EDA}= \begin{pmatrix}P^{1}\\ P^{2}\\ \vdots\\ P^{|\Delta_{t}|}\end{pmatrix} = \begin{pmatrix}p_{1}^{1}&p_{2}^{1}&\cdots&p_{L+K }^{1}\\ p_{1}^{2}&p_{2}^{2}&\cdots&p_{L+K}^{2}\\ \vdots&\vdots&\vdots&\vdots\\ p_{1}^{|\Delta_{t}|}&p_{2}^{|\Delta_{t}|}&\cdots&p_{L+K}^{|\Delta_{t}|}\end{pmatrix}  \tag{9}\]  
Each row of the matrix, \(\Lambda_{EDA}\), represent an individual. There are \(|\Delta_{t}|\) individuals in the population, and each individual has \(L+K\) elements. A flow diagram of the EDA algorithm is shown in Figure 2. The EDA applied to the \(OP1\) problem can be described in the following steps: Step 0: Generate an initial population, \(\Delta_{0}\). Each element of matrix, \(\Lambda_{EDA}\), is obtained from the following formula:  
\[ \begin{split}& p_{i}^{j}=W_{Low}+(W_{High}-W_{Low})\times rand,\\ &\forall i=1,2,\cdots,L+K,j=1,2,\cdots,|\Delta_{0}|\end{split}  \tag{10}\]  
where 'rand' is a random number generated from a uniform distribution between 0 and 1. Initially, we set \(W_{Low}\) = 0, \(W_{High}=p_{l}^{max}\) for relay powers and \(W_{Low}\) = 0, \(W_{High}=P_{s}\) for the source power. For iterations, \(t=1,2,\cdots,I_{Ter}\), follow Step 1 through Step 8:  
Step 1: Evaluate the individuals in the current population, \(\Delta_{t-1}\), according to the fitness function, f(). For \(OP1\), we use the function as described in Equation (7) as the fitness function--_i.e._, \(F=w_{1}\left(1-F_{1}\right)+w_{2}F_{2}\). The best fitness function in any iteration is the function with the minimum value. Sort the candidate solutions (individuals in the current population) according to their fitness orders. Step 2: Rank the candidate solutions (individuals in the current population) according to their fitness orders. Step 3: In this step, the algorithm determines the assignment variable, \(\boldsymbol{\varepsilon}=\left[\varepsilon_{1}^{1},\varepsilon_{1}^{2},\cdots,\varepsilon_{K}^{L}\right]\), for each individual heuristically. Step 1 does not guarantee a feasible solution. Feasibility check and constraint satisfaction are also performed in step 3. We propose an iterative greedy scheme for constraint satisfaction and relay assignment (IGS-CSRA). The IGS-CSRA ensures that the constraints C1, C3 and C5 are satisfied. We also propose an iterative algorithm for the source power such that constraints C2 and C4 are satisfied. We call this method the iterative greedy scheme for constraint satisfaction of source power (IGS-CSSP). The IGS-CSRA and IGS-CSSP are shown in Figure 2 and described in Sections 3.2 and 3.3. At the end of this step, the  
Figure 2: EDA flow diagram with IGS-CSRA and IGS-CSSP.