最小ヒープオートマトンで受け入れられる言語の反転の下での閉鎖の証明


16

これは、のフォローアップの質問です、この1

エキゾチックステートマシンに関する以前の質問で、Alex ten BrinkとRaphaelは、特有の種類のステートマシンであるmin-heapオートマトンの計算能力について述べました。彼らは、そのようなマシン()が受け入れる言語のセットが、コンテキストフリー言語のセットのサブセットでもスーパーセットでもないことを示すことができました。その質問の成功した解決と明らかな関心を考慮して、私はいくつかのフォローアップの質問をすることを続行します。HAL

通常の言語はさまざまな操作の下で閉じられることが知られています(ユニオン、インターセクション、補数、差、連結、Kleeneスター、反転などの基本操作に制限される場合があります)プロパティ(これらは、結合、連結、Kleeneスター、および反転の下で閉じられます)。

HALは逆転で閉鎖されますか?


そのようなマシンの用途は何ですか?または、これはアカデミックな演習ですか?
デイブクラーク

@DaveClarkまあ、それらは主に学術的な演習です(私が知る限り、私はリンクされた質問でそれらを作り上げました)。ただし、他のマシン(DFA、TMなど)と同じ方法で計算を行うことができるため、それらを使用できる可能性があります。
Patrick87

この質問は、なぜオートマトンに付随する文法が必要なのかを示しています。ああ、私の脳!
ラファエル

4
た形式の言語を使用して証明しようとしていましたが、時間がかかりすぎてandめました。たぶん、このアイデアは誰にも役立つでしょう。{xyy is a lexicographically sorted copy of x}
ランG.

@RanG .:うまくいくと思う。言語があることを証明し、反転はないという妥当な推論を与える答えに賞金を授与することができてうれしいです。HAL
ラファエル

回答:


4

言語 (ここでにおけるゼロの意味数)。0x x

L×2={xyzx,y,z{0,1},#0(x)=#0(y) and |x|+|y|=z}
#0(x)x

HALマシンを使用してを決定するのは簡単です—マシンが2つのプロパティを追跡する必要があることに注意してください: vsゼロの数と(vs)の長さ すべてのゼロに対してa をヒープにプッシュできます(その後、すべてのゼロに対してポップします)。さらに、任意のビットをプッシュします(そして、後で任意のビットをポップします)。すべてのがヒープにプッシュダウンされるため、カウントに干渉しません。区切り文字として機能し、実質的に無視することができます。、X 、Y 、X Y 、Zは、xは、Y 、X Y 、ZをL×2xyx,yz0x0y1x,y1z10

次に、逆言語にします。つまり、 HALマシンがを決定できないことを示します。 L = { Z Y X | X Y Z { 0 1 } 0X = 0Y  と  | x | + | y | = z } LL=L×2R

L={zyxx,y,z{0,1},#0(x)=#0(y) and |x|+|y|=z}
L

直観は次のとおりです。上記のように、マシンはの長さとゼロの数の両方を追跡する必要があります。ただし、この場合、それらを同時に追跡する必要があります。これはヒープ経由ではできません。より詳細には、を読み取った後、ヒープには長さに関する情報が含まれます。を読み取る間、マシンはのゼロの数をヒープに保持する必要があります。ただし、この情報は、が期待する長さでヒープがすでに持っている情報と干渉することはできません。非常に直感的に、ゼロの数に関する情報は、長さに関する情報の「下」になりますx y z | x | + | y | y y x x xzx,yz|x|+|y|yyxx、そして読みながら、私たちはそれにアクセスすることはできません、またはそれは、その情報「上」でレンダリング後者アクセスできない、または二つの情報は、「混合」と無意味になるだろう。x

より正式には、ある種の「ポンピング」引数を使用します。つまり、非常に長い入力を受け取り、その入力の処理中にマシンの「状態」が繰り返される必要があることを示します。これにより、マシンが「状態」を繰り返すと入力を「置換」できます。

正式な証明のために、HALマシンの構造の単純化、つまり -transitions「ループ」が含まれていないことを要求します。この仮定により、マシンが処理するすべての入力シンボルについて、ヒープのコンテンツは最大で増加/減少できることがわかり (十分に大きい定数)。1、C 、Cε1cc

証明。が決定する
と仮定し、十分な長さの入力(たとえば、長さ、したがって、、以下の無視)を考慮します。具体的には、を修正し、と仮定します。あることを観察異なるようの。L 4 n | x | = | y | = n | z | = 2 N Z Y 0Y = N / 2 NHL4n|x|=|y|=n|z|=2nz,y#0(y)=n/2(nn/2)Z Y のx LxzyxL

処理した直後のヒープのコンテンツを考慮します。想定により、最大シンボル(各シンボルは固定アルファベット)が含まれています。ただし、受け入れられるべき異なるがあります(これは、ヒープの可能な異なるコンテンツの量よりもかなり大きく、これは指数関数的に増加しますが、ヒープの異なる数は多項式で増加します。以下を参照) )。受け入れられる2つの入力を取得します。これにより、次のことが成り立ちます。3 N C Γ nはzy3ncΓxsx1x2(nn/2)xsx1,x2

  1. の長さのプレフィックスは、同じ長さののプレフィックスとは異なる数のゼロを持ちます。n/2x 2x1x2
  2. マシンが部分の長さプレフィックスを読み取るまでに、ヒープはと両方で同じように見え、また、マシンは同じ状態にあります(これはで発生する必要があります。十分に大きな、あるとして以上異なるオプションため、及び最大でヒープコンテンツおよび状態のためのさまざまなオプション)。n/2xx1x2x1,x2n20.8n2x1,x2(3.5cn)|Γ||Q|3

マシンが単語受け入れる必要があることは明らかです。ここで、は長さの接頭辞であり、は同じ長さのの接尾辞です。ゼロの数ように注意におけるゼロの数と異なるおよび(からである、、我々が選択した方法による)、および、このように我々は矛盾に達し。zyx1px2sx1pxn/2x2sx2x1px2sx1x2#0(y)x1x2

1 この仮定は一般性を損ないますか?私はそうは思いませんが、これには確かに証拠が必要です。誰かがこの余分な仮定を回避する方法を見つけたら、私は知りたいです。修正して、接頭辞(長さに正確にゼロがある)にします。スターリングの近似使用するとであることがわかりここで、バイナリエントロピー関数です。以来、我々は十分な大きさのためにアルファベット想定
2 x1n/2n/4HH1/40.81 nはlog(nk)nH(k/n)H()H(1/4)0.81N(nn/4)>20.8nn3Γ| Γ| nnnn+1
3 Γ、長さ異なる文字列があるため、これがスタックである場合はねじ込みました。ただし、「01」をヒープにプッシュすることは「10」をプッシュすることと同じです。ヒープには、コンテンツのソートされたバージョンのみが格納されます。異なる数ソートサイズの文字列である 定数の。|Γ|nnn| Γ|(n+1|Γ|1)n|Γ||Γ|


いいね!後で正式な部分をもう一度読む必要があります。1)広告¹:こちらもご覧ください。2)(同じ優先順位のすべてのシンボルの中で)返されるヒープシンボルの非決定的な選択を許可する場合、引数は壊れます。
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.