「密な」正規表現は


25

正規表現の推測は次のとおりです。

正規表現R場合、長さ|R|括弧と演算子を無視して、その中のシンボルの数になります。例えば|0∪1|=|(0∪1)∗|=2

推測:場合 およびは、長さすべてのストリングが含まれます以下の場合、。L (R )| R | L (R )= Σ ∗|R|>1L(R)|R|L(R)=Σ∗

つまり、がRの長さまで「密」である場合、Rは実際にすべてを生成します。L(R)RR

関連する可能性のあるもの:

  1. すべての文字列を生成するために必要なのは、ほんの一部です。バイナリで、例えば、R = (0 ∪ 1 )* ∪ Sは任意のために動作します。RR=(0∪1)∗∪SS
  2. ある時点で Kleene星が必要です。存在しない場合は、|より小さいサイズの文字列が欠落します。R | 。R|R|

証拠や反例を見るといいでしょう。見逃したことが明らかに間違っているケースはありますか?誰もこれ(または似たようなもの)を見たことがありますか?


あると∅として数えたりなどは?ε∅symbolsoperations
— ランG.

@Ran私はそれらをシンボルとして数えていました。
— ルーカスクック

回答:


34

あなたの推測は、Keith Ellul、Bryan Krawetz、Jeffrey Shallit、およびMing-wei Wangの論文「正規表現:新しい結果と未解決の問題」で反証されています。論文はオンラインでは入手できませんが、講演は可能です。

論文では、彼らは尺度を定義しています、中のシンボルの数であるR、ないカウントεまたは∅。しかし、∅空の言語を生成していないすべての式から排除することができ、式は「クリーンアップ」することができますので、多くのことをε、それが含まれているが、ほとんどです| a l p h(R )| (講演の10ページの補題)。|alph(R)|Rϵ∅∅ϵ|alph(R)|

51ページでは、すべてのため彼らは、サイズの正規表現コンストラクトO (n個の)上{ 0 、1 }せいぜいサイズのすべての文字列を生成Ω (2 N N )が、すべての文字列を生成しません。ここでの「サイズ」は、あなたの感覚と彼らの両方の意味であることに注意してください。また、2つのパラメーター間の最適な依存関係を見つけるための未解決の質問もあります。n≥3O(n){0、1}Ω(2nn)


非常にクールな結果であり、かなり驚くべきことです:)
— アレックス10ブリンク

その正規表現はどのように見えますか?
— -svick

@svick:(a + b )(c + d )= a c + bというトリックを巧みに組み合わせています(a+b)(c+d)=ac+bc+ad+bd

@Yuvalとてもクール。参照いただきありがとうございます!
— ルーカスクック

2
@YuvalFilmus 論文は現在オンラインで入手できるようです。
— アントントルーノフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.