и
(11.3)
Такая задача называется задачей линейного программирования (в стандартной форме), общая теория которой рассмотрена, например, в [2].
Прежде чем исследовать задачу (11.1)–(11.3), заметим, что ее можно представить как задачу минимизации целевой функции f(x) =
. на множестве точек (x1,...,xn), удовлетворяющих условиям (11.2) и (11.3). Такое множество называется полиэдром и обозначается Р. Итак, мы имеем экстремальную задачу
f(х) → min, х Î Р. (11.4)
Выясним, что представляет собой данный полиэдр Р на плоскости x1Ox2 в случае двух продуктов x1 и x2. Из неравенств (11.3) вытекает, что Р расположен в первом квадранте, а каждое неравенство (11.2) геометрически определяет множество точек, лежащих по одну сторону от прямой
(рис. 11.1), т. е. полиэдр Р представляет собой неограниченное множество в первом квадранте, лежащее вне области, ограниченной многоугольником OABCDEF.

Для удобства введем линии уровня целевой функции, т. е. линии, на которых в плоскости х1Oх2 целевая функция
f(х)=с1x1+с2x2 (11.5)
принимает постоянное значение, например, a, и обозначим ее Za. Очевидно, каждая линия уровня Za={(x1,x2):f(x)=a} является прямой; при этом gradf(x)=
является вектором N, перпендикулярным линии уровня и направленным (в данном случае) в сторону увеличения a. Таким образом, для нахождения оптимального решения нам следует перемещать линию уровня до касания с многоугольником OABCDE, при этом оптимальная прямая Z
. коснется либо какой-то вершины (в нашем случае С), либо какого-либо ребра (например, СВ или CD при определенном изменении параметров с1 и с2).
Из приведенной геометрической интерпретации вытекает, что минимум обязательно достигается на одной из вершин многоугольника, поэтому его можно было бы найти методом перебора, сравнивая между собой значения целевой функции во всех вершинах. Конечно, метод перебора в принципе годится и в случае п переменных, однако при больших значениях п он неэффективен. Поэтому возникли и развиваются методы, позволяющие сформулировать более обозримые и эффективные критерии оптимальности. Начало им было положено работами акад. (1939 г.). Не углубляясь в суть этих методов, приведем пример одной многокритериальной модели.
В предыдущей задаче мы рассматривали одну целевую функцию. Однако на практике часто встречается ситуация, когда целенаправленная человеческая деятельность преследует сразу несколько целей. Такие задачи получили название многокритериальных. Методы их решения проиллюстрируем на только что рассмотренном примере составления оптимального рациона, несколько усложнив его.
Допустим, надо решить задачу об оптимальном рационе, максимизировав в нем первый продукт. Тогда наша математическая модель выглядит следующим образом:
(11.6)
Прежде чем приступить к решению, обсудим задачу, чтобы лучше понять ее специфику. Итак, забудем на время о первой целевой функции из (11.6). Тогда не составляет труда найти решение задачи:
maxf2(x)=f2(E), xÎP (рис. 11.2). (11.7)
Однако значение первой целевой функции может быть значительно больше оптимального
. Совершенно аналогично обстояло бы дело, если бы мы забыли о второй целевой функции и искали минимум первой целевой функции:
может быть много меньше f2(Д). Приведем наиболее употребительный метод решения многокритериальных задач (в данном примере – двухкритериальной задачи), а именно сведение двух критериев к одному.
1. Для реализации этого метода необходимо «взвесить» относительную важность каждого из критериев, т. е. выбрать из внемодельных соображений число e, 0 < e < 1, а затем построить одну целевую функцию
(11.8)
Если e=1. то в расчет принимается только первая целевая функция, а если e=0, то только вторая (рис. 11.1 и 11.2). Глубокое знание реальной проблемы и накопленный опыт могут позволить выбрать 0<e<1 так, чтобы, решив оптимизационную задачу с единственной целевой функцией, можно было бы получить удовлетворительное решение для исходной постановки задачи с двумя целевыми функциями (рис. 11.3). Встретив трудности при решении двухкритериальной задачи, можно заменить ее однокритериальной, решать которую мы умеем.


11.2. Задача поиска
Более сложными, чем задачи линейного программирования, являются задачи выпуклого программирования. Прежде чем привести пример такой задачи, связанной с безопасностью жизнедеятельности, дадим некоторые определения из теории выпуклого анализа [39].
Определение 1. Множество Х из пространства Rn называется выпуклым, если из того, что две точки у и z принадлежат этому множеству, вытекает, что и весь отрезок {у,z}={хÎRn:х=lу+(1-l)z, 0
l
1, соединяющий эти точки, также принадлежит этому множеству.
Очевидным примером выпуклых множеств является внутренность круга, шара, эллипсоида, куба. На рис. 11.4 а, б приведены примеры невыпуклых множеств на плоскости R2.

Определение 2. Функция f(x), определенная на выпуклом множестве xÌ Rn, называется выпуклой, если для любых двух точек у и z, принадлежащих X, и любого lÎx[0,1] (тогда отрезок [ly+(1-l)z], 0
l
1, целиком принадлежит X) выполняется неравенство
, (11.9)
Замечание. Если неравенство (11.9) имеет противоположный знак, то функция f(x) называется вогнутой.
Проще всего представить график выпуклой (или вогнутой) функции на плоскости (рис. 11.5).

Правая часть неравенства (11.9) представляет собой отрезок АВ, соединяющий точки (y,f(y))=АиВ=(z,f(z)), причем каждая точка этого отрезка (на рисунке взята точка С) выше соответствующей точки графика (на рисунке точка D). Если функция f(x) достаточно гладкая, то условия выпуклости (вогнутости) можно выразить через ее вторую производную.
Действительно, согласно теореме Лагранжа в некоторой точке Е (рис. 11.5) касательная к графику функции АВ лежит ниже этого графика. Уравнение этой касательной Y = f(x) + f'’(x)(x-x), следовательно, f(x)- f(x) – f’(x)(x-x)
0, откуда в силу формулы Тейлора
![]()
где 0<Q<1.
Деля последнее неравенство на (х-x)2 и далее переходя к пределу при х → x, получаем, что
f”(x)
0. (11.10)
В силу произвольности точки x это неравенство справедливо на всем отрезке [у, z] и является условием выпуклости (в случае вогнутости справедливо обратное неравенство). Для иллюстрации рассмотрим два простых примера.
Пример 1. f(x) =ex, xÎ (-¥,+¥), f(“) = eх > 0, следовательно, показательная функция выпукла на всей оси.
Пример 2. f(x) = sin x, xÎ[0,2p], f”(x) = - sin x, следовательно, функция sin x вогнута на отрезке [0, π] и выпукла на отрезке [π, 2 π].
Прежде чем сформулировать задачу поиска, отметим, что оптимизационная задача
f(x) → min, х Î Р (f(x) → max, х Î Р), (11.11)
где в случае max целевая функция f (х) выпукла, в случае min – вогнута и Р – полиэдр, называется задачей выпуклого программирования. Ясно, что задача линейного программирования является ее частным случаем.
Задача поиска. Объект, подлежащий обнаружению, находится в одном из п районов с вероятностями р1,..., рп соответственно. Для поиска объекта имеется общий ресурс времени Т (т. е. при t>T поиск считается нецелесообразным). Известно, что при поиске в i-м районе в течение времени ti, вероятность обнаружения объекта (при условии, что он там находится) выражается через функцию Бернулли 1-
, где ai>0 – заданное число (формула показывает, что за бесконечное время ti объект был бы найден). Требуется распределить по районам время наблюдения (поиска) так, чтобы максимизировать вероятность обнаружения объекта. Соответствующая задача оптимизации имеет вид
|
Из за большого объема этот материал размещен на нескольких страницах:
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 |


