マインドマップギャラリー アルゴリズムに関する一般的な知識
アルゴリズムの一般知識の完全版を共有してください!内容には、アルゴリズムの理解、アルゴリズムの設計、アルゴリズム戦略、アルゴリズムの紹介が含まれます。マップは豊富で詳細です、友達、学習を始めましょう~
2023-03-14 21:49:53 に編集されましたアルゴリズムに関する一般的な知識
アルゴリズムを理解する
自然
アルゴリズムには明確性を求める非常に厳しい要件があります
例: 仲人さんの経験: 近くに住んでいます – どれくらい近いとみなされますか?家の近くにありますか?職場に近いですか?複数の拠点間での優先順位付け...
アルゴリズムは決定論的な保証で問題を解決します
モデリングはアルゴリズムの利点の本質です
たとえば、オンラインで魔法瓶を購入する場合、「The Wind」を検索すると常に魔法瓶が推奨され、さまざまなスパイ映画が推奨されます。
モデリング: 異なる問題を同じ方法で扱い、同じアルゴリズムのセットで解決します。
アルゴリズムには良いも悪いもありません。アルゴリズムの背後にあるのはすべて人間の思考です。
複雑さ
アルゴリズムの効率を評価する際の難しさ: 効率を評価するために絶対時間を使用することは適用できません
ハードウェアの依存関係
巨大
時間の複雑さ
アルゴリズムの「入力サイズ」に応じて「基本演算の総数」が増加する「関数関係」
例: 高さ 10 メートルのピラミッドを建てるには、100,000 個の石を建てるべきか、500,000 個の石を建てるべきかが設計図によって決まります。 石のベース = 基本操作; 10 メートル = 入力スケール; 石のベースの総量とピラミッドの高さの関数関係。
時間の複雑さを軽減する方法
時間のためのスペース
空間複雑度: 入力サイズが増加するにつれて、アルゴリズムによって占有される空間リソースが増加する関数関係。
検索速度の高速化と引き換えに、ストレージ容量 (ハードディスク/メモリ) の一部を犠牲にすることは、非常にコスト効率が高くなります。
思考を分割して征服する
例: フーリエ変換から高速フーリエ変換まで、オーディオの圧縮には 1 日から 1 秒かかります。
鼓舞する
実用選択モデル: 可解性を維持しながら現実に近似する
ユーティリティ: 満足
例: アメリカの有権者が投票するかどうかは、性別、民族、教育レベル、職業などの多くの要因によって影響されます。効用に影響を与える要因は非常に多く、いくつかの要因は複雑な相関関係を持っています。
モデルが複雑すぎる場合、解は得られません。この場合、モデルは単純化されなければなりません。これは、複雑な相互作用のない線形重ね合わせであると仮定されます。
テキサス ホールデム ポーカー: 問題サイズの削減
規模が大きすぎてコンピュータでは処理できないため、何らかの情報を捨てる方法を見つける必要があります。
例: テキサス ホールデム: 類似した州を結合する
探索と活用: 結果を取得するために繰り返します
例: 動画 Web サイトでは、最初はさまざまなコンテンツが推奨されますが、しばらくすると、最もよく見るコンテンツが推奨され始めます。
反省: アルゴリズムは実行することしかできず、責任を負うことはできません。アルゴリズムに問題がある場合は、人間に戻って答えを見つける必要があります。
アルゴリズムは問題の責任を負うことができません
例: どちらの書店も独自の価格を他の書店の価格の倍数に設定しており、その結果、異常に高い価格が設定されています。
アルゴリズムはデータに責任を負うことはできません
例:尿検査で冷たい紅茶を飲むと血糖値が基準値を超え、糖尿病の疑いがあります。
アルゴリズムは解釈の責任を負うことができません
例: IBM は Watson 医療診断システムを構築していますが、アルゴリズムは説明を提供できません
設計アルゴリズム
アルゴリズムの設計図
問題を明確にする
明確な目的
例: すべてのタクシー乗客を照合するか、できるだけ多くの乗客をできるだけ早く照合します。
明確な制限
例: 都市部の乗客の待ち時間は 1 分を超えることはできません。
評価基準を明確にする
例: 時間またはコストのメリット
モデリング
これは実際の問題をアルゴリズムの問題に変換するプロセスであり、多くの詳細を抽象化するプロセスでもあります。
アルゴリズムを設計する前に、数学的モデルを確立する必要があります
モデルの反復は非常に重要です
アルゴリズムの選択
目標達成のレベルと時間の複雑さによって決定される
反復する
アルゴリズム、ハードウェア
モデリング
仮説を決定する
予測結果の精度要件を決定し、重要でない詳細を破棄し、あいまいな問題を明確にして定量化します。
モデルの検証
常識に従って検証し、過去のデータを使用して検証します。
実現可能性を検討する
それは現実に近く、簡単に解決できるはずです。
アルゴリズムの選択
関係: モデルとアルゴリズムは 1 対 1 対応ではありません
例:ナップサック問題
選択: 品質と効率のトレードオフ
例: オンライン広告を掲載する決定は即座に行う必要があり、貪欲なアルゴリズムを使用します。
たとえば、野生動物の保護を計画する場合、可能な限り最適な解決策を見つけ、分岐限定アルゴリズムを使用する必要があります。
上級: アルゴリズム エンジニア向けのさらなる考慮事項
データの機密性が低く、制限が少なく、データへの依存度が低いアルゴリズムを好む
アルゴリズム戦略
反復する
反復アルゴリズム: ループを通じて一定の操作を繰り返すアルゴリズム。各ステップは前のステップの結果から開始され、徐々に答えに近づいていきます。
反復アルゴリズムが有効であるための条件: まず、アルゴリズムが収束する必要があります。次に、固定小数点が一意である必要があります。
反復戦略では、解を見つけるプロセスでのエラーが許容されますが、このエラーは非常に急速に減少するため、反復アルゴリズムも非常に高速になります。
例: 車を見つけるためにシカゴを検索するのは非常に時間がかかります。これはブルート フォース アルゴリズムと呼ばれます。
例: 反復アルゴリズムを使用して、最初のステップで車からの距離は 10 キロメートルになり、次の反復後には 100 キロメートルになります。この距離は「残差」と呼ばれます。
分割統治
分割統治アルゴリズム: 大きな問題を小さな問題に分割するバックトラッキング アルゴリズム。バックトラッキングを通じて、問題が直接解決できるほど小さくなるまで同じ問題が継続的に分解され、その後、小さな問題の解決策がマージされます。オリジナルの問題解決策。
例: テニスの試合の主審は、さまざまなレベルで審判業務を下請けに行っています。
トレースバック: ネストされたループが独自のプロシージャを呼び出す
分割統治アルゴリズムが有効になる条件
それは使用できますか? 問題が元の問題と同様のサブ問題に分解できること、およびこれらのサブ問題が互いに独立していることを確認してください。
解決策は早いかどうか?
分割統治における 2 つの重要な操作である分解と結合は無料ではありません
例: 衝突検出: 空間内で移動する 100 個のボールのうちのどれが互いに衝突したかを計算するために、空間を 2 つの部分に分割し、それらを個別に検出することにより、2 つのボールの間の距離が計算されます。 2450倍に減ります。空間を分割するときに適切な分割位置を見つけるには、追加の計算コストが必要です。マージ時に、一部のボールが途中でカットされていることがわかり、衝突が発生したかどうかを判断するには、追加の計算が必要になります。これは、マージ結果のコストです。
分解問題とマージ結果の計算が複雑でない場合、分割統治戦略によりアルゴリズムの複雑さを軽減できます。
分割統治アルゴリズムは複数の CPU で並列計算できますが、反復アルゴリズムでは各ステップが前のステップの結果に基づいて順番に計算される必要があるため、複数の CPU で並列計算できません。
動的プログラミング
解決策: 終わりを念頭に置いて、小さなことから大きなものまで構築していきます。
例: キャンディー取りゲーム: 最終的に 4 つのキャンディーに直面した人が負けます
例: ロケットの垂直軟着陸: 最終位置は指定された位置に非常に近く、ロケットと地面の間の角度は 90 度に非常に近く、着陸速度は 0 に非常に近くなければなりません。
複数のステップから成る意思決定の問題に直面した場合、特定のステップの最適な決定には、小規模な問題に対する最適な戦略が含まれ、それに依存します。これが最適な下部構造です。
例: キャンディー取りゲーム: 最初に 2 つのキャンディーを取ることが最適な戦略である必要がありますが、将来的にキャンディーが少なくなった場合に最適な戦略に従わないと、今キャンディーを 2 つ取っても勝つことはできません。
動的計画法の効率は、円周爆発の影響を受けます。このとき、アルゴリズムエンジニアは必ずしもすべての部分問題を正確に解決できるわけではなく、一部のみを解決する可能性があり、他の部分問題の解決策については 1 つの推定値のみが作成されます。
枝と束縛
ポートフォリオの最適化
実行可能な解決策を見つけるのは難しくありませんが、最適な解決策を見つけるのは特に困難です。
例: 木の上で一番大きなリンゴを見つけます。明らかにリンゴより小さい枝を切り落とし、比較のために少数の枝を残します。
枝と束縛
例: 中学校で一番背の高い生徒を見つけます。
支部:中学校・高等学校
境界線:中学校の湧出洞窟の高さは1.8メートル、誰もかがむ必要はない - 「1.8メートル」はこの中学校の分校の上限です
剪定:高校に高さ1.8メートルを超える木が1本あれば、中学校全体を剪定することができます。
特定のサブ探索空間で取得できるターゲットが既知の実現可能な解決策ほど優れていない場合、このサブ空間は直接削除されます。
分岐限定メソッドを効率的に行う方法
どれだけ効果的に枝刈りできるかによって異なりますが、枝刈りを行わずに分岐だけを行う場合は、すべてを数えることと変わりません。
「早期停止」戦略: 得られた一時的な最適解離が実際の最適解に非常に近い場合、早期停止により時間を大幅に節約できます。
ヒューリスティック
特に複雑な組み合わせ最適化問題に遭遇したときに、最適な解決策が見つからない場合は、ヒューリスティック アルゴリズムを利用して、適切な実行可能な解決策を見つけることができます。
ヒューリスティックアルゴリズム: 人間の直感または自然法則と一致する
モンテカルロ
適用可能: 可能性が多すぎて数え切れない
モンテカルロ: 問題内のランダム イベントをサンプリングし、限られた数のサンプルに対して独立した計算を実行し、最後にサンプル結果の統計を作成します。
これはパラメータの正確さに大きく依存しており、問題の性質を明らかにするのにはあまり役に立ちません。
アルゴリズムフロンティア
機械学習
機械学習アルゴリズムは、コンピューターが自律的に学習できるようにする一連のアルゴリズムで、人間が明確なルールでは解決できない問題に最適です。
機械学習は、人間が教えられていない、理解していない多くの詳細を学習します。
機械学習は物事間の複雑な関係を学習します
学習戦略: 機械学習アルゴリズムがどのように学習するか
メモリに基づく K 近傍アルゴリズムは、最終的に大量の履歴データを表現します
例:コモンロー制度における判例法
決定木モデルは、データ帰納を通じて条件判断を要約し、最終的にいくつかの複雑な条件判断を表現します。
ニューラル ネットワーク モデルは、神経信号の伝達とさまざまな外部情報に対する神経反応のプロセスをシミュレートし、最終的に一連のパラメーター値を表現します。