ホームページ  >  記事  >  バックエンド開発  >  PHP貪欲アルゴリズムの実装例

PHP貪欲アルゴリズムの実装例

黄舟
黄舟オリジナル
2017-10-18 09:16:181335ブラウズ

この記事では、主にPHPに実装されている貪欲アルゴリズムを紹介し、貪欲アルゴリズムの概念と原理を簡単に説明し、貪欲アルゴリズムを実装するPHPの関連操作スキルを例の形で分析します。この記事では、実装された貪欲なアルゴリズムの例を使用して PHP について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

背景の紹介:

貪欲なアルゴリズムとデータ構造の知識ベースのアルゴリズムは、私たちの生活に最も近いアルゴリズムであると言えます。このアルゴリズムは非常に人間的です。私がこのようなことを言う理由は、人々は生活の中で意図的または非意図的に問題を解決するために貪欲なアルゴリズムを使用するからです。最も一般的なのは、小銭を作ることです。誰もが小銭を作る方法を学んだことがありませんが、すべての宗派に十分なお金がある場合、誰もが必要なお金を得るために同じ組み合わせを見つけるでしょう。実際、ここでは貪欲なアルゴリズムが機能しています。

設計思想:

貪欲法の設計思想は、直観的および数学的という 2 つの側面から理解できます。貪欲アルゴリズムを直観的に理解するには、問題を解決するために最速の方法を使用する必要があります。ここでの主な目標は「迅速」です。たとえば、上記の両替の例で、両替したい金額が 6.6 元であるとします。次に、最初に 5 元のチケットを入手します。これにより、集めたお金が最も早く増加する可能性があります。人民元の額面が 6 元の場合、他の 2 つを使用して 6 元を構成するのではなく、間違いなく 6 元を選択します。数学的に理解すると、貪欲アルゴリズムは、最適化の最急降下法と同様に、判断を下す際に現在の最適解をターゲットにすることです。で 。この方法の利点は、問題を解くのが非常に速く、基本的に 1 回のパスで完了できることです。

アルゴリズムの欠陥:

人間があまり貪欲になれないのと同じように、貪欲なアルゴリズム自体にも致命的な欠陥があり、アプリケーションの背景に多くの制限を課します。このアルゴリズムは局所的な最適解を採用するため、将来の問題は考慮されません。これは利己的な人のようなもので、短期間ではある程度の利益を得ることはできますが、長期的には大きな成果を達成することは困難です。もちろん、社会は非常に複雑なので、利己的であり続けて、かなり良い人生を送っている人もいるかもしれません。これは、場合によっては (後述)、貪欲アルゴリズムが最適解を取得できるというアルゴリズムに反映されており、これはもちろんアルゴリズム設計にとっては良いことです。

りー

以上がPHP貪欲アルゴリズムの実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。