В статистике и комбинаторной математике групповое тестирование — это любая процедура, которая разбивает задачу идентификации определенных объектов на тесты по группам элементов, а не по отдельным. Впервые изученное Робертом Дорфманом в 1943 году, групповое тестирование — это относительно новая область прикладной математики, которая может применяться в широком спектре практических приложений и является активной областью исследований сегодня.
Известный пример группового тестирования включает в себя ряд лампочек, соединенных последовательно, где известно, что ровно одна из лампочек сломана. Цель состоит в том, чтобы найти сломанную лампочку, используя наименьшее количество тестов (где тестом является подключение некоторых лампочек к источнику питания). Простой подход заключается в том, чтобы проверить каждую лампочку по отдельности. Однако, когда лампочек много, было бы гораздо эффективнее объединить лампочки в группы. Например, подключив первую половину лампочек сразу, можно определить, в какой половине находится сломанная лампочка, исключив половину лампочек всего за один тест.
Схемы проведения группового тестирования могут быть простыми или сложными, а тесты, используемые на каждом этапе, могут быть разными. Схемы, в которых тесты для следующего этапа зависят от результатов предыдущих этапов, называются адаптивными процедурами , тогда как схемы, разработанные таким образом, что все тесты известны заранее, называются неадаптивными процедурами . Структура схемы тестов, используемых в неадаптивной процедуре, известна как схема объединения .
Групповое тестирование имеет множество приложений, включая статистику, биологию, информатику, медицину, инженерию и кибербезопасность. Современный интерес к этим схемам тестирования был возрожден проектом « Геном человека» . [1]
В отличие от многих областей математики, истоки группового тестирования можно проследить до одного отчета [2], написанного одним человеком: Робертом Дорфманом . [3] Мотивация возникла во время Второй мировой войны, когда Служба общественного здравоохранения США и Служба выборочной службы приступили к масштабному проекту по отсеиванию всех мужчин , больных сифилисом, призванных на призыв. Тестирование человека на сифилис включает в себя взятие у него образца крови, а затем анализ образца для определения наличия или отсутствия сифилиса. В то время проведение этого теста было дорогим, и тестирование каждого солдата по отдельности было бы очень дорогим и неэффективным. [3]
Предположим, что есть солдаты, этот метод тестирования приводит к отдельным тестам. Если большая часть людей инфицирована, то этот метод был бы разумным. Однако в более вероятном случае, когда инфицирована только очень небольшая часть мужчин, можно достичь гораздо более эффективной схемы тестирования. Осуществимость более эффективной схемы тестирования зависит от следующего свойства: солдат можно объединить в группы, и в каждой группе образцы крови можно объединить. Затем объединенный образец можно проверить, есть ли хотя бы у одного солдата в группе сифилис. Это центральная идея группового тестирования. Если у одного или нескольких солдат в этой группе сифилис, то тест напрасный (необходимо провести больше тестов, чтобы определить, какой солдат это был). С другой стороны, если ни у кого в пуле нет сифилиса, то экономится много тестов, поскольку каждый солдат в этой группе может быть исключен всего одним тестом. [3]
Предметы, которые вызывают положительный результат теста группы, обычно называются дефектными предметами (это разбитые лампочки, сифилитики и т. д.). Часто общее количество предметов обозначается как и представляет собой количество дефектных, если предполагается, что оно известно. [3]
Существуют две независимые классификации задач группового тестирования: каждая задача группового тестирования является либо адаптивной, либо неадаптивной, а также вероятностной или комбинаторной. [3]
В вероятностных моделях предполагается, что дефектные элементы следуют некоторому распределению вероятностей , и цель состоит в том, чтобы минимизировать ожидаемое количество тестов, необходимых для определения дефектности каждого элемента. С другой стороны, при комбинаторном групповом тестировании цель состоит в том, чтобы минимизировать количество тестов, необходимых в «худшем сценарии» — то есть создать алгоритм minmax — и не предполагается никаких знаний о распределении дефектных элементов. [3]
Другая классификация, адаптивность, касается того, какую информацию можно использовать при выборе элементов для группировки в тест. В общем, выбор элементов для тестирования может зависеть от результатов предыдущих тестов, как в приведенной выше задаче с лампочкой. Алгоритм, который выполняется путем выполнения теста, а затем использования результата (и всех прошлых результатов) для принятия решения о том, какой следующий тест выполнить, называется адаптивным. Наоборот, в неадаптивных алгоритмах все тесты определяются заранее. Эту идею можно обобщить на многоэтапные алгоритмы, где тесты делятся на этапы, и каждый тест на следующем этапе должен быть определен заранее, зная только результаты тестов на предыдущих этапах. Хотя адаптивные алгоритмы предлагают гораздо большую свободу в разработке, известно, что адаптивные алгоритмы группового тестирования не улучшают неадаптивные более чем на постоянный множитель в количестве тестов, необходимых для идентификации набора дефектных элементов. [4] [3] В дополнение к этому, неадаптивные методы часто полезны на практике, поскольку можно приступить к последовательным тестам без предварительного анализа результатов всех предыдущих тестов, что позволяет эффективно распределить процесс тестирования.
Существует много способов расширить проблему группового тестирования. Один из самых важных называется шумным групповым тестированием и имеет дело с большим предположением исходной проблемы: что тестирование безошибочно. Проблема группового тестирования называется шумной, когда есть некоторая вероятность того, что результат группового тестирования ошибочен (например, оказывается положительным, когда тест не содержал дефектных элементов). Модель шума Бернулли предполагает, что эта вероятность является некоторой константой, , но в целом она может зависеть от истинного числа дефектных элементов в тесте и числа протестированных элементов. [5] Например, эффект разбавления можно смоделировать, сказав, что положительный результат более вероятен, когда в тесте присутствует больше дефектных элементов (или больше дефектных элементов как доля от числа протестированных элементов). [6] Шумный алгоритм всегда будет иметь ненулевую вероятность совершения ошибки (то есть неправильной маркировки элемента).
Групповое тестирование может быть расширено путем рассмотрения сценариев, в которых существует более двух возможных результатов теста. Например, тест может иметь результаты и , что соответствует отсутствию дефектов, одному дефекту или неизвестному числу дефектов, большему, чем один. В более общем смысле, можно считать, что набор результатов теста для некоторых . [3]
Другое расширение заключается в рассмотрении геометрических ограничений на то, какие наборы могут быть протестированы. Вышеуказанная задача о лампочке является примером такого рода ограничений: можно протестировать только те лампочки, которые появляются последовательно. Аналогично, элементы могут быть расположены по кругу или, в общем случае, в сети, где тесты являются доступными путями на графике. Другой вид геометрического ограничения будет касаться максимального количества элементов, которые могут быть протестированы в группе, [a] или размеры групп могут быть четными и т. д. Аналогичным образом, может быть полезно рассмотреть ограничение, что любой данный элемент может появляться только в определенном количестве тестов. [3]
Существует бесконечное множество способов продолжать переделывать базовую формулу группового тестирования. Следующие пояснения дадут представление о некоторых более экзотических вариантах. В модели «хорошо–посредственно–плохо» каждый элемент является одним из «хорошо», «посредственно» или «плохо», а результат теста — это тип «худшего» элемента в группе. В пороговом групповом тестировании результат теста положителен, если количество дефектных элементов в группе больше некоторого порогового значения или пропорции. [7] Групповое тестирование с ингибиторами — это вариант, имеющий применение в молекулярной биологии. Здесь есть третий класс элементов, называемых ингибиторами, и результат теста положителен, если он содержит хотя бы один дефектный элемент и не содержит ингибиторов. [8]
Концепция группового тестирования была впервые введена Робертом Дорфманом в 1943 году в кратком отчете [2], опубликованном в разделе «Заметки» журнала Annals of Mathematical Statistics . [3] [b] Отчет Дорфмана — как и все ранние работы по групповому тестированию — был сосредоточен на вероятностной проблеме и был направлен на использование новой идеи группового тестирования для сокращения ожидаемого количества тестов, необходимых для отсеивания всех мужчин с сифилисом среди заданной группы солдат. Метод был прост: солдаты были разделены на группы заданного размера и применялось индивидуальное тестирование (тестирование предметов в группах размером один) на положительных группах, чтобы определить, какие из них были инфицированы. Дорфман составил таблицу оптимальных размеров групп для этой стратегии в зависимости от уровня распространенности дефектности в популяции. [2] Стивен Сэмюэлс [10] нашел решение в замкнутой форме для оптимального размера группы как функции уровня распространенности.
После 1943 года групповое тестирование оставалось в значительной степени неизменным в течение ряда лет. Затем в 1957 году Стерретт усовершенствовал процедуру Дорфмана. [11] Этот новый процесс начинается с повторного проведения индивидуального тестирования на положительных группах, но останавливается, как только обнаруживается дефектный. Затем оставшиеся элементы в группе проверяются вместе, поскольку весьма вероятно, что ни один из них не является дефектным.
Первое тщательное рассмотрение группового тестирования было дано Собелем и Гроллом в их основополагающей статье 1959 года по этому вопросу. [12] Они описали пять новых процедур — в дополнение к обобщениям для случаев, когда уровень распространенности неизвестен — и для оптимальной процедуры они предоставили явную формулу для ожидаемого числа тестов, которые она будет использовать. В статье также впервые была установлена связь между групповым тестированием и теорией информации , а также обсуждались несколько обобщений проблемы группового тестирования и предлагались некоторые новые приложения теории.
Фундаментальный результат Питера Унгара в 1960 году показывает, что если уровень распространенности , то индивидуальное тестирование является оптимальной процедурой группового тестирования относительно ожидаемого числа тестов, а если , то оно не является оптимальным. Однако важно отметить, что, несмотря на 80 лет исследовательских усилий, оптимальная процедура до сих пор неизвестна для и общего размера популяции . [13]
Групповое тестирование впервые было изучено в комбинаторном контексте Ли в 1962 году [14] с введением алгоритма Ли -stage . [3] Ли предложил расширение «алгоритма 2-stage» Дорфмана до произвольного числа этапов, которое требовало не более тестов, чтобы гарантированно найти или меньше дефектных элементов. Идея состояла в том, чтобы удалить все элементы с отрицательными тестами и разделить оставшиеся элементы на группы, как это было сделано с исходным пулом. Это должно было быть сделано несколько раз перед выполнением индивидуального тестирования.
Комбинаторное групповое тестирование в целом было позднее более полно изучено Катоной в 1973 году. [15] Катона ввел матричное представление неадаптивного группового тестирования и разработал процедуру поиска дефекта в неадаптивном 1-дефектном случае не более чем за тесты, которую он также доказал как оптимальную.
В целом, поиск оптимальных алгоритмов для адаптивного комбинаторного группового тестирования является сложной задачей, и хотя вычислительная сложность группового тестирования не была определена, предполагается, что она является сложной в некотором классе сложности. [3] Однако важный прорыв произошел в 1972 году с введением обобщенного алгоритма двоичного разбиения. [16] Обобщенный алгоритм двоичного разбиения работает путем выполнения бинарного поиска в группах, которые дают положительный результат теста, и является простым алгоритмом, который находит один дефектный не более чем за количество тестов, ограниченное нижней границей информации.
В сценариях, где есть два или более дефектных, обобщенный алгоритм бинарного разделения все еще дает почти оптимальные результаты, требуя в большинстве случаев тестов выше нижней границы информации, где — количество дефектных. [16] Значительные улучшения в этом отношении были сделаны в 2013 году Аллеманом, который получил необходимое количество тестов меньше, чем выше нижней границы информации, когда и . [17] Это было достигнуто путем изменения бинарного поиска в алгоритме бинарного разделения на сложный набор подалгоритмов с перекрывающимися тестовыми группами. Таким образом, проблема адаптивного комбинаторного группового тестирования — с известным числом или верхней границей количества дефектных — по сути, была решена, с небольшими возможностями для дальнейшего улучшения.
Остается открытым вопрос о том, когда индивидуальное тестирование является minmax . Ху, Хван и Ван показали в 1981 году, что индивидуальное тестирование является minmax, когда , и что оно не является minmax, когда . [18] В настоящее время предполагается, что эта граница является точной: то есть индивидуальное тестирование является minmax тогда и только тогда, когда . [19] [c] Некоторый прогресс был достигнут в 2000 году Риччио и Колборном, которые показали, что для больших индивидуальное тестирование является minmax, когда . [20]
Одно из ключевых открытий в неадаптивном групповом тестировании заключается в том, что можно добиться значительных успехов, устранив требование, чтобы процедура группового тестирования была гарантированно успешной («комбинаторная» проблема), а вместо этого разрешив ей иметь некоторую низкую, но ненулевую вероятность неправильной маркировки каждого элемента («вероятностная» проблема). Известно, что по мере того, как количество дефектных элементов приближается к общему количеству элементов, точные комбинаторные решения требуют значительно большего количества тестов, чем вероятностные решения — даже вероятностные решения допускают только асимптотически малую вероятность ошибки. [4] [d]
В этом ключе Чан и др. (2011) представили COMP — вероятностный алгоритм, который требует не более тестов для обнаружения дефектных элементов с вероятностью ошибки не более . [5] Это находится в пределах постоянного множителя нижней границы. [4]
Чан и др. (2011) также представили обобщение COMP для простой шумной модели и аналогичным образом вывели явную границу производительности, которая снова была только константой (зависящей от вероятности неудачного теста) выше соответствующей нижней границы. [4] [5] В общем, количество тестов, требуемых в случае шума Бернулли, является постоянным множителем, большим, чем в случае без шума. [5]
Aldridge, Baldassini и Johnson (2014) разработали расширение алгоритма COMP, которое добавило дополнительные шаги постобработки. [21] Они показали, что производительность этого нового алгоритма, называемого DD, строго превосходит производительность COMP, и что DD является «по существу оптимальным» в сценариях, где , сравнивая его с гипотетическим алгоритмом, который определяет разумный оптимум. Производительность этого гипотетического алгоритма предполагает, что есть возможности для улучшения, когда , а также предполагает, насколько значительным может быть это улучшение. [21]
В этом разделе формально определяются понятия и термины, относящиеся к групповому тестированию.
предназначен для описания (неизвестного) набора дефектных элементов. Ключевое свойство заключается в том, что это неявный ввод . То есть, нет прямого знания о том, что представляют собой записи , кроме того, что можно вывести с помощью некоторой серии «тестов». Это приводит к следующему определению.
Таким образом, целью группового тестирования является разработка метода выбора «короткой» серии тестов, позволяющей определить результат либо точно, либо с высокой степенью достоверности.
Поскольку всегда можно прибегнуть к индивидуальному тестированию, установив для каждого , то должно быть так, что . Кроме того, поскольку любая неадаптивная процедура тестирования может быть записана как адаптивный алгоритм, просто выполняя все тесты без учета их результата, . Наконец, когда , есть по крайней мере один элемент, дефектность которого должна быть определена (по крайней мере одним тестом), и поэтому .
Подводя итог (при допущении ), . [f]
Нижнюю границу количества необходимых тестов можно описать с помощью понятия пространства выборки , обозначаемого , которое является просто набором возможных размещений дефектных элементов. Для любой задачи группового тестирования с пространством выборки и любым алгоритмом группового тестирования можно показать, что , где — минимальное количество тестов, необходимое для выявления всех дефектных элементов с нулевой вероятностью ошибки. Это называется нижней границей информации . [3] Эта граница выводится из того факта, что после каждого теста разделяется на два непересекающихся подмножества, каждое из которых соответствует одному из двух возможных результатов теста.
Однако нижняя граница информации сама по себе обычно недостижима, даже для небольших задач. [3] Это происходит потому, что разделение не является произвольным, поскольку оно должно быть реализуемо с помощью некоторого теста.
Фактически, нижняя граница информации может быть обобщена на случай, когда существует ненулевая вероятность того, что алгоритм сделает ошибку. В этой форме теорема дает нам верхнюю границу вероятности успеха на основе количества тестов. Для любого алгоритма группового тестирования, который выполняет тесты, вероятность успеха, , удовлетворяет . Это можно усилить до: . [5] [22]
Алгоритмы для неадаптивного группового тестирования состоят из двух отдельных фаз. Во-первых, решается, сколько тестов выполнить и какие элементы включить в каждый тест. Во второй фазе, часто называемой этапом декодирования, результаты каждого группового теста анализируются, чтобы определить, какие элементы, скорее всего, будут дефектными. Первая фаза обычно кодируется в матрице следующим образом. [5]
Таким образом, каждый столбец представляет элемент, а каждая строка представляет тест, при этом в записи указывается, что тест включал элемент, а в противном случае — указывается.
Наряду с вектором (длиной ), описывающим неизвестный дефектный набор, принято вводить вектор результата, описывающий результаты каждого теста.
С этими определениями неадаптивную задачу можно переформулировать следующим образом: сначала выбирается тестовая матрица, , после чего возвращается вектор . Затем задача заключается в анализе для нахождения некоторой оценки для .
В простейшем шумном случае, когда существует постоянная вероятность, , что групповой тест будет иметь ошибочный результат, рассматривается случайный двоичный вектор, , где каждая запись имеет вероятность быть , и в противном случае. Вектор, который возвращается, тогда равен , с обычным добавлением (эквивалентно, это поэлементная операция XOR ). Шумный алгоритм должен оценивать с использованием (то есть без прямого знания ). [5]
Матричное представление позволяет доказать некоторые границы неадаптивного группового тестирования. Подход отражает подход многих детерминированных конструкций, где рассматриваются -разделимые матрицы, как определено ниже. [3]
Когда является проверочной матрицей, свойство быть -разделимым ( -separable) эквивалентно способности различать (до) дефектных. Однако это не гарантирует, что это будет просто. Более сильное свойство, называемое дизъюнктностью , делает это.
Полезное свойство -дизъюнктных матриц тестирования заключается в том, что при наличии до дефектных элементов каждый недефектный элемент появится хотя бы в одном тесте с отрицательным результатом. Это означает, что существует простая процедура поиска дефектных элементов: просто удалите каждый элемент, который появляется в отрицательном тесте.
Используя свойства -разделимых и -дизъюнктных матриц, можно показать следующее для задачи выявления дефектных изделий среди общего количества изделий. [4]
Обобщенный алгоритм бинарного разделения представляет собой по сути оптимальный адаптивный алгоритм группового тестирования, который находит или уменьшает количество дефектных элементов следующим образом: [3] [16]
Обобщенный алгоритм двоичного разделения требует не более чем тестов, где . [3]
Для больших можно показать, что , [3] что выгодно отличается от тестов, требуемых для алгоритма Ли -stage. Фактически, обобщенный алгоритм бинарного разбиения близок к оптимальному в следующем смысле. Когда можно показать, что , где - нижняя граница информации. [3] [16]
Неадаптивные алгоритмы группового тестирования, как правило, предполагают, что число дефектных или, по крайней мере, их хорошая верхняя граница известны. [5] Это количество обозначено в этом разделе. Если границы неизвестны, существуют неадаптивные алгоритмы с низкой сложностью запроса, которые могут помочь оценить . [23]
Комбинаторный ортогональный поиск совпадений (COMP) — это простой неадаптивный алгоритм группового тестирования, который составляет основу более сложных алгоритмов, описанных в этом разделе.
Во-первых, каждая запись проверочной матрицы выбирается с вероятностью , а в противном случае — с вероятностью .
Шаг декодирования выполняется по столбцам (т. е. по элементам). Если каждый тест, в котором появляется элемент, положителен, то элемент объявляется дефектным; в противном случае элемент считается исправным. Или, что эквивалентно, если элемент появляется в любом тесте, результат которого отрицателен, элемент объявляется исправным; в противном случае элемент считается дефектным. Важным свойством этого алгоритма является то, что он никогда не создает ложных отрицательных результатов , хотя ложный положительный результат возникает, когда все местоположения с единицами в j -ом столбце (соответствующем исправному элементу j ) «скрыты» единицами других столбцов, соответствующих дефектным элементам.
Алгоритм COMP требует не более тестов, чтобы вероятность ошибки была меньше или равна . [5] Это находится в пределах постоянного множителя нижней границы для средней вероятности ошибки выше.
В шумном случае ослабляется требование в исходном алгоритме COMP, чтобы набор расположений единиц в любом столбце, соответствующем положительному элементу, полностью содержался в наборе расположений единиц в результирующем векторе. Вместо этого допускается определенное количество «несовпадений» — это количество несовпадений зависит как от количества единиц в каждом столбце, так и от параметра шума, . Этот шумный алгоритм COMP требует не более тестов для достижения вероятности ошибки не более . [5]
Метод определенных дефектов (DD) является расширением алгоритма COMP, который пытается удалить любые ложные срабатывания. Было показано, что гарантии производительности для DD строго превышают гарантии COMP. [21]
Шаг декодирования использует полезное свойство алгоритма COMP: каждый элемент, который COMP объявляет недефектным, определенно недефектен (то есть нет ложных отрицательных результатов). Он действует следующим образом.
Обратите внимание, что шаги 1 и 2 никогда не делают ошибку, поэтому алгоритм может сделать ошибку только в том случае, если он объявляет дефектный элемент недефектным. Таким образом, алгоритм DD может создавать только ложные отрицательные результаты.
SCOMP (Sequential COMP) — это алгоритм, который использует тот факт, что DD не делает ошибок до последнего шага, где предполагается, что оставшиеся элементы не являются дефектными. Пусть набор заявленных дефектных элементов будет . Положительный тест называется объясненным , если он содержит хотя бы один элемент в . Ключевое наблюдение относительно SCOMP заключается в том, что набор дефектных элементов, обнаруженных DD, может не объяснять каждый положительный тест, и что каждый необъясненный тест должен содержать скрытый дефектный элемент.
Алгоритм работает следующим образом.
В ходе моделирования было показано, что SCOMP работает практически оптимально. [21]
Детерминированный алгоритм, который гарантированно точно идентифицирует вплоть до положительных значений, — это полиномиальные пулы (PP). . [24] Алгоритм предназначен для построения матрицы объединения , которую можно напрямую использовать для декодирования наблюдений в . Подобно COMP, выборка декодируется в соответствии с соотношением: , где представляет собой поэлементное умножение, а — й столбец . Поскольку шаг декодирования несложный, PP специализируется на генерации .
Группа/пул генерируется с использованием полиномиального отношения, которое определяет индексы образцов, содержащихся в каждом пуле. Набор входных параметров определяет алгоритм. Для простого числа и целого числа любая степень простого числа определяется как . Для параметра размерности общее количество образцов равно , а количество образцов на пул равно . Кроме того, конечное поле порядка обозначается как (т. е. целые числа, определяемые специальными арифметическими операциями, которые гарантируют, что сложение и умножение в остается в ). Метод размещает каждый образец в сетке и представляет его координатами . Координаты вычисляются в соответствии с полиномиальным отношением с использованием целых чисел ,
Комбинация циклов по значениям представлена набором с элементами последовательности целых чисел, т. е. , где . Без потери общности комбинация такова, что циклы каждый раз, циклы каждый раз до циклы только один раз. Формулы, вычисляющие индексы выборки и, таким образом, соответствующие пулы для фиксированного и , задаются как
Вычисления в можно реализовать с помощью общедоступных библиотек программного обеспечения для конечных полей, когда — степень простого числа. Когда — простое число, то вычисления в упрощаются до модульной арифметики, т. е . Пример того, как сгенерировать один пул , когда показан в таблице ниже, а соответствующий выбор образцов показан на рисунке выше.
Этот метод использует тесты для точного определения до положительных результатов среди образцов. Из-за этого PP особенно эффективен для больших размеров выборки, поскольку количество тестов растет только линейно по отношению к , в то время как выборки растут экспоненциально с этим параметром. Однако PP может быть эффективен и для небольших размеров выборки. [24]
Общность теории группового тестирования позволяет использовать ее во многих разнообразных приложениях, включая скрининг клонов, обнаружение коротких замыканий; [3] высокоскоростные компьютерные сети; [25] медицинское обследование, количественный поиск, статистику; [18] машинное обучение, секвенирование ДНК; [26] криптографию; [27] [28] и криминалистику данных. [29] В этом разделе представлен краткий обзор небольшой выборки этих приложений.
Канал множественного доступа — это канал связи, который соединяет множество пользователей одновременно. Каждый пользователь может слушать и передавать по каналу, но если одновременно передают более одного пользователя, сигналы сталкиваются и сводятся к неразборчивому шуму. Каналы множественного доступа важны для различных приложений реального мира, в частности, беспроводных компьютерных сетей и телефонных сетей. [30]
Одной из важных проблем с каналами множественного доступа является назначение пользователям времени передачи, чтобы их сообщения не сталкивались. Простой метод — предоставить каждому пользователю свой собственный временной интервал для передачи, требующий слотов. (Это называется мультиплексированием с временным разделением , или TDM.) Однако это очень неэффективно, поскольку назначает слоты передачи пользователям, у которых может не быть сообщения, и обычно предполагается, что только несколько пользователей захотят передавать в любой момент времени — в противном случае канал множественного доступа изначально непрактичен.
В контексте группового тестирования эта проблема обычно решается путем деления времени на «эпохи» следующим образом. [3] Пользователь называется «активным», если у него есть сообщение в начале эпохи. (Если сообщение генерируется в течение эпохи, пользователь становится активным только в начале следующей.) Эпоха заканчивается, когда каждый активный пользователь успешно передал свое сообщение. Затем проблема заключается в том, чтобы найти всех активных пользователей в данной эпохе и запланировать время для них для передачи (если они еще не сделали этого успешно). Здесь тест на наборе пользователей соответствует тем пользователям, которые пытаются передать. Результатами теста являются количество пользователей, которые пытались передать, и , соответствующие соответственно отсутствию активных пользователей, ровно одному активному пользователю (успешное сообщение) или более чем одному активному пользователю (коллизия сообщений). Таким образом, используя адаптивный алгоритм группового тестирования с результатами , можно определить, какие пользователи хотят передать в эпоху. Затем любому пользователю, который еще не совершил успешную передачу, теперь можно назначить слот для передачи, не тратя время на неактивных пользователей.
Машинное обучение — это область компьютерной науки, которая имеет множество программных приложений, таких как классификация ДНК, обнаружение мошенничества и целевая реклама. Одной из основных подобластей машинного обучения является проблема «обучения на примерах», где задача состоит в том, чтобы аппроксимировать некоторую неизвестную функцию, когда задано ее значение в ряде определенных точек. [3] Как указано в этом разделе, эта проблема обучения функции может быть решена с помощью подхода группового тестирования.
В простом варианте задачи есть некоторая неизвестная функция, где , и (используя логическую арифметику: сложение — это логическое ИЛИ, а умножение — это логическое И). Здесь ' разрежено', что означает, что в большинстве ее элементов . Цель состоит в том, чтобы построить приближение к использованию точечных оценок, где является как можно меньшим. [4] (Точное восстановление соответствует алгоритмам с нулевой ошибкой, тогда как аппроксимируется алгоритмами, которые имеют ненулевую вероятность ошибки.)
В этой задаче восстановление эквивалентно нахождению . Более того, тогда и только тогда, когда существует некоторый индекс, , где . Таким образом, эта задача аналогична задаче группового тестирования с дефектными и общими элементами. Записи из являются элементами, которые дефектны, если они , задают тест, а тест положителен тогда и только тогда, когда . [4]
В действительности, часто будут интересоваться более сложными функциями, такими как , снова где . Сжатое зондирование , которое тесно связано с групповым тестированием, может быть использовано для решения этой проблемы. [4]
В сжатом измерении цель состоит в том, чтобы реконструировать сигнал, , путем проведения ряда измерений. Эти измерения моделируются как взятие скалярного произведения с выбранным вектором. [h] Цель состоит в том, чтобы использовать небольшое количество измерений, хотя это обычно невозможно, если не предположить что-то о сигнале. Одно из таких предположений (которое является общим [33] [34] ) заключается в том, что только небольшое количество записей являются значимыми , что означает, что они имеют большую величину. Поскольку измерения являются скалярными произведениями , справедливо уравнение , где — матрица, которая описывает набор выбранных измерений, а — набор результатов измерений. Эта конструкция показывает, что сжатое измерение — это своего рода «непрерывное» групповое тестирование.
Основная сложность сжатого зондирования заключается в определении того, какие записи являются значимыми. [33] После того, как это сделано, существует множество методов оценки фактических значений записей. [35] Эту задачу идентификации можно решить с помощью простого применения группового тестирования. Здесь групповой тест выдает комплексное число: сумму протестированных записей. Результат теста называется положительным, если он выдает комплексное число с большой величиной, что, учитывая предположение, что значимые записи разрежены, указывает на то, что по крайней мере одна значимая запись содержится в тесте.
Существуют явные детерминированные конструкции для этого типа алгоритма комбинаторного поиска, требующие измерений. [36] Однако, как и в случае с групповым тестированием, они не являются оптимальными, а случайные конструкции (такие как COMP) часто могут восстанавливаться сублинейно в . [35]
Во время пандемии, такой как вспышка COVID-19 в 2020 году, анализы на обнаружение вируса иногда проводятся с использованием неадаптивных схем группового тестирования. [37] [38] [39] Один из примеров был предоставлен проектом Origami Assays, который выпустил схемы группового тестирования с открытым исходным кодом для запуска на стандартном лабораторном 96-луночном планшете. [40]
В лабораторных условиях одной из проблем группового тестирования является то, что создание смесей может быть трудоемким и сложным для точного выполнения вручную. Анализы оригами стали обходным путем для этой проблемы создания, предоставив бумажные шаблоны, чтобы помочь технику распределить образцы пациентов по тестовым лункам. [41]
Используя самые большие групповые тестовые проекты (XL3), можно было протестировать 1120 образцов пациентов в 94 аналитических лунках. Если истинно положительный процент был достаточно низким, то дополнительное тестирование не требовалось.
Криминалистика данных — это область, посвященная поиску методов для сбора цифровых доказательств преступления. Такие преступления обычно связаны с тем, что злоумышленник изменяет данные, документы или базы данных жертвы, например, изменение налоговых записей, вирус, скрывающий свое присутствие, или вор личных данных, изменяющий персональные данные. [29]
Распространенным инструментом в криминалистике данных является односторонний криптографический хэш . Это функция, которая берет данные и с помощью труднообратимой процедуры создает уникальное число, называемое хешем. [i] Хэши, которые часто намного короче данных, позволяют нам проверять, были ли изменены данные, без необходимости расточительно хранить полные копии информации: хэш для текущих данных можно сравнить с прошлым хешем, чтобы определить, произошли ли какие-либо изменения. Неприятным свойством этого метода является то, что, хотя легко сказать, были ли данные изменены, нет способа определить, как: то есть невозможно восстановить, какая часть данных изменилась. [29]
Один из способов обойти это ограничение — хранить больше хэшей — теперь подмножеств структуры данных — чтобы сузить область, где произошла атака. Однако, чтобы найти точное место атаки с помощью наивного подхода, хэш должен быть сохранен для каждого элемента данных в структуре, что изначально сведет на нет смысл хэшей. (Можно также хранить обычную копию данных.) Групповое тестирование может использоваться для значительного сокращения количества хэшей, которые необходимо хранить. Тест становится сравнением между сохраненными и текущими хэшами, что является положительным, когда есть несоответствие. Это указывает на то, что по крайней мере один отредактированный элемент данных (который принимается за дефектность в этой модели) содержится в группе, которая сгенерировала текущий хэш. [29]
Фактически, количество необходимых хэшей настолько мало, что они, вместе с тестовой матрицей, на которую они ссылаются, могут даже храниться в организационной структуре самих данных. Это означает, что в отношении памяти тест может быть выполнен «бесплатно». (Это справедливо за исключением главного ключа/пароля, который используется для тайного определения функции хэширования.) [29]