„Lineáris optimalizálás” változatai közötti eltérés

clean up AWB
a (Nemlineáris egybeírva és magyarul (nem non, sőt non non, nonono!) (kézi botszerkesztés))
(clean up AWB)
Egy mezőgazdasági üzemben a sertéseket burgonyával és répával hizlalják. A burgonya 3% fehérjét és 15% szénhidrátot, a répa 1% fehérjét és 10% szénhidrátot, és mind a kettő 2% ásványi sót tartalmaz. A sertéseknek naponta legalább 0,3 t fehérjét és 2,25 t szénhidrátot kell fogyasztani, de a táplálékban nem szabad 0,5 t-nál több ásványi sónak lennie. 1 t burgonya 100 márkába kerül, 1 t répa 50 márkába. Milyen <math>x</math> burgonya-és <math>y</math> répamennyiség használható fel, hogy a hizlalás a legolcsóbb legyen?
===Megoldás===
Először is felírjuk az adatokat egyenletek, illetve egyenlőtlenségek formájában. A hizlalás napi összköltsége ''K'', <math>x</math> és <math>y</math> függvénye. <math>K</math>-t '''célfüggvénynek''' nevezzük: <br /br> <math>K=K(x;y)=100x+50y</math>. <br /br> <math>K</math>-nak lehetőleg kicsinek kell lennie. Emellett azonban be kell tartani a mellékfeltételeket: a táplálékban legalább 0,3 t fehérjének és 2,25 t szénhidrátnak kell lennie, és nem szabad túl sok sót tartalmaznia. A százalékos adatokból tehát adódnak a '''mellékfeltételek''':<br /br>
<math>0,03x+0,01y \ge0,3</math> <br /br>
<math>0,15x+0,10y \ge2,25</math> <br /br>
<math>0,02x+0,02y \le0,5</math> <br /br>
Az <math>x</math> és <math>y</math> változók nemnegatívak,<br /br>
''(-negatív érték esetén a változó főegyütthatójának a negáltját kell venni-)''<br /br>
tehát érvényes a '''nemnegativitási feltétel''': <math>x \ge0</math>, <math>y \ge0</math>.
 
Az előbb kifejtett ellátási probléma általánosítható, ha a három táplálékféleségen kívül még tekintetbe kell venni például zsírt, vitaminokat. Ha ezenkívül még egyéb táplálékot is bevonunk, akkor általános lineáris optimalizációs problémát kapunk.
 
A lineáris optimalizáció minden feladata a következő '''normálalakba''' írható: adva van a <math>'''c'''=(c_1, c_2,..., c_n)</math> sorvektor, az '''A''' mátrix és az '''a''' oszlopvektor:<br /br>
<math>A=\left( \frac{a_{11}...a_{1n}}{a_{m1}...a_{mn}} \right)</math>, <math>a=\left( \frac{a_1}{a_m} \right)</math>.<br /br>
Keressük az <br /br>
<math>x=\left( \frac{x_1}{x_n} \right)</math> oszlopvektort a következő feltételek mellett:<br /br>
 
''<math>K=K(x_1, x_2, ..., x_n)=cx</math> <math>\rightarrow</math> minimum, <math>Ax \le a</math> és <math>x \ge 0</math>.''
 
A fenti példában ez így alakul: <br /br>
c=(100,50), <math>A=\begin{pmatrix} -0,03 & -0,01 \\ -0,15 & -0,10 \\ 0,02 & 0,02 \end{pmatrix}</math>, <math>a=\begin{pmatrix} -0,3 \\ -2,25 \\ 0,5 \end{pmatrix}</math>, <math>x=\begin{pmatrix} x \\ y \end{pmatrix}</math>.
 
265 012

szerkesztés