SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
「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

Weitere ähnliche Inhalte

Was ist angesagt?

פרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונות
פרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונותפרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונות
פרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונותtelnof
 
ゲーム理論スライド02章
ゲーム理論スライド02章ゲーム理論スライド02章
ゲーム理論スライド02章fumiwo
 
פרק 1ב משוואת משיק
פרק 1ב  משוואת משיקפרק 1ב  משוואת משיק
פרק 1ב משוואת משיקtelnof
 
教育訓練 Training
教育訓練 Training教育訓練 Training
教育訓練 TrainingChiChi
 
正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めて正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めてRyoma Sin'ya
 
פרק 1.1 מאגר שאלות 802: פונקציות וגרפים - פתרונות
פרק 1.1 מאגר שאלות 802:  פונקציות וגרפים - פתרונותפרק 1.1 מאגר שאלות 802:  פונקציות וגרפים - פתרונות
פרק 1.1 מאגר שאלות 802: פונקציות וגרפים - פתרונותtelnof
 
Prijemni trigonometrijski-izrazi
Prijemni trigonometrijski-izraziPrijemni trigonometrijski-izrazi
Prijemni trigonometrijski-izraziKostic Valentina
 
與高中生談人工智慧與深度學習
與高中生談人工智慧與深度學習與高中生談人工智慧與深度學習
與高中生談人工智慧與深度學習Yen-lung Tsai
 
Cody Roux - Pure Type Systems - Boston Haskell Meetup
Cody Roux - Pure Type Systems - Boston Haskell MeetupCody Roux - Pure Type Systems - Boston Haskell Meetup
Cody Roux - Pure Type Systems - Boston Haskell MeetupGreg Hale
 
נספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותנספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותcsnotes
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門Eita Sugimoto
 
פרק 3.2 מאגר שאלות: טריגו במרחב - פתרונות
פרק 3.2 מאגר שאלות: טריגו במרחב - פתרונותפרק 3.2 מאגר שאלות: טריגו במרחב - פתרונות
פרק 3.2 מאגר שאלות: טריגו במרחב - פתרונותtelnof
 

Was ist angesagt? (20)

פרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונות
פרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונותפרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונות
פרק 2.3 מאגר שאלות: תפלגות נורמלית - פתרונות
 
ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5ΠΛΗ30 ΤΕΣΤ 5
ΠΛΗ30 ΤΕΣΤ 5
 
ゲーム理論スライド02章
ゲーム理論スライド02章ゲーム理論スライド02章
ゲーム理論スライド02章
 
実用Brainf*ckプログラミング入門編
実用Brainf*ckプログラミング入門編実用Brainf*ckプログラミング入門編
実用Brainf*ckプログラミング入門編
 
פרק 1ב משוואת משיק
פרק 1ב  משוואת משיקפרק 1ב  משוואת משיק
פרק 1ב משוואת משיק
 
教育訓練 Training
教育訓練 Training教育訓練 Training
教育訓練 Training
 
ΠΛΗ30 ΤΕΣΤ 1
ΠΛΗ30 ΤΕΣΤ 1ΠΛΗ30 ΤΕΣΤ 1
ΠΛΗ30 ΤΕΣΤ 1
 
正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めて正規表現入門 星の高さを求めて
正規表現入門 星の高さを求めて
 
פרק 1.1 מאגר שאלות 802: פונקציות וגרפים - פתרונות
פרק 1.1 מאגר שאלות 802:  פונקציות וגרפים - פתרונותפרק 1.1 מאגר שאלות 802:  פונקציות וגרפים - פתרונות
פרק 1.1 מאגר שאלות 802: פונקציות וגרפים - פתרונות
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.2
ΠΛΗ30 ΜΑΘΗΜΑ 1.2ΠΛΗ30 ΜΑΘΗΜΑ 1.2
ΠΛΗ30 ΜΑΘΗΜΑ 1.2
 
Prijemni trigonometrijski-izrazi
Prijemni trigonometrijski-izraziPrijemni trigonometrijski-izrazi
Prijemni trigonometrijski-izrazi
 
RMQ クエリ処理
RMQ クエリ処理RMQ クエリ処理
RMQ クエリ処理
 
ΠΛΗ30 ΜΑΘΗΜΑ 1.5
ΠΛΗ30 ΜΑΘΗΜΑ 1.5ΠΛΗ30 ΜΑΘΗΜΑ 1.5
ΠΛΗ30 ΜΑΘΗΜΑ 1.5
 
與高中生談人工智慧與深度學習
與高中生談人工智慧與深度學習與高中生談人工智慧與深度學習
與高中生談人工智慧與深度學習
 
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
 
Cody Roux - Pure Type Systems - Boston Haskell Meetup
Cody Roux - Pure Type Systems - Boston Haskell MeetupCody Roux - Pure Type Systems - Boston Haskell Meetup
Cody Roux - Pure Type Systems - Boston Haskell Meetup
 
Presentacion del viaje a Japon
Presentacion del viaje a JaponPresentacion del viaje a Japon
Presentacion del viaje a Japon
 
נספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצותנספחון קצר בתורת הקבוצות
נספחון קצר בתורת הקבוצות
 
ラムダ計算入門
ラムダ計算入門ラムダ計算入門
ラムダ計算入門
 
פרק 3.2 מאגר שאלות: טריגו במרחב - פתרונות
פרק 3.2 מאגר שאלות: טריגו במרחב - פתרונותפרק 3.2 מאגר שאלות: טריגו במרחב - פתרונות
פרק 3.2 מאגר שאלות: טריגו במרחב - פתרונות
 

Kürzlich hochgeladen

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Kürzlich hochgeladen (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

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