「分枝と限定法 – アルゴリズムをゼロからコーディングする」

『美容とファッションの世界 - 独自のアルゴリズムを構築する方法』

Pythonプログラミング言語におけるアルゴリズムの深い理解

はじめに

Photo by JJ Ying on Unsplash

もし、入門記事「分枝限定法 – コーディング前のアルゴリズム理解」から来たのであれば、ここからはアルゴリズムの理解を深めるために、スクラッチからコーディングする部分です。これは常に、私が職業に必要なアルゴリズムの動作を理解し、アルゴリズム的な思考や計算思考を進めるのに役立ちます。

もし、この記事にたまたま辿り着いたけれども、入門記事を読んでいない場合は、コードの前にアルゴリズムの背後にある概念を読んで理解することをおすすめします。冗長な内容を避けるため、ブランチとバウンドのアルゴリズムの説明は省略し、直接コーディングに入ります。

アルゴリズムの簡単なレビュー:

Image from Author: Coding from Scratch is Easier with a Flowchart to Follow

ブランチとバウンドアルゴリズムは、線形プログラムの解決と整数プログラミングの文脈で使用されるときに、以下の一般的な手順に従います。

  1. 初期化 — 変数の値を最適でない値に初期化します。最大化の場合、値は負の無限大に設定され、最小化の場合は逆です。これは、コードの再帰的なプロセスがより良い解を見つけることを目指し、アルゴリズムの実行によってすでにより良い解が得られるためです。
  2. 線形プログラミング緩和 — 整数の制約が強制されていない場合、主問題は解決されます。したがって、その制約を「緩和」し、通常の線形プログラムとして扱います。これは、すべてのサブ問題に対して行われます。
  3. 整合性の確認 — 最初の解が既に整数である場合、プログラムは終了します。この条件は、すべてのサブ問題に対してもテストされます。
  4. 分岐 — 最適解が整数でない場合、問題はより小さなサブ問題に分割(または「分岐」)されます。これは、制約を追加することで行われます…

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

「Seerの最高データオフィサーであるDr. Serafim Batzoglouによるインタビューシリーズ」

セラフィム・バツォグルはSeerのチーフデータオフィサーですSeerに加わる前は、セラフィムはInsitroのチーフデータオフィサー...

人工知能

Diginiのスマートセンスの社長、ガイ・イエヒアブによるインタビューシリーズ

ガイ・イハイアヴ氏は、ビジネスの成功に最も重要な資産を保護するためにインターネット・オブ・シングス(IoT)の力を活用す...

人工知能

キャルレールの最高製品責任者、ライアン・ジョンソンへのインタビューシリーズ

ライアンは、初期のスタートアップからフォーチュン100の組織まで、多様なテクノロジーと製品開発のリーダーシップ経験を15年...

データサイエンス

「Adam Ross Nelsonによる自信のあるデータサイエンスについて」

データサイエンスの中で新たな分野が現れ、研究内容が理解しにくい場合は、専門家や先駆者と話すのが最善です最近、私たちは...

人工知能

ベイリー・カクスマー、ウォータールー大学の博士課程候補 - インタビューシリーズ

カツマー・ベイリーは、ウォータールー大学のコンピュータ科学学部の博士課程の候補者であり、アルバータ大学の新入教員です...

人工知能

ギル・ジェロン、Orca SecurityのCEO&共同創設者-インタビューシリーズ

ギル・ゲロンは、オルカ・セキュリティのCEO兼共同設立者ですギルは20年以上にわたりサイバーセキュリティ製品をリードし、提...