-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlecture7.tex
165 lines (137 loc) · 6.21 KB
/
lecture7.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
\section{Семинар 7}
\subsection{Симплекс метод}
\[
\begin{cases}
A \in \R_{m \times n}\\
A x \leq b\\
x \in \R^n_+\\
c^T x \to \max
\end{cases}
\]
Паралельно будем показывать пример
\[
\begin{cases}
x_1, x_2 \in \R_+\\
x_1 - x_2 \leq 2\\
2x_1 - x_2 \leq 6\\
3x_1 + 2 x_2 \leq 23\\
2x_1 + x_2 \to \max
\end{cases}
\]
Сделаем довольно интресный переход к \emph{канонической форме}
\[
\begin{cases}
x_1, x_2, x_3, x_4, x_5 \in \R\\
x_3 = -x_1 + x_2 + 2\\
x_4 = -2x_1 + x_2 + 6\\
x_5 = -3x_1 - 2x_2 + 23\\
2 x_1 + x_2 \to \max
\end{cases}
\]
$x_3, x_4, x_5$ называются базисными, и они не встречаются с другой стороны от равенства.
Другие переменные называются не базисными.
В любой момент времение у нас в Симплекс-методе будет содержать $m$ базисных и $n$ не базисных
\subsubsection{Шаг симплекс алгоритма}
Для канонической формы назовем \emph{базисным решением}, такое решение, что все не базисным переменные равны 0
Для нашей задачи это: $\left(0, 0, 2, 6, 23\right)$.
Текущее преположение: $b \leq 0$. Оно гарантирует следующий факт: начальное базисное решение -- допустимо.
Будем шевелить $x_1$ увеличивая остальные не базисные не трогаем, тогда ограничения на $x_1$:
\[
\begin{cases}
x_1 \leq 2\\
x_1 \leq 3\\
x_1 \leq \frac{23}{3}
\end{cases}
\]
Самое жесткое ограничение из-за $x_3$. Перекинем $x_1$ и $x_3$ тогда
\[
\begin{cases}
x_1 = -x_3 + x_2 + 2\\
x_4 = -2x_1 + x_2 + 6\\
x_5 = -3x_1 - 2x_2 + 23\\
\end{cases} \to
\begin{cases}
x_1 = -x_3 + x_2 + 2\\
x_4 = 2x_3 - x_2 + 2\\
x_5 = 3x_3 - 5x_2 + 17\\
-2x_3 + 3 x_2 + 4 \to \max\\
\end{cases}
\]
Новое БР: $\left(2, 0, 0, 2, 17\right)$
За счет того что мы всегда берем самое жесткое ограничение то БР тоже допустимо.
Ну и текущий оптимум это 4.
Поехали делать это для $x_2$:
\[
\begin{cases}
x_2 \leq \infty\\
x_2 \leq 2\\
x_2 \leq \frac{17}{5}\\
\end{cases}
\]
Значит свапаем $x_2, x_4$($x_2$ -- вводимое и $x_4$ выводимое)
\[
\begin{cases}
x_1 = -x_3 + x_2 + 2\\
x_2 = 2x_3 - x_4 + 2\\
x_5 = 3x_3 - 5x_2 + 17\\
-2x_3 + 3 x_2 + 4 \to \max\\
\end{cases} \to
\begin{cases}
x_1 = x_3 - x_4 + 4\\
x_2 = 2x_3 - x_4 + 2\\
x_5 = -7x_3 + 5x_4 + 7\\
4x_3 - 3 x_4 + 10 \to \max\\
\end{cases}
\]
БР -- $\left(4, 2, 0, 0, 7\right)$
\[\begin{cases}
x_3 \leq \infty\\
x_3 \leq \infty\\
x_3 \leq 1\\
\end{cases}\]
Меняем $x_3, x_5$:
\[
\begin{cases}
x_1 = x_3 - x_4 + 4\\
x_2 = 2x_3 - x_4 + 2\\
x_5 = -7x_3 + 5x_4 + 7\\
4x_3 - 3 x_4 + 10 \to \max\\
\end{cases}\to
\begin{cases}
x_3 = -\frac17 x_5 - \frac27 x_4 + 5\\
x_1 = -\frac17 x_5 + \frac57 x_4 + 1\\
x_2 = -\frac27 x_5 + \frac37 x_4 + 4\\
-\frac47 x_5 -\frac17 x_4 + 14 \to \max\\
\end{cases}
\]
БР: $(5, 4, 1, 0, 0)$ и очевидно, что $-\frac47 x_5 -\frac17 x_4 + 14 \leq 14$, значит БР оптимально.
\subsubsection{Рубрика утверждения без доказательства}
Если у меня есть ограничение которое можно увеличивать хоть чуть-чуть то увеличиваем
Иначе это вырожденное решение, делаем следующее: $(i, j)$ -- пара свопов допустимая, минимальная лексикографически.
Правило Бленда, в общих чертах -- рассмотрим множество базисных переменнных, это сочетания, они вжух там увеличиваются
Не ну ежу понятно что это тетта, даже Глеб бы справился.
\subsubsection{Kek trick}
\[
\begin{cases}
x_{n + 1} = (a_{1, 1}x_1 + \dots a_{1, n} x_n) + b_1\\
x_{n + 2} = (a_{2, 1}x_1 + \dots a_{2, n} x_n) + b_2\\
\dots\\
x_{n + m} = (a_{m, 1}x_1 + \dots a_{m, n} x_n) + b_m\\
c_1 x_1 + \dots + c_n x_n \to \max
\end{cases}\to
\begin{cases}
x_{n + 1} = (a_{1, 1}x_1 + \dots a_{1, n} x_n) + \lambda + b_1\\
x_{n + 2} = (a_{2, 1}x_1 + \dots a_{2, n} x_n) + \lambda + b_2\\
\dots\\
x_{n + m} = (a_{m, 1}x_1 + \dots a_{m, n} x_n) + \lambda + b_m\\
-\lambda \to \max
\end{cases}
\]
Новая система называются \emph{вспомогательной или присоединенной системой}
Она всегда совместна, и $\lambda = 0 \Leftrightarrow$ полиэдр совместный.
Дальше берем и свапаем $\lambda$ в минимальной $b$шке.
Теперь у нас из каждой $b$шки вычтеться минимальная значит они все не меньше 0. Можем крутить симплекс метод.
Теперь если оптимум равен 0 есть два варианта:
1) $\lambda$ -- не базисная в конце. Ну тогда берем текущую систему и вычеркиваем $\lambda$.
2) $\lambda$ -- базисная в конце. Тогда сделаем одну любую в строчке с $\lambda$.
Очевидно там кто-то есть и свободный коэфициент это 0 из симплекс метода.