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 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
Макеты страниц
§ 9. Существование решения ОЗЛП и способы его нахожденияРассмотрим основную задачу линейного программирования (ОЗЛП): найти неотрицательные значения переменных и обращающие в максимум линейную функцию этих переменных: Для простоты предположим, что все условия (9.1) линейно независимы Назовем допустимым решением ОЗЛП всякую совокупность неотрицательных значений Всегда ли эта задача имеет решение? Нет, не всегда. Во-первых, может оказаться, что уравнения (9.1) вообще несовместны (противоречат друг другу). Может оказаться и так, что они совместны, но не в области неотрицательных решений, т. е. не существует ни одной совокупности чисел Наконец, может быть и так, что допустимые решения ОЗЛП существуют, но среди них нет оптимального: функция L в области допустимых решений не ограничена сверху. Все эти опасности подстерегают нас, главным образом, в «придуманных», искусственно поставленных задачах, хотя иногда легкомысленное планирование (неполный учет имеющихся ресурсов) приводит к неразрешимым задачам линейного программирования. Рис. 9.1. Чтобы представить себе принципиальную сторону ОЗЛП, обратимся к геометрической интерпретации. Пусть число уравнений Мы знаем, что Будем изображать пару значений свободных переменных точкой с координатами Это мы отметим штриховкой, обозначающей «допустимую» сторону каждой оси. Рис. 9.2. Рис. 9.3. Теперь построим на плоскости На этой прямой Таким образом, мы построили Заметим, что этих решений — бесконечное множество, так как любая пара значений свободных переменных, взятая из ОДР, «годится», а из Может оказаться, что область допустимых решений не существует, и значит, уравнения (9.3) несовместны в области неотрицательных значений. Такой случай показан на рис. 9.4, где нет области, лежащей одновременно по «нужную» сторону от всех прямых. Значит, ОЗЛП не имеет решения. Рис. 9.4. Предположим, что область допустимых решений существует, и мы ее построили. Как же теперь найти среди них оптимальное? Для этого дадим геометрическую интерпретацию условию где Посмотрим, как изобразить геометрически условие На рис. 9.5 это оказалось направление «паправо — вверх», но могло быть и наоборот: все зависит от коэффициентов Рис. 9.5. Рис. 9.6. А может ли оказаться, что оптимального решения не существует? Да, может, если в ОДР функция V (а значит и L) не ограничена сверху. Пример такого ненормального случая показан на рис. 9.7 (в разумно поставленных задачах обычно такого недоразумения не возникает). На рис. 9.6 оптимальное решение существовало и было единственным. А сейчас рассмотрим случай, когда оптимальное решение существует, но не единственно (их бесконечное множество). Это случай, когда максимум V достигается не в одной точке A, а на целом отрезке АВ, параллельном опорной прямой (рис. 9.8). Такой случай встречается на практике, но нас он не должен волновать. Рис. 9.7. Рис. 9.8. Все равно и в этом случае максимум U достигается в какой-то из вершин ОДР (А или В — безразлично), и в поисках оптимального решения можно ограничиться вершинами ОДР. Итак, мы рассмотрели в геометрической интерпретации случай Оказывается, аналогичное правило справедливо и в случае Оптимальное решение ОЗЛП (если оно существует) достигается при такой совокупности значений переменных При Мы будем продолжать говорить о «многограннике допустимых решений» в Отсюда вытекает идея, лежащая в основе большинства рабочих методов решения ОЗЛП, — идея «последовательных проб». Действительно, попробуем разрешить уравнения (9.1) относительно каких-нибудь На этих приемах мы тоже здесь не будем останавливаться. После конечного числа таких шагов цель будет достигнута — оптимальное решение найдено. А если его не существует? Алгоритм решения ОЗЛП сам покажет вам, что решения нет. Читатель, может быть, спросит: только-то и всего? Зачем было придумывать хитрые методы решения ОЗЛП, может быть, надо просто перебрать, одну за другой, все возможные комбинации к свободных переменных, полагая их равными нулю, пока, наконец, не будет найдено оптимальное решение? Действительно, для простых задач, где число переменных невелико, такой «слепой перебор» может привести к решению, и довольно быстро. Но на практике часто встречаются задачи, в которых число переменных (и наложенных условий) очень велико, порядка сотен и даже тысяч. Для таких задач простой перебор становится практически невозможным: слишком велико число комбинаций свободных и базисных переменных. Пример: только при Разработанные в теории линейного программирования вычислительные методы («симплекс-метод», «двойственный симплекс-метод» и другие, см. [4, 6,8]) позволяют находить оптимальное решение не «слепым» перебором, а «целенаправленным», с постоянным приближением к решению. Добавим, что современные ЭВМУ как правило, снабжены подпрограммами для решения задач линейного программирования, так что лицу, желающему их решать, нет даже особой надобности обучаться решению таких задач «вручную» — труд крайне неприятный и изнурительный.
|
Оглавление
|