分割統治法とは? わかりやすく解説

分割統治法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/29 00:47 UTC 版)

分割統治法(ぶんかつとうちほう、: divide-and-conquer method)は、そのままでは解決できない大きな問題を小さな問題に分割し、その全てを解決することで、最終的に最初の問題全体を解決する、という問題解決の手法である。

擬似コード

分割統治法を擬似コードによって表現すると、以下のような再帰呼出しを使ったものとなる。また、分割統治法になっている何らかのアルゴリズムを実装すると、その基本的な骨組みがこのようになる。

function conquer(x) is
  if xは簡単にconquerできる then
    return conquerの結果
  else
    (x1, x2, ...) := divide(x)     // 複数の小さな副問題に分割
    (y1, y2, ...) := (conquer(x1), conquer(x2), ...)  // 再帰
    return synthesize(y1, y2, ...)  // 各副問題の解を合成(最大値を選ぶ、等)

具体的なアルゴリズムのサンプルとしては、マージソートの記事などを参照。

その他

分割統治法は、再帰の際に同じ副問題を複数回解いてしまう場合があり、そうした場合にはそれが原因で計算コストが、計算を終えるのが非現実的になるほどに増加(例えば指数的に発散して)しまう事がある。この問題はメモ化で解決できることがある。最初からメモ化を組込んだ手法の例に、動的計画法がある。

(以下はこの手法に限らず一般的な話であるが)再帰呼出しを使ったプログラムでは、再帰が深くなるとスタックが大きく成長し、メモリが足りなくなったり最悪の場合はスラッシングを起こす。再帰をループに書換える手法もあるが、直接の末尾再帰からの書換えでなければ、結局自分で管理するスタックにデータを積むため、労が多いわりに益が少ないこともある。キューを実装に使うこともあるが、それは速度の問題などよりは、縦ではなく横に探索したい(幅優先探索をしたい)といった理由による。

参考文献

  • 数値線形代数における分割統治法について
    • 桑島豊, & 重原孝臣. (2005). 実対称三重対角固有値問題の分割統治法の拡張 (行列・固有値問題における線形計算アルゴリズムとその応用). 日本応用数理学会論文誌, 15(2), 89-115.
    • 桑島豊, & 重原孝臣. (2006). 実対称三重対角固有値問題に対する多分割の分割統治法の改良 (理論, 行列・固有値問題の解法とその応用, 平成 18 年研究部会連合発表会). 日本応用数理学会論文誌, 16(4), 453-480.
    • 廣田悠輔, & 今村俊幸. (2015). 帯行列の一般化固有値問題向け分割統治法. 情報処理学会論文誌コンピューティングシステム (ACS), 8(4), 78-87.
    • Elsner, L., Fasse, A., & Langmann, E. (1997). A divide-and-conquer method for the tridiagonal generalized eigenvalue problem. en:Journal of computational and applied mathematics, 86(1), 141-148.
    • Kwak, D. Y., & Kim, J. (2015). A generalization of the divide and conquer algorithm for the symmetric tridiagonal eigenproblem. arXiv preprint arXiv:1506.08517.
    • Tisseur, F., & Dongarra, J. (1999). A parallel divide and conquer algorithm for the symmetric eigenvalue problem on distributed memory architectures. en:SIAM Journal on Scientific Computing, 20(6), 2223-2236.
    • Bai, Z., Demmel, J., & Gu, M. (1997). An inverse free parallel spectral divide and conquer algorithm for nonsymmetric eigenproblems. en:Numerische Mathematik, 76(3), 279-308.
  • 因数分解における分割統治法について
    • 園田信吾, 櫻井鉄也, 杉浦洋, & 鳥居達生. (1991). 分割統治法による多項式の数値的因数分解. 日本応用数理学会論文誌, 1(4), 277-290.
  • 計算幾何学における分割統治法について
    • 浅野孝夫. (1984). 計算幾何学とその応用. 情報処理, 25(3).
  • 並列計算における分割統治法について
    • 中島大輔, 藤本典幸, & 萩原兼一. (2000). 分割統治法アルゴリズムの効率的な並列化手法とそのコンパイラの実装. 情報処理学会研究報告アルゴリズム (AL), 2000(5 (1999-AL-071)), 25-32.

分割統治法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/28 01:04 UTC 版)

「アルゴリズム」記事における「分割統治法」の解説

分割統治法は、問題を(通常再帰的に)複数または単一の同じ種類のもっと小さ問題還元していき、最終的に容易に解ける程度大きさにする。分割統治の例としてはマージソートがある。ソート入力データ分割してそれぞれに対して行われ統治フェーズではそれらの結果マージする。分割統治法を単純化したものとして decrease and conquer algorithm がある。これは、問題を全く同じ複数部分問題分割し、その解をより大きな問題を解くのに利用する。分割統治法では一般に分割され個々部分問題は全く同じではないため、統治フェーズdecrease and conquer algorithm よりも複雑になるdecrease and conquer algorithm の例として二分探索がある。

※この「分割統治法」の解説は、「アルゴリズム」の解説の一部です。
「分割統治法」を含む「アルゴリズム」の記事については、「アルゴリズム」の概要を参照ください。

ウィキペディア小見出し辞書の「分割統治法」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「分割統治法」の関連用語

分割統治法のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



分割統治法のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの分割統治法 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのアルゴリズム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS