コルモゴロフの複雑さに基づく非規則性の証明


8

クラスで私たちの教授は私たちに非規則性を証明するための3つの方法を示しました:

  1. Myhill–Nerodeの定理
  2. 通常言語用の補題のポンピング
  3. コルモゴロフの複雑さに基づく非規則性の証明

さて、最初の2つであるMyhill-Nerodeの定理とPumping補題はよく理解でき、最初の2つの方法の演習も行うことができました。しかし、私は3番目のものを理解しませんでした。3番目の方法の定義は次のとおりです。

してみましょうL ⊆ (ΣのB O O L)*は正規言語であること。ましょL X = { yは∈ (ΣのB O O L)* | X 、Y ∈ L }すべてのためのx ∈ (ΣのB O O L)*。定存在Cのすべてのためのように、X 、Y ∈ (ΣのBのoは L⊆(Σbool)∗ Lx={y∈(Σbool)∗|xy∈L} x∈(Σbool)∗ c x,y∈(Σbool)∗

 K(y)≤⌈log2(n+1)⌉+c

もしyが言語のn番目の単語であり、LのX。 y Lx

この定理を使用して言語が正規でないことを証明する方法がわかりません。実際にはコンセプトがわかりません。以前は、オブジェクトの最短のコンピュータープログラムの長さを決定するために、コルモゴロフの複雑さを使用しました。この定理で非規則性を証明するにはどうすればよいですか?そして、その背後にある考えは何ですか?

どうもありがとう!

回答:


8

私の知る限り、これは通常の言語を特徴付けるために使用される「古典的な」アプローチの1つではありません。

このアプローチについては、Ming LiとPaul MB Vitanyiによる「コルモゴロフの複雑さによる形式言語理論への新しいアプローチ」で説明されています(セクション3.1を参照)。

それらは、ポンプ補題を使用する代わりにあなたが言及したステートメントを使用できるいくつかの例を示します。たとえば、非正則性を証明すると、L

。L={1p|p is prime}

いくつかを考える、L 、X = { Y |x∈Σ∗。x = 1 p ′を選択します。ここで、 p ′は k番目の素数です。ましょう Y 1の最初の単語である LのX。明らかに、 Y 1 = 1 、P - P ' pがある K + 1つの素数。あなたが言及した声明によると、 K (Y 1)≤ C( nはLx={y|xy=1p∧p is prime}x=1p′p′ky1Lxy1=1p−p′pk+1K(y1)≤c)、 Lのみに依存する定数 cについて(論文参照)。n=1cL

これはすべてのに当てはまるため、S = { y x 1 |のすべての要素のコルモゴロフ複雑度を制限できます。X = 1 、P  素数のための  P ∧ Y 、X 1は、  最初の文字列であり、  LのX }同じ一定のによりC。ただし、Sは実際には連続する素数間の差で構成されていることがわかりました。つまり、 S = { 1 p k + 1 − p k | K ≥ 1 }xS={y1x|x=1p for prime p ∧y1x is the first string in Lx}cSS={1pk+1−pk|k≥1}ここで、はk番目の素数です。Sがコルモゴロフの複雑さを制限できないことを知っているので(素数の差が勝手に大きくなる)、これはLが規則的ではないことを意味します。pkkSL


2
私はこのテクニックを知りませんでした。私たちの参照質問に答えを追加する気はありますか?
— ラファエル

1
はい、後で追加できます。私もこのテクニックに気付いていなかったと認めざるを得ませんが、opの質問を調べた後でこのペーパーに出くわしました。他の方法と比べて、この手法がどれほど人気が​​あるかはわかりません。Arxivの論文は実際に1995年にSIAMで公開されたので、最初は思ったほど新しいものではありません(まだ、興味深い、独自のアプローチ)。
— 2016年

 1p−p′ Lx y1=1p′−p

1
x=1p′Lxy1x=1p−p′pxy1x=1p′+(p−p′)=1pxy1xy1x

3

Lww={ww∣w∈{0,1}∗}

コルモゴロフの複雑性の役割をよりよく理解するのに役立つことを期待して、非常に非公式な証明を提供します。

DLDx=yzyxLDz

LwwDww

y|y|=n≫|D|

x=yzyDwwqizx=yzyz=ww

 Let y = 10110
       y   z
 x = 10110 0  >> rejected
 x = 10110 1  >> accepted  (w=101, |y|>|z|)
 x = 10110 00 >> rejected
 x = 10110 01 >> rejected
 ....
 x = 10110 10110 >> accepted  (w=10110,  |y|=|z| !!!)
 ....
 x = 10110 1101101 >> accepted (w=101101, |z|<|y|

z|y|z=y

Dwwqiy|y|Dww2|y|z=y

ℓ=|Dww|+log⁡i+log⁡y+c

|Dww|Dwwlog⁡iqilog⁡yyc

yyℓ<|y|y


私はこのテクニックを知りませんでした。私たちの参照質問に答えを追加する気はありますか?
— ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.