<?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=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96</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=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96"/>
	<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;action=history"/>
	<updated>2026-04-16T17:02:04Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=9669&amp;oldid=prev</id>
		<title>Imahori: 基礎編と用語編のマージ</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=9669&amp;oldid=prev"/>
		<updated>2008-03-13T13:45:41Z</updated>

		<summary type="html">&lt;p&gt;基礎編と用語編のマージ&lt;/p&gt;
&lt;a href=&quot;https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;amp;diff=9669&amp;amp;oldid=8319&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>Imahori</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=8319&amp;oldid=prev</id>
		<title>2007年8月8日 (水) 11:30にKanda.kによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=8319&amp;oldid=prev"/>
		<updated>2007-08-08T11:30:02Z</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月8日 (水) 11:30時点における版&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-l2&quot; &gt;2行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;2行目:&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次計画問題, 多面体上の凸(非線形)関数最適化問題, 凸計画問題などがあり, 問題に応じた解法が考案されている.  一般的な問題にも適用できる解法としては, 逐次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次計画問題, 多面体上の凸(非線形)関数最適化問題, 凸計画問題などがあり, 問題に応じた解法が考案されている.  一般的な問題にも適用できる解法としては, 逐次2次計画法や内点法がある.&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;/table&gt;</summary>
		<author><name>Kanda.k</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=7463&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=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=7463&amp;oldid=prev"/>
		<updated>2007-07-20T02:57:20Z</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月20日 (金) 02:57時点における版&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=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=3538&amp;oldid=prev</id>
		<title>2007年7月12日 (木) 14:28に122.17.2.240による</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=3538&amp;oldid=prev"/>
		<updated>2007-07-12T14:28:35Z</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月12日 (木) 14:28時点における版&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;'''【せいやくつきさいてきか (constrained optimization)】'''&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;'''【せいやくつきさいてきか (constrained optimization)】'''&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;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;math&amp;gt;n\,&amp;lt;/math&amp;gt;次元ベクトル空間上の連続関数&amp;lt;math&amp;gt;f(x)\,&amp;lt;/math&amp;gt;を適当な&lt;/del&gt;(連続)&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;制約付き最適化とは&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ベクトル空間上の連続関数を適当な&lt;/ins&gt;(連続)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;集合上で最適化する問題およびその解法である&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;代表的な制約付き最適化問題には線形計画問題&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;2次計画問題&lt;/ins&gt;, 多面体上の凸(非線形)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;関数最適化問題&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;凸計画問題などがあり&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;問題に応じた解法が考案されている&lt;/ins&gt;.  &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;一般的な問題にも適用できる解法としては&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;逐次2次計画法や内点法がある&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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;\begin{array}{ll}&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 class=&quot;diffchange diffchange-inline&quot;&gt;\mbox{min}_x &amp;amp; f(x) \\&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 class=&quot;diffchange diffchange-inline&quot;&gt;\mbox{s. t&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;} &amp;amp; g_i(x) \le 0 \ (i=1&lt;/del&gt;,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;\ldots&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;m), &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 class=&quot;diffchange diffchange-inline&quot;&gt;\ \ \  h_j(x) = 0 \ (j=1,\ldots, l).&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 class=&quot;diffchange diffchange-inline&quot;&gt;\end{array}&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(1)}\,&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;代表的な制約付き最適化問題には (A) [[線形計画問題]] (linear programming); (B) [[2次計画問題]] (quadratic programming); (C) &lt;/del&gt;多面体上の凸(非線形)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;計画問題; (D) [[凸計画問題]] (convex programming); (E) (一般の)[[非線形計画問題]] (nonlinear programming)(&amp;lt;math&amp;gt;g, h, f\,&amp;lt;/math&amp;gt;が一般の非線形関数である場合);があり, 各問題の特徴を生かした解法が研究されている．以下では主として(E)の解法について述べる.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　問題(1)に対する[[ラグランジュ関数]] (Lagrangian function)を次のように定義する. &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;/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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;L(x,\lambda, \zeta) := f(x) + \sum_{i=1}^m \lambda_i g_i(x) &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 class=&quot;diffchange diffchange-inline&quot;&gt;+ \sum_{j=1}^l \zeta_j h_j(x).&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;解法は, 最適性の十分条件である[[カルーシュ・キューン・タッカー条件]] (Karush-Kuhn-Tucker condition)&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;/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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;\begin{array}{l}&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 class=&quot;diffchange diffchange-inline&quot;&gt;\nabla_x L(x,\lambda,\zeta)=0,  \\&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 class=&quot;diffchange diffchange-inline&quot;&gt;\lambda_i g_i(x) = 0 \qquad  (i=1, \ldots, m),  \\&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 class=&quot;diffchange diffchange-inline&quot;&gt;g_i(x) \leq 0, \ \lambda_i \geq 0 \qquad  (i=1, \ldots, m),  \\&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 class=&quot;diffchange diffchange-inline&quot;&gt;h_j(x) = 0 \qquad  (j=1, \ldots, l),  &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 class=&quot;diffchange diffchange-inline&quot;&gt;\end{array}&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(2)}\,&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;を満たす点(KKT点)を求めることを目的として設計される.探索方向を定め，その方向に適当なステップ幅だけ進むことを繰り返して漸近的にKKT点に収束する点列を生成する. 主な解法としては, (1) 射影勾配法 (gradient projection method)および有効制約法 (active set method); (2) [[ペナルティ関数法]] (penalty function method); (3) [[乗数法(数理計画の)]] (multiplier method); (4) [[逐次2次計画法]] (sequential quadratic programming method); (5) [[内点法]] (interior point method)が知られている. これらの内で実用性が高いとされるのは逐次2次計画法と内点法であるが, 制約領域が多面体である場合は有効制約法も用いられる.現状では, 逐次2次計画法により数百変数程度の中規模問題が&lt;/del&gt;, &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;/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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　射影勾配法は等式制約条件のみからなる最適化問題において, 実行可能領域の集合上に目的関数の勾配を射影してその(逆)方向に進む方法である [2]．有効制約法は不等式制約付き問題に対する射影勾配法の拡張である [2].&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　ペナルティ関数法は, 問題を無制約最適化問題に変換して解く方法であり,60年代に研究された[2, 4].この方法では, 目的関数に制約を満たさないことに対するペナルティ項を付加したペナルティ関数 (penalty function) を導入する. ペナルティ項が十分大きければ, ペナルティ関数を最小化することによって問題が近似的に解けるわけである. 典型的なペナルティ関数の一つは &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;/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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;F_\rho^{\rm P}(x) := f(x) + \rho_1 \max_i[0, g_i(x)]^2 + \rho_2 \|h(x)\|^2&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(3)}\,&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;である. &amp;lt;math&amp;gt;\rho = (\rho_1&lt;/del&gt;,&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;\rho_2)\,&amp;lt;/math&amp;gt;は正のパラメータでこれをペナルティパラメータと呼ぶ. 実際には, 大きな&amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;の値に対して&amp;lt;math&amp;gt;F_\rho^{\rm P}\,&amp;lt;/math&amp;gt;をいきなり最適化するのではなく, &amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;の値を徐々に大きくしながら&amp;lt;math&amp;gt;F_\rho^{\rm P}\,&amp;lt;/math&amp;gt;を無制約最適化するというステップを繰り返して問題を解く.&amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;が大きくなるにつれて&amp;lt;math&amp;gt;F_\rho^{\rm P}\,&amp;lt;/math&amp;gt;が悪条件になり無制約最適化が難しくなることが欠点とされる. 類似の方法で不等式制約を必ず満たすようにペナルティ項を付加したものは, 障壁関数法 (barrier function method)と呼ばれる.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　上に述べたペナルティ法の欠点を克服するために考えられたのが乗数法である [1, 3]. 乗数法は, 基本的には等式制約のみの問題を扱うための解法であり，&amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;の他にラグランジュ乗数(Lagrangian multiplier)&amp;lt;math&amp;gt;\zeta_i\,&amp;lt;/math&amp;gt;を導入して次のように定義される[[拡張ラグランジュ関数]] (augumented Lagrangian function)&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;/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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x) :=&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 class=&quot;diffchange diffchange-inline&quot;&gt;f(x) + \sum \zeta_j h_j(x) + \rho \|h(x)\|^2&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;の無制約最適化を行って問題を解くものである.&amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;が十分大きく&amp;lt;math&amp;gt;\zeta\,&amp;lt;/math&amp;gt;が元の問題のKKT点におけるラグランジュ乗数である時には, KKT点は&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x)\,&amp;lt;/math&amp;gt;の極小点になる. そこで，&amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;を十分に大きくとった上で, (i)適当な方法で&amp;lt;math&amp;gt;\zeta\,&amp;lt;/math&amp;gt;を推定し, (ii)&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x)\,&amp;lt;/math&amp;gt;を無制約最適化する; という2つのステップを繰り返すことで, &amp;lt;math&amp;gt;\rho\,&amp;lt;/math&amp;gt;を更新することなくKKT点に収束する解法が得られる. 不等式制約&amp;lt;math&amp;gt;g_i(x)\leq0\,&amp;lt;/math&amp;gt;を持つ問題に対しては, スラック変数&amp;lt;math&amp;gt;s_i\,&amp;lt;/math&amp;gt;を導入して&amp;lt;math&amp;gt;g_i(x) + s_i^2 = 0\,&amp;lt;/math&amp;gt; として, 等式制約に直した上でこの方法を適用すればよい. 乗数法は70年代に研究された.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　次に70年代後半から80年代に入って研究されたのが，逐次2次計画法である [2, 4, 6].逐次2次計画法では, 点&amp;lt;math&amp;gt;x^k\,&amp;lt;/math&amp;gt;において, ラグランジュ関数&amp;lt;math&amp;gt;L(x,\lambda,\zeta)\,&amp;lt;/math&amp;gt;を2次近似し, 制約条件を1次近似して得られる2次計画問題&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;/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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;\begin{array}{lll}&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 class=&quot;diffchange diffchange-inline&quot;&gt;\mbox{min}_x &amp;amp; \frac12 (x - x^k)^{\top} H^k (x-x^k) + (x-x^k)^{\top} \nabla f(x^k) &amp;amp; \\&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 class=&quot;diffchange diffchange-inline&quot;&gt;\mbox{s. t.} &amp;amp; g_i(x^k) + (x - x^k)^{\top} \nabla g_i(x^k) \le 0 &amp;amp; (i=1,\ldots,m),  \\&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 class=&quot;diffchange diffchange-inline&quot;&gt;                  &amp;amp; h_j(x^k)+ (x-x^k)^{\top} \nabla h_j(x^k) = 0 &amp;amp; (j=1, \ldots, l),&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 class=&quot;diffchange diffchange-inline&quot;&gt;\end{array}&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;を解いてその方向に進んで次の点&amp;lt;math&amp;gt;x^{k+1}\,&amp;lt;/math&amp;gt;を定める. ここで&amp;lt;math&amp;gt;H^k\,&amp;lt;/math&amp;gt;は&amp;lt;math&amp;gt;x^k\,&amp;lt;/math&amp;gt;における&amp;lt;math&amp;gt;L(x,\lambda,\zeta)\,&amp;lt;/math&amp;gt;の変数&amp;lt;math&amp;gt;x\,&amp;lt;/math&amp;gt;に関するヘッセ行列&amp;lt;math&amp;gt;\nabla_{xx}L\,&amp;lt;/math&amp;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;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 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 class=&quot;diffchange diffchange-inline&quot;&gt;　1984年の[[カーマーカー法]](Karmarkar method)の登場以来, 内点法はさまざまな制約付き最適化問題に拡張された[5]. 内点法には主内点法 (primal interior point method)と[[主双対内点法]] (primal-dual interiorpoint method)の2種類がある.主内点法は, 基本的には不等式制約条件のみの最適化問題を取り扱う方法で,不等式制約を厳密に満たす点から出発して対数障壁関数 (log barrier function) &amp;lt;math&amp;gt;F_\nu^{\rm B}(x) := f(x) - \nu \sum_i \log[ - g_i(x)]&amp;lt;/math&amp;gt;を逐次最小化して問題を解くものである.各&amp;lt;math&amp;gt;\nu&amp;gt;0&amp;lt;/math&amp;gt;に対して&amp;lt;math&amp;gt;F_\nu^{\rm B}\,&amp;lt;/math&amp;gt;を最小化する点が作る集合を中心曲線(central trajectory)という.&amp;lt;math&amp;gt;\nu\,&amp;lt;/math&amp;gt;を小さくしながら&amp;lt;math&amp;gt;F_\nu^{\rm B}(x)\,&amp;lt;/math&amp;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;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 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 class=&quot;diffchange diffchange-inline&quot;&gt;　現在主流となりつつある主双対内点法は, 線形計画問題に対するものを拡張した次のような方法である[7]. この方法では新たに正のパラメータ&amp;lt;math&amp;gt;\nu\,&amp;lt;/math&amp;gt;を導入し,カルーシュ・キューン・タッカー条件(2)の内, &amp;lt;math&amp;gt;\lambda_i g_i(x) = 0\,&amp;lt;/math&amp;gt;と&amp;lt;math&amp;gt;g_i(x) \leq 0\,&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;:&amp;lt;math&amp;gt;\lambda_i s_i = \nu, \ \ \ g_i(x) + s_i = 0,\ \ \ s_i \geq 0\ \ \ (i=1, ..., m)&amp;lt;/math&amp;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;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 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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;で置き換え, この条件を満たす点の集合を中心曲線とする. &amp;lt;math&amp;gt;\nu\,&amp;lt;/math&amp;gt;を小さくしながらニュートン法で中心曲線上の点を求めることを繰り返してKKT点に収束する点列を生成する.主双対内点法では，ラグランジュ乗数&amp;lt;math&amp;gt;\lambda_i\,&amp;lt;/math&amp;gt;を導入することでペナルティ関数などの欠点であったKKT点の近くでの悪条件を克服している. &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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　上述の各解法においてはKKT点や中心曲線上の点への近さを適当なメリット関数(merit function)で測り，各反復ではそれを減少させるようにステップ幅を選ぶ.  メリット関数は探索方向の生成法と並んで解法の設計上重要な要素である. 無制約最小化することで元の制約付き最適化問題のKKT点が得られるような関数を厳密ペナルティ関数(exact penalty function)という. ペナルティ関数(3)で項&amp;lt;math&amp;gt;\rho_1\max[0, g_i(x)]^2\,&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\rho_2\|h\|^2&amp;lt;/math&amp;gt;をそれぞれ&amp;lt;math&amp;gt;\rho_1\max[0, g_i(x)],\rho_2\|h\|_1&amp;lt;/math&amp;gt;で置き換えたものは&amp;lt;math&amp;gt;L_1\,&amp;lt;/math&amp;gt;厳密ペナルティ関数と呼ばれ, 乗数法や逐次2次計画法に対するメリット関数としてよく用いられる.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;　なお, 非線形関数の勾配やヘッセ行列の効率的な計算には高速自動微分法が有効であり，ヘッセ行列の近似行列を逐次構成する方法としては[[準ニュートン法]]がある. また, 線形計画問題に対する多項式内点法の理論は凸計画問題に拡張されている[5]. &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;/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;/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;/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 class=&quot;diffchange diffchange-inline&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;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;&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[1] D. P. Bertsekas: ''Nonlinear Programming'', Athena Scientific, 1997.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[2] R. Fletcher: ''Practical Methods of Optimization'', John Wiley, 1987.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[3] 藤田宏, 今野浩, 田邊國士:『最適化法』, 岩波書店, 1994.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[4] 福島雅夫:『数理計画入門』, 朝倉書店, 1996.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[5] Y. Nesterov and A. Nemirovskii: ''Interior Point Polynomial Algorithms in Convex Programming'', SIAM, 1994.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[6] J. Nocedal and S. Wright: ''Numerical Optimization'', Springer, 1999.&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;/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 class=&quot;diffchange diffchange-inline&quot;&gt;[7] 山下浩：「大規模システム最適化のためのアルゴリズム, モデリング, ソフトウェア」, 応用数理, '''6''' (1996), pp.26-38&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>122.17.2.240</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1634&amp;oldid=prev</id>
		<title>2007年7月3日 (火) 04:19にOrsjwikiによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1634&amp;oldid=prev"/>
		<updated>2007-07-03T04:19:26Z</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月3日 (火) 04:19時点における版&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-l31&quot; &gt;31行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;31行目:&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;/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;を満たす点(KKT点)を求めることを目的として設計される.探索方向を定め，その方向に適当なステップ幅だけ進むことを繰り返して漸近的にKKT点に収束する点列を生成する. 主な解法としては, (1) 射影勾配法 (gradient projection method)および有効制約法 (active set method); (2) [[ペナルティ関数法]] (penalty function method); (3) [[乗数法]] (multiplier method); (4) [[逐次2次計画法]] (sequential quadratic programming method); (5) [[内点法]] (interior point method)が知られている. これらの内で実用性が高いとされるのは逐次2次計画法と内点法であるが, 制約領域が多面体である場合は有効制約法も用いられる.現状では, 逐次2次計画法により数百変数程度の中規模問題が, さらに内点法によって数千, 数万変数の大規模問題がある程度解けるようになりつつある.  &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;を満たす点(KKT点)を求めることを目的として設計される.探索方向を定め，その方向に適当なステップ幅だけ進むことを繰り返して漸近的にKKT点に収束する点列を生成する. 主な解法としては, (1) 射影勾配法 (gradient projection method)および有効制約法 (active set method); (2) [[ペナルティ関数法]] (penalty function method); (3) [[乗数法&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(数理計画の)&lt;/ins&gt;]] (multiplier method); (4) [[逐次2次計画法]] (sequential quadratic programming method); (5) [[内点法]] (interior point method)が知られている. これらの内で実用性が高いとされるのは逐次2次計画法と内点法であるが, 制約領域が多面体である場合は有効制約法も用いられる.現状では, 逐次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;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]．有効制約法は不等式制約付き問題に対する射影勾配法の拡張である [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]．有効制約法は不等式制約付き問題に対する射影勾配法の拡張である [2].&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=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1615&amp;oldid=prev</id>
		<title>2007年6月29日 (金) 10:12に122.26.167.76による</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1615&amp;oldid=prev"/>
		<updated>2007-06-29T10:12:22Z</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年6月29日 (金) 10:12時点における版&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-l8&quot; &gt;8行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;8行目:&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;\mbox{s. t.} &amp;amp; g_i(x) \le 0 \ (i=1,\ldots, m),  &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;\mbox{s. t.} &amp;amp; g_i(x) \le 0 \ (i=1,\ldots, m),  &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;div&gt;\ \ \  h_j(x) = 0 \ (j=1,\ldots, l).&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;\ \ \  h_j(x) = 0 \ (j=1,\ldots, l).&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;\end{array}&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(1)}&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;\end{array}&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(1)}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&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;/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-l28&quot; &gt;28行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;28行目:&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;g_i(x) \leq 0, \ \lambda_i \geq 0 \qquad  (i=1, \ldots, m),  \\&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;g_i(x) \leq 0, \ \lambda_i \geq 0 \qquad  (i=1, \ldots, m),  \\&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;div&gt;h_j(x) = 0 \qquad  (j=1, \ldots, l),   &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;h_j(x) = 0 \qquad  (j=1, \ldots, l),   &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;\end{array}&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(2)}&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;\end{array}&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(2)}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&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;/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-l38&quot; &gt;38行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;38行目:&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;/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;F_\rho^{\rm P}(x) := f(x) + \rho_1 \max_i[0, g_i(x)]^2 + \rho_2 \|h(x)\|^2&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(3)}&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;:&amp;lt;math&amp;gt;F_\rho^{\rm P}(x) := f(x) + \rho_1 \max_i[0, g_i(x)]^2 + \rho_2 \|h(x)\|^2&amp;lt;/math&amp;gt;　　　　　&amp;lt;math&amp;gt;\mbox{(3)}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&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;/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;\rho = (\rho_1,\rho_2)&amp;lt;/math&amp;gt;は正のパラメータでこれをペナルティパラメータと呼ぶ. 実際には, 大きな&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;の値に対して&amp;lt;math&amp;gt;F_\rho^{\rm P}&amp;lt;/math&amp;gt;をいきなり最適化するのではなく, &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;の値を徐々に大きくしながら&amp;lt;math&amp;gt;F_\rho^{\rm P}&amp;lt;/math&amp;gt;を無制約最適化するというステップを繰り返して問題を解く.&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;が大きくなるにつれて&amp;lt;math&amp;gt;F_\rho^{\rm P}&amp;lt;/math&amp;gt;が悪条件になり無制約最適化が難しくなることが欠点とされる. 類似の方法で不等式制約を必ず満たすようにペナルティ項を付加したものは, 障壁関数法 (barrier function method)と呼ばれる.&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;\rho = (\rho_1,\rho_2)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;は正のパラメータでこれをペナルティパラメータと呼ぶ. 実際には, 大きな&amp;lt;math&amp;gt;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;の値に対して&amp;lt;math&amp;gt;F_\rho^{\rm P}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;をいきなり最適化するのではなく, &amp;lt;math&amp;gt;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;の値を徐々に大きくしながら&amp;lt;math&amp;gt;F_\rho^{\rm P}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を無制約最適化するというステップを繰り返して問題を解く.&amp;lt;math&amp;gt;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;が大きくなるにつれて&amp;lt;math&amp;gt;F_\rho^{\rm P}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;が悪条件になり無制約最適化が難しくなることが欠点とされる. 類似の方法で不等式制約を必ず満たすようにペナルティ項を付加したものは, 障壁関数法 (barrier function method)と呼ばれる.&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;　上に述べたペナルティ法の欠点を克服するために考えられたのが乗数法である [1, 3]. 乗数法は, 基本的には等式制約のみの問題を扱うための解法であり，&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;の他にラグランジュ乗数(Lagrangian multiplier)&amp;lt;math&amp;gt;\zeta_i&amp;lt;/math&amp;gt;を導入して次のように定義される[[拡張ラグランジュ関数]] (augumented Lagrangian function)&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;　上に述べたペナルティ法の欠点を克服するために考えられたのが乗数法である [1, 3]. 乗数法は, 基本的には等式制約のみの問題を扱うための解法であり，&amp;lt;math&amp;gt;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;の他にラグランジュ乗数(Lagrangian multiplier)&amp;lt;math&amp;gt;\zeta_i&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を導入して次のように定義される[[拡張ラグランジュ関数]] (augumented Lagrangian function)&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;/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-l50&quot; &gt;50行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;50行目:&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;/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;\rho&amp;lt;/math&amp;gt;が十分大きく&amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;が元の問題のKKT点におけるラグランジュ乗数である時には, KKT点は&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x)&amp;lt;/math&amp;gt;の極小点になる. そこで，&amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;を十分に大きくとった上で, (i)適当な方法で&amp;lt;math&amp;gt;\zeta&amp;lt;/math&amp;gt;を推定し, (ii)&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x)&amp;lt;/math&amp;gt;を無制約最適化する; という2つのステップを繰り返すことで, &amp;lt;math&amp;gt;\rho&amp;lt;/math&amp;gt;を更新することなくKKT点に収束する解法が得られる. 不等式制約&amp;lt;math&amp;gt;g_i(x)\leq0&amp;lt;/math&amp;gt;を持つ問題に対しては, スラック変数&amp;lt;math&amp;gt;s_i&amp;lt;/math&amp;gt;を導入して&amp;lt;math&amp;gt;g_i(x) + s_i^2 = 0&amp;lt;/math&amp;gt; として, 等式制約に直した上でこの方法を適用すればよい. 乗数法は70年代に研究された.&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;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;が十分大きく&amp;lt;math&amp;gt;\zeta&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;が元の問題のKKT点におけるラグランジュ乗数である時には, KKT点は&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;の極小点になる. そこで，&amp;lt;math&amp;gt;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を十分に大きくとった上で, (i)適当な方法で&amp;lt;math&amp;gt;\zeta&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を推定し, (ii)&amp;lt;math&amp;gt;F_{(\rho,\zeta)}^{\rm M}(x)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を無制約最適化する; という2つのステップを繰り返すことで, &amp;lt;math&amp;gt;\rho&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を更新することなくKKT点に収束する解法が得られる. 不等式制約&amp;lt;math&amp;gt;g_i(x)\leq0&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を持つ問題に対しては, スラック変数&amp;lt;math&amp;gt;s_i&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を導入して&amp;lt;math&amp;gt;g_i(x) + s_i^2 = 0&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt; として, 等式制約に直した上でこの方法を適用すればよい. 乗数法は70年代に研究された.&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;　次に70年代後半から80年代に入って研究されたのが，逐次2次計画法である [2, 4, 6].逐次2次計画法では, 点&amp;lt;math&amp;gt;x^k\,&amp;lt;/math&amp;gt;において, ラグランジュ関数&amp;lt;math&amp;gt;L(x,\lambda,\zeta)&amp;lt;/math&amp;gt;を2次近似し, 制約条件を1次近似して得られる2次計画問題&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;　次に70年代後半から80年代に入って研究されたのが，逐次2次計画法である [2, 4, 6].逐次2次計画法では, 点&amp;lt;math&amp;gt;x^k\,&amp;lt;/math&amp;gt;において, ラグランジュ関数&amp;lt;math&amp;gt;L(x,\lambda,\zeta)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を2次近似し, 制約条件を1次近似して得られる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;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-l62&quot; &gt;62行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;62行目:&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;/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;x^{k+1}&amp;lt;/math&amp;gt;を定める. ここで&amp;lt;math&amp;gt;H^k\,&amp;lt;/math&amp;gt;は&amp;lt;math&amp;gt;x^k\,&amp;lt;/math&amp;gt;における&amp;lt;math&amp;gt;L(x,\lambda,\zeta)&amp;lt;/math&amp;gt;の変数&amp;lt;math&amp;gt;x\,&amp;lt;/math&amp;gt;に関するヘッセ行列&amp;lt;math&amp;gt;\nabla_{xx}L&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;を解いてその方向に進んで次の点&amp;lt;math&amp;gt;x^{k+1}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を定める. ここで&amp;lt;math&amp;gt;H^k\,&amp;lt;/math&amp;gt;は&amp;lt;math&amp;gt;x^k\,&amp;lt;/math&amp;gt;における&amp;lt;math&amp;gt;L(x,\lambda,\zeta)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;の変数&amp;lt;math&amp;gt;x\,&amp;lt;/math&amp;gt;に関するヘッセ行列&amp;lt;math&amp;gt;\nabla_{xx}L&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&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;　1984年の[[カーマーカー法]](Karmarkar method)の登場以来, 内点法はさまざまな制約付き最適化問題に拡張された[5]. 内点法には主内点法 (primal interior point method)と[[主双対内点法]] (primal-dual interiorpoint method)の2種類がある.主内点法は, 基本的には不等式制約条件のみの最適化問題を取り扱う方法で,不等式制約を厳密に満たす点から出発して対数障壁関数 (log barrier function) &amp;lt;math&amp;gt;F_\nu^{\rm B}(x) := f(x) - \nu \sum_i \log[ - g_i(x)]&amp;lt;/math&amp;gt;を逐次最小化して問題を解くものである.各&amp;lt;math&amp;gt;\nu&amp;gt;0&amp;lt;/math&amp;gt;に対して&amp;lt;math&amp;gt;F_\nu^{\rm B}&amp;lt;/math&amp;gt;を最小化する点が作る集合を中心曲線(central trajectory)という.&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;を小さくしながら&amp;lt;math&amp;gt;F_\nu^{\rm B}(x)&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;　1984年の[[カーマーカー法]](Karmarkar method)の登場以来, 内点法はさまざまな制約付き最適化問題に拡張された[5]. 内点法には主内点法 (primal interior point method)と[[主双対内点法]] (primal-dual interiorpoint method)の2種類がある.主内点法は, 基本的には不等式制約条件のみの最適化問題を取り扱う方法で,不等式制約を厳密に満たす点から出発して対数障壁関数 (log barrier function) &amp;lt;math&amp;gt;F_\nu^{\rm B}(x) := f(x) - \nu \sum_i \log[ - g_i(x)]&amp;lt;/math&amp;gt;を逐次最小化して問題を解くものである.各&amp;lt;math&amp;gt;\nu&amp;gt;0&amp;lt;/math&amp;gt;に対して&amp;lt;math&amp;gt;F_\nu^{\rm B}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を最小化する点が作る集合を中心曲線(central trajectory)という.&amp;lt;math&amp;gt;\nu&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を小さくしながら&amp;lt;math&amp;gt;F_\nu^{\rm B}(x)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&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;　現在主流となりつつある主双対内点法は, 線形計画問題に対するものを拡張した次のような方法である[7]. この方法では新たに正のパラメータ&amp;lt;math&amp;gt;\nu&amp;lt;/math&amp;gt;を導入し,カルーシュ・キューン・タッカー条件(2)の内, &amp;lt;math&amp;gt;\lambda_i g_i(x) = 0&amp;lt;/math&amp;gt;と&amp;lt;math&amp;gt;g_i(x) \leq 0&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;　現在主流となりつつある主双対内点法は, 線形計画問題に対するものを拡張した次のような方法である[7]. この方法では新たに正のパラメータ&amp;lt;math&amp;gt;\nu&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を導入し,カルーシュ・キューン・タッカー条件(2)の内, &amp;lt;math&amp;gt;\lambda_i g_i(x) = 0&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;と&amp;lt;math&amp;gt;g_i(x) \leq 0&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&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;/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-l72&quot; &gt;72行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;72行目:&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;/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;\nu&amp;lt;/math&amp;gt;を小さくしながらニュートン法で中心曲線上の点を求めることを繰り返してKKT点に収束する点列を生成する.主双対内点法では，ラグランジュ乗数&amp;lt;math&amp;gt;\lambda_i&amp;lt;/math&amp;gt;を導入することでペナルティ関数などの欠点であったKKT点の近くでの悪条件を克服している.  &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;\nu&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を小さくしながらニュートン法で中心曲線上の点を求めることを繰り返してKKT点に収束する点列を生成する.主双対内点法では，ラグランジュ乗数&amp;lt;math&amp;gt;\lambda_i&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;を導入することでペナルティ関数などの欠点であったKKT点の近くでの悪条件を克服している.  &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;　上述の各解法においてはKKT点や中心曲線上の点への近さを適当なメリット関数(merit function)で測り，各反復ではそれを減少させるようにステップ幅を選ぶ.  メリット関数は探索方向の生成法と並んで解法の設計上重要な要素である. 無制約最小化することで元の制約付き最適化問題のKKT点が得られるような関数を厳密ペナルティ関数(exact penalty function)という. ペナルティ関数(3)で項&amp;lt;math&amp;gt;\rho_1\max[0, g_i(x)]^2&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\rho_2\|h\|^2&amp;lt;/math&amp;gt;をそれぞれ&amp;lt;math&amp;gt;\rho_1\max[0, g_i(x)],\rho_2\|h\|_1&amp;lt;/math&amp;gt;で置き換えたものは&amp;lt;math&amp;gt;L_1\,&amp;lt;/math&amp;gt;厳密ペナルティ関数と呼ばれ, 乗数法や逐次2次計画法に対するメリット関数としてよく用いられる.&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;　上述の各解法においてはKKT点や中心曲線上の点への近さを適当なメリット関数(merit function)で測り，各反復ではそれを減少させるようにステップ幅を選ぶ.  メリット関数は探索方向の生成法と並んで解法の設計上重要な要素である. 無制約最小化することで元の制約付き最適化問題のKKT点が得られるような関数を厳密ペナルティ関数(exact penalty function)という. ペナルティ関数(3)で項&amp;lt;math&amp;gt;\rho_1\max[0, g_i(x)]^2&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;\,&lt;/ins&gt;&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\rho_2\|h\|^2&amp;lt;/math&amp;gt;をそれぞれ&amp;lt;math&amp;gt;\rho_1\max[0, g_i(x)],\rho_2\|h\|_1&amp;lt;/math&amp;gt;で置き換えたものは&amp;lt;math&amp;gt;L_1\,&amp;lt;/math&amp;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;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-l83&quot; &gt;83行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;83行目:&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;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;[1] D.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;P.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;Bertsekas: ''Nonlinear Programming'', Athena Scientific, 1997.&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;[1] D. P. Bertsekas: ''Nonlinear Programming'', Athena Scientific, 1997.&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;[2] R.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;Fletcher: ''Practical Methods of Optimization'', John Wiley, 1987.&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;[2] R. Fletcher: ''Practical Methods of Optimization'', John Wiley, 1987.&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;[3] 藤田宏, 今野浩, 田邊國士:『最適化法』, 岩波書店, 1994.&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;[3] 藤田宏, 今野浩, 田邊國士:『最適化法』, 岩波書店, 1994.&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-l91&quot; &gt;91行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;91行目:&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;[4] 福島雅夫:『数理計画入門』, 朝倉書店, 1996.&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;[4] 福島雅夫:『数理計画入門』, 朝倉書店, 1996.&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;[5] Y.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;Nesterov and A.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;Nemirovskii: ''Interior Point Polynomial Algorithms in Convex Programming'', SIAM, 1994.&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;[5] Y. Nesterov and A. Nemirovskii: ''Interior Point Polynomial Algorithms in Convex Programming'', SIAM, 1994.&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;[6] J.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;Nocedal and S.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;~&lt;/del&gt;Wright: ''Numerical Optimization'', Springer, 1999.&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;[6] J. Nocedal and S. Wright: ''Numerical Optimization'', Springer, 1999.&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;[7] 山下浩：「大規模システム最適化のためのアルゴリズム, モデリング, ソフトウェア」, 応用数理, '''6''' (1996), pp.26-38.&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] 山下浩：「大規模システム最適化のためのアルゴリズム, モデリング, ソフトウェア」, 応用数理, '''6''' (1996), pp.26-38.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>122.26.167.76</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1600&amp;oldid=prev</id>
		<title>2007年6月29日 (金) 05:28にOrsjwikiによる</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1600&amp;oldid=prev"/>
		<updated>2007-06-29T05:28:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;amp;diff=1600&amp;amp;oldid=1579&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>Orsjwiki</name></author>
	</entry>
	<entry>
		<id>https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1579&amp;oldid=prev</id>
		<title>Orsjwiki: 新しいページ: 'せいやくつきさいてきか}{constrained optimization}  制約付き最適化とは, $n$次元ベクトル空間上の連続関数$f(x)$を適当な(連続)集合上...'</title>
		<link rel="alternate" type="text/html" href="https://orsj-ml.org/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&amp;diff=1579&amp;oldid=prev"/>
		<updated>2007-06-27T10:08:01Z</updated>

		<summary type="html">&lt;p&gt;新しいページ: &amp;#039;せいやくつきさいてきか}{constrained optimization}  &lt;a href=&quot;/orwiki/wiki/index.php?title=%E5%88%B6%E7%B4%84%E4%BB%98%E3%81%8D%E6%9C%80%E9%81%A9%E5%8C%96&quot; title=&quot;制約付き最適化&quot;&gt;制約付き最適化&lt;/a&gt;とは, $n$次元ベクトル空間上の連続関数$f(x)$を適当な(連続)集合上...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;せいやくつきさいてきか}{constrained optimization}&lt;br /&gt;
&lt;br /&gt;
[[制約付き最適化]]とは, $n$次元ベクトル空間上の連続関数$f(x)$を適当な(連続)集合上で最適化する問題で一般に次の形で記述される.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\begin{equation} \label{A-B-05+CO}&lt;br /&gt;
\begin{array}{ll}&lt;br /&gt;
\min_x &amp;amp; f(x) \\&lt;br /&gt;
\mbox{\rm{s. t.}} &amp;amp; g_i(x) \le 0 \ (i=1,\ldots, m), &lt;br /&gt;
\ \ \  h_j(x) = 0 \ (j=1,\ldots, l).&lt;br /&gt;
\end{array}&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
代表的な制約付き最適化問題には(A) [[線形計画問題]] (linear programming);(B) [[2次計画問題]] (quadratic programming);(C) 多面体上の凸(非線形)計画問題;(D) [[凸計画問題]] (convex programming);(E) (一般の)[[非線形計画問題]] (nonlinear programming)($g$, $h$, $f$が一般の非線形関数である場合);があり, 各問題の特徴を生かした解法が研究されている．以下では主として(E)の解法について述べる.&lt;br /&gt;
&lt;br /&gt;
　問題(1)に対する[[ラグランジュ関数]] (Lagrangian function)を次のように定義する. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L(x,\lambda, \zeta) := f(x) + \sum_{i=1}^m \lambda_i g_i(x) &lt;br /&gt;
+ \sum_{j=1}^l \zeta_j h_j(x). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
解法は, 最適性の十分条件である[[カルーシュ・キューン・タッカー条件]] (Karush-Kuhn-Tucker condition)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\begin{equation} \label{A-B-05+KKT}&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\nabla_x L(x,\lambda,\zeta)=0,  \\&lt;br /&gt;
\lambda_i g_i(x) = 0 \qquad  (i=1, \ldots, m),  \\&lt;br /&gt;
g_i(x) \leq 0, \ \lambda_i \geq 0 \qquad  (i=1, \ldots, m),  \\&lt;br /&gt;
h_j(x) = 0 \qquad  (j=1, \ldots, l),  &lt;br /&gt;
\end{array}&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
を満たす点(KKT点)を求めることを目的として設計される.探索方向を定め，その方向に適当なステップ幅だけ進むことを繰り返して漸近的にKKT点に収束する点列を生成する. 主な解法としては, (1) 射影勾配法 (gradient projection method)および有効制約法 (active set method);(2) [[ペナルティ関数法]] (penalty function method);(3) [[乗数法]] (multiplier method);(4) [[逐次2次計画法]] (sequential quadratic programming method);(5) [[内点法]] (interior point method)が知られている. これらの内で実用性が高いとされるのは逐次2次計画法と内点法であるが, 制約領域が多面体である場合は有効制約法も用いられる.現状では, 逐次2次計画法により数百変数程度の中規模問題が, さらに内点法によって数千, 数万変数の大規模問題がある程度解けるようになりつつある. &lt;br /&gt;
&lt;br /&gt;
　射影勾配法は等式制約条件のみからなる最適化問題において, 実行可能領域の集合上に目的関数の勾配を射影してその(逆)方向に進む方法である [2]．有効制約法は不等式制約付き問題に対する射影勾配法の拡張である [2].&lt;br /&gt;
&lt;br /&gt;
　ペナルティ関数法は, 問題を無制約最適化問題に変換して解く方法であり,60年代に研究された[2, 4].この方法では, 目的関数に制約を満たさないことに対するペナルティ項を付加したペナルティ関数 (penalty function) を導入する. ペナルティ項が十分大きければ, ペナルティ関数を最小化することによって問題が近似的に解けるわけである. 典型的なペナルティ関数の一つは  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\begin{equation}&lt;br /&gt;
F_\rho^{\rm P}(x) := f(x) + \rho_1 \max_i[0, g_i(x)]^2 + \rho_2 \|h(x)\|^2 &lt;br /&gt;
\label{A-B-05+PF}&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
である. $\rho = (\rho_1,\rho_2)$は正のパラメータでこれをペナルティパラメータと呼ぶ. 実際には, 大きな$\rho$の値に対して$F_\rho^{\rm P}$をいきなり最適化するのではなく, $\rho$の値を徐々に大きくしながら$F_\rho^{\rm P}$を無制約最適化するというステップを繰り返して問題を解く.$\rho$が大きくなるにつれて$F_\rho^{\rm P}$が悪条件になり無制約最適化が難しくなることが欠点とされる. 類似の方法で不等式制約を必ず満たすようにペナルティ項を付加したものは, 障壁関数法 (barrier function method)と呼ばれる.&lt;br /&gt;
&lt;br /&gt;
　上に述べたペナルティ法の欠点を克服するために考えられたのが乗数法である [1, 3]. 乗数法は, 基本的には等式制約のみの問題を扱うための解法であり，$\rho$の他にラグランジュ乗数(Lagrangian multiplier)$\zeta_i$を導入して次のように定義される[[拡張ラグランジュ関数]] (augumented Lagrangian function)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
F_{(\rho,\zeta)}^{\rm M}(x) :=&lt;br /&gt;
f(x) + \sum \zeta_j h_j(x) + \rho \|h(x)\|^2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
の無制約最適化を行って問題を解くものである.$\rho$が十分大きく$\zeta$が元の問題のKKT点におけるラグランジュ乗数である時には, KKT点は$F_{(\rho,\zeta)}^{\rm M}(x)$の極小点になる. そこで，$\rho$を十分に大きくとった上で, (i)適当な方法で$\zeta$を推定し, (ii)$F_{(\rho,\zeta)}^{\rm M}(x)$を無制約最適化する; という2つのステップを繰り返すことで, $\rho$を更新することなくKKT点に収束する解法が得られる. 不等式制約$g_i(x)\leq0$を持つ問題に対しては, スラック変数$s_i$を導入して$ g_i(x) + s_i^2 = 0 $として, 等式制約に直した上でこの方法を適用すればよい. 乗数法は70年代に研究された.&lt;br /&gt;
&lt;br /&gt;
　次に70年代後半から80年代に入って研究されたのが，逐次2次計画法である [2, 4, 6].逐次2次計画法では, 点$x^k$において, ラグランジュ関数$L(x,\lambda,\zeta)$を2次近似し, 制約条件を1次近似して得られる2次計画問題&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\begin{array}{lll}&lt;br /&gt;
\min_x &amp;amp; \frac12 (x - x^k)^{\top} H^k (x-x^k) + (x-x^k)^{\top} \nabla f(x^k) &amp;amp; \\&lt;br /&gt;
\mbox{\rm{s. t.}} &amp;amp; g_i(x^k) + (x - x^k)^{\top} \nabla g_i(x^k) \le 0 &amp;amp; (i=1,\ldots,m),  \\&lt;br /&gt;
                  &amp;amp; h_j(x^k)+ (x-x^k)^{\top} \nabla h_j(x^k) = 0 &amp;amp; (j=1, \ldots, l),&lt;br /&gt;
\end{array}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
を解いてその方向に進んで次の点$x^{k+1}$を定める. ここで$H^k$は$x^k$における$L(x,\lambda,\zeta)$の変数$x$に関するヘッセ行列$\nabla_{xx}L$あるいはその近似行列である. &lt;br /&gt;
&lt;br /&gt;
　1984年の[[カーマーカー法]](Karmarkar method)の登場以来, 内点法はさまざまな制約付き最適化問題に拡張された[5]. 内点法には主内点法 (primal interior point method)と[[主双対内点法]] (primal-dual interiorpoint method)の2種類がある.主内点法は, 基本的には不等式制約条件のみの最適化問題を取り扱う方法で,不等式制約を厳密に満たす点から出発して対数障壁関数 (log barrier function) $F_\nu^{\rm B}(x) := f(x) - \nu \sum_i \log[ - g_i(x)]$を逐次最小化して問題を解くものである.各$\nu&amp;gt;0$に対して$F_\nu^{\rm B}$を最小化する点が作る集合を中心曲線(central trajectory)という.$\nu$を小さくしながら$F_\nu^{\rm B}(x)$を[[ニュートン法]] によって最小化して中心曲線を追跡して問題を解く. 対数障壁関数は各不等式制約を定数倍する変換に対して不変であるという自然な性質を持つ. &lt;br /&gt;
&lt;br /&gt;
　現在主流となりつつある主双対内点法は, 線形計画問題に対するものを拡張した次のような方法である[7]. この方法では新たに正のパラメータ$\nu$を導入し,カルーシュ・キューン・タッカー条件(2)の内, $\lambda_i g_i(x) = 0$と$g_i(x) \leq 0$を, &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
\lambda_i s_i = \nu, \ \ \ g_i(x) + s_i = 0,\ \ \ s_i \geq 0\ \ \ (i=1, ..., m)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
で置き換え, この条件を満たす点の集合を中心曲線とする. $\nu$を小さくしながらニュートン法で中心曲線上の点を求めることを繰り返してKKT点に収束する点列を生成する.主双対内点法では，ラグランジュ乗数$\lambda_i$を導入することでペナルティ関数などの欠点であったKKT点の近くでの悪条件を克服している. &lt;br /&gt;
&lt;br /&gt;
　上述の各解法においてはKKT点や中心曲線上の点への近さを適当なメリット関数(merit function)で測り，各反復ではそれを減少させるようにステップ幅を選ぶ.  メリット関数は探索方向の生成法と並んで解法の設計上重要な要素である. 無制約最小化することで元の制約付き最適化問題のKKT点が得られるような関数を厳密ペナルティ関数(exact penalty function)という. ペナルティ関数(3)で項$\rho_1\max[0, g_i(x)]^2$, $\rho_2\|h\|^2$をそれぞれ$\rho_1\max[0, g_i(x)]$,$\rho_2\|h\|_1$で置き換えたものは$L_1$厳密ペナルティ関数と呼ばれ, 乗数法や逐次2次計画法に対するメリット関数としてよく用いられる.&lt;br /&gt;
&lt;br /&gt;
　なお, 非線形関数の勾配やヘッセ行列の効率的な計算には高速自動微分法が有効であり，ヘッセ行列の近似行列を逐次構成する方法としては[[準ニュートン法]]がある. また, 線形計画問題に対する多項式内点法の理論は凸計画問題に拡張されている[5]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[1] D.~P.~Bertsekas: ''Nonlinear Programming'', Athena Scientific, 1997.&lt;br /&gt;
&lt;br /&gt;
[2] R.~Fletcher: ''Practical Methods of Optimization'', John Wiley, 1987.&lt;br /&gt;
&lt;br /&gt;
[3] 藤田宏, 今野浩, 田邊國士:『最適化法』, 岩波書店, 1994.&lt;br /&gt;
&lt;br /&gt;
[4] 福島雅夫:『数理計画入門』, 朝倉書店, 1996.&lt;br /&gt;
&lt;br /&gt;
[5] Y.~Nesterov and A.~Nemirovskii: ''Interior Point Polynomial Algorithms in Convex Programming'', SIAM, 1994.&lt;br /&gt;
&lt;br /&gt;
[6] J.~Nocedal and S.~Wright: ''Numerical Optimization'', Springer, 1999.&lt;br /&gt;
&lt;br /&gt;
[7] 山下浩：「大規模システム最適化のためのアルゴリズム, モデリング, ソフトウェア」, 応用数理, '''6''' (1996), pp.~26--38.&lt;/div&gt;</summary>
		<author><name>Orsjwiki</name></author>
	</entry>
</feed>