ЛОГИСТИКА

Учебное пособие к курсовому проектированию

6. Математический аппарат,
применяемый при курсовом проектировании

6.1. Линейное программирование

6.1.1. Графический метод решения
задач линейного программирования

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

Метод основан на том, что каждое ограничение неравенство отсекает в n-мерном пространстве n-мерную полуплоскость (в данной курсовой работе это – двухмерное пространство (плоскость) и простая полуплоскость). Совокупность этих полуплоскостей (если ограничения совместны) образует n-мерный многогранник допустимых решений. Оптимальное решение достигается в одной из вершин многогранника. Для определения этой вершины необходимо построить поверхность уровня целевой функции (в курсовом проекте – линию уровня). Затем следует перемещать эту поверхность (линию) в направлении градиента до крайней точки области допустимых решений (ОДР).

Рассмотрим следующий простой пример решения задачи линейного программирования (ЗЛП) графическим методом.

Математическая модель:

2Х1+3Х2≤60;
3Х1+2Х2≤60;
4Х1+20Х2≤200;
Х1≥0; Х2≥0;
F=40Х1+30Х2→Мах.

Перейдем от неравенств к равенствам:

2Х1+3Х2=60;
3Х1+2Х2=60;
4Х1+20Х2=200.

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

для первого ограничения –

Х1=0; Х2=20;
Х2=0; Х1=30.

для второго ограничения –

Х1=0; Х2=30;
Х2=0; Х1=20.

для третьего ограничения –

Х1=0; Х2=10;
Х2=0; Х1=50.

Градиент целевой функции – это вектор, характеризующий направление и скорость изменения функции (в данном случае – целевой функции). Он определяется ее частными производными по каждой переменной:
Формула

Линия уровня целевой функции перпендикулярна градиенту.

Графическое решение данной задачи приведено на рисунке 6.1.


Рис. 6.1. Графическое решение задачи


Область допустимых решений (ОДР) в данном случае образуется четырехугольником ОВСД. Ни одна точка внутри его или на его границе не противоречит ни одному из ограничений. Оптимальное решение находится в одной из вершин четырехугольника. Для нахождения оптимального решения перемещаем линию уровня целевой функции в направлении градиента до крайней точки ОДР. Такой точкой является точка С с координатами: Х1=16; Х2=8. Значение целевой функции F=40×16+30×8=880. Очевидно, что это решение не отличается высокой точностью, что характерно для графического метода.

Из рисунка видно, что ресурсы второго и третьего видов использованы полностью, а ресурс первого вида оказался в избытке. Для количественной оценки этого избытка определим сначала расход данного ресурса: 2×16+3×8=56. Запас равен 60, тогда остаток составит 60–56=4.

6.1.2. Симплексный метод решения
задач линейного программирования

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

Приведем задачу, рассмотренную в предыдущем разделе, к канонической форме:

2Х1+3Х2+Х3=60;
3Х1+2Х2+Х4=60;
4Х1+20Х2+Х5=200;
F-40Х1 -30Х2 =0.

Дополнительные переменные Х3, Х4 и Х5 равны разности между левой и правой частями ограничений и характеризуют недовыполнение данного ограничения (в данном случае – излишний запас).

Задача решается в стандартных симплексных таблицах. Исходная таблица (см. табл. 6.1) заполняется коэффициентами модели.

Таблица 6.1

Исходная таблица
Базис Х1 Х2 Х3 Х4 Х5 аio aio/aip
Х3 2 3 1 0 0 60 20
Х4 3 2 0 1 0 60 30
Х5 4 20 0 0 1 200 10
F –4 –3 0 0 0 0

Базисными переменными являются переменные, входящие только в одно уравнение, с коэффициентом +1. Базисным переменным соответствует единичный вектор-столбец. Базисные переменные равны свободным членам. Свободные переменные (переменные, не вошедшие в базис) равны нулю. Таким образом, Х1=0; Х2=0; Х3= 60; Х4= 60; Х5=200; F=0.

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

В качестве разрешающего столбца выбирается любой столбец с отрицательной оценкой в строке целевой функции F. Выберем в данном случае в качестве разрешающего – второй столбец. Для всех его элементов вычисляем симплексные отношения aio/aip (отношение элемента столбца свободных членов к соответствующему элементу разрешающего столбца) и записываем их в последний столбец таблицы. Разрешающий элемент определяется минимальным симплексным отношением (в таблице он выделен жирным шрифтом). На месте разрешающего элемента ставится 1, а остальные элементы данного столбца равны нулю.

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


Рис. 6.2. Прямоугольник пересчета элементов симплексной таблицы


Пересчет производится по следующей формуле:
Формула (6.1)

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

Например, пересчет элемента первого столбца первой строки:
Формула

Таблица 6.2

Первая итерация расчета
Базис Х1 Х2 Х3 Х4 Х5 аio aio/aip
Х3 1,4 0 1 0 –0,15 30 21,4
Х4 2,6 0 0 1 –0,10 40 15,4
Х2 0,2 1 0 0 0,05 10 50
F –3,4 0 0 0 0,150 300

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

Х3 = 30; Х4 = 40; Х2 = 10; Х1 = Х5 = 0.

Или в краткой форме записи:

Х1 = (0; 10; 30; 40; 0), F = 300.

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

Технико-экономический анализ полученного решения

Выпускается десять единиц продукции второго вида (Х2 = 10). При этом ресурс второго вида останется в количестве тридцати единиц (Х3 = 30), ресурс первого вида останется в количестве сорока единиц (Х4 = 40), а ресурс третьего вида оказывается израсходованным полностью (Х5 = 0).

Проверка полученного решения:

2·0+3·10+30=60;
3·0+2·10+40=60;
4·0+20·10+0=200;
F=40·0+30·10=300.

Данное решение не является оптимальным, так как в строке целевой функции еще есть отрицательный элемент а1F = –3,4.

Вторая и все последующие итерации выполняются аналогично.

Таблица 6.3

Вторая итерация расчета
Базис Х1 Х2 Х3 Х4 Х5 аio aio/aip
Х3 0 0 1 0,54 0,1 8,5
Х1 1 0 0 0,38 0,04 15,4
Х2 0 1 0 0,74 0,17 6,9
F 0 0 0 1,3 0,28 823

Х2=(15,4; 6,9; 8,5; 0; 0) → F=823.

Это решение оптимально, так как в строке целевой функции нет отрицательных оценок.

Технико-экономический анализ полученного решения

При имеющихся ресурсах следует выпустить 15,4 единицы (Х1=15,4) продукции первого вида и 6,9 единицы продукции второго вида (Х2=6,9). При этом ресурсы первого вида остаются в количестве 8,5 единицы (Х3=8,5), а ресурсы второго и третьего вида израсходованы полностью (Х4=Х5=0). Прибыль составит 823 у.е.

Проверка:

2·15,4+3·6,9+8,5=60;
3·15,4+2·6,9+0=60;
4·15,4+20·6,9+0=200;
F=40·15,4+30·6,9=823.

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

© ФГОУ ВПО Красноярский государственный аграрный университет

© Центр дистанционного обучения