Probabilistic analysis of algorithms とは

アルゴリズムの分析において、アルゴリズムの確率的解析は、アルゴリズムまたは計算上の問題の計算上の複雑さを推定する手法である。すべての可能な入力の集合の確率的分布についての仮定から始まる。この仮定は、効率的なアルゴリズムを設計するため、または既知のアルゴリズムの複雑さを導き出すために使用されます。
このアプローチは、確率論的アルゴリズムと同じではありませんが、2つを組み合わせることができます。
確率論的でない、より具体的には、決定論的アルゴリズムの場合、最も一般的なタイプの複雑さ推定値は、平均の場合の複雑さ(予想される時間の複雑さ)とほぼ常に複雑さです。入力分布を仮定すると、平均事例複雑度を得るために、アルゴリズムの予想時間が評価されるが、ほぼ常に複雑さ推定値に対して、アルゴリズムは、ほぼ確実に所与の複雑さ推定値を認めると評価される。
確率的(無作為化)アルゴリズムの確率分析では、入力分布に加えて、無作為化されたステップにおけるすべての可能な選択の分布または平均化も考慮される。

Worst-case complexity とは

コンピュータ科学では、最悪の場合の複雑さ(通常、漸近表記で示される)は、アルゴリズムが最悪の場合に必要とするリソース(例えば、実行時間、メモリ)を測定する。それは、アルゴリズムによって必要とされるリソースの上限を与える。
実行時間の場合、最悪の場合の時間複雑度は、サイズnの任意の入力を与えられたアルゴリズムによって実行される最長の実行時間を示し、これによりアルゴリズムが時間通りに終了することが保証される。さらに、最悪の場合の複雑さの成長の順序は、2つのアルゴリズムの効率を比較するために使用される。
アルゴリズムの最悪の場合の複雑さは、アルゴリズムがランダム入力で使用するリソース量の平均尺度である平均ケースの複雑さと対比されるべきです。

Polylogarithmic function とは

nにおける多項式関数は、nの対数の多項式であり、
a k ( log n ) k + + a 1 ( log n ) + a 0 . {\displaystyle a_{k}(\log n)^{k}+\cdots +a_{1}(\log n)+a_{0}.}
コンピュータサイエンスでは、いくつかのアルゴリズム(例えば、「ポリロゴナルオーダー」を有する)によって使用される時間またはメモリのオーダーとして、ポリロ関数が生じる。
n {\displaystyle n} のすべての多項式関数は、すべての指数ε> 0(この記号の意味では小文字表記を参照)に対して o ( n ε ) {\displaystyle o(n^{\varepsilon })} であり、つまり、ポリロガル関数は任意の正の指数よりもゆっくりと成長する。この観測はソフトO表記υ(n)の基礎となる。

Iterative compression とは

コンピュータサイエンスでは、反復圧縮は、各ステップの問題に1つの要素(グラフの頂点など)が追加される固定パラメータの扱いやすいアルゴリズムの設計のためのアルゴリズムテクニックであり、問​​題の以前の問題この追加は、ステップの後の問題に対する小さな解決策を見つけるのに役立ちます。
このテクニックは、Reed、Smith、Vettaによって、n個の頂点、m個のエッジ、および奇数サイクルトラバーサル番号kを持つグラフに対して、奇数サイクルトランスバーサルの問題が時間O(3k kmn)で解けることを示すために考案されました。奇数サイクルトランスバーサルは、各奇数サイクルから少なくとも1つの頂点を含むグラフの頂点の最小セットを見つける問題である。そのパラメータ化された複雑さは長年の未解決の問題でした。この技法は、後で固定パラメータの可読性の結果を示すのに非常に有用であることが判明した。これは、現在、パラメータ化されたアルゴリズムの分野における基本的技術の1つと考えられている。
反復圧縮は、奇数サイクルトランスバーサル(下を参照)およびエッジ二部化、フィードバック頂点セット、クラスタ頂点削除および有向フィードバック頂点セットなどの多くの問題でうまく使用されています。また、独立したセットの正確な指数関数時間アルゴリズムにも有効に使用されています。

Empirical algorithmics とは

コンピュータサイエンスでは、経験的アルゴリズム(または実験的アルゴリズム)は、経験的方法を使用してアルゴリズムの動作を研究する実践である。このプラクティスでは、アルゴリズム開発と実験を組み合わせています。アルゴリズムは設計されたものではなく、さまざまな状況で実装され、テストされます。このプロセスでは、アルゴリズムの初期設計が解析され、アルゴリズムが段階的に展開される。

Master theorem (analysis of algorithms) とは

アルゴリズムの解析では、分割・征服再現のマスター定理は、多くの除算アルゴリズムと征服アルゴリズムの解析で発生するタイプの漸化関係に漸近解析(Big O表記を使用)を提供します。このアプローチは、1980年にJon Bentley、Dorothea Haken、James B. Saxeによって最初に発表されました。そこでは、このような再発を解決するための「統一方法」として記述されていました。 「マスター定理」という名前は、Cormen、Leiserson、Rivest、およびSteinのアルゴリズムの紹介で広く使用されているアルゴリズムの教科書によって一般化されました。
この定理の使用によってすべての再帰関係を解くことはできません。その一般化にはAkra-Bazzi法が含まれる。

Cache-oblivious distribution sort とは

キャッシュを知らない分布のソートは、比較ベースのソートアルゴリズムです。クイックソートに似ていますが、ソートする要素の数が大きすぎて操作が行われるキャッシュに収まらない設定のために設計された、キャッシュを知らないアルゴリズムです。外部メモリモデルでは、サイズが Z {\displaystyle Z} のキャッシュと長さ L {\displaystyle L} のキャッシュラインを持つマシン上の一種の N {\displaystyle N} アイテムを実行するために必要なメモリ転送の数は、高キャッシュの仮定の下で O ( N L log Z N ) {\displaystyle O({\frac {N}{L}}\log _{Z}N)} それ Z = Ω ( L 2 ) {\displaystyle Z=\Omega (L^{2})} 。この数のメモリ転送は、比較ソートに漸近的に最適であることが示されています。この分布ソートは Θ ( N log N ) {\displaystyle \Theta (N\log N)} の漸近的に最適な実行時の複雑さも達成する。

Pseudo-polynomial time とは

計算複雑性理論では、実行時間が入力の数値(入力に存在する最大の整数)の多項式である場合、数値アルゴリズムは擬似多項式時間で実行されますが、入力の長さ(必ずしも入力の長さそれを表現するのに必要なビット数)であり、これは多項式時間アルゴリズムの場合である。
一般に、入力の数値は入力長で指数関数であるため、擬似多項式時間アルゴリズムは必ずしも入力長に対して多項式時間で実行されるわけではありません。
既知の擬似多項式時間アルゴリズムのNP完全問題は、弱NP完全と呼ばれます。 NP完全問題は、P = NPでない限り、擬似多項式時間アルゴリズムによって解くことができないことが証明されれば、強くNP完全と呼ばれる。強い/弱い種類のNP硬度も同様に定義される。

Dovetailing (computer science) とは

Dovetailingは、アルゴリズム設計において、異なる計算を相互に織り交ぜ、本質的に同時に実行する技法です。ダブテールを使用するアルゴリズムは、ダブテイラーと呼ばれることもあります。
無限の長さのパスが潜在的に含まれるツリーを考えてみましょう。この環境で深さ優先検索を実行すると、無限パスを移動して戻ってこない可能性があります。しかし、幅優先探索が使用されている場合、無限パスの存在はもはや問題にはなりません。各ノードは、ルートからの距離に応じて分岐的に訪問されるため、無限のパスは、その経路を探索する
このツリーは、一連のプログラムに類似していると見なすことができます。この場合、深さ優先アプローチは、一度に1つのプログラムを実行することに対応し、現在のプログラムが実行を終了したときにのみ次のプログラムに移動する。プログラムの1つが無限の時間実行される場合、この遷移は決して起こりません。ツリーの同じレベルで各子供を訪問する幅優先のアプローチは、ダブテールに対応しています。ここでは、次のステップに移動する前にすべてのプログラムに対して1つのステップが実行されます。従って、無限ランタイムのプログラムの潜在的な存在にかかわらず、各プログラムにおいて進歩がなされる。
無限の数のプログラムの場合、潜在的に無限に長く、幅優先も深さ先も、すべてのプログラムの進歩を確実にするのに十分ではありません。代わりに、次の手法を使用することができます。最初のプログラムの最初のステップを実行します。次に、第2のプログラムの第1のステップおよび第1のプログラムの第2のステップを実行する。次に、第3のプログラムの第1のステップ、第2のプログラムの第2のステップ、および第1のプログラムの第3のステップを実行する。等々。
注意:アルゴリズムを組み合わせる深さ優先(dovetailingなし)と幅優先(dovetailing)の仕組みに慣れることができます。このダブテールアルゴリズムの再帰的な適用は、無限の数の新しいアルゴリズムにつながり、それぞれのアルゴリズムのダブテール化はわずかに少なくなる。