In this section, we propose two scheduling algorithms applicable to the hybrid polling method: the packet-level and the connection-level scheduling algorithms. By performing the packet-level scheduling algorithm at the beginning of DCPIs, the AP can schedule efficiently the direct data transmissions requested on a packet basis. The connection-level scheduling algorithm derives the polling sequence for granting the transmission opportunities to the transmitting STAs of all existing established direct link connections. When polling the STAs in DCPIs, by a simple method, the AP modifies the polling sequence derived by the connection-level scheduling algorithm considering the information of the STAs' requests for the direct link communication. The connection-level scheduling algorithm is suitable for the case when the AP cannot perform the packet-level scheduling algorithm quickly enough to reflect exactly the STAs' new requests for the direct link communication in the next DCPI. However, in the cases where the connectivity and interference information and the information of the STAs' requests for the direct link communication do not change for a period of time during which the AP can derive the polling sequence by the packet-level scheduling algorithm or a small number of STAs actually request the direct link communication, the packet-level scheduling algorithm should be applied for the efficient use of the wireless bandwidth. Note that when no STA requests the direct link communication, the next DCPI will be skipped.

### 4.1. Packet-Level Scheduling Algorithm

In the DCPI, the AP needs to schedule efficiently the requested direct data transmissions based on the connectivity and interference information among the STAs and the information of the STAs' requests for the direct link communication. Let be the set of STAs that requested the direct data transmissions, which are determined to be feasible using the connectivity information, in the recent PI. Then can be obtained as follows:

We propose a two-phase scheduling algorithm for granting the direct transmission opportunities to the STAs in using the proposed polling method.

In the first phase of the algorithm, we handle the problem of grouping the STAs in with as few groups as possible in such a way that no two STAs, and with or , are in the same group. Note that the connectivity and interference conditions as shown in (1) are satisfied for each group. Therefore, the AP can grant the simultaneous direct transmission opportunities to the STAs in each group using the simultaneous polling method. This grouping problem can be formulated as graph coloring problem (GCP), where the STAs in are vertices and two STAs, and in , are connected only when or . We can use the simple heuristic for GCP, which is based on the degree-descending order of the vertices [9, page 14]. The set of the groups obtained by the heuristic is denoted by for [9, page 14]. We need polling frame transmissions to poll the STAs in the groups in using the simultaneous polling method. The first phase of the algorithm was considered in the simultaneous polling method in [7].

In the second phase of the algorithm, we try to further reduce the number of polling frame transmissions by applying the sequential polling method to the groups in . The AP can poll the STAs in the groups in the sequence with for by transmitting a multipolling frame, the format of which is as shown in Figure 2, to the STAs when only one STA exists in for , and the following connectivity condition is satisfied:

where indicates that the STAs in can hear the transmission of the STA in . We will call such a polling sequence satisfying the condition of (4) *sequentially connected*. For convenience of explanation, we will also call the sequence *H* having only one group *sequentially connected*.

When some of the groups in have only one STA, that is, the simultaneous polling method cannot be actually applied to some of the groups, we can further reduce the number of polling frame transmissions by finding the sequentially connected polling sequences and applying the proposed polling method to the sequentially connected polling sequences. The problem of finding the optimal polling sequence of the groups in that minimizes the multipolling frame transmissions can be formulated as the asymmetric traveling salesman problem (TSP), where the groups in are cities, and the distance, from to , is binary valued:

Let us denote the sequence as a solution of the TSP by , and the corresponding total distance by . If , that is, is sequentially connected, only one multipolling frame transmission is sufficient to grant the direct transmission opportunities to the STAs in the groups in . If , we can cyclically reorder the groups in to obtain the sequentially connected polling sequence, , and only one multipolling frame transmission is sufficient to poll the STAs in the groups in . If , we can cyclically reorder the groups in to obtain two sequentially connected polling sequences, and . (For instance, let , , , and . Then we can reorder to obtain two sequentially connected polling sequences as , .) Generally, if , we can cyclically reorder to obtain sequentially connected polling sequences, and , and multipolling frame transmissions are sufficient to grant the direct transmission opportunities to the STAs in the groups in .

To solve the asymmetric TSP, we can use the following dynamic search algorithm.

Algorithm (DYNAMIC_SEARCH (Time_Limit = )).

Step 1. Set Bounding_Cost = (the number of the groups having two or more STAs in ).

Step 2. Start to search the enumeration tree with Bounding_Cost.

Step 3. If a solution with the cost less than or equal to Bounding_Cost is found using the branch and bound technique based on the depth-first search method within Time_Limit, the solution is the result of the algorithm and the algorithm is terminated. Otherwise, update Bounding_Cost : Bounding_Cost Bounding_Cost + 1, and go to Step 2.

When is the number of the groups having two or more STAs in , at least multipolling frame transmissions are needed to poll the STAs in the groups in . The preceding algorithm first tries to obtain the solution with . If the algorithm does not succeed to get the solution within time of Time_Limit, the algorithm relaxes the constraint for the cost of the solution by increasing Bounding_Cost by 1 and tries to get the solution with . If the algorithm fails again, the algorithm again increases Bounding_Cost by 1 and tries to get the solution with . In this manner, the algorithm continues until the solution with Bounding_Cost is obtained. By the branch and bound techniques, if a part of tour has a cost higher than or equal to the current optimal cost or higher than Bounding_Cost, all tours including this part of tour are skipped.

### 4.2. Connection-Level Scheduling Algorithm

Let be the set of existing simplex direct link connections. A duplex connection can be realized by two simplex connections. We propose a two-phase scheduling algorithm for granting the direct transmission opportunities to the transmitting STAs of the direct link connections in . We will denote the transmitting and receiving STAs of direct link connection, in by and , respectively.

In the first phase of the algorithm, we handle the problem of grouping the connections in with as few groups as possible in such a way that no two connections, and with or , are in the same group. This grouping problem can be also formulated as GCP, where the connections in are vertices and two connections, and in , are connected only when or . We can use the simple heuristic for GCP, which is based on the degree-descending order of the vertices [9, page 14]. The simultaneous polling method can be actually applied to the groups with two or more connections [9, page 14]. We will call such groups with two or more connections and the groups with only one connection *the simultaneous polling groups and the nonsimultaneous polling groups*, respectively.

Generally, a transmitting STA can have two or more established direct link connections. However, we want to grant at most one direct transmission opportunity to each STA. For this purpose, when a nonsimultaneous polling group obtained by the heuristic consists of a connection with a transmitting STA, we need to remove the other connections with the transmitting STA from other groups before we go to the second phase of the algorithm. Generally, we can say that the connections with a transmitting STA cannot be in the same simultaneous polling group due to the interference. Actually, we want to avoid the case that two or more connections with a transmitting STA are separately in the nonsimultaneous polling groups, and the case that two or more connections with a transmitting STA are scattered in both the simultaneous and nonsimultaneous polling groups. Note that we allow the case that two or more connections with a transmitting STA are individually in the different simultaneous polling groups. When two or more connections with a transmitting STA are individually in the different simultaneous polling groups, the STA should choose only one connection to transmit its direct data frame when polled by the AP. The set of the groups obtained by the first phase of the algorithm is denoted by for . We need polling frame transmissions to poll the transmitting STAs of the connections in the groups in using the simultaneous polling method.

In the second phase of the algorithm, we try to further reduce the number of polling frame transmissions by applying the sequential polling method to the groups in . The AP can poll the transmitting STAs of the connections in the groups in the sequence with for by transmitting a multipolling frame, the format of which is as shown in Figure 2, to the STAs when only one connection exists in for , and the following connectivity condition is satisfied:

where indicates that the transmitting STAs of the connections in can hear the transmission of the transmitting STA of the connection in . We will call such a polling sequence satisfying the condition of (6) *sequentially connected*.

When some of the groups in have only one connection, that is, the simultaneous polling method cannot be actually applied to some of the groups, we can further reduce the number of polling frame transmissions by finding the sequentially connected polling sequences and applying the proposed polling method to the sequentially connected polling sequences. The problem of finding the optimal polling sequence of the groups in that minimizes the multipolling frame transmissions can be also formulated as the asymmetric TSP, where the groups in are cities, and the distance, from to , is binary valued:

Let us denote the sequence as a solution of the TSP by , and the corresponding total distance by . If , that is, is sequentially connected, only one multipolling frame transmission is sufficient to grant the direct transmission opportunities to the transmitting STAs of the connections in the groups in . If , we can cyclically reorder to obtain sequentially connected polling sequences, and , and multipolling frame transmissions are sufficient to grant the direct transmission opportunities to the transmitting STAs of the connections in the groups in . To solve the asymmetric TSP, we can employ a dynamic search algorithm similar to the one of the packet-level scheduling algorithm with Time_Limit of 10 seconds.

When a group in consists of a single connection, the transmitting STA of the connection can transmit its direct data frame to any receiving STA of the established direct link connections in its transmission range when polled by the AP. When the transmitting STA of the connection has no direct data frame to transmit, the STA should use the granted transmission opportunity to transmit its null or data frame to the AP when polled by the AP. The AP can optionally modify the derived polling sequence to insert the AP's polling frame transmissions before the transmissions of the nonsimultaneous polling groups when the AP has the data frames, which are actually piggybacked on the polling frames, destined for the nonsimultaneous polling groups. When no direct link communication through the connections in a simultaneous polling group in was requested, the AP will modify the derived polling sequence to remove the group from the polling sequence that is actually delivered to the STAs. This is for avoiding wasting the wireless bandwidth. When all connections with a transmitting STA are separately in the different simultaneous polling groups, the STA can choose only one connection to transmit its direct data frame when polled by the AP. Note that the first phase of the algorithm avoided the case that two or more connections with a transmitting STA are separately in the nonsimultaneous polling groups, and the case that two or more connections with a transmitting STA are scattered in both the simultaneous and nonsimultaneous polling groups.