• 検索結果がありません。

授業計画

N/A
N/A
Protected

Academic year: 2021

シェア "授業計画"

Copied!
28
0
0

読み込み中.... (全文を見る)

全文

(1)

アルゴリズムとデータ構造

6週 木の走査、二分木、決定木

2013年10月31日 金岡 晃

(2)

授業計画

1(9/26)

データ構造とアルゴリズムの基 礎

2(10/3)

アルゴリズムの効率、線形構造 第3

(10/10)

スタックと待ち行列 第4

(10/17)

文字列照合(KMP法、BM法)

5(10/24)

木構造、木の走査

文字列照合(BM法)、木構 造

6(10/31)

木の走査、二分木、決定木

8(11/21)

休講 第9

(11/28)

グラフ構造と最短路問題 第10

(12/5)

解の探索:Aアルゴリズム 第11

(12/12)

データ整列:ヒープソート 法

12(12/19)

データ整列:クイックソー ト法

13(1/9)

データ探索:ハッシュ法 第14週 データ探索:木構造探索法

(3)

5 週【復習】

文字列照合( BM 法)、木の構造

アルゴリズムとデータ構造

(4)

BM

Boyer-Moore法(BM法)

末尾から照合をしていく場合の照合失敗後のシフト量を

あらかじめパターンから計算をしておき、照合を行っていく

アルゴリズムの流れ

パターンpat[1..m]より シフト量を決める量 shift[1..m]を計算

shiftの計算

パターンの末尾から照合して いくが、照合失敗後のシフト 量はshift[1..m]λ[1..Σ]に従う

照合

各文字がpat上で 最も右に現れる 位置λ[1..Σ]の計算

λの計算

(5)

BM

法:

shift

の導出

shiftの導出(図解)

パターンを用いて、パターン同士の照合を 行い、シフト量を求める

pat B A B B A B

パターンの末尾 i 文字目を見て ここが照合失敗した場合に

何文字シフトするべきかを数える shift[6] 1文字 shift[6]=1

shift[5] 2文字 shift[5]=2 shift[4] 5文字 shift[4]=5 shift[3] 3文字 shift[3]=3 shift[2] 3文字 shift[2]=3 shift[1] 3文字 shift[1]=3

B A B B A B B A B B A B B A B B A B B A B B A B B A B B A B B A B B A B

(6)

BM

法:

shift

の導出

shiftの導出

(アルゴリズム)

(7)

BM

法:

λ

shift

の利用

アルゴリズムの流れ

パターンpat[1..m]より シフト量を決める量 shift[1..m]を計算

shiftの計算

パターンの末尾から照合していくが 照合失敗後のシフト量は

照合を失敗したテキスト場所kの文字text[k]

パターンの場所をiとした場合、

shift[i](i- λ[text[k]) の大きい方の分だけシフトする

照合

各文字がpat上で 最も右に現れる 位置λ[1..Σ]の計算

λの計算

(8)

演習

1

BM

法における

λ

Shift

導出

パターン “BACBABA”の場合の λshiftの導出を行え。

λはアルゴリズムを用い、

shiftは図解とアルゴリズムを用いて示せ

ただし、

アルファベットは A,B,C3文字とする

(9)

2

項演算子と、算術式の木構造

d=a*(b+c)

=

d *

a +

b c

z=y+1/(x-1)

=

z +

y /

1 -

x 1

2項演算子 2つの項を用いて演算を行う演算子

グラフ理論の木の構造をしたデータ構造 木構造

(10)

算術式の基本構造

演算子

1

被演算子 第

2

被演算子

(11)

中置記法と後置記法

中置記法

演算子が中央に置かれている

A+B

前置記法

演算子が前に置かれている

+AB

後置記法(ポーランド記法)

演算子が後ろに置かれている

AB+

人が通常使う記法

コンパイラが通常使う記法

(12)

6

木の走査、二分木、決定木

アルゴリズムとデータ構造

(13)

本日の到達目標と概要

到達目標

木の定義と様々な木を理解する

概要

木の定義

多進木

木の走査

決定木(偽コインの問題)

(14)

木 データ構造における木(Tree)または有向木(Directed Tree)と は、節(Node)の有限集合 𝑇 であって、次の2つの性質を満たす ものを言う。

1. 根(Root)と呼ばれる節 𝑅 をちょうど1つ含む

2. 根以外の節は0個以上の互いに素な部分集合𝑇1, ⋯ , 𝑇𝑛 に分割さ れ、各 𝑇𝑖 1 ≤ 𝑖 ≤ 𝑛 は再び木になっている

互いに素な集合:

共通の要素がない集合同士 𝑇𝑖 を木𝑇の部分木

Subtree)という

(15)

木の表現例

𝐴

𝐵 𝐶 𝐷

𝐸 𝐹 𝐺 𝐻 𝐼

𝐽

𝐴 𝐵 𝐸 𝐹 𝐽 𝐺 𝐶 𝐷 𝐻 𝐼

𝐴

𝐵 𝐶 𝐷

𝐸 𝐹 𝐺 𝐻 𝐼

𝐽

(16)

根からその節に至るまでに出会う節の個数

木の用語(1)

節の次数 その節から出ている枝の本数。部分木の個数。

葉(Leaf) 次数0の節 内部節

(Internal Node) 葉以外の節。分枝節(Branch Node)とも。

節のレベル

(Level)

木の高さ

(17)

子から見たもとの木の根

木の用語(2)

(Child、Son) 木の根から見て部分木の根 親

(Parent)

𝑥が(節𝑥の)親を通過しないで節𝑦へ至る1つ以上 の枝の系列(長さが1以上の経路)があるとき、 節𝑥 を節𝑦の先祖という。

先祖

(Ancestor)

上記のとき、 節𝑦を節𝑥の子孫という。

子孫

(Descendant)

0個以上の木の有限集合 森

(Forest)

(18)

多進木

順序木

(Ordered Tree) 木 𝑇 の部分木 𝑇1, ⋯ , 𝑇𝑛 について順序が導入されてい るとき、その木を順序木と言う。

図式表現では左の部分木ほど前にあるものと考える

𝐴

𝐵 𝐶 𝐷

𝐴

𝐶 𝐵 𝐷

兄弟(Brother):

より前の部分木の根であるものを、後ろのものの兄といい、

逆を弟という

(19)

𝑛

進木

𝑛進木

𝑛-ary tree) 節(Node)の有限集合 𝑇 であって、空集合であるか、

または次の2つの性質を満たすものを言う。ただし𝑛 ≥ 1

1. 根(Root)と呼ばれる節 𝑅 をちょうど1つ含む

2. 根以外の節は 𝑛個の互いに素な順序の付いた部分集合𝑇1, ⋯ , 𝑇𝑛 に分割され、各 𝑇𝑖 1 ≤ 𝑖 ≤ 𝑛 は再び𝑛進木になっている

部分木𝑇𝑖 を第𝑖 部分木という。

特に𝑛 = 1の場合、𝑛進木は線型

リストになる

𝑛 ≥ 2のとき多進木(Multiway Tree)という。

(20)

二分木

二分木

(Binary Tree) 節(Node)の有限集合 𝑇 であって、空集合であるか、

または次の2つの性質を満たすものを言う。

1. 根(Root)と呼ばれる節 𝑅 をちょうど1つ含む 2. 根および2個の互いに素な二分木𝑇𝑙, 𝑇𝑟 とからなる

兄の𝑇𝑙 を左部分木(Left

Subtree)、弟の𝑇𝑟 を右部分木

Right Subtree)という。

図式表現においては、左部分木 と右部分木をはっきり区別でき るように描かなければならない

𝐴 𝐴 𝐴

(21)

二分木の走査

二分木の走査 二分木のすべての節を訪問する処理

𝑅

𝛼 𝛽

二分木の 再帰的構造

𝑥の走査を行う手順を𝑡𝑟𝑎𝑣 𝑥 とすると、以下の3通りの走 査が考えられる

1. 先順: 𝑅 → 𝑡𝑟𝑎𝑣 𝛼 → 𝑡𝑟𝑎𝑣(𝛽) 2. 中順: 𝑡𝑟𝑎𝑣 𝛼 → 𝑅 → 𝑡𝑟𝑎𝑣(𝛽) 3. 後順: 𝑡𝑟𝑎𝑣 𝛼 → 𝑡𝑟𝑎𝑣(𝛽) → 𝑅

(22)

二分木の走査の例

𝐴

𝐵 𝐶

𝐷 𝐹 𝐺

先順

中順

後順

(23)

演習1:二分木の走査

下記の二分木を先順・中順・後順でそれぞれ走査し たときの、節の訪問順序を記載せよ

𝐴

𝐵 𝐶

𝐷 𝐸 𝐹 𝐺

𝐻 𝐼 𝐽

(24)

二分木の節の物理構造

データ本体

left record right p

d=a*(b+c)

=

d *

=

d *

a +

(25)

決定木:偽コインの問題(1)

8枚のコイン𝑎, 𝑏, ⋯ , ℎ があり、そのうち1枚だけが偽物である。偽物は外見は 違わないが、重さが異なっているので区別できる。ただし、偽物が本物より 重いのか軽いのか不明である。ここで、天秤を3回だけ用いて、どのコイン が偽物でかつそれは本物より重いのか軽いのかを知るにはどうすれば良いか

𝑎, 𝑏, 𝑐を左、𝑑, 𝑒, 𝑓を右 左が重い 𝑎, 𝑏, 𝑐 のどれかが重い or 𝑑, 𝑒, 𝑓のどれかが軽い 𝑎, 𝑏, 𝑐 のどれかが軽い or

𝑑, 𝑒, 𝑓のどれかが重い 右が重い

𝑔, ℎ のどちらかが偽物 釣り合う

𝑎, 𝑑を左、 𝑏, 𝑒を右

左が重い 𝑎が重いor

𝑒が軽い

右が重い 釣り合う

𝑎を左、𝑒以外の何かを右

わかる!

(26)

決定木:偽コインの問題(2)

𝑎 + 𝑏 + 𝑐 ∶ 𝑑 + 𝑒 + 𝑓

𝑎 + 𝑑 ∶ 𝑏 + 𝑒 𝑎 + 𝑑 ∶ 𝑏 + 𝑒

𝑎 ∶ 𝑥 𝑐 ∶ 𝑥 𝑏 ∶ 𝑥 𝑑 ∶ 𝑥 𝑓 ∶ 𝑥 𝑒 ∶ 𝑥

𝑔 ∶ ℎ

𝑔 ∶ 𝑥 ℎ ∶ 𝑥

> = <

>

=

< > < > <

=

(27)

演習2:

10

枚のコインの場合

偽コインの問題で、コインが全部で10枚ある場合の 決定木を書け

(28)

本日の到達目標と概要

到達目標

木の定義と様々な木を理解する

概要

木の定義

多進木

木の走査

決定木(偽コインの問題)

参照

関連したドキュメント

都市計画決定の内容 宇都宮都市計画地区計画の決定(真岡市決定) 都市計画東光寺地区地区計画を次のように決定する。 名 称 東光寺地区地区計画

専攻科のシラバスの冒頭には、教育目的と養成しようとする技術者像、学士課程

専攻科のシラバスの冒頭には、教育目的と養成しようとする技術者像、学士課程

さらに、平成 13 年に提示されたモデルコアカリキュラムを導入し、現在の歯学部授業科 目は導入科目、コア科目、アドバンス科目、臨床実習の

学生 1 名に対し複数の指導教員を配し、1 年次は歯学概論および歯科臨床概論・病院見学

研究の早期立ち上げと専門性の獲得、さらに学際的視点の涵養を重視しています。1~4

実務家教員名/実務経験内容/実務経験に基づ く教育内容(実務経験のある教員による授業科

実務家教員名/実務経験内容/実務経験に基づ く教育内容(実務経験のある教員による授業科