13
計算量理論 令和元年5月27日 河村 http://www.fc.inf.kyushu-u.ac.jp/~kawamura/t/k3/

計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

  • Upload
    lebao

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

計算量理論令和元年5月27日

河村

http://www.fc.inf.kyushu-u.ac.jp/~kawamura/t/k3/

Page 2: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

時点表示(作業テープが分れているとき)

00011011011

機械 𝑀

作業テープ0001101

𝑥 =

機械 𝑀 に 𝑥 を入力して計算

𝑞 ∈ 𝑄

内部状態

作業テープの内容

入力・作業テープ上の位置

𝑛

この組合せを時点表示と呼ぶ

或る時点での機械の状況を完全に記述するには……

機械 𝑀

多項式時間限定の機械であれば

時点表示は O log 𝑄 + 𝑝 𝑛 ビットで表される(𝑝 は多項式)

入力テープ(読取り専用)

Page 3: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

𝜎 空間限定チューリング機械

入力テープ(読取り専用)

00011011011

機械 𝑀

作業テープ0001101

出力テープ(書込み専用)

0001101

𝑥 =入力の長さ 𝑥 のとき

多項式空間限定の機械で認識される言語の全体 𝐏𝐒𝐏𝐀𝐂𝐄

(𝜎:𝐍 → 𝐍)

多項式 𝑝 が存在してlog 𝑝 𝑛 空間限定

作業テープ上で訪れる枡目の個数

(入出力テープは度外視)

(停止し、それまでに)

が O 𝜎 𝑥 以下

対数空間限定の機械で認識される言語の全体 𝐋

入力よりも小さい作業領域!

「対数」 = O log 𝑥「多項式」 = 𝑥 O 1 = 2O log 𝑥

Page 4: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

まとめると……

多項式時間 多項式空間対数空間 指数時間多項式 𝑝 が存在して𝑛 ↦ log𝑝 𝑛 空間限定

多項式 𝑝 が存在して𝑝 時間限定

多項式 𝑝 が存在して𝑝 空間限定

多項式 𝑝 が存在して

𝑛 ↦ 2𝑝 𝑛 時間限定

𝐋 𝐏 𝐏𝐒𝐏𝐀𝐂𝐄 𝐄𝐗𝐏⊆ ⊆ ⊆

……の機械で解ける判定問題の全体がそれぞれ

自明 後で後で

Page 5: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

問題QBF

与えられた量化命題論理式

𝐏𝐒𝐏𝐀𝐂𝐄 に属する問題の例

偽真偽真偽偽偽真真真真真偽偽真真

∧ ∧ ∧ ∧ ∧ ∧ ∧ ∧

∨ ∨ ∨ ∨

∧ ∧

∃𝑋4. ∀𝑋3. ∃𝑋2. ∀𝑋1. 𝑋2 ∨ ¬𝑋3 ∧ 𝑋1 ∨ 𝑋4

𝑄𝑛𝑋𝑛. 𝑄𝑛−1𝑋𝑛−1…𝑄1𝑋1. 𝜑 𝑋1, … , 𝑋𝑛

の真偽を判定せよ

𝜑 𝑋1, 𝑋2, 𝑋3, 𝑋4

量化子(∀ か ∃)

命題変数真(1)か偽(0)の値をとる

𝜑 𝑋1, 𝑋2, 𝑋3, 𝑋4

∀𝑋1. 𝜑 𝑋1, 𝑋2, 𝑋3, 𝑋4

∃𝑋2. ∀𝑋1. 𝜑 𝑋1, 𝑋2, 𝑋3, 𝑋4

∀𝑋3. ∃𝑋2. ∀𝑋1. 𝜑 𝑋1, 𝑋2, 𝑋3, 𝑋4

∃𝑋4. ∀𝑋3. ∃𝑋2. ∀𝑋1. 𝜑 𝑋1, 𝑋2, 𝑋3, 𝑋4𝑋4

𝑋3

𝑋2

𝑋1

空間量 O(𝑛)深さ優先探索

QBF ∀𝑥. 𝜓 𝑥

= QBF 𝜓 0 ∧ QBF 𝜓 1深さ𝑛

QBF ∃𝑥. 𝜓 𝑥

= QBF 𝜓 0 ∨ QBF 𝜓 1

葉 2𝑛 枚容易に計算できる

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 1 0 1

0 1

0 1 0 1 0 1 0 1

各葉の値は𝜑 0,0,1, 0 = 偽

Page 6: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

𝐏𝐒𝐏𝐀𝐂𝐄 に属する問題の例

問題SIRITORI

二人による試合(手数は多項式)の勝敗 例えば

字引(ンで終らない語の一覧)と最初の字

その字からしりとりをすると先手必勝か?

カカサ

サメ

カケス

カメスルメ

メダカスズメ

……

入力

出力

∃𝑟1. ∀𝑟2. ∃𝑟3. … . ∀𝑟𝑛. 𝐵 𝑥, 𝑟1, 𝑟2, 𝑟3, … , 𝑟𝑛うまく第一手

を打てばどの第二手に対しても

うまく第三手を打てば

先手の勝である

…(𝐵 ∈ 𝐏)

長さ poly 𝑥

Page 7: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

問題ADD

与えられた二つの整数(十進表記)の和を求めよ

𝐅𝐋 に属する問題の例

空間量 O(log 𝑛)まとめて筆算

9872394872395862398472395872395872491862+ 8573458234634817591285738363645757684773

「端から見ていけば特に何も書き留めずにできる」

1982928827842935629384723+ 73402398561823472

+ 64409359203603958039572034+ 7286263498236423745

+ 8256204469283692834837

途中結果を憶える余裕はないが……

幾つかの

18445853107030679989758134236041630176635

作業領域(小さい)

66400551595582074160038811

※対数空間で解ける問題全体(判定に限らない)を 𝐅𝐋 で表す

Page 8: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

定理

函数 𝑓 と 𝑔 が 𝐅𝐋 に属するならば合成 𝑓 ∘ 𝑔 もまた 𝐅𝐋 に属する

入力テープ

作業テープ

𝑥

𝑦出力テープ

𝑔 を計算します

入力テープ作業テープ

𝑧出力テープ𝑓 を計算

します

𝑦

𝑦 = 𝑔 𝑥

𝑧 = 𝑓 𝑦

𝑓 ∘ 𝑔 を計算します

𝒚𝒊

途中結果を実際には書かず必要に応じ再計算

𝑖 文字目読みたい

Page 9: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

問題MUL

与えられた二つの整数の積を求めよ

作業領域(小さい)

×

対数空間

対数空間

合成

𝐅𝐋 に属する問題の例

Page 10: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

時点表示グラフ

入力テープ00011011011

機械 𝑀

作業テープ0001101

𝑥 =

機械 𝑀 に 𝑥 を入力して計算

𝑞 ∈ 𝑄

内部状態

作業テープの内容

入力・作業テープ上の位置

𝑛

この組合せを時点表示と呼ぶ

時点表示は poly 𝑛 個

𝑀 が対数空間

或る時点での状況を完全に記述するには……

時点表示間の遷移関係を表すグラフ(𝑀 と 𝑥 から決る)

機械 𝑀計算が停止するのであればこのグラフを から辿ると循環しないはず➡頂点数 poly(𝑛) 時間以内で終了

∴ 𝐋 ⊆ 𝐏問3.15同様に 𝐏𝐒𝐏𝐀𝐂𝐄 ⊆ 𝐄𝐗𝐏

Page 11: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

𝐋

まとめ

𝐋 = 𝐏未解決?

𝐏 = 𝐏𝐒𝐏𝐀𝐂𝐄?

QBF

𝐏𝐒𝐏𝐀𝐂𝐄

𝐏

𝐄𝐗𝐏

Page 12: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

課題

必須

問3.14 問3.15

(演習プリントの今回分を今朝更新したのでムードルから再ダウンロードして下さい)

問3.16 問3.17

問3.15

問3.18問3.13

Page 13: 計算量理論kawamura/t/k3/R010527.pdfkawamura/t/k3/ 時点表示 (作業テープが分れているとき) 00011011011 機械𝑀 作業テープ 0001101 = 機械𝑀に を入力して計算

中間試験

範囲は今日(5月27日)まで

再来週6月10日

A4判1ページ分(片面のみ)まで持込可 外界との通信不可

平均点5~6割になる難度(の積り)

演習プリントの第3節(と附録Aの関連部分)まで

※来週(6月3日)の講義は通常通り(中間試験の範囲には含めない)