В общем виде математическая модель задачи линейного программирования с
двумя переменными записывается так: Lx c1 x1 c2 x2 max(min) при ограничениях a11x1 a12 x2 b1 , a x a x b , 21 1 22 2 2 ......................... am1 x1 am 2 x2 bn , где x j 0 , aij , bi , c j - заданные числа, i 1, m , j 1,2 . Все или некоторые уравнения системы ограничений могут быть записаны в виде неравенств. Математическая модель в более краткой записи имеет вид n Lx c j x j max(min) j 1 при ограничениях n aij x j bi , i 1, m , j 1,2 . j 1 Допустимым решением (планом) задачи линейного программирования назы- вается вектор x ( x1 , x2 ,...,xn ) , удовлетворяющий системе ограничений. Множество допустимых решений образует область допустимых решений за- дачи линейного программирования.
ГРАФИЧЕСКИЙ МЕТОД РЕШЕНИЯ.
Существует несколько методов решения задач линейного программирования.
Наиболее простым и наглядным методом решения задач линейного программирова- ния является графический метод. Он применяется, в частности, для решения задач линейного программирования с двумя переменными, система ограничений которых содержит неравенства. Задачи этого типа имеют вид Lx c1 x1 c2 x2 max(min) при ограничениях a11x1 a12 x2 b1 , a x a x b , 21 1 22 2 2 .......................... am1 x1 am 2 x2 bn , где x j 0 , aij , bi , c j - заданные числа, i 1, m , j 1,2 , и в качестве знака неравен- ства могут быть знаки , , . 1 Алгоритм решения задач этим методом состоит в следующем:
1. Находим область решений системы ограничений задачи.
2. Строим вектор градиента C c1 ; c2 - вектор наискорейшего роста целевой функции. 3. Проводим линию уровня L0 , которая перпендикулярна C . 4. Линию уровня перемещаем по направлению вектора C для задач на макси- мум и в направлении, противоположном C , для задач на минимум. Перемещение линии уровня производится до тех пор, пока у неё не окажется только одна общая точка с областью допустимых решений. Эта точка, определяю- щая единственное решение задачи линейного программирования, и будет точкой экстремума. Если окажется, что линия уровня параллельна одной из сторон области допу- стимых решений, то в таком случае экстремум достигается во всех точках соответ- ствующей стороны, а задача линейного программирования будет иметь бесчислен- ное множество решений. Говорят, что такая задача линейного программирования будет иметь бесчисленное множество решений. Говорят, что такая задача линейного программирования имеет альтернативный оптимум, и её решение находится по формуле X опт 1 t X 1 t X 2 . где 0 t 1, X 1 и X 2 - оптимальные решения в угловых точках области допусти- мых решений. Задача линейного программирования может быть неразрешима, когда опреде- ляющие её ограничения окажутся противоречивыми. 5. Находим координаты точки экстремума и значение целевой функции в ней. Пример. Фирма выпускает два вида мороженого: сливочное и шоколадное. Для изготовления мороженого используются два исходных продукта: молоко и наполнители, расходы которых на 1 кг мороженого и суточные запасы даны в таб- лице. Исходный про- Расход исходных продуктов Запас, кг дукт на 1 кг мороженого Сливочное Шоколадное Молоко 0,8 0,5 400 Наполнители 0,4 0,8 365 Изучение рынка сбыта показало, что суточный спрос на сливочное мороженое превышает спрос на шоколадное не более чем на 100 кг. Кроме того, установлено, что спрос на шоколадное мороженое не превышает 350 кг в сутки. Розничная цена 1 кг сливочного мороженого 160 руб., шоколадного – 140 руб. Какое количество мороженого каждого вида должна производить фирма, что- бы доход от реализации продукции был максимальным? Решение. Обозначим x1 - суточный объём выпуска сливочного мороженого, кг; x2 - суточный объём выпуска шоколадного мороженого, кг. Составим математическую модель задачи. Целевая функция будет иметь вид: 2 Lx 160 x1 140 x2 max при ограничениях: 0,8 x1 0,5 x2 400, 0,4 x 0,8 x 365, 1 2 x1 x2 100, x2 350, x1 0 , x2 0 . Построим область допустимых решений. Для этого рассмотрим каждое огра- ничение в системе 0,8 x1 0,5 x2 400, 0,4 x 0,8 x 365, 1 2 x1 x2 100, x2 350, и неравенства x1 0 , x2 0 . а. 0,8x1 0,5x2 400 Заменим знак неравенства знаком равенства и построим соответствующую прямую: l1 : 0,8x1 0,5x2 400, l1 :1,6 x1 x2 800, l1 : x2 800 1,6 x1 , x1 0 500 x2 800 0 Прямая l1 проходит через точки (0; 800), (500;0). Область, соответствующая неравенству 0,8x1 0,5x2 400, лежит ниже прове- дённой прямой (см. рис. 1). б. 0,4 x1 0,8x2 365 . Заменим знак неравенства знаком равенства и построим соответствующую прямую: l2 : 0,4 x1 0,8x2 365; l2 : x1 2 x2 912,5; l2 : x1 2 x2 912,5; x1 912,5 0 x2 0 456,25 Прямая l 2 проходит через точки (0; 456,25), (912,5;0). Область, соответствующая неравенству 0,4 x1 0,8x2 365 лежит ниже прове- дённой прямой (см. рис. 1). в. x1 x2 100 . Заменим знак неравенства знаком равенства и построим соответствующую прямую: l3 : x1 x2 100; 3 l3 : x2 x1 100; x1 100 200 x2 0 100 Прямая l3 проходит через точки (100; 0), (200; 100). Область, соответствующая неравенству x1 x2 100 лежит выше проведённой прямой (см. рис. 1). г. x2 350 . Область, соответствующая этому неравенству лежит ниже прямой x2 350 (см. рис. 1). Учитывая, что по условию задачи x1 0 , x2 0 , получаем, что областью допу- стимых решений нашей задачи линейного программирования является шестиуголь- ник OABDEF (см. рисунок 1).
Рисунок 1. Область допустимых решений задачи
Построим вектор C 160; 140 наискорейшего роста целевой функции. Про- водим линию уровня L0 , которая перпендикулярна вектору C . Так как в задаче тре- буется найти максимум целевой функции, то будем перемещать линию уровня по направлению вектора C . Точкой выхода L0 из области допустимых решений явля- ется точка D, её координаты определяются как пересечение прямых, заданных урав- нениями: 0,8 x1 0,5 x2 400, 0,4 x1 0,8 x2 365. Решая систему, получим координаты точки D(312,5; 300), в которой и будет оптимальное решение, то есть xопт (312,5; 300) , при этом Lx max 160 312,5 14 300 92000 руб. Таким образом, фирма должна выпускать в сутки 312,5 кг сливочного и 300 кг шоколадного мороженого, при этом доход от реализации составит 92000 рублей. 4