Table 1.
General Notation
Sets and parameters |
---|
| Set of Txs, index |
SC | Set of available SCs, index sc |
| Set of slots, index ; each slot is a set of SCs |
| Capacity of a single SC |
| Traffic observed for Tx |
| Capacity required for Tx |
| Capacity of slot |
| Spectrum operation (increase, decrease, none) for Tx |
| Traffic loss in the case of selecting slot for Tx (, if , 0 otherwise) |
| Equal to 1 if slot is a candidate for Tx , 0 otherwise |
| Equal to 1 if slot is currently allocated for Tx , 0 otherwise |
| Equal to 1 if SC sc is in slot , 0 otherwise |
| Number of SCs in slot |
| Coefficients of the objective function |
| Number of messages exchanged |
Decision variables |
| Binary, equal to 1 if slot is assigned to Tx ; 0 otherwise |
| Binary, spectral allocation for Tx has changed |
Algorithm 1.
Optimization Algorithm in the CiMa Module
INPUT: SC, numTx | OUTPUT: |
1: |
2: while do |
3: () |
4: |
5: if then |
6: (SC, {.s, , ) |
7: else if then |
8: (SC, {.s \ {.s[0]}, .sc \ {.sc[-1]}) |
9: else // |
10: (SC, {.s, .s U {}, .s U {}) |
11: |
12: return solveSA (, ) |
Table 2.
Specific Notation for the MSG Approach
| Strategy space for Tx , index |
| Slot to be allocated if strategy of Tx is selected |
| Number of contiguous SCs in the slot of strategy |
| Probability distribution for Tx |
(·) | Utility function for strategy of Tx |
| Likelihood of slot being accepted |
| Equal to 1 if SC , 0 otherwise |
Algorithm 2.
Mixed Strategy Game Algorithm in the LiMa Module
INPUT: SC, numTx | OUTPUT: |
1: |
2: while do |
3: () |
4: |
5: if then |
6: (SC, {.s, , ) |
7: else if then |
8: (SC, {.s \ {.s[0]}, .sc \ {.sc[]}) |
9: else // |
10: (SC, .s, .s ∪ {}, .s ∪ {}) |
11: calculate and for each in |
12: while do |
13: delete from |
14: recalculate and for |
15: initialize for |
16: while th, , where do |
17: |
18: |
19: return |
Algorithm 3.
Deterministic Algorithm in the LiMa Module
INPUT: SC, OUTPUT: shiftingReq |
1: if then return |
2: if then |
3: (SC, {.s \ {.s[0]}, .sc \ {.sc[1]}) |
4: return , false |
5: , shiftingReq ← selectBestSlot(SC, {.s, .s ,.s ∪ |
{}) |
6: if NOT shiftingReq then return , false |
7: return <−, true > |
Algorithm 4.
Shifting Coordination in the MAC Module
INPUT: , OUTPUT: neighborShift |
1: neighbors ← findNeighboringAgents() |
2: askShift(neighbors) |
3: possibleShiftings ← {} |
4: while neighbors is NOT {} do |
5: neighbor ← receivShiftRp () |
6: neighbors ← neighbors \ {neighbor} |
7: if neighbor.shiftingPossible then |
8: possibleShiftings ← possibleShiftings ∪ {neighbor} |
9: if possibleShiftings is{} then return none |
10: ← selectBestNeighbor(possibleShiftings) |
11: requestShift() |
12: return |
Algorithm 5.
Spectrum Placement Planning
INPUT: OUTPUT: |
1: clusters, ← clusteringByTrafficSimilarities() |
2: bestPlacement ← []; bestScore ← ; placement ← [] |
3: for iter in maxIters do |
4: shuffle(clusters); |
5: for cluster in clusters do shuffle(cluster); |
6: while clusters do |
7: for each cluster in clusters do |
8: ← cluster.pop() |
9: placement.append() |
10: score ← evaluate(placement) |
11: if score > bestScore then |
12: bestScore ← score |
13: bestPlacement ← placement |
14: return SpectrumAllocation(, bestPlacement) |
Table 3.
Summary of the Approaches
| | Distributed |
---|
| Centralized | MSG | DD-MAS | MARL |
---|
Traffic/capacity prediction | Threshold | Threshold | Threshold | DRL |
SC management | ILP | Mixed strategy | Deter-ministic | Deter-ministic |
Inter-agent communication | – | Traffic prediction, spectrum | Spectrum, coord. | Spectrum, coord. |
Table 4.
Traffic Loss w/o and w/ Spectrum Planning
| Centralized | MSG | DD-MAS | MARL |
---|
w/o sp. planning | 3863.8 | 4969.9 | 3863.8 | 3863.8 |
w/ sp. planning | 0 | 144.3 | 0 | 0 |
Table 5.
Number of Spectrum Shift Operations Performed by Every Approach
| 5 Leaf Nodes | 6 Leaf Nodes | 7 Leaf Nodes |
---|
Load | Cent. | MSG | DD-MAS | MARL | Cent. | MSG | DD-MAS | MARL | Cent. | MSG | DD-MAS | MARL |
---|
70 | 0 | 8437 | 0 | 0 | 0 | 6893 | 2 | 3 | 0 | 4827 | 1 | 3 |
75 | 0 | 9161 | 0 | 0 | 0 | 7927 | 3 | 4 | 0 | 2977 | 2 | 6 |
80 | 3 | 7303 | 2 | 2 | 4 | 6452 | 4 | 4 | 2 | 2989 | 3 | 4 |
85 | 2 | 6474 | 3 | 4 | 4 | 5140 | 3 | 4 | 0 | 2260 | 2 | 5 |
90 | 2 | 6266 | 2 | 2 | 4 | 4790 | 3 | 3 | 0 | 2663 | 2 | 3 |
95 | 2 | 6244 | 2 | 2 | 4 | 4147 | 5 | 5 | 0 | 1269 | 3 | 4 |
Table 6.
Pros and Cons of Every Approach Supporting Near-Real-Time SC Operation
Approach | Advantages | Drawbacks |
---|
Centralized | • Optimal SC allocation provides good performance | • Requires strict synchronization since leaf nodes need to |
| with minimal overprovisioning | collect traffic measurements and send them to the |
| | centralized module making decisions |
Mixed-Strategy | • Distributed decision making to liberate the SDN | • Requires strict synchronization of the leaf nodes since |
Gaming | controller from near-real-time operation | they need to share traffic and spectral allocation |
| | • Random loss even under low load and a huge number of |
| | spectrum operations (no cooperation among the leaves) |
| | • Number of messages increases quadratically with the |
| | number of agents in the connection |
Collaborative | • Distributed decision making to liberate the SDN | • Requires communication and collaboration among the leaf |
Multi-Agent | controller from near-real-time operation | nodes |
Systems | • MARL can anticipate better for traffic changes | • The performance is (slightly) below the centralized |
(DD-MAS/MARL) | • Only spectral allocation is shared, so decisions can | approach |
| be made asynchronously, which also reduces the | |
| number of messages exchanged | |
| • Few spectrum shifting operations (cooperation) | |