Jump to content

предикат BIT

Это хорошая статья. Нажмите здесь для получения дополнительной информации.

В математике и информатике BIT предикат иногда пишется , является предикатом , который проверяет, является ли й бит числа (начиная с младшей цифры ) равно 1, когда записывается как двоичное число . Его математические приложения включают моделирование отношения принадлежности наследственно конечных множеств и определение отношения смежности графа Радо . В информатике он используется для эффективного представления наборов структур данных с использованием битовых векторов , при определении проблемы поиска частной информации из сложности связи , а также в описательной теории сложности для формулирования логических описаний классов сложности .

История [ править ]

Предикат BIT был впервые введен в 1937 году Вильгельмом Аккерманом для определения кодирования Аккермана , которое кодирует наследственно конечные множества как натуральные числа . [1] [2] Предикат BIT можно использовать для проверки членства закодированных наборов: истинно тогда и только тогда, когда набор , закодированный является членом набора, закодированного . [1]

Аккерман обозначил предикат как , используя шрифт Fraktur, чтобы отличить его от обозначения который он использовал для членства в наборе (сокращение от " является элементом « на немецком языке). [1] Обозначения , а название «предикат BIT» взято из работы Рональда Феджина и Нила Иммермана , которые применили этот предикат в теории сложности вычислений как способ кодирования и декодирования информации в конце 1980-х — начале 1990-х годов. [а]

Описание и реализация [ править ]

Двоичное представление числа является выражением для как сумма различных степеней двойки ,

где каждый бит в этом выражении равно либо 0, либо 1. Обычно его записывают в двоичной записи как просто последовательность этих битов: . Учитывая это расширение для , предикат BIT определяется как равный . Его можно рассчитать по формуле
где — это функция пола , а mod — функция по модулю . [6] Предикат BIT — это примитивно-рекурсивная функция . [2] [7] Как бинарное отношение (производящее истинные и ложные значения, а не 1 и 0 соответственно), предикат BIT асимметричен : не существует двух чисел. и для чего оба и верны. [б]

В таких языках программирования, как 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]

Построение графика Радо [ править ]

Граф Радо, построенный на основе предиката BIT. Например, ребро соединяет 0 с 3, потому что 0-й бит 3 не равен нулю.

В 1964 году немецко-британский математик Ричард Радо использовал предикат BIT для построения бесконечного графа Радо . Конструкция Радо представляет собой не что иное, как симметризацию конструкции Аккермана 1937 года наследственных конечных множеств из предиката BIT: две пронумерованные вершины и смежны в графе Радо, когда либо или ненулевое значение. [17]

Полученный граф обладает многими важными свойствами: он содержит каждый конечный неориентированный граф как индуцированный подграф , и любой изоморфизм его индуцированных подграфов может быть расширен до симметрии всего графа. [8]

Примечания [ править ]

  1. ^ Раннее использование имени предиката BIT - Иммерман (1989) . [3] В статье 1990 года Дэвид Микс Баррингтон приписывает обозначения и их применение в описательной сложности — Феджину; Баррингтон благодарит Фейгина за то, что он вдохновил Иммермана на работу в этой области. [4] Однако Айтай и Феджин (1990) ссылаются на «отношение BIT Иммермана ». [5]
  2. ^ Об асимметрии отношения принадлежности к множеству, которое кодирует предикат BIT, см. Cameron (2001) . [8]
  3. ^ Арндт (2011) . Арндт реализует предикат BIT с помощью S&(1<<i) скорее, чем (S>>i)&1, но результат одинаково равен нулю или ненулевому для обеих реализаций. [10]
  4. ^ Тарау (2010) . Реализация Тарау теста членства (как inSet в разделе «Вывод операций над множествами») сводится к проверке того, S&(1<<i) == 1<<i скорее, чем (S>>i)&1, аналогично тому, что было у Арндта (2011) . [12]
  5. ^ В некоторых источниках этот класс пишется FO[<] для обозначения операции сравнения; однако при определении классов сложности из логики таким способом нельзя опускать операцию сравнения, [14] поэтому нет необходимости указывать, что оно присутствует.
  6. ^ Иммерман (1999) , с. 13: «Добавление BIT... делает набор определяемых логических запросов первого порядка более надежным классом сложности».

Ссылки [ править ]

  1. Перейти обратно: Перейти обратно: а б с Акерманн, Вильгельм (1937). «Непротиворечивость общей теории множеств» . Математические анналы (на немецком языке). 114 :305-315. дои : 10.1007/bf01594179 . S2CID   120576556 . Проверено 9 января 2012 г.
  2. Перейти обратно: Перейти обратно: а б Кирби, Лоуренс (2009). «Теория финитарных множеств» . Журнал формальной логики Нотр-Дама . 50 (3): 227–244. дои : 10.1215/00294527-2009-009 .
  3. ^ Иммерман, Нил (1989). «Выразимость и параллельная сложность». SIAM Journal по вычислительной технике . 18 (3): 625–638. дои : 10.1137/0218043 . МР   0996841 .
  4. ^ Микс Баррингтон, Дэвид А. (1990). «Расширение идеи Макнотона». Теория математических систем . 23 (3): 147–164. дои : 10.1007/BF02090772 . МР   1062347 . S2CID   198177167 .
  5. ^ Айтаи, Миклош ; Феджин, Рональд (1990). «Достижимость для ориентированных графов сложнее, чем для неориентированных конечных графов». Журнал символической логики . 55 (1): 113–150. дои : 10.2307/2274958 . JSTOR   2274958 . МР   1043548 . S2CID   14177866 .
  6. Перейти обратно: Перейти обратно: а б Линделл, Стивен (1992). «Чисто логическая характеристика однородности схемы» (PDF) . Материалы седьмой ежегодной конференции по теории сложности, Бостон, Массачусетс, США, 22-25 июня 1992 г. Компьютерное общество IEEE. стр. 185–192. дои : 10.1109/SCT.1992.215393 .
  7. ^ Раутенберг, Вольфганг (2010). Краткое введение в математическую логику (3-е изд.). Нью-Йорк : Springer Science + Business Media . п. 261. дои : 10.1007/978-1-4419-1221-3 . ISBN  978-1-4419-1220-6 .
  8. Перейти обратно: Перейти обратно: а б Кэмерон, Питер Дж. (2001). «Возвращение к случайному графу» (PDF) . Европейский математический конгресс , Vol. Я (Барселона, 2000) . прогр. Математика. Том. 201. Базель: Биркхойзер. стр. 267–274. дои : 10.1007/978-3-0348-8268-2_15 . МР   1905324 .
  9. ^ Венугопал, КР (1997). Освоение С++ . Издательская компания Тата МакГроу-Хилл. п. 123. ИСБН  9780074634547 . .
  10. ^ Арндт, Йорг (2011). «1.9.2: Проверка наличия элемента в заданном наборе». Вопросы вычислений: идеи, алгоритмы, исходный код (PDF) . Спрингер. п. 24.
  11. ^ Блох, Джошуа (2008). «Пункт 32: Используйте enumSet вместо битовых полей» . Эффективная Java (2-е изд.). Аддисон-Уэсли Профессионал. стр. 159–160. ISBN  9780132778046 .
  12. ^ Тарау, Пол (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 .
  13. ^ Чор, Бенни ; Кушилевиц, Эяль; Гольдрейх, Одед ; Судан, Мадху (1998). «Поиск частной информации» . Журнал АКМ . 45 (6): 965–981. дои : 10.1145/293347.293350 . S2CID   544823 . .
  14. Перейти обратно: Перейти обратно: а б Иммерман, Нил (1999). Описательная сложность . Нью-Йорк: Springer-Verlag. стр. 13–16 . ISBN  0-387-98600-6 .
  15. ^ Перрен, Доминик ; Пин, Жан-Эрик (1986). «Логика первого порядка и беззвездные множества» . Журнал компьютерных и системных наук . 32 (3): 393–406. дои : 10.1016/0022-0000(86)90037-1 . МР   0858236 .
  16. ^ Микс Баррингтон, Дэвид А.; Иммерман, Нил ; Штраубинг, Ховард (1990). «О единообразии внутри СК 1 ". Журнал компьютерных и системных наук . 41 (3): 274–306. doi : 10.1016/0022-0000(90)90022-D . MR   1079468 .
  17. ^ Радо, Ричард (1964). «Универсальные графы и универсальные функции» (PDF) . Акта Арит . 9 (4): 331–340. дои : 10.4064/aa-9-4-331-340 . .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 90b9e80b6b281a372ae27e397ebe4d27__1692024180
URL1:https://arc.ask3.ru/arc/aa/90/27/90b9e80b6b281a372ae27e397ebe4d27.html
Заголовок, (Title) документа по адресу, URL1:
BIT predicate - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)