I. Introduction
The aim of Group Testing (GT) is to detect an unknown subset of defective (also called positive or active) items out of a set of objects by means of queries (the tests) in the most efficient way. More precisely we are given a set of objects, , each of which can be either defective or not. The task is to identify the subset of defectives, , by means of the fewest possible number of queries of the form “Does the pool (where is a subset of ) contain at least one defective item?” This problem was originally introduced in relation with efficient mass blood testing [1]. Afterwards, it has been also applied in a variety of situations in molecular biology: blood screening for HIV tests [2], screening of clone libraries [3], [4], sequencing by hybridization [5], [6]. Furthermore it has proved relevant for fields other than biology including quality control in product testing [7], searching files in storage systems [8], data compression [9], and more recently in the context of data gathering in sensor networks [10] and multiaccess communication. We refer to [12] and [13] for reviews on the different applications of GT. Here we deal with the very much studied gold-standard case, namely the idealized situation in which tests are perfect: there can be neither false positives nor false negatives in their outcomes. It is important to keep in mind for future work that, however, in many biological applications one should include the possibility of errors in the test answers.