• Tidak ada hasil yang ditemukan

PDF 本講義の概要(予定) 「計算」の定式化 - Sophia

N/A
N/A
Protected

Academic year: 2024

Membagikan "PDF 本講義の概要(予定) 「計算」の定式化 - Sophia"

Copied!
17
0
0

Teks penuh

(1)

本講義の概要(予定)

「計算」の定式化

計算機のモデル化

有限オートマトン・Turing機械など

計算機の扱う言語・文法

正規表現・生成文法・文脈自由言語など

計算可能性の理論

普遍Turing機械と対角線論法

「計算」の量と質

計算量の理論

多項式時間・“P vs NP”問題など

⋆ 幾つかの数理アルゴリズム

(2)

「計算」の定式化

計算機に於ける「計算」の各ステップ

(= 命令の実行)は、

外部からの入力

• 内部状態(メモリ・レジスタ)の現在の値 に従って、

外部への出力

内部状態(メモリ・レジスタ)の値の変更 を行なうこと

(3)

計算の理論

プログラム内蔵方式(von Neumann型)では、

プログラム・データを区別なくメモリ上に置くが、

プログラムとデータとは、やはり本質的に違う

プログラム:一つの問題では固定

データ:可変な入力

どんな(有効な)データ(入力)が来ても、

所定の出力を返すことが要請される

(4)

計算の理論

或る問題の「計算が可能」

その計算を行なうプログラムが存在

計算機の機能( =「計算」のモデル)を決めて議論

→ 代表的な「計算のモデル」を幾つか紹介

(5)

問題を「計算する」とは

入力(データ)

⇓ プログラム

⇓ 出力・動作 原理・理論を考える際には、

出力は最も単純に「0 か 1 か」とする

0:拒否(reject)

1:受理(accept)

(6)

「問題」とは

入力(データ)

⇓ プログラム

⇓ 受理か拒否か

解くべき「問題」: 入力を受理する条件

問題を「解く」: 入力が条件を満たすか判定する

(7)

「問題」の例

入力の範囲:文字 a, b から成る文字列

「問題」: 入力を受理する条件

a と b との個数が同じ

a が幾つか続いた後に b が幾つか続いたもの

a で始まり a, b が交互に並んで b で終わる

• 同じ文字列 2 回の繰返しから成る

回文(palindrome)

などなど

(8)

「問題」とは

それぞれの「問題」に対し、

定められた計算モデルで、

受理/拒否判定が可能(問題が解ける)か?

受理される文字列が

「文法に適っている」文字列だと思えば、

「問題」とは「文法(言語)」である

「文法に適っている」かどうかの判定

· · ·「構文解析(syntactic analysis)

(9)

代表的な計算モデル

有限オートマトン(有限状態機械)

プッシュダウンオートマトン

チューリングマシン

(10)

有限オートマトンの例(状態遷移図による表示)

q0 q1 q2

q3 a

a b

b a b

a,b

(11)

有限オートマトンの動作

q0 q1 q2

q3 a

a b

b a b

a,b

有限個の内部状態を持つ

有限個の文字から成る有限 長の文字列を入力として受 けて動作する

• 初期状態が定められている

入力を1文字読み、その文 字と今の内部状態とに従っ て、次の内部状態に移る

入力を読み終わったときの 内部状態によって受理/拒 否が決まる

(12)

有限オートマトンの形式的定義 M= (Q, Σ, δ, s, F) ここに、

Q:有限集合 · · · 状態の集合

Σ:有限集合· · · 入力文字の集合:“alphabet”

δ:Q×Σ→Q:遷移関数

sQ · · · 初期状態

• F⊂Q · · · 受理状態の集合

(13)

先の例

q0 q1 q2

q3 a

a b

b a b

a,b

では、

Q={q0, q1, q2, q3} Σ={a, b}

δ:Q×Σ→Q: q0 q1 q2 q3

a q1 q1 q3 q3

b q3 q2 q2 q3

s=q0Q F={q2}Q

(14)

語・言語

Σ:入力文字の有限集合 · · · alphabet 入力は Σ の元の有限列(語, word

w=a1a2· · ·an (ai Σ) その全体 Σ

Σ := ⊔

n0

Σn0 ={ε}:空列)

言語(language):Σ の部分集合 言語 AΣ に属する語 wA

· · · 言語 A に於いて“文法に適っている”

(15)

有限オートマトンによる語の受理 有限オートマトン M= (Q, Σ, δ, s, F) が

語 w=a1a2· · ·an を受理(accept)する

r0, r1, . . . , rn Q: ⇕

r0 =s

δ(ri−1, ai) = ri (i=1, . . . , n)

rn F

L(M):M が受理する語の全体 Σ

· · · M が認識(recognize)する言語 M は言語 L(M) の文法で、

M が受理する語は“文法に適っている”

(16)

演習問題

Σ={a, b} とする。

次の言語を認識する有限オートマトンを構成し、

状態遷移図で表せ (1) A={a2nb2m+1 n, m0}

(a が偶数個( 0 個も可)続いた後に、

b が奇数個続く)

(2) B={vabbaaw|v, w Σ}

(部分列として abbaa を含む)

(3) C={an n1}{bn n1}

(即ち、a と b との片方のみ)

(4) D=Σ∖{vaaaw|v, wΣ}

(即ち、a が 3 つ以上続かない)

(17)

演習問題

ちょっとしたコツ(tips)

「後に続く文字列が何だったら受理か」

が全く同じ状態は一つの状態にまとめられる。

これが違う状態はまとめられない。

(違う状態として用意する必要あり)

可能なら、

なるべく状態数 #Q が少ないものを構成すべく、

考えてみよ。

Referensi

Dokumen terkait

例: 素数判定PRIMES n=log2N : N の二進桁数 試行除算小さい方から割っていくだと Onk2n/2 くらい掛かりそう 実は多項式時間で解ける!!. Agrawal-Kayal-Saxena “PRIMES is in P” 2002 出版は

Σ ={a, b} をalphabetとする次の言語について、a 正規言語でないことを示 せ(正規言語に対するPumping Lemma(注入補題・反復補題)または部屋割り論法を用 いよ)。b 生成規則で表せ。c 受理する(非決定性)プッシュダウンオートマトンを構 成せよ。d 上記のプッシュダウンオートマトンを模倣するプログラムを作成せよ(言語 は何でも可)。 1

ちょっとしたコツtips: 「後に続く文字列が何だったら受理か」 が全く同じ状態は一つの状態にまとめられる。 これが違う状態はまとめられない。

計算の理論 命令の実行 = 「計算」 とは、 レジスタまたは主記憶の 現在の値状態に従って、 その値を変更書込すること であった。... ちょっとしたコツtips: 「後に続く文字列が何だったら受理か」 が全く同じ状態は一つの状態にまとめられる。 これが違う状態はまとめられない。

演習問題 ちょっとしたコツtips : 「後に続く文字列が何だったら受理か」 が全く同じ状態は一つの状態にまとめられる。 これが違う状態はまとめられない。

16–2 文字列 C言語には固有の「文字列型」は用意されておらず、文字型 char の配列として扱う。文字列の終わりを示 文字列 = 文字の配列 こう書くとそのまま当たり前。 す目印として null 文字 ’\0’が用いられ、配列の先頭から見ていって ’\0’までが一つの文字列として扱われ null 文字 ’\0’ は文字コード 0 の文字だ

演習問題 ちょっとしたコツtips : 「後に続く文字列が何だったら受理か」 が全く同じ状態は一つの状態にまとめられる。 これが違う状態はまとめられない。 違う状態として用意する必要あり... その説明の前に、今回は、 ここで現れる色々な概念を 集合・写像などの言葉を用いて記述する練習

演習問題 ちょっとしたコツtips : 「後に続く文字列が何だったら受理か」 が全く同じ状態は一つの状態にまとめられる。 これが違う状態はまとめられない。 (違う状態として用意する必要あり)... その説明の前に、今回は、 ここで現れる色々な概念を 集合・写像などの言葉を用いて記述する練習