4846
правок
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
| (не показано 14 промежуточных версий этого же участника) | |||
| Строка 5: | Строка 5: | ||
'''Задача и модель''' | '''Задача и модель''' | ||
Задача о статической структуре данных состоит из набора данных D, набора запросов Q, набора ответов A и функции <math>f: D \times Q \to A</math>. Целью является хранение данных в сжатом виде, чтобы на любой запрос можно было ответить с помощью всего нескольких обращений к структуре данных. ''Статическая задача о принадлежности'' представляет собой хорошо изученный раздел в проектировании структур данных [1, 4, 7, 8, 12, 13, 16]. | Задача о статической структуре данных состоит из набора данных D, набора запросов Q, набора ответов A и функции <math>f: D \times Q \to A</math>. Целью является хранение данных в сжатом виде таким образом, чтобы на любой запрос можно было ответить с помощью всего нескольких обращений к структуре данных, или зондирований. ''Статическая задача о принадлежности'' представляет собой хорошо изученный раздел в проектировании структур данных [1, 4, 7, 8, 12, 13, 16]. | ||
| Строка 14: | Строка 14: | ||
'''Определение 2 (модель клеточного зонда)'''. Схема клеточного зонда (s, w, t) для решения задачи о статической структуре данных <math> | '''Определение 2 (модель клеточного зонда)'''. Схема клеточного зонда (s, w, t) для решения задачи о статической структуре данных <math>f: D \times Q \to A</math> состоит из двух компонентов: схемы хранения и схемы выполнения запросов. Схема хранения хранит данные <math>d \in D</math> в виде таблицы <math>T[d]</math> из <math>s</math> клеток, каждая из которых содержит слово размером <math>w</math> бит. Схема хранения является детерминированной. Если задан запрос <math>q \in Q</math>, схема выполнения запроса вычисляет <math>f(d, q)</math>, выполняя не более <math>t</math> зондирований <math>T[d]</math>, причем каждое зондирование читает по одной клетке за раз, а сами операции зондирования могут быть адаптивными. В детерминированной схеме клеточного зонда схема выполнения запросов является детерминированной. В рандомизированной схеме клеточного зонда схема выполнения запросов рандомизирована и может ошибаться с небольшой вероятностью. | ||
Бурман и коллеги [2] изучают сложность статической задачи о принадлежности в модели ''битового зонда''. Это вариация модели клеточного зонда, в которой каждая клетка содержит всего один бит. Иными словами, размер слова w равен 1. Таким образом, в этой модели алгоритму запроса предоставляется побитовый доступ к структуре данных. Изучение задачи о принадлежности в модели битового зонда было начато Минским и Папертом в книге «[[Перцептроны]]» [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%86%D0%B5%D0%BF%D1%82%D1%80%D0%BE%D0%BD%D1%8B_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0] [12]. Однако их интересовали верхние границы ''в среднем случае', тогда как далее рассматриваются границы для задачи о принадлежности ''в наихудшем случае''. | Бурман и коллеги [2] изучают сложность статической задачи о принадлежности в модели ''битового зонда''. Это вариация модели клеточного зонда, в которой каждая клетка содержит всего один бит. Иными словами, размер слова w равен 1. Таким образом, в этой модели алгоритму запроса предоставляется побитовый доступ к структуре данных. Изучение задачи о принадлежности в модели битового зонда было начато Минским и Папертом в книге «[[Перцептроны]]» [https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%86%D0%B5%D0%BF%D1%82%D1%80%D0%BE%D0%BD%D1%8B_(%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0] [12]. Однако их интересовали верхние границы ''в среднем случае'', тогда как далее рассматриваются границы для задачи о принадлежности ''в наихудшем случае''. | ||
Заметим, что если от схемы требуется хранить множества размером не более n, то она должна использовать не менее <math>\lceil log \; \sum_{i \le n} \tbinom{m}{i} \rceil</math> бит. Если <math>n \le m^{1 - \Omega(1)}</math>, это означает, что схема должна хранить <math>\Omega(n \; log \; m)</math> бит (и, следовательно, использовать <math>\Omega(n)</math> | Заметим, что если от схемы требуется хранить множества размером не более n, то она должна использовать не менее <math>\lceil log \; \sum_{i \le n} \tbinom{m}{i} \rceil</math> бит. Если <math>n \le m^{1 - \Omega(1)}</math>, это означает, что схема должна хранить <math>\Omega(n \; log \; m)</math> бит (и, следовательно, использовать <math>\Omega(n)</math> клеток). Целью работы [2] является получение схемы, которая отвечает на запросы с помощью постоянного числа битовых зондов и при этом использует таблицу размером <math>O(n \; log \; m)</math> бит. | ||
== Родственные работы == | == Родственные работы == | ||
Статическая задача о принадлежности хорошо изучена в модели клеточного зонда, где каждая клетка способна вместить один элемент совокупности | Статическая задача о принадлежности хорошо изучена в модели клеточного зонда, где каждая клетка способна вместить один элемент совокупности, то есть w = O (log m). В своей фундаментальной работе Фредман и др. [8] предложили схему для решения статической задачи о принадлежности в модели клеточного зонда с размером слова O(log m), которая использует постоянное количество зондов и таблицу размера O(n). Далее эта схема будет называться схемой FKS. Таким образом, с точностью до постоянных коэффициентов схема FKS использует оптимальные объем памяти и количество клеточных зондов. Фактически, Фиат и др. [7], Бродник и Манро [1] и Паг [13] получили схемы, которые используют объем памяти (в битах) с поправкой на небольшой аддитивный член <math>\lceil log \; \sum_{i \le n} \tbinom{m}{i} \rceil</math> и отвечают на запросы, считывая не более чем постоянное число клеток. Несмотря на все эти фундаментальные результаты для задачи о принадлежности в модели клеточного зонда, до выхода работы [2] было очень мало известно о сложности этой задачи в модели битового зонда. | ||
== Основные результаты == | == Основные результаты == | ||
| Строка 30: | Строка 30: | ||
• Рандомизированные схемы с двусторонней ошибкой, которым разрешено ошибаться как в положительных, так и в отрицательных случаях (то есть эти схемы могут с малой вероятностью сказать «Нет», когда запрашиваемый элемент u содержится в множестве S, и «Да», когда это не так); | • Рандомизированные схемы с двусторонней ошибкой, которым разрешено ошибаться как в положительных, так и в отрицательных случаях (то есть эти схемы могут с малой вероятностью сказать «Нет», когда запрашиваемый элемент u содержится в множестве S, и «Да», когда это не так); | ||
• Рандомизированные схемы с односторонней ошибкой, в которых ошибки ограничены только отрицательными случаями (то есть эти схемы никогда не дают ответа «Нет», когда | • Рандомизированные схемы с односторонней ошибкой, в которых ошибки ограничены только отрицательными случаями (то есть эти схемы никогда не дают ответа «Нет», когда запрашиваемый элемент u содержится в множестве S); | ||
• Детерминированные схемы, в которых ошибки не допускаются. Основные приемы, используемые в [ ], основаны на двухцветных раскрасках систем специальных множеств, связанных с «r-cover-free семейством множеств» // семейство множеств, в котором ни одно из множеств не содержится в объединении r (или меньше) других множеств из этого же семейства//, рассмотренным в [3,5,9]. Более подробную информацию можно найти в | • Детерминированные схемы, в которых ошибки не допускаются. Основные приемы, используемые в работе [2], основаны на двухцветных раскрасках систем специальных множеств, связанных с «r-cover-free семейством множеств» ''//семейство множеств, в котором ни одно из множеств не содержится в объединении r (или меньше) других множеств из этого же семейства//'', рассмотренным в [3, 5, 9]. Более подробную информацию можно найти в [2]. | ||
'''Рандомизированные схемы с двусторонней ошибкой''' | '''Рандомизированные схемы с двусторонней ошибкой''' | ||
Основной результат работы [2] показывает, что существуют рандомизированные схемы, использующие только один битовый зонд и объем памяти, близкий к теоретико-информационной нижней границе | Основной результат работы [2] показывает, что существуют рандомизированные схемы, использующие ''только один битовый зонд'' и объем памяти, близкий к теоретико-информационной нижней границе <math>\Omega(n \; log \; m)</math> бит. | ||
Теорема 1. Для любого 0 < | '''Теорема 1. Для любого <math>0 < \epsilon \le \frac{1}{4}</math> существует схема хранения подмножеств S размером не более n с элементами из совокупности размера m с использованием <math>O(\frac{n}{\epsilon^2} \; log \; m)</math> бит, такая, что на любой запрос вида «Принадлежит ли u к S?» можно ответить с вероятностью ошибки не более <math>\epsilon</math> с помощью рандомизированного алгоритма, который зондирует память только в одном месте, определяемом броском монеты и элементом запроса u.''' | ||
Заметим, что рандомизация допускается только в алгоритме запроса. По-прежнему считается, что для каждого множества S существует ровно одна связанная с ним структура данных T(S). Можно показать, что детерминированные схемы, отвечающие на запросы с помощью одного битового зонда, | Заметим, что рандомизация допускается только в алгоритме запроса. По-прежнему считается, что для каждого множества S существует ровно одна связанная с ним структура данных T(S). Можно показать, что детерминированные схемы, отвечающие на запросы с помощью одного битового зонда, требуют m бит памяти (см. замечание после теоремы 4). Теорема 1 показывает: если разрешить рандомизацию, то это ограничение (при постоянном <math>\epsilon</math>) можно сократить до O(n log m) бит. Этот объем памяти не более чем на постоянный множитель отличается от теоретико-информационной границы для достаточно малых n. При этом рандомизированная схема отвечает на запросы с помощью одного битового зонда. | ||
К сожалению, приведенная выше конструкция не позволяет иметь псевдопостоянную вероятность ошибки и одновременно с этим использовать оптимальный объем памяти. Можно ли еще улучшить результат Теоремы 1 и сконструировать такую схему? В работе [ ] показано, что это невозможно: если сделать ошибку | К сожалению, приведенная выше конструкция не позволяет иметь псевдопостоянную вероятность ошибки и одновременно с этим использовать оптимальный объем памяти. Можно ли еще улучшить результат Теоремы 1 и сконструировать такую схему? В работе [2] показано, что это невозможно: если сделать ошибку <math>\epsilon</math> псевдопостоянной, то схема будет вынуждена использовать памяти больше, чем n log m. | ||
Теорема 2. Предположим, что | '''Теорема 2. Предположим, что <math>\frac{n}{m^{1/3}} \le \epsilon \le \frac{1}{4}</math>. Тогда любой рандомизированной схеме с двухсторонней ошибкой <math>\epsilon</math>, отвечающей на запросы с помощью одного битового зонда, требуется объем памяти <math>\Omega \big( \frac{n}{\epsilon \; log(1/\epsilon)} \; log \; m \big)</math>.''' | ||
| Строка 57: | Строка 57: | ||
Теорема 3. Для любого 0 < | '''Теорема 3. Для любого <math>0 < \epsilon \le \frac{1}{4}</math> существует схема хранения подмножеств S размером не более n с элементами из совокупности размера m с использованием <math>O \big( \big(\frac{n}{\epsilon} \big)^2 \; log \; m \big)</math> бит, так что на любой запрос вида «Принадлежит ли u к S?» можно ответить с вероятностью ошибки не более <math>\epsilon</math> с помощью рандомизированного алгоритма, который делает единственный битовый запрос к структуре данных. Более того, если <math>u \in S</math>, то вероятность ошибки равна 0.''' | ||
Хотя эта схема и не обеспечивает оптимальное использование памяти, она все же требует ее значительно меньше, чем битовый вектор. Однако зависимость от n квадратичная, в отличие от схемы с двусторонней ошибкой, где она была линейной. В работе [ ] показано, что эта схема практически оптимальна: для любой схемы с односторонней ошибкой обязательно существует квадратичная зависимость от | Хотя эта схема и не обеспечивает оптимальное использование памяти, она все же требует ее значительно меньше, чем битовый вектор. Однако зависимость от n квадратичная, в отличие от схемы с двусторонней ошибкой, где она была линейной. В работе [2] показано, что эта схема практически оптимальна: для любой схемы с односторонней ошибкой обязательно существует квадратичная зависимость от <math>\frac{n}{\epsilon}</math>. | ||
Теорема 4. Предположим, что | '''Теорема 4. Предположим, что <math>\frac{n}{m^{1/3}} \le \epsilon \le \frac{1}{4}</math>. Рассмотрим статическую задачу о принадлежности для множеств S размера не более n из совокупности размера m. Тогда любая схема с односторонней ошибкой <math>\epsilon</math>, отвечающая на запросы с использованием не более одного битового зонда, должна использовать <math>\Omega \big( \frac{n^2}{\epsilon^2 \; log(n/\epsilon)} \; log \; m \big)</math> бит памяти.''' | ||
Замечание. Можно также рассмотреть однозондовые схемы с односторонней ошибкой, которые допускают ошибки только в положительных экземплярах. Это означает, что для элементов запроса, не входящих в множество S, ошибки не допускаются. | |||
''Замечание''. Можно также рассмотреть однозондовые схемы с односторонней ошибкой, которые допускают ошибки только в положительных экземплярах. Это означает, что для элементов запроса, ''не входящих'' в множество S, ошибки не допускаются. | |||
| Строка 73: | Строка 74: | ||
Теорема 5. Предположим, что 0 < | '''Теорема 5. Предположим, что <math>0 < \delta < 1</math>. Существует рандомизированная схема с односторонней ошибкой <math>n^{- \delta}</math>, которая решает статическую задачу о принадлежности, используя <math>O(n^{1 + \delta} \; log \; m)</math> бит памяти и <math>O( \frac{1}{\delta})</math> битовых зондов.''' | ||
'''Детерминированные схемы''' | '''Детерминированные схемы''' | ||
Бурман и коллеги показали, что детерминированные схемы, в отличие от рандомизированных, | Бурман и коллеги показали, что детерминированные схемы, в отличие от рандомизированных, позволяют получить компромиссное соотношение времени и памяти. | ||
Теорема 6. Предположим, что детерминированная схема хранит подмножества размера n из совокупности размера m, используя | '''Теорема 6. Предположим, что детерминированная схема хранит подмножества размера n из совокупности размера m, используя s бит памяти, и отвечает на запросы о принадлежности с помощью t битовых зондов с запросами к памяти. Тогда <math>\tbinom{m}{n} \le max_{i \le nt} \tbinom{2s}{i}</math>.''' | ||
У этого компромиссного результата есть интересное следствие. Вспомним, что схема хэширования FKS представляет собой структуру данных для хранения множеств размером не более n из совокупности размера m с использованием O(n log m) бит, | У этого компромиссного результата есть интересное следствие. Вспомним, что схема хэширования FKS представляет собой структуру данных для хранения множеств размером не более n из совокупности размера m с использованием O(n log m) бит таким образом, что на запросы о принадлежности можно отвечать с использованием O(log m) битовых зондов. В качестве следствия этого компромиссного результата в работе [2] показано, что схема FKS применяет оптимальное количество битовых зондов с поправкой на постоянный коэффициент для данного объема памяти. | ||
Следствие 1. Пусть | ''Следствие 1''. Пусть <math>\epsilon > 0, c \ge 1</math> – любые константы. Существует константа <math>\delta > 0</math>, такая, что верно следующее утверждение. Пусть <math>n \le m^{1 - \epsilon}</math>, и пусть задана схема хранения множеств размером не более n из совокупности размера m в виде структур данных размером не более <math>cn \; log \; m</math> бит. Тогда любой детерминированный алгоритм, отвечающий на запросы о принадлежности, используя эту структуру, должен в наихудшем случае использовать не менее <math>\delta \; log \; m</math> битовых зондов. | ||
Из Теоремы 6 также следует, что любая детерминированная схема, отвечающая на запросы с использованием t битовых зондов, в наихудшем случае должна занимать не менее ntm ^ | Из Теоремы 6 также следует, что любая детерминированная схема, отвечающая на запросы с использованием t битовых зондов, в наихудшем случае должна занимать не менее <math>ntm^{\Omega(1/t)}</math> бит памяти. Последний результат доказывает существование схем, почти достигающих нижней границы. | ||
Теорема 7. | '''Теорема 7.''' | ||
1. Существует неадаптивная схема, которая хранит множества размером не более n из совокупности размера m с использованием O( | '''1. Существует неадаптивная схема, которая хранит множества размером не более n из совокупности размера m с использованием <math>O(ntm^{\frac{2}{t + 1}})</math> бит памяти и отвечает на запросы с использованием 2t + 1 битовых зондов. Это неявная схема.''' | ||
2. Существует явная адаптивная схема, которая хранит множества размером не более n из совокупности размера m с использованием O( | '''2. Существует явная адаптивная схема, которая хранит множества размером не более n из совокупности размера m с использованием <math>O(m^{1/t} n \; log \; m)</math> бит памяти и отвечает на запросы с использованием O(log n + loglog m) + t битовых зондов.''' | ||
== Применение == | == Применение == | ||
Результаты, полученные в [ ], имеют | Результаты, полученные в [2], имеют любопытные связи с вопросами теории кодирования и коммуникационной сложности. В рамках теории кодирования результаты работы [2] можно рассматривать как построение локально декодируемых исходных кодов, аналогичных локально декодируемым канальным кодам из [10]. Теоремы 1-4 также можно рассматривать как жесткие границы для следующей задачи коммуникационной сложности, приведенной в [11]: Алиса получает <math>u \in \{1, ..., m\} </math>, Боб получает <math>S \subseteq \{ 1, ..., m \}</math> размера не более n, и Алиса посылает одно сообщение Бобу, после чего Боб объявляет, выполняется ли <math>u \in S</math>. Более подробную информацию см. в [2]. | ||
== Литература == | == Литература == | ||
правок