study book draft 2021-12-20 Author: J.ホロムコヴィッチ Title: 計算困難問題に対するアルゴリズム理論
2.3 アルゴリズム論の基礎
2.3.1 アルファベット,語,言語
定義 2.3.1.1 任意の空ではない有限集合をアルファベットと呼ぶ.アルファベットの任意の集合はのシンボルと呼ばれる.
アルファベットの例としては
などがある.
定義 2.3.1.2 をアルファベットとする.上の語は,のシンボルの任意の有限列である.空語は0個のシンボルからなる唯一の語である.アルファベット上のすべての語の集合をで表す.
定義 2.3.1.3 アルファベット上の語の長さはと表され,に含まれるシンボルの数(すなわち,列としてのの長さ)である.任意の語と任意のシンボルに対して,は語に現れるシンボルの数を表す.
語に対して,, ,.任意のアルファベットと任意の語に対して,
2.3.2 アルゴリズム問題
Aをアルゴリズムとし,xを入力するとき,は入力xに対するAの出力を表す.
定義 2.3.2.1 決定問題は,3項組である.ここで,はアルファベットでである.アルゴリズムAが決定問題を解く(決定する)というのは,任意のに対して,
(i) の時,, (ii) の時, となることである. この定義は次の入出力の振る舞いを指定する形式と等価である.
問題 入力: 出力: なら「はい」,そうでなければ「いいえ」.
多くの決定問題に対してはを仮定している.その場合の代わりに略記法を用いる.
定義 2.3.2.2 最適化問題は以下の条件を満たす7項組で定義される. (i) はアルファベットで,の入力アルファベットと呼ばれる. (ii) はアルファベットで,の出力アルファベットと呼ばれる. (iii) は実行可能な問題インスタンスの言語. (iv) はの(実)問題インスタンスの言語. (v) はからへの関数で,任意のに対して,はに対する実行可能解の集合と呼ばれる. (vi) は任意の対に対するコスト関数である.ここで,であり,あるに対して,正の実数を割り当てる. (vii) .
任意のに対して, の時,実行可能解はとに対して最適であるという.ある最適解に対して,をによって表す.の時,を最小化問題と呼ぶ.以下では,のインスタンスに対する全ての最適解の集合をで表す. アルゴリズムが,任意のに対してを出力する時,に対して無矛盾であるという.アルゴリズムに対して,以下を満たす時,は最適化問題を解くという. (i) がに対して無矛盾である. (ii) 任意のに対して,がとに関して最適解である.
2.3.3 計算量理論
- 一様コスト尺度
- 時間計算量の測定は,考えている計算において実行される初等的命令の全体数を決定することからなる.
- 空間計算量の測定は,計算中に使用された変数の数を決定することからなる.
- 利点:コストの測定が単純である
- 欠点:全ての演算についてコスト1を考えるので,いつも適当であるとは限らない
- 全体の計算中に全ての変数のサイズがある程度固定された定数(想定される計算機の語長)で抑えられる値だけを含むことが仮定できる場合にのみ適用し得る.
- 対数コスト尺度
- 任意の初等演算のコストは被演算数に対する2進表現のサイズの和
- 通常,これがアルゴリズムの計算量解析に採用されている
- nビット整数の乗算に対する最良のアルゴリズムはの2進演算を必要とするので,乗算と除算の計算量はと考える.
定義 2.3.3.1 と をアルファベットとする. をからへの写像を実現するアルゴリズムとする.任意の に対して,を(対数コストに関する)入力におけるの計算に対する時間計算量を表し, を(対数コストに関する)入力におけるの計算に対する空間計算量を表す.
定義 2.3.3.2 とを2つのアルファベットとする.をからへの写像を計算するアルゴリズムとする.の(最悪)計算量は,任意の正整数 に対して と定義される関数である.の(最悪)計算量は によって定義される関数である.
- この計算量解析の定義は最悪時解析と呼ばれる
- をこのように定義すると,サイズの任意の入力(すなわち,の任意の入力)はによって高々時間で解くことができ,となるサイズの入力が存在するため
- 欠点:同じ長さの入力に対して非常に異なる計算量を持つアルゴリズムのときにうまく計算量を計量できない
- 平均計算量を用いる
- 平均計算量を決定することはを決めることよりもずっと難しい
- 任意の固定長の入力における現実的な確率分布上で平均が取られているときのみ,平均情報量が有用
- 平均計算量を用いる
- 数論においては,入力サイズを厳密に入力の2進表現の長さとして考える
定義 2.3.3.4 を問題とし,とをからへの関数とする.qをで解くアルゴリズムが存在する時,はの時間計算量の上界であるという. を解く任意のアルゴリズムがとなるならば,はの時間計算量の下界であるという. が成り立ち,がの時間計算量の下界である時,アルゴリズムは問題に対して最適であるという.
任意のTM(アルゴリズム)Mに対して,はMによって決定される言語を表すとする.
定義 2.3.3.5 多項式時間で決定可能な言語のクラスPを はある正整数に対して,時間のTM(アルゴリズム)である