めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

非線形計画の最適化問題:組み合わせ計画

組み合わせ計画

言葉の意味と定義

組み合わせ計画

有限個の元からなる実行可能領域の中から目的関数を最小化する最適解を求める問題。

貪欲法

解を求める途中のステップで、その時点で最も最適だと思われる解を常に選択。

最小全域木

以下参照。
全域木 - Wikipedia
貪欲法を用いた、最小全域木の解法がクラスカル法。
クラスカル法 - Wikipedia
だいたいの流れは以下の通り。

  1. グラフのすべての頂点一個だけからなる木の集合Fをつくる。(FはforestのF、木の集合を森と言うからだろうと思う)
  2. グラフの全ての辺を含む集合Eを生成する.
  3. Eから重みが最小の辺eを取り出し,Eから除外する.★
  4. その辺eと繋がっている二つの頂点x, yについて考える、x,yが集合Fのなかで別々の木に属しているならば,集合Fの中のx,yの属する木をeで連結してひとつの木にまとめる。x,yが集合Fのなかで別々の木に属しているのではないのなら放置。
  5. Eが空集合なら終了、そうじゃないときは★へもどる。

最終的に森Fが一つの木となりそれが最小全域木となる.常に重みが最小のものを選ぶ点が”貪欲”である。

分枝限定法

分枝限定法 - Wikipedia
wikiをみるよりも、実際に計算した方が分かりやすい。NP困難問題に対して、すべての場合を計算せずに最適解を求めるために利用されることが多い。

例:ナップザック問題
ナップサック問題 - Wikipedia
問題を定式化すると、
{
 目的関数: max \sum_{k=1}^n c_n z_n \\
 制約条件: \sum_{k=1}^n a_k z_k \leq b \\
 ただし \forall k , z_k \in \{ 0, 1 \}
}
と書くことにする。つまり、a_i は要素iのサイズ、bはナップザックのサイズ、c_i は要素iの価値であり、ナップザックに詰め込めるもののすべての価値の和を最大化するのが問題。

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。