Skip to main content
Erschienen in: EURASIP Journal on Wireless Communications and Networking 1/2010

Open Access 01.12.2010 | Research Article

An Optimal Adaptive Network Coding Scheme for Minimizing Decoding Delay in Broadcast Erasure Channels

verfasst von: Parastoo Sadeghi, Ramtin Shams, Danail Traskov

Erschienen in: EURASIP Journal on Wireless Communications and Networking | Ausgabe 1/2010

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

We are concerned with designing feedback-based adaptive network coding schemes with the aim of minimizing decoding delay in each transmission in packet-based erasure networks. We study systems where each packet brings new information to the destination regardless of its order and require the packets to be instantaneously decodable. We first formulate the decoding delay minimization problem as an integer linear program and then propose efficient algorithms for finding its optimal solution(s). We show that our problem formulation is applicable to memoryless erasures as well as Gilbert-Elliott erasures with memory. We then propose a number of heuristic algorithms with worst case linear execution complexity that can be used when an optimal solution cannot be found in a reasonable time. We verify the delay and speed performance of our techniques through numerical analysis. This analysis reveals that by taking channel memory into account in network coding decisions, one can considerably reduce decoding delays.

1. Introduction

In this paper, we are concerned with designing feedback-based adaptive network coding schemes that can deliver high throughputs and low decoding delays in packet erasure networks. We first present some background on existing work and emphasize that the notion of delay and the choice of a suitable network coding strategy are highly entangled with the underlying application.

1.1. Motivation and Background

Consider a broadcast packet-based transmission from one source to many destinations where erasures can occur in the links between the source and destinations. Two main throughput optimal schemes to deal with such erasures are fountain codes [1] and random linear network codes (RLNC) [2]. In the latter scheme, for example, the source transmits random linear mixtures of all the packets to be delivered. It is well-known that if the random coefficients are chosen from a finite field with a sufficiently large size, each coded packet will almost surely become linearly independent of all previously received coded packets and hence, innovative for every destination [2]. The scheme is therefore almost surely throughput optimal. Another benefit of fountain codes and RLNC is that they do not require feedback about erasures in individual links in order to operate.
However in these schemes, throughput optimality comes at the cost of large decoding delays, as the receiver needs, in general, to collect all coded packets in a block before being able to decode. Despite this drawback, there are applications which are insensitive to such delays. Consider, for example, a simple software update (file download). The update only starts to work when the whole file is downloaded. In this case, the main desired properties are throughput optimality and the mean completion time and there is often little or no incentive to aim for partial "premature" decoding. The completion time performance of RLNC for rateless file download applications has been considered in [3]. In [3], the mean completion time of RLNC is shown to be much shorter than scheduling. Reference [4] considers time division duplex systems with large round-trip link latencies and proposes solutions for the number of coded packet transmissions before waiting for acknowledgement on the received number of degrees of freedom.
There are applications where partial decoding can crucially influence the end user's experience. Consider, for example, broadcasting a continuous stream of video or audio in live or playback modes. Even though fountain codes and RLNC are throughput optimal, having to wait for the entire coded block to arrive can result in unacceptable delays in the application layer. But, we also note that partial decoding of packets out of their natural temporal order does not necessarily translate into low delivery delays desired by the application layer. The authors in [5, 6] have proposed feedback-based throughput-optimal schemes to deal with the transmitter queue size, as well as decoding and delivery delays at the destinations. When the traffic load approaches system capacity, their methods are shown to behave "gracefully" and meet the delay performance benchmark of single-receiver automatic repeat request (ARQ) schemes.
There is yet another set of applications for which partial decoding is beneficial and can result in lower delays irrespective of the order in which packets are being decoded. Consider, for example, a wireless sensor network in which there is a fusion/command center together with numerous sensors/agents scattered in a region. Each sensor/agent has to execute or process one or more complex commands. Each command and its associated data is dispatched from the center in a packet. For coordination purposes, each agent needs to know its own and other agents' commands. Therefore, commands are broadcast to everyone in the network. In this application, in-order processing/execution of commands may not be a real issue. However, fast command execution may be crucial and therefore, it is imperative that innovative packets arrive and get decoded at the destinations as quickly as possible regardless of their order. As another example, consider emergency operations in a large geographical region where emergency-related updates of the map of the area need to be dispatched to all emergency crew members. In such situations too, updates of different parts of the map can be decoded in any order and still be useful for handling the emergency.
Finally, some applications may be designed in such a way that they are insensitive to in-order delivery. This can be particularly useful where the transport medium is unreliable. In such a case, it may be natural to use multiple-description source coding techniques [7], in which every decoded packet brings new information to the destination, irrespective of its order. In light of the emergency applications described above, one can perform multiple-description coding for map updates, so that updates of different subregions can be divided into multiple packets and each packet can provide an improved view of one region in a truly order-insensitive fashion.

1.2. Contributions

In this paper, we are inspired by the last set of order-insensitive packet delivery applications and hence, focus on designing network coding schemes that, with the help of feedback, can deliver innovative packets in any order to the destination and also guarantee fast decoding of such packets. As a first step towards such goal, we limit ourselves to broadcast erasure channels, but emphasize that the ideas can be extended to other more complicated scenarios. We also consider the class of instantaneously decodable network coding schemes, in which each coded transmission contains at most one new source packet that a receiver has not decoded yet. The rationale is that in an order-insensitive application, any innovative packet that cannot be decoded immediately incurs a unit of delay. Obviously, one other source of delay is when a coded packet does not contain any new information for a receiver and hence, is not innovative. A similar definition of the decoding delay was first considered in [8], where the authors presented a number of heuristic algorithms to reduce order-insensitive decoding delay. In this context, our main contributions are the following.
(i)
In Section 1.1, we have motivated the problem in light of possible applications in sensor and ad hoc networks. To the best of our knowledge, such application-dependent classification of network coding delays did not previously exist in the literature.
 
(ii)
In Section 3.1, we present a systematic framework for the minimization of decoding delay in each transmission subject to the instantaneous decodability constraint. We show that this problem can be cast into a special integer linear programming (ILP) framework, where instantaneously decodable packet transmission corresponds to a set packing problem [9] on an appropriately defined set structure.
 
(iii)
In Section 3.2, we provide a customized and efficient method for finding the optimal solution to the set packing problem (which is in general NP-hard). Our numerical results in Section 6 show that for reasonably sized number of receivers, the optimum solution(s) can be found in a time that is linearly proportional to the total number of packets.
 
(iv)
In Section 4, we discuss decoding delay minimization for an important class of erasure channels with memory, which can occur in wireless communication systems due to deep fades and shadowing [10]. We show that the general set packing framework in Section 3 can be easily modified to account for the erasure memory. Our results in Section 6 reveal that by adapting network coding decisions based on channel erasure conditions, significant improvements in delay are possible compared to when decisions are taken irrespective of channel states.
 
(v)
In Section 5, we provide a number of heuristic variations of the optimal search for finding (possibly suboptimal) solutions faster, if needed. Our results in Section 6 show that such heuristics work very well and often provide solutions that are very close to the search algorithm. Moreover, they improve on the proposed random opportunistic method in [8].
 

2. Network Model

Consider a single source that wants to broadcast some data to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq1_HTML.gif receivers, denoted by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq2_HTML.gif for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq3_HTML.gif . The data to be broadcast is divided into https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq4_HTML.gif packets, denoted by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq5_HTML.gif for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq6_HTML.gif . Time is slotted and the source can transmit one (possibly coded) packet per slot.
A packet erasure link https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq7_HTML.gif connects the source to each individual receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq8_HTML.gif . Erasures in different links can be independent or correlated with each other. Different erasures in a single link can be independent (memoryless) or correlated with each other (with memory) over time.
For memoryless erasures, an erasure in link https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq9_HTML.gif can occur with a probability of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq10_HTML.gif in each packet transmission round independent of previous erasures.
For correlated erasures, we consider the well-known Gilbert-Elliott channel (GEC) [11], which is a Markov model with a good and a bad state. If the channel is in the good state, packets can be successfully received, while in the bad state packets are lost (e.g., due to deep fades or shadowing in the channel). The probability of moving from the good state https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq11_HTML.gif to the bad state https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq12_HTML.gif in link https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq13_HTML.gif is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq14_HTML.gif and the probability of moving from the bad state https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq15_HTML.gif to the good state https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq16_HTML.gif is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq17_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq18_HTML.gif is the time slot index. Steady-state probabilities are given by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq19_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq20_HTML.gif . Following [12], we define the memory content of the GEC in link https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq21_HTML.gif as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq22_HTML.gif , which signifies the persistence of the channel in remaining in the same state. A small https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq23_HTML.gif means a channel with little memory and a large https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq24_HTML.gif means a channel with large memory.
Before transmission of the next packet, the source collects error-free and delay-free 1-bit feedback from each destination indicating if the packet was successfully received or not. A successful reception generates an acknowledgement (ACK) and an erasure generates a negative acknowledgement (NAK). This feedback is used for optimizing network coding decisions at the source for the next packet transmission round, as described in future sections.
In this work, we consider linear network coding [2] in which coded packets are formed by taking linear combinations of the original source packets. Packets are vectors of fixed size over a finite field https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq25_HTML.gif . The coefficient vector used for linear network coding is sent in the packet header so that each destination can at some point recover the original packets. Since in this paper we are only dealing with instantaneously decodable packet transmission, it suffices to consider linear network coding over https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq26_HTML.gif . That is, coded packets are formed using binary XOR of the original source packets. Thus, network coding is performed in a similar manner as in [13].
Definition 1.
A transmitted packet is instantaneously decodable for receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq27_HTML.gif if it is a linear combination of source packets containing at most one source packet that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq28_HTML.gif has not decoded yet. A scheme is called instantaneously decodable if all transmissions have this property for all receivers.
Definition 2.
At the end of transmission round https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq29_HTML.gif in an instantaneously decodable scheme, the knowledge of receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq30_HTML.gif is the set consisting of all packets that the receiver has decoded so far. The receiver can therefore, compute any linear combination of the packets that it has decoded for decoding future packets.
Definition 3.
In an instantaneously decodable scheme, a coded packet is called non-innovative for receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq31_HTML.gif if it only contains source packets that the receiver has decoded so far. Otherwise, the packet is innovative.
Definition 4.
A scheme is called rate or throughput optimal if all transmissions are innovative for the entire set of receivers.
Definition 5.
In time slot https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq32_HTML.gif , receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq33_HTML.gif experiences one unit of delay if it successfully receives a packet that is either non-innovative or not instantaneously decodable. If we impose instantaneous decodability on the scheme, a delay can only occur if the received packet is not innovative.
Note that in the last definition, we do not count channel inflicted delays due to erasures. The delay only counts "algorithmic" overhead delays when we are not able to provide innovative and instantaneously decodable packets to a receiver.
As an example, if the knowledge of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq34_HTML.gif is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq35_HTML.gif , receiving https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq36_HTML.gif will cause https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq37_HTML.gif to experience one unit of delay, whereas https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq38_HTML.gif is innovative and instantaneously decodable, hence does not incur any delay.
We note that a packet that is not transmitted yet or transmitted but not received by any receiver can be transmitted in an uncoded manner at any transmission slot without incurring any algorithmic delay. In fact, this is how the transmission starts: by sending https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq39_HTML.gif uncoded, for example.
A zero-delay scheme would require all packets to be both innovative and instantaneously decodable to all receivers. Thus zero-delay implies rate optimality, but not vice versa. As the authors show in [8, Theorem  1] for the case of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq40_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq41_HTML.gif receivers, there exists an offline algorithm that is both rate optimal and delay-free. For https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq42_HTML.gif the authors prove that a zero-delay algorithm does not exist. By offline we mean that the algorithm needs to know future realizations of erasures in broadcast links. In contrast, an online algorithm decides on what to send in the next time slot based on the information received in the past and in the current slot. In this paper, we focus on designing online algorithms.

3. Optimization Framework

3.1. Problem Formulation Based on Integer Linear Programming

Instantaneous decodability can be naturally cast into the framework of integer optimization. To this end, let us fix the packet transmission round to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq43_HTML.gif and consider the knowledge of all receivers, which is also available at the source because of the feedback. The state of the entire system at time index https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq44_HTML.gif (in terms of packets that are still needed by the receivers) can be described by an https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq45_HTML.gif binary receiver-packet incidence matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq46_HTML.gif with elements
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ1_HTML.gif
(1)
Columns of matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq47_HTML.gif are denoted by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq48_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq49_HTML.gif . We assume that packets received by all receivers are removed from the receiver-packet incidence matrix. Hence, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq50_HTML.gif does not contain any all-zero columns.
Example 1.
Consider https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq51_HTML.gif receivers and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq52_HTML.gif packets. Before the transmission begins, the receiver-packet incidence matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq53_HTML.gif is an all-one https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq54_HTML.gif matrix. If we send packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq55_HTML.gif in the first transmission round https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq56_HTML.gif and assuming that only receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq57_HTML.gif successfully receives it, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq58_HTML.gif will become
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ2_HTML.gif
(2)
If we send packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq59_HTML.gif in the next transmission round https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq60_HTML.gif and assuming that only receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq61_HTML.gif successfully receives it, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq62_HTML.gif will then be
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ3_HTML.gif
(3)
The condition of instantaneous decodability means that at any transmission round we cannot choose more than one packet which is still unknown to a receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq63_HTML.gif . In the example above, at https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq64_HTML.gif , we cannot send https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq65_HTML.gif because it contains more than one packet unknown to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq66_HTML.gif .
Let https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq67_HTML.gif represent a binary decision vector of length https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq68_HTML.gif that determines which packets are being coded together. The transmitted packet consists of the binary XOR of the source packets for which https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq69_HTML.gif . More formally, we can define the instantaneous decodability constraint for all receivers as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq70_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq71_HTML.gif represents an all-one vector of length https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq72_HTML.gif and the inequality is examined on an element-by-element basis (Note that although https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq73_HTML.gif is a binary or Boolean vector, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq74_HTML.gif is calculated in real domain. Hence, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq75_HTML.gif is in fact a pseudo-Boolean constraint.). This condition ensures that a transmitted coded packet contains at most one unknown source packet for each receiver. A vector https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq76_HTML.gif is called infeasible if it does not satisfy the instantaneous decodability condition. In other words, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq77_HTML.gif is called infeasible if and only if there exists at least one https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq78_HTML.gif for which https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq79_HTML.gif in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq80_HTML.gif . A vector https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq81_HTML.gif is called a solution if and only if it satisfies https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq82_HTML.gif . In the rest of this paper, " https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq83_HTML.gif " and " https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq84_HTML.gif is a solution" are used interchangeably.
Now consider sets https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq85_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq86_HTML.gif is the nonempty set of receivers that still need source packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq87_HTML.gif . Note that these sets can be easily determined by looking at the columns of matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq88_HTML.gif . The "importance" of packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq89_HTML.gif can be, for example, taken to be the size of set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq90_HTML.gif , which is the number of receivers that still need https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq91_HTML.gif .
We now formally describe the optimization procedure that should be performed at the transmitter. Maximizing the number of receivers for which a transmission is innovative, subject to the constraint of instantaneous decodability, can be posed as the following (binary-valued) integer linear program (ILP):
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ4_HTML.gif
(4)
where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq92_HTML.gif . This is a standard problem in combinatorial optimization, usually called set packing [9]. Here the universe is the set of all receivers and we need to find disjoint (due to instantaneous decodability condition) subsets https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq93_HTML.gif with the largest total size. In the (most desirable) case when equality holds in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq94_HTML.gif for every receiver, we also speak of a set partition. This is equivalent to a zero-delay transmission.
In Section 4, we will consider other measures of packet importance and discuss the role of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq95_HTML.gif in tailoring the optimization problem according to the application requirements or channel conditions, such as memory in erasure links.
We assume that elements of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq96_HTML.gif , which signify packet importance, are all positive. If one has already found a solution such as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq97_HTML.gif with https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq98_HTML.gif , then changing this solution into https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq99_HTML.gif by changing https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq100_HTML.gif into https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq101_HTML.gif can only result in a https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq102_HTML.gif strictly smaller than https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq103_HTML.gif . We say that given solution https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq104_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq105_HTML.gif is clearly suboptimal and hence, can be discarded in an algorithm that searches for the optimal solution(s).

3.2. Efficient Search Methods for Finding the Optimal Solution of (4)

It is well known that the set packing problem is NP-hard [9]. Here, we present an efficient ILP solver designed to take advantage of the specific problem structure. Later, we will see that for many practical situations of interest, our method performs well empirically. Based on this framework, we will also present some heuristics in Section 5 to deal with more complicated and time-consuming problem instances.
We begin presenting our method by first defining constrained and unconstrained variables.
Definition 6.
Two binary-valued variables are said to be constrained if they cannot be simultaneously https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq106_HTML.gif in a solution. Or formally, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq107_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq108_HTML.gif are constrained if for any https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq109_HTML.gif satisfying https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq110_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq111_HTML.gif (Again, note that the addition of variables takes place in real domain.). We also say that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq112_HTML.gif is constrained to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq113_HTML.gif and vice versa. It can be proven that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq114_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq115_HTML.gif are constrained if and only if there exits at least one row index https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq116_HTML.gif in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq117_HTML.gif for which https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq118_HTML.gif .
Definition 7.
The set of all variables constrained to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq119_HTML.gif is called the constrained set of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq120_HTML.gif and is denoted by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq121_HTML.gif . That is,
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ5_HTML.gif
(5)
If https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq122_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq123_HTML.gif are not constrained to each other ( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq124_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq125_HTML.gif ), then columns https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq126_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq127_HTML.gif in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq128_HTML.gif cannot have nonzero elements in the same row position. That is, for each row index https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq129_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq130_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq131_HTML.gif .
Definition 8.
A variable https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq132_HTML.gif is said to be unconstrained if https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq133_HTML.gif . The set of all unconstrained variables is denoted by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq134_HTML.gif and is referred to as the unconstrained set.
If https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq135_HTML.gif is an unconstrained variable, then for each row index https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq136_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq137_HTML.gif for all https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq138_HTML.gif (otherwise, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq139_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq140_HTML.gif would become constrained).
Example 2.
Consider the following receiver-packet incidence matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq141_HTML.gif
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ6_HTML.gif
(6)
One can easily verify the relations defined above. For example, variables https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq142_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq143_HTML.gif are constrained because for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq144_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq145_HTML.gif . Variables https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq146_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq147_HTML.gif are not constrained to each other because columns https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq148_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq149_HTML.gif do not have a nonzero element in the same row position. Variable https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq150_HTML.gif is unconstrained because no other column has a nonzero element in rows 6 or 7. In summary, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq151_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq152_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq153_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq154_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq155_HTML.gif .
To design an efficient search algorithm, one needs to efficiently prune the parameter space and reduce the problem size. We make the following observations for pruning of the parameter space.
(1)
Unconstrained variables must be set to 1. In other words, setting those variables to 0 does not contribute to the optimal solution (note that the elements in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq156_HTML.gif are positive). In the above example, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq157_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq158_HTML.gif must be set to 1 because no other variable is constrained to them (we will make this statement formal in the optimality proof of the algorithm in the appendix).
 
(2)
If a constrained variable is set to 1 all members of its constrained set must be set to 0. In the above example, setting https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq159_HTML.gif forces https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq160_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq161_HTML.gif to zero.
 
(3)
At a given step, the parameter space can be pruned most by resolving the variable with the largest constrained set.
 
Application of the third observation, in a search algorithm results in greedy pruning of the parameter space. We note that greedy pruning is only optimal for a given step of the algorithm and is not guaranteed to result in the optimal reduction of the overall complexity of the search.
We now make a final remark before presenting the search algorithm. In particular, we have observed that finding constrained sets for each variable in each step of the algorithm can be somewhat time consuming. A very effective alternative is to first sort matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq162_HTML.gif , column-wise, in descending order of the number of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq163_HTML.gif 's in each column. Setting the "most important" head variable https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq164_HTML.gif (with the highest https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq165_HTML.gif ) to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq166_HTML.gif is likely to result in the largest constrained set (because it potentially overlaps with many other variables) and hence, many variables will be resolved in the next recursion. We will refer to the approach based on finding the largest constrained set as the greedy pruning strategy and to the alterative approach as the sorted pruning search strategy.
The greedy pruning search strategy is shown in Figure 1, which with appropriate modifications can also represent the sorted pruning variation.Let https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq167_HTML.gif denote the problem of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq168_HTML.gif whose input is an https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq169_HTML.gif receiver-packet incidence matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq170_HTML.gif and whose output is a set of solutions of the form https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq171_HTML.gif of length https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq172_HTML.gif which satisfy the instantaneous decodability condition https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq173_HTML.gif . The algorithms can be described as shown in Algorithm 1.
Algorithm 1: Recursive search for the optimal solution(s) of (4).
( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq174_HTML.gif ) Start with the original problem of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq175_HTML.gif .
( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq176_HTML.gif ) if sorted pruning strategy is desired then
( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq177_HTML.gif )  Rearrange the variables in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq178_HTML.gif in descending order of packet importance (number of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq179_HTML.gif 's in each column).
( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq180_HTML.gif ) end if
(5)
Solve https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq181_HTML.gif :
 
(6)
if https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq182_HTML.gif   then
 
(7)
 Return https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq183_HTML.gif (since the variable is not constrained).
 
(8)
else
 
(9)
   if greedy pruning strategy is desired then
 
(10)
  Determine the constrained set for all variables https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq184_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq185_HTML.gif .
 
(11)
  Denote the index of the variable with the largest constrained set by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq186_HTML.gif and the cardinality of its constrained
 
    set by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq187_HTML.gif .
(12)
 else
 
(13)  Determine the constrained set for the head variable https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq188_HTML.gif with cardinality https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq189_HTML.gif and also the set of unconstrained
     variables (Note that we have overused index 1 to refer to the head variable in the reordered matrix at each
     recursion.). Set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq190_HTML.gif .
(14)
 end if
 
(15)  Denote the cardinality of the unconstrained set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq191_HTML.gif by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq192_HTML.gif .
(16)  Set all the unconstrained variables to 1.
(17)  Set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq193_HTML.gif and the variables in its corresponding constrained set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq194_HTML.gif to 0.
(18)  Reduce the problem by removing resolved variables. Reduce https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq195_HTML.gif accordingly.
(19) Solve https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq196_HTML.gif (Note that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq197_HTML.gif unconstrained variables are set to one, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq198_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq199_HTML.gif variables constrained by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq200_HTML.gif
    are set to zero, hence a total of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq201_HTML.gif variables are resolved.).
(20) Combine the solution with previously resolved variables. Save solution.
(21)  Set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq202_HTML.gif .
(22) Reduce the problem by removing resolved variables. Reduce https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq203_HTML.gif accordingly.
(23) Solve https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq204_HTML.gif (Note that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq205_HTML.gif unconstrained variables are set to one and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq206_HTML.gif , hence a total of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq207_HTML.gif variables
   are resolved.).
(24) Combine the solution with previously resolved variables. Return solution(s).
(25)  end if  
In the appendix, we prove by structural induction that Algorithm 1 is guaranteed to return all optimal solutions of (4). However, we note that not every solution returned by Algorithm 1 is optimal. The nonoptimal solutions can be easily discarded by testing against the objective function (4) at the end of the algorithm. We also note that in Algorithm 1, we can simply remove those packets received by every receiver from the problem. If there are https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq210_HTML.gif such variables, we can start step https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq211_HTML.gif above from https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq212_HTML.gif instead of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq213_HTML.gif . The Matlab code for both the greedy and sorted pruning algorithms can be found at http://​users.​rsise.​anu.​edu.​au/​~parastoo/​netcod/​.
We conclude this section by a brief note on the computational complexity of Algorithm 1. Let us denote the number of recursions required to solve the problem of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq214_HTML.gif by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq215_HTML.gif . According to Algorithm 1, this problem is always broken into two smaller problems of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq216_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq217_HTML.gif . Therefore, one can find the number of recursions required to solve https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq218_HTML.gif by recursively computing https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq219_HTML.gif . The recursion stops when one reaches a problem of size 1 (only one packet to transmit) where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq220_HTML.gif .

4. Adaptive Network Coding in the Presence of Erasure Memory

Here, we present a generalization of the set packing approach for coded transmission in erasure channels with memory. The idea is that the importance of a packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq221_HTML.gif is no longer determined by how many receivers need https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq222_HTML.gif , but by the probability that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq223_HTML.gif will be successfully decoded by the receivers that need it. In computing this probability, one can use the fact that successive channel erasures in a link are usually correlated with each other and hence, their history can be used to make predictions about whether a receiver is going to experience erasure or not in the next time slot. To present the idea, we focus on the GEC model for representing channel erasures. More general memory models for erasure can also be incorporated into our framework.
We define the reward https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq224_HTML.gif of sending a packet to receiver https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq225_HTML.gif as the probability of successful reception by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq226_HTML.gif in the next time slot: https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq227_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq228_HTML.gif is the state of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq229_HTML.gif in the previous transmission round (Statements like "state of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq230_HTML.gif " should be interpreted as the state of the physical link https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq231_HTML.gif connecting the source to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq232_HTML.gif .). The total reward or importance of sending packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq233_HTML.gif is then
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ7_HTML.gif
(7)
The above weight vector gives higher priority to a packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq234_HTML.gif for which there is a higher chance of successful reception, because the receivers that need https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq235_HTML.gif are more likely to be in good state in the next time slot. With this newly defined weight vector, one can try to solve the optimization problem given in (4) under the same instantaneous decodability condition.
Remark 1.
We conclude this section by emphasizing that the optimization framework in (4) is very flexible in accommodating other possibilities for the weight vector https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq236_HTML.gif , which can be appropriately determined based on the application. For example, instead of allocating the same weight to a packet needed by a subset of receivers, one can allocate different weights to the same packet (looking column-wise at https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq237_HTML.gif ) depending on the priorities or demands of each user. In the map update example described in the Introduction, different emergency units can adaptively flag to the base station different parts of the map as more or less important depending on their distance from a certain disaster zone. The task of the base station is then to send a packet combination that satisfies the largest total priority. One can also combine user-dependent packet weights with the channel state prediction outcomes in a GEC. One possibility is to multiply the probabilities https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq238_HTML.gif by the receiver priority. It could then turn out that although a receiver is more likely to be in erasure in the next transmission round, it may be served because of a high priority request.

5. Heuristic Search Algorithms

In Section 3.2, we proposed efficient search algorithms for finding the optimal solution(s) of (4). However, there may be situations where one would like to obtain a (possibly suboptimal) solution much more quickly. This may be the case, for example, when the total number of packets to be transmitted is very large. Therefore, designing efficient heuristic algorithms to complement the optimal search is important. In this section, we propose a number of such heuristics.

5.1. Heuristic 1—Weight Sorted Heuristic Algorithm

The idea behind this recursive algorithm is very simple. As in Algorithm 1, we start with the original problem of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq239_HTML.gif . We then rearrange the columns of the matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq240_HTML.gif in descending order of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq241_HTML.gif (starting from the packet with the highest weight). Note that this is different from the sorted pruning version of the Algorithm 1, in which the columns of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq242_HTML.gif were sorted in descending order of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq243_HTML.gif to potentially result in large constrained sets. We then set the head variable https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq244_HTML.gif and find its corresponding constrained set https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq245_HTML.gif to resolve https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq246_HTML.gif variables that are to be set to zero. We then solve the smaller problem of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq247_HTML.gif and continue until the problem cannot be further reduced. One main difference between Heuristic 1 and Algorithm 1 is that at each recursion, the head variable is only set to one; the other possibility of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq248_HTML.gif is not pursued at all. In a sense, this heuristic algorithm finds greedy solutions to the problem at each recursion by serving the highest priority packet. In this heuristic algorithm, all https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq249_HTML.gif unconstrained variables are naturally set to 1 in the course of the algorithm. The computational complexity of this method is at worst proportional to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq250_HTML.gif , which can happen when there is no constraint between packets.

5.2. Heuristic 2—Search Algorithm 1 with Maximum Recursions/Elapsed Time

It is possible to terminate the recursive search Algorithm 1 prematurely once it reaches a maximum number of allowed recursions/elapsed time. If the algorithm reaches this value and the search is not complete, it performs a termination procedure whereby it heuristically resolves the remaining unresolved packets in the current incomplete solution. That is, it performs Heuristic 1 on a smaller problem, which is yet to be solved. It then returns the best solution that has been found so far. We note that due the extra termination procedure, the actual number of recursions/elapsed time can be (slightly) higher than the preset value.
Two comments are in order here. Firstly, Algorithm 1 is designed to sort the matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq251_HTML.gif based on the number of receivers that need a packet. It only reverts to sorting the unresolved variables based on the vector https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq252_HTML.gif in the termination process. Secondly, if the maximum number of recursions is set to one, Algorithm 1 just performs the termination process and becomes identical to Heuristic 1.

5.3. Heuristic 3—Dynamic Number of Recursions

This heuristic is based on Heuristic 2, where we dynamically increase the number of allowed recursions as needed. At each transmission round, we start with only one allowed recursion (effectively run Heuristic 1). If the throughput (Let https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq253_HTML.gif denote the index of receivers that still need at least one packet and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq254_HTML.gif denote such receivers. The achieved throughput at time slot https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq255_HTML.gif is defined as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq256_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq257_HTML.gif is the found solution and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq258_HTML.gif is an appropriate function of receivers' needs. For memoryless erasures https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq259_HTML.gif and for GEC's https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq260_HTML.gif (refer to Section 4 and (7)).) is higher than a desired value, there is no need to proceed any further. Otherwise, we can gradually increase the number of recursions by an appropriate step size. This heuristic stops when it either reaches the maximum allowed recursions or when increasing the number of recursions does not result in a noticeable improvement in the throughput.

6. Numerical Results and Secondary Coding Considerations

We start this section by presenting end-to-end decoding delay results for memoryless erasure channels. We then specialize to erasure channels with memory. The end-to-end problem is the complete transmission of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq261_HTML.gif packets. End-to-end decoding delay of a receiver is the sum of decoding delays for the receiver in each transmission step. In the following, when we say "the delay performance of method X", we are referring to the delay performance of the end-to-end transmission, where method X is applied at each step.
In the course of presenting the results and based on the observed trends, we will discuss some secondary coding techniques and post processing considerations that can improve the decoding delay. Throughout the analysis of this section, we assume independent erasures in different links with identical probabilities. Hence, we can drop subscript https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq262_HTML.gif when referring to link erasure probabilities.
Figure 2 shows the median of decoding delay for the transmission of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq263_HTML.gif packets to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq264_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq265_HTML.gif receivers. Channel erasures are memoryless and occur with a high probability of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq266_HTML.gif independently in every link. The median of delay is computed across all receivers and is, in fact, also the median across many stochastic runs of the algorithms. The first curve from below shows the delay obtained from Algorithm 1 (Throughout the numerical evaluations, we used the sorted pruning version of Algorithm 1.). The middle curve is the delay obtained by performing Heuristic 1. The top curve shows a reproduction of delay results reported in [8] which are based on a random opportunistic instantaneous network coding strategy. In this case, the transmitter first selects a packet needed by at least one receiver at random. Then, it goes over other packets in some order and adds a packet to the current choice only if their addition still results in instantaneous decodability. In comparison, Heuristic 1 performs noticeably better than that in [8] and more importantly, is not much far away from the results of Algorithm 1. This is specially important since for some number of receivers, Heuristic 1 can run considerably faster than Algorithm 1, which will be shown in the coming figures shortly.
Figure 3 compares the mean delay performance of different heuristics presented in Section 5 with that of Algorithm 1. Similar to the previous figure, mean delay is computed across all receivers. The delay performance of Heuristic 2, Heuristic 3, and Algorithm 1 are close, whereas Heuristic 1 results in the largest delay. A careful reader may notice that the end-to-end performance of Heuristic 2 is at times better than Algorithm 1. While the difference is practically insignificant, this deserves some explanation. The end-to-end transmission problem involves making packet transmission decisions at each step. While all algorithms start with the same packet incidence matrix (all-ones), due to packet erasures and as they make decisions about transmission of packets at each step, they take diverging paths in the solution space. As a result, they end up with different packet incidence matrices to solve over time. Hence, it is conceivable for an algorithm to make suboptimal decisions at one or more steps and yet end up with a better end-to-end delay than Algorithm 1 that strictly makes optimal decisions at every step. Intuition suggests that an algorithm such as Heuristic 1 that consistently makes suboptimal decisions is unlikely to outperform Algorithm 1 end-to-end, which is confirmed by the numerical results. However, an algorithm such as Heuristic 2 which almost always makes optimal decisions with only infrequent exceptions, may outperform Algorithm 1. According to Figure 3, these perturbations in end-to-end performance are practically insignificant and the intuitive choice of the optimal or a largely optimal algorithm at each step will result in the best end-to-end performance.
We note that the delays presented here (and also in the following figures) are, in fact, excess median or mean delays beyond the minimum required number of transmissions, which is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq274_HTML.gif . For example, a mean delay of 10 slots for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq275_HTML.gif packets signifies on average https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq276_HTML.gif overhead, which is the price for guaranteeing instantaneous decodability. In other words, one measure of throughput is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq277_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq278_HTML.gif is the mean delay across all receivers. An example is shown in Figure 3. For up to around https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq279_HTML.gif receivers in the system, Algorithm 1, Heuristics 2, and 3 ensure an average throughput loss of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq280_HTML.gif .
It is quite possible that Algorithm 1 returns multiple network coding solutions all of which have the same objective value https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq281_HTML.gif . A natural question that arises is whether systematic selection of a solution with a particular property is better than others in the presence of erasures in the channel. Our experiments verify that indeed some secondary post processing on the solutions can improve the end-to-end delay. In particular, we compare two post processing techniques: https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq282_HTML.gif selecting a solution which involves minimum amount of coding (lowest number of 1's in the solution vector https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq283_HTML.gif ) and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq284_HTML.gif selecting a solution with maximum amount of coding (highest number of 1's in the solution vector https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq285_HTML.gif ). Figure 4 shows the effects of such processing on the overall decoding delays. It is clear that maximum coding is not a reasonable choice and results in worse delays compared with minimum coding. We attempt to explain this behavior by means of an example and intuitive reasoning. Let us assume that there are https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq286_HTML.gif packets to be transmitted to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq287_HTML.gif receivers and at the beginning of the third transmission round, matrix https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq288_HTML.gif is given as follows
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ8_HTML.gif
(8)
It is clear that there are two optimal solutions: we can either send packets https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq289_HTML.gif or packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq290_HTML.gif by itself, where the former involves coding and latter is uncoded. Now let us assume that we select the maximum coding strategy and send https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq291_HTML.gif . If in the third transmission round only https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq292_HTML.gif successfully receives, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq293_HTML.gif will become
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ9_HTML.gif
(9)
and clearly the optimal solution is sending packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq294_HTML.gif . If in the fourth transmission round only https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq295_HTML.gif successfully receives, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq296_HTML.gif will become
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ10_HTML.gif
(10)
where it is evident that in the fifth transmission round, we cannot find a packet which is innovative and instantaneously decodable for all the three receivers. On the other hand, one can verify that if we adopt a minimum coding strategy and send packet https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq297_HTML.gif in the third transmission round, we can always find innovative and instantaneously decodable packets for all three receivers in the future regardless of erasures in the channel. In summary, solutions with less coding tend to cause less constrains on the problem in the future.
It is noted in Figure 4 that the first solution returned by Algorithm 1 performs almost the same as the minimum coding solution. The reason for this is that Algorithm 1 first ranks the packets based on the number of receivers that need them. Therefore, the first solution picked by the algorithm is likely to contain packets with largest constrained sets and hence, many resolved packets are set to zero, which often translates into small amount of coding. Throughout this section, unless otherwise stated, we have shown the delay results based on the first returned solution of Algorithm 1.
It is interesting to analyze the actual number of recursions that the search in Algorithm 1 takes to find the optimum solution. This is shown in Figure 5 for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq298_HTML.gif packets along with the number of recursions required in Heuristics 1, 2, and 3. Algorithm 1 shows three modes of behavior: low, medium, and high number of recursions. When the number of receivers is larger than https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq299_HTML.gif , Algorithm 1 finds the optimal solution very quickly and the number of recursions is very close to the number of packets https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq300_HTML.gif . However, when the number of receivers is lower, the constraints that each receiver imposes on the network coding decisions cannot limit the search space enough and hence, a large number of combinations have to be tested. Obviously, Heuristic 1 has the lowest number of recursions. Compared to Heuristic 2 with 100 fixed recursions, dynamic Heuristic 3 can almost halve the number of recursions with negligible effect on delay performance (see Figure 3). By referring to Figure 3, we conclude that for the system under consideration, the excessive number of recursions in Algorithm 1 is not warranted as it does not result in any noticeable delay improvement compared to Heuristics 2 or 3.
Figure 6 shows the effect of increasing the number of packets on the computational complexity of Algorithm 1 in terms of number of recursions to complete the search.Three different numbers of receivers https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq301_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq302_HTML.gif , and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq303_HTML.gif are considered. The complexity remains linear with the number of packets for well-sized receiver populations (30 and 40 receivers). This is in agreement with observations in Figure 5. When the number of receivers is not so large (see the blue curve in Figure 6 for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq304_HTML.gif ), we see a sudden growth in complexity, in terms of number of recursions, when https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq305_HTML.gif packets. In such situations, truncating the number of recursion to be linear with the number of packets (Heuristic 2) is a good alternative.
Figure 7 shows the impact of the number of packets and also erasure probability on the decoding delay. The normalized mean delay versus number of packets https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq306_HTML.gif is plotted for three different erasure probabilities https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq307_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq308_HTML.gif , and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq309_HTML.gif , which are still high erasure probabilities. The number of receivers is fixed to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq310_HTML.gif . The delay performance of Heuristics 1 and 3 are shown. A few observations are made. Firstly, as expected, the delay (both absolute and normalized measures) decreases as the erasure probability decreases. Secondly, the difference in the delay performance between Heuristics 1 and 3 decreases as the erasure probability decreases. This trend has also been observed for other number of receivers. Moreover, the difference between heuristics and Algorithm 1 decreases with erasure probability, which is not shown here for clarity of figure. Finally, the normalized delay decreases as the number of packets increases. We noted, however, that the absolute delay may increase or decrease depending on the number of receivers in the system. We attribute possible decrease in the normalized delay to the fact that when there are more packets to transmit, the transmitter has more options to choose from and hence, encounters delays less often in a normalized sense.
An important question that may arise in practical situations is how to choose the "block size" or the number of packets that are taken into account for making network coding decisions. If one has a total of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq313_HTML.gif packets to transmit, does it make sense to divide them into subblocks of smaller sizes or does it make sense to treat them as one single block of packets? The short answer is to include all "order-insensitive" packets in making transmission decisions and only break the packets into subblocks when the assumption of order insensitivity between subblocks breaks down. In the extreme case, an infinite number of order-insensitive packets provides an infinite pool of packets to choose from that can satisfy the demands of all receivers and are instantaneously decodable. Figure 8 shows the end-to-end delay when the number of packets in a block is finite and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq314_HTML.gif packets is chosen as the reference for comparison. We can see that although the delay of transmitting https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq315_HTML.gif packets, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq316_HTML.gif , can be larger than that of transmitting https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq317_HTML.gif packets https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq318_HTML.gif , the delay does not increase by a factor of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq319_HTML.gif . That is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq320_HTML.gif and one does not benefit from breaking https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq321_HTML.gif packets into https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq322_HTML.gif subblocks of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq323_HTML.gif packets each. By treating https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq324_HTML.gif subblocks of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq325_HTML.gif as one block of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq326_HTML.gif , we add more degrees of freedom in making decisions.
Now we turn our attention to the delay performance of our algorithms in channels with memory. Figure 9 shows the mean delay of different algorithms for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq331_HTML.gif packets and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq332_HTML.gif receivers. The GEC parameters for all links are identical with https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq333_HTML.gif . The horizontal axis shows the memory content https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq334_HTML.gif .The first curve from above shows the performance of Algorithm 1 when the transmitter does not take channel conditions into account in making coding decisions. In other words, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq335_HTML.gif is used in Algorithm 1 as if the channel states were memoryless. For relatively large memory contents, this method results in the largest mean delay. The next curve shows the delay performance of Heuristic 1. The next two curves, which are almost indistinguishable, show the performance of Algorithm 1 which takes channel states into account (using (7)) and Heuristic 2 with 100 recursions. The last curve shows the best delay that can be achieved by occasionally violating the instantaneous decodability rule for one receiver in favor of the other two receivers that are predicted to be in good state in the next transmission round. More details can be found in [14].
Figure 10 shows the delay performance of Algorithm 1 using packet weights according to (7) for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq336_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq337_HTML.gif receivers. Both the mean delay and mean delay plus one standard deviation of delay (across 1000 stochastic runs of the transmission) are shown. As expected, the delay increases as the number of receivers increases. Comparing the delay's standard deviation with its mean, we observe that when the number of receivers is 3–5, the delay is relatively more variant than when the number of receivers is 10–15. For example, for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq338_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq339_HTML.gif , the ratio of standard deviation to mean delay is around https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq340_HTML.gif , whereas for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq341_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq342_HTML.gif this ratio reduce to only https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq343_HTML.gif . One should keep these variations in mind when designing the transmission system.
We conclude this section with a brief look at the effect of post processing on the delay performance in channels with memory. Figure 11 shows different delays for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq344_HTML.gif receivers and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq345_HTML.gif packets. The figure confirms our earlier finding that selecting the maximum amount of coding among the optimal solutions provided by Algorithm 1 can result in larger end-to-end delays. We also note that serving the maximum number of receivers can have an adverse effect on the delay in GEC's. To explain this, consider an example where there are https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq346_HTML.gif left packets to be transmitted to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq347_HTML.gif receivers. Packet 1 is needed by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq348_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq349_HTML.gif and packet 2 is needed by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq350_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq351_HTML.gif . Since both packets are needed by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq352_HTML.gif , we can either send packet 1 or 2, but not both. Now assume that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq353_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq354_HTML.gif are all predicted to be in good state with probability https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq355_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq356_HTML.gif is predicted to be in good state with probability https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq357_HTML.gif , so that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq358_HTML.gif according to (7). Therefore, transmission of either packet seems to be equally optimal. However, one can easily verify that the probability of at least one receiver among https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq359_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq360_HTML.gif receiving packet 1 is only https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq361_HTML.gif , whereas the probability of either https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq362_HTML.gif or https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq363_HTML.gif receiving packet 2 is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq364_HTML.gif . Therefore, it makes sense to satisfy only two receivers, one of which has a high priority due its good channel conditions.

7. Conclusions

In this paper, we provided an online optimal network coding scheme with feedback to minimize decoding delay in each transmission round in erasure broadcast channels. Efficient search algorithms for the optimal network coding solution, as well as heuristic methods were presented and their delay and computational performance were tested in several system scenarios. We found that adopting an optimized approach using as much information about the channel as possible, such as memory, leads to a significantly better decoding delay. An interesting problem for future research is to relax the instantaneous decodability condition to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq365_HTML.gif -step decodability and investigate the delay-throughput tradeoff.

Acknowledgments

The authors wish to thank anonymous reviewers for their valuable comments which helped to improve the presentation of this paper. In the early stages of this work, the authors benefited from fruitful discussions with Ralf Koetter. This paper is dedicated to his memory. Preliminary results of this paper were presented in the 2009 Workshop on Network Coding, Theory and Applications (NetCod 2009), Lausanne, Switzerland. The work of P. Sadeghi was supported under ARC Discovery Projects funding scheme (Project no. DP0984950). The work of D. Traskov was supported by the European Commission in the framework of the FP7 Network of Excellence in Wireless COMmunications NEWCOM++ (Contract no. 216715).
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 2.0 International License (https://​creativecommons.​org/​licenses/​by/​2.​0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Anhänge

Appendix

Here we prove by structural induction that (a) every result returned by Algorithm 1 is a solution of (4) and (b) the set of solutions returned by the algorithm contains all the optimal solutions. We note that the algorithm is designed to discard infeasible vectors and those solutions that are clearly suboptimal at each recursion to improve performance. The latter is based on positiveness of the elements of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq366_HTML.gif as explained below.The algorithm generates a binary tree. Each node represents a problem of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq367_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq368_HTML.gif , and branches into two subproblems of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq369_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq370_HTML.gif . The former subproblem is a result of setting https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq371_HTML.gif and the latter a result of setting https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq372_HTML.gif . A leaf is reached when we need to solve https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq373_HTML.gif . Without loss of generality let us assume that the variable to be examined is the first variable ( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq374_HTML.gif ) which is followed by https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq375_HTML.gif variables ( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq376_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq377_HTML.gif ) that are constrained to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq378_HTML.gif , https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq379_HTML.gif variables ( https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq380_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq381_HTML.gif ) that are constrained but not to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq382_HTML.gif , and finally https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq383_HTML.gif unconstrained variables https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq384_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq385_HTML.gif . This can be easily accomplished by rearranging the columns of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq386_HTML.gif .For https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq387_HTML.gif , it is clear that the only optimal solution to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq388_HTML.gif is https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq389_HTML.gif which is returned by the algorithm. Hence, the minimal structure of the algorithm returns the optimal solution and our claim is true for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq390_HTML.gif . The induction hypothesis is that the two subproblems https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq391_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq392_HTML.gif have only discarded infeasible vectors and some suboptimal solutions. We need to prove that the same statement applies to the parent problem https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq393_HTML.gif .We first look at the left branch where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq394_HTML.gif . According to the construction of the algorithm, any solution such as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq395_HTML.gif of length https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq396_HTML.gif provided by the left branch https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq397_HTML.gif is appended by the parent problem https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq398_HTML.gif to form
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ11_HTML.gif
(A.1)
where the head variable https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq399_HTML.gif is set to one, variables constrained to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq400_HTML.gif are set to zero and all unconstrained variables are set to one. We first prove that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq401_HTML.gif is indeed a solution and then show that changing any element of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq402_HTML.gif results in either an infeasible or a clearly suboptimal https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq403_HTML.gif . We use Definitions 6–8.(i)For
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ12_HTML.gif
(A.2)
we write the condition https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq404_HTML.gif as a weighted sum of columns of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq405_HTML.gif . That is, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq406_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq407_HTML.gif is a submatrix of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq408_HTML.gif of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq409_HTML.gif , which is input to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq410_HTML.gif , and according to the induction hypothesis https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq411_HTML.gif . But since no variable in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq412_HTML.gif is constrained to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq413_HTML.gif , no column in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq414_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq415_HTML.gif can have ones in the same row position. Therefore, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq416_HTML.gif .(ii)Since https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq417_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq418_HTML.gif are unconstrained, no column https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq419_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq420_HTML.gif can have ones in the same row position. Hence, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq421_HTML.gif .(iii)Using similar arguments, we can assert that no column in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq422_HTML.gif or https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq423_HTML.gif can have ones in the same row positions as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq424_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq425_HTML.gif do. Therefore, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq426_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq427_HTML.gif is a solution.(iv)We now argue that variables https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq428_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq429_HTML.gif cannot be anything other than zero. This directly follows from the fact that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq430_HTML.gif is constrained with https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq431_HTML.gif for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq432_HTML.gif and hence, in any given solution they cannot be simultaneously one.(v)Since we have already found a solution https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq433_HTML.gif where the first and last https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq434_HTML.gif variables are one, we know that any other solution such as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq435_HTML.gif with one or more zeros in these positions becomes suboptimal and can be discarded. That is, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq436_HTML.gif due to positiveness of elements of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq437_HTML.gif .(vi)Finally, according to induction hypothesis, we know that https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq438_HTML.gif cannot be changed into anything other than what https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq439_HTML.gif provides without making it either infeasible or suboptimal. In summary, for each solution https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq440_HTML.gif provided by the left branch https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq441_HTML.gif , the constructed vector
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ13_HTML.gif
(A.3)
is the only solution that is not trivially suboptimal.Now we look at the right branch where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq442_HTML.gif . According to the construction of the algorithm, a given solution such as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq443_HTML.gif of length https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq444_HTML.gif provided by the right branch https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq445_HTML.gif is appended by the parent problem https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq446_HTML.gif to form
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ14_HTML.gif
(A.4)
where the head variable is set to zero and all unconstrained variables are set to one. We need to show that for a given https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq447_HTML.gif this is indeed a solution. We then show that changing any element of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq448_HTML.gif can only result in an infeasible vector, a clearly suboptimal solution, or a duplicate solution already provided by the left branch and hence, can be discarded. We use Definitions 6–8.(i)We write https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq449_HTML.gif as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq450_HTML.gif , where https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq451_HTML.gif is a submatrix of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq452_HTML.gif of size https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq453_HTML.gif , which is input to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq454_HTML.gif , and according to the induction hypothesis https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq455_HTML.gif . Similar to the arguments for the left branch, we can assert that no column https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq456_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq457_HTML.gif corresponding to unconstrained variables can have ones in the same row position. Hence, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq458_HTML.gif . Furthermore, that no column in https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq459_HTML.gif can have ones in the same row positions as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq460_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq461_HTML.gif . Therefore, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq462_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq463_HTML.gif is a solution.(ii)Since we have already found a solution https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq464_HTML.gif where the last https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq465_HTML.gif variables are one, we know that any other solution such as https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq466_HTML.gif with one or more zeros in these positions becomes suboptimal and can be discarded.(iii)Finally, we show that any vector of the form
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ15_HTML.gif
(A.5)
with a one in the first variable is either infeasible or is already constructed based on solutions from the left branch and hence, need not be considered twice. We consider two possibilities for https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq467_HTML.gif . If https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq468_HTML.gif for any https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq469_HTML.gif , then we have already shown in the analysis of the left branch that
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ16_HTML.gif
(A.6)
is infeasible because https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq470_HTML.gif and https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq471_HTML.gif are constrained to each other. If none of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq472_HTML.gif to https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq473_HTML.gif are one, then https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq474_HTML.gif will be of the form
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ17_HTML.gif
(A.7)
for some https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq475_HTML.gif . But, https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq476_HTML.gif has to be a solution of https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq477_HTML.gif . Hence, considering vectors of the form
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ18_HTML.gif
(A.8)
does not lead to any new solution.In summary, for each solution https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq478_HTML.gif provided by the right branch https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_IEq479_HTML.gif , the constructed vector
https://static-content.springer.com/image/art%3A10.1155%2F2010%2F618016/MediaObjects/13638_2009_Article_1967_Equ19_HTML.gif
(A.9)
is the only novel solution that is not trivially suboptimal. By combining the arguments of left and right branch, the induction claim is proven.
Literatur
2.
Zurück zum Zitat Ho T, Medard M, Koetter R, et al.: A random linear network coding approach to multicast. IEEE Transactions on Information Theory 2006, 52(10):4413-4430.MathSciNetCrossRef Ho T, Medard M, Koetter R, et al.: A random linear network coding approach to multicast. IEEE Transactions on Information Theory 2006, 52(10):4413-4430.MathSciNetCrossRef
3.
Zurück zum Zitat Eryilmaz A, Ozdaglar A, Medard M: On delay performance gains from network coding. Proceedings of the IEEE Annual Conference on Information Sciences and Systems (CISS '06), March 2006, Princeton, NJ, USA 864-870. Eryilmaz A, Ozdaglar A, Medard M: On delay performance gains from network coding. Proceedings of the IEEE Annual Conference on Information Sciences and Systems (CISS '06), March 2006, Princeton, NJ, USA 864-870.
4.
Zurück zum Zitat Lucani DE, Stojanovic M, Medard M: Random linear network coding for time division duplexing: when to stop talking and start listening. Proceedings of the IEEE Conference on Computer Communications (INFOCOM '09), April 2009 1800-1808. Lucani DE, Stojanovic M, Medard M: Random linear network coding for time division duplexing: when to stop talking and start listening. Proceedings of the IEEE Conference on Computer Communications (INFOCOM '09), April 2009 1800-1808.
6.
Zurück zum Zitat Sundararajan J-K, Sadeghi P, Medard M: A feedback-based adaptive broadcast coding scheme for reducing in-order delivery delay. Proceedings of the Workshop on Network Coding, Theory, and Applications (NetCod '09), June 2009, Lausanne, Switzerland Sundararajan J-K, Sadeghi P, Medard M: A feedback-based adaptive broadcast coding scheme for reducing in-order delivery delay. Proceedings of the Workshop on Network Coding, Theory, and Applications (NetCod '09), June 2009, Lausanne, Switzerland
7.
Zurück zum Zitat Goyal VK: Multiple description coding: compression meets the network. IEEE Signal Processing Magazine 2001, 18(5):74-93. 10.1109/79.952806CrossRef Goyal VK: Multiple description coding: compression meets the network. IEEE Signal Processing Magazine 2001, 18(5):74-93. 10.1109/79.952806CrossRef
8.
Zurück zum Zitat Keller L, Drinea E, Fragouli C: Online broadcasting with network coding. Proceedings of the 4th Workshop on Network Coding, Theory, and Applications (NetCod '08), January 2008, Hong kong Keller L, Drinea E, Fragouli C: Online broadcasting with network coding. Proceedings of the 4th Workshop on Network Coding, Theory, and Applications (NetCod '08), January 2008, Hong kong
9.
Zurück zum Zitat Bertsimas D, Weissmantel R: Optimization Over Integers. Dynamic Ideas, Belmont, Mass, USA; 2005. Bertsimas D, Weissmantel R: Optimization Over Integers. Dynamic Ideas, Belmont, Mass, USA; 2005.
10.
Zurück zum Zitat Rappaport TS: Wireless Communications, Principles and Practice. 2nd edition. Prentice Hall, Upper Saddle River, NJ, USA; 2002. Rappaport TS: Wireless Communications, Principles and Practice. 2nd edition. Prentice Hall, Upper Saddle River, NJ, USA; 2002.
11.
Zurück zum Zitat Sadeghi P, Kennedy RA, Rapajic PB, Shams R: Finite-state Markov modeling of fading channels: a survey of principles and applications. IEEE Signal Processing Magazine 2008, 25(5):57-80.CrossRef Sadeghi P, Kennedy RA, Rapajic PB, Shams R: Finite-state Markov modeling of fading channels: a survey of principles and applications. IEEE Signal Processing Magazine 2008, 25(5):57-80.CrossRef
12.
Zurück zum Zitat Mushkin M, Bar-David I: Capacity and coding for the Gilbert-Elliot channels. IEEE Transactions on Information Theory 1989, 35(6):1277-1290.MATHCrossRef Mushkin M, Bar-David I: Capacity and coding for the Gilbert-Elliot channels. IEEE Transactions on Information Theory 1989, 35(6):1277-1290.MATHCrossRef
13.
Zurück zum Zitat Katti S, Rahul H, Hu W, Katabi D, Medard M, Crowcroft J: XORs in the air: practical wireless network coding. In Proceedings of the ACM Computer Communication Review (SIGCOMM '06), October 2006. Volume 36. ACM Press; 243-254. Katti S, Rahul H, Hu W, Katabi D, Medard M, Crowcroft J: XORs in the air: practical wireless network coding. In Proceedings of the ACM Computer Communication Review (SIGCOMM '06), October 2006. Volume 36. ACM Press; 243-254.
14.
Zurück zum Zitat Sadeghi P, Traskov D, Koetter R: Adaptive network coding for broadcast channels. Proceedings of the Workshop on Network Coding, Theory, and Applications (NetCod '09), June 2009, Lausanne, Switzerland 80-85. Sadeghi P, Traskov D, Koetter R: Adaptive network coding for broadcast channels. Proceedings of the Workshop on Network Coding, Theory, and Applications (NetCod '09), June 2009, Lausanne, Switzerland 80-85.
Metadaten
Titel
An Optimal Adaptive Network Coding Scheme for Minimizing Decoding Delay in Broadcast Erasure Channels
verfasst von
Parastoo Sadeghi
Ramtin Shams
Danail Traskov
Publikationsdatum
01.12.2010
Verlag
Springer International Publishing
DOI
https://doi.org/10.1155/2010/618016

Weitere Artikel der Ausgabe 1/2010

EURASIP Journal on Wireless Communications and Networking 1/2010 Zur Ausgabe