предикат BIT
В математике и информатике BIT предикат иногда пишется , является предикатом , который проверяет, является ли й бит числа (начиная с младшей цифры ) равно 1, когда записывается как двоичное число . Его математические приложения включают моделирование отношения принадлежности наследственно конечных множеств и определение отношения смежности графа Радо . В информатике он используется для эффективного представления наборов структур данных с использованием битовых векторов , при определении проблемы поиска частной информации из сложности связи , а также в описательной теории сложности для формулирования логических описаний классов сложности .
История [ править ]
Предикат BIT был впервые введен в 1937 году Вильгельмом Аккерманом для определения кодирования Аккермана , которое кодирует наследственно конечные множества как натуральные числа . [1] [2] Предикат BIT можно использовать для проверки членства закодированных наборов: истинно тогда и только тогда, когда набор , закодированный является членом набора, закодированного . [1]
Аккерман обозначил предикат как , используя шрифт Fraktur, чтобы отличить его от обозначения который он использовал для членства в наборе (сокращение от " является элементом « на немецком языке). [1] Обозначения , а название «предикат BIT» взято из работы Рональда Феджина и Нила Иммермана , которые применили этот предикат в теории сложности вычислений как способ кодирования и декодирования информации в конце 1980-х — начале 1990-х годов. [а]
Описание и реализация [ править ]
Двоичное представление числа является выражением для как сумма различных степеней двойки ,
В таких языках программирования, как C , C++ , Java или Python , которые предоставляют оператор сдвига вправо. >>
и побитовое логическое значение и оператор &
, предикат BIT может быть реализовано выражением (i>>j)&1
. Подвыражение i>>j
сдвигает биты в двоичном представлении так что немного сдвигается в позицию 0, а подвыражение &1
маскирует оставшиеся биты, оставляя только бит в позиции 0. Как и в приведенной выше формуле модульной арифметики, значение выражения равно 1 или 0 соответственно, как значение истинно или ложно. [9]
Приложения [ править ]
Установить структуры данных [ править ]
Для набора, представленного в виде битового массива , предикат BIT можно использовать для проверки членства в наборе. Например, подмножества неотрицательных целых чисел может быть представлен битовым массивом с единицей в позиции когда является членом подмножества и имеет ноль в этой позиции, если оно не является членом. Когда такой битовый массив интерпретируется как двоичное число, набор для различных представляется как двоичное число . Если представляет собой множество, представленное таким образом, и число, которое может быть или не быть элементом , затем возвращает ненулевое значение, когда является членом и нулем, если это не так. [с]
Тот же метод можно использовать для проверки принадлежности к подмножествам любой последовательности. различных значений, закодированных с использованием степеней двойки, показатели степени которых являются позициями элементов в этой последовательности, а не их значениями. Например, в среде коллекций Java java.util.EnumSet
использует эту технику для реализации заданной структуры данных для перечислимых типов . [11] Кодирование Акерманом наследственно конечных множеств является примером этого метода для рекурсивно генерируемой последовательности наследственно конечных множеств. [д]
Получение частной информации [ править ]
В математическом исследовании компьютерной безопасности проблему поиска частной информации можно смоделировать как задачу, в которой клиент взаимодействует с набором серверов, хранящих двоичное число. , желает определить результат предиката BIT не разглашая стоимость на серверы. Чор и др. (1998) описывают метод репликации между двумя серверами таким образом, чтобы клиент мог решить проблему поиска конфиденциальной информации, используя существенно меньший объем связи, чем было бы необходимо для восстановления полной стоимости . [13]
Сложность и логика [ править ]
Предикат BIT часто рассматривается в контексте логики первого порядка , где системы логики возникают в результате добавления предиката BIT к логике первого порядка. В описательной сложности класс сложности FO описывает класс формальных языков , которые могут быть описаны формулой в логике первого порядка с операцией сравнения полностью упорядоченных переменных (интерпретируемых как индексы символов в строке ) и с предикатами, проверяющими имеет ли эта строка данный символ по данному числовому индексу. Формула в этой логике определяет язык, состоящий из его конечных моделей . [и] только очень ограниченный класс языков — регулярные языки без звезд . Однако с помощью этих операций можно описать [15] Добавление предиката BIT к набору операций, используемых в этих логических формулах, приводит к созданию более надежного класса сложности FO[BIT] , что означает, что он менее чувствителен к незначительным изменениям в его определении. [ф]
Класс FO[BIT] аналогичен классу FO[+,×] логики первого порядка с предикатами сложения и умножения. [14] Он также аналогичен сложности схемы классу DLOGTIME — однородный переменный ток. 0 . Здесь, АС 0 описывает проблемы, которые могут быть решены с помощью схем логических элементов И и ИЛИ с полиномиальным размером, ограниченной высотой и неограниченным ответвлением. «Единый» означает, что схемы всех размеров задач должны описываться одним алгоритмом. Более конкретно, должна быть возможность индексировать элементы каждой схемы по номерам таким образом, чтобы тип каждого элемента и смежность между любыми двумя элементами можно было вычислить с помощью детерминированного алгоритма, время которого логарифмировано размером схемы. (ДЛОГТАЙМ). [6] [16]
Построение графика Радо [ править ]
В 1964 году немецко-британский математик Ричард Радо использовал предикат BIT для построения бесконечного графа Радо . Конструкция Радо представляет собой не что иное, как симметризацию конструкции Аккермана 1937 года наследственных конечных множеств из предиката BIT: две пронумерованные вершины и смежны в графе Радо, когда либо или ненулевое значение. [17]
Полученный граф обладает многими важными свойствами: он содержит каждый конечный неориентированный граф как индуцированный подграф , и любой изоморфизм его индуцированных подграфов может быть расширен до симметрии всего графа. [8]
Примечания [ править ]
- ^ Раннее использование имени предиката BIT - Иммерман (1989) . [3] В статье 1990 года Дэвид Микс Баррингтон приписывает обозначения и их применение в описательной сложности — Феджину; Баррингтон благодарит Фейгина за то, что он вдохновил Иммермана на работу в этой области. [4] Однако Айтай и Феджин (1990) ссылаются на «отношение BIT Иммермана ». [5]
- ^ Об асимметрии отношения принадлежности к множеству, которое кодирует предикат BIT, см. Cameron (2001) . [8]
- ^ Арндт (2011) . Арндт реализует предикат BIT с помощью
S&(1<<i)
скорее, чем(S>>i)&1
, но результат одинаково равен нулю или ненулевому для обеих реализаций. [10] - ^ Тарау (2010) . Реализация Тарау теста членства (как
inSet
в разделе «Вывод операций над множествами») сводится к проверке того,S&(1<<i) == 1<<i
скорее, чем(S>>i)&1
, аналогично тому, что было у Арндта (2011) . [12] - ^ В некоторых источниках этот класс пишется FO[<] для обозначения операции сравнения; однако при определении классов сложности из логики таким способом нельзя опускать операцию сравнения, [14] поэтому нет необходимости указывать, что оно присутствует.
- ^ Иммерман (1999) , с. 13: «Добавление BIT... делает набор определяемых логических запросов первого порядка более надежным классом сложности».
Ссылки [ править ]
- ↑ Перейти обратно: Перейти обратно: а б с Акерманн, Вильгельм (1937). «Непротиворечивость общей теории множеств» . Математические анналы (на немецком языке). 114 :305-315. дои : 10.1007/bf01594179 . S2CID 120576556 . Проверено 9 января 2012 г.
- ↑ Перейти обратно: Перейти обратно: а б Кирби, Лоуренс (2009). «Теория финитарных множеств» . Журнал формальной логики Нотр-Дама . 50 (3): 227–244. дои : 10.1215/00294527-2009-009 .
- ^ Иммерман, Нил (1989). «Выразимость и параллельная сложность». SIAM Journal по вычислительной технике . 18 (3): 625–638. дои : 10.1137/0218043 . МР 0996841 .
- ^ Микс Баррингтон, Дэвид А. (1990). «Расширение идеи Макнотона». Теория математических систем . 23 (3): 147–164. дои : 10.1007/BF02090772 . МР 1062347 . S2CID 198177167 .
- ^ Айтаи, Миклош ; Феджин, Рональд (1990). «Достижимость для ориентированных графов сложнее, чем для неориентированных конечных графов». Журнал символической логики . 55 (1): 113–150. дои : 10.2307/2274958 . JSTOR 2274958 . МР 1043548 . S2CID 14177866 .
- ↑ Перейти обратно: Перейти обратно: а б Линделл, Стивен (1992). «Чисто логическая характеристика однородности схемы» (PDF) . Материалы седьмой ежегодной конференции по теории сложности, Бостон, Массачусетс, США, 22-25 июня 1992 г. Компьютерное общество IEEE. стр. 185–192. дои : 10.1109/SCT.1992.215393 .
- ^ Раутенберг, Вольфганг (2010). Краткое введение в математическую логику (3-е изд.). Нью-Йорк : Springer Science + Business Media . п. 261. дои : 10.1007/978-1-4419-1221-3 . ISBN 978-1-4419-1220-6 .
- ↑ Перейти обратно: Перейти обратно: а б Кэмерон, Питер Дж. (2001). «Возвращение к случайному графу» (PDF) . Европейский математический конгресс , Vol. Я (Барселона, 2000) . прогр. Математика. Том. 201. Базель: Биркхойзер. стр. 267–274. дои : 10.1007/978-3-0348-8268-2_15 . МР 1905324 .
- ^ Венугопал, КР (1997). Освоение С++ . Издательская компания Тата МакГроу-Хилл. п. 123. ИСБН 9780074634547 . .
- ^ Арндт, Йорг (2011). «1.9.2: Проверка наличия элемента в заданном наборе». Вопросы вычислений: идеи, алгоритмы, исходный код (PDF) . Спрингер. п. 24.
- ^ Блох, Джошуа (2008). «Пункт 32: Используйте enumSet вместо битовых полей» . Эффективная Java (2-е изд.). Аддисон-Уэсли Профессионал. стр. 159–160. ISBN 9780132778046 .
- ^ Тарау, Пол (2010). «Единое формальное описание арифметических и множественных теоретических типов данных». В Отексье, Серж; Кальме, Жак; Делахай, Дэвид; Ион, Патрик Д.Ф.; Ридо, Лоуренс; Риубу, Рено; Секстон, Алан П. (ред.). Интеллектуальная компьютерная математика, 10-я Международная конференция, AISC 2010, 17-й симпозиум, Calculemus 2010 и 9-я Международная конференция, MKM 2010, Париж, Франция, 5–10 июля 2010 г., Труды . Конспекты лекций по информатике. Том. 6167. Спрингер. стр. 247–261. arXiv : 1006.5768 . дои : 10.1007/978-3-642-14128-7_21 .
- ^ Чор, Бенни ; Кушилевиц, Эяль; Гольдрейх, Одед ; Судан, Мадху (1998). «Поиск частной информации» . Журнал АКМ . 45 (6): 965–981. дои : 10.1145/293347.293350 . S2CID 544823 . .
- ↑ Перейти обратно: Перейти обратно: а б Иммерман, Нил (1999). Описательная сложность . Нью-Йорк: Springer-Verlag. стр. 13–16 . ISBN 0-387-98600-6 .
- ^ Перрен, Доминик ; Пин, Жан-Эрик (1986). «Логика первого порядка и беззвездные множества» . Журнал компьютерных и системных наук . 32 (3): 393–406. дои : 10.1016/0022-0000(86)90037-1 . МР 0858236 .
- ^ Микс Баррингтон, Дэвид А.; Иммерман, Нил ; Штраубинг, Ховард (1990). «О единообразии внутри СК 1 ". Журнал компьютерных и системных наук . 41 (3): 274–306. doi : 10.1016/0022-0000(90)90022-D . MR 1079468 .
- ^ Радо, Ричард (1964). «Универсальные графы и универсальные функции» (PDF) . Акта Арит . 9 (4): 331–340. дои : 10.4064/aa-9-4-331-340 . .