Сделай Сам Свою Работу на 5

Вершины выпуклого многогранника





На примере задачи линейного программирования с n=2 мы видели, что особую роль играют вершины допустимой области. Но что понимать под вершиной выпуклого многогранника при n>3, когда не существует геометрически наглядного образа ?

Легко заметить, что при n=2 и n=3 вершина выпуклого многогранника - это такая точка, которая не является внутренней точкой никакого отрезка, концы которого принадлежат этому многограннику (см. рис 14). Этим свойством обладают только вершины .

Определение. Вершиной или крайней точкой выпуклого многогранника называется любая его точка, которая не является внутренней точкой никакого отрезка, целиком принадлежащего этому многограннику.

Докажем теперь несколько важных теорем, касающихся вершин выпуклых многогранников.

Теорема 1. Любая точка выпуклого многогранника является выпуклой комбинацией его вершин.

Доказательство

Строгое доказательство этой теоремы - достаточно сложная задача. Поэтому мы приведем лишь идею доказательства.

Пусть n=2 и мы имеем выпуклый многогранник G (см. рис. 15) с вершинами .Возьмём любую его точку A и соединим отрезком с какой-то вершиной, скажем . Продолжим эту прямую до пересечения с какой-то стороной многогранника и обозначим точку этого пересечения через B



(см.рис. 15). Тогда A является выпуклой комбинацией точек и B.

 

Но B лежит на отрезке и поэтому B

Рис. 15

является выпуклой комбинацией точек и . Поэтому A является

 

выпуклой комбинацией вершин

Аналогично обстоит дело и в случае n =3. Посмотрите на рисунок и попробуйте сами повторить те же рассуждения, что и выше. Выпуклой комбинацией, каких вершин является точка A , изображенная на правой части рисунка 15?

В общем случае выпуклого n-мерного многогранника рассуждения выглядят примерно так.

Берем любую внутреннюю точку A этого многогранника и соединяем её отрезком прямой с какой-то из вершин. Продолжим эту прямую до пересечения с какой-то из граней выпуклого многогранника. Пусть точка этого пересечения будет B .Тогда точка A будет выпуклой комбинацией этой вершины и точки B .

Но что такое грань выпуклого многогранника? Это тоже выпуклый многогранник, но только размерности (n - 1). Поэтому весь процесс можно повторить для точки B , перейдя к многограннику размерности (n-2), затем (n -3) и т.д.



В конце концов мы попадем на многогранник размерности 2, то есть на обычный отрезок, и точка A окажется выпуклой комбинацией некоторых вершин исходного многогранника.

Теорема 2. (Основная теорема линейного программирования) Целевая функция задачи линейного программирования достигает своего экстремума (минимума или максимума) в вершине допустимой области. Если целевая функция достигает экстремального значения более, чем на одной вершине, то она достигает того же значения в любой точке, являющейся выпуклой комбинацией этих вершин.

Доказательство

Обозначим вершины выпуклого многогранника через .

Пусть для определенности мы ищем минимум . Пусть оптимальный план есть . Это означает, что для всех из допустимой области.

Если - вершина, то первую часть теоремы можно считать доказанной.

Пусть теперь - не вершина. Тогда её можно представить как выпуклую комбинацию вершин

Поскольку - линейный функционал, то

Обозначим через m минимум из всех значений , и пусть он достигается

в вершине   , т.е.

Но тогда, так как , то  

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

Для доказательства второй части теоремы допустим, что принимает свое минимальное значение на нескольких вершинах сразу, например, на . Тогда Если - выпуклая комбинация этих вершин



то принадлежит допустимой области и

что и доказывает теорему.

Эта теорема имеет важнейшее значение, так как она указывает путь решения задачи линейного программирования. Совсем не надо перебирать всеточки допустимой области. Достаточно перебрать вершиныдопустимой области, а ведь их - конечное число. Кроме того, как это окажется далее, не нужноперебирать все вершины, можно этот перебор существенно сократить. Только вот как узнать, имеем ли мы дело с вершиной или нет?

Все дальнейшее изложение будет вестись для задач линейного программирования в канонической форме в векторных обозначениях (см. п.2 главы 1).

Теорема 3. Если известно, что система векторов линейно независима и такова, что где все , то точка является вершиной допустимой области.

Замечание. Заметим, что в отличны от нуля совсем не обязательно первые k компонент. Первыми мы написали их только для упрощения доказательства, а вообще речь идет о любых k компонентах из общего числа n компонент.

Доказательство

Предположим, что -не вершина. Тогда найдутся два таких плана и

,что является их выпуклой комбинацией, то есть

Так как все компоненты векторов и неотрицательны и последние

 

n-k компонент вектора есть нули, то и соответствующие им

 

компоненты векторов и тоже нули, то есть

Так как и планы, то

,

.

Вычитая, их друг из друга, получим

.

Но в силу линейной независимости векторов это может быть лишь тогда, когда

то есть . Следовательно, нельзя представить как точку отрезка, соединяющего две разные точки допустимой области, и поэтому - вершина. Теорема доказана.

Теорема 4. Если вершина, то вектора , соответствующие отличным от нуля компонентам , образуют линейно независимую систему.

Доказательство

Пусть не равными нулю являются первые k компонент вектораx , так что

 

. (1)

Докажем теорему методом от противного. Пусть система векторов линейно зависима . Тогда существуют такие числа , не все равные нулю, что

. (2)

Зададимся некоторым и умножим на него обе части предыдущего равенства (2). Прибавляя и вычитая полученный результат из (1), получим

Выбирая a достаточно малым можно всегда добиться того, что будут больше нуля для всех (для этого достаточно взять , где минимум берется по всем тем i , для которых . Тогда мы получим два плана

,

.

Но тогда , что противоречит тому, что - вершина. Теорема доказана.

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

 

Определение. План, соответствующий вершине допустимой области, называется опорным планом.

Если опорный план имеет ровноm отличных от нулякомпонент,то он называется невырожденнымопорным планом. Если число ненулевых компонент опорного плана меньшеm, то он называется вырожденнымопорным планом.

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


2.3. Переход от вершины к вершине

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

Пусть нам известен какой-то опорный план (вершина), соответствующий m векторам из первоначальной системы n векторов. Будем считать, что

этими векторами являются первые m векторов из системы

 

векторов . Опорный план имеет вид

,

где все . Для него

 

. (3)

Так как векторы линейно независимы, то они образуют базис

в m -мерном пространстве и любой из векторов может быть разложен

 

поэтому базису, то есть для любого верно разложение

 

, (4)

где - коэффициенты разложения по базису (координаты вектора в базисе .

Возьмем какой-то вектор, не входящий в наш базис, скажем, вектор . Для него

. (5)

Пусть хотя бы один из коэффициентов положителен. Возьмем некоторую величину , умножим на неё обе части равенства (5) и вычтем из (3). Тогда получим

Вектор

в случае неотрицательности всех своих компонент является планом. Те компоненты, где , будут автоматически неотрицательны. Чтобы остальные компоненты были неотрицательны, надо, чтобы

Отсюда имеем:

Возьмем

,

где минимум берется по всем тем индексам i , для которых . Очевидно, что если , то все компоненты плана будут неотрицательны.

Но давайте возьмем q в точности равным . Пусть, например,

 

достигается при i =1, то есть . Но тогда

 

компонента обратится в ноль и мы получим план

,

где

(7)

который опять содержит ровно m отличных от нуля положительных компонент.

Докажем, что это - новая вершина, то есть это -новыйопорный план. Действительно, этому новому плану соответствуют векторы . Допустим, что они линейно зависимы, то есть существуют такие числа , не все равные нулю, что векторы

уже были линейно независимы, поэтому . Но тогда ,где . Но раньше у нас было (см. (5))

.

Так как разложение по базису определяется однозначно, то должно быть , в частности, должно быть =0. Это противоречит тому, что >0. Значит, система векторов линейно независима и мы перешли к новой вершине, то есть получили новый опорный план.

Отметим следующее. Если все , то мы не в состоянии проделать эту процедуру. Зато, неограниченно увеличивая , мы можем получить план со сколь угодно большими компонентами. Значит, в этом случае допустимая областьнеограничена


 

Переход к новому базису

В старом базисе мы имели следующие разложения векторов по этому базису

(8)

Теперь мы перешли в новую вершину, которой соответствует базис и, чтобы иметь возможность двигаться дальше к следующей вершине, мы должны иметь разложения векторов по этому новому базису, то есть

. (9)

Выведем формулы для . Мы должны вывести из базиса вектор и ввести туда вектор . Поэтому возьмём выражение для вектора (5)

выразим из него вектор

и подставим это выражение в (8). Тогда мы получим

Перегруппировывая слагаемые, получим:

Таким образом, координаты вектора в новом базисе имеют вид

 

(10)

что и дает разложение векторов по новому базису


2.5. Отыскание оптимального плана

Пусть мы стремимся к минимуму целевой функции, то есть нашей задачей является

Очевидно, что довольно трудоемко перебирать все вершины многогранника, соответствующего допустимой области. Лучше идти по вершинам так, чтобы при переходе от вершины к вершине значение целевой функции уменьшалось. Именно в этом и состоит идея метода решения задачи линейного программирования, которая получила название симплекс - метода.

Итак, основная идея симплекс-метода заключается в том, чтобы так переходить от вершины к вершине, чтобы при каждом переходе значение целевой функции уменьшалось или увеличивалось.

Именно так из любой вершины можно добраться до оптимальной вершины и получить оптимальный план.

Пусть известен опорный план и связанная с ним система линейно независимых векторов . Тогда имеем

(1.34)

 

(1.35)

где все , - коэффициенты целевой функции и - её значение, соответствующее данному опорному плану. Поскольку векторы линейно независимы, любой вектор системы можно разложить по этим векторам:

(1.36)

Введем величины

(1.37)

где - коэффициент целевой функции, стоящий при (то есть соответствующий вектору ).

Теорема 1.9. Если для некоторого j выполняется условие , то можно уменьшить значение целевой функции, причем:

  • Случай 1. Если целевая функция ограничена снизу, то можно построить опорный план с меньшим значением целевой функции, чем предыдущий;
  • Случай 2. Если целевая функция неограничена снизу, то можно построить план, соответствующий сколь угодно малому значению целевой функции.

Доказательство:

Попробуем ввести в базис именно вектор , для которого было выполнено условие .

Умножив разложение (1.36) для на q и на q и вычтя их из (1.34) и(1.35), получим

,

В последнем равенстве к обеим частям равенства прибавлена величина .

Теперь рассмотрим два случая.

Случай 1.

Пусть среди чисел есть хотя бы одно положительное число. Возьмем

,

где минимум ищется по всем тем индексам j , для которых . Тогда, как это было показано выше, получится новый опорный план. Для него значение целевой функции будет равно

,

так как и . Мы, таким образом, перешли в "лучшую" вершину, то есть в вершину с меньшим значением целевой функции.

Случай 2.

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

(1.38)

будет стремиться к , то есть значение целевой функции может быть сделано сколь угодно малым. Теорема доказана.

Теорема 1.10. Если для некоторого опорного плана для всех j справедливы неравенства , то он является оптимальным.

Доказательство:

Пусть - наш опорный план и - произвольный план. Тогда имеем

(1.39)

 

(1.40)

Покажем, что .

По предположению, все " j то есть . Кроме того, все . Поэтому

(1.41)

Подставим в (1.39) вместо их разложения по базису

и изменим порядок суммирования

(1.42)

Аналогично, подставляя в (1.41) для каждого j выражение из формулы (1.37), получим:

Так как система векторов линейно независима, то коэффициенты разложения вектора по базису , даваемые формулами (1.42) и (1.34) должны быть одинаковы. Поэтому

получим

,

то есть любой другой план имеет не меньшее значение целевой функции, чем наш опорный план.

Эта теорема дает критерий оптимальности опорного плана.

Теоремы 1.9 и 1.10 дают возможность, начав с некоторого исходного опорного плана, получать последовательность все более лучших опорных планов, которые завершатся либо оптимальным планом, либо будет показано, что целевая функция неограничена.

Отметим следующее:

  1. Если при вычислении минимум достигается при нескольких i, то для вывода из базиса обычно берут вектор с наименьшим индексом.
  2. Для определения вектора , вводимого в базис, обычно берут тот вектор , для которого разность наибольшая

Алгоритм симплекс-метода

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

В первом столбце этой таблицы располагаются обозначения векторов, входящих в базис.

Второй столбец - коэффициенты целевой функции, соответствующие векторам, входящим в базис.

Третий столбец - компоненты опорного плана. В дополнительной строке в этом столбце пишется величина . Её легко вычислить перемножая числа из второго столбца и третьего столбца и складывая их.

Далее идут столбцы, соответствующие всем векторам , и в этих столбцах записываются координаты этих векторов в рассматриваемом базисе. Заметим, что для векторов, входящих в базис, эти координаты имеют вид (0,0, ... ,0,1,0, ..., 0), где единица стоит в той строке, где находится сам этот базисный вектор.

В дополнительной строке сверху обычно выписывают коэффициенты , соответствующие этим векторам.

В дополнительной строке снизу пишутся величины , вычисляемые по формулам:

.

Заметим, что для векторов, входящих в базис, эти разности всегда равны нулю.

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

Этап 1

Просматривается дополнительная строка снизу, где записаны разности .

Если все эти разности , то план является оптимальным

Этап 2

Если есть столбцы, где , то выбирается столбец с максимальным значением этой разности. Индекс j определит вектор, вводимый в базис.

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

Этап 3

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

где просматриваются лишь те дроби , для которых

Пусть этот минимум достигается для вектора . Тогда именно вектор подлежит выводу из базиса. Строка, соответствующая этому вектору, называется направляющей строкой. В дальнейшем в примерах мы будем

помечать ее символом .

Этап 4

После того, как определены направляющие столбец и строка, начинает заполняться новая симплекс-таблица, в которой на месте направляющей

строки будет стоять вектор .  

Обычно заполнение этой новой таблицы начинается именно с направляющей строки. В качестве компоненты опорного плана туда

пишется величина , то есть  

.

Остальные элементы этой строки заполняются величинами

.

Обратите внимание на особую роль элемента , стоящего на пересечении направляющей строки и направляющего столбца. Именно на него делятся все бывшие элементы направляющей строки. На месте бывшего элемента автоматически появляется единица.

Написанные выше формулы для пересчета элементов направляющей строки можно записать следующим правилом:

.

Этап 5

Далее начинается пересчет всех остальных строк таблицы, включая и дополнительную нижнюю строку по формулам: для компонент плана

;

для координат разложения по базису

;

для дополнительной строки

.

Обратите внимание на то, что все эти формулы по сути дела строятся по одному правилу

.

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

1 на месте бывшего элемента .

Далее итерации продолжаются.

 

 

Пример

Решить задачу линейного программирования

В данном случае вектор равен (0,1,-3,0,2,0), а в векторной форме ограничения могут быть записаны в виде

.

Заполним исходную симплекс-таблицу, взяв в качестве исходного базиса

вектора , что удобно из-за их вида.

Исходная симплекс-таблица

  Ба- План -3
  зис    
  -1
-2
  -4
      -1 -2
                 

Обратите внимание на то, что из-за специфического вида векторов в столбец "план" просто переписался вектор , а в качестве координат векторов в нашем базисе стоят просто сами векторы.

Ну, а величины приходится считать:

Первая итерация

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

В этом направляющем столбце есть два положительных числа - 4 и 3. Поэтому нужно рассмотреть два частных

и выбрать из них наименьшее. Так как

и он достигается на векторе , то этот вектор подлежит выводу из базиса и соответствующая ему строка и будет направляющей строкой.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.