A multiaccess channel is a communication channel that connects many users at once. Every user can listen and transmit on the channel, but if more than one user transmits at the same time, the signals collide, and are reduced to unintelligible noise. Multiaccess channels have been used in distributed communication systems since the 1980s,[1] including more recently, wireless computer networks and phone networks.
The problem is thus: how can we assign transmission times to the users so that their messages do not collide? A simple method is to give each user their own time slot in which to transmit, requiring slots. (This is called time division multiplexing, or TDM.) However, this is very inefficient, since we usually assume that only a few users will want to transmit at any given time – otherwise a multiaccess channel is not practical in the first place.
Group testing
editIn the context of group testing, this problem is usually tackled by dividing time into 'epochs'.[2] We say that an user is active if they have a message at the start of an epoch. (If a message is generated during an epoch, the user only becomes active at the start of the next one.) An epoch ends when every active user has successfully transmitted their message. The problem is now to find all the active users in a given epoch, and schedule a time for them to transmit (if they have not already done so successfully). This is then a group testing problem where the query asks a set of users to attempt a transmission if they are active. The outcomes are , corresponding respectively to the possible results of a query: no active users, exactly one active user (message successful) or more than one active user (message collision).
Combinatorial testing
editMost of the literature on this problem focuses on the probabilistic model, but we will start by outlining a simple combinatorial algorithm, .[a] The most basic form of this algorithm, for when for some , is to perform a repeated binary splitting (starting with the whole set of users), stopping whenever a test returns either or . As shown in [2], the number of tests this requires (as a function of ) can be computed, giving the following theorem.
Theorem
editWhen is unknown, requires tests where and .[2]
When is known we instead start by testing groups of size where is approximately . For this modified algorithm, , [2] derived the following.
Theorem
editrequires tests where is as in the previous theorem and .[2]
Further improvements can be made to this algorithm. As detailed in [2], we can extend the method to deal with (or group sizes) not a power of two, and we can save some tests using the extra information from a result. [2] also goes into detail on non-adaptive solutions in the combinatorial model.\newline
Probabilistic testing
editOn the probabilistic side of things, Pippenger[3] produced a bound on the effectiveness of group-testing algorithms for multiaccess channels. Let be the expected number of active users in a epoch, and be the expected number of queries needs to transmit their messages. Pippenger showed that where .
For explicit details on probabilistic algorithms, the reader is encouraged to consult \cite{berger}, which defines an algorithm that performs close to optimally across most prevalence rates, .
Notes
edit- ^ Arguably the simplest approach is to treat the and outcomes as the same (that is, 'at least one defective'), allowing us to use any of the regular group-testing algorithms.
External links
editSee [1] for a general overview. (ref 1)
References
edit- ^ a b Pardalos, P. M.; Rajasekaran, S.; Reif, J.; Rolim, J.D.P. "Randomized communication in radio networks". Handbook of Randomized Computing. 1: 401–456.
- ^ a b c d e f g Ding-Zhu, Du; Hwang, Frank K. (1993). Combinatorial group testing and its applications. Singapore: World Scientific. ISBN 9810212933.
- ^ Pippenger, N. (March 1981). "Bounds on the performance of protocols for a multiple-access broadcast channel". IEEE Transactions on Information Theory. 27 (2): 145–151. doi:10.1109/TIT.1981.1056332.