Элементы линейного программирования

Задача использования ресурсов.

Для изготовления некоторых видов ( Элементы линейного программирования - student2.ru ) продукции на предприятии используют определенные ресурсы ( Элементы линейного программирования - student2.ru ). Запасы каждого вида ресурсов на предприятии ограничены ( Элементы линейного программирования - student2.ru ). На изготовление каждого изделия Элементы линейного программирования - student2.ru го вида продукции идет Элементы линейного программирования - student2.ru й ресурс в объеме Элементы линейного программирования - student2.ru , Элементы линейного программирования - student2.ru . Вопрос: сколько изделий каждого вида продукции следует произвести, чтобы получить наибольшую выручку, если рыночная стоимость одного изделия Элементы линейного программирования - student2.ru го вида продукции равна Элементы линейного программирования - student2.ru ?

Обозначим через Элементы линейного программирования - student2.ru количество изделий Элементы линейного программирования - student2.ru го вида продукции. Очевидно, что Элементы линейного программирования - student2.ru . В соответствии с ограниченностью ресурсов Элементы линейного программирования - student2.ru . В результате производства мы должны получить максимальную выручку: Элементы линейного программирования - student2.ru .

Функция Элементы линейного программирования - student2.ru называется целевой функцией.

Математическая модель задачи использования ресурсов имеет вид:

Элементы линейного программирования - student2.ru ,

Элементы линейного программирования - student2.ru

Элементы линейного программирования - student2.ru

Задачи такого вида, где ищется максимум или минимум линейной функции переменных Элементы линейного программирования - student2.ru при линейных ограничениях составляют предмет изучения раздела «Линейное программирование».

Геометрическая интерпретация задачи использования ресурсов для случая двух переменных.

Предположим, что следует найти максимум функции Элементы линейного программирования - student2.ru при ограничениях: Элементы линейного программирования - student2.ru Элементы линейного программирования - student2.ru . Нарисуем на плоскости XOY область допустимых значений для переменных, заключенную между прямыми Элементы линейного программирования - student2.ru .

Элементы линейного программирования - student2.ru

В этой области и следует найти максимальное значение функции Элементы линейного программирования - student2.ru . Очевидно, что критических точек линейная функция не имеет. Поэтому максимальное значение находится на границе области. Подставляя в выражение функции линейные зависимости граничных кривых, мы снова получим линейные функции, но уже зависящие от одной переменной. Здесь также максимум достигается в граничных точках. Таким образом, максимум целевой функции достигается в одной из угловых точек нарисованной области. Можно просто перебирать все угловые точки и проверять значения функции в них, а затем отобрать наибольшее. Можно поступить по другому.

Целевая функция принимает нулевое значение в точке (0,0). Проведем через начало координат прямую Элементы линейного программирования - student2.ru . Если провести прямую Элементы линейного программирования - student2.ru , где Элементы линейного программирования - student2.ru , то новая прямая будет параллельна предыдущей и будет проходить правее.

Элементы линейного программирования - student2.ru

Максимальное значение Элементы линейного программирования - student2.ru , при котором прямая Элементы линейного программирования - student2.ru пересекает область допустимых значений переменных, соответствует параллельной прямой, проходящей через одну из вершин. В этой точке и достигается наибольшее значение целевой функции. Сама точка является точкой пересечения прямых Элементы линейного программирования - student2.ru , и значит, ее координаты могут быть найдены как решение системы Элементы линейного программирования - student2.ru

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

Задача о составлении рациона питания.

Требуется составить экономичный ежедневный рацион питания животного, используя имеющиеся виды кормов (n видов) и не занижая поступления необходимого количества определенных питательных веществ (жиры, белки, углеводы, определенные витамины…– m типов). Обозначим через Элементы линейного программирования - student2.ru количество корма i-го вида, Элементы линейного программирования - student2.ru . Пусть количество Элементы линейного программирования - student2.ru го типа питательных веществ в единице массы корма i-го вида равно Элементы линейного программирования - student2.ru . Обозначим через Элементы линейного программирования - student2.ru минимум массы питательного вещества Элементы линейного программирования - student2.ru го типа, обязанного содержаться в ежедневном рационе. Пусть стоимость единицы массы кормов i-го вида равна Элементы линейного программирования - student2.ru . Тогда мы придем к следующей задаче

Элементы линейного программирования - student2.ru ,

Элементы линейного программирования - student2.ru

Элементы линейного программирования - student2.ru

В случае функции 2-х переменных ее также можно решать графическим методом.

Элементы линейного программирования - student2.ru

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

Предположим, что нам необходимо найти решение следующей задачи

Элементы линейного программирования - student2.ru

Элементы линейного программирования - student2.ru Элементы линейного программирования - student2.ru

В этом случае следует набрать следующие команды: load("simplex");

maximize_lp(9*x1+5*x2+4*x3,[x1-2*x2+2*x3<=6,x1+2*x2+x3<=24,2*x1+x2-4*x3<=30,x1>=0,x2>=0,x3>=0])и нажать Shift+Enter. Ответ компьютер выдаст в виде [152,[x3=2/3,x2=14/3,x1=14]]. Это значит, что наибольшее значение, равное 152, целевая функция принимает в точке (14,14/3,2/3).

Наши рекомендации