Промышленный лизинг Промышленный лизинг  Методички 

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 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292

Принципиальная идея Кармаркара заключается в том, что вычисления начинаются с внутренней точки, соответствующей центру симплекса, далее в направлении проекции градиента определяется новая точка решения, которая должна быть строго внутренней, т.е. все ее координаты должны быть положительными. Это является необходимым условием сходимости алгоритма.

Чтобы новая точка решения была внутренней, она не должна выходить за пределы симплекса. (Это значит, что на рис. 7.7, а новая точка не может быть точкой А или В, а на рис. 7.7, б- не может совпадать с точками отрезков АВ, ВС и АС.) Для того чтобы определить такую точку, построим сферу, вписанную в симплекс. В л-мерном пространстве в правильный симплекс можно вписать сферу с максимальным радиусом г, равным \lsjn(n -1) .5 Тогда пересечение сферы радиуса от (0 < а < 1) и пространства решений, определяемого системой АХ = 0, будет содержать только внутренние точки пространства решений с положительными координатами. В таком случае для определения новой точки решения можно перемещаться вдоль проекции градиента до тех пор, пока будем находиться внутри ограниченного пространства, являющегося пересечением шара радиуса аг и пространства, определяемого системой АХ = 0.

Новая точка решения не обязана быть центром симплекса. Поэтому, чтобы сделать алгоритм итерационным, необходимо найти способ перенести новую точку решения снова в центр симплекса. Для этого Кармаркар предложил оригинальную идею проективных преобразований. Пусть

xt х,.

i = 1, 2.....n.

где xkl - i-й элемент текущего решения, т.е. г-я координата текущей точки решения Х4. Такое преобразование правомерно, поскольку все xki > 0. Также отметим,

что по определению ,у, = 1 (т.е. 1Y= 1). Это преобразование можно записать в

матричном виде

Y Р.Х 1D/X

где D,. - диагональная матрица, у которой i-й диагональный элемент равен xkl. Это преобразование осуществляет взаимно-однозначное отображение Х-пространства в Y-пространство, поскольку нетрудно проверить, что из последней формулы следует

Х = 1D.Y

По определению min СХ = 0. Отсюда следует, что значение lDtY должно быть положительным. В таком случае исходная задача ЛП преобразуется в следующую.

Минимизировать z = CDtY

при ограничениях

ADkY = 0, 1Y-1, Y>0.

5 Здесь надо уточнить, что центр этой сферы находится в барицентре симплекса. Далее в этом разделе, не оговаривая этого явно, везде предполагается, что центры всех сфер совпадают с барицентром симплекса. - Прим. ред.



Преобразованная задача имеет тот же тип, что и исходная. Мы можем опять начать решение этой задачи с точки Y = (l/n, 1/п, 1/п), являющейся центром симплекса, и повторить действия, выполненные на предыдущем этапе. После каждой итерации на основании полученного Y-решения нетрудно вычислить значения исходных Х-переменных.

Теперь покажем, как определить новую точку решения для преобразованной задачи. На любой k-й итерации задача имеет следующий вид.

Минимизировать г = CDtY

при ограничениях

AD,Y = 0,

Y лежит в шаре радиуса аг.

Поскольку шар радиуса аг является частью пространства допустимых решений, определяемого ограничениями IX = 1, X > О, эти ограничения можно исключить из рассмотрения. Можно показать, что решение последней задачи вычисляется по следующей формуле

новое текущее

лить так:

= (1/п, 1/п, 1/п), ср- проекция градиента, которую можно вычис-

с-p-pppVpkcd/,

где Р =

Выбор параметра а - ключевой момент при построении алгоритма. Обычно а выбирается настолько большим, насколько это возможно, чтобы ускорить сходимость к оптимальному решению. Но при выборе слишком большого значения а можно упереться в запрещенную границу симплекса. В настоящее время не известно оптимальное значение а. Кармаркар предлагал использовать а = (п - 1)/Зл. Итак, алгоритм Кармаркара требует выполнения следующих этапов.

Этап О. Алгоритм начинается с точки Х0 = (1/п, 1/п, 1/п), вычисляются параметры г = - 1) и а = (п - 1)/Зп.

Основной этап к. Определяем

Dt = diag{x ......xj,

I 1 J

и вычисляем

Y -IA

IV, c.

x4.,=

новое новое

где с= [I - РГ(РРГ)P](CD/



Пример 7.7.3

Рассмотрим следующую задачу ЛП, которая уже приведена к форме, необходимой для выполнения алгоритма Кармаркара.

Минимизировать z = 2хх + 2х2 - Зх3

при ограничениях

*, - 2*2 + *3 = О, хг + х2 + х3 = 1, хх, х2, х3> 0.

Эта задача удовлетворяет всем условиям алгоритма Кармаркара, а именно точка X = (1/3, 1/3, 1/3) удовлетворяет уравнению х, - 2х2 + х3 = 0 и оптимальное значение целевой функции равно нулю (оптимальным решением является вектор (О, 0,6, 0,4)).

Итерация 0

с = (2, 2,-3), А = (-1,-2,3),

V 1 1 Ч 1 2

МзЗз} = а=9

= 0.33333,

D =

Используя проективные преобразования, получаем У0: Итерация 1

III 3 3 3

cD0 = (2,2,-3)

I 0 0Л

0 i о о о

AD0= (-1,-2,3)

i О О

О I о

О 0 1

I 2

з 3

{-- Л

1 1

-2 1

1 1 )

I1 и

ч з/

10 0

I - РГ(РРГ)Р =

0 I 0

,0 0 1,

Г- - О

3 з

U 1 U



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 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292