We will use the model described in [5] where the channel (i.e., frequency band) allocation problem is formulated as a graph coloring problem. As in Fig. 1, the network is abstracted as an undirected graph *G* = (*V*, *E*, *L*), where vertices (*V*) represent users, edges (*E*) represent interference, so that no channels can be assigned simultaneously to any adjacent nodes, and *L* represents the availability of channel bands at vertices of G. For the sake of simplicity, the interference graph is assumed the same for all channel bands. This can be generalized to the case where each channel band has its own interference graph, a possible scenario due to the different propagation properties in the environment associated with individual bands. Furthermore, let *K* be the number of available channels in *G*. Although it is possible that different channels have different bandwidths, the model treats all channels with the same bandwidth [19].

The available channel band is divided into orthogonal channels of the same bandwidth using the FDMA method. It is assumed that there is a mechanism that enables wireless devices to use multiple channels to communicate at the same time.

Let *N = |V|* denotes the total number of secondary users. Edges will be represented by the *N* × *N* matrix *E* = {*e*
_{
ij
}}, where *e*
_{
ij
} = 1 if there is an edge between vertices *i* and *j* and *e*
_{
ij
} = 0 implies that *i* and *j* may use the same channel; note that since *G* is an undirected graph, *E* is symmetric. In a similar notation, we represent the availability of channels at vertices of *G* by an *N* × *K* matrix *L =* {*l*
_{
ik
}}*,* referred as the coloring matrix. In particular, *l*
_{
ik
}
*=* 1 means that channel *k* is available at vertex *i*, and *l*
_{
ik
} = 0 otherwise. For instance, Fig. 1 shows four PUs, represented by numbers I to IV, using channel bands *A*, *B*, and *C*. These channels cannot be utilized by secondary users in the vicinity and the nodes within a certain range of each primary user cannot reuse the same channel. The same Fig. 1 shows five different secondary users, represented by numbers *1* to *5*. If a secondary user is within the dashed circle of a specific primary user, it cannot access the channel band used by this primary user. For instance, node 3 is within the interference range of primary user I, who uses channel B, and is within the interference range of primary user II, who uses channel A. Therefore, it cannot reuse channels A and B. As a consequence, each node has access to a different set of bands. In Fig. 1, the available channels at vertex 1 are {A, B, C} and {A, C} at vertex 5 [19]. Figure 1 is then represented by the following matrices:

$$ E=\left[\begin{array}{ccccc}\hfill 1\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill \\ {}\hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 0\hfill \\ {}\hfill 1\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill & \hfill 1\hfill \end{array}\right]L=\left[\begin{array}{ccc}\hfill 1\hfill & \hfill 1\hfill & \hfill 1\hfill \\ {}\hfill 1\hfill & \hfill 0\hfill & \hfill 1\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill \\ {}\hfill 0\hfill & \hfill 1\hfill & \hfill 1\hfill \\ {}\hfill 1\hfill & \hfill 0\hfill & \hfill 1\hfill \end{array}\right] $$

Let us denote a channel assignment policy by an *N* × *K* matrix *S =* {*s*
_{
ik
}}, where *s*
_{
ik
}
*=* 0 or 1 and *s*
_{
ik
}
*=* 1 if channel *k* is assigned to the nodes *i* and *0* otherwise. We call *S* a feasible assignment if the assignments satisfy the interference graph constraint and the channel availability constraint. More specifically, for any node *i*, we have *s*
_{
ik
}
*=* 0if *l*
_{
ik
} = 0 (i.e., a channel can be assigned only if it is available at that node). Furthermore,

$$ {s}_{ik}{s}_{jk}{e}_{ij}=0,\forall i,j=1,\kern0.5em .\ .\ .\kern0.5em ,N,k=1,\kern0.5em .\ .\ .\kern0.5em ,K. $$

(3.1)

In other words, two connected nodes cannot be assigned the same channels. The objective of the resource allocation is to maximize the spectrum utilization. This problem can be formally represented as the following nonlinear integer programming problem.

$$ \begin{array}{l}\underset{\mathrm{s}}{ \max \kern0.75em }{\displaystyle \sum_{i=1}^N{\displaystyle \sum_{k=1}^K{s}_{ik}}}\\ {}\mathrm{s}.\mathrm{t}\kern0.75em {s}_{ik}\le {l}_{ik},\kern0.5em {s}_{ik}{s}_{jk}{e}_{ij}=0,\ {s}_{ik}=0,1,\end{array} $$

(3.2)

For each node *i*, and for *k* = 1,*⋯*, *K*, if *s*
_{
ik
}
*=* 1, the *l*
_{
ik
} = 1 (i.e., a channel is assigned to *i*), or else if *s*
_{
ik
}
*=* 0, the *l*
_{
ik
}
*= 1*, (i.e., a channel is available but not assigned at that node).

For all *i*, *j* = 1,*⋯*, *N*, *k* = 1,*⋯*, *K.* The above problem is sometimes referred to as a list multicoloring problem. When time is taken into account, a time index can be introduced into the equation where the objective is to maximize the utilization averaged over time and the three constraints are satisfied at each time instant. The corresponding decision list coloring problem is formulated below.

Problem 3.1 [19] (*DListColor* Problem) Given a graph *G =* (*V*, *E*, *L*) and a positive integer B, is there a solution with the same set of constraints as in (3.2)? Such that:

$$ {\displaystyle \sum_{i=1}^N{\displaystyle \sum_{k=1}^K{s}_{ik}}}>\kern0.5em B, $$

(3.3)

### 3.1 Proposition 3.1

The *DListColor* problem is NP-complete.

PROOF: This problem is clearly in NP since once a valid coloring assignment S is obtained, condition (3.3) may be verified in *O(|V| K )* time [19].

Note that a clique is a fully connected subgraph (a subnet), i.e., a clique consists of a set of nodes where any pair of its nodes has an edge in between.

We now show that the maximum clique problem can be reduced to the *DListColor* problem in polynomial time and that the maximum clique problem has a solution if and only if *DListColor* has a solution.

Let *G =* (*V*, *E*, *L*) be the undirected graph of the maximum clique problem. We construct the graph *G*′ *=* (*V*′, *E′*, *L*′) for our *DListColor* problem, such that *V’ = V*, and *E*′ is the complementary set of *E*. Furthermore, the color matrix *L* is of dimension *|V| ×* 1, where *L =* [1,1,…, 1]^{T}. Since any pair of nodes connected in *G* are not connected in *G*′ and vice versa, we cannot simultaneously assign to nodes in*G*′ the same color if these nodes form a clique in *G*. Therefore, there exists a clique in *G* of size at least m if and only if there is no solution for *DListColor* for *B = |V| − m*. This reduction is obviously polynomial time as shown in [19].

#### 3.1.1 Color decoupling

The list coloring problem may be reduced to a set of maximum-size clique problems when fairness is not in consideration. In other words, in the process of finding the maximum in (3.2), nodes are allowed to be assigned zero channels.

According to the logic diagram of the proposed resolution model, the channel assignment problem in a cognitive radio system is based on opportunist channel exploitation where each channel will be used by the maximum number of nodes. Therefore, the initialization of such “possible channels allocation” for a maximum clique problem as a list of channels is constructed to produce a solution for a subnetwork, which can be extended to the entire network. For each channel, a greedy assignment is determined to maximize the number of nodes assigned to this channel, and then a subnet of connected nodes is generated. Finally, nodes are connected in the original graph G.

The problem of assigning each node a set of colors (channels) may be solved by coloring the graph in sequence with individual colors:

$$ \underset{\mathrm{s}}{ \max }{\displaystyle \sum_{i=1}^N{\displaystyle \sum_{k=1}^K{s}_{ik}}}\iff {\displaystyle \sum_{k=1}^K\underset{\mathrm{s}}{ \max }{\displaystyle \sum_{i=1}^N{s}_{ik}}} $$

(3.4)

The feasible assignment matrix is *S =* {*s*
_{
ik
}} where *s*
_{
ik
} = 1 if channel *k* is assigned to the nodes *i* and *0* otherwise. *S*
_{
k
} denotes the channel allocation with respect to channel (color) *k*. More specifically, *S*
_{
k
} is the *k*
^{th} column in the assignment matrix *S*. Note that the equality in (3.4) does not hold in general situations, e.g., a graph coloring problem that requires each node to be colored with nonempty colors. Note that when fairness is taken into account, e.g., each node has to be assigned at least one color, and then the decoupling property does not apply [19].

With fewer assigned channel to the connected nodes, our proposed algorithm can result in very unfair allocation. Nodes with greatest degrees of saturation will be first served, and their subnet obtains the maximum number of used channels. The algorithm will allow the addition of new assignments in its structure during the search. This is one of the great primary advantages of the proposed genetic algorithm.