Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вариант_№7.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.02 Mб
Скачать

Задачи линейного программирования

3.1. Методы решения задач

3.1.1. Постановка задачи

задача линейного программирования, которая является частным случаем задачи оптимизации (1.1.9), записывается следующим образом:

(3.1.1)

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

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

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

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

начнем с простых примеров.

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

a1x1+a2x2=b. (3.1.2)

построим прямую

12=2.

для этого запишем уравнение в виде

. (3.1.3)

при такой форме записи в знаменателе показаны отрезки, которые отсекает прямая (3.1.3) на осях координат, что показано на рис. 3.1.1.

е

рис. 3.1.1

сли от уравнения (3.1.2) перейти к неравенству

12  2, (3.1.4)

то его можно представить графически, как это показано на рис. 3.1.2.

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

н

рис. 3.1.2

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

построим теперь систему неравенств:

(3.1.5)

х1  0; х2  0

для удобства построения запишем ее в форме уравнения в отрезках:

(3.1.6)

э

рис. 3.1.3

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

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

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

(3.1.7)

эта зависимость на рис 3.1.4 представлена в форме уравнения прямой с угловым коэффициентом

х2 = F  x1,

из которого видно, что tg = 1. при этом угол  = 135°, а величина F равна отрезку, отсекаемому прямой на оси координат. если прямую перемещать параллельно самой себе в направлении, указанном стрелками, то величина F будет возрастать. совместим теперь одр, изображенную на рис. 3.1.3, с линией целевой функции (3.1.7), построенной на рис. 3.1.4, как это показано на рис. 3.1.5.

рис. 3.1.4

рис. 3.1.5

поскольку требуется найти оптимальное решение, при котором целевая функция

,

т. е. стремится к максимуму, будем перемещать график целевой функции в направлении увеличения F. очевидно, что оптимальным решением будут координаты точки с, равные х1* и х2*. при этом F = F*.

на основании рассмотренного можно сделать исключительно важный вывод: оптимальным решением являются координаты вершины одр.

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

  • найти вершины одр, как точки пересечения ограничений.

  • определить последовательно значения целевой функции в вершинах.

  • вершина, в которой целевая функция приобретает оптимальное (максимальное или минимальное) значение, является оптимальной вершиной.

  • координаты этой вершины и являются искомыми оптимальными значениями переменных.

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

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