<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://orsj-ml.org/orwiki/wiki/index.php?action=history&amp;feed=atom&amp;title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B</id>
	<title>《最小木問題》 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://orsj-ml.org/orwiki/wiki/index.php?action=history&amp;feed=atom&amp;title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B"/>
	<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;action=history"/>
	<updated>2026-04-19T19:03:30Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=7785&amp;oldid=prev</id>
		<title>2007年8月6日 (月) 17:04にKuwashimaによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=7785&amp;oldid=prev"/>
		<updated>2007-08-06T17:04:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2007年8月6日 (月) 17:04時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot; &gt;43行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;43行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[8] 久保，田村，松井 (編) 『応用数理計画ハンドブック』，朝倉書店，2002.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[8] 久保，田村，松井 (編) 『応用数理計画ハンドブック』，朝倉書店，2002.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:グラフ･ネットワーク|さいしょうきもんだい]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kuwashima</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=7734&amp;oldid=prev</id>
		<title>2007年8月6日 (月) 14:59にTetsuyatominagaによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=7734&amp;oldid=prev"/>
		<updated>2007-08-06T14:59:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2007年8月6日 (月) 14:59時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot; &gt;41行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;41行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[7] R. C. Prim, &amp;quot;Shortest connection networks and some generalizations,&amp;quot; ''Bell System Technical Journal'', '''36''' (1957), 1389-1401.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[7] R. C. Prim, &amp;quot;Shortest connection networks and some generalizations,&amp;quot; ''Bell System Technical Journal'', '''36''' (1957), 1389-1401.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[8] 久保，田村，松井 (編) 『応用数理計画ハンドブック』，朝倉書店，2002.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tetsuyatominaga</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=7733&amp;oldid=prev</id>
		<title>2007年8月6日 (月) 14:58にTetsuyatominagaによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=7733&amp;oldid=prev"/>
		<updated>2007-08-06T14:58:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2007年8月6日 (月) 14:58時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot; &gt;5行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]).  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　グラフ上の問題として基本的である最小木問題がいつ頃から考えられたのかは明らかではない. 分かっている範囲では, 1926年に&amp;lt;math&amp;gt;{Bor\breve{u}vka}\, &amp;lt;/math&amp;gt;が,またそれとは独立に, 1930年にJarn&amp;amp;iacute;kがそれぞれ最小木問題を定式化しそのアルゴリズムを発表している（最小木問題に関する歴史は [4] が詳しい). その後,最小木問題に対する基本的なアルゴリズムとして[[クラスカル法]](Kruskal's algorithm) と[[プリム法]](Prim's algorithm) などが提案された. 現在までに提案されている主な効率的なアルゴリズムはこれらの二つのアルゴリズムのどちらかを基にデータ構造を工夫することによって構築されている([1]).  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　グラフ上の問題として基本的である最小木問題がいつ頃から考えられたのかは明らかではない. 分かっている範囲では, 1926年に&amp;lt;math&amp;gt;{Bor\breve{u}vka}\, &amp;lt;/math&amp;gt;が,またそれとは独立に, 1930年にJarn&amp;amp;iacute;kがそれぞれ最小木問題を定式化しそのアルゴリズムを発表している（最小木問題に関する歴史は [4] が詳しい). その後,最小木問題に対する基本的なアルゴリズムとして[[クラスカル法]](Kruskal's algorithm) と[[プリム法]](Prim's algorithm) などが提案された. 現在までに提案されている主な効率的なアルゴリズムはこれらの二つのアルゴリズムのどちらかを基にデータ構造を工夫することによって構築されている([1&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, 8&lt;/ins&gt;]).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　クラスカル法は, 1956年に J. B. Kruskal [6] により, またそれとは独立に1957年にH. LobermanとA. Weinbergerにより提案された[[多項式時間アルゴリズム]]である. アルゴリズムの概要は以下のとおりである. クラスカル法では，まず, 枝のない点集合&amp;lt;math&amp;gt;V\, &amp;lt;/math&amp;gt;のみからなる森&amp;lt;math&amp;gt;F=(V,\emptyset\, &amp;lt;/math&amp;gt;)を考え，次に, 閉路が発生しない限り枝の重みが小さい順に一本ずつ森&amp;lt;math&amp;gt;F\, &amp;lt;/math&amp;gt;に枝を加えるという操作を繰り返す. 森&amp;lt;math&amp;gt;F\, &amp;lt;/math&amp;gt;が全張木になった時点で繰り返しは終了し, 得られた&amp;lt;math&amp;gt;F\, &amp;lt;/math&amp;gt;が一つの最小木である.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　クラスカル法は, 1956年に J. B. Kruskal [6] により, またそれとは独立に1957年にH. LobermanとA. Weinbergerにより提案された[[多項式時間アルゴリズム]]である. アルゴリズムの概要は以下のとおりである. クラスカル法では，まず, 枝のない点集合&amp;lt;math&amp;gt;V\, &amp;lt;/math&amp;gt;のみからなる森&amp;lt;math&amp;gt;F=(V,\emptyset\, &amp;lt;/math&amp;gt;)を考え，次に, 閉路が発生しない限り枝の重みが小さい順に一本ずつ森&amp;lt;math&amp;gt;F\, &amp;lt;/math&amp;gt;に枝を加えるという操作を繰り返す. 森&amp;lt;math&amp;gt;F\, &amp;lt;/math&amp;gt;が全張木になった時点で繰り返しは終了し, 得られた&amp;lt;math&amp;gt;F\, &amp;lt;/math&amp;gt;が一つの最小木である.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　一方, プリム法は, 1957年, R. C. Prim [7] によって提案された多項式時間アルゴリズムである(Jarn&amp;amp;iacute;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;k法と同じ&lt;/del&gt;). プリム法では, まず, 任意の１点&amp;lt;math&amp;gt;v\, &amp;lt;/math&amp;gt;のみからなる木&amp;lt;math&amp;gt;T=(\{v\},\emptyset)\, &amp;lt;/math&amp;gt;を考え, 次に, グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;において現在の木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;の点集合と木以外の点集合を接続する枝集合の中から枝の重みが最も小さい枝とその端点を新たに木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;に加えるという操作を繰り返す. 木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;がグラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;の全張木になった時点で繰り返しは終了し, 得られた&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;が一つの最小木である.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　一方, プリム法は, 1957年, R. C. Prim [7] によって提案された多項式時間アルゴリズムである(Jarn&amp;amp;iacute;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;k法と同様&lt;/ins&gt;). プリム法では, まず, 任意の１点&amp;lt;math&amp;gt;v\, &amp;lt;/math&amp;gt;のみからなる木&amp;lt;math&amp;gt;T=(\{v\},\emptyset)\, &amp;lt;/math&amp;gt;を考え, 次に, グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;において現在の木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;の点集合と木以外の点集合を接続する枝集合の中から枝の重みが最も小さい枝とその端点を新たに木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;に加えるという操作を繰り返す. 木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;がグラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;の全張木になった時点で繰り返しは終了し, 得られた&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;が一つの最小木である.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　どちらのアルゴリズムも候補の枝集合から最小の重みの枝を選びながら最小木を構成していくという点から[[貪欲アルゴリズム]] (greedy algorithm) という種類に分類されるアルゴリズムである. クラスカル法とプリム法の違いは候補の枝集合の構成法にある. プリム法は与えられたグラフの点と枝の接続関係に強く依存したアルゴリズムであって, そのアルゴリズムの構造は最短路問題のダイクストラ法と全く同じである．一方, クラスカル法は，グラフの[[マトロイド]]構造にのみ依存したアルゴリズムであって, マトロイドの最小基問題に対する[[貪欲アルゴリズム]]へと一般化されている．逆に, このような貪欲アルゴリズムが最適解を見出す問題はマトロイド構造を持つことも知られている．&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　どちらのアルゴリズムも候補の枝集合から最小の重みの枝を選びながら最小木を構成していくという点から[[貪欲アルゴリズム]] (greedy algorithm) という種類に分類されるアルゴリズムである. クラスカル法とプリム法の違いは候補の枝集合の構成法にある. プリム法は与えられたグラフの点と枝の接続関係に強く依存したアルゴリズムであって, そのアルゴリズムの構造は最短路問題のダイクストラ法と全く同じである．一方, クラスカル法は，グラフの[[マトロイド]]構造にのみ依存したアルゴリズムであって, マトロイドの最小基問題に対する[[貪欲アルゴリズム]]へと一般化されている．逆に, このような貪欲アルゴリズムが最適解を見出す問題はマトロイド構造を持つことも知られている．&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　クラスカル法やプリム法のような貪欲アルゴリズムの考え方を用いたアルゴリズムは[[組合せ最適化]]の分野において数多く見受けられる. この貪欲アルゴリズムの考え方で解ける抽象的な組合せ最適化問題のクラスは[[マトロイド]]最適化問題と呼ばれ, そのクラスが持つ性質はマトロイド理論として組合せ最適化における多くの有用な知見を提供している.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　クラスカル法やプリム法のような貪欲アルゴリズムの考え方を用いたアルゴリズムは[[組合せ最適化]]の分野において数多く見受けられる. この貪欲アルゴリズムの考え方で解ける抽象的な組合せ最適化問題のクラスは[[マトロイド]]最適化問題と呼ばれ, そのクラスが持つ性質はマトロイド理論として組合せ最適化における多くの有用な知見を提供している&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[8]&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は無向グラフ上において定義された問題であるが, 枝の向きに依存した[[有向グラフ]]上の問題も考えられる. 有向グラフ上での全張木は，根と呼ばれる１点から他の点への有向道がその全張木上に存在するとき有向木 (directed tree) あるいは根つき木 (rooted tree) と呼ばれる. 枝の重みの総和が最小となる有向木を求める問題は無向グラフ上の最小木を求めるほど簡単ではないが, 多項式時間アルゴリズムが存在する.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は無向グラフ上において定義された問題であるが, 枝の向きに依存した[[有向グラフ]]上の問題も考えられる. 有向グラフ上での全張木は，根と呼ばれる１点から他の点への有向道がその全張木上に存在するとき有向木 (directed tree) あるいは根つき木 (rooted tree) と呼ばれる. 枝の重みの総和が最小となる有向木を求める問題は無向グラフ上の最小木を求めるほど簡単ではないが, 多項式時間アルゴリズムが存在する&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[8]&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は重み最小の全張木を求める問題であるが, 「全張木」を「ある与えられた点集合&amp;lt;math&amp;gt;S \subseteq V\, &amp;lt;/math&amp;gt;を連結化する木」と変更してみる. この変更された問題を[[シュタイナー最小木]]問題 (または, シュタイナー木問題) と呼び, その最適解をシュタイナー最小木と呼ぶ. 与えられた無向グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;の各枝の重みがすべて正である時, シュタイナー木の葉は点集合&amp;lt;math&amp;gt;S\, &amp;lt;/math&amp;gt;に属する点となり, 内点は点集合&amp;lt;math&amp;gt;S\, &amp;lt;/math&amp;gt;に属さない点（シュタイナー点と呼ばれる）をいくつか含む.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は重み最小の全張木を求める問題であるが, 「全張木」を「ある与えられた点集合&amp;lt;math&amp;gt;S \subseteq V\, &amp;lt;/math&amp;gt;を連結化する木」と変更してみる. この変更された問題を[[シュタイナー最小木]]問題 (または, シュタイナー木問題) と呼び, その最適解をシュタイナー最小木と呼ぶ. 与えられた無向グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;の各枝の重みがすべて正である時, シュタイナー木の葉は点集合&amp;lt;math&amp;gt;S\, &amp;lt;/math&amp;gt;に属する点となり, 内点は点集合&amp;lt;math&amp;gt;S\, &amp;lt;/math&amp;gt;に属さない点（シュタイナー点と呼ばれる）をいくつか含む.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tetsuyatominaga</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=5790&amp;oldid=prev</id>
		<title>Orsjwiki: &quot;《最小木問題》&quot; を保護しました。 [edit=sysop:move=sysop]</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=5790&amp;oldid=prev"/>
		<updated>2007-07-19T13:14:23Z</updated>

		<summary type="html">&lt;p&gt;&amp;quot;《最小木問題》&amp;quot; を保護しました。 [edit=sysop:move=sysop]&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2007年7月19日 (木) 13:14時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Orsjwiki</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=4791&amp;oldid=prev</id>
		<title>2007年7月15日 (日) 05:31に220.104.197.230による</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=4791&amp;oldid=prev"/>
		<updated>2007-07-15T05:31:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2007年7月15日 (日) 05:31時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''【さいしょうきもんだい (minimum spanning tree problem) 】'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''【さいしょうきもんだい (minimum spanning tree problem) 】'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　[[無向グラフ]]&amp;lt;math&amp;gt;G=(V,E)\, &amp;lt;/math&amp;gt;の各枝&amp;lt;math&amp;gt;e\in E\, &amp;lt;/math&amp;gt;に実数の重み&amp;lt;math&amp;gt;w(e)\, &amp;lt;/math&amp;gt;が与えられているとする. グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;上において全点&amp;lt;math&amp;gt;V\, &amp;lt;/math&amp;gt;を点集合とし[[木]]になっている部分グラフを全張木あるいは全域木(spanning tree)と呼ぶ. グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;上の全張木&amp;lt;math&amp;gt;T=(V,E_T)\, &amp;lt;/math&amp;gt;の重みは, &amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;上の枝の重みの総和&amp;lt;math&amp;gt;{\sum}_{e\in E_T}w(e)\, &amp;lt;/math&amp;gt;で定める. グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;上において重み最小の全張木を最小木 (minimum spaninng tree) といい, 最小木を求める問題を[[最小木問題]] (minimum spaninng tree problem) という.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　[[無向グラフ]]&amp;lt;math&amp;gt;G=(V,E)\, &amp;lt;/math&amp;gt;の各枝&amp;lt;math&amp;gt;e\in E\, &amp;lt;/math&amp;gt;に実数の重み&amp;lt;math&amp;gt;w(e)\, &amp;lt;/math&amp;gt;が与えられているとする. グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;上において全点&amp;lt;math&amp;gt;V\, &amp;lt;/math&amp;gt;を点集合とし[[木]]になっている部分グラフを全張木あるいは全域木(spanning tree)と呼ぶ. グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;上の全張木&amp;lt;math&amp;gt;T=(V,E_T)\, &amp;lt;/math&amp;gt;の重みは, &amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;上の枝の重みの総和&amp;lt;math&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\textstyle &lt;/ins&gt;{\sum}_{e\in E_T}w(e)\, &amp;lt;/math&amp;gt;で定める. グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;上において重み最小の全張木を最小木 (minimum spaninng tree) といい, 最小木を求める問題を[[最小木問題]] (minimum spaninng tree problem) という.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]).  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>220.104.197.230</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=1771&amp;oldid=prev</id>
		<title>2007年7月4日 (水) 11:52にOrsjwikiによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=1771&amp;oldid=prev"/>
		<updated>2007-07-04T11:52:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2007年7月4日 (水) 11:52時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''【さいしょうきもんだい (minimum spanning tree problem) 】'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''【さいしょうきもんだい (minimum spanning tree problem) 】'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　[[無向グラフ]]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;G=(V,E)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;の各枝&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;e\in E&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;に実数の重み&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;w(e)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;が与えられているとする. グラフ&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;G&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;上において全点&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;V&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;を点集合とし[[木]]になっている部分グラフを全張木あるいは全域木(spanning tree)と呼ぶ. グラフ&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;G&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;上の全張木&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;T=(V,E_T)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;の重みは, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;T&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;上の枝の重みの総和&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;\&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sum_&lt;/del&gt;{e\in E_T}w(e)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;で定める. グラフ&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;G&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;上において重み最小の全張木を最小木 (minimum spaninng tree) といい, 最小木を求める問題を[[最小木問題]] (minimum spaninng tree problem) という.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　[[無向グラフ]]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;G=(V,E)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;の各枝&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;e\in E&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;に実数の重み&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;w(e)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;が与えられているとする. グラフ&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;G&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;上において全点&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;V&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;を点集合とし[[木]]になっている部分グラフを全張木あるいは全域木(spanning tree)と呼ぶ. グラフ&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;G&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;上の全張木&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;T=(V,E_T)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;の重みは, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;T&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;上の枝の重みの総和&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;{&lt;/ins&gt;\&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;sum}_&lt;/ins&gt;{e\in E_T}w(e)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;で定める. グラフ&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;G&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;上において重み最小の全張木を最小木 (minimum spaninng tree) といい, 最小木を求める問題を[[最小木問題]] (minimum spaninng tree problem) という.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]).  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　グラフ上の問題として基本的である最小木問題がいつ頃から考えられたのかは明らかではない. 分かっている範囲では, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;1926年にBor●vkaが&lt;/del&gt;,またそれとは独立に, 1930年にJarn&amp;amp;iacute;kがそれぞれ最小木問題を定式化しそのアルゴリズムを発表している（最小木問題に関する歴史は [4] が詳しい). その後,最小木問題に対する基本的なアルゴリズムとして[[クラスカル法]](Kruskal's algorithm) と[[プリム法]](Prim's algorithm) などが提案された. 現在までに提案されている主な効率的なアルゴリズムはこれらの二つのアルゴリズムのどちらかを基にデータ構造を工夫することによって構築されている([1]).  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　グラフ上の問題として基本的である最小木問題がいつ頃から考えられたのかは明らかではない. 分かっている範囲では, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;1926年に&amp;lt;math&amp;gt;{Bor\breve{u}vka}\, &amp;lt;/math&amp;gt;が&lt;/ins&gt;,またそれとは独立に, 1930年にJarn&amp;amp;iacute;kがそれぞれ最小木問題を定式化しそのアルゴリズムを発表している（最小木問題に関する歴史は [4] が詳しい). その後,最小木問題に対する基本的なアルゴリズムとして[[クラスカル法]](Kruskal's algorithm) と[[プリム法]](Prim's algorithm) などが提案された. 現在までに提案されている主な効率的なアルゴリズムはこれらの二つのアルゴリズムのどちらかを基にデータ構造を工夫することによって構築されている([1]).  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　クラスカル法は, 1956年に J. B. Kruskal [6] により, またそれとは独立に1957年にH. LobermanとA. Weinbergerにより提案された[[多項式時間アルゴリズム]]である. アルゴリズムの概要は以下のとおりである. クラスカル法では，まず, 枝のない点集合&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;V&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;のみからなる森&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;F=(V,\emptyset)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;を考え，次に, 閉路が発生しない限り枝の重みが小さい順に一本ずつ森&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;F&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;に枝を加えるという操作を繰り返す. 森&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;F&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;が全張木になった時点で繰り返しは終了し, 得られた&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;F&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;が一つの最小木である.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　クラスカル法は, 1956年に J. B. Kruskal [6] により, またそれとは独立に1957年にH. LobermanとA. Weinbergerにより提案された[[多項式時間アルゴリズム]]である. アルゴリズムの概要は以下のとおりである. クラスカル法では，まず, 枝のない点集合&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;V&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;のみからなる森&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;F=(V,\emptyset&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;)を考え，次に, 閉路が発生しない限り枝の重みが小さい順に一本ずつ森&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;F&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;に枝を加えるという操作を繰り返す. 森&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;F&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;が全張木になった時点で繰り返しは終了し, 得られた&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;F&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;が一つの最小木である. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;　一方, プリム法は, 1957年, R. C. Prim [7] によって提案された多項式時間アルゴリズムである(Jarn&amp;amp;iacute;k法と同じ). プリム法では, まず, 任意の１点&amp;lt;math&amp;gt;v\, &amp;lt;/math&amp;gt;のみからなる木&amp;lt;math&amp;gt;T=(\{v\},\emptyset)\, &amp;lt;/math&amp;gt;を考え, 次に, グラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;において現在の木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;の点集合と木以外の点集合を接続する枝集合の中から枝の重みが最も小さい枝とその端点を新たに木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;に加えるという操作を繰り返す. 木&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;がグラフ&amp;lt;math&amp;gt;G\, &amp;lt;/math&amp;gt;の全張木になった時点で繰り返しは終了し, 得られた&amp;lt;math&amp;gt;T\, &amp;lt;/math&amp;gt;&lt;/ins&gt;が一つの最小木である.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　一方, プリム法は, 1957年, R. C. Prim [7] によって提案された多項式時間アルゴリズムである(Jarn&amp;amp;iacute;k法と同じ). プリム法では, まず, 任意の１点$v$のみからなる木$T=(\{v\},\emptyset)$を考え, 次に, グラフ$G$において現在の木$T$の点集合と木以外の点集合を接続する枝集合の中から枝の重みが最も小さい枝とその端点を新たに木$T$に加えるという操作を繰り返す. 木$T$がグラフ$G$の全張木になった時点で繰り返しは終了し, 得られた$T$が一つの最小木である. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　どちらのアルゴリズムも候補の枝集合から最小の重みの枝を選びながら最小木を構成していくという点から[[貪欲アルゴリズム]] (greedy algorithm) という種類に分類されるアルゴリズムである. クラスカル法とプリム法の違いは候補の枝集合の構成法にある. プリム法は与えられたグラフの点と枝の接続関係に強く依存したアルゴリズムであって, そのアルゴリズムの構造は最短路問題のダイクストラ法と全く同じである．一方, クラスカル法は，グラフの[[マトロイド]]構造にのみ依存したアルゴリズムであって, マトロイドの最小基問題に対する[[貪欲アルゴリズム]]へと一般化されている．逆に, このような貪欲アルゴリズムが最適解を見出す問題はマトロイド構造を持つことも知られている．&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　どちらのアルゴリズムも候補の枝集合から最小の重みの枝を選びながら最小木を構成していくという点から[[貪欲アルゴリズム]] (greedy algorithm) という種類に分類されるアルゴリズムである. クラスカル法とプリム法の違いは候補の枝集合の構成法にある. プリム法は与えられたグラフの点と枝の接続関係に強く依存したアルゴリズムであって, そのアルゴリズムの構造は最短路問題のダイクストラ法と全く同じである．一方, クラスカル法は，グラフの[[マトロイド]]構造にのみ依存したアルゴリズムであって, マトロイドの最小基問題に対する[[貪欲アルゴリズム]]へと一般化されている．逆に, このような貪欲アルゴリズムが最適解を見出す問題はマトロイド構造を持つことも知られている．&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot; &gt;17行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;17行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は無向グラフ上において定義された問題であるが, 枝の向きに依存した[[有向グラフ]]上の問題も考えられる. 有向グラフ上での全張木は，根と呼ばれる１点から他の点への有向道がその全張木上に存在するとき有向木 (directed tree) あるいは根つき木 (rooted tree) と呼ばれる. 枝の重みの総和が最小となる有向木を求める問題は無向グラフ上の最小木を求めるほど簡単ではないが, 多項式時間アルゴリズムが存在する.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は無向グラフ上において定義された問題であるが, 枝の向きに依存した[[有向グラフ]]上の問題も考えられる. 有向グラフ上での全張木は，根と呼ばれる１点から他の点への有向道がその全張木上に存在するとき有向木 (directed tree) あるいは根つき木 (rooted tree) と呼ばれる. 枝の重みの総和が最小となる有向木を求める問題は無向グラフ上の最小木を求めるほど簡単ではないが, 多項式時間アルゴリズムが存在する.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は重み最小の全張木を求める問題であるが, 「全張木」を「ある与えられた点集合&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;S \subseteq V&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;を連結化する木」と変更してみる. この変更された問題を[[シュタイナー最小木]]問題 (または, シュタイナー木問題) と呼び, その最適解をシュタイナー最小木と呼ぶ. 与えられた無向グラフ&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;G&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;の各枝の重みがすべて正である時, シュタイナー木の葉は点集合&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;S&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;に属する点となり, 内点は点集合&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;S&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$に属さない点 （シュタイナー点と呼ばれる） をいくつか含む&lt;/del&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　最小木問題は重み最小の全張木を求める問題であるが, 「全張木」を「ある与えられた点集合&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;S \subseteq V&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;を連結化する木」と変更してみる. この変更された問題を[[シュタイナー最小木]]問題 (または, シュタイナー木問題) と呼び, その最適解をシュタイナー最小木と呼ぶ. 与えられた無向グラフ&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;G&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;の各枝の重みがすべて正である時, シュタイナー木の葉は点集合&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;S&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;に属する点となり, 内点は点集合&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;S&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;に属さない点（シュタイナー点と呼ばれる）をいくつか含む&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　シュタイナー最小木問題は, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;S=V&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;の時に最小木問題と同一になり, また, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;|S|=2&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;かつ&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;w(e)&amp;gt;0&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;$&lt;/del&gt;の時は[[最短路問題]]と同一になるので, これらの基本的な問題の一般化として捉えることができる. 最小木問題や最短路問題には多項式時間アルゴリズムが存在するが, シュタイナー木問題は[[NP困難]]であることが示され, 多項式時間アルゴリズムの存在は絶望視されている. 問題を解く困難性は[[平面グラフ]]に限定した場合でも, また各枝の重みが等しい場合でも変わらない [3].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　シュタイナー最小木問題は, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;S=V&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;の時に最小木問題と同一になり, また, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;|S|=2&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;かつ&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;&lt;/ins&gt;w(e)&amp;gt;0&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\, &amp;lt;/math&amp;gt;&lt;/ins&gt;の時は[[最短路問題]]と同一になるので, これらの基本的な問題の一般化として捉えることができる. 最小木問題や最短路問題には多項式時間アルゴリズムが存在するが, シュタイナー木問題は[[NP困難]]であることが示され, 多項式時間アルゴリズムの存在は絶望視されている. 問題を解く困難性は[[平面グラフ]]に限定した場合でも, また各枝の重みが等しい場合でも変わらない [3].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　問題を解く困難性はあるが, シュタイナー最小木問題は通信ネットワーク, 電力供給網において顧客を結ぶネットワーク上の問題や施設配置問題などの子問題として多くの応用例を有する. その必要性からシュタイナー最小木問題に対して多くの近似解法が提案されてきている [5].  &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　問題を解く困難性はあるが, シュタイナー最小木問題は通信ネットワーク, 電力供給網において顧客を結ぶネットワーク上の問題や施設配置問題などの子問題として多くの応用例を有する. その必要性からシュタイナー最小木問題に対して多くの近似解法が提案されてきている [5].  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l26&quot; &gt;26行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;26行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''参考文献'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''参考文献'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Orsjwiki</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=1717&amp;oldid=prev</id>
		<title>122.26.167.76: 新しいページ: ''''【さいしょうきもんだい (minimum spanning tree problem) 】'''  　無向グラフ$G=(V,E)$の各枝$e\in E$に実数の重み$w(e)$が与えられていると...'</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E3%80%8A%E6%9C%80%E5%B0%8F%E6%9C%A8%E5%95%8F%E9%A1%8C%E3%80%8B&amp;diff=1717&amp;oldid=prev"/>
		<updated>2007-07-04T06:08:47Z</updated>

		<summary type="html">&lt;p&gt;新しいページ: &amp;#039;&amp;#039;&amp;#039;&amp;#039;【さいしょうきもんだい (minimum spanning tree problem) 】&amp;#039;&amp;#039;&amp;#039;  　&lt;a href=&quot;/orwiki/wiki/index.php?title=%E7%84%A1%E5%90%91%E3%82%B0%E3%83%A9%E3%83%95&quot; title=&quot;無向グラフ&quot;&gt;無向グラフ&lt;/a&gt;$G=(V,E)$の各枝$e\in E$に実数の重み$w(e)$が与えられていると...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''【さいしょうきもんだい (minimum spanning tree problem) 】'''&lt;br /&gt;
&lt;br /&gt;
　[[無向グラフ]]$G=(V,E)$の各枝$e\in E$に実数の重み$w(e)$が与えられているとする. グラフ$G$上において全点$V$を点集合とし[[木]]になっている部分グラフを全張木あるいは全域木(spanning tree)と呼ぶ. グラフ$G$上の全張木$T=(V,E_T)$の重みは, $T$上の枝の重みの総和$\sum_{e\in E_T}w(e)$で定める. グラフ$G$上において重み最小の全張木を最小木 (minimum spaninng tree) といい, 最小木を求める問題を[[最小木問題]] (minimum spaninng tree problem) という. &lt;br /&gt;
&lt;br /&gt;
　最小木問題は, [[クラスター分析]]やネットワーク・デザインなどの分野で利用されているが, より複雑な問題の子問題として活用されることの多い基本的な問題である([2]). &lt;br /&gt;
&lt;br /&gt;
　グラフ上の問題として基本的である最小木問題がいつ頃から考えられたのかは明らかではない. 分かっている範囲では, 1926年にBor●vkaが,またそれとは独立に, 1930年にJarn&amp;amp;iacute;kがそれぞれ最小木問題を定式化しそのアルゴリズムを発表している（最小木問題に関する歴史は [4] が詳しい). その後,最小木問題に対する基本的なアルゴリズムとして[[クラスカル法]](Kruskal's algorithm) と[[プリム法]](Prim's algorithm) などが提案された. 現在までに提案されている主な効率的なアルゴリズムはこれらの二つのアルゴリズムのどちらかを基にデータ構造を工夫することによって構築されている([1]). &lt;br /&gt;
&lt;br /&gt;
　クラスカル法は, 1956年に J. B. Kruskal [6] により, またそれとは独立に1957年にH. LobermanとA. Weinbergerにより提案された[[多項式時間アルゴリズム]]である. アルゴリズムの概要は以下のとおりである. クラスカル法では，まず, 枝のない点集合$V$のみからなる森$F=(V,\emptyset)$を考え，次に, 閉路が発生しない限り枝の重みが小さい順に一本ずつ森$F$に枝を加えるという操作を繰り返す. 森$F$が全張木になった時点で繰り返しは終了し, 得られた$F$が一つの最小木である. &lt;br /&gt;
&lt;br /&gt;
　一方, プリム法は, 1957年, R. C. Prim [7] によって提案された多項式時間アルゴリズムである(Jarn&amp;amp;iacute;k法と同じ). プリム法では, まず, 任意の１点$v$のみからなる木$T=(\{v\},\emptyset)$を考え, 次に, グラフ$G$において現在の木$T$の点集合と木以外の点集合を接続する枝集合の中から枝の重みが最も小さい枝とその端点を新たに木$T$に加えるという操作を繰り返す. 木$T$がグラフ$G$の全張木になった時点で繰り返しは終了し, 得られた$T$が一つの最小木である. &lt;br /&gt;
　&lt;br /&gt;
　どちらのアルゴリズムも候補の枝集合から最小の重みの枝を選びながら最小木を構成していくという点から[[貪欲アルゴリズム]] (greedy algorithm) という種類に分類されるアルゴリズムである. クラスカル法とプリム法の違いは候補の枝集合の構成法にある. プリム法は与えられたグラフの点と枝の接続関係に強く依存したアルゴリズムであって, そのアルゴリズムの構造は最短路問題のダイクストラ法と全く同じである．一方, クラスカル法は，グラフの[[マトロイド]]構造にのみ依存したアルゴリズムであって, マトロイドの最小基問題に対する[[貪欲アルゴリズム]]へと一般化されている．逆に, このような貪欲アルゴリズムが最適解を見出す問題はマトロイド構造を持つことも知られている．&lt;br /&gt;
&lt;br /&gt;
　クラスカル法やプリム法のような貪欲アルゴリズムの考え方を用いたアルゴリズムは[[組合せ最適化]]の分野において数多く見受けられる. この貪欲アルゴリズムの考え方で解ける抽象的な組合せ最適化問題のクラスは[[マトロイド]]最適化問題と呼ばれ, そのクラスが持つ性質はマトロイド理論として組合せ最適化における多くの有用な知見を提供している. &lt;br /&gt;
&lt;br /&gt;
　最小木問題は無向グラフ上において定義された問題であるが, 枝の向きに依存した[[有向グラフ]]上の問題も考えられる. 有向グラフ上での全張木は，根と呼ばれる１点から他の点への有向道がその全張木上に存在するとき有向木 (directed tree) あるいは根つき木 (rooted tree) と呼ばれる. 枝の重みの総和が最小となる有向木を求める問題は無向グラフ上の最小木を求めるほど簡単ではないが, 多項式時間アルゴリズムが存在する. &lt;br /&gt;
&lt;br /&gt;
　最小木問題は重み最小の全張木を求める問題であるが, 「全張木」を「ある与えられた点集合$S \subseteq V$を連結化する木」と変更してみる. この変更された問題を[[シュタイナー最小木]]問題 (または, シュタイナー木問題) と呼び, その最適解をシュタイナー最小木と呼ぶ. 与えられた無向グラフ$G$の各枝の重みがすべて正である時, シュタイナー木の葉は点集合$S$に属する点となり, 内点は点集合$S$に属さない点 （シュタイナー点と呼ばれる） をいくつか含む. &lt;br /&gt;
&lt;br /&gt;
　シュタイナー最小木問題は, $S=V$の時に最小木問題と同一になり, また, $|S|=2$かつ$w(e)&amp;gt;0$の時は[[最短路問題]]と同一になるので, これらの基本的な問題の一般化として捉えることができる. 最小木問題や最短路問題には多項式時間アルゴリズムが存在するが, シュタイナー木問題は[[NP困難]]であることが示され, 多項式時間アルゴリズムの存在は絶望視されている. 問題を解く困難性は[[平面グラフ]]に限定した場合でも, また各枝の重みが等しい場合でも変わらない [3].&lt;br /&gt;
&lt;br /&gt;
　問題を解く困難性はあるが, シュタイナー最小木問題は通信ネットワーク, 電力供給網において顧客を結ぶネットワーク上の問題や施設配置問題などの子問題として多くの応用例を有する. その必要性からシュタイナー最小木問題に対して多くの近似解法が提案されてきている [5]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''参考文献'''&lt;br /&gt;
&lt;br /&gt;
[1] R. K. Ahuja, T. L. Magnanti and J. B. Orlin, ''Network Flows: Theory, Algorithms, and Applications'', Prentice Hall, New Jersey, 1993.&lt;br /&gt;
&lt;br /&gt;
[2] R. K. Ahuja, T. L. Magnanti and J. B. Orlin, &amp;quot;Applications of Network Optimization,&amp;quot; in ''Network Models'', M. O, Ball, T. L. Magnanti, C. L. Monma and G. L. Nemhauser, eds., North-Holland, 1995.                            &lt;br /&gt;
&lt;br /&gt;
[3] M. R. Garey and D. S. Johnson, ''Computers and Intractability: A Guide to the Theory of NP-completeness'', Freeman, San Francisco,1979.&lt;br /&gt;
&lt;br /&gt;
[4] R. L. Graham and P. Hell, &amp;quot;On the history of minimum spanning tree problem,&amp;quot; ''Annals of the History of Computing'', '''7''' (1985), 43-57.   &lt;br /&gt;
&lt;br /&gt;
[5] F. W. Hwang, D. S. Richards and P. Winter, ''The Steiner Tree problem'', Annals of Discrete Mathematics 53, North-Holland, Amsterdam,1992.&lt;br /&gt;
&lt;br /&gt;
[6] J. B. Kruskal, &amp;quot;On the shortest spanning tree of a graph and the traveling salesman problem,&amp;quot; ''Proceedings of the American Mathematical Society'', '''7''' (1956), 48-50.   &lt;br /&gt;
&lt;br /&gt;
[7] R. C. Prim, &amp;quot;Shortest connection networks and some generalizations,&amp;quot; ''Bell System Technical Journal'', '''36''' (1957), 1389-1401.&lt;/div&gt;</summary>
		<author><name>122.26.167.76</name></author>
	</entry>
</feed>