数学、特に組み合わせ論において、レーマー符号はn個の数の列のあらゆる順列を符号化する特定の方法である。これは順列に番号を付ける方式の一例であり、逆転表の一例でもある。
レーマーコードはDHレーマーにちなんで名付けられましたが[ 1 ]、このコードは少なくとも1888年から知られていました[ 2 ] 。
レーマーコードは、
n個の数値のシーケンスの順列。順列σが 1, ..., nの像のシーケンス ( σ 1 , ..., σ n ) で指定される場合、それはn 個の数値のシーケンスによってエンコードされますが、すべての数値が一度だけ使用される必要があるため、そのようなシーケンスはすべて有効ではありません。対照的に、ここで検討するエンコードでは、最初の数値をn個の値の集合から選択し、次の数値をn − 1個の固定値の集合から選択し、これを繰り返して、単一の固定値のみが許容される最後の数値まで可能性の数を減らします。これらの集合から選択された数値のシーケンスはすべて、単一の順列をエンコードします。いくつかのエンコードを定義できますが、レーマーコードにはいくつかの追加の有用な特性があります。それはシーケンスです
言い換えれば、項L ( σ ) i は、 σ iの右側にある( σ 1 , ..., σ n ) の項のうち、 σ iより小さい項の数を数え、0 からn − iの間の数値となり、 n + 1 − i個の異なる値を許容します。
i < jかつσ i > σ jを満たすインデックスのペア ( i , j )はσの反転と呼ばれ、L ( σ ) i はiを固定しjを変化させたときの反転 ( i , j )の数を数えます。したがって、L ( σ ) 1 + L ( σ ) 2 + … + L ( σ ) nはσの反転の総数であり、これは置換を恒等置換に変換するために必要な隣接転置の数でもあります。レーマーコードのその他の特性としては、 2 つの順列の符号化の辞書順がそれらのシーケンス ( σ 1、 ...、σ n ) と同じであること、コード内の任意の値 0 が順列内の右から左への最小値 (つまり、右にある任意のσ jよりも小さいσ i ) を表し、 位置iの値n − iも同様に右から左への最大値を表すこと、そしてσのレーマーコードが、辞書順 (0 から始まる位置の番号付け) でのnの順列のリストにおけるその位置の階乗数システム表現と一致することなどが挙げられます。
この符号化のバリエーションは、固定されたiではなく固定されたjに対して反転 ( i , j ) を数えること、より小さいインデックスiではなく固定されたより小さい値σ jで反転を数えること、または反転ではなく非反転を数えることによって得られます。これによって根本的に異なるタイプの符号化が生成されるわけではありませんが、符号化のいくつかの特性がそれに応じて変化します。特に、固定されたより小さい値σ 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について、左から右の順に、 xより大きい(まだ)すべてのエントリから1を減算することによって、その右側の項目を補正します( xに対応するオブジェクトがもはや利用できないという事実を反映するため)。具体的には、アルファベット順に並べられた文字B、F、A、G、D、E、Cの順列に対するレーマーコードは、まずシーケンス番号1、5、0、6、3、4、2のリストを与え、これを順次変換します。
ここで、最後の行はレーマーコードです(各行で、太字要素の右側にある大きなエントリから1を引いて次の行を形成します)。
レーマー符号を与えられた集合の順列に復号するには、後者の手順を逆にすることができます。各エントリxについて、右から左の順に、 xより大きい (現在) 項目すべてに 1 を加えることで、その右側の項目を修正します。最後に、結果として得られる {0, 1, ... n − 1 } の順列を数列として解釈します ({1, 2, ... n } の順列を求める場合は、各エントリに 1 を加えることになります)。あるいは、レーマー符号のエントリを左から右に処理し、上記のように次の要素の選択を決定する数値として解釈することもできます。これには、使用可能な要素のリストを維持し、選択された各要素をリストから削除する必要があります。この例では、{A,B,C,D,E,F,G} から要素 1 (B) を選択し、次に {A,C,D,E,F,G} から要素 4 (F) を選択し、次に {A,C,D,E,G} から要素 0 (A) を選択し、以下同様にして、シーケンス B,F,A,G,D,E,C を再構築します。
レーマーコードは、対称群S nからデカルト積への全単射を定義する。ここで、[ k ]はk個の要素の集合を表す。その結果、S n上の一様分布の下では、成分L ( σ ) i は[ n − i ]上の一様分布確率変数を定義し、これらの確率変数はデカルト積の異なる因子への射影であるため、互いに独立である。
定義 :数列u = (u k ) 1≤k≤nにおいて、ランクkに右から左への最小値(または最大値)が存在するとは、 u kがi > kである各要素u i (つまり、その右側 )よりも厳密に小さい(または厳密に大きい)場合をいう。
B(k) (またはH(k) ) を「ランクkで右から左への最小値 (または最大値) が存在する」という事象とする。つまり、B(k)は順列の集合である。これらはランクkで右から左への最小値(または最大値)を示す。明らかに
したがって、順列ωの右から左への最小値 (最大値) の数N b (ω) (またはN h (ω) ) は、それぞれパラメータが 1/k である独立なベルヌーイ確率変数の和として表すことができる。
実際、L(k)は均一法則に従う ので
ベルヌーイ確率変数の生成関数は
したがって、 N bの生成関数は
(上昇階乗表記法を用いると)これにより、第1種(符号なし)スターリング数の母関数の積公式を復元することができる 。
これは最適停止問題であり、決定理論、統計学、応用確率論における古典的な問題です。ランダムな順列がレーマーコードの最初の要素を通して徐々に明らかになり、目標はσ(k)=nのような要素kで正確に停止することですが、利用可能な唯一の情報(レーマーコードの最初のk個の値)だけではσ(k)を計算するには不十分です。
数学的な表現を使わずに説明すると、n人の応募者が一人ずつ面接を受けます。面接官は最も優秀な応募者を採用しなければなりませんが、次の応募者を面接することなく(ましてや全ての応募者を面接することなく)、その場で採用するか不採用かを決定しなければなりません。
面接官はk番目の応募者の順位を知っているため、k番目の決定を下す時点では、レーマーコードの最初のk個の要素しか知らないことになります。しかし、十分な情報に基づいた決定を下すには、レーマーコードのすべての要素を知る必要があります。最適な戦略(つまり、勝利の確率を最大化する戦略)を決定するには、レーマーコードの統計的特性が重要になります。
伝えられるところによると、ヨハネス・ケプラーは、11人の候補者の中から2番目の妻を選ぼうとしていた時期に、この秘書問題を友人に打ち明けたという。最初の結婚は本人の意思とは関係なく決められたもので不幸なものであったため、彼は正しい決断を下せるかどうか非常に心配していた。 [ 3 ]
関連する構造もいくつか使用されています。そのうちの1つは、Wolfram Alphaなどで反転ベクトルと呼ばれることがよくあります。反転(離散数学)§ 反転関連ベクトルも参照してください。
{{citation}}ISBN /日付の不一致(ヘルプ)