Код Лемера

редактировать

В математике и, в частности, в комбинаторике, код Лемера - это особый способ кодирования каждой возможной перестановки последовательности из n чисел. Это пример схемы перестановок нумерации и пример таблицы инверсии.

Код Лемера назван со ссылкой на Деррик Генри Лемер, но код известен как минимум с 1888 года.

Содержание
  • 1 Код
  • 2 Кодирование и декодирование
  • 3 Приложения к комбинаторике и вероятностям
    • 3.1 Независимость относительных рангов
    • 3.2 Количество минимумов и максимумов справа налево
    • 3.3 Задача секретаря
  • 4 Подобные концепции
  • 5 Ссылки
  • 6 Библиография
Код

Код Лемера использует тот факт, что существует

n! = n × (n - 1) × ⋯ × 2 × 1 {\ displaystyle n! = n \ times (n-1) \ times \ cdots \ times 2 \ times 1}n! = n \ times (n-1) \ times \ cdots \ times 2 \ times 1

перестановок последовательности из n чисел. Если перестановка σ задана последовательностью (σ 1,…, σ n) ее изображений 1,…, n, то она кодируется последовательностью из n чисел, но не все такие последовательности допустимы, так как каждое число должно использоваться только один раз. В отличие от рассматриваемых здесь кодировок выбирают первое число из набора из n значений, следующее число из фиксированного набора из n - 1 значений и т. Д., Уменьшая количество возможностей до последнего числа, для которого используется только одно фиксированное значение. разрешается; каждая последовательность чисел, выбранных из этих наборов, кодирует одну перестановку. Хотя можно определить несколько кодировок , код Лемера имеет несколько дополнительных полезных свойств; это последовательность

L (σ) = (L (σ) 1,…, L (σ) n), где L (σ) i = # {j>i: σ j < σ i }, {\displaystyle L(\sigma)=(L(\sigma)_{1},\ldots,L(\sigma)_{n})\quad {\text{where}}\quad L(\sigma)_{i}=\#\{j>i: \ sigma _ {j} <\sigma _{i}\},}L(\sigma)=(L(\sigma)_{1},\ldots,L(\sigma)_{n})\quad {\text{where}}\quad L(\sigma)_{i}=\#\{j>i: \ sigma _ {j} <\sigma _{i}\},

другими словами, термин L (σ) i подсчитывает количество членов в (σ 1,…, σ n) справа от σ i, которые меньше его, число от 0 до n - i, с учетом n + 1 - i различных значений.

Пара индексов (i, j) с i < j and σi>σjназывается инверсией σ, а L (σ) i подсчитывает количество инверсий (i, j) с фиксированным i и изменяющимся j. Отсюда следует, что L (σ) 1 + L (σ) 2 +… + L (σ) n - общее количество инверсий σ, которое также количество смежных транспозиций, которые необходимы для преобразования перестановки в тождественную перестановку. Другие свойства кода Лемера включают то, что лексикографический порядок кодировок двух перестановок такой же, как и у их последовательностей (σ 1,…, σ n), что любое значение 0 в коде представляет минимум справа налево в перестановке (т. е. σ i меньше любого σ j справа от него), и значение n - i в позиции i аналогично обозначает максимум справа налево, и что код Лемера σ совпадает с представлением факториальной системы счисления его позиции в списке перестановок n в лексикографическом порядок (нумерация позиций начиная с 0).

Варианты этого кодирования могут быть получены путем подсчета инверсий (i, j) для фиксированного j, а не для фиксированного i, путем подсчета инверсий с фиксированным меньшим значением σ j вместо меньшего индекса i, или подсчетом не инверсий, а не инверсий; хотя это не приводит к принципиально другому типу кодирования, некоторые свойства кодирования соответственно изменятся. В частности, подсчет инверсий с фиксированным меньшим значением σ j дает таблицу инверсии σ, которая, как можно видеть, является кодом Лемера обратной перестановки.

Кодирование и декодирование

Обычный способ доказать, что есть n! различные перестановки n объектов - это наблюдать, что первый объект может быть выбран n разными способами, следующий объект n - 1 разными способами (потому что выбор того же числа, что и первый, запрещен), следующий n - 2 разными способами (потому что теперь есть 2 запрещенных значения) и так далее. Переводя эту свободу выбора на каждом шаге в число, можно получить алгоритм кодирования, который находит код Лемера данной перестановки. Необязательно предполагать, что объекты переставляются как числа, но требуется полное упорядочение набора объектов. Поскольку номера кода должны начинаться с 0, соответствующий номер для кодирования каждого объекта σ i - это количество объектов, которые были доступны в этой точке (поэтому они не встречаются перед позицией i), но которые меньше фактически выбранного объекта σ i. (Такие объекты неизбежно должны появиться в некоторой позиции j>i, и (i, j) будет инверсией, которая показывает, что это число действительно L (σ) i.)

Это число для кодирования каждого объекта можно найти путем прямого подсчета несколькими способами (прямым подсчетом инверсий или корректировкой общего числа объектов, меньших заданного, то есть его порядкового номера, начиная с 0 в наборе, теми, которые недоступен на своем месте). Другой метод, который существует на месте, но не очень эффективен, - это начать с перестановки {0, 1,… n - 1}, полученной путем представления каждого объекта его упомянутым порядковым номером, а затем для каждой записи x в В порядке слева направо исправьте элементы справа, вычтя 1 из всех записей (все еще) больше x (чтобы отразить тот факт, что объект, соответствующий x, больше не доступен). Конкретно, код Лемера для перестановки букв B, F, A, G, D, E, C, упорядоченных в алфавитном порядке, сначала дал бы список порядковых номеров 1,5,0,6,3,4,2, который является последовательно преобразованные

1 5 0 6 3 4 2 1 4 0 5 2 3 1 1 4 0 4 2 3 1 1 4 0 3 1 2 0 1 4 0 3 1 2 0 1 4 0 3 1 1 0 1 4 0 3 1 1 0 {\ displaystyle {\ begin {matrix} \ mathbf {1} 5 0 6 3 4 2 \\ 1 \ mathbf {4} 0 5 2 3 1 \\ 1 4 \ mathbf {0} 4 2 3 1 \\ 1 4 0 \ mathbf {3} mathbf {1} 2 0 \\ 1 4 0 3 1 \ mathbf {1} 0 \\ 1 4 0 3 1 1 \ mathbf {0} \\\ end {matrix}}}{\begin{matrix}{\mathbf 1}506342\\1{\mathbf 4}05231\\14{\mathbf 0}4231\\140{\mathbf 3}120\\1403{\mathbf 1}20\\14031{\mathbf 1}0\\140311{\mathbf 0}\\\end{matrix}}

где последняя строка - это код Лемера (в каждой строке вычитается 1 из записи большего размера справа от полужирного шрифта для формирования следующей строки).

Для декодирования кода Лемера в перестановку данного набора последняя процедура может быть обратной: для каждой записи x, в порядке справа налево, исправить элементы справа, добавив 1 ко всем этим (в настоящее время) больше или равно x; наконец, интерпретировать полученную перестановку {0, 1,… n - 1} как порядковые номера (что составляет добавление 1 к каждой записи, если ищется перестановка {1, 2,… n}). В качестве альтернативы записи кода Лемера могут обрабатываться слева направо и интерпретироваться как число, определяющее следующий выбор элемента, как указано выше; это требует ведения списка доступных элементов, из которого удаляется каждый выбранный элемент. В примере это будет означать выбор элемента 1 из {A, B, C, D, E, F, G} (который является B), затем элемента 4 из {A, C, D, E, F, G} (который является F), затем элемент 0 из {A, C, D, E, G} (дающий A) и так далее, восстанавливая последовательность B, F, A, G, D, E, C.

Приложения к комбинаторике и вероятностям

Независимость относительных рангов

Код Лемера определяет биекцию от симметричной группы Snк декартову произведению [n] × [n - 1] × ⋯ × [2] × [1] {\ displaystyle [n] \ times [n-1] \ times \ cdots \ times [2] \ times [1]}[n] \ times [n-1] \ times \ cdots \ times [2] \ times [1] , где [k] обозначает набор k-элементов {0, 1,…, k - 1} {\ displaystyle \ {0,1, \ ldots, k-1 \}}\ {0,1, \ ldots, k-1 \} . Как следствие, при равномерном распределении на S n компонент L (σ) i определяет равномерно распределенную случайную величину на [n - i], и эти случайные величины являются взаимно независимыми, потому что они являются проекциями на различные факторы декартова произведения.

Количество минимумов и максимумов справа налево

Определение: В последовательности u = (u k)1≤k≤n существует минимум справа налево (соответственно максимум ) в ранг k, если u k строго меньше (соответственно, строго больше), чем каждый элемент u i с i>k, то есть справа от него.

Пусть B (k) (соотв. H (k)) - событие «существует минимум справа налево (соотв. максимум) в ранге k», т.е. B (k) - это множество перестановок S n { \ displaystyle \ scriptstyle \ {\ mathfrak {S}} _ {n}}{\ displaystyle \ scriptstyle \ {\ mathfrak {S}} _ {n}} которые демонстрируют минимум справа налево (соответственно максимум) на ранге k. Очевидно, что

{ω ∈ В (к)} ⇔ {L (k, ω) = 0} и {ω ∈ H (k)} ⇔ {L (k, ω) = k - 1}. {\ Displaystyle \ {\ ome ga \ in B (k) \} \ Leftrightarrow \ {L (k, \ omega) = 0 \} \ quad {\ text {and}} \ quad \ {\ omega \ in H (k) \} \ Leftrightarrow \ {L (k, \ omega) = k-1 \}.}{\ displaystyle \ {\ omega \ in B (k) \} \ Leftrightarrow \ {L (k, \ omega) = 0 \} \ quad {\ text {and}} \ quad \ {\ omega \ in H (k) \} \ Leftrightarrow \ {L (k, \ omega) = k-1 \}.}

Таким образом, число N b (ω) (соответственно. N h (ω)) минимума справа налево (соответственно максимума) для перестановки ω можно записать как сумму независимых случайных величин Бернулли, каждая с соответствующим параметром из 1 / k:

N b (ω) = ∑ 1 ≤ k ≤ n 1 1 B (k) и N b (ω) = ∑ 1 ≤ k ≤ n 1 1 H (k). {\ displaystyle N_ {b} (\ omega) = \ sum _ {1 \ leq k \ leq n} \ 1 \! \! 1_ {B (k)} \ quad {\ text {и}} \ quad N_ { b} (\ omega) = \ sum _ {1 \ leq k \ leq n} \ 1 \! \! 1_ {H (k)}.}N_ {b} (\ omega) = \ sum _ {{1 \ leq k \ leq n}} \ 1 \! \! 1_ {{B (k)}} \ quad {\ text {and}} \ quad N_ {b} (\ omega) = \ sum _ {{1 \ leq k \ leq n}} \ 1 \! \! 1_ { {H (k)}}.

Действительно, поскольку L (k) подчиняется равномерному закону на [[1, k]], {\ displaystyle \ scriptstyle \ [\! [1, k] \!],}{\displaystyle \scriptstyle \ [\![1,k]\!],}

P (B (k)) = P (L (k) = 0) = P (H (k)) = P (L (k) = k - 1) = 1 k. {\ Displaystyle \ mathbb {P} (B (k)) = \ mathbb {P} (L (k) = 0) = \ mathbb {P} (H (k)) = \ mathbb {P} (L (k) = k-1) = {\ tfrac {1} {k}}.}{\ displaystyle \ mathbb {P} (B (k)) = \ mathbb {P} (L (k) = 0) = \ mathbb {P} (H (k)) = \ mathbb {P} (L (k) = k-1) = {\ tfrac {1} {k}}.}

производящая функция для случайной величины Бернулли 1 1 B (k) {\ displaystyle 1 \ ! \! 1_ {B (k)}}1 \! \! 1 _ {{B (k)}} равно

G k (s) = k - 1 + sk, {\ displaystyle G_ {k} (s) = {\ frac {k- 1 + s} {k}},}G_ {k} (s) = {\ frac {k-1 + s} k},

, следовательно, производящая функция N b равна

G (s) = ∏ k = 1 n G k (s) = sn ¯ n! {\ Displaystyle G (s) = \ prod _ {k = 1} ^ {n} G_ {k} (s) \ = \ {\ frac {s ^ {\ overline {n}}} {n!}}}{\ displaystyle G (s) = \ prod _ {k = 1} ^ {n} G_ {k} (s) \ = \ {\ frac {s ^ {\ overline { n}}} {n!}}}

(с использованием нотации возрастающего факториала ), что позволяет нам восстановить формулу произведения для производящей функции чисел Стирлинга первого вида (без знака).

Задача секретаря

Это задача оптимального останова, классическая в теории принятия решений, статистике и прикладных вероятностях, где случайная перестановка постепенно выявляется через первые элементы кода Лемера, и где цель состоит в том, чтобы остановиться точно на элементе k, таком как σ (k) = n, тогда как единственной доступной информации (k первых значений кода Лемера) недостаточно для вычисления σ (k).

Говоря менее математическими словами: ряд n кандидатов проходят собеседование один за другим. Интервьюер должен нанять лучшего соискателя, но должен принять решение («нанять» или «не нанимать») на месте, не проводя собеседования со следующим соискателем (и тем более без собеседования со всеми соискателями).

Таким образом, интервьюер знает ранг k соискателя, поэтому в момент принятия своего решения k интервьюер знает только первые k элементов кода Лемера, тогда как ему необходимо знать их все, чтобы принять обоснованное решение. Для определения оптимальных стратегий (то есть стратегии, максимизирующей вероятность выигрыша) решающее значение имеют статистические свойства кода Лемера.

Якобы Иоганн Кеплер ясно раскрыл эту проблему секретаря своему другу в то время, когда он пытался принять решение и выбрать одного из одиннадцати потенциальных невест как его вторая жена. Его первый брак был несчастливым, поскольку он был заключен без консультации с ним, и поэтому он был очень обеспокоен тем, что сможет принять правильное решение.

Подобные концепции

Два похожих вектора находятся в использовать. Один из них часто называют вектором инверсии, например Автор Вольфрам Альфа. См. Также Инверсия (дискретная математика) § Инверсия связанных векторов.

  • icon Математический портал
Ссылки
Библиография
Последняя правка сделана 2021-05-26 05:38:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте