SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
「0がn個続いたあと1がn個続く」
を正規表現にできるか?
                01, 0011, 000111, .....



2013.3.28 たぬき
おはなしの流れ
全ての正規表現には等価な有限オートマトンがあ
る。

有限オートマトンには必要条件がある。

さっきの問題は有限オートマトンの必要条件を満た
さない。よって、正規表現にはできない。
有限オートマトン
有限オートマトンとは計算機のモデルである。

有限個の状態があり、入力信号によって状態間を遷移する。
ひとつの開始状態といくつかの受理状態がある。

        0


            1         1           状態 {A, B, C}
                                  信号 {0, 1}
        A       B         C       開始状態 A
            0         0           受理状態 {C}

    受理するもの :011, 1101, 00101101, ...
    受理しないもの:0, 110, 00110, ....
正規表現のオートマトン変換
全ての正規表現は有限オートマトンへ変換できる。
時間が限られているので、正確な定義と証明は飛ばす。
※証明は「計算理論の基礎 第一巻」など参照。




ここでは幾つか正規表現をオートマトンに変換してみる。
正規表現→オートマトン(1)
0*1                like検索
                  [0,1]*010[0,1]*

      1                   0         1       0




 0          0,1                         1
                    1         0                 0,1




          0,1
正規表現→オートマトン(2)
0*1*001
                                                          0,1
                                  0
                          0
              0


          1                   1
                      1

                          1           0           1             0       0,1
                                          1
                                              0       0             1
                          0

                  1


正規表現は必ずオートマトンに変換できる
必要条件:ポンピング補題
あるルールに従っている文字列の集合Aがオートマトンで表せる
とする。オートマトンの状態数をpとする。

そのとき、Aの集合に含まれる文字列のうち、長さpを超えるもの
は全て、以下の条件を満たす3つの文字列片x,y,zに分解できる。

1) 各i≧0について、x(y^i)z ∈ A
2) yの長さは0より大きい
3) xyの長さはpより小さいか等しい
ポンピング補題 簡易証明
状態の数pより長い任意文字列sは、必ず同一の状態を通るはず
(sによる行き先はpより多いのだから)。

よって、通る遷移にループが生まれているはず。
このループがyにあたると考えると……。

【補題内容】
1) 各i≧0について、x(y^i)z ∈ A
2) yの長さは0より大きい
3) xyの長さはpより小さいか等しい
背理法による証明(方針)
「任意の整数nに対し、0がn個続いた後に1がn個続く」
を正規表現にできたとしよう。

すると、これはオートマトンにできるはずだ。

オートマトンにできるなら、ポンピング補題を満たすはずだ。
背理法による証明(実装1)
「任意の整数nに対し、0がn個続いた後に1がn個続く」ことを表す
オートマトンの状態がp個だったとする。

ここで、0がp個続いたあと1がp個続く文字列sを考える。
sは明らかに上記条件を満たしている。
また、sの長さはpより大きい。

ポンピング補題より、sはxyzの3つの文字列に分けられ、以下を満た
すはずである。
1) 各i≧0について、x(y^i)z ∈ A
2) yの長さは0より大きい
3) xyの長さはpより小さいか等しい
背理法による証明(実装2)
ここでyが0だけからなるとする。するとxyyzなどは0と1の数があわ
ず、以下を満たさない。
1) 各i≧0について、x(y^i)z ∈ A

1だけからなるとする場合も、同様に成り立たない。

0と1の組み合わせからなる場合、yyの内部で0より前に1が現れる
ようになり、成り立たない。

よって、「任意の整数nに対し、0がn個続いた後に1がn個続く」こは
ポンピング補題を満たさない。
→オートマトンにできない→正規表現にできない     Q.E.D

Mais conteúdo relacionado

Mais procurados

距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
Haruka Ozaki
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
irrrrr
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
 

Mais procurados (20)

距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説AtCoder Beginner Contest 011 解説
AtCoder Beginner Contest 011 解説
 
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
 
「樹木モデルとランダムフォレスト-機械学習による分類・予測-」-データマイニングセミナー
「樹木モデルとランダムフォレスト-機械学習による分類・予測-」-データマイニングセミナー「樹木モデルとランダムフォレスト-機械学習による分類・予測-」-データマイニングセミナー
「樹木モデルとランダムフォレスト-機械学習による分類・予測-」-データマイニングセミナー
 
Pythonでカスタム状態空間モデル
Pythonでカスタム状態空間モデルPythonでカスタム状態空間モデル
Pythonでカスタム状態空間モデル
 
Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)
 
異常検知と変化検知の1~3章をまとめてみた
異常検知と変化検知の1~3章をまとめてみた異常検知と変化検知の1~3章をまとめてみた
異常検知と変化検知の1~3章をまとめてみた
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
ユークリッド最小全域木
ユークリッド最小全域木ユークリッド最小全域木
ユークリッド最小全域木
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
言語と画像の表現学習
言語と画像の表現学習言語と画像の表現学習
言語と画像の表現学習
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
 
予測理論とpredictability
予測理論とpredictability予測理論とpredictability
予測理論とpredictability
 
わかパタ 1章
わかパタ 1章わかパタ 1章
わかパタ 1章
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
 
abc027
abc027abc027
abc027
 

「0がn個続いたあと1がn個続く」を正規表現にできるか?