Channel Allocation and Time Scheduling in Multi-channel Wireless ...

4 downloads 79 Views 449KB Size Report
Abstract: Using network coding in a wireless network can potentially improve the network throughput. On the other hand, it increases the complexity of resource ...
2013 IEEE Wireless Communications and Networking Conference (WCNC): NETWORKS

Channel Allocation and Time Scheduling in Multi-channel Wireless Networks Using Network Coding Maryam Mohseni and Dongmei Zhao Department of Electrical and Computer Engineering McMaster University Hamilton, Ontario, L8S 4K1 Abstract: Using network coding in a wireless network can potentially improve the network throughput. On the other hand, it increases the complexity of resource allocations as the quality of one transmission is often affected by the link conditions of the transmitter node to multiple destination nodes. In this paper we consider a multi-channel wireless network with a star topology. Network coding is used for data transmissions of each bidirectional link through a relay node, which has multiple radios, each for one bidirectional link. We study the channel and time allocations in this network, so that the overall network throughput is maximized. An optimum problem is first formulated and solved, and two heuristic schemes, Concurrent Node Selection and Channel Assignment (CNSCA) and Sequential Node Selection and Channel Assignment (SNSCA), with different complexity are proposed. Our results indicate that the CNSCA scheme has high complexity and achieves close-to-optimum performance, and the SNSCA scheme requires lower complexity and achieves relatively lower throughput. Index terms: Network coding, channel allocation, scheduling. I. I NTRODUCTION The notion of network coding (NC) was first introduced in [1] in the context of wired multicast networks. It is a technique for intermediate nodes to combine the received packets from multiple links and forward to subsequent nodes. Using NC can reduce the amount of transmitted data and potentially improve the network throughput. Significant efforts have been put to design different strategies for applying network coding in wireless networks [2]-[5]. By exploiting the broadcast nature of the wireless channel, wireless network coding (WNC) may not only improve the network throughput [6], but also combat transmission errors, save transmission power, and improve routing efficiency. Network coding is closely related to packet transmission scheduling, which is important in order to coordinate the resource allocations and optimize the network performance. Different opportunistic scheduling schemes have been proposed for wireless networks using NC by taking advantage of the random channel conditions so that

978-1-4673-5939-9/13/$31.00 ©2013 IEEE

packets that are mixed in the same transmission have similar channel conditions to their respective destinations. In [7] the scheduling problem is studied jointly with channel and power allocations for broadcast traffic in an OFDMA-based WiMAX network using random network coding. In [8] joint scheduling and automatic modulation and coding is studied for a network having one transmitter and multiple destination nodes. Joint coding, routing and scheduling is studied in [9] for a wireless mesh network with orthogonal channels. On the other hand, there has been considerable interest in multi-channel wireless networks recently [10]. In such a situation, an effective scheduling is important to decide which node should send at which frequency channel in order to take advantage of the link diversity at different channels. In [11], a new low-complexity channel-aware scheduling scheme is proposed for multi-channel wireless local area networks. Joint routing, channel assignment and network coding is proposed for multi-channel wireless mesh networks in [12]. Also, in [13] a novel scheme of multi-channel network coding is proposed, which is based on the coded overhearing and coding-aware channel assignment. A new solution to maximizing throughput with the presence of errors is proposed in [14], which takes advantage of network coding at the symbol level in multichannel wireless networks. Although determining the transmission time and frequency is one of the main aspects for scheduling, not very much work has been done on this topic for multi-channel networks with network coding. In this paper we combine the benefits of NC and multichannel diversity for network throughput improvement. We study time scheduling and channel allocations for a multichannel network with WNC. Different frequency channels are considered, and each channel is assigned to only one node in order to avoid interference. An optimization problem is first formulated. The objective is to maximize the system throughput, subject to the proper channel allocation and transmission time constraints. Heuristic scheduling schemes are then proposed. The remainder of the paper is organized as follows. In Section II we describe the system that this work is based on. The channel allocation and scheduling problem for networks with NC is formulated and heuristic schemes

1504

are proposed in Sections III and IV, respectively. Numerical results are demonstrated in Section V to show the performance of the scheduling and channel allocation schemes. Section VI concludes the paper. II. S YSTEM D ESCRIPTION We consider a network with M bidirectional links, indexed by m = 1, 2, . . . , M . The network has a star topology as shown in Fig. 1, where the center node is a relay node (denoted as R-node) with multiple radios. Multiple frequency channels are available to the network, indexed by k = 1, 2, . . . , K, where K is the total number of channels. We assume that the number of radios at the relay node is equal to K. When channel k is allocated to link m, one radio of the R-node is responsible for forwarding packets between the two end nodes, referred to as source node (or S-node) and destination node (or D-node), respectively. We consider a saturated case, and assume that both the S-nodes and the D-nodes always have packets to transmit.

We use x = s, d, r to represent the type of the node with s for the S-node, d for the D-node, and r for the R-node, and use Px to represent the transmission power of node x. We consider T time slots, indexed by t = 1, 2, . . . , T . Let Gxy m,k,t represent the link gain (normalized to background noise power) between nodes x and y of link m at frequency channel k and time slot t, and (x, y) ∈ {(s, r), (d, r), (r, s), (r, d)}. Based on the Shannon capacity formula, the transmission rate between nodes x and y of link m at frequency channel k and time xy slot t can be calculated as Um,k,t = log2 (1 + Px Gxy m,k,t ). We consider fixed transmission power for all nodes, i.e., Ps = Pd = Pr = Pmax . III. O PTIMUM PROBLEM FORMULATION We define three sets of binary variables, Xm,k,t , Ym,k,t , and Zm,k,t . When Xm,k,t = 1, frequency channel k is assigned to the S-node of link m at time slot t, and Xm,k,t = 0 otherwise. When Ym,k,t = 1, frequency channel k is assigned to the Dnode of link m at time slot t, and Ym,k,t = 0 otherwise. When Zm,k,t = 1, frequency channel k is assigned to the R-node of link m at time slot t, and Zm,k,t = 0 otherwise. Based on these definitions, we have X (Xm,k,t + Ym,k,t + Zm,k,t ) ≤ 1, all m, t, (1) k X (Xm,k,t + Ym,k,t + Zm,k,t ) = 1, all k, t,

(2)

m

Fig. 1.

where (1) guarantees that each link is assigned to at most one channel at each time slot, and also guarantees that there is at most one node from each link transmitting at a time. (2) guarantees that each channel is assigned to one link at a time. Define Cx,m,t as the transmission rate of node x of link m at time slot t. We have X sr Cs,m,t = Xm,k,t × Um,k,t , (3)

Star topology with M =3

NC is used for the R-node to relay traffic to the end nodes. We consider a simple XOR operation for the R-node to combine the packets from the S-node and D-node. It takes three time slots for the S-node and D-node of a given link to exchange one pair of packets, i.e., one packet is transmitted in each direction. In the first two time slots, the S-node transmits packet ks to the R-node, and the D-node transmits packet kd to the R-node. The two packets are decoded at the R-node, which transmits kd ⊕ ks to both the S-node and D-node in the third time slot. Upon receiving the XORed packet, the Snode recovers kd and the D-node recovers ks . For each link at most one node can transmit data at a time because of using NC. We consider that the number of channels is less than the number of links, so that at each time slot, only nodes from some links can transmit. Data packets received from the end nodes of different links are first buffered in the R-node and wait for chances to be forwarded by the R-node. There is one buffer at the R-node for each end node, and the maximum size of the buffer is Bmax .

Cd,m,t =

k X

dr Ym,k,t × Um,k,t ,

(4)

rs rd Zm,k,t × min{Um,k,t , Um,k,t }.

(5)

k

Cr,m,t =

X k

Consider a time period of T slots. The cumulate rate of link m during this period is given by PT (6) Cm = t=1 Cr,m,t , which considers the rate at only one direction. Because of the use of NC, the rates in both directions of each bidirectional link are the same. Our objective is to maximize the total throughputPof all the links during this period. That is, to M maximize m=1 Cm /T . In addition to the link gains, buffer occupancy at the Rnode also limits the transmission rate of each hop. That is, the transmission rate of an S- or D-nodes is limited by the available space in the buffer, and that of the R-node is limited by the available data in the buffer. Overall, the following

1505

constraint should guarantee that transmissions of the S- and D-nodes never overflow their buffers at the R-node, and the R-node always transmits no more than the available data in the buffer. 0≤ 0≤

t X

Cs,m,τ −

τ =1 t X

Cd,m,τ −

τ =1

t X τ =1 t X

Cr,m,τ ≤ Bmax ,

(7)

Cr,m,τ ≤ Bmax ,

(8)

τ =1

where we normalize the duration of one time slot to one, so that the transmission rate is equivalent to the amount of data that are transmitted during one time slot. Define X=[Xm,k,t ], Y=[Ym,k,t ], Z=[Zm,k,t ], and C=[C.,m,t ]. Based on the above description, an optimization problem can be formulated as follows X P1: max Cm /T (9)

the variables with subscript t ≤ (i − 1) × Tw are known. Performing Line 3 generates the channel and time slot allocations for the ith time window, i.e., (i−1)×Tw +1 ≤ t ≤ i×Tw . The window-based optimum solution is based on the assumption that the link conditions are known at the beginning of each window. Solutions from the previous windows are used for solving the problem for the next window. The window-based method still suffers from the causality problem, and cannot be implemented in networks where link gains may change within a window. Even for stable channels, its computational complexity can be very high when Tw is large. Therefore, below we seek heuristic methods with lower complexity. Algorithm 1 Window-based optimum problem 1: for i = 1 : dTtotal /Tw e do 2: T = min{Ttotal , iTw } 3: Solve the optimization problem. 4: end for

X,Y,Z,C

Xm = Cr,m,t , all m

s.t. Cm

(10)

IV. P ROPOSED HEURISTIC SCHEMES

t

Cs,m,t ≤ Cd,m,t ≤

X k X

sr Xm,k,t Um,k,t , all m, t

(11)

dr Ym,k,t Um,k,t , all m, t

(12)

k

Cr,m,t ≤

X

rs rd Zm,k,t min{Um,k,t , Um,k,t }, all m, t (13)

k

0≤ 0≤

t X τ =1 t X τ =1

X

Cs,m,τ − Cd,m,τ −

t X τ =1 t X

Cr,m,τ ≤ Bmax , all m, t Cr,m,τ ≤ Bmax , all m, t

(14) (15)

τ =1

(Xm,k,t + Ym,k,t + Zm,k,t ) ≤ 1, all m, t

(16)

(Xm,k,t + Ym,k,t + Zm,k,t ) = 1, all k, t

(17)

k

X m

Xm,k,t ∈ {0, 1}, all m, k, and t Ym,k,t ∈ {0, 1}, all m, k, and t

(18) (19)

Zm,k,t ∈ {0, 1}, all m, k, and t

(20)

The problem above is a mixed integer linear optimization problem, and can be solved by commercial software. However, implementing the solutions is difficult in a practical system. First, the scheduling solution jointly optimizes the resource allocations at all the time slots. It requires future information of link gains at the time of making the decisions, which is impossible in time-varying channels. For relatively static channels, an optimum scheduling can be solved for a period of T = Tw , during which the link gains are kept constant. This is referred to as “window-based optimum method”. The basic procedure is shown in Algorithm 1, where Ttotal is the number of time slots. When solving the problem for the ith window, all

We propose two heuristic schemes, all performed at the Rnode. We assume that the R-node has the link gain information between itself and all the end nodes at different time slots. The scheduling is performed at time-slot basis. At each time slot, the process is to decide which channel assigned to which node. P At the end of the simulation, m Cm /T is calculated as the system throughput. A. CNSCA Scheme This scheme is shown in Algorithm 2. It includes two steps. The first step (Lines 2-8) is to find possible transmission rate for each node at each channel (C˜x,m,k ), and the second step (Lines 10-25) is to assign channels to nodes based on the calculated rates. In the first step, the possible transmission rate of each node at each channel is limited by both the channel gain and the buffer occupancy. We use bsr,m and bdr,m , respectively, to represent the amounts of data buffered at the R-node from the S-node and D-node of link m. The subscript t is removed from the notations, since all variables are for the current time slot. In the second step, two sets are defined, M initially includes all the links and K initially includes all the channels. After channel k ∗ is assigned to a node of link m∗ , channel k ∗ is removed from K, and link m∗ is removed from M. The basic idea for the channel assignment is to find the combination of node and channel that achieves the highest rate, and then assign that channel to the node. This process is repeated until the channel set is empty. After the selected nodes transmit, buffers at the relay node are updated accordingly. Mathematically, if an S-node or Dnode of link m transmits at channel k, we have bsr,m = bsr,m + C˜s,m,k or bdr,m = bdr,m + C˜d,m,k . If the R-node of link m transmits at channel k, then the buffers are updated as bsr,m = bsr,m − C˜r,m,k and bdr,m = bdr,m − C˜r,m,k , and

1506

Algorithm 2 CNSCA Scheme 1: {Step 1: rate calculation.} 2: for m = 1 : M do 3: for k = 1 : K do sr 4: C˜s,m,k = min(Um,k , Bmax − bsr,m ) dr ˜ 5: Cd,m,k = min(Um,k , Bmax − bdr,m ) rs rd 6: C˜r,m,k = min(Um,k , Um,k , bsr,m , bdr,m ) 7: end for 8: end for 9: {Step 2: node selection and channel assignments.} 10: Define M = {1, 2, . . . , M } and K = {1, 2, . . . , K}. 11: while K 6= ∅ do 12: Find (ns , ks ) = arg maxm∈M,k∈K C˜s,m,k 13: Find (nd , kd ) = arg maxm∈M,k∈K C˜d,m,k 14: Find (nr , kr ) = arg maxm∈M,k∈K C˜r,m,k 15: if C˜s,ns ,ks = max{C˜s,ns ,ks , C˜d,nd ,kd , C˜r,nr ,kr } then 16: m∗ = ns and k ∗ = ks 17: else 18: if C˜d,nd ,kd = max{C˜s,ns ,ks , C˜d,nd ,kd , C˜r,nr ,kr } then 19: m∗ = md and k ∗ = kd 20: else 21: m∗ = mr and k ∗ = kr 22: end if 23: end if 24: Update K = K \ {k ∗ }, and M = M \ {m∗ } 25: end while

the total amount of transmitted data for the link is updated as Cm = Cm + C˜r,m,k . B. SNSCA Scheme The scheme is shown in Algorithm 3. It also includes two steps. The first step (Lines 2-21) selects one node from each link based on the buffer occupancy at the relay node, and the second step assigns channels to the selected nodes based on possible transmission rates of the nodes at different channels. In the first step, a set At is defined, which should include one node from each link at the end of step 1. A simple criterion is used for the node selection. For a given link, if both buffers at the R-node have data, then the R-node transmits; otherwise, the S-node (or D-node) transmits if the buffer for storing data from the S-node (or D-node) is empty. The transmission rates of the selected nodes at different channels in set At are also calculated. Variable x∗m is used to record which node for link m is selected. The second phase is to assign channels to nodes in At so that the maximum rate can be achieved. This becomes a standard matching problem in the bipartite graph as shown in Fig. 2. In a weighted bipartite graph, each edge has an associated value. A maximum weighted bipartite matching is defined as a matching, where the sum of the values of the edges in the matching has a maximal value. Finding

Fig. 2.

Assigning two channels to three nodes

such a matching is known as the assignment problem. In this work, the weight of each edge is the corresponding instantaneous rate for a pair of channel and node of link m (C˜m,k ). Different bipartite algorithms can be used for this assignment problem, such as the Hungarian algorithm [15] and its improvements [16]-[17]. Algorithm 3 SNSCA Scheme 1: {Step 1: node selection.} 2: Initialize At = ∅. 3: for m = 1 : M do 4: if bsr,m > 0 and bdr,m > 0 then 5: x∗m = r, and At = At ∪ {rm }. 6: for k = 1 : K do rs rd 7: Find C˜m,k = min(Um,k , Um,k , bsr,m , bdr,m ). 8: end for 9: if bsr,m = 0 then 10: x∗m = s, and At = At ∪ {sm }. 11: for k = 1 : K do sr 12: Find C˜m,k = min(Um,k , Bmax − bsr,m ). 13: end for 14: else 15: x∗m = d, and At = At ∪ {dm }. 16: for k = 1 : K do dr 17: Find C˜m,k = min(Um,k , Bmax − bdr,m ). 18: end for 19: end if 20: end if 21: end for 22: {Step 2: channel assignments} 23: Use a bipartite assignment algorithm.

Similar to CNSCA scheme, after the selected nodes transmit, buffers at the relay node are updated accordingly. Mathematically, if an S-node or D-node of link m transmits at channel k, we have bsr,m = bsr,m + C˜m,k or bdr,m = bdr,m + C˜m,k . If the R-node of link m transmit at channel k, then the buffers are updated as bsr,m = bsr,m − C˜m,k and bdr,m = bdr,m − C˜m,k , and the total amount of transmitted data for the link is updated as Cm = Cm + C˜m,k .

1507

Each scheme includes two steps. When M and K are large, the complexity mainly comes from step 2. For CNSCA scheme, the second step includes K iterations. In the first iteration, the algorithm is to find three arg max pairs, each from M K values. Assume the complexity for performing arg max is proportional to square of the number of the values. The complexity of the second step is O(M 2 K 2 ) + O((M − 1)2 (K − 1)2 ) + . . . + O((M − K + 1)2 ) = O(M 2 K 3 ). SNSCA Scheme allows to use existing assignment problems with lower complexity. For example, the improved Hungarian algorithm [16]-[17] has complexity of O(V 2 log(V ) + V E), where V = M + K is the total number of vertices and E = M K is the total number of edges in the graph. That is, the complexity is O((M +K)2 log(M +K)+(M +K)(M K)).

more links share the same amount of channel resource. This is shown in Fig. 5. Both Figs. 4 and 5 show that CNSCA scheme achieves close-to-optimum throughput performance. Fig. 6 shows throughput performance as number of channels changes, where M = 11. In this figure, the frequency of channels changes from 800 MHz to 1.6 GHz. As more channels are available, the throughput increases almost linearly. NC throughput versus w1 6 Sub Optimum,Tw=5

V. N UMERICAL RESULTS

4

3

2

1

0

0

50

100

150

w1 (m)

Fig. 3.

Throughput versus w1

NC throughput versus M 1.3 1.2 Sub Optimum,Tw=5

1.1 Total throughput (bits/sec/Hz)

In this section we demonstrate the throughput performance of the proposed schemes. The same topology as in Fig. 1 is used. The distance between each end node to the relay node is w1 which is shown in Fig. 1. The link gain between an end node and the relay at channel k and time slot t includes both distance-based path loss and log-normally distributed shadow˜ xy = d−α × 10−Xt × (c0 /4πfk )2 , ing, and is given by G xm ,ym m,k,t where Xt is Gaussian distributed with zero mean and standard deviation of 1 db, and c0 is the speed of light. Also, Pn denotes the background noise power. The default values of the parameters are α = 3, M = 3, K = 2, T = 400, w1 = 100 m, f1 = 900 MHz, f2 = 1.8 GHz, Pn = 10−10 W, Bmax = 100, and Pmax = 0.1 W. The window-based optimum method can be considered as an upper bound for the heuristic schemes, since it makes the scheduling decisions based on knowing a period of future link gains, and jointly optimizes the scheduling during this period. Fig. 3 shows the transmission throughput for different values of w1 . It shows that the throughput decreases with w1 due to increased path loss, which decreases the link gains, and further reduces the instantaneous transmission rates. The figure shows that CNSCA scheme can achieve throughput performance very close to the window-based optimum solution, which SNSCA scheme achieves lower throughput in general. On the other hand, when w1 is sufficiently large, both schemes achieve the same throughput performance as the window-based optimum solution. In this case, large path loss prevents most nodes from transmitting at high rate, and the effect of intelligent scheduling on the throughput becomes not obvious. Fig. 4 shows throughput performance of the heuristic schemes as number of links changes. With more links, the opportunity of having links with high link gains increases, which improves the throughput. The throughput increase becomes saturated as the number of links is beyond a certain limit, because the total throughput is limited by the total number of available channels. Meanwhile, we notice that average throughput per link decreases with number of links, since

CNSCA Scheme SNSCA Scheme

5 Total throughput (bits/sec/Hz)

C. Complexity analysis

CNSCA Scheme SNSCA Scheme

1 0.9 0.8 0.7 0.6 0.5 0.4

3

4

5

Fig. 4.

6 Number of links (M)

7

8

Throughput versus M

VI. C ONCLUSIONS We have studied transmission time scheduling and frequency channel allocations for a multi-channel network with bidirectional links and using network coding, and proposed

1508

9

algorithms with lower complexity at a price of reduced throughput. The current work does not allow frequency reuse, which will be considered in our future work for further improving the throughput performance.

NC throughput per link versus M 0.3 Sub Optimum,Tw=5

Throughput per link (bits/sec/(Hz*link))

CNSCA Scheme SNSCA Scheme 0.25

R EFERENCES 0.2

0.15

0.1

0.05

3

4

Fig. 5.

5

6 Number of links (M)

7

8

9

Throughput per link versus M NC throughput versus K

Total throughput (bits/sec/Hz)

10 9

Sub Optimum,Tw=4

8

CNSCA Scheme SNSCA Scheme

7 6 5 4 3 2 1 0

2

3

4

Fig. 6.

5 6 7 Number of frequency channels

8

9

Throughput versus K

two scheduling schemes (CNSCA and SNSCA). The CNSCA scheme achieves close-to-optimum throughput performance; while the SNSCA scheme allows to use existing assignment

[1] R. Ahlswede, N. Cai, S.-Y. Li, and R. Yeung, “Network information flow,” IEEE Transactions on Information Theory, vol. 46, no. 4, pp. 1204 1216, July 2000. [2] Y. Wu, P. A. Chou, and S.-Y. Kung, “Information exchange in wireless networks with network coding and physical-layer broadcast,” in Proc. CISS, 2005. [3] S. Katti, H. Rahul, W. Hu, D. Katabi, M. Medard, and J. Crowcroft, “Xors in the air: practical wireless network coding,” IEEE/ACM Transactions on Networking, vol. 16, no. 3, pp. 497 510, June 2008. [4] S. chachulski, M. Jennings, S. Katti, and D. Katabi, “Trading structure for randomness in wireless opportunistic routing,” in Proc. ACM SIGCOMM, Aug. 2007. [5] S. Katti and D. Katabi, “MIXIT: the network meets the real channel,” in Proc. ACM HotNets, Nov. 2007. [6] Y. E. Sagduyu and A. Ephremides, “Joint scheduling and wireless network coding,” IEEE/ACM Transactions on Networking, vol. 16, no. 3, pp. 497 510, June 2005. [7] J. Jin and B. Li, “Cooperative multicast scheduling with random network coding in WiMAX”, in Proc. 17th International Workshop on Quality of Service Digital (IWQoS), 2009. [8] S.-L. Gong, B.-G. Kim, and J.-W. Lee, “Opportunistic scheduling and adaptive modulation in wireless networks with network coding,” in Proc. IEEE Vehicular Technology Conference Spring 2009 (VTC Spring), 2009. [9] X. Zhang and H. Su, “Network-coding-based scheduling and routing schemes for service-oriented wireless mesh networks”, IEEE Wireless Communications, vol. 16, no. 4, pp. 40 - 46, 2009. [10] Kyasanur, P., Jungmin So, Chereddi, C., and Vaidya, N.H.; , “Multichannel mesh networks: challenges and protocols” IEEE Wireless Communications , vol.13, no.2, pp.30-36, April 2006. [11] Li, Y., Mao, S., Agrawal, P., Midkiff, S.F. , “Low-complexity ChannelAware Scheduling for multichannel wireless local area networks,” IEEE International Conference on Automation Science and Engineering, CASE 2008 , pp.133-138, 23-26 Aug 2008. [12] Xinyu Zhang and Baochun Li. “On the Benefits of Network Coding in Multi-Channel Wireless Networks” in the Proceedings of the 5th IEEE Communications Society Conference on Sensor, Mesh and Ad Hoc Communications and Networks (SECON 2008), San Francisco, California, June, 16-20, 2008. [13] Seok-Chul Kwon, Hendessi, F., Fekri, F. and Stuber, G.L. “A Novel Collaboration Scheme for Multi-Channel/Interface Network Coding” IEEE Transactions on Wireless Communications, January 2011. [14] R.Y. Kim, J. Jin, and B. Li; , “Drizzle: Cooperative Symbol-Level Network Coding in Multichannel Wireless Networks,” IEEE Transactions on Vehicular Technology, vol.59, no.3, pp.1415-1432, March 2010. [15] H. W. Kuhn, “The Hungarian Method for the Assignment Problem”, Naval Research Logistic Quarterly 2:8397, 1955. [16] R. Burkard, M. Dell’Amico, and S. Martello, “Assignment Problems”, Society for Industrial and Applied Mathematics, 2009. [17] Ran Duan and Hsin-Hao Su, “A Scaling Algorithm for Maximum Weight Matching in Bipartite Graphs,” ACM-SIAM Symposium on Discrete Algorithms (SODA), 2012.

1509