優秀なプログラマーが開発効率を上げるために知っておくべき32のアルゴリズム

優秀なプログラマーが開発効率を上げるために知っておくべき32のアルゴリズム

  1. 検索アルゴリズム - 指定された開始点から指定された終了点までのパスを計算するグラフ検索アルゴリズム。ヒューリスティック推定を使用して、各ノードを通る最適なパスを推定し、それを使用して場所をランク付けします。アルゴリズムは、取得された順序でノードを訪問します。したがって、A* 検索アルゴリズムは最良優先検索の例です。
  2. ビーム検索 (有向検索、ビーム検索とも呼ばれる) - 最良優先検索アルゴリズムの最適化。ヒューリスティック関数を使用して、検査する各ノードの機能を評価します。ただし、ビーム検索では、各深度で最初の m 個の最も適格なノードしか見つけることができません。ここで、m は固定数、つまりビームの幅です。
  3. バイナリ検索 - 各ステップで要件を満たさないデータの半分を削除しながら、線形配列内の特定の値を見つけるアルゴリズム。
  4. 分岐限定法 - さまざまな最適化問題、特に離散最適化と組み合わせ最適化において特定の最適解を見つけるためのアルゴリズム。
  5. ブッフバーガーアルゴリズム - 単一変数の最大公約数を求めるユークリッドの互除法と線形システムのガウス消去法の一般化と考えられる数学アルゴリズム。
  6. データ圧縮 - 特定のコーディング方式を使用して、より少ないバイト数 (またはその他の情報伝達単位) で情報をエンコードするプロセス。ソース エンコードとも呼ばれます。
  7. Diffie-Hellman 鍵交換アルゴリズム - 2 つの当事者が、相手方の事前の知識なしに、安全でない通信チャネルを介して共有秘密鍵を共同で確立できるようにする暗号化プロトコル。このキーは、後で対称暗号と組み合わせて使用​​して、後続の通信を暗号化することができます。
  8. ダイクストラのアルゴリズム - 負の重みエッジのない有向グラフの単一開始の最短アルゴリズム。
  9. 離散微分
  10. 動的プログラミング - 相互にカバーするサブ問題と最適なサブアーキテクチャアルゴリズムのデモンストレーション
  11. ユークリッドの互除法 - 2 つの整数の最大公約数を計算します。最も古いアルゴリズムの 1 つで、紀元前 300 年頃にユークリッドの『原論』に登場しました。
  12. 期待最大化アルゴリズム (EM トレーニングとも呼ばれる) - 統計計算において、期待最大化アルゴリズムは、モデルが未発見の潜在変数に依存する確率モデル内のパラメータの最も可能性の高い推定値を見つけます。 EM は、2 つのステップで交互に計算されます。最初のステップは、隠れ変数の既存の推定値を使用して、それらの最大可能推定値を計算する期待値を計算することです。2 番目のステップは最大化であり、最初のステップで得られた最大可能値を最大化して、パラメーターの値を計算します。
  13. 高速フーリエ変換 (FFT) - 離散フーリエ変換 (DFT) とその逆変換を計算します。このアルゴリズムは、デジタル信号処理から偏微分方程式の解法、大きな整数積の高速計算まで、幅広い用途に使用できます。
  14. 勾配降下法 - 数学的な最適化アルゴリズム。
  15. ハッシュ
  16. ヒープ
  17. カラツバ乗算 - コンピュータ代数システムや大規模ライブラリなど、数千の整数の乗算を実行する必要があるシステムで使用されます。長い乗算を使用すると、速度が遅くなりすぎます。このアルゴリズムは1962年に発見されました。
  18. LLL アルゴリズム (Lenstra-Lenstra-Lovasz 格子縮小) - 格子基底を入力として受け取り、短い直交ベクトル基底を出力します。 LLL アルゴリズムは、ナップザック暗号システム、特別な設定による RSA 暗号化などの公開鍵暗号化方式で広く使用されています。
  19. 最大フロー アルゴリズム - このアルゴリズムは、交通ネットワーク内の最大フローを見つけようとします。その利点は、そのようなフローの値を見つけることと定義されます。最大フロー問題は、より複雑なネットワーク フロー問題の特殊なケースとして考えることができます。最大フローはネットワーク内のインターフェースに関連しており、これは最大フロー最小カット定理です。 Ford-Fulkerson は、フロー ネットワーク内の最大フローを見つけることができます。
  20. マージソート
  21. ニュートン法 - 非線形方程式(グループ)のゼロ点を見つけるための重要な反復法。
  22. Q 学習アルゴリズム - これは、特定の状態で特定のアクションを実行し、期待される効用値を計算し、固定ポリシーに従うアクション値関数を学習することによって実行される強化学習アルゴリズムです。 Q 学習の利点は、環境のモデルを必要とせずに、可能なアクションの期待効用を比較できることです。
  23. 二次ふるい - 最新の整数因数分解アルゴリズムであり、実際には数体ふるいに次いで 2 番目に高速な既知のアルゴリズムです。これは 10 桁から 110 桁までの整数に対しては依然として最も高速であり、一般に数体ふるいよりも簡単であると考えられています。
  24. RANSAC——「RANdom SAmple Consensus」の略称です。このアルゴリズムは、外れ値を含む観測データのセットに基づいて数学モデルのパラメータ値を推定します。基本的な前提は、データには非疎外値、つまり特定のモデル パラメータによって説明できる値が含まれており、疎外値はモデルに準拠しないデータ ポイントであるということです。
  25. RSA——公開鍵暗号化アルゴリズム。暗号化として署名するのに適した最初のアルゴリズム。 RSA は電子商取引業界で今でも広く使用されており、十分なセキュリティ長さの公開鍵を持っていると誰もが信じています。
  26. シェーンハーゲ・シュトラッセン アルゴリズム - 数学において、シェーンハーゲ・シュトラッセン アルゴリズムは、大きな整数を乗算するための高速漸近アルゴリズムです。アルゴリズムの複雑さは O(N log(N) log(log(N))) であり、アルゴリズムはフーリエ変換を使用します。
  27. シンプレックスアルゴリズム - 数学的最適化理論において、シンプレックスアルゴリズムは線形計画問題の数値解を見つけるために使用される一般的な手法です。線形計画問題は、実変数の集合に対する線形不等式の集合と、最大化(または最小化)される固定線形関数から構成されます。
  28. 特異値分解 (SVD) - 線形代数において、SVD は実数または複素数の行列を分解する重要な方法です。信号処理や統計では、行列の擬似逆行列の計算 (最小二乗問題の解決)、過剰決定線形システムの解決、行列近似、数値天気予報など、多くの用途があります。
  29. 線形方程式の連立解法 - 線形方程式は数学における最も古い問題です。デジタル信号処理、線形計画法における推定と予測、数値解析における非線形問題の近似など、さまざまな用途があります。線形方程式系を解くには、ガウス・ジョルダン消去法またはコレスキー分解を使用できます。
  30. Strukturtensor アルゴリズム - パターン認識の分野で適用され、すべてのピクセルに対して計算方法を見つけて、ピクセルが均質領域内にあるかどうか、エッジに属しているかどうか、または頂点であるかどうかを確認します。
  31. 結合検索アルゴリズム - 要素のセットが与えられた場合、このアルゴリズムはこれらの要素を複数の重複しない個別のグループに分割するためによく使用されます。分離セットデータ構造は、このような分割方法を追跡できます。マージ検索アルゴリズムは、このデータ構造に対して 2 つの便利な操作を実行できます。
    • 検索: 特定の要素がどのグループに属しているかを判断します。
    • マージ: 2 つのグループを 1 つのグループに結合またはマージします。
  32. ビタビ アルゴリズム - 特に隠れマルコフ モデルにおいて、観測可能なイベントのシーケンスを生成するビタビ パスと呼ばれる最も可能性の高い隠れ状態のシーケンスを見つける動的プログラミング アルゴリズム。

InfoQ の読者の皆さん、これらは Christoph 博士による最も重要なアルゴリズムに関する調査結果ですか?どのようなアルゴリズムに精通していますか?どのようなアルゴリズムをよく使用しますか?

<<:  二分木反復アルゴリズム

>>:  新しいソートアルゴリズムの発明から始まる

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

フォーブスの分析:深刻な問題により自動運転技術は「寒い冬」を迎える可能性がある

フォーブスによると、コーエン研究所の研究者らは最近、テスラのオートパイロットシステムへのハッキングに...

...

ガイド | NLP の問題の 90% を解決する方法を段階的に教えます

[[279869]]テキストデータはどこにでもある既存の企業でも、新しいサービスを開発している企業で...

プライベート写真100億枚が流出! Clearview AIバイオメトリクスがあなたを監視しています

米国に拠点を置く顔認識企業 Clearview Ai は、最も包括的な顔認識システムを有していると主...

...

Swift モバイル ゲーム開発に適用される幅優先探索アルゴリズム

[51CTO.com クイック翻訳] Swift Algorithm Club (https://g...

製造業における人工知能の活用事例トップ10

世界経済の礎である製造業は、人工知能 (AI) が推進する技術革命の最前線にあります。この記事では、...

...

AI が公共安全活動を支援する独創的な方法

翻訳者 | 劉涛レビュー | Chonglouソフトウェア技術の発展は確かに大きな進歩を遂げました。...

2022 年のビジネス インテリジェンスの 7 つのトレンド

ビジネス インテリジェンスは AI に置き換えられることはありません。BI は今でも存在し、役立って...

AIを正しい方向に導く

過去 1 年間、私は何百人ものクライアントにインタビューし、AI によって可能性に対する認識がどのよ...

2021年1月から2月までの中国人工知能の月次情報まとめ

[[389793]]国内人工知能産業への投資と資金調達の調査不完全な統計によると、過去2か月間に66...

この AI 商用リストをお見逃しなく: 生産上の問題はアプリケーションで解決できるかもしれません (続き)

[[220537]]リアム・ヘーネル編纂者:趙怡雲、江宝尚、銭天培新年を前に、温翁氏は音声認識から...