Опубликован: 06.11.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Новосибирский Государственный Университет
Лекция 6:

Дискретное программирование

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >

Общий алгоритм нахождения оптимального плана

Рассмотрим общий путь нахождения оптимального плана на примере.

  1. Построить область допустимых планов, соответствующую наложенным ограничениям (6.4.)
  2. Найти вершину указанной области, в которой целевая функция минимальна.
  3. Найти соответствующие избранной вершине величины переменных, которые и дадут оптимальный план.

Первый шаг в решении задачи – построение области допустимых планов – нами уже сделан (см. рис. 6.1). Из рисунка видно, как определить координаты точки C, соответствующей оптимальному плану. Из уравнения прямой BC, проходящей через ту же точку, следует, что x_1=4. Из уравнения прямой DC, проходящей через ту же точку, следует, что x_2=0. Подставляя полученные значения x_1=4 и x_2=0 в уравнения (6.6.), определим величины остальных переменных, составляющих оптимальный план:

x_3=16;\\
x_4=0;\\
x_5=10;\\
x_6=8;

Таким образом, оптимальный план будет следующим:

\left.
\begin{array}{ccc}
x_1=4;\\
x_2=0;\\
x_3=16;\\
x_4=0;\\
x_5=10;\\
x_6=8;
\end{array}
\right\} ( 6.9)

Линейная форма при этом будет минимальной и равной

y=-\frac{24}{10}\cdot 4+ \frac{8}{10}\cdot 0 +\frac{228}{10}=\frac{132}{10}=13,2 ( 6.10)
.

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

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

На основе этой идеи создан и разработан один из основных методов решения задач линейного программирования – так называемый симплекс-метод.

Вычислительные методы линейного программирования

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

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

Второй шаг. Проверить, оптимален ли найденный план. Если оптимален, вычисления окончены. Если нет – следующий план.

Третий шаг. Переход к другой вершине (другому допустимому плану), в которой значение целевой функции меньше, проверка его на оптимальность и так далее.

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

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

Чтобы преобразовать систему уравнений описанным образом, необходимо выразить каждую из неизвестных x_1,x_2,...,x_m через остальные.

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

\begin{vmatrix}
a_{11} & a_{12}&... &a_{1m}\\
a_{21} & a_{22}&... &a_{2m}\\
.&.&.&.\\
a_{m1} & a_{m2}&... &a_{mm}\\
\end{vmatrix} \ne 0

Если это условие выполняется, то величины x_1,x_2,...,x_m называют базисными. Каждый базис соответствует определенной вершине.

Преобразуем систему уравнений (6.4.) так, чтобы, приравнивая две переменные нулю (например, x_5=0,x_6=0 ), можно было получить значения базисных величин x_1,x_2,x_3,x_4координаты одной из вершин многоугольника.

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

Действительно,

\begin{vmatrix}
4 & 0&0 &1\\
0&2&0&0\\
0&0&1&2\\
4&3&0&0\\
\end{vmatrix} =8

Это дает нам право считать, что величины x_1,x_2,x_3,x_4 являются базисными и система (6.4.) может быть разрешена относительно их.

Все необходимые преобразования будем производить с матрицей коэффициентов уравнений (6.4.):

\begin{pmatrix}
4&0&0&1&0&0&16&\\
0&2&0&0&1&0&10&\\
0&0&1&2&6&0&76&\\
4&3&0&0&0&1&24&\\
\end{pmatrix} ( 6.11)

< Лекция 5 || Лекция 6: 1234 || Лекция 7 >
Данил Комардин
Данил Комардин

мне задали дистанционное задание на сертификат,но я не могу его найти

Илья Шаров
Илья Шаров
Россия
Андрей Савельев
Андрей Савельев
Россия, Магнитогорск