next up previous contents index
Next: Podsumowanie Up: Zredukowana metoda sympleksowa Previous: Zredukowana metoda sympleksowa   Spis rzeczy   Indeks


Macierzowy opis słownika

Dla potrzeb niniejszego rozdziału słownik który do tej pory zapisywaliśmy jako
(5.1) \begin{displaymath}
\begin{array}{lccclr}
x_i & = & b^*_i & - & \sum_{j \noti...
...z & = & z^* & + & \sum_{j \notin B}\bar{c}_j x_j
\end{array}
\end{displaymath}

gdzie $B$ jest zbiorem indeksów bazowych, będzie nam wygodniej zapisywać w postaci
(5.2) \begin{displaymath}
\begin{array}{rllllr}
\sum_{j \notin B}\bar{a}_{ij}x_j & ...
...&&z & = & z^* + & \sum_{j \notin B}\bar{c}_j x_j
\end{array}
\end{displaymath}

W szczególności pierwszy słownik jest postaci
(5.3) \begin{displaymath}
\begin{array}{rllllr}
\sum_{j \notin B}a_{ij}x_j & + x_i ...
...hline
&z & = & z^* + & \sum_{j \notin B}c_j x_j
\end{array}
\end{displaymath}

ponieważ zaś w pierwszym słowniku zbiór indeksów bazowych
$B=\{ n+1,...,n+m\}$, słownik ten wygląda następująco
(5.4) \begin{displaymath}
\begin{array}{rllllr}
\sum_{j=1}^na_{ij}x_j & + x_i & = b...
...\\ \hline
&z & = & z^* & + \sum_{j=1}^n c_j x_j
\end{array}
\end{displaymath}

W zapisie macierzowym to oczywiście
(5.5) \begin{displaymath}
\begin{array}{rclcl}
{\bf A}^*{\bf x} & = & {\bf b} \\ \hline
z & = & z^* & + & {\bf cx}_N
\end{array}
\end{displaymath}

gdzie

\begin{displaymath}{\bf A}^*=\left[
\begin{array}{ccccccc}
a_{11} & ... & a_{1...
...ay}{c} \
b_1 \\
.\\
.\\
.\\
b_m
\end{array}
\right],\end{displaymath}


\begin{displaymath}{\bf c}=[c_1,...,c_n],
{\bf x}=\left[\begin{array}{l}
x_1\...
...array}{c}
x_1\\
.\\
.\\
.\\
x_n
\end{array}
\right] \end{displaymath}

Ten sam słownik możemy zapisać także tak:
(5.6) \begin{displaymath}
\begin{array}{rcccc}
{\bf A}{\bf x}_N & + & {\bf I}_m{\bf...
... {\bf b} \\ \hline
z & = & z^* & + & {\bf cx}_N
\end{array}
\end{displaymath}

gdzie ${\bf I}_m$ jest macierzą jednostkową o $m$ wierszach i $m$ kolumnach, zaś

\begin{displaymath}{\bf x}_B = \left[
\begin{array}{l}
x_{n+1}\\
.\\
.\\
.\\
x_{n+m}
\end{array}
\right]
\end{displaymath}

Przykład 5.1   Czytelnik który rozwiązał ćwiczenie [*] stwierdził z pewnością, że z pierwszego słownika
(5.7) \begin{displaymath}
\begin{array}{lcrrrrrrcrl}
& 2x_1 - & x_2 + & x_3 + & x_4...
...z =& 2x_1 + & x_2 + & x_3&&&& \rightarrow & \max
\end{array}
\end{displaymath}

w którym rozwiązanie bazowe $x_1=x_2=x_3=0, \ x_4=12, \ x_5=10,\linebreak
x_6=-4$ nie jest rozwiązaniem dopuszczalnym, otrzymał słownik w którym rozwiązanie bazowe jest dopuszczalne, mianowicie
(5.8) \begin{displaymath}
\begin{array}{lrrrrrrrcr}
x_1 =& 4 - & x_2 + & x_3 + & x...
...& x_6 \\ \hline
z =& 8 - & x_2 - & x_3 + & 2x_6
\end{array}
\end{displaymath}

Zmiennymi bazowymi słownika ([*]) są $x_1, x_4$ i $x_5$. Macierzowo słownik ([*]) można zapisać następująco
(5.9) \begin{displaymath}
\begin{array}{lclcl}
{\bf x}_B & = & {\bf b}^* & - & {\bf...
...N \\ \hline
z& = & z^* & + & {\bf c}^*{\bf x}_N
\end{array}
\end{displaymath}

gdzie ${\bf P} = \left[
\begin{array}{rrr}
1 & -1 & -1 \\
-3 & 3 & 2 \\
1 & 2 & ...
...rray}{c}
4\\
4\\
6
\end{array}
\right], \ z^*=8, \ {\bf c}^* = [-1,-1,2]$, zaś ${\bf x}_N = \left[
\begin{array}{c}
x_2\\
x_3\\
x_6
\end{array}
\right] $

$\Box$. Jak można wyrazić słownik ([*]) przy pomocy słownika ([*]) lub ([*])? W tym celu wystarczy zauważyć następujące fakty:
  1. W macierzy ${\bf A}^*$ zmiennym bazowym $x_1, x_4, x_5$ odpowiadają pierwsza, czwarta i piąta kolumna.
  2. Pierwszy wiersz słownika ([*]) (to znaczy wszystko co ponad kreską w tym wzorze), można zapisać w postaci
    (5.10) \begin{displaymath}
{\bf A}_B{\bf x}_B + {\bf A}_N{\bf x}_N = {\bf b}
\end{displaymath}

    gdzie macierz ${\bf A}_B$ jest utworzona przez kolumny macierzy ${\bf A}^*$ odpowiadające zmiennym bazowym, zaś ${\bf A}_B$ powstaje z ${\bf A}^*$ przez wybranie kolumn odpowiadających zmiennym niebazowym. Wtedy ${\bf x}_B$ i ${\bf x}_N$ są utworzone, odpowiednio, ze współrzędnych będących bazowymi i niebazowymi współrzędnymi wektora ${\bf x}$.

Przykład 5.1 (c.d.)   Dla zmiennych bazowych $x_1, x_4, x_5$ mamy:

\begin{displaymath}{\bf A}_B = \left[
\begin{array}{ccc}
2 & 1 & 0 \\
1 & 0 ...
...[
\begin{array}{c}
x_2\\
x_3\\
x_6
\end{array}
\right] \end{displaymath}

Ponieważ w naszym przykładzie macierz ${\bf A}_B$ jest nieosobliwa, możemy z równania ([*]) obliczyć ${\bf x}_B$
(5.11) \begin{displaymath}
{\bf x}_B = {\bf A}_B^{-1} ({\bf b} - {\bf A}_N{\bf x_N})\ \
\end{displaymath}

Nieosobliwość macierzy ${\bf A}_B$ w przykładzie [*] nie jest przypadkowa. Udowodnimy następujące twierdzenie.

Twierdzenie 5.1   Jeśli dany jest słownik postaci
(5.12) \begin{displaymath}
\begin{array}{rclcl}
{\bf A}_B{\bf x}_B & = & {\bf b} & -...
...=
& {\bf c}_B{\bf x}_B & + & {\bf c}_N{\bf x}_N
\end{array}
\end{displaymath}

gdzie $ {\bf x}_B=[x_k]_{k\in B}, \ {\bf x}_N = [x_k]_{k \notin
B}$, $B$ - zbiór indeksów zmiennych bazowych, to macierz ${\bf A}_B$ jest nieosobliwa.

Dowód. Dla wykazania naszego twierdzenia wystarczy udowodnić, że równanie ${\bf A}_B{\bf x}_B = {\bf b}$ ma dokładnie jedno rozwiązanie.
Niesprzeczność równania ${\bf A}_B{\bf x}_B = {\bf b}$ jest oczywista: niech ${\bf x^*} $ będzie dopuszczalnym rozwiązaniem bazowym - czyli takim, że ${\bf x^*}_N={\bf0}$. Wstawiając ${\bf x^*} $ do ([*]) otrzymamy ${\bf A}_B{\bf x^*}_B = {\bf b}$. Przypuśćmy, że ${\bf\bar{x}}_B \in {\bf R^n}$ także spełnia równanie ${\bf A}_B{\bf\bar{x}}_B = {\bf b}$. Kładąc ${\bf\bar{x}}_N={\bf0}$ otrzymamy ${\bf A}{\bf\bar{x}} = {\bf A}_B{\bf\bar{x}}_B + {\bf A}_N{\bf\bar{x}}_N
= {\bf b}$.
Tak więc ${\bf\bar{x}}$ jest rozwiązaniem dopuszczalnym, co więcej, skoro $\bar{\bf x}_N={\bf0}$, jest to dopuszczalne rozwiązanie bazowe (dla zmiennych bazowych $(x_k)_{k\in B}$), czyli ${\bf\bar{x}}_B={\bf x}^*_B.$

Definicja 5.1   Macierz ${\bf B}={\bf A}_B$ powstałą z ${\bf A}$ przez usunięcie kolumn odpowiadających zmiennym niebazowym nazywamy macierzą bazową 5.1.

Oznaczmy przez $\tilde{\bf c}$ wektor $\tilde{\bf c}= (c_1,...,c_n,0,...,0)
=(\tilde{c}_1,...,\tilde{c}_{n+m})$. Niech ${\bf c}_N$ oznacza wektor ${\bf R^n}$ którego współrzędne są współrzędnymi wektora $\tilde{\bf c}$ odpowiadającymi zmiennym niebazowym, ${\bf c}_N = (\tilde{c}_i)_{i \notin B}$, zaś ${\bf c}_B$ niech będzie wektorem ${\bf R^n}$ którego współrzędne są współczynnikami przy zmiennych bazowych w funkcji celu (w wyjściowej postaci). Inaczej:

\begin{displaymath}{\bf c}_B = (\tilde{c}_j)_{j \in B} \end{displaymath}

We wzorze ([*]) możemy teraz zastąpić ${\bf cx}_N$ przez

\begin{displaymath}{\bf c}_B{\bf x}_B + {\bf c}_N{\bf x}_N \end{displaymath}

i otrzymamy

\begin{displaymath}z = z^* + {\bf c}_B{\bf x}_B + {\bf c}_N{\bf x}_N \end{displaymath}

Po zastąpieniu ${\bf x}_B$ przez ${\bf B}^{-1}({\bf b} - {\bf A}_N{\bf x}_N)$ otrzymamy

\begin{displaymath}
z=z^*+{\bf c}_B{\bf B}^{-1}({\bf b} - {\bf A}_N{\bf x}_N)+{\bf c}_N{\bf x}_N
\end{displaymath}


\begin{displaymath}
z=z^*+{\bf c}_B{\bf B}^{-1}{\bf b} + ({\bf c}_N - {\bf c}_B{\bf B}^{-1}{\bf A}_N){\bf x}_N \end{displaymath}

(gdzie ${\bf B}$ jest macierzą bazową).
Ostatecznie, postacią słownika przy bazie ${\bf B}$ jest
(5.13) \begin{displaymath}
\begin{array}{lcl}
{\bf x}_B & = & {\bf B}^{-1}({\bf b} -...
... c}_N - {\bf c}_B{\bf B}^{-1}{\bf A}_N){\bf x}_N
\end{array}
\end{displaymath}

Przykład 5.1 (dokończenie)   W ostatnim słowniku naszego przykładu jedynym współczynnikiem dodatnim funkcji celu jest współczynnik przy $x_6$. Zmienną wchodzącą będzie więc $x_6$. Równie łatwo zauważyć, że zmienną wychodzącą jest $x_4$. W nowym słowniku zmiennymi bazowymi będą więc $x_1, x_5$ i $x_6$, zmiennymi niebazowymi $x_2, x_3, x_4$. Wobec tego macierzą bazową ${\bf B}$ jest macierz złożona z pierwszej, piątej i szóstej kolumny macierzy

\begin{displaymath}{\bf A}= \left[
\begin{array}{rrrrrr}
2 & -1 & 1 & 1 & 0 & ...
... 0 & 1 & 0 \\
-1 & -1 & 1 & 0 & 0 & 1
\end{array}
\right]
\end{displaymath}

czyli

\begin{displaymath}
{\bf B}=\left[
\begin{array}{rrr}
2 & 0 & 0\\
1 & 1 & 0...
... & 1 & 1 \\
2 & 1 & 0 \\
-1 & 1 & 0
\end{array}
\right]
\end{displaymath}

${\bf c}_B=[2,0,0]$, ${\bf c}_N=[1,1,0]$.
Obliczmy najpierw wektor

\begin{displaymath}{\bf y} = {\bf c}_B{\bf B}^{-1} \end{displaymath}

z równania ${\bf yB}={\bf c}_B$

\begin{displaymath}[y_1,y_2,y_3]\left[
\begin{array}{rrr}
2 & 0 & 0\\
1 & 1 & 0\\
-1 & 0 & 1
\end{array}
\right] = [2,0,0] \end{displaymath}


\begin{displaymath}
\left\{
\begin{array}{rrrr}
2y_1 & + y_2 & -y_3 & =2\\
& y_2 &&=0\\
&& y_3 & =0
\end{array}
\right.
\end{displaymath}

$y_1=1, y_2=y_3=0$

\begin{displaymath}{\bf c}_B{\bf B}^{-1}{\bf A}_N = [1,0,0]
\left[
\begin{arra...
...\\
2 & 1 & 0 \\
-1 & 1 & 0
\end{array} \right] = [-1,1,1] \end{displaymath}


\begin{displaymath}{\bf c}_N - {\bf c}_B{\bf B}^{-1}{\bf A}_N = [1,1,0] - [-1,1,1] =
[2,0,-1] \end{displaymath}

Stąd oczywiście zmienną wchodzącą jest koniecznie $x_2$ (jedyną dodatnią współrzędną wektora $[2,0,-1]$ jest $2$, współrzędna odpowiadająca zmiennej $x_2$).
Źeby wyznaczyć zmienną wychodzącą, musimy w pierwszym równaniu ([*]) wyznaczyć wektor ${\bf B}^{-1}{\bf b}$ i pierwszą kolumnę (tę odpowiadającą zmiennej $x_2$) macierzy ${\bf B}^{-1}{\bf A}_N$.

\begin{displaymath}
\left\{
\begin{array}{rrrr}
2a &&& = 12\\
a & +b & & =10\\
-a && +c & =-4
\end{array}
\right. \end{displaymath}

$a=6, \ b = 4, \ c = 2,$ a więc

\begin{displaymath}
{\bf B}^{-1}{\bf b} = \left[
\begin{array}{c}
6\\
4\\
2
\end{array} \right] \end{displaymath}

Z kolei pierwszą kolumną $\left[ \begin{array}{c} k_1 \\ k_2 \\ k_3 \end{array}
\right]$ macierzy ${\bf D}={\bf B}^{-1}{\bf A}_N$ wyznaczymy z równania ${\bf BD}={\bf A}_N$, a więc

\begin{displaymath}
\left[
\begin{array}{rrr}
2 & 0 & 0 \\
1 & 1 & 0 \\
-...
...left[ \begin{array}{r}
-1 \\
2 \\
-1
\end{array} \right] \end{displaymath}

(po lewej stronie tej równości jest iloczyn macierzy ${\bf B}$ przez pierwszą kolumnę macierzy ${\bf D}={\bf B}^{-1}{\bf A}_N$, z prawej pierwsza kolumna ${\bf A}_N$).

\begin{displaymath}
\left\{
\begin{array}{rrrrr}
2k_1 &&& =&-1\\
k_1 & + k_2 && =&2\\
-k_1 && + k_3 & =& -1
\end{array}
\right.
\end{displaymath}

$k_1= -\frac{1}{2}$, $k_2=\frac{5}{2}$, $k_3 = - \frac{3}{2}$.
Pomijając nieistotne dla nas zmienne niebazowe $x_3$ i $x_4$ równanie ${\bf x}_B={\bf B}^{-1}{\bf b} - {\bf B}^{-1}{\bf A}_N{\bf x}_N$ słownika ([*]) oznacza w w naszym przypadku

\begin{displaymath}
\begin{array}{rcrr}
x_1 & = & 6 + \frac{1}{2}x_2 & ...\\ 
...
...x_2 & ...\\
x_6 & = & 2 + \frac{3}{2}x_2 & ...
\end{array}
\end{displaymath}

Jedynym współczynnikiem ujemnym przy $x_2$ jest $-\frac{5}{2}$ i zmienną wychodząca jest $x_5$.
Tak więc nowymi zmiennmi bazowymi są
$x_1,x_2,x_6$, a zmiennymi niebazowymi
$x_3,x_4,x_5$. Nowe macierze i wektory ${\bf B}, {\bf A}_N, {\bf c}_B,
{\bf c}_N$ to teraz
${\bf B} = \left[ \begin{array}{rrr}
2 & -1 & 0 \\
1 & 2 & 0\\
-1 & -1 & 1
...
...& 1 \\
1 & 0 & 0
\end{array} \right], {\bf c}_B=[2,1,0], {\bf c}_N=[1,0,0]. $
Znowu liczymy ${\bf y}=[y_1,y_2,y_3]$ z równania ${\bf y}={\bf c}_B{\bf B}^{-1}$, czyli ${\bf y}{\bf B}={\bf c}_B$.


\begin{displaymath}[y_1,y_2,y_3]\left[\begin{array}{rrr}2 & -1 & 0 \\ 1 & 2 & 0 \\ -1 & -1 & 1
\end{array}\right] = [2,1,0] \end{displaymath}


\begin{displaymath}\left\{\begin{array}{rrrrl}
2y_1 & + 2y_2 & - y_3 & = 2\\
-y_1 & +2y_2 & -y_3 & =1 \\
&& y_3 & = 0
\end{array} \right.\end{displaymath}


\begin{displaymath}\left\{\begin{array}{rrl}
-y_1 & + 2y_2 & =1 \\ & 5y_2 & =4\end{array}\right.\end{displaymath}


\begin{displaymath}y_2=\frac{4}{5}, \ \ y_1 = \frac{8}{5}-1 = \frac{3}{5} \end{displaymath}

Teraz liczymy ${\bf c}_B{\bf B}^{-1}{\bf A}_N = {\bf y}{\bf A}_N =
[\frac{3}{5},\frac{4}{5},...
...0 & 1 \\ 1 & 0 & 0\end{array}\right] =
[\frac{7}{5}, \frac{3}{5},\frac{4}{5}]$
i ostatecznie otrzymamy

\begin{displaymath}{\bf c}_N - {\bf c}_B{\bf B}^{-1}{\bf A}_N = [1,0,0]-
[\fra...
...{3}{5},\frac{4}{5}] =
[-\frac{2}{5},-\frac{3}{5}-\frac{4}{5}]\end{displaymath}

Stąd oczywiście wniosek, że nasze rozwiązanie bazowe jest optymalne.
W rozwiązaniu tym oczywiście $x_3=x_4=x_5=0$. Czytelnik zechce sprawdzić, że wartościami zmiennych bazowych $x_1, x_2$ i $x_6$ z równania

\begin{displaymath}\left[
\begin{array}{c}x_1\\ x_2\\ x_6 \end{array} \right]
= {\bf B}^{-1}{\bf b} \end{displaymath}

$x_1=\frac{34}{5}, x_2= \frac{8}{5}, x_6=0$ i wartością optymalną funkcji celu jest
$z=z^*+{\bf c}_B{\bf B}^{-1}{\bf b}=0+[\frac{3}{5},\frac{4}{5},0]
\left[ \begin...
...2\\ 10 \\ -4 \end{array} \right]
= \frac{36}{5} + \frac{40}{5} = \frac{76}{5}$.
next up previous contents index
Next: Podsumowanie Up: Zredukowana metoda sympleksowa Previous: Zredukowana metoda sympleksowa   Spis rzeczy   Indeks