アルゴリズムとデータ構造 第9回演習解答.

Slides:



Advertisements
Similar presentations
Copyright © the University of Tokyo 文字化けの背景を知る. Copyright © the University of Tokyo 課題の概要 日本語の文字コードについて理解を深める  MacOS( テキストエディット ) で利用可能なエ ンコーディング ( コード化方式.
Advertisements

【事例演習5】  字句解析     解 説  “ハッシュを用いた字句解析の方法”.
第1章 場合の数と確率 第1節 場合の数  3  順列 (第3回).
LZ符号化 森田 岳史.
情報生命科学特別講義III (1) 文字列マッチング
情報知識ネットワーク 有村・喜田研究室 ex. 7678, 7679
Regex takatosi.
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
第1章 数と式 第4節 集合と命題  8  集合 (第3回).
情報処理演習C2 ファイル操作について (2).
第1章 場合の数と確率 第1節 場合の数  3  順列 (第1回).
情報理論2 注意!! 11月26日(火)は休講 (小林が学会出張のため) 湘南工科大学情報工学科 准教授 小林 学 湘南工科大学
第11回 整列 ~ シェルソート,クイックソート ~
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
Microsoft Excel 2010 を利用した 2項分布の確率計算
アルゴリズムとデータ構造 2012年7月19日
第10回 ソート(1):単純なソートアルゴリズム
ISD実習E 2009年6月1日 read関数 read-macro back-quote 文字列のread 課題
オペレーティングシステムJ/K 2004年11月4日
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
文字列探索 2011/5/30.
アルゴリズムとデータ構造 2011年6月13日
動的ハフマン符号化の例 入力:ABCDEからなる文字列 出力:動的に作ったハフマン木.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
アルゴリズムと データ構造 第4回 スタック・キュー.
第20章 Flyweight ~同じものを共有して無駄をなくす~
データ構造とアルゴリズム論 第7章 探索のアルゴリズム
第11回 整列 ~ シェルソート,クイックソート ~
アルゴリズムとデータ構造 2013年7月18日
7.時間限定チューリングマシンと   クラスP.
データ構造とプログラミング技法 (第10回) ー文字列照合(KMP法、BM法)ー.
ネット時代の情報センス 基礎情報科学のトピックス.
九州大学大学院システム情報科学研究科 情報理学専攻 竹田研究室 博士課程3年 喜田 拓也
生物情報ソフトウェア特論 (1) 文字列マッチング・データ構造
喜田 拓也,竹田 正幸,篠原 歩 九州大学大学院システム情報科学府 情報理学専攻
Fast Pattern Matching Algorithms in Compressed Texts
プログラミング論 II 2008年10月30日 文字列
文字列照合を用いた XMLデータアクセス機構の提案
コード配色の変更を認めるマスターマインドの 推測回数に関する考察
データ構造とアルゴリズム 第14回 文字列の照合.
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
アルゴリズムとデータ構造 2011年7月12日
半構造化テキストに対する 文字列照合アルゴリズム
プログラミング言語論 第10回 練習問題解答例 情報工学科 篠埜 功.
テキスト検索は 文字列検索でも木検索でもない
2005年度 データ構造とアルゴリズム 第6回 「ハッシュ法を用いた探索」
データ圧縮技術による文字列照合処理の高速化に関する研究
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
長さの制限付きギャップと 文字クラスを含むパタンに対する 照合アルゴリズムの改善
スタックとキュー データ構造とプログラミング (第5回).
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
データ構造とアルゴリズム論 第6章 探索のアルゴリズム
アルゴリズムとデータ構造 2012年6月11日
オペレーティングシステムJ/K (管理のためのデータ構造)
LZW 圧縮テキストに対する 高速文字列照合アルゴリズム 喜田 拓也 竹田 正幸 篠原 歩 九州大学大学院システム情報科学研究科
情報処理Ⅱ 第7回 2004年11月16日(火).
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
Microsoft Excel 2010 を利用した 2項分布の確率計算
プログラミング論 文字列
プログラミング 4 文字列.
アルゴリズムとデータ構造 補足資料6-1 「サンプルプログラムcat1.c」
データ構造とアルゴリズム 第14回 文字列の照合.
8.文字列処理 8.1 C#の文字列 C#では, “ABCD”のように文字列を2重引用符で挟んで指定します。ASCIIコード体系のとき,以下のような内部形式となります。 1 1 文字 ‘A’ ナル文字 1 1 文字 ‘B’ A B C D \ 文字 ‘C’ 1 1 文字 ‘D’ ナル文字‘\0’
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
岩村雅一 知能情報工学演習I 第13回(後半第7回) 岩村雅一
第3回Bashゼミ for文処理について 発表者 直江 宗紀.
Presentation transcript:

アルゴリズムとデータ構造 第9回演習解答

第9回演習解答(1/5) [問] 次の131文字のテキストストリング(英語の部分。数字は位置を示す。)からパターン``retiring''が最初に現れる位置を求めたいとする。素朴なアルゴリズム、 Knuth-Morris-Pratt法とBoyer-Moore法ではそれぞれ何回文字比較を行うことになるか? (1)素朴なアルゴリズム 01234567890123456789012345678901234567890123456789012345678901234567890 Fans crowded in front of Futagoyama stable, Monday morning, waiting for * * * * 123456789012345678901234567890123456789012345678901234567890 the word they expected yet dreaded-Takanohana was retiring. * ** ******** 122文字目から一致する。先頭からの122文字にパターンの先頭を位置づけた場合、 何文字目(先頭は0文字目)で失敗するか調べると 1文字目 5回 2文字目 1回 0文字目 122-6=116回 したがって、 比較回数は      116×1 + 5×2 + 1×3 + 8 = 137 (回) である。

第9回演習解答(2/5) (2)Knuth-Morris-Pratt法 失敗関数f: パターンのi文字目(i≧1, 先頭は0文字目)で失敗した場合、次はパターン        のf(i)文字目から照合を続ければ漏れなく照合できるような関数 ...ra... ...ra... ...retire... ...retire... retiring retiring retiring retiring i=1 i=0 i=5 i=1 ...rea... ...rea... ...retirir... ...retirir... retiring retiring retiring retiring i=2 i=0 i=6 i=0 ...retu... ...retu... ...retirink... ...retirink... retiring retiring retiring retiring i=3 i=0 i=7 i=0 ...retic.. ...retic... retiring retiring i 1 2 3 4 5 6 7 f i=4 i=0 0文字目、1文字目の失敗は素朴なアルゴリズムと同じ動きとなる。2文字目以降の失敗 はちょうど2文字目で失敗する場合が1度だけ(100文字目からの“rea”)あり、この場合は 0文字目で失敗する場合をスキップできるので、1回比較が減る。よって比較回数は136回。

第9回演習解答(3/5) Boyer-Moore法 関数d: テキストtのj文字目で失敗した場合、次はテキストのj+d(t[j])文字目、 パターンの最後の文字から照合を続ければ漏れなく照合できるような関数 j 文字g j j+0 j+5 文字t ...gg... ...gg... ...tiring... ...tiring... retiring retiring retiring retiring j j+1 j j+6 文字n 文字e ...ng... ...ng... ...etiring... ...etiring... retiring retiring retiring retiring j j+2 文字i j 文字a j+8 ...ing... ...ing... retiring retiring ...atiringng... ...atiringng retiring retiring j j+3 文字r ...ring... ...ring... retiring retiring 文字 r e t i n g その他 d 3 6 5 2 1 8

第9回演習解答(4/5) ..angr.. ...angrabcdefg... ...rg... ...rg... retiring 関数dd: テキスト文字列のj文字目、パターン文字列のi文字目で失敗した場合 テキスト文字列の j+dd(i)文字目、パターン文字列の最後の文字から照合を続ければ漏れなく照合できるような関数 j j+10 j j+1 ..angr.. ...angrabcdefg... ...rg... ...rg... retiring retiring retiring retiring i=5 j i=7 j+9 i 1 2 3 4 5 6 7 dd 15 14 13 12 11 10 9 ...rgr.. ...rgrabcdefg... retiring retiring i=6

第9回演習解答(4/5) 文字 r e t i n g その他 d 3 6 5 2 1 8 i 1 2 3 4 5 6 7 dd 15 14 関数d: テキストtのj文字目で失敗した場合、次はテキストのj+d(t[j])文字目、 パターンの最後の文字から照合を続ければ漏れなく照合できるような関数 文字 r e t i n g その他 d 3 6 5 2 1 8 関数dd: テキスト文字列のj文字目、パターン文字列のi文字目で失敗した場合 テキスト文字列の j+dd(i)文字目、パターン文字列の最後の文字から照合を続ければ漏れなく照合できるような関数 i 1 2 3 4 5 6 7 dd 15 14 13 12 11 10 9 01234567890123456789012345678901234567890123456789012345678901234567890 Fans crowded in front of Futagoyama stable, Monday morning, waiting for d 8 8 8 8 8 8 2 * 1* dd 1 1 1 1 1 1 1 * 1* d 1** 5** dd b** b** 123456789012345678901234567890123456789012345678901234567890 the word they expected yet dreaded-Takanohana was retiring. d 6 8 8 6 8 8 8 3 * dd 1 1 1 1 1 1 1 1 * d ******* dd ******* 11のつもり 比較回数は 32回