<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Rendszeroptimaliz%C3%A1l%C3%A1s%2C_4._t%C3%A9tel</id>
	<title>Rendszeroptimalizálás, 4. tétel - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Rendszeroptimaliz%C3%A1l%C3%A1s%2C_4._t%C3%A9tel"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Rendszeroptimaliz%C3%A1l%C3%A1s,_4._t%C3%A9tel&amp;action=history"/>
	<updated>2026-05-17T17:32:07Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Rendszeroptimaliz%C3%A1l%C3%A1s,_4._t%C3%A9tel&amp;diff=139715&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoszak|RopiTetel4}}   ==!! A lineáris programozás dualitástétele (két alakban). A lineáris programozás alapfeladatának bonyolultsága (biz. n…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Rendszeroptimaliz%C3%A1l%C3%A1s,_4._t%C3%A9tel&amp;diff=139715&amp;oldid=prev"/>
		<updated>2012-10-22T09:44:30Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoszak|RopiTetel4}}   ==!! A lineáris programozás dualitástétele (két alakban). A lineáris programozás alapfeladatának bonyolultsága (biz. n…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoszak|RopiTetel4}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==!! A lineáris programozás dualitástétele (két alakban). A lineáris programozás alapfeladatának bonyolultsága (biz. nélkül). Egészértékű programozás: a feladat bonyolultsága, korlátozás és szétválasztás (Branch and Bound).==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;dualitas&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
===Dualitás===&lt;br /&gt;
&lt;br /&gt;
*Dualitás tétel*: ha Ax&amp;amp;le;b megoldható és cx felülről korlátos a megoldáshalmazon, akkor az yA=c, y&amp;amp;ge;0 egyenlőtlenségrendszer is megoldható, az yb célfüggvény alulról korlátos és max{cx:Ax&amp;amp;le;b} = min{yb:yA=c,y&amp;amp;ge;0} és a primál programnak létezik maximuma és a duális programnak létezik minimuma.&lt;br /&gt;
&lt;br /&gt;
*Biz.*:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Az 1. és a 3. feltétel ekvivalenciájából következik, hogy a két egyenlőtlenségrendszer ugyanakkor megoldható, és az ekvivalencia bizonyításából kijött, hogy sup{cx:Ax&amp;amp;le;b} &amp;amp;le; inf{yb:yA=c,y&amp;amp;ge;0}.&lt;br /&gt;
&amp;lt;li&amp;gt; Állítás: Tegyük fel, hogy A*x&amp;amp;le;b megoldható és t tetszőleges szám. Ha &amp;amp;not;&amp;amp;exist;x: Ax&amp;amp;le;b és cx&amp;amp;ge;t, akkor y*A=c, y&amp;amp;ge;0-nak van olyan megoldása, amire yb&amp;amp;lt;t.&amp;lt;br&amp;gt;&lt;br /&gt;
Biz.:Ezt írjuk fel egyben, mátrixos formában (leválasztjuk az utolsó sort, ezt &amp;amp;lambda;-val jelöljük):&lt;br /&gt;
&amp;lt;math&amp;gt; \left( \begin{array}{cc} y &amp;amp; \lambda \end{array} \right) \left( \begin{array}{c} A \\ -c \end{array} \right) \left( \begin{array}{c} b \\ -t \end{array} \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
A [[RopiTetel3#1_alak|Farkas-lemma 1. alakjából]] következik, hogy &amp;amp;exist;y,&amp;amp;lambda;: yA-&amp;amp;lambda;c=0, y&amp;amp;ge;0, &amp;amp;lambda;&amp;amp;ge;0 és yb-&amp;amp;lambda;t&amp;amp;lt;0.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lambda;&amp;amp;ne;0, mert akkor yA=0, y&amp;amp;ge;0, yb&amp;amp;lt;0 lenne, tehát a Farkas-lemma 1. alakja szerint Ax&amp;amp;le;b nem lenne megoldható. &amp;amp;lambda; csak pozitív lehet, le lehet vele osztani.&lt;br /&gt;
* yA-&amp;amp;lambda;c=0 &amp;lt;big&amp;gt;&amp;amp;hArr;&amp;lt;/big&amp;gt; (y/&amp;amp;lambda;)A=c&lt;br /&gt;
* y&amp;amp;ge;0 &amp;lt;big&amp;gt;&amp;amp;hArr;&amp;lt;/big&amp;gt; (y/&amp;amp;lambda;)&amp;amp;ge;0&lt;br /&gt;
* yb-&amp;amp;lambda;t&amp;amp;lt;0 &amp;lt;big&amp;gt;&amp;amp;hArr;&amp;lt;/big&amp;gt; (y/&amp;amp;lambda;)b&amp;amp;lt;t&lt;br /&gt;
Azaz y&amp;#039;=y/&amp;amp;lambda; választással a duális feladatnak egy t-nél kisebb megoldását kapjuk.&lt;br /&gt;
&amp;lt;li&amp;gt; Létezik a maximum. &amp;lt;br&amp;gt;&lt;br /&gt;
Legyen t=sup{cx:Ax&amp;amp;le;b}. Tegyük fel, hogy nem létezik maximum, azaz &amp;amp;not;&amp;amp;exist;x: Ax&amp;amp;le;b és cx&amp;amp;ge;t &amp;lt;big&amp;gt;&amp;amp;rArr;&amp;lt;/big&amp;gt; ... &amp;lt;big&amp;gt;&amp;amp;rArr;&amp;lt;/big&amp;gt; &amp;amp;exist;y&amp;#039;: y&amp;#039;A=c, y&amp;#039;&amp;amp;ge;0, y&amp;#039;b&amp;amp;lt;t. Mivel cx=(y&amp;#039;A)x=y&amp;#039;(Ax)=y&amp;#039;b&amp;lt;t, ezért ez ellentmondás, mert t-t úgy határoztuk meg, hogy minden cx-nél nagyobb. A duális feladat is egy LP feladat, ezért van minimuma.&lt;br /&gt;
&amp;lt;li&amp;gt; max{cx:Ax&amp;amp;le;b} = min{yb:yA=c,y&amp;amp;ge;0} &amp;lt;br&amp;gt;&lt;br /&gt;
max{cx:Ax&amp;amp;le;b} &amp;amp;le; min{yb:yA=c,y&amp;amp;ge;0}-t már beláttuk. Indirekt: Nem egyenlőség áll fent, és legyen t=min{yb:yA=c,y&amp;amp;ge;0}. Ekkor a primál programnak nincs cx&amp;amp;ge;t-t teljesítő megoldása. Az állítás miatt azonban a duál programnak van yb&amp;amp;lt;t megoldása, ami ellentmondás (t az yb minimuma, ezért nem lehet kisebb nála)&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Második alak*:&lt;br /&gt;
Ha a max{cx:Ax&amp;amp;le;b,x&amp;amp;ge;0} program megoldható és felülről korlátos, akkor a  min{yb:yA=c,y&amp;amp;ge;0} program is megoldható és alulról korlátos, a primál programnak létezik maximuma, a duál programnak létezik minimuma, és max{cx:Ax&amp;amp;le;b,x&amp;amp;ge;0} = min{yb:yA=c,y&amp;amp;ge;0}&lt;br /&gt;
&lt;br /&gt;
===Bonyolultságelméleti besorolás===&lt;br /&gt;
&lt;br /&gt;
* A &amp;amp;exist;?x: Ax&amp;amp;le;b, cx&amp;amp;ge;t feladat&lt;br /&gt;
** NP-beli, mert eldöntendő és x egy tanú. Valós mátrixnál nem triviális, hogy x polinom méretű.&lt;br /&gt;
** coNP-beli, mert a duális feladat megoldása egy tanú.&lt;br /&gt;
* A szimplex módszer átlagos esetben gyors, de nem P-beli.&lt;br /&gt;
* Az ellipszoid módszer lassú, de polinomiális.&lt;br /&gt;
&lt;br /&gt;
===Egészértékű programozás===&lt;br /&gt;
&lt;br /&gt;
* IP alapfeladata: max{cx:Ax&amp;amp;le;b, x&amp;amp;isin;&amp;lt;b&amp;gt;Z&amp;lt;/b&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;}&lt;br /&gt;
* IP alapfeladat duálisa: min{yb:yA=c, y&amp;amp;ge;0, y&amp;amp;isin;&amp;lt;b&amp;gt;Z&amp;lt;/b&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;}&lt;br /&gt;
* IP és DIP kapcsolata: max(IP)&amp;amp;le;max(LP)=min(DLP)&amp;amp;le;min(DIP)&lt;br /&gt;
&lt;br /&gt;
===Egészértékű programozás bonyolultsága===&lt;br /&gt;
&lt;br /&gt;
Az IP alapfeladatát át kell fogalmazni eldöntendővé: &amp;lt;br&amp;gt; Adott A,b,c,t. &amp;amp;exist;?x: Ax&amp;amp;le;b, cx&amp;amp;gt;t, x&amp;amp;isin;&amp;lt;b&amp;gt;Z&amp;lt;/b&amp;gt;&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;.&lt;br /&gt;
* IP&amp;amp;isin;NP, mert x egy tanú.&lt;br /&gt;
* IP&amp;amp;isin;?coNP. Nem tudjuk, mert nem igaz a dualitás tétele.&lt;br /&gt;
* IP&amp;amp;isin;NP-teljes&lt;br /&gt;
&lt;br /&gt;
*Biz.*: visszavezetjük rá a MAXFTLEN problémát. A gráf i. csúcsának megfeleltetjük az x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; változót. x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;=1, ha a csúcs benne van a maximális független csúcshalmazban, és 0, ha nem. A MAXFTLEN probléma a következő lineáris egyenlőtlenségrendszerrel írható le:&lt;br /&gt;
* &amp;amp;forall;i 0&amp;amp;le;x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;amp;le;1 és x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;amp;isin;&amp;lt;b&amp;gt;Z&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;amp;forall;e=uv élre x&amp;lt;sub&amp;gt;u&amp;lt;/sub&amp;gt;+x&amp;lt;sub&amp;gt;v&amp;lt;/sub&amp;gt;&amp;amp;le;1&lt;br /&gt;
* Maximalizáljuk &amp;amp;sum;x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;-t, azaz c=(1,1,...,1)&lt;br /&gt;
&lt;br /&gt;
===Branch and bound algoritmus===&lt;br /&gt;
&lt;br /&gt;
Tegyük fel, hogy a megoldáshalmaz beszorítható az f&amp;amp;le;x&amp;amp;le;g téglatestbe. Ekkor az IP feladat a következő formában írható fel: max{cx:Ax&amp;amp;le;b, f&amp;amp;le;x&amp;amp;le;g, x egész}. f és g lehet végtelen is, de akkor nem garantált, hogy leáll az algoritmus.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Nyilvántartjuk a lehetséges részfeladatok halmazát. Egy részfeladatot egy f és egy g vektor azonosít. &lt;br /&gt;
&amp;lt;li&amp;gt; LP relaxáció: kiválasztunk egy részfeladatot, eldobjuk az egészségi feltételt, és megoldjuk LP feladatként.&lt;br /&gt;
&amp;lt;li&amp;gt; Elágazás: ha az LP megoldása nem egész, kettébontjuk a téglatestet valamelyik koordináta mentén:&lt;br /&gt;
* f&amp;#039;=(f&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, f&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, ..., f&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;), g&amp;#039;=(g&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ..., g&amp;lt;sub&amp;gt;i-1&amp;lt;/sub&amp;gt;, t, g&amp;lt;sub&amp;gt;i+1&amp;lt;/sub&amp;gt;, ..., g&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;)&lt;br /&gt;
* f&amp;#039;&amp;#039;=(f&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ..., f&amp;lt;sub&amp;gt;i-1&amp;lt;/sub&amp;gt;, t+1, f&amp;lt;sub&amp;gt;i+1&amp;lt;/sub&amp;gt;, ..., f&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;), g&amp;#039;&amp;#039;=(g&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, g&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;, ..., g&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;)&lt;br /&gt;
Az &amp;amp;lt;f,g&amp;amp;gt; részfeladatot helyettesítjük &amp;amp;lt;f&amp;#039;,g&amp;#039;&amp;amp;gt;-vel és &amp;amp;lt;f&amp;#039;&amp;#039;,g&amp;#039;&amp;#039;&amp;amp;gt;-vel.&lt;br /&gt;
&amp;lt;li&amp;gt; Vágás: ha találtunk olyan egész megoldást, amire a célfüggvény értéke w, a w-nél kisebb-egyenlő felső becsléssel rendelkező ágak levághatók.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A következő részfeladatot érdemes LIFO elven választani (mélységi bejárás). Ennek oka, hogy a megoldás mélyen van a fában, és hogy a duál szimplex módszer hatékonyan kezeli az iteratívan bővülő egyenlőtlenségeket. A vágáshoz érdemes azt az x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; változót választani, ami a &amp;amp;bdquo;legkevésbé egészértékű&amp;amp;rdquo;. A vágás pozíciója t=[x&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;] lesz.&lt;br /&gt;
&lt;br /&gt;
-- [[PallosPeter|Peti]] - 2006.12.30.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoszak]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>