SlideShare a Scribd company logo
「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

More Related Content

What's hot

競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
鈴木 セシル
 
GPU最適化入門
GPU最適化入門GPU最適化入門
GPU最適化入門
Takahiro KOGUCHI
 
HoloLens開発環境構築(2018/1版)
HoloLens開発環境構築(2018/1版)HoloLens開発環境構築(2018/1版)
HoloLens開発環境構築(2018/1版)
Takahiro Miyaura
 
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
Shin-ya Koga
 
Binary Reading in C#
Binary Reading in C#Binary Reading in C#
Binary Reading in C#
Yoshifumi Kawai
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
Yusuke HIDESHIMA
 
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミングSounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
t-sin
 
論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方
Takashi Kawanami
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
微積分
微積分微積分
微積分
鍾誠 陳鍾誠
 
Deflate
DeflateDeflate
Deflate
7shi
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
 
2オセロプレゼンテーション
2オセロプレゼンテーション2オセロプレゼンテーション
2オセロプレゼンテーション
Baku Momoki
 
CG2013 11
CG2013 11CG2013 11
CG2013 11
shiozawa_h
 
【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう
【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう
【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう
Unity Technologies Japan K.K.
 
数学つまみぐい入門編
数学つまみぐい入門編数学つまみぐい入門編
数学つまみぐい入門編
Akira Yamaguchi
 
競プロは人生の役に立つ!
競プロは人生の役に立つ!競プロは人生の役に立つ!
競プロは人生の役に立つ!
Kensuke Otsuki
 
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
京大 マイコンクラブ
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
Kohsuke Yuasa
 
2018年度オフシーズンにやったこと
2018年度オフシーズンにやったこと2018年度オフシーズンにやったこと
2018年度オフシーズンにやったこと
RyogaSato2
 

What's hot (20)

競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
 
GPU最適化入門
GPU最適化入門GPU最適化入門
GPU最適化入門
 
HoloLens開発環境構築(2018/1版)
HoloLens開発環境構築(2018/1版)HoloLens開発環境構築(2018/1版)
HoloLens開発環境構築(2018/1版)
 
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
 
Binary Reading in C#
Binary Reading in C#Binary Reading in C#
Binary Reading in C#
 
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
 
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミングSounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
Sounds Like Common Lisp - ゼロからはじめるサウンドプログラミング
 
論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方論理回路シミュレータ Logisim の使い方
論理回路シミュレータ Logisim の使い方
 
ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門ゼロから始める自作 CPU 入門
ゼロから始める自作 CPU 入門
 
微積分
微積分微積分
微積分
 
Deflate
DeflateDeflate
Deflate
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
2オセロプレゼンテーション
2オセロプレゼンテーション2オセロプレゼンテーション
2オセロプレゼンテーション
 
CG2013 11
CG2013 11CG2013 11
CG2013 11
 
【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう
【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう
【Unite 2017 Tokyo】ScriptableObjectを使ってプログラマーもアーティストも幸せになろう
 
数学つまみぐい入門編
数学つまみぐい入門編数学つまみぐい入門編
数学つまみぐい入門編
 
競プロは人生の役に立つ!
競プロは人生の役に立つ!競プロは人生の役に立つ!
競プロは人生の役に立つ!
 
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
2018年度オフシーズンにやったこと
2018年度オフシーズンにやったこと2018年度オフシーズンにやったこと
2018年度オフシーズンにやったこと
 

Recently uploaded

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 

Recently uploaded (10)

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 

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