一般的に使用される 5 つのアルゴリズム
1. 貪欲なアルゴリズム
グリーディ アルゴリズムは、問題に対する局所的な最適解を取得できますが、必ずしもグローバルな最適解を取得できるとは限りません。同時に、最適解を取得する品質は、グリーディ ストラテジーの選択によって決まります。シンプルで局所的な最適解が得られるのが特徴です。犬を叩く棒法と同じように、同じ棒法であっても、紅気功と陸友佳のレベルは大きく異なるため、これも貪欲なアルゴリズムであり、貪欲な戦略が異なれば、結果も大きく異なります。
2. 動的計画法アルゴリズム
最適化問題に繰り返しの部分問題と最適な部分構造がある場合、動的計画法が登場します。動的プログラミング アルゴリズムの中核は、反復された部分問題の結果をキャッシュするメモリを提供し、再帰的プロセスでの大量の反復計算を回避することです。動的計画法アルゴリズムの難しさは、問題を動的計画法アルゴリズムで解決できる問題にどのように変換するかです。繰り返される部分問題の数が少ない場合、動的計画法の効果は低くなります。問題に多数の繰り返しサブ問題がある場合、動的プログラミングは効率を向上させるのに非常に適していません。武道と同じで、相手が強ければ自分も強くなり、相手が強ければ弱くなります。
3. 分割統治アルゴリズム
分割統治アルゴリズムのロジックはより単純で、一言で言えば「分割統治」です。分割統治アルゴリズムは、大きな問題をいくつかのサブ問題に分割し、基本ケースに至るまでサブ問題を下方向に分割し続けます。基本ケースの解決を通じて、段階的に元の問題が解決されます。大きな問題がついに解決されました。分割統治アルゴリズムは再帰の典型的な応用例です。
4. バックトラッキング アルゴリズム
バックトラッキング アルゴリズムは、深さ優先戦略の典型的なアプリケーションです。バックトラッキング アルゴリズムは、パスをたどります。パスが異なる場合は、前の
分岐道路に移動し、進むべき道を選択し、すべての道を通過するまでこのように繰り返し続けます。 Eight Queens 問題はバックトラッキング アルゴリズムの古典的な問題であり、もう 1 つの古典的な応用シナリオは迷路問題です。
5. 分岐限定アルゴリズム
バックトラッキング アルゴリズムは深さ優先であるため、分岐限定手法は幅優先の典型的な例です。 。一般に、バックトラッキング法は解空間全体を走査して問題に対するすべての解を取得しますが、分枝限定法は 1 つの解を取得します (一般に、最適解を取得します)。
推奨チュートリアル: 「PHP チュートリアル 」
以上がよく使用される 5 つのアルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。