Loading article…
アルゴリズムは基本的に、特定の問題または広範な一連の問題を解決するために設計され使用される一連のルールまたは定義された手順です。
一般的に、アルゴリズムは、計算、データ処理、データマイニング、パターン認識、自動推論、またはその他の問題解決操作で従うべきプロセス、ルールセット、または方法論を定義します。サービスの自動化が進むにつれて、アルゴリズムによって決定される決定が増えています。一般的な例としては、リスク評価、予測的警察活動、パターン認識技術などがあります。[1]
以下は、よく知られているアルゴリズムのリストと、それぞれの 1 行の説明です。
自動計画
組み合わせアルゴリズム
一般的な組み合わせアルゴリズム
- ブレントアルゴリズム:2つの反復子のみを使用して関数値の反復におけるサイクルを見つける[2]
- フロイドのサイクル検出アルゴリズム:関数値の反復におけるサイクルを検出する[3]
- ゲール・シャプレー法: 安定結婚問題を解決する[要出典]
- 擬似乱数生成器(一様分布 -収束度や統計品質が異なる他のPRNGの擬似乱数生成器の一覧も参照): [要出典]
グラフアルゴリズム
- 色付けアルゴリズム: グラフの色付けアルゴリズム。
- ホップクロフト・カープアルゴリズム:二部グラフを最大濃度マッチングに変換する
- ハンガリーアルゴリズム:完全一致を見つけるアルゴリズム
- Prüferコーディング:ラベル付きツリーとそのPrüferシーケンス間の変換
- Tarjan のオフライン最小共通祖先アルゴリズム:ツリー内のノードのペアの最小共通祖先を計算します。
- トポロジカルソート: 依存関係に基づいてノード (ジョブなど) の線形順序を見つけます。
グラフ描画
- 力ベースのアルゴリズム(力指向アルゴリズムまたはスプリングベースのアルゴリズムとも呼ばれる)
- スペクトルレイアウト
ネットワーク理論
- ネットワーク分析
- リンク分析
- ガーバン・ニューマンアルゴリズム:複雑なシステムにおけるコミュニティの検出
- ウェブリンク分析
- ハイパーリンク誘導トピック検索(HITS) (ハブおよびオーソリティとも呼ばれる)
- ページランク
- トラストランク
- リンク分析
- フローネットワーク
- Dinic のアルゴリズム:フロー ネットワーク内の最大フローを計算するための強力な多項式アルゴリズムです。
- エドモンズ・カープアルゴリズム:フォード・フルカーソンの実装
- フォード・フルカーソンアルゴリズム:グラフ内の最大フローを計算する
- カーガーのアルゴリズム:連結グラフの最小カットを計算するモンテカルロ法
- プッシュ・リラベルアルゴリズム:グラフ内の最大フローを計算する
グラフのルーティング
- エドモンズのアルゴリズム(Chu–Liu/エドモンズのアルゴリズムとも呼ばれる):最大または最小の分岐を見つける
- ユークリッド最小全域木:平面上の点の集合の最小全域木を計算するアルゴリズム
- 最長経路問題: 与えられたグラフ内で最大長の単純な経路を見つける
- 最小全域木
- 電話交換機用の非ブロッキング最小スパニングスイッチ
- 最短経路問題
- ベルマン・フォードアルゴリズム:重み付きグラフ内の最短経路を計算します(一部のエッジの重みは負になる場合があります)
- ダイクストラのアルゴリズム:非負のエッジ重みを持つグラフ内の最短経路を計算する
- フロイド・ワーシャルアルゴリズム:重み付き有向グラフにおける全ペア最短経路問題を解く
- ジョンソンのアルゴリズム: 疎な重み付き有向グラフにおける全ペア最短経路アルゴリズム
- 推移閉包問題:与えられた二項関係の推移閉包を見つける
- 巡回セールスマン問題
- ワーンスドルフの法則:ナイトツアー問題を解くための発見的方法
グラフ検索
- A* : ヒューリスティックを使用して速度を向上させる最良優先探索の特殊なケース
- B* : 与えられた初期ノードから任意の目標ノード(1つ以上の可能な目標のうち)までの最小コストのパスを見つける最良優先グラフ検索アルゴリズム
- バックトラッキング: 部分的な解決策が完全な解決策を満たさないことが判明した場合、その解決策を放棄する
- ビームサーチ:メモリ要件を削減するベストファーストサーチの最適化であるヒューリスティックサーチアルゴリズムです。
- ビームスタック検索:ビーム検索とバックトラッキングを統合
- 最良優先探索:優先度キューを使用して、重要度の高い順にグラフを走査します。
- 双方向探索:有向グラフ内の開始頂点から目標頂点までの最短経路を見つける
- 幅優先探索: グラフをレベルごとに走査する
- ブルートフォース検索: 徹底的かつ信頼性の高い検索方法ですが、多くのアプリケーションでは計算効率が悪いです。
- D* :増分ヒューリスティック探索アルゴリズム
- 深さ優先探索: グラフを枝ごとに走査する
- ダイクストラのアルゴリズム: ヒューリスティック関数を使用しない A* の特殊なケース
- 汎用問題解決機: 汎用的な問題解決マシンとして機能することを目的とした独創的な定理証明アルゴリズム。
- 反復深化深さ優先探索(IDDFS):状態空間探索戦略
- ジャンプポイント検索: A*の最適化。さらなるヒューリスティックスを使用して計算時間を1桁短縮できる可能性がある。
- 辞書式幅優先探索(Lex-BFSとも呼ばれる):グラフの頂点を順序付ける線形時間アルゴリズム
- 均一コスト探索:コストが変化する場合に最も低コストのルートを見つけるツリー探索
- SSS* : A*検索アルゴリズムに似たベストファースト方式でゲームツリーを横断する状態空間検索
サブグラフ
- 派閥
- ブロン・ケルボッシュアルゴリズム:無向グラフの最大クリークを見つける手法
- MaxCliqueDyn 最大クリークアルゴリズム:無向グラフの最大クリークを見つける
- 強く連結されたコンポーネント
- 部分グラフ同型性問題
シーケンスアルゴリズム
近似シーケンスマッチング
- Bitap アルゴリズム: 文字列がほぼ等しいかどうかを判断するファジー アルゴリズム。
- 音声アルゴリズム
- Daitch–Mokotoff Soundex :スラブ語とゲルマン語の姓の一致を可能にするSoundex の改良
- Double Metaphone : Metaphone の改良版
- マッチ評価アプローチ:ウエスタン航空が開発した音声アルゴリズム
- Metaphone : 英語で発音されたときの音で単語を索引付けするアルゴリズム
- NYSIIS :音声アルゴリズム、 Soundexを改良
- Soundex : 英語の発音に従って名前を音でインデックスする音声アルゴリズム
- 文字列メトリクス: 2組のテキスト文字列間の類似度または非類似度(距離)スコアを計算します。
- Damerau–Levenshtein距離: 2つの文字列間の距離を計算し、Levenshtein距離を改良します。
- ダイス係数(ダイス係数とも呼ばれる):ジャカード指数に関連する類似度指標
- ハミング距離: 異なる位置の数の合計
- ヤロ・ウィンクラー距離:2つの文字列間の類似性の尺度である
- レーベンシュタイン編集距離: 2つのシーケンス間の差異の量を計算する
- トリグラム検索: 対象オブジェクトの正確な構文やスペルが正確に分からない場合にテキストを検索します。
選択アルゴリズム
配列検索
- 線形探索: ソートされていないシーケンス内の項目を検索します
- 選択アルゴリズム:シーケンス内のk番目に大きい項目を見つける
- 三項探索: 厳密に増加してから厳密に減少する関数、またはその逆の関数の最小値または最大値を見つける手法。
- 並べ替えられたリスト
- 二分探索アルゴリズム: ソートされた順序で項目を見つける
- フィボナッチ検索技術:フィボナッチ数列を利用して可能性のある場所を絞り込む分割統治アルゴリズムを使用してソートされたシーケンスを検索します。
- ジャンプ検索(またはブロック検索):シーケンスのより小さなサブセットに対する線形検索
- 予測検索: 検索用語の大きさと検索の高値および低値を考慮するバイナリのような検索。辞書検索または補間検索と呼ばれることもあります。
- 均一二分探索:古典的な二分探索アルゴリズムの最適化
- アイツィンガー二分探索:キャッシュフレンドリー二分探索アルゴリズム[4]
シーケンスのマージ
- シンプルなマージアルゴリズム
- k-wayマージアルゴリズム
- 結合(出力の要素が重複しない状態で結合)
シーケンス順列
- フィッシャー・イェーツ・シャッフル(クヌース・シャッフルとも呼ばれる):有限集合をランダムにシャッフルする
- シェンステッドアルゴリズム:順列からヤングの表のペアを構築する
- シュタインハウス・ジョンソン・トロッターアルゴリズム(ジョンソン・トロッターアルゴリズムとも呼ばれる):要素を転置して順列を生成する
- ヒープ順列生成アルゴリズム: 要素を交換して次の順列を生成する
シーケンスの組み合わせ
配列アライメント
- 動的タイムワーピング: 時間や速度が変化する可能性のある2つのシーケンス間の類似性を測定します。
- ヒルシュバーグのアルゴリズム: 2つの配列間の最小コストの配列アラインメントを、レーベンシュタイン距離で測定して見つけます。
- Needleman-Wunsch アルゴリズム: 2 つの配列間のグローバル アラインメントを見つける
- スミス・ウォーターマンアルゴリズム:局所的な配列アライメントを見つける
シーケンスソート
- 交換ソート
- 面白いか、効果がない
- ハイブリッド
- 挿入ソート
- マージソート
- 非比較ソート
- 選択ソート
- 他の
- 不明なクラス
サブシーケンス
- 最長共通部分列問題: 一連のシーケンス内のすべてのシーケンスに共通する最長の部分列を見つける
- 最長増加部分列問題: 与えられたシーケンスの最長増加部分列を見つける
- Ruzzo-Tompa アルゴリズム: 実数列内の重複しない連続した最大スコアの部分列をすべて見つける
- 最短共通スーパーシーケンス問題: 2 つ以上のシーケンスをサブシーケンスとして含む最短スーパーシーケンスを見つける
部分文字列
- Kadane のアルゴリズム: 数値の配列内で合計が最大となる連続する部分配列を見つけます。
- 最長共通部分文字列問題: 2 つ以上の文字列の部分文字列 (または部分文字列) である最長の文字列 (または文字列群) を見つける
- 部分文字列検索
- Aho–Corasick 文字列マッチングアルゴリズム:有限の文字列セットのいずれかに一致するすべての部分文字列を見つけるトライベースのアルゴリズム
- ボイヤー・ムーア文字列検索アルゴリズム:部分文字列検索のための償却線形(ほとんどの場合、線形以下)アルゴリズム
- ボイヤー・ムーア・ホースプールアルゴリズム:ボイヤー・ムーアの簡略化
- Knuth-Morris-Pratt アルゴリズム: 一致した文字の再検査を回避した部分文字列検索
- ラビン・カープ文字列検索アルゴリズム: 複数のパターンを効率的に検索する
- Zhu-Takaoka 文字列マッチングアルゴリズム: Boyer-Moore の変種
- Ukkonen のアルゴリズム:接尾辞木を構築するための線形時間のオンラインアルゴリズム
- 一致するワイルドカード
- Rich Salzのwildmat : 広く使用されているオープンソースの 再帰アルゴリズム
- Krauss マッチング ワイルドカード アルゴリズム: オープンソースの非再帰アルゴリズム
計算数学
抽象代数
- Chien探索:有限体上で定義された多項式の根を決定するための再帰アルゴリズム
- シュライアー・シムズアルゴリズム:順列群の基底および強い生成集合(BSGS)を計算する
- Todd-Coxeterアルゴリズム:剰余類を生成する手順。
コンピュータ代数
- ブッフバーガーのアルゴリズム:グレブナー基底を求める
- カントール・ザッセンハウスアルゴリズム: 有限体上の因数分解多項式
- Faugère F4 アルゴリズム: グレブナー基底を求める (F5 アルゴリズムについても言及)
- ゴスパーのアルゴリズム: 超幾何項自体が超幾何項である項の和を求める
- クヌース・ベンディックス補完アルゴリズム:書き換えルールシステム用
- 多変量除算アルゴリズム:複数の不定値を持つ多項式の場合
- ポラードのカンガルーアルゴリズム(ポラードのラムダアルゴリズムとも呼ばれる):離散対数問題を解くアルゴリズム
- 多項式長除算:多項式を同じ次数またはより低い次数の別の多項式で割るアルゴリズム
- リッシュアルゴリズム: 不定積分の計算演算(つまり、原始微分を求める)のためのアルゴリズム
幾何学
- 最近接ペア問題: 点の集合から、点間の距離が最小となる点のペアを見つける
- 衝突検出アルゴリズム: 2つの特定の立体の衝突または交差をチェックする
- 円錐アルゴリズム: 表面の点を識別する
- 凸包アルゴリズム:点の
集合の凸包を決定する
- グラハムスキャン
- クイックハル
- ギフトラッピングアルゴリズムまたはジャービスの行進
- チャンのアルゴリズム
- カークパトリック・ザイデルアルゴリズム
- ユークリッド距離変換: グリッド内のすべてのポイントと離散的なポイントの集合間の距離を計算します。
- 幾何学的ハッシュ法:アフィン変換を受けた離散点によって表される2次元オブジェクトを効率的に見つける方法
- Gilbert-Johnson-Keerthi 距離アルゴリズム: 2 つの凸形状間の最小距離を決定します。
- ジャンプアンドウォークアルゴリズム:三角測量における点の位置を決定するアルゴリズム
- ラプラシアンスムージング:ポリゴンメッシュを滑らかにするアルゴリズム
- 線分の交差: 通常はスイープラインアルゴリズムを使用して、線が交差するかどうかを調べます。
- ベントレー・オットマンアルゴリズム
- シャモス・ホーイアルゴリズム
- 最小境界ボックスアルゴリズム:点の集合を囲む有向最小境界ボックスを見つける
- 最近傍検索: クエリポイントに最も近いポイントを検索します
- ネスティングアルゴリズム:材料やスペースを最も効率的に使用する
- 多角形内の点のアルゴリズム: 与えられた点が与えられた多角形内にあるかどうかをテストします。
- ポイント セット登録アルゴリズム: 2 つのポイント セット間の変換を見つけて、それらを最適に位置合わせします。
- 回転キャリパー:凸多角形または凸包上の点と頂点のすべての対蹠ペアを決定します。
- 靴ひもアルゴリズム: 平面上の順序付きペアで頂点が記述される多角形の面積を決定する
- 三角測量
- ドロネー三角測量
- Ruppertのアルゴリズム(Delaunay改良法とも呼ばれる):高品質のDelaunay三角形分割を作成する
- Chew の 2 番目のアルゴリズム: 品質に制約のある Delaunay 三角形分割を作成する
- マーチングトライアングル:非構造化ポイントクラウドから2次元表面形状を再構築する
- 多角形三角測量アルゴリズム: 多角形を三角形の集合に分解する
- ボロノイ図、ドロネー三角形分割の幾何学的双対
- Bowyer–Watson アルゴリズム: 任意の次元数のボロノイ図を作成する
- フォーチュンのアルゴリズム: ボロノイ図を作成する
- 準三角測量
- ドロネー三角測量
数論アルゴリズム
- バイナリ GCD アルゴリズム: GCD を計算する効率的な方法。
- ブースの乗算アルゴリズム
- チャクラヴァラ法:ペル方程式を含む不定二次方程式を解く巡回アルゴリズム
- 離散対数:
- ユークリッドの互除法:最大公約数を計算する
- 拡張ユークリッド互除法:方程式ax + by = cも解きます
- 整数因数分解:整数を素因数 に分解する
- 乗算アルゴリズム: 2つの数値の高速乗算
- モジュラー平方根: 素数を法とする平方根を計算する
- オドリツコ・シェーンハーゲアルゴリズム:リーマンゼータ関数の非自明な零点を計算する
- レンストラ・レンストラ・ロヴァースアルゴリズム(LLLアルゴリズムとも呼ばれる):多項式時間で短くほぼ直交する格子 基底を求める
- 素数判定:与えられた数が素数であるかどうかを判定する
数値アルゴリズム
微分方程式の解法
- オイラー法
- 後退オイラー法
- 台形則(微分方程式)
- 線形多段階法
- ルンゲ・クッタ法
- マルチグリッド法(MG法)は、離散化の階層を使用して微分方程式を解くアルゴリズムのグループです。
- 偏微分方程式:
- 差分法
- 拡散方程式に対するクランク・ニコルソン法
- 波動方程式のラックス・ウェンドロフ
- ヴェルレ積分(フランス語発音: [vɛʁˈlɛ]):ニュートンの運動方程式を積分する
基本関数と特殊関数
- πの計算:
- ボルウェインのアルゴリズム: 1/π の値を計算するアルゴリズム
- ガウス・ルジャンドルのアルゴリズム:円周率の桁を計算する
- チュドノフスキーアルゴリズム:πの桁を高速に計算する方法
- ベイリー・ボーウェイン・プルーフ公式: (BBP公式) πのn番目の2進数を計算するためのスピゴットアルゴリズム
- 除算アルゴリズム: 2つの数値の商と余りを計算する
- 長除算
- 分割の復元
- 非復元部門
- SRT部門
- ニュートン・ラプソン除算:ニュートン法を使用して D の逆数を求め、その逆数に N を掛けて最終的な商 Q を求めます。
- ゴールドシュミット部門
- 双曲線関数と三角関数:
- BKMアルゴリズム:対数表を使用して基本関数を計算します
- CORDIC : 逆正接表を使用して双曲線関数と三角関数を計算します
- 累乗:
- モンゴメリ減算:モジュラスが大きい場合にモジュラー演算を効率的に実行できるアルゴリズム
- 乗算アルゴリズム: 2つの数値の高速乗算
- ブースの乗算アルゴリズム: 2の補数表記で2つの符号付き2進数を乗算する乗算アルゴリズム
- フューラーのアルゴリズム: 非常に低い漸近的複雑さを持つ非常に大きな数の整数乗算アルゴリズム
- カラツバアルゴリズム:大きな数を掛け合わせるための効率的な手順
- シェーンハーゲ・シュトラッセンアルゴリズム: 大きな整数に対する漸近的に高速な乗算アルゴリズム
- トゥーム・クック乗算: (トゥーム3) 大きな整数の乗算アルゴリズム
- 逆乗アルゴリズム: 数値の逆乗 (逆数) を計算します。
- 丸め関数: 数値を丸める古典的な方法
- スピゴットアルゴリズム:前の数字を知らなくても数学定数の値を計算する方法
- 数値の平方と N 乗根:
- アルファマックスプラスベータミニアルゴリズム:2つの平方の合計の平方根の近似値
- 平方根を計算する方法
- n乗根アルゴリズム
- 要約:
- 二分法:有理項を持つ多くの種類の級数の数値評価を高速化する分割統治法
- カハン加算アルゴリズム:浮動小数点数を加算するより正確な方法
- 制限のないアルゴリズム
幾何学的
- フィルタバックプロジェクション: 逆 2 次元ラドン変換を効率的に計算します。
- レベルセット法(LSM):インターフェースと形状を追跡するための数値手法
内挿と外挿
- バーコフ補間:多項式補間の拡張
- 3次補間
- エルミート補間
- ラグランジュ補間:ラグランジュ多項式を使用した補間
- 線形補間:線形多項式を使用した曲線フィッティングの方法
- 単調 3 次補間: 補間されるデータ セットの単調性を維持する 3 次補間の変形。
- 多変量補間
- パレート補間:パレート分布に従う母集団の中央値やその他の特性を推定する方法。
- 多項式補間
- スプライン補間:ルンゲ現象による誤差を低減します。
- 三角補間
線形代数
- クリロフ法(大規模な疎行列問題向け。SISC によるランキングでは 20 世紀で 3 番目に重要な数値法クラス。高速フーリエ法と高速多重極法に次ぐ)
- 固有値アルゴリズム
- グラム・シュミット過程:ベクトルの集合を直交化する
- 行列乗算アルゴリズム
- キャノンのアルゴリズム: N × N メッシュに配置されたコンピュータに特に適した行列乗算の分散アルゴリズム
- コッパースミス・ウィノグラードアルゴリズム:正方行列の乗算
- フライヴァルドのアルゴリズム: 行列乗算を検証するために使用されるランダム化アルゴリズム
- シュトラッセンアルゴリズム: より高速な行列乗算
- 線形方程式の解法
- 共役勾配法:線形方程式系を解く
- 共役勾配法:特定の線形方程式系の数値解を求めるアルゴリズム
- ガウス消去法
- ガウス・ジョルダン消去法:線形方程式系を解く
- ガウス・ザイデル法:線形方程式を反復的に解く
- レビンソン再帰:テプリッツ行列を含む方程式を解く
- ストーン法:強暗黙法またはSIPとも呼ばれ、疎な線形方程式系を解くアルゴリズムである。
- 逐次過剰緩和法(SOR):ガウス・ザイデル法の収束を早めるために使用される方法
- 三角行列アルゴリズム(トーマスアルゴリズム):三角方程式の連立を解く
- スパース行列アルゴリズム
- Cuthill-McKeeアルゴリズム:対称スパース行列の帯域幅を削減する
- 最小次数アルゴリズム:コレスキー分解を適用する前に対称疎行列の行と列を並べ替える
- シンボリックコレスキー分解:疎行列を効率的に保存する方法
モンテカルロ
- ギブスサンプリング:2つ以上のランダム変数の結合確率分布からサンプルのシーケンスを生成します。
- ハイブリッド モンテ カルロ:直接サンプリングすることが難しい確率分布から、ハミルトン重み付けマルコフ連鎖モンテ カルロを使用してサンプルのシーケンスを生成します。
- メトロポリス・ヘイスティングスアルゴリズム: 1つ以上の変数の確率分布からサンプルのシーケンスを生成するために使用される
- ワングとランダウのアルゴリズム:メトロポリス-ヘイスティングスアルゴリズムのサンプリングの拡張
数値積分
- MISERアルゴリズム: モンテカルロシミュレーション、数値積分
ルートの発見
- 二分法
- 偽位置法:イリノイ法:2点、ブラケット法
- ハレー法:1次導関数と2次導関数を使用する
- ITP法: 最小最大最適と超線形収束を同時に実現
- ミュラー法:3点2次補間
- ニュートン法:微積分を使って関数の零点を求める
- リダー法:3点指数スケーリング
- 割線法:2点、1辺
最適化アルゴリズム
ハイブリッドアルゴリズム
- アルファベータプルーニング: ミニマックスアルゴリズムにおけるノード数を減らすための探索
- 分岐限定法
- Bruss アルゴリズム:オッズ アルゴリズムを参照
- 連鎖行列乗算
- 組み合わせ最適化: 実行可能な解の集合が離散的である最適化問題
- 貪欲ランダム化適応探索手順(GRASP):貪欲ランダム化ソリューションの連続構築と、その後の局所探索による反復的な改善
- ハンガリー法:割り当て問題を多項式時間で解く組み合わせ最適化アルゴリズム
- 制約の充足
- 制約充足のための一般的なアルゴリズム
- チャフアルゴリズム:ブール充足可能性問題のインスタンスを解くアルゴリズム
- デイビス・パトナムアルゴリズム:一階論理式の妥当性をチェックする
- デイビス・パトナム・ローゲマン・ラブランドアルゴリズム(DPLL):連言標準形の命題論理式の充足可能性を決定するアルゴリズム、すなわちCNF-SAT問題を解くためのアルゴリズム
- 正確なカバーの問題
- アルゴリズムX :非決定性アルゴリズム
- ダンシングリンク:アルゴリズムXの効率的な実装
- クロスエントロピー法:組み合わせおよび連続多重極値最適化と重要度サンプリングへの一般的なモンテカルロアプローチ
- 差異的進化
- 動的計画法:重複する部分問題と最適な部分構造の特性を示す問題
- 楕円体法:凸最適化問題を解くアルゴリズムである。
- 進化的計算:生物学的進化メカニズムにヒントを得た最適化
- 進化戦略
- 遺伝子発現プログラミング
- 遺伝的アルゴリズム
- 適応度比例選択– ルーレットホイール選択とも呼ばれる
- 確率的普遍サンプリング
- 切り捨て選択
- トーナメントの選択
- ミームアルゴリズム
- 群知能
- 蟻コロニー最適化
- ミツバチアルゴリズム:ミツバチの群れの餌探し行動を模倣した探索アルゴリズム
- 粒子群
- フランク・ウルフアルゴリズム: 制約付き凸最適化のための反復一次最適化アルゴリズム
- 黄金分割探索:実関数の最大値を見つけるアルゴリズム
- 勾配降下法
- グリッド検索
- ハーモニーサーチ(HS):ミュージシャンの即興演奏プロセスを模倣したメタヒューリスティックアルゴリズム
- 内点法
- 線形計画法
- ベンソンのアルゴリズム: 線形ベクトル最適化問題を解くアルゴリズム
- ダンツィヒ・ウルフ分解:特殊な構造を持つ線形計画問題を解くアルゴリズム
- 遅延列生成
- 整数線形計画法: 未知数の一部またはすべてが整数値に制限されている線形計画問題を解きます。
- Karmarkar のアルゴリズム:線形計画問題を多項式時間で解く最初の合理的に効率的なアルゴリズム。
- シンプレックスアルゴリズム:線形計画問題を解くアルゴリズム
- ライン検索
- 局所探索:計算困難な最適化問題を解決するためのメタヒューリスティック
- ゲームプログラミングで使用されるミニマックス
- 最近傍探索(NNS):距離空間内で最も近い点を見つける
- ベストビンファースト:超高次元空間における最近傍探索問題の近似解を見つける
- 最適化におけるニュートン法
- 非線形最適化
- BFGS法:非線形最適化アルゴリズム
- ガウス・ニュートン法:非線形最小二乗問題を解くアルゴリズム
- レーベンバーグ・マルカート法: 非線形最小二乗問題を解くアルゴリズム
- ネルダー・ミード法(ダウンヒルシンプレックス法):非線形最適化アルゴリズム
- オッズアルゴリズム(Brussアルゴリズム):ランダムシーケンスイベントの最後の特定のイベントを予測するための最適な戦略を見つける
- ランダム検索
- シミュレーテッドアニーリング
- 確率的トンネル
- 部分集合和アルゴリズム
- ハイブリッド HS-LS 共役勾配アルゴリズム (https://doi.org/10.1016/j.cam.2023.115304 を参照)
- ハイブリッド BFGS のような方法 (詳細については https://doi.org/10.1016/j.cam.2024.115857 を参照してください)
- 共役勾配法(詳細は https://doi.org/10.1016/j.jksus.2022.101923 を参照)
計算科学
天文学
- 終末アルゴリズム:曜日
- ツェラーの合同は、ユリウス暦またはグレゴリオ暦の任意の日付の曜日を計算するアルゴリズムです。
- イースターの日を計算するためにさまざまなイースターアルゴリズムが使用される
バイオインフォマティクス
- 基本的なローカルアライメント検索ツール(BLASTとも呼ばれる):一次生物学的配列情報を比較するためのアルゴリズム
- Kabsch アルゴリズム: 2 つのタンパク質構造間の二乗平均平方根偏差を計算するために、2 つの点セットの最適な配置を計算します。
- Velvet :ゲノム配列アセンブリのためのde Bruijn グラフを操作するアルゴリズムのセット
- 符号付き反転によるソート: ゲノム進化を理解するためのアルゴリズム。
- 最大節約法(系統発生学) : 与えられた文字マトリックスを説明する最も単純な系統樹を見つけるアルゴリズム。
- UPGMA : 距離ベースの系統樹構築アルゴリズム。
- ブルーム フィルター: セット内の要素の存在をテストするために使用される確率的データ構造。主にバイオインフォマティクスで、シーケンス内のk-merの存在をテストするために使用されます。
地球科学
- ヴィンセンティの公式: 楕円体上の2つの緯度/経度点間の距離を計算する高速アルゴリズム
- Geohash : 十進数の緯度/経度のペアをハッシュ文字列としてエンコードするパブリックドメインアルゴリズム
言語学
- Lesk アルゴリズム: 語義の曖昧さ解消
- 語幹アルゴリズム: 単語を語幹、基底、または語根の形に短縮する方法
- スホーチンのアルゴリズム: テキスト内の文字を母音または子音として分類するための統計的分類アルゴリズム
薬
- 心不全の診断のためのESCアルゴリズム
- 過敏性腸症候群のマニング基準
- 肺塞栓症の診断アルゴリズム
- テキサス投薬アルゴリズムプロジェクト
物理
- 制約アルゴリズム: ニュートンの運動方程式に従う物体の制約を満たすためのアルゴリズムのクラス
- デーモンアルゴリズム:与えられたエネルギーでミクロカノニカル集団のメンバーを効率的にサンプリングするモンテカルロ法
- フェザーストーンのアルゴリズム:ジョイントとリンクの構造に適用される力の影響を計算します
- 基底状態近似
- n体問題
- Barnes-Hutシミュレーション:直和シミュレーションの場合のO( n2 )ではなく、O ( nlogn )の順序を持つ近似的な方法でn体問題を解きます。
- 高速多重極法(FMM):長距離力の計算を高速化します
- レインフローカウントアルゴリズム:複雑な応力履歴を、疲労解析に使用するための基本的な応力反転の数に減らします。
- スイープとプルーン:衝突検出中に使用される、衝突をチェックする必要があるソリッドのペアの数を制限するための広範なフェーズアルゴリズム
- VEGAS アルゴリズム:モンテカルロシミュレーションにおける誤差を減らす方法
- グラウバー動力学:コンピュータ上でイジングモデルをシミュレートする方法
統計
- 分散を計算するアルゴリズム:不安定性と数値オーバーフローを回避する
- 近似カウントアルゴリズム:小さなレジスタで多数のイベントをカウントできます
- ベイズ統計
- ネストサンプリングアルゴリズム:ベイズ統計におけるモデル比較問題への計算的アプローチ
- クラスタリングアルゴリズム
- 平均リンククラスタリング:単純な凝集型クラスタリングアルゴリズム
- キャノピークラスタリングアルゴリズム: K平均法アルゴリズムに関連する教師なし事前クラスタリングアルゴリズム
- 完全リンククラスタリング:単純な凝集型クラスタリングアルゴリズム
- DBSCAN : 密度ベースのクラスタリングアルゴリズム
- 期待最大化アルゴリズム
- ファジークラスタリング: 各ポイントがクラスタに属する度合いを持つクラスタリングアルゴリズムのクラス
- ファジーC平均法
- FLAMEクラスタリング(メンバーシップの局所近似によるファジークラスタリング):データセットの密な部分にクラスタを定義し、オブジェクト間の近隣関係のみに基づいてクラスタ割り当てを実行します。
- KHOPCA クラスタリング アルゴリズム: 静的およびモバイル環境で階層型マルチホップ クラスターを生成するローカル クラスタリング アルゴリズム。
- k-meansクラスタリング: 属性に基づいてオブジェクトをパーティションにクラスタリングする
- k-means++ : 修正されたランダムシードを使用するこのバリエーション
- k-medoids : k-means に似ていますが、データポイントまたはmedoidsを中心として選択します。
- Linde–Buzo–Grayアルゴリズム: 優れたコードブックを導出するためのベクトル量子化アルゴリズム
- ロイドのアルゴリズム(ボロノイ反復法または緩和法):データポイントを指定された数のカテゴリにグループ化する、 k平均法クラスタリングの一般的なアルゴリズム
- OPTICS : 視覚評価法を用いた密度ベースのクラスタリングアルゴリズム
- シングルリンククラスタリング:単純な凝集型クラスタリングアルゴリズム
- SUBCLU : サブスペースクラスタリングアルゴリズム
- ウォード法: より一般的なランス・ウィリアムズアルゴリズムに拡張された凝集型クラスタリングアルゴリズム
- WACA クラスタリング アルゴリズム: 潜在的にマルチホップ構造を持つローカル クラスタリング アルゴリズム。動的ネットワーク用
- 推定理論
- 期待最大化アルゴリズム確率モデルにおけるパラメータの最大尤度推定値を求めるための関連アルゴリズムのクラス
- 順序付きサブセット期待値最大化(OSEM):陽電子放出断層撮影、単一光子放出コンピュータ断層撮影、X 線コンピュータ断層撮影の医療画像処理に使用されます。
- オッズアルゴリズム(Brussアルゴリズム)連続ランダム入力における識別値の最適オンライン検索
- カルマンフィルタ:一連のノイズの多い測定から線形動的システムの状態を推定する
- 期待最大化アルゴリズム確率モデルにおけるパラメータの最大尤度推定値を求めるための関連アルゴリズムのクラス
- 偽近傍アルゴリズム(FNN)はフラクタル次元を推定する
- 隠れマルコフモデル
- Baum-Welchアルゴリズム:隠れマルコフモデルのパラメータの最大尤度推定値と事後モード推定値を計算する
- フォワードバックワードアルゴリズム:特定の観測シーケンスの確率を計算するための動的プログラミングアルゴリズム
- ビタビアルゴリズム: 隠れマルコフモデルにおける隠れ状態の最も可能性の高いシーケンスを見つける
- 部分最小二乗回帰:いくつかの予測変数を他の観測可能な変数に関して記述する線形モデルを見つける
- 待ち行列理論
- Buzenのアルゴリズム: Gordon-Newellの定理における正規化定数G(K)を計算するアルゴリズム
- RANSAC (「RANdom SAmple Consensus」の略称): 外れ値を含む観測データのセットから数学モデルのパラメータを推定する反復法
- スコアリングアルゴリズム:最大尤度方程式を数値的に解くために使用されるニュートン法の一種である。
- ヤマティーノ法:入力データを1回通過して風向θの標準偏差σθの近似値を計算する。
- ジッグラトアルゴリズム: 非一様分布から乱数を生成する
コンピュータサイエンス
コンピュータアーキテクチャ
- Tomasulo アルゴリズム: 通常は特定の依存関係により停止する順次命令を非順次的に実行できるようにします。
コンピュータグラフィックス
- クリッピング
- 等高線と等値面
- マーチングキューブ: 3次元スカラー場(ボクセルと呼ばれることもある)から等値面のポリゴンメッシュを抽出します。
- マーチングスクエア:2次元スカラー場の等高線を生成する
- マーチング テトラヘドロン:マーチング キューブの代替
- 離散グリーン定理: 一般化された長方形領域上の二重積分を定数時間で計算するアルゴリズムです。これは、合計面積表アルゴリズムの自然な拡張です。
- 塗りつぶし: 多次元配列の連結領域を指定されたシンボルで塗りつぶします
- グローバル イルミネーションアルゴリズム: 直接照明と他のオブジェクトからの反射を考慮します。
- 隠面除去または視覚的表面判定
- ニューウェルのアルゴリズム: 隠面除去に必要な深度ソートにおけるポリゴンサイクルを排除する
- 画家のアルゴリズム: 3次元風景の目に見える部分を検出する
- スキャンラインレンダリング:画像上に仮想線を移動させて画像を構築します。
- ウォーノックアルゴリズム
- 線描画: 離散グラフィック メディア上の線分を近似するグラフィカル アルゴリズム。
- ブレゼンハムの直線アルゴリズム: 2 次元配列の点をプロットして、指定された 2 つの点の間に直線を形成します (決定変数を使用)
- DDA ライン アルゴリズム: 2 次元配列の点をプロットして、指定された 2 つの点の間に直線を形成します (浮動小数点演算を使用)
- Xiaolin Wu のライン アルゴリズム: ライン アンチエイリアシングのアルゴリズム。
- 中点円アルゴリズム:円を描くために必要な点を決定するために使用されるアルゴリズム
- ラマー・ダグラス・ポイッカーアルゴリズム:線分で構成された「曲線」が与えられ、あまり似ていないが点の数が少ない曲線を見つける
- シェーディング
- グーローシェーディング: 3D コンピュータグラフィックスでオブジェクトの表面全体にわたる光と色の異なる効果をシミュレートするアルゴリズム
- フォンシェーディング: 3D コンピュータグラフィックスにおける表面シェーディングのための表面法線ベクトルを補間するアルゴリズム
- Slerp(球面線形補間):3D回転をアニメーション化するためのクォータニオン補間
- 合計面積表(積分画像とも呼ばれる):グリッドの長方形のサブセット内の値の合計を一定時間で計算するアルゴリズム
- バイナリ空間分割
暗号化
- 非対称(公開鍵)暗号化:
- デジタル署名(非対称認証):
- 暗号ハッシュ関数(メッセージ認証コードのセクションも参照):
- ブレイク
- MD5 – MD5の衝突を生成する方法があることに注意してください
- RIPEMD-160
- SHA-1 – SHA-1の衝突を生成する方法が存在することに注意してください。
- SHA-2 (SHA-224、SHA-256、SHA-384、SHA-512)
- SHA-3 (SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256)
- タイガー(TTH)は、通常タイガーツリーハッシュで使用されます。
- 渦潮
- 暗号的に安全な疑似乱数生成器
- ブルーム・ブルーム・シューブ–因数分解の難しさに基づく
- Fortuna は、 Yarrowアルゴリズムの改良を目的としています。
- 線形フィードバックシフトレジスタ(注意:LFSRベースのアルゴリズムの多くは脆弱であったり、壊れていたりします)
- ヤローアルゴリズム
- 鍵交換
- ディフィー・ヘルマン鍵交換
- 楕円曲線ディフィー・ヘルマン(ECDH)
- キー導出関数。パスワードハッシュやキーストレッチングによく使用されます。
- メッセージ認証コード(キーをパラメータとして受け取る対称認証アルゴリズム):
- 秘密分散、秘密分割、鍵分割、M of N アルゴリズム
- ブレイキーの計画
- シャミールの計画
- 対称(秘密鍵)暗号化:
- 耐量子暗号
- プルーフ・オブ・ワークアルゴリズム
デジタルロジック
- ブール最小化
- クワイン・マクラスキーアルゴリズム:QMアルゴリズムとも呼ばれ、ブール方程式を簡略化するプログラム可能な方法
- ペトリック法: ブール簡略化のための別のアルゴリズム
- エスプレッソヒューリスティックロジック最小化器: ブール関数の最小化のための高速アルゴリズム
機械学習と統計分類
- アルメイダ・ピネダ再帰バックプロパゲーション:シナプス重み行列を調整して、与えられた入力に対して望ましい出力を生成する
- ALOPEX : 相関関係に基づく機械学習アルゴリズム
- 相関ルール学習:データマイニングで使用される変数間の興味深い関係を発見する
- ブースティング(メタアルゴリズム):効果を高めるために多くの弱い学習者を使用する
- AdaBoost : アダプティブブースティング
- BrownBoost : ノイズの多いデータセットに対しても堅牢なブースティングアルゴリズム
- LogitBoost :ロジスティック回帰ブースティング
- LPBoost :線形計画法ブースティング
- ブートストラップ集約(バギング):安定性と分類精度を向上させる手法
- コンピュータビジョン
- 決定木
- C4.5 アルゴリズム: ID3 の拡張
- ID3アルゴリズム(反復二分法3): ヒューリスティックを使用して小さな決定木を生成する
- クラスタリング:入力ベクトルに関連するグループ化とバケット化のための教師なし学習アルゴリズムのクラス
- k近傍法(k-NN):特徴空間内の最も近いトレーニング例に基づいてオブジェクトを分類する非パラメトリックな方法
- Linde-Buzo-Grayアルゴリズム: 優れたコードブックを導出するために使用されるベクトル量子化アルゴリズム
- 局所性敏感ハッシュ(LSH):高次元データの確率的次元削減を実行する方法
- ニューラルネットワーク
- バックプロパゲーション:与えられた入力に対して望ましい出力を知っている、または計算できる教師を必要とする教師あり学習法
- ホップフィールドネット:すべての接続が対称的なリカレントニューラルネットワーク
- パーセプトロン: 最も単純な種類のフィードフォワード ニューラル ネットワーク:線形分類器。
- パルス結合ニューラル ネットワーク(PCNN):猫の視覚皮質をモデル化して提案され、高性能な生体模倣画像処理用に開発されたニューラル モデル。
- ラジアル基底関数ネットワーク: ラジアル基底関数を活性化関数として使用する人工ニューラルネットワーク
- 自己組織化マップ: トレーニングサンプルの入力空間の低次元表現を生成する教師なしネットワーク
- ランダムフォレスト: 多数の決定木を使用して分類する
- 強化学習:
- Q学習: 特定の状態で特定の行動を取り、その後は固定されたポリシーに従うことの期待効用を与える行動価値関数を学習する
- 状態-行動-報酬-状態-行動(SARSA):マルコフ決定プロセスポリシーを学習する
- 時間差学習
- 関連性ベクトルマシン(RVM):SVMに似ていますが、確率的な分類を提供します
- 教師あり学習: 例による学習 (ラベル付きデータセットをトレーニング セットとテスト セットに分割)
- サポートベクターマシン(SVM):2つのセット間のマージンが最大となる分割超平面を見つけることによって多次元データを分割する一連の方法
- 構造化 SVM : 一般的な構造化出力ラベルの分類器のトレーニングを可能にします。
- ウィノウアルゴリズム:パーセプトロンに関連しますが、乗法的な重み更新方式を使用します。
プログラミング言語理論
- C3線形化: オブジェクト指向プログラミングにおける多重継承階層の一貫した線形化を得るために主に使用されるアルゴリズム
- チャイティンのアルゴリズム: コスト/次数をスピルメトリックとして使用するボトムアップのグラフカラーリングレジスタ割り当てアルゴリズム
- Hindley-Milner型推論アルゴリズム
- Reteアルゴリズム:プロダクションルールシステムを実装するための効率的なパターンマッチングアルゴリズム
- セティ・ウルマンアルゴリズム: 算術式に最適なコードを生成する
解析
- CYKアルゴリズム:チョムスキー標準形の文脈自由文法を解析するためのO(n 3 )アルゴリズム
- Earleyパーサ:文脈自由文法を解析するための別のO(n 3 )アルゴリズム
- GLR パーサー:富田勝による文脈自由文法を解析するアルゴリズム。決定論的文法に合わせて調整されており、ほぼ線形時間で実行され、最悪の場合でも O(n 3 ) で実行されます。
- 内側外側アルゴリズム:確率文脈自由文法における生成確率を再推定するO(n 3 )アルゴリズム
- LLパーサ:限られたクラスの文脈自由文法に対する比較的単純な線形時間解析アルゴリズム
- LR パーサー: より大規模な文脈自由文法クラスのための、より複雑な線形時間解析アルゴリズム。バリエーション:
- Packratパーサー:いくつかの文脈自由文法と構文解析式文法をサポートする線形時間構文解析アルゴリズム
- 再帰下降パーサ:LL( k )文法に適したトップダウンパーサ
- 操車場アルゴリズム: 中置記法の数式を後置記法に変換する
- プラットパーサー
- 語彙解析
量子アルゴリズム
- Deutsch–Jozsa アルゴリズム: ブール関数のバランスの基準
- グローバーのアルゴリズム: 多くの探索問題に2次的な高速化をもたらす
- ショアのアルゴリズム:数値の因数分解を(現在知られている非量子アルゴリズムと比較して)指数関数的に高速化します。
- サイモンのアルゴリズム:ブラックボックス問題に対して、(量子以外のアルゴリズムと比較して)指数関数的な高速化が証明されています。
計算理論とオートマトン
- ホップクロフトのアルゴリズム、ムーアのアルゴリズム、およびブロゾフスキーのアルゴリズム:決定論的有限オートマトンの状態数を最小化するアルゴリズム
- べき乗集合の構築: 非決定性オートマトンを決定性オートマトンに変換するアルゴリズム。
- タルスキ・クラトフスキーアルゴリズム:算術階層と解析階層における式の複雑さの上限を提供する非決定性アルゴリズム
情報理論と信号処理
コーディング理論
エラー検出と修正
- BCH コード
- BCJR アルゴリズム: トレリス上で定義された誤り訂正符号 (主に畳み込み符号) の復号化
- 前方誤り訂正
- グレイコード
- ハミング符号
- 冗長性チェック
- アドラー32
- 巡回冗長検査
- ダムアルゴリズム
- フレッチャーのチェックサム
- 縦断的冗長性チェック(LRC)
- ルーンアルゴリズム:識別番号を検証する方法
- Luhn mod N アルゴリズム: Luhn の非数値文字への拡張
- パリティ: シンプルかつ高速なエラー検出技術
- ヴェルホエフアルゴリズム
ロスレス圧縮アルゴリズム
- Burrows–Wheeler変換:ロスレス圧縮の改善に役立つ前処理
- コンテキストツリーの重み付け
- デルタ符号化: 連続データが頻繁に発生するデータの圧縮を支援する
- 動的マルコフ圧縮:予測算術符号化を用いた圧縮
- 辞書コーダー
- バイトペアエンコーディング(BPE)
- 収縮する
- レンペル・ジヴ
- LZ77とLZ78
- レンペル–ジヴ ジェフ・ボンウィック(LZJB)
- レンペル・ジヴ・マルコフ連鎖アルゴリズム(LZMA)
- レンペル・ジヴ・オーバーヒューマー(LZO): スピード重視
- レンペル・ジヴ・スタック(LZS)
- レンペル・ジヴ・ストーレル・シマンスキー(LZSS)
- レンペル・ジヴ・ウェルチ(LZW)
- LZWL : 音節ベースの変種
- 翻訳
- レンペル–ジヴ・ロス・ウィリアムズ(LZRW)
- エントロピー符号化:コードの長さとシンボルの確率が一致するようにシンボルにコードを割り当てる符号化方式
- 算術符号化:高度なエントロピー符号化
- ハフマン符号化: 相対的な文字頻度を利用した単純なロスレス圧縮
- 適応ハフマン符号化:ハフマン符号化に基づく適応符号化技術
- パッケージマージアルゴリズム: コード文字列の長さ制限に従ってハフマン符号化を最適化します。
- シャノン・ファノ符号
- シャノン・ファノ・エリアス符号化:算術符号化の前身[5]
- 既知のエントロピー特性を持つエントロピー符号化
- ゴロム符号化: 幾何分布に従うアルファベットに最適なエントロピー符号化の形式
- ライスコーディング:幾何分布に従うアルファベットに最適なエントロピーコーディングの形式
- 切り捨てられたバイナリエンコード
- 単項コーディング: n 個の 1 の後に 0 が続く数値 n を表すコード
- ユニバーサルコード: 正の整数をバイナリコードワードにエンコードします
- エリアスのデルタ、ガンマ、オメガコーディング
- 指数ゴロム符号化
- フィボナッチコーディング
- レーベンシュタインコーディング
- 高速で効率的かつロスレスな画像圧縮システム(FELICS): ロスレスな画像圧縮アルゴリズム
- インクリメンタルエンコーディング: 文字列のシーケンスに適用されるデルタエンコーディング
- 部分マッチングによる予測(PPM):コンテキストモデリングと予測に基づく適応型統計データ圧縮技術
- ランレングス符号化: 繰り返し文字列を利用したロスレスデータ圧縮
- SEQUITURアルゴリズム: 文字列の増分文法推論によるロスレス圧縮
非可逆圧縮アルゴリズム
- 3Dc :法線マップの非可逆データ圧縮アルゴリズム
- オーディオと音声の圧縮
- A-lawアルゴリズム: 標準圧縮アルゴリズム
- コード励起線形予測(CELP): 低ビットレート音声圧縮
- 線形予測符号化(LPC):音声のデジタル信号のスペクトルエンベロープを圧縮形式で表現する非可逆圧縮
- Mu-law アルゴリズム: 標準的なアナログ信号圧縮または圧伸アルゴリズム
- ワープ線形予測符号化(WLPC)
- 画像圧縮
- ブロック切り捨て符号化(BTC): グレースケール画像用の非可逆画像圧縮技術の一種
- 埋め込みゼロツリーウェーブレット(EZW)
- 高速コサイン変換アルゴリズム(FCTアルゴリズム):離散コサイン変換(DCT)を効率的に計算します。
- フラクタル圧縮: フラクタルを使用して画像を圧縮する方法
- 階層ツリーにおけるセット分割(SPIHT)
- ウェーブレット圧縮:画像圧縮に適したデータ圧縮形式(ビデオ圧縮やオーディオ圧縮にも適している場合がある)
- 変換コーディング: オーディオ信号や写真画像などの「自然な」データに対するデータ圧縮のタイプ
- ビデオ圧縮
- ベクトル量子化: 非可逆データ圧縮でよく使われる手法
デジタル信号処理
- 適応加法アルゴリズム(AAアルゴリズム):観測された波源の空間周波数位相を見つける
- 離散フーリエ変換:信号(のセグメント)に含まれる周波数を決定する
- 高速フォールディングアルゴリズム: 時系列データ内のほぼ周期的なイベントを検出するための効率的なアルゴリズム
- Gerchberg–Saxton アルゴリズム: 光学平面の位相回復アルゴリズム
- Goertzel アルゴリズム:信号内の特定の周波数成分を識別します。DTMF数字のデコードに使用できます。
- Karplus-Strong 弦合成: ハンマーで叩いたり、はじいたりした弦や、ある種の打楽器の音をシミュレートする物理モデリング合成
画像処理
- コントラストの強化
- ヒストグラム均等化: ヒストグラムを使用して画像のコントラストを改善します
- 適応型ヒストグラム均等化:コントラストの局所的な変化に適応するヒストグラム均等化
- 連結成分ラベル付け: 分離領域を見つけてラベル付けする
- ディザリングとハーフトーン
- エルザー差分マップアルゴリズム: 一般的な制約充足問題のための探索アルゴリズム。もともとはX線回折顕微鏡に使用されていました。
- 特徴検出
- Canny エッジ検出器: 画像内の広範囲のエッジを検出します
- 一般化ハフ変換
- ハフ変換
- Marr-Hildreth アルゴリズム: 早期エッジ検出アルゴリズム
- SIFT (スケール不変特徴変換): 画像内の局所的な特徴を検出して記述するアルゴリズムです。
- SURF ( Speeded Up Robust Features )は、2006年にハーバート・ベイらによって初めて発表された堅牢なローカル特徴検出器で、物体認識や3D再構成などのコンピュータビジョンタスクに使用できます。これは、SIFT記述子に部分的に影響を受けています。SURFの標準バージョンはSIFTよりも数倍高速で、その作者はSIFTよりもさまざまな画像変換に対して堅牢であると主張しています。 [6] [7]
- リチャードソン・ルーシー逆畳み込み:画像のぼかし除去アルゴリズム
- ブラインドデコンボリューション:点像分布関数が不明な場合の画像ぼかし除去アルゴリズム。
- 中央値フィルタリング
- シームカービング: コンテンツを考慮した画像サイズ変更アルゴリズム
- セグメンテーション: デジタル画像を2つ以上の領域に分割する
- GrowCutアルゴリズム: インタラクティブなセグメンテーションアルゴリズム
- ランダムウォーカーアルゴリズム
- 地域成長
- 流域変換: 流域の類推に基づくアルゴリズムのクラス
ソフトウェアエンジニアリング
- キャッシュアルゴリズム
- CHS 変換: ディスク アドレス システム間の変換
- Double dabble : 2進数をBCDに変換する
- ハッシュ関数: 大きな、場合によっては可変サイズのデータを小さなデータ、通常は配列のインデックスとして機能する単一の整数に変換します。
- ファウラー・ノル・ヴォハッシュ関数:衝突率が低く高速
- ピアソンハッシュ: 8ビット値のみを計算し、8ビットコンピュータに最適化されています。
- ゾブリストハッシュ法:転置表の実装に使用
- Unicode 照合アルゴリズム
- XORスワップアルゴリズム: バッファを使用せずに2つの変数の値を交換する
データベースアルゴリズム
分散システムアルゴリズム
- クロック同期
- コンセンサス(コンピュータサイエンス):信頼性の低いプロセッサ間で単一の値または履歴に同意すること
- プロセス終了の検出
- ランポート順序付け:以前に起こったことに基づくイベントの部分的な順序付け
- リーダー選出:コーディネータを動的に選択する方法
- 相互排除
- スナップショットアルゴリズム: 非同期システムの一貫したグローバル状態を記録する
- ベクトルクロック:分散システムにおけるイベントの部分的な順序付けを生成し、因果関係違反を検出する
メモリ割り当てと解放アルゴリズム
- バディメモリ割り当て:断片化の少ないメモリ割り当てアルゴリズム
- ゴミ収集業者
- チェイニーのアルゴリズム:半空間コレクターの改良
- 世代別ガベージコレクター: メモリを年齢別に分離する高速ガベージコレクター
- マークコンパクトアルゴリズム:マークスイープアルゴリズムとチェイニーのコピーアルゴリズムの組み合わせ
- マークアンドスイープ
- セミスペースコレクター:初期のコピーコレクター
- 参照カウント
ネットワーキング
- カーンのアルゴリズム: TCPを使用する際にメッセージの往復時間の正確な推定値を取得する問題に対処する
- ルレオアルゴリズム: インターネットルーティングテーブルを効率的に保存および検索する技術
- ネットワークの混雑
- 指数バックオフ
- Nagle アルゴリズム: パケットを結合して TCP/IP ネットワークの効率を向上させる
- 切り捨てバイナリ指数バックオフ
オペレーティングシステムのアルゴリズム
- 銀行家のアルゴリズム: デッドロック回避に使用されるアルゴリズム
- ページ置換アルゴリズム: メモリ不足の状態で犠牲ページを選択する
- 適応型置換キャッシュ: LRUよりも優れたパフォーマンス
- 適応型置換付きクロック(CAR):適応型置換キャッシュに匹敵するパフォーマンスを持つページ置換アルゴリズム
プロセス同期
スケジュール
- 期限が早い順にスケジュール
- 公平なシェアのスケジューリング
- 最小のスラックタイムスケジュール
- リストのスケジュール
- マルチレベルフィードバックキュー
- レートモノトニックスケジューリング
- ラウンドロビンスケジューリング
- 次は最短の仕事
- 残り時間最短
- トップノードアルゴリズム: リソースカレンダー管理
I/Oスケジューリング
ディスクのスケジュール
- エレベーター アルゴリズム: エレベーターのように動作するディスク スケジューリング アルゴリズム。
- 最短シークファースト:シーク時間を短縮するディスク スケジューリング アルゴリズム。
参照
参考文献
- ^ 「アルゴリズム」。LII / 法律情報研究所。 2023年10月26日閲覧。
- ^ Gegenfurtner, Karl R. (1992-12-01). 「PRAXIS: 関数 最小化のためのブレントのアルゴリズム」.行動研究方法、機器、コンピュータ. 24 (4): 560–564. doi : 10.3758/BF03203605. ISSN 1532-5970.
- ^ 「richardshin.com | Floyd's Cycle Detection Algorithm」 2013年9月30日. 2023年10月26日閲覧。
- ^ 「Eytzinger Binary Search - Algorithmica」。2023年4月9日閲覧。
- ^ 「Shannon-Fano-Elias Coding」(PDF) . my.ece.msstate.edu . 2021年2月28日時点のオリジナル(PDF)からアーカイブ。 2023年10月11日閲覧。
- ^ 「アーカイブコピー」(PDF)www.vision.ee.ethz.ch。2007年2月21日時点のオリジナル(PDF)からアーカイブ。 2022年1月13日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ 「アーカイブコピー」(PDF) 。 2013年10月6日時点のオリジナル(PDF)からアーカイブ。 2013年10月5日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link)
