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
Макеты страниц
ГЛАВА 3. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ§ 7. Задачи линейного программированияВ предыдущих главах мы занимались только методологией исследования операций — классификацией задач, подходами к их решению и т. д., оставляя в стороне математический аппарат. В этой и последующих главах мы бегло рассмотрим некоторые из математических методов, широко применяемых в исследовании операций. В подробности этих методов не будем входить (научиться их применять по этой книжке нельзя); главное внимание обратим на их принципиальные основы. Выше мы уже упоминали о самых простых задачах, где выбор показателя эффективности (целевой функции) W достаточно явно диктуется целевой направленностью операции, а ее условия известны заранее (детерминированный случай). Тогда показатель эффективности зависит только от двух групп параметров: заданных условий а и элементов решения Напомним, что в числе заданных условий а фигурируют и ограничения, налагаемые на элементы решения. Пусть решение Требуется найти такие значения Такие задачи — отыскания значений параметров, обеспечивающих экстремум функции при наличии ограничений, наложенных на аргументы, носят общее название задач математического программирования. Трудности, возникающие при решении задач математического программирования, зависят: а) от вида функциональной зависимости, связывающей W с элементами решения, б) от «размерности» задачи, т. е. от количества элементов решения Среди задач математического программирования самыми простыми (и лучше всего изученными) являются так называемые задачи линейного программирования. Характерно для них то, что: а) показатель эффективности (целевая функция) W линейно зависит от элементов решения Такие задачи довольно часто встречаются на практике, например, при решении проблем, связанных с распределением ресурсов, планированием производства, организацией работы транспорта и т. д. Это и естественно, так как во многих задачах практики «расходы» и «доходы» линейно зависят от количества закупленных или утилизированных средств (например, суммарная стоимость партии товаров линейно зависит от количества закупленных единиц; оплата перевозок производится пропорционально весам перевозимых грузов и т. д.). Разумеется, нельзя считать, что все встречающиеся на практике типы зависимостей линейны; можно ограничиться более скромным утверждением, что линейные (и близкие к линейным) зависимости встречаются часто, а это уже много значит. Приведем несколько примеров задач линейного программирования. 1. Задача о пищевом рационе.Ферма производит откорм скота с коммерческой целью. Для простоты допустим, что имеется всего четыре вида продуктов: Требуется составить такой пищевой рацион (т. е. назначить количества продуктов Таблица 7.1 Составим математическую модель (в данном случае это очень просто). Обозначим или, короче, Итак, вид целевой функции известен и Эти линейные неравенства представляют собой ограничения, накладываемые на элементы решения Таким образом, поставленная задача сводится к следующей: найти такие неотрицательные значения переменных Перед нами — типичная задача линейного программирования. Не останавливаясь покуда на способах ее решения, приведем еще три примера аналогичных задач. Таблица 7.2 2. Задача о планировании производства.Предприятие производит изделия трех видов: При реализации одно изделие Запишем задачу в форме задачи линейного программирования. Элементами решения будут Отсутствие излишней продукции (затоваривания) даст нам еще три ограничения-неравенства: Кроме того, нам должно хватить сырья. Соответственно четырем видам сырья будем иметь четыре ограничения-неравенства: Прибыль, приносимая планом Таким образом, мы снова получили задачу линейного программирования: найти (подобрать) такие неотрицательные значения переменных Задача очень похожа на предыдущую, разница в том, что неравенств-ограничений здесь больше и вместо «минимума» стоит «максимум» (а мы уже знаем, что это несущественно). В следующей задаче мы уже встретимся с другого вида ограничениями. 3. Задача о загрузке оборудования.Ткацкая фабрика располагает двумя видами станков, из них Каждый метр ткани вида Фабрике предписан план, согласно которому она должна производить в месяц не менее Требуется так распределить загрузку станков производством тканей Таблица 7.3 На первый (легкомысленный) взгляд поставленная здесь задача — родная сестра предыдущей. Рука так и тянется обозначить
Здесь Перед нами — еще одна задача линейного программирования. Запишем сначала условия-ограничения, наложенные на элементы решения После этого ограничим перевыполнение плана; это даст нам еще три неравенства-ограничения: Теперь запишем ограничения, связанные с наличием оборудования и его полной загрузкой. Суммарное количество станков типа 1, занятых изготовлением всех тканей, должно быть равно Теперь запишем суммарный доход от производства всех видов тканей. Суммарное количество метров ткани или, гораздо короче, Эту линейную функцию шести аргументов мы хотим обратить в максимум: Перед нами — опять задача линейного программирования: найти такие неотрицательные значения переменных 4. Задача о снабжении сырьем.Имеются три промышленных предприятия: Потребности в сырье каждого предприятия равны соответственно Таблица 7.4 Возможности снабжения сырьем с каждой базы ограничены ее производственной мощностью: базы Опять поставим задачу линейного программирования. Обозначим Введем ограничения по потребностям. Они состоят в том, что каждое предприятие получит нужное ему количество сырья (ровно столько, сколько ему требуется): Далее напишем ограничения-неравенства, вытекающие из производственных мощностей баз: Наконец, запишем суммарные расходы на сырье, которые мы хотим минимизировать. С учетом данных табл. 7.4 получим (пользуясь знаком двойной суммы):
Опять перед нами задача линейного программирования: найти такие неотрицательные значения переменных Таким образом, мы рассмотрели несколько задач линейного программирования. Все они сходны между собой, разнятся только тем, что в одних требуется обратить
|
Оглавление
|