## 3 Proposed Scheduling Algorithm
### Estimating Amount of Packets in Queue
At first, we assigned (ts,0) (channel 0 of time slot ts) to \(N(0)\), which is the highest priority node in \(N\). After that, we deleted \(N(0)\) and the nodes that are duplex-conflicting with \(N(0)\) from \(N\). Then, we assigned the next available channel of the current time slot to node \(N(0)\), and deleted \(N(0)\) and the nodes that are duplex-conflicting with the selected node again. We repeated this step while the channels were available and \(N\) was not empty. After selecting all the nodes that can transmit in ts at the same time, we updated the TS and QL values of the nodes in \(M\) (the selected links in ts) in the ADJUST_TS_QL(\(M\)) function. We increased the time slot ts and set the channel number ch to 0, and updated N to a set of nodes to which channels can be assigned in the next time slot (ts + 1). We repeated the main loop of steps (4)-(18) while N was not empty. After the main loop, we checked the QL of each node and assigned additional time slots to the nodes if their QLs were greater than or equal to MQL in the ASSIGN_ADDITIONAL_TS() function. After the inner loop (step (7)-step (14)) is finished, \(M\) contains the links to which channels are assigned to transmit in the current time slot ts at the same time. The ADJUST_TS_QL(\(M\)) function updates the TS and QL values of the sender and receiver nodes of the links in \(M\) to determine the channel assignment in the next time slot. The remaining number of time slots (TS values) are decreased by 1. The QL values are updated based on the number of packets to transmit in time slot ts and the PRR value of the link. The number of packets (tx_amount) to transmit is 100 (one packet) if \(QL_{k}\) is greater than 100, otherwise, tx_amount is \(QL_{k}\). Thus, for each link <k, \(P_{k}\)> in \(M\), we updated the QLs of node k and node \(P_{k}\) based on the PRR value, \(R_{k}\) of the link in steps (7) and (8) of the ADJUST_TS_QL(\(M\)) function. To illustrate the operation of the proposed scheduling algorithm with an example, we performed the algorithm in a 2-channel network based on the example network in Figure 1. We assumed all nodes had one packet to transmit in each slot frame. Based on the PA value of each node in Figure 2, the MQL (minimum QL) of each node was set as \(MQL_{k}=100\times(1-PA_{k})\) for node k. We assigned time slots only to the nodes that satisfied \(QL_{k}\geq MQL_{k}\) and \(TS_{k}\geq 1\). Figure 3 shows the TS, QL, and MQL values of the nodes at each time slot and the (time-slot, channel) assignment result. In each step, the red color denotes the node with the highest priority and the blue color the non-duplex conflicting node. The highest node is assigned to channel 0 and the non-duplex conflicting node to channel 1 in the current time slot. During the assignment step, the QL of a node can become less than its MQL even though its TS is greater than 0. In this case, the remaining time slots are not assigned, which can reduce the number of assigned time slots, but can affect the end-to-end delivery ratio slightly. In Figure 3, node 3 at time slot 8 and node 2 at time slot 15 showed these cases. At time slot 16, there was no node that satisfied \(QL_{k}\geq MQL_{k}\) and \(TS_{k}\geq 1\), thus, the main loop of the scheduling algorithm was completed. After the main loop was completed at time slot 16, the ASSIGN_ADDITIONAL_TS() function checks the QL of each node and assigns one additional time slot to node 1 because \(QL_{1}\) > \(MQL_{1}\).