全世界に影響を与える10のアルゴリズム

これは、マイクロチャネルパブリック番号切り替え InfoQの(ID:infoqchina)、著者:マルコスオテロを

   

数日前、Redditに出会ったときに、「私たちの世界に影響を与えるトップ10アルゴリズム」という興味深い記事を見つけました。著者のGeorge Dvorskyは、この記事が今日の世界におけるアルゴリズムの重要性を説明し、どのアルゴリズムが私たちの文明に卓越した貢献をするかを期待しています。


さて、あなたがアルゴリズムに関与している場合、記事を読んだ後の最初の考えはおそらく-作者はアルゴリズムが何であるかを本当に知っていますか?それともFacebookのニュースソースはアルゴリズムですか?Facebookニュースソースもアルゴリズムである場合、ほとんどすべてのアルゴリズムに要約できます。したがって、私はこの記事でアルゴリズムの真の定義を説明してから、世界を本当に支配している10個(またはそれ以上)のアルゴリズムを探求したいと思っています。


アルゴリズムとは正確には何ですか?


端的に言えば、アルゴリズムとは、特定の値または値のセットを入力コンテンツとして取り、特定の値または値のセットを出力結果として生成する、明確に定義されたすべての計算プロセスを指します。したがって、アルゴリズムは、入力を出力に変換する一連の計算ステップを表します。


出典:Thomas H. Cormen and Chales E. Leiserson(2009)、第3版「アルゴリズム入門」。


簡単にまとめると、アルゴリズムは特定のタスクを解決するための一連のステップと考えることができます(そうです、コンピューターだけでなく、人間もアルゴリズムを使用しています)現在の標準によれば、アルゴリズムには、実用的な結果をもたらすと考えられる次の3つの重要な特性が必要です。


  1. アルゴリズムを制限する必要があります。アルゴリズムは、限られた時間内の限られたステップ解決する問題を解決する必要があります。つまり、アルゴリズムは限られた時間で完了する必要があります。


  2. 明確な指示が必要です:アルゴリズムの各ステップを正確に定義する必要があります。同時に、状況ごとに明確な説明を行う必要があります。


  3. 効果的である必要があります。アルゴリズムは、設計された問題を解決できる必要があります。さらに、このアルゴリズムは、ペンと紙のツールを使用するだけで収束を達成できることを証明する必要があります。


さらに、アルゴリズムの適用は計算科学に限定されず、数学的実体としても機能することを強調しておく必要があります。実際、紀元前1600年には、最初に記録された数学アルゴリズムが登場しました。バビロニア人は、平方根を分解するための最も初期の既知のアルゴリズムを発見しました。したがって、記事の冒頭で説明した問題に戻ると、私が読んだ記事ではアルゴリズムを計算エンティティと見なしていましたが、そのようなより広い定義が採用されている場合、世界を支配する上位10のアルゴリズムは算術メソッドとして具現化される可能性があります(たとえば、減算、乗算など)


ただし、この記事で作成したアルゴリズム定義を採用する場合、問題は残ります。世界を支配する10個のアルゴリズムは何ですか?ここでは、特定の順序ではなく、小さなリストを作成します。


1.マージソート、クイックソート、ヒープソート



要素の並べ替えに最適なアルゴリズムは何ですか?具体的な答えはあなたの実際のニーズに依存するので、これら3つのより一般的に使用されるソートアルゴリズムを同じカテゴリとしてリストしました;多分あなたはそれらの1つを好むかもしれませんが、実際には3つすべてが非常に重要です。


その中で、マージソートアルゴリズムは、これまでのところ最も重要なアルゴリズムの1つです。これは、比較に基づく並べ替えアルゴリズムで、O(n ^ 2)の元の時間の複雑さの問題を分割して征服することによって解決します。このアルゴリズムは、数学者のジョンフォンノイマンによって1945年に発明されました。


クイックソートは、ソートの問題を解決するために使用されるもう1つの方法であり、in-situパーティショニングを実現できます。これは、分割統治アルゴリズムのクラスにも属します。このアルゴリズムの問​​題は、並べ替えが安定していないことですが、メモリベースの配列を並べ替えるときにうまく機能します。


最後に、ヒープソートアルゴリズムがあります。これは、優先キューを使用してデータの検索時間を短縮します。このアルゴリズムはインプレースアルゴリズムでもあり、安定したソートでもありません。


これらのアルゴリズムは、以前に使用した他の方法(バブルソートなど)と比較して大幅に改善されています実際、これらのアルゴリズムの出現により、データマイニングや人工知能などのネットワークで一般的に使用されている多くの最新のコンピューティングツールを紹介することができます。


2.フーリエ変換と高速フーリエ変換



これらのシンプルだが非常に強力なアルゴリズムはデジタルの世界で使用されており、これらのアルゴリズムは信号を時間領域から周波数領域に、またはその逆に変換できます。実際、これらのアルゴリズムの存在のために、この記事はより多くの友人に見られます。


インターネット、Wi-Fi、スマートフォン、電話、コンピューター、ルーター、衛星、およびコンピューティングデバイスが組み込まれたほぼすべてのデバイスは、これらのアルゴリズムを何らかの方法で使用して実行を続けます。これらの重要なアルゴリズムを研究しないと、電子工学、コンピューター、または通信科学の学位を取得できません。


3.ダイクストラのアルゴリズム(ディクストラのアルゴリズムも翻訳)



正直なところ、このようなアルゴリズムがないと、インターネットは今日のような効率的な運用を維持できません。この種のグラフ検索アルゴリズムにはさまざまな適用方法があり、解決する問題をグラフとしてモデル化し、グラフ内の2つのノード間の最短経路を見つけることができます。


今日、最短経路の問題に対する解決策はすでにありますが、ダイクストラアルゴリズムは、安定性を重視する多くのシステムで依然として広く使用されています。


4. RSAアルゴリズム


保証としての暗号化とネットワークセキュリティメカニズムがなければ、インターネットの重要性は今日のレベルに到達できません。誰もが「ナンセンス、国家安全保障局および多くの諜報機関の監視は長い間インターネットセキュリティを台無しにしてきた」または「インターネットにはまったくセキュリティがなく、愚か者はそのようなセキュリティプロパガンダを信じる」と考えるかもしれません。ほとんどの人はまだある程度のセキュリティの自信を持っています。さもなければ、あなたはインターネットを通じてまったく消費しません。結局のところ、既存のネットワークシステムのセキュリティを本当に拒否した場合、誰がWebサービスにクレジットカード番号を入力しても構わないでしょうか。


暗号の分野では、今でも世界で最も重要なアルゴリズムの1つであるRSAアルゴリズムがあります。このアルゴリズムは、RSAの創設者によって開発されました。これにより、暗号化の結果を世界中の誰もが自由に利用できるようになり、今日の暗号化技術の実装も形作られました。RSAアルゴリズムが解決しようとしている問題は、独立したプラットフォームとエンドユーザーの間で公開鍵を共有して暗号化を実現する方法です(もちろん、RSAアルゴリズムはこの問題を完全には解決していないため、実務者はこの方向にさらに投資する必要があります)努力)


5.安全なハッシュアルゴリズム


これは実際には実際のアルゴリズムではなくNIST (米国国立標準技術研究所)によって開発さた一連の暗号化ハッシュ関数です。ただし、アルゴリズムファミリは、世界秩序を維持する上で重要な役割を果たします。アプリケーションストア、電子メール、ウイルス対策ソフトウェアから一般的に使用されるWebブラウザーまで、これらすべてがこのタイプのアルゴリズムを使用して(実際には、このタイプのアルゴリズムによって生成されたハッシュ値を使用して)、ダウンロードがまさに目的のダウンロードであるかどうか、または中間者攻撃やフィッシング攻撃の被害者であるかどうか。


6.整数分解


これは、コンピューティングで広く使用されている数学的アルゴリズムです。このアルゴリズムがないと、暗号化技術のセキュリティレベルが著しく損なわれます。このアルゴリズムは、合成数の素因数をより小さな非ゼロ因数に分解するために使用されます。これはNP型問題の延長であるFNP型問題とも呼ばれ、解くことが非常に困難です。


多くの暗号化プロトコルは、大きな複合整数または関連する問題の分解の難しさに基づいています。RSAアルゴリズムはそれらの典型的な代表です。RSAベースの公開鍵暗号化メカニズムが高度なセキュリティを備えているのは、任意の整数を因数分解することが非常に困難であるためです。


量子コンピューティングの誕生により、そのような問題を解決する難しさが大幅に軽減され、システムのセキュリティを確保するための量子特性の使用という新しい科学研究分野が開かれました。


7.リンク分析



インターネットの時代では、もちろん、異なるエンティティ間の関係を分析することは非常に重要です。検索エンジンからソーシャルネットワーク、マーケティング分析ツールまで、各当事者は時間とともに変化するインターネット構造の発見に苦労しています。


リンク分析は、間違いなく最も神秘的であり、一般市民の目にはアルゴリズムを理解するのが難しいものの1つです。問題は、さまざまな方法でリンク分析を実装でき、複数の機能が存在するため、各アルゴリズムに一定の違いがあり(アルゴリズムの特許申請が可能)、その基礎となる基盤が非常に似ていることです。


リンク分析の背後にある基本的な考え方は非常に単純です。つまり、ユーザーはグラフを行列の形で表すことができ、それにより固有値の問題に変換できます。この機能値は、グラフ構造と各ノードの相対的な重要性を測定するための優れた方法を提供します。このアルゴリズムは、1976年にGabriel PinskiとFrancis Narinによって発明されました。


では、このアルゴリズムを使用しているのは誰ですか?Googleはページをランク付けする必要があり、Facebookはニュースフィードを公開する必要があります(したがって、私たちはFacebookのニュースフィードサービスをアルゴリズム自体ではなくアルゴリズムの結果として扱います)、Google +とFacebookの友達の推奨、LinkedInの仕事と連絡先の推奨、Netflix Huluとの映画やテレビの接続、YouTube関連の動画などはすべてこのカテゴリに分類されます。それらはそれぞれ異なる目標とパラメーターの組み合わせを持っていますが、それらの背後にある数学的原理は同じです。


最後に、Googleがこのアルゴリズムを使用した最初の会社であると多くの人が思っているが、1996年(Googleの誕生の2年前)に、Robin Liによって開発されたRankDex小型検索エンジンは、この基本的なアイデアをページランキングに使用し始めます。最終的に、HyperSearchの創設者であるMassimo Marchioriも、単一ページ間の関係に基づいてこのページランキングアルゴリズムを使用し始めました。(Googleはその特許出願でこれら2人の創設者に言及しました。)


8.比例計算アルゴリズム



誰もが飛行機、車、衛星サービス、またはモバイルネットワークを経験している必要がありますか?一部の友人は、工場でロボット機器を見たこともあります。もしそうなら、あなたはすでにこのアルゴリズムの力を見てきました。


このアルゴリズムは、制御ループフィードバックメカニズムを使用して、予想される出力信号と実際の出力信号との間の誤差を最大限に制御することを目的としています。自動化された方法で電子技術によって制御される機械、油圧、または熱システムを含む、信号処理の需要があるすべてのシナリオに適しています。


そのようなアルゴリズムがなければ、私たちの現代文明について語ることは不可能だとも言えます。


9.データ圧縮アルゴリズム


実際のアプリケーション要件に応じて、使用するアルゴリズムにはzip、mp3、さらにはJPEGおよびMPEG-2が含まれる場合があるため、どの圧縮アルゴリズムが最も重要であるかを判断することは困難です。しかし、私は誰もがさまざまな構造でこれらのアルゴリズムの重要な役割を明確に感じることができると信じています。


最も直感的なファイル圧縮に加えて、圧縮アルゴリズムのトレースをどこで見ることができますか?明らかに、ウェブページはデータ圧縮技術を使用して、ダウンロードする必要のあるファイルの量を制御します。さらに、ビデオゲーム、ビデオ、音楽、データストレージ、クラウドコンピューティング、およびデータベースも、データ圧縮アルゴリズムが登場する段階です。このようなアルゴリズムの存在により、システムはより低コストでより効率的な方法でユーザーにサービスを提供することができます。


10.乱数生成アルゴリズム



今日、「実際の」乱数ジェネレータはありませんが、ニーズを完全に満たすことができる多くの疑似乱数ジェネレータがすでにあります。これらのアルゴリズムは、相互接続リンク、暗号化、セキュアハッシュアルゴリズム、ビデオゲーム、人工知能、最適化、問題条件の初期化、ファイナンスの分野に広く存在します。


最後に、このリストは1つの観点のみを表しており、真に包括的なリストではないことを付け加えておきます。機械学習、行列の乗算、分類の分野では、文明社会の基盤と言える重要なアルゴリズムがまだたくさんあるからです。


英文原文

https://medium.com/@_marcos_otero/the-real-10-algorithms-that-dominate-our-world-e95fa9f16c04


InfoQの(ID:infoqchina)、著者:マルコスオテロこれは、マイクロチャネルパブリック番号を切り替えます。

公開された19元の記事 ウォンの賞賛9 ビュー3009

おすすめ

転載: blog.csdn.net/Necrolic/article/details/103574529