どの単調なブール関数が合計のしきい値として表現可能ですか?


16

例で問題を紹介します。独立した質問の特定のセットで構成される試験を設計しているとしましょう(受験者は正しいか間違っているかを判断できます)。各質問に与えるスコアを決定します。ルールでは、合計スコアが特定のしきい値を超える候補者は合格し、他の候補者は失敗します。n

実際、あなたはこれについて非常に徹底しており、すべての可能な結果を想定し、このパフォーマンスの候補者が合格するか失敗するかをそれぞれについて決定しました。したがって、ブール関数があり、候補者が正確な答えに応じて合格するか失敗するかを示します。もちろん、この関数は単調である必要があります。一連の質問を正しく取得すると合格になり、スーパーセットを適切に取得すると合格する必要があります。 F :{ 0 、1 } のn → { 0 、1 }2nf:{0、1}n→{0、1}

質問に与えるスコア(正の実数)としきい値を決定して、関数がルールによって正確にキャプチャされるようにすることができます。「正しい質問のスコアの合計がしきい値を超える場合、候補は合格します」 ?(もちろん、スコアを定数で乗算するまで、一般性を損なうことなくしきい値を1にすることができます。)f

正式:単調なブール関数ありますかすべての、場合、ます。W 1、... 、W N ∈ R + V ∈ { 0 、1 } nは F (V )= 1 ΣをIをwはiがV I ≥ 1f:{0,1}n→{0,1}w1,…,wn∈R+v∈{0、1}nf(v)=1∑私w私v私≥1

すべての関数をこのように表現できるわけではないことを確認するのはそれほど難しくありません。例えば機能することはできません:として受け入れられ、私たちは持っている必要があります、のいずれかのようW_1、W_2がなければなりません\ geq 1/2、および同様にw_3、w_4。ここで、たとえばw_1とw_3の場合、w_1 + w_3 \ geq 1であるが(1、0、1、0 )は拒否されるため、矛盾があります。他の場合も同様です。(1 、1 、0 、0 )W 1 + W 2 ≥ 1 、W 1、W 2 ≥ 1 / 2 、W 3、W 4 、W 1 、W 3 、W 1 + W 3 ≥ 1 (1 、0 、(バツ1∧バツ2)∨(バツ3∧バツ4)(1、1、0、0)w1+w2≥1w1、w2≥1/2w3、w4w1w3w1+w3≥1(1、0、1、0)

これは非常に自然な問題のように思えるので、私の主な質問は、これがどの名前で研究されているかを知ることです。もちろん、「特性化」を求めることはあいまいです。私の質問は、この方法で表現できる関数のクラスに名前があるかどうか、入力関数がそれに属しているかどうかのテストの複雑さについて知られていること(式または回路として与えられる)などを知ることです。

もちろん、このテーマには多くのバリエーションが考えられます。たとえば、実際の試験では質問は独立していませんが、依存関係を示す質問にはDAGがあり、受験者はすべての前提条件が満たされている場合にのみ質問に答えることができます。単調関数の条件は、依存関係を満たす\ {0、1 \} ^ nの評価に制限することができます。{0、1}n問題は、入力関数が変数の入力DAGでキャプチャできるかどうかを判断することです。スコアが固定kのkタプル(点ごとに加算され、点ごとにしきい値ベクトルと比較される)で、k = 1よりも多くの関数をキャプチャできるバリアントも考えられます。kk=1。あるいは、ブールではなく、ドメイン内の位置を示すさまざまなしきい値を持つ完全に順序付けられたドメインに移動する、より表現力豊かな関数をキャプチャすることもできます。最後に、負のスコアを許可した場合にどうなるかはわかりません(関数に関する単調な制限を解除できます)。

(注:これについて私が疑問に思ったのは、Google Code Jam選択ラウンドです。候補者が特定のスコアのしきい値に達すると候補者が選択され、問題のスコアはおそらく、選択するのに十分と思われる問題のセットを反映するように慎重に設計されています。Code Jamには質問に対する依存構造があり、「小さな入力」の質問を最初に解決しないと解決できない「大きな入力」の質問がいくつかあります。


これらは、しきい値関数として知られています(ただし、この用語はより厳密に定義される場合があります)。本質的に異なる特性があるかどうかはわかりません。明らかに必要な条件は、とが凸である(つまり、の凸包がと交差しているはに含まれ、0についても同様です。f−1(1)f−1(0)f−1(1){0、1}nf−1(1)
— エミールJeřábekはモニカサポート

実際に考えてみると、ブール関数は、f − 1(1 )とf − 1(0 )の凸包が互いに素である場合のしきい値関数です。ff−1(1)f−1(0)
— エミールJeřábekはモニカサポート

2
実際、これらは正のしきい値関数です。
— クリストファーアーンスフェルトハンセン

@KristofferArnsfeltHansen:本当にありがとう!実際には、これはブール関数:理論、アルゴリズム、およびアプリケーションで言及されています。定理9.16は、正のDNFが与えられた場合、PTIMEで、それがしきい値関数であるかどうかをテストし、はいの場合、ベクトル(定理9.6で正になります)を構築できると言います。私が提案したバリアント、特に変数にDAGがあるバリアントについて何か知っていますか?そうでない場合は、そう言う回答を歓迎します(そして、あなたのコメントを包含します)。:)w
— a3nm

回答:


2

これらは正のしきい値関数であることがコメントで言及されました。

他の特性については、次のことが興味深いことがわかりました。我々は重みを減少させる正の閾値関数があると: F (V 1、... 、V N)= 1w1≥w2≥…wn そして特に、入力のセット(V1、...、VのN)、そのため、F( → V)=1とバイナリmajorization格子の順序理想的である2つのn個である点、で勉強した

f(v1、…、vn)=1⟺∑私w私v私≥1。
(v1、…、vn)f(v→)=12n

Donald Knuth、「コンピュータープログラミングの技術」、セクション7.1.1の演習109。

非公式に言えば、、以前のビット1になり作る機能の一種であるF 1である可能性が高いと:そう例えば、F (0 、1 、1 )≤ F (1 、0 、1 )≤ F (1 、1 、0 )。つまり、「一部のビットがより重要」であり、冗長な同型のケースを削除するために、以前のビットがより重要であると想定しています。fff(0、1、1)≤f(1、0、1)≤f(1、1、0)

ただし、このような関数のすべてが正のしきい値関数ではありません!つまり、試験の質問を最も重要なものから最も小さいものに並べたからといって、合格/不合格のルールが単にスコアを合計することに基づいているわけではありません。

実際、上の(減少量を有する)正の閾値関数の数変数は、シーケンスによって与えられる 2 、3 、5 、10 、27 、119 、1113、... (oeis.orgシーケンスA000617)は、注文理想の数に対しで 2 、3 、5 、10 、27 、119 、1173、... (oeis.orgシーケンスA132183)n

2、3、5、10、27、119、1113、…
2、3、5、10、27、119、1173、…

ありがとう!あなたの答えで言及された他の種類のブール関数、変数の影響に関する完全な順序を持つものは、「通常の」ブール関数と呼ばれると指摘したいと思います。これは、シーケンスA132183で言及されており、そのような関数はブール関数の
— a3nm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.