20
非非非非非非非非非非 非非非非非非非非非 篠篠 非非 非 非非非非非非非非非非非 非非 非非 非非非非非非非非非非非非非非非 非非 非 非非 非非非 一, 非非非非非非非非非非非 A09 非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非非 非非非非非非非非 非非非非非 非非非非非非非非非非非非非 非非非非非非非非非非非非非非非非非非非非非非 非非非非非非非非

非明示的表現に対する アルゴリズムの開発

  • Upload
    skah

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

A09班. 非明示的表現に対する アルゴリズムの開発. 計算の対象が明示的に与えられるのではなく, それを生成する文法や論理式,数式などを用いて 非明示的に 表現されて与えられたときに,それを効率よく処理するアルゴリズムの開発と計算量の解析を行う.. 篠原 歩 ,石野 明     東北大学情報科学研究科 竹田 正幸    九州大学システム情報科学研究院 下薗 真一,坂本 比呂志   九州工業大学情報工学部. . 7. f 0 = b f 1 = a f n = f n-1 ・ f n-2  ( n ≥ 2). 6. 5. 4. 3. 1. - PowerPoint PPT Presentation

Citation preview

Page 1: 非明示的表現に対する アルゴリズムの開発

非明示的表現に対するアルゴリズムの開発

篠原 歩,石野 明     東北大学情報科学研究科

竹田 正幸    九州大学システム情報科学研究院下薗 真一,坂本 比呂志  九州工業大学情報工学部

A09班

計算の対象が明示的に与えられるのではなく,それを生成する文法や論理式,数式などを用いて非明示的に表現されて与えられたときに,それを効率よく処理するアルゴリズムの開発と計算量の解析を行う.

Page 2: 非明示的表現に対する アルゴリズムの開発

6

4

1

ba

2

7

3

5

フィボナッチ文字列 abaababaabaababaabaababa のさまざまな表現

f2=abf3=abaf4=abaabf5=abaababaf6=abaababaabaabf7=abaababaabaababaababa

f0 = bf1 = afn = fn-1 ・ fn-2  ( n≥2)

xy2

51

compressgzipbzip2 : 圧縮

漸化式,文法

OBDD 風方程式

Page 3: 非明示的表現に対する アルゴリズムの開発

aabaababaabaababaabaabab

aabaababaabaababaabaabab

aabaababaabaababaabaabab

aababaabaababaabaababaab

aababaabaababaabaababaab

aababaabaababaabaababaab

abaabaababaabaababaabaab

abaabaababaabaababaabaab

abaabaababaabaababaabaab

abaababaabaababaabaababa

abaababaabaababaabaababa

abaababaabaababaabaababa

ababaabaababaabaababaaba

ababaabaababaabaababaaba

ababaabaababaabaababaaba

baabaababaabaababaabaaba

baabaababaabaababaabaaba

baabaababaabaababaabaaba

baababaabaababaabaababaa

baababaabaababaabaababaa

baababaabaababaabaababaa

babaabaababaabaababaabaa

babaabaababaabaababaabaa

babaabaababaabaababaabaa

BW 変換すると b9a15  になる

bzip2 で圧縮しやすい

abaababaabaababaabaababa

Page 4: 非明示的表現に対する アルゴリズムの開発

フィボナッチ文字列は bzip2 でよく縮む

f2=abf3=abaf4=abaabf5=abaababaf6=abaababaabaabf7=abaababaabaababaababa

BW 変換 b1a1  b1a2  b2a3  b3a5

b5a8  b8a13   

BW 逆変換

Page 5: 非明示的表現に対する アルゴリズムの開発

OBDD で表現された文字列に対する圧縮パターン照合   [DLT2004]

ba ba

abaababaabaababa

abaabaab

テキストの圧縮表現 パターンの圧縮表現

圧縮パターン照合アルゴリズム

出現位置は {6}

abaababaabaababaabaabaab

パターン照合アルゴリズム長さ N

長さM

O(M+N) 時間

O(n2m) 時間節点数 n節点数 m

仮想の世界

愚直に適用するとO(2m + 2n) 時間かかる

1 2 3 4 5 6 7 8…

Page 6: 非明示的表現に対する アルゴリズムの開発

OBDD ⋍ MPMG SLP

x3

x 2

x1

x 2

x1

ba

x1

T = abaababa

X2

X3

X1

a b a ba a b a

X1

X4

X1 X1

X5

X2 X1

X5

X2

X6 X7

X8

OBDD

X1 = aX2 = bX3 = X1 X2

X4 = X1 X1

X5 = X2 X1

X6 = X3 X4

X7 = X5 X5

X8 = X6 X7

MPMG

Page 7: 非明示的表現に対する アルゴリズムの開発

T = (aaab)n

Good Compression for Repetitive Text

a

X1

a

X1

a

X1

b

X2

a

X1

a

X1

a

X1

b

X2

a

X1

a

X1

a

X1

b

X2

X6

X7

X3 X4 X3 X4 X3 X4

X5 X5 X5

a

X1

b

X2

X6

X7

X3

X5

X4

Page 8: 非明示的表現に対する アルゴリズムの開発

Example of MPM Grammar

X1 = aX2 = bX3 = X1 X2

X4 = X1 X1

X5 = X2 X1

X6 = X2 X2

X7 = X3 X4

X8 = X5 X5

X9 = X6 X3

X10 = X7 X8

X11 = X9 X2

X12 = X10 X11

MPMG

X2

X3

X1

a b a ba a b a b b a b a

X1

X4

X1 X2

X3

X1X2

X6

X2X1

X5

X2 X1

X5

X2 X2

X7 X8 X9

X10 X11

X12

T = abaabababbaba

Page 9: 非明示的表現に対する アルゴリズムの開発

OBDD で表現された文字列に対する

圧縮パターン照合   [DLT2004]

ba ba

abaababaabaababa

abaabaab

テキストの圧縮表現 パターンの圧縮表現

圧縮パターン照合アルゴリズム

出現位置は {6}

abaababaabaababaabaabaab

パターン照合アルゴリズム長さ N

長さM

O(M+N) 時間

O(n2m) 時間節点数 n節点数 m

仮想の世界

愚直に適用するとO(2m + 2n) 時間かかる

1 2 3 4 5 6 7 8…

Page 10: 非明示的表現に対する アルゴリズムの開発

第7回日本ことば遊び・回文コンテスト最優秀作品 出涸らしに 求める駄菓子 噛む夫婦

昔語る目 共に白髪で英語の回文   A Santa lived as a devil at NASA

一般の文章から回文はほとんど見つからない

著者名 - 作品名 文字数 長さ 6 以上の回文

芥川 竜之介 - 戯作三昧 23815 1平林 初之輔 - 文学方法論 20896 1宮本 百合子 - 一連の非プロレタリア的作品 19180 0

回文の検出

Page 11: 非明示的表現に対する アルゴリズムの開発

レーベンシュタイン回文の例 (誤り2 )

11

イ ツ タ ハ ン ニニ ハ タ ラ イ

rev(SL) と SR のレーベンシュタイン距離が2

に働いて行った犯人(青空文庫より)

イ ラ タ ハ ニ rev(SL)

SRSL

反転

誤り kのすべてのレーベンシュタイン回文を検出する O(k2n) 時間アルゴリズム                                        [Porto et.al.2002]

誤り kのすべてのハミング回文を検出する O(kn) 時間アルゴリズム

近似回文

Page 12: 非明示的表現に対する アルゴリズムの開発

HTML テキスト <h1> 「竹やぶ」焼けた。 </h1>

漢字かなテキスト

かなテキスト

清音かなテキスト

記号除去かなテキスト

「竹やぶ」焼けた。

「タケヤブ」ヤケタ。

「タケヤフ」ヤケタ。

タケヤフヤケタ

HTML タグの除去

MeCab により変換

濁音等を清音に置換

カナと長音以外の記号を除去

レーベンシュタイン回文検出アルゴリズムの適用

Web テキストからの近似回文検出

Page 13: 非明示的表現に対する アルゴリズムの開発

13

検索語を入力,誤りと長さを指定

回文検出位置を強調表示

Web アプリケーションの実装

Page 14: 非明示的表現に対する アルゴリズムの開発

14

著者 - 作品名 文字数 誤 0長6

誤 1 長7 誤 2長 8

芥川 竜之介 - 戯作三昧2381

5 1 9 26

平林 初之輔 - 文学方法論 20896 1 11 39

宮本 百合子 - 一連の非プロレタリア的作品

19180 0 8 28検出した誤り 2 の回文 回文に対応する原文

イセントトウヨウニトンテイ

ヨクノカツシンシツノヒヨ

シヨトクノチヨチクトシシ

ンノシヨシヨシヨウエン

以前と同様に富んでいる窮極のかつ真実の標準所得の貯蓄と支出自分の処女上演より多くの回文を検出することができた

ただし,ハミング回文の方が対応を見つけやすい

レベンシュタイン回文の検出結果

Page 15: 非明示的表現に対する アルゴリズムの開発

圧縮文字列を展開せずに回文検出

• 入力: SLP• 出力:すべての極大な回文の位置を

    簡潔に表した構造  X1 = a

X2 = bX3 = X1 X2

X4 = X1 X1

X5 = X2 X1

X6 = X3 X4

X7 = X5 X5

X8 = X6 X7

SLP

a b a a b a b a

O(n4) 時間 O(n2)領域アルゴリズム n : SLP の行数

w wR, wcwR

Page 16: 非明示的表現に対する アルゴリズムの開発

圧縮文字列を展開せずにスクエア検出

• 入力: SLP• 出力:すべてのスクエアの位置を

    簡潔に表した構造  X1 = a

X2 = bX3 = X1 X2

X4 = X1 X1

X5 = X2 X1

X6 = X3 X4

X7 = X5 X5

X8 = X6 X7

SLP

a b a a b a b a

入力が通常のテキストならばO(n) 時間で見つかることが知られている

w w

未解決

Page 17: 非明示的表現に対する アルゴリズムの開発

フィボナッチ文字列の中の繰り返し構造

部分文字列          はどれだけ繰り返す?

4 回以上は繰り返さない部分文字列        

   はどこにある?

Page 18: 非明示的表現に対する アルゴリズムの開発

n- ボナッチ文字列の繰り返し構造

    中の  繰り返し回数       [F.Mignosi ら , 1992]

    中の  の繰り返し回数 

回 回 = 2 + φ

黄金比

- ボナッチ i定数

Page 19: 非明示的表現に対する アルゴリズムの開発

フィボナッチ文字列の一般化

フィボナッチ

トリボナッチ

n- ボナッチ

Page 20: 非明示的表現に対する アルゴリズムの開発

ひらめき☆ときめきサイエンス~ようこそ大学の研究室へ~ 

KAKENHI(研究成果の社会還元・普及事業,日本学術振興

会)

「アルゴリズムを体感しよう ----- ロボットプログラミングを通じて – ----- 」平成19年8月7日(火) 予定東北大学 青葉山キャンパス受講生 高校生10名を募集予定

アナウンス