この「ゲーム」(カウンターのリバランス)の価値は何ですか?


8

この質問は2週間前にCS.SEに投稿されましたが、満足のいく答えが得られませんでした。

次のゲームがあるとします。

無限に多くのカウンター、すべて0に初期化されています。{c1,c2,…}

各ステップで、カウンターを選択し、その値を1増やします。ci

残念ながら、ステップごとに、正の値を持つ各カウンターは1ずつ減少します。T

また、カウンターの値はによって制限されているため、カウンターをこれ以上インクリメントすることはできません。M

1.好きなだけステップを与えられた場合、多くの正の値のカウンターに到達できますか?

2.ステップ後に、いくつの正の値のカウンターに到達できますか?T⋅M−1


質問(1)の場合、ここでは、正のカウンターの詳細なビルドを示します。≈Tlog⁡(M)

  1. 値カウンターが未満の場合: T−1M
    • 値が厳密によりも小さい最小インデックスカウンターをインクリメントします。M

(これは、カウンターの合計がステップごとに増加するようにバインドされているため、収束する必要があります。)T

  1. ましょ。r=T

  2. の間()c0>1

    a。while()c0>cr

    • 増分cr

    b。r=r+1

分析のために:最初の観察は、正のカウンターの数がです。r

ここで、が到達した最大値とします。場合、ます。用我々得る、または一般にmrcrr=TM(1−1T)r=T+1mr(1−1T)=M(1−1T)2

∀r≥T:mr=M(1−1T)r−T+1

次に、が達成されると、ます。これは、場合にループが停止することを意味します(積分またはゲーム終了戦略を与えるか、取る)。∀mrc0=mrmr<1

これにより、

M(1−1T)r−T+1<1
(1−1T)r−T+1<M−1
(r−T+1)log⁡(1−1T)<−log⁡M
r−T+1<−log⁡Mlog⁡(1−1T)
r<−log⁡Mlog⁡(1−1T)+T−1
r<log⁡M∑k≥1∞1kTk+T−1<T(log⁡M+1)−1

より良いことは可能ですか?これが最適であることを誰かが証明できますか?

回答:


5

質問2の下限:

定理:ステップの後、以下に概説する戦略により、少なくとも正のカウンターが得られます。TM−1(T−1)log⁡M

表記法: タイムステップをステップの開始と定義し、を終了と定義します。減少はタイムステップで発生し、です。1TM−1TM−1Tk1≤k<M

上限をと定義します。ここで、は現在のタイムステップです。この制限はMで始まり、カウンターが減少するたびに1ずつ減少し、で終了します。この上限が選択されているのは、上限よりも多くのカウンターがセルに配置されると、ステップカウンターの値がを超えるため、無駄になるためです。M−⌊N/T⌋N11TM−1

戦略:タイムステップごとに、値が上限より小さい左端のカウンターをインクリメントします。

表記法:カウンターの重要度をとして定義します。ここで、Vは現在の値、は現在の上限です。V/ULUL

補題:の各群の減少に終了するステップ、によってカウンタ増加の重要度の和少なくとも、現在の上限です。T(T−1)/ULUL

補題の証明:カウンターがインクリメントされるたびに、その重要度はずつ増加します。減少が発生すると、1つのカウンターを除くすべてが上限に達し、重要性があります。残りのカウンターの重要度は、その値が減少し、が増加しないため、最大で縮小されます。したがって、増分と減分は、全体の重要度を少なくとも増加させます。さらに、インクリメントの最後のグループでは、デクリメントは発生せず、重要度の合計は増加します。1/ULUL/UL=11/UL1ULT1(T−1)/ULT−1(T−1)/UL

定理の証明:減少するステップの各グループ、および最後のステップでは、重要度の合計が少なくとも増加します。したがって、ステップの後、重要度の合計は少なくとも、少なくともます。タイムステップでは上限がであるため、この時点で正のカウンターが必要です。TT−1(T−1)/ULTM−1∑k=1m(T−1)/k(T−1)log⁡MTM−11(T−1)log⁡M


5

これが質問2の上限です。

定理:ステップの後、最大で正のカウンターを持つことができます。TMTlog⁡M

表記:各ステップに番号を割り当て、番目のステップで、番目のステップでます。0(−TM+1)

観察:最適な戦略では、カウンターをインクリメントしても、カウンターがに戻ることはありません。0

証明:最後のステップでカウンターをインクリメントするたびに値を割り当てます。を前のステップでカウンターをインクリメントするたびに。その前のステップでカウンターをインクリメントするたびなど。つまり、ステップと間でカウンターをインクリメントすると、値。後で証明する補題が必要です。1T12T13T−kT+1−(k−1)T1k

補題:カウンターが正であるためには、少なくとも合計値が割り当てられている必要があります。1

補題を使用すると、証明は簡単です。割り当てる必要がある合計値はであり、各正のカウンターは少なくとも合計値が割り当てられています。T∑i=1M1i≈Tlog⁡M1

補題の証明:初めてカウンターポジティブにしたときを見てください。それがと間にある場合は、少なくとも回デクリメントされているため、最終的に正になるように回インクリメントする必要があります。しかし、これらの各増分はそれに少なくとも値を割り当てます。−kT−(k−1)Tk−1k1k

そして、これが質問1の上限です。前と同じ全体的な証明戦略を使用してみましょう。繰り返しますが、と間のステップでカウンターをインクリメントするときに、値を割り当てます。また、と間のステップでカウンターをインクリメントするときに値を割り当て、その前にカウンターをインクリメントする場合は値をます。以前と同じ理由で、ステップであったカウンターには、少なくとも値を割り当てる必要があります。しかし今、ステップでカウンターが正であった場合1k−kT+1−(k−1)T −2MT−MT00−2MT1−2MT1MTlogM+TT(logM+1)1M−2MT−MT00−2MT1−2MT、最終的に正になるまで回インクリメントされている必要があるため、少なくとも合計値が割り当てられている必要があります。ここで、割り当てる必要がある合計値はであるため、最大で正のカウンターを持つことができます。1MTlog⁡M+TT(log⁡M+1)


答えてくれてありがとう!私は実際には質問(2)の下限にもっと興味があります。この質問の動機は、スライディングウィンドウ内のアイテムのおおよその数を数えるアルゴリズムにあります(反復ごとに要素、すべてのクエリは「最後のステップでが何回出現したか」という形式です)。正のカウンターの数を少なくするためにデクリメントが行われ(ただし、エラーが増加します)、ステップごとにバッファーをフラッシュし、エラーを小さく保つことができますが、本当にカウンターは正である可能性がありますX N N = T M Ω (T ログM )xxNN=TMΩ(Tlog⁡M)
— RB 14

または、私はより良い範囲を与えることができます。再度、感謝します。
— RB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.