В более общем смысле, функция спаривания на множестве A — это функция, которая отображает каждую пару элементов из A в элемент A таким образом, что любые две пары элементов из A связаны с различными элементами A, [2] или биекцией из в A. [3 ]
Функция сопряжения Хопкрофта и Ульмана
Хопкрофт и Ульман (1979) определяют следующую функцию спаривания: , где . [1] Это то же самое, что и функция спаривания Кантора ниже, сдвинутая так, чтобы исключить 0 (т. е. , , и ).
Он также строго монотонен относительно каждого аргумента, то есть, для всех , если , то ; аналогично, если , то . [ необходима цитата ]
Утверждение, что это единственная квадратичная функция спаривания, известно как теорема Фютера–Полиа . [1] [ требуется проверка ] Является ли это единственной полиномиальной функцией спаривания, все еще остается открытым вопросом. Когда мы применяем функцию спаривания к k 1 и k 2, мы часто обозначаем полученное число как ⟨ k 1 , k 2 ⟩ . [ требуется цитата ]
Это определение можно индуктивно обобщить до функции кортежа Кантора [ требуется ссылка ]
для как
с базовым случаем, определенным выше для пары: [1]
Обращение функции спаривания Кантора
Пусть — произвольное натуральное число. Покажем, что существуют уникальные значения, такие что
и, следовательно, функция π(x, y) обратима. Полезно определить некоторые промежуточные значения в расчетах:
поэтому x = 52 ; таким образом, π (52, 1) = 1432. [ необходима ссылка ]
Вывод
Графическая форма функции спаривания Кантора, диагональная прогрессия, является стандартным приемом при работе с бесконечными последовательностями и счетностью . [a] Алгебраические правила этой диагональной функции могут проверить ее справедливость для диапазона многочленов, из которых квадратичный окажется простейшим, с использованием метода индукции . Действительно, этот же метод можно использовать, чтобы попытаться вывести любое количество других функций для любого множества схем перечисления плоскости.
Функцию спаривания обычно можно определить индуктивно, то есть, если задана n -я пара, то какова ( n +1) -я пара? То, как функция Кантора прогрессирует по диагонали через плоскость, можно выразить как
.
Функция также должна определять, что делать, когда она достигает границ 1-го квадранта — функция спаривания Кантора возвращается к оси x, чтобы возобновить свою диагональную прогрессию на один шаг дальше, или алгебраически:
.
Также нам необходимо определить отправную точку, что будет начальным шагом в нашем методе индукции: π (0, 0) = 0 .
Предположим, что существует квадратичный двумерный многочлен, который может соответствовать этим условиям (если бы их не было, можно было бы просто повторить, попробовав многочлен более высокой степени). Общая форма тогда такова:
.
Подставим наши начальные и граничные условия, чтобы получить f = 0 и:
,
поэтому мы можем сопоставить наши k членов, чтобы получить
б = а
д = 1- а
е = 1+ а .
Таким образом, каждый параметр можно записать через a, за исключением c , и у нас есть окончательное уравнение, наш диагональный шаг, который будет их связывать:
Разверните и сопоставьте термины еще раз, чтобы получить фиксированные значения для a и c , а значит, и всех параметров:
а = 1/2 = б = г
с = 1
е = 3/2
ф = 0 .
Поэтому
— это функция спаривания Кантора, и мы также продемонстрировали с помощью вывода, что она удовлетворяет всем условиям индукции. [ необходима цитата ]
Другие функции сопряжения
Функция представляет собой функцию сопряжения.
В 1990 году Реган предложил первую известную функцию спаривания, которая вычислима за линейное время и с постоянным пространством (поскольку ранее известные примеры могут быть вычислены только за линейное время, если умножение может быть слишком , что сомнительно). [4] Фактически, как эта функция спаривания, так и ее обратная функция могут быть вычислены с помощью конечных преобразователей, которые работают в реальном времени. [4] [ необходимо разъяснение ] В той же статье автор предложил еще две монотонные функции спаривания, которые могут быть вычислены онлайн за линейное время и с логарифмическим пространством ; первая также может быть вычислена офлайн с нулевым пространством. [4] [ необходимо разъяснение ]
В 2001 году Пиджен предложил функцию сопряжения, основанную на чередовании битов , рекурсивно определенную как:
В 2006 году Шудзик предложил «более элегантную» функцию сопряжения, определяемую выражением:
Которые можно разделить с помощью выражения:
(Качественно, он присваивает последовательные числа парам вдоль краев квадратов.) Эта функция спаривания упорядочивает выражения комбинаторного исчисления SK по глубине. [2] [ необходимо разъяснение ]
Этот метод является простым применением идеи, встречающейся в большинстве учебников по теории множеств, [5]
используемой для установления для любого бесконечного кардинала в ZFC . Определим на бинарном отношении
затем показано, что это вполне упорядоченное множество, такое, что каждый элемент имеет предшественников, что подразумевает, что . Из этого следует, что изоморфно и функция спаривания выше есть не что иное, как перечисление пар целых чисел в порядке возрастания. (См. также Talk:Теорема Тарского о выборе#Доказательство обратного .)
^ abcdefghi Стивен Пиджен. "Функция сопряжения". MathWorld . Получено 16 августа 2021 г. .
^ abcd Szudzik, Matthew (2006). "An Elegant Pairing Function" (PDF) . szudzik.com . Архивировано (PDF) из оригинала 25 ноября 2011 г. . Получено 16 августа 2021 г. .
^ abc Regan, Kenneth W. (1992-12-01). "Функции сопряжения минимальной сложности". Журнал компьютерных и системных наук . 45 (3): 285–295. doi : 10.1016/0022-0000(92)90027-G . ISSN 0022-0000.
^ См., например, Thomas, Jech (2006). Теория множеств: издание третьего тысячелетия . Springer Monographs in Mathematics. Springer-Verlag. стр. 30. doi :10.1007/3-540-44761-X. ISBN 3-540-44085-2.