Министерство экономического развития и торговли Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ТОРГОВО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ
Кафедра высшей математики
Оптимизационные задачи в экономике и алгоритмы решения некоторых задач линейного программирования
Учебное пособие по курсу «Математика»
САНКТ-ПЕТЕРБУРГ 2004
Авторы: И.В. Вагурина, А.Е. Иванов, И.В. Медведева, Е.А. Смирнова, С.В. Ульянов.
Рассмотрены проблемы математической формализации экономических оптимизационных задач, алгоритмы их геометрического и аналитического решения.
Учебное пособие предназначено для студентов заочной и заочной сокращенной форм обучения специальностей 06.08.00, «Экономика и управление на предприятии торговли и общественного питания», 06.05.00 «Бухгалтерский учет, анализ и аудит», 35.11.00 «Товароведение и экспертиза товаров», изучающих раздел «Математическое программирование» дисциплины «Математика».
Рецензент; доктор физ.-мат. наук, проф. А.Ю. Вальков (ИВЭСЭП)
1. Математическая формализация оптимизационной проблемы
Искусство управления может рассматриваться как искусство выбора наилучшей с точки зрения управляющего альтернативы среди всех реализуемых альтернатив. В математике процесс выбора наилучшей альтернативы принято называть оптимизацией. Как известно, одним из основных отличий науки от искусства является возможность алгоритмизации. Воспользуемся простейшей задачей производственного планирования [Mathur, с. 159] и сформулируем алгоритм постановки оптимизационной задачи.
1.1 Математическая формализация оптимизационной проблемы
Фирма Creative Coffees производит и продает два сорта кофе: Regular и Decaf. На текущий месяц запас кофейных зерен на складе фирмы составляет 200 тонн, а суммарное время жарки зерен ограничено 300 часами. Каждая тонна кофе Regular производится из одной тонны зерен, обжариваемых в течение одного часа, и приносит производителю прибыль в размере $3000. Каждая тонна кофе Decaf также производится из одной тонны зерен, но обжариваемых в течение двух часов, и приносит фирме прибыль в размере $5000. Представим условия задачи в табличной форме:
Таблица 1
Regular (т)Decaf (т)Запас сырьяЗерна (т)11200Время жарки (ч)12300Прибыль от продажи ($1000/т)35
Определим план выпуска кофе, при котором прибыль фирмы за текущий месяц будет максимальна.
. Переменные, подлежащие определению в результате решения задачи, называются оптимизируемыми. Вектор оптимизируемых переменных называется альтернативой или планом.
Укажем переменные, подлежащие определению в результате решения задачи, и введем понятие плана.
В результате решения задачи производителю (продавцу) необходимо определить, какое количество каждого из сортов кофе следует выпустить. Введем следующие обозначения:- количество кофе Regular, которое следует произвести в текущем месяце,- количество кофе Decaf, которое следует произвести в текущем месяце, и назовем вектор x=(x1, x2) планом выпуска.
Как правило, в каждой проблемной ситуации существует ряд ограничений, не позволяющих реализовать на практике те или иные альтернативы.
. Планы, которые могут быть практически реализованы, называются допустимыми. Множество допустимых планов называется допустимым множеством.
Допустимость альтернативы определяется, в основном, ограниченностью ресурсов, находящихся в распоряжении предпринимателя. Отметим ряд типичных ограничений, которые определяют множество допустимых альтернатив в процессе принятия управленческих решений.
Производственные ограничения - это ограничения, связанные с возможностью выпустить и реализовать ограниченное количество продукции (оказать ограниченный объем услуг), располагая ограниченным количеством ресурсов (денежных средств, сырья, производственных помещений и оборудования, рабочего времени и квалификации персонала).
Рыночные (сбытовые) ограничения - это ограничения, связанные с возможностью реализовать ограниченное количество продукции в рамках избранной ценовой стратегии, а также с необходимостью выполнения заключенных контрактов.
Временные ограничения - это ограничения на время, отпущенное на решение проблемы.
Логические ограничения - это ограничения, связанные с природой оптимизируемых переменных (например, неотрицательность цен, объемов затрат ресурсов и потребления товаров).
Внешние ограничения - это социальные, правовые, этические ограничения, порожденные воздействием общества на бизнес.
Составим уравнения и неравенства, определяющие множество допустимых планов.
Допустимость плана в задачах производственного планирования определяется, прежде всего, тем, хватит ли имеющихся в наличии ресурсов на его реализацию. Выпуск x1 тонн кофе Regular требует x1 тонн кофейных зерен и x1 часов их жарки, а выпуск x2 тонн кофе Decaf требует x2 тонн кофейных зерен и 2x2 часов их жарки. Таким образом, план x=(x1, x2) допустим, если
(1)
Производственные ограничения дополняются логическими ограничениями, связанными с природой введенных в рассмотрение переменных. В данном случае объемы выпуска товаров не могут быть отрицательными: x³0. (2)
Рассмотрим геометрическую интерпретацию понятий: план, допустимый план, множество допустимых планов. Введем в рассмотрение декартову прямоугольную систему координат с осями, соответствующими оптимизируемым переменным, и, учитывая неравенство (2), изобразим ее первый квадрант (рис. 1). Любая точка в нем - план выпуска x=(x1, x2), причем план допустим, если его координаты удовлетворяют соотношениям (1), и не допустим - в противном случае.
Изобразим все планы, на которые хватит зерен кофе: x1+x2£200. С этой целью построим отрезок прямой x1+x2=200. На этом отрезке лежат планы выпуска, полностью исчерпывающие запас зерен, ниже - планы, на которые зерен хватит с избытком, выше - не допустимые планы.
Изобразим все планы, на реализацию которых хватит времени: x1+2x2£300. С этой целью построим отрезок прямой x1+2x2=300. На этом отрезке лежат планы выпуска, полностью исчерпывающие запас времени, ниже - планы, на которые времени хватит с избытком, выше - не допустимые планы.
Таким образом, множество допустимых планов - есть затененная область X на рис. 1 (множество планов, на реализацию которых хватит и первого, и второго ресурса):
Рис. 1 - Допустимое множество в проблеме производственного планирования
Почему невозможно реализовать план y, план z (рис. 1)?
Возникает вопрос: какой из допустимых планов является лучшим для производителя?
. Функция, сопоставляющая альтернативам действительные числа, называется целевой (критериальной), если большее (меньшее) ее значение указывает на строго более предпочтительную альтернативу, а одинаковые значения - на равноценные альтернативы.
Построим целевую (критериальную) функцию
В рассматриваемой задаче из двух допустимых планов лучшим является тот, который принесет фирме большую прибыль. При реализации плана x=(x1, x2) прибыль составит
p(x)=3x1+5x2
тысяч денежных единиц.
Как отмечалось выше, в процессе планирования производитель ищет такой реализуемый план выпуска товара, который принесет ему наибольшую прибыль. Приведем общую математическую постановку такого рода оптимизационных задач.
Предположим, имеется n оптимизируемых переменных, и, соответственно, план x является n-мерным вектором. Обозначим допустимое множество через X, целевую функцию через F.
. Глобальным максимумом (минимумом) функции F(x) на множестве X называется такой допустимый вектор х*X, что
F(x*) F(x) (F(x*) £F(x)) xX.(3)
Максимумы и минимумы функции принято называть ее экстремумами.
. Задача нахождения глобального максимума (минимума) функции F(x) на множестве X называется задачей математического программирования (ЗМП) и записывается в виде
F(x) max, xX (F (x) min, xX).(4)
Решение задачи (4) обозначается
x* = argmax F(x), xX, (x* = argmin F(x), xX),
и называется оптимальным планом. Число F(x*) называется значением задачи (4) и обозначается max F(x) (min F(x)).
. Решить ЗМП - значит найти все ее решения или доказать, что их не существует.
Выпишем получившуюся математическую модель оптимизационной задачи или задачу математического программирования:
p(x)=3x1+5x2 ® max, (5)
Таким образом, для математической формализации проблемы производственного планирования фирмы Creative Coffees мы воспользовались следующим алгоритмом.
Алгоритм математической формализации оптимизационной проблемы.
Указать переменные, подлежащие определению в результате решения задачи, ввести понятие плана.
Составить уравнения и неравенства, определяющие множество допустимых планов.
Построить целевую (критериальную) функцию.
Выписать получившуюся задачу математического программирования.
. Задача математического программирования, целевая функция которой является линейной, а допустимое множество задано системой линейных уравнений и неравенств, называется задачей линейного программирования (ЗЛП).
. ЗЛП называется стандартной задачей линейного программирования, если все ограничения выражены линейными неравенствами одинакового направления (как правило, £), все оптимизируемые переменные предполагаются неотрицательными.
Таким образом, задача (5) - стандартная задача линейного программирования. Если ввести обозначения
ее можно записать в виде
p(x)=сx ® max, Ax£b, x³0.
. ЗЛП называется канонической задачей линейного программирования, если все ограничения выражены линейными равенствами, все оптимизируемые переменные предполагаются неотрицательными.
Для приведения стандартной задачи линейного программирования к канонической следует все неравенства системы ограничений заменить равенствами, введя в левой части каждого неравенства дополнительную переменную.
. Перейдите от стандартной ЗЛП (5) к канонической.
. Каждый галлон молока, фунт сыра и яблок обеспечивает организм определенным количеством миллиграмм протеина и витаминов A, B, C в соответствии с данными приведенной ниже таблицы. Наряду с этими данными, таблица содержит информацию о минимальных ежедневных потребностях организма в вышеупомянутых веществах, представленную Департаментом сельского хозяйства США. Кроме того, в таблицу включены данные о минимальном количестве каждого из продуктов, которое должно войти в меню, и цены продуктов.
Таблица 2
Молоко (мг/галлон)Сыр (мг/фунт)Яблоки (мг/фунт)Минимальные потребности организма (мг)Протеины40301080Витамин A5503060Витамин B20304050Витамин С30506030Минимальное количество в диете0,5 гал.0,5 фунта0,5 фунтаЦена ($)2,152,251,25
Постройте математическую модель оптимизационной проблемы, предполагая, что из двух диет, обеспечивающих организм необходимым количеством питательных веществ, лучшей является более дешевая.
2. Геометрическая интерпретация стандартной задачи линейного программирования
Специфические особенности ЗЛП (линейная целевая функция, линейные ограничения) позволяют получить ряд геометрических интерпретаций, связанных с поиском ее решения.
2.1 Задача планирования товарооборота
При продаже товаров А и В используется три вида ресурсов: R1, R2, R3 (например, R1 - рабочее время; R2 - полезная площадь торгового зала; R3 - упаковочный материал). Сведения о количестве ресурсов, необходимых для продажи единицы каждого товара, обеспеченности торгового предприятия этими ресурсами и ценах, по которым товары продаются, приведены в следующей таблице:
Таблица 3
РесурсыТоварыЗапас ресурсовABR12319R22113R30315Цена товара75
Составим план продажи товаров, обеспечивающий максимальный товарооборот.
Для математической формализации оптимизационной проблемы воспользуемся сформулированном в предыдущем параграфе алгоритмом.
Укажем переменные, подлежащие определению в результате решения задачи, и введем понятие плана.
Обозначим через X1 и X2 запланированный объем продажи товаров А и В и назовем вектор X=(X1, X2) планом продажи товаров.
Составим уравнения и неравенства, определяющие множество допустимых планов.
Из экономического смысла величин X1 и X2 следует, что X1³0, X2³0.
Из таблицы 1 следует, что продажа X1 единиц товара А требует 2X1 единиц первого ресурса и 2X1 единиц второго ресурса, а продажа X2 единиц товара В требует 3X2 единиц первого ресурса, X2 единиц второго ресурса и 3X2 единиц третьего ресурса. Таким образом, план продажи X=(X1, X2) допустим, если для его реализации достаточно имеющихся в наличии ресурсов:
(1)
Построим целевую (критериальную) функцию
Из последней строчки таблицы 1 следует, что при реализации плана X=(X1, X2) товарооборот составит E(x)=7X1+5X2 денежных единиц.
Выпишем получившуюся математическую модель оптимизационной задачи или задачу математического программирования:
(2)
Рис. 2 - Построение допустимого множества задачи планирования товарооборота
Изобразим на плоскости допустимое множество задачи (2). Учитывая неотрицательность оптимизируемых переменных, ограничимся первой четвертью декартовой прямоугольной системы координат OX1X2.
Последовательно изобразим планы, полностью исчерпывающие запас первого (отрезок I), второго (отрезок II) и третьего ресурса (отрезок III), а затем стрелками укажем те полуплоскости, в которых лежат планы, на которые соответствующего ресурса хватит с избытком. Допустимым множеством задачи (2) является пересечение вышеупомянутых полуплоскостей (множество планов, на реализацию которых хватит всех ресурсов) (рис. 1).
Определим, в какой точке допустимого множества задача (2) имеет решение. С этой целью рассмотрим множество поверхностей уровня целевой функции задачи (совокупность планов продажи товаров с одинаковым товарооборотом):
E(x)=7X1+5X2=d,(3)
геометрически представляющих собой семейство отрезков параллельных прямых.
Изобразим некоторую поверхность уровня, соответствующую, например, d=14, которая представляет собой прямую, заданную уравнением:
7X1+5X2=14
Рис. 3 - Геометрическое решение СЗЛП
Стрелка на рис. 2 указывает направление, в котором лежат планы продаж с большим (чем 14) товарооборотом, в противоположном направлении лежат планы с меньшим товарооборотом.
Поскольку в направлении стрелки лежат допустимые планы задачи (2), можно добиться большего товарооборота, перемещая поверхность уровня параллельно самой себе до тех пор, пока она пересекает допустимое множество. План A (рис. 2) является планом с наибольшим товарооборотом, поскольку все отличные от A планы лежат ниже поверхности уровня, которому принадлежит план A.
Координаты точки А удовлетворяют уравнениям прямых, на пересечении которых она лежит. Решая систему
получаем оптимальное решение задачи: X*=(5, 3) (X1=5; X2=3). При этом товарооборот составит
Еmax=7´5 + 5´З = 50
денежных единиц.
2.2 Симплекс-метод
В настоящем параграфе рассмотрим алгоритм основного аналитического метода решения задач линейного программирования - симплекс-метода.
Симплекс-метод применяется только к канонической ЗЛП (1.9).
Приведем задачу планирования товарооборота к канонической форме. Введем дополнительные переменные:
(1)
Переменные Y1, Y2 и Y3 имеют очевидный экономический смысл - это остатки сырья R1, R2, R3 при реализации плана X=(X1, X2).
Алгоритм симплекс-метода, рассматриваемый в настоящих методических указаниях, применяется только к задаче минимизации.
Задачу нахождения максимума всегда можно свести к задаче нахождения минимума, сменив знак у целевой функции, причем:
обе задачи будут иметь одно и то же множество решений, значения задач будут различаться знаком.
Таким образом, задачу об отыскании максимума функции Е можно свести к задаче отыскания минимума функции Е' = -Е. Для единообразия схемы применения симплекс-метода мы будем говорить о нахождении только минимума функции. Поэтому задачу планирования товарооборота будем рассматривать как задачу минимизации функции
Е' = -7X1-5X2(2)
на множестве всех допустимых планов.
Итак, при решении симплекс-методом задачи планирования товарооборота используется следующая ее формулировка:
найти такие неотрицательные значения переменных X1, X2, Y1, Y2, Y3 (план Z=(X1, X2, Y1, Y2, Y3)), удовлетворяющие системе (1), при которых функция (2) достигает минимума.
В системе уравнений (1) переменные Y1, Y2, Y3 выражены через X1, X2. В соответствии с этим переменные Y1, Y2, Y3 называются базисными, а переменные X1, X2 - свободными.
Из геометрической интерпретации задачи следует, что оптимальное решение достигается в одной из вершин многоугольника области допустимых решений (ОДР). Вершины ОДР называются опорными точками, а соответствующие допустимые решения - опорными решениями задачи (опорными планами).
Идея симплекс-метода заключается в том, чтобы, переходя от одного опорного плана к другому, двигаться в направлении уменьшения значения минимизируемой функции.
При нахождении опорных планов следует иметь в виду следующее их свойство: в опорном плане обращаются в нуль по крайней мере столько переменных, сколько свободных переменных содержит система уравнений задачи.
Рассмотрим алгебраические основы симплекс-метода на примере задачи планирования товарооборота.
Решение задачи симплекс-методом начинается с нахождения первого опорного плана. Положив в (1) свободные переменные X1 и X2 равными нулю, получаем:
линейный программирование транспортный задача
X1=X2=0, Y1=19, Y2=13, Y3=15.
При этом Е' = Е = 0. Так как значения всех переменных неотрицательны, полученный план Z1=(0, 0, 19, 13, 15) является опорным. Согласно этому плану товары не продаются и товарооборот равен нулю. Естественно, такой план не может быть оптимальным.
Этот вывод следует и из формальных рассуждений: увеличивая любую из переменных X1 и X2 (что, очевидно, возможно), мы уменьшаем значение функции Е' = -7X1-5X2 , так как эти переменные входят в выражение Е' с отрицательными коэффициентами.
Будем увеличивать X1, оставляя X2 = 0. Новый опорный план будет достигнут, как только одна из переменных Y1, Y2 или Y3 обратится в нуль. Из (1) имеем: Y1 = 0 при X1 = 19/2, Y2 = 0 при X1 = 13/2; Y3 =15 при любом значении X1. Таким образом, в новом опорном решении
= min{19/2, 13/2}=13/2,
при этом X2 = Y2 = 0.
Чтобы проверить, является ли новый опорный план оптимальным, нужно из уравнений (1) выразить переменные X1, Y1 и Y3 через X2 и Y2, а затем подставить полученное выражение X1 в функцию Е'. Таким образом, мы заменим в системе (1) свободную переменную X1 на бывшую базисную Y2.
Вместо того, чтобы переразрешать систему уравнений относительно новых базисных переменных, можно выполнить преобразование специальной таблицы, которая называется симплексной таблицей. Для ее составления следует записать систему уравнений задачи и целевую функцию в так называемой стандартной форме: в правых частях уравнений и в выражении целевой функции после свободных членов ставится знак (-) и далее в скобках записываются свободные переменные с соответствующими коэффициентами.
Запишем в стандартной форме нашу задачу:
(3)
По стандартной форме записи системы и целевой функции составляется симплексная таблица, в которую записываются свободные члены и коэффициенты при свободных переменных:
Таблица 4
Базисные переменныеСвободный членСвободные переменныеX1X2Y1192319/2Y2132113/2Y31503-Е'075
Эта таблица соответствует первому опорному плану: свободные переменные X1 и X2 равны нулю, а базисные переменные Y1, Y2, Y3 и функция Е' равны соответствующим свободным членам.
План оптимален, если в столбцах свободных переменных в последней строке таблицы нет положительных коэффициентов.
Таким образом, рассматриваемый план не оптимален. Чтобы уменьшить функцию Е', следует увеличить свободную переменную, которой соответствует положительный коэффициент в строке Е' (например, X1). В новом опорном плане обратится в нуль та базисная переменная, для которой отношение свободного члена к соответствующему (положительному!) коэффициенту столбца X1 будет минимальным (эти отношения записываются в последнем столбце таблицы). В нашем примере это переменная Y2.
Для вычисления нового опорного плана следует в системе уравнений (1) заменить свободную переменную X1 на базисную Y2.
Соответствующая симплексная таблица (симплекс-таблица) будет иметь следующий вид:
Таблица 5
Базисные переменныеСвободный членСвободные переменныеY2X2Y1X1Y3Е'
Чтобы определить коэффициенты, которые должны быть записаны в этой таблице, нужно преобразовать таблицу 1 в соответствии с приведенным ниже алгоритмом. При этом удобно вести расчеты прямо в исходной таблице, отводя левый верхний угол каждой клетки для исходных коэффициентов, а правый нижний - для вспомогательных результатов.
Алгоритм преобразования симплекс-таблицы
В исходной таблице (таблица 3) выделяются столбец и строка, соответствующие тем переменным, которые меняются местами. Они называются разрешающим столбцом и разрешающей строкой (в нашем примере это столбец X1 и строка Y2). Элемент, стоящий на их пересечении, называется разрешающим элементом.
Таблица 6
Базисные переменныеСвободный членСвободные переменныеX1X2Y11923-13-1-1Y21313/2211/21/2Y31503000Е'075-91/2-7/2-7/2
Вычисляется величина l, обратная к разрешающему элементу. Значение l записывается в правом нижнем углу той же клетки, в которой находится разрешающий элемент.
Каждый элемент разрешающей строки (кроме разрешающего элемента) умножается на l, результат записывается в правом нижнем углу той же клетки.
Каждый элемент разрешающего столбца (кроме разрешающего элемента) умножается на ( -l), и результат записывается в правом нижнем углу той же клетки.
В разрешающей строке выделяются все старые элементы (кроме разрешающего). В разрешающем столбце выделяются все новые элементы, за исключением клетки с разрешающим элементом.
Для каждой из клеток, не принадлежащих ни к разрешающей строке, ни к разрешающему столбцу, в правый нижний угол записывается произведение выделенных чисел, стоящих в том же столбце и в той же строке, что и данная клетка.
Таблицу переписывают, при этом заменяют:
выделенную свободную переменную - на выделенную базисную;
элементы разрешающего столбца и разрешающей строки - на числа, стоящие в правых нижних углах клеток;
каждый из остальных элементов таблицы - на сумму чисел, стоящих в левом верхнем углу и в правом нижнем углу клетки.
Выполнив преобразование таблицы 3 в соответствии с приведенным алгоритмом, получим следующую таблицу:
Таблица 7
Базисные переменныеСвободный членСвободные переменныеY2X2Y16-12X113/21/21/2Y31503Е'-91/2-7/23/2
Этой таблице соответствует следующая запись системы уравнений и функции Е':
В новом опорном плане Z2=(13/2, 0, 6, 0, 15)
Y2=X2=0, Y1=6, X1=13/2, Y3=15, Е'= -91/2, Е = -Е'= 91/2.
Согласно этому плану, следует продавать 13/2 единиц товара А и не продавать товар В; при этом остатки ресурсов R1 и R3 равны, соответственно, 6 и 15 единицам, а ресурс R2 расходуется полностью. Товарооборот равен 91/2.
Этот план не оптимален, так как в последней строке таблицы есть положительный коэффициент при свободной переменной X2, а значит, увеличивая X2, можно уменьшить Е' (увеличить товарооборот). Выделим в таблице 7 разрешающий столбец X2. Минимальное из отношений свободных членов к положительным коэффициентам столбца X2 определяет в качестве разрешающей строки строку Y1.
Таблица 7
Базисные переменныеСвободный членСвободные переменныеY2X2Y16-123-1/21/2X113/2-3/21/21/21/4-1/4Y31503-93/2-3/2Е'-91/2-7/23/2-9/23/4-3/4
Применив алгоритм преобразования симплекс-таблицы, получим следующую таблицу:
Таблица 8
Базисные переменныеСвободный членСвободные переменныеY2Y1X23-1/21/2X153/4-1/4Y363/2-3/2Е'-50-11/4-3/4
Симплекс-таблице 6 соответствует опорный план Z3=(5, 3, 0, 0, 6)
= Y1 = 0, X2 = 3, X1 = 5, Y3 = 6,
и значение оптимизируемой функции Е' = - 50 (соответственно, Е = 50).
Полученный план оптимален, поскольку в последней строке таблицы 6 нет положительных коэффициентов в столбцах свободных переменных.
Таким образом, в рассматриваемой задаче оптимальным является следующий план: продавать 5 единиц товара А и 3 единицы товара В. При этом полностью расходуются ресурсы R1 и R2 и остаются неиспользованными 6 единиц ресурса R3. Такой план обеспечивает максимальный товарооборот, равный 50 рублям.
2.3 Постановка транспортной задачи
Одной из задач линейного программирования является транспортная задача, которая формулируется следующим образом.
Имеется т пунктов хранения (баз) A1, A2, ..., Am, на которых сосредоточены запасы некоторого товара в количествах соответственно a1, a2, ..., am условных единиц. Кроме того, имеется п пунктов потребления (магазинов) B1, B2, ..., Bn, подавших заявки соответственно на b1, b2, ..., bn единиц товара. Стоимость перевозки единицы товара из пункта Ai (i = 1, 2, …, m) в пункт Bk (k = 1, 2, …, n) составляет cik денежных единиц). Предполагается, что общая стоимость перевозки партии товара пропорциональна количеству товара в этой партии.
Условия транспортной задачи могут быть представлены с помощью матрицы транспортной задачи:
Если суммарное предложение товара равно суммарному спросу на него
то мы имеем транспортную задачу закрытого типа. В случае, если сумма запасов не равна сумме заявок, имеем задачу открытого типа. Ее легко свести к задаче закрытого типа. Если сумма заявок превышает сумму запасов, вводится фиктивный поставщик, «запас» которого равен разности между суммой заявок и суммой запасов. В случае, когда сумма запасов превышает сумму заявок, вводится фиктивный потребитель, «заявка» которого равна разности между суммой запасов и суммой заявок. Стоимости всех фиктивных перевозок полагают равными нулю. Таким образом, задача открытого типа сводится к задаче закрытого типа.
Рассмотрим транспортную задачу закрытого типа. В этой задаче требуется составить такой план перевозок товара, чтобы вывезти весь хранящийся на базах запас товара, удовлетворить заявки всех магазинов, добиться минимальной суммарной стоимости всех перевозок.
Построим математическую модель транспортной задачи.
Укажем переменные, подлежащие определению в результате решения задачи, и введем понятие плана.
Обозначим через xik количество товара, направляемого из пункта Ai в пункт Bk (i = 1, 2, …, m; k = 1, 2, …, n). Таким образом, в задаче имеется m´n оптимизируемых переменных, и план в транспортной задаче имеет вид x=(x11, x12, …, xmn).
План перевозок в транспортной задаче удобно представить в виде матрицы
получая наглядное представление о том, какое количество товара перевозится от определенной базы к определенному магазину.
Составим уравнения и неравенства, определяющие множество допустимых планов.
План x=(x11, x12, …, xmn) является допустимым, если он обеспечивает вывоз всего хранящегося на базах товара:
он удовлетворяет заявки всех магазинов:
все оптимизируемые переменные неотрицательны: x³0.
Построим целевую (критериальную) функцию
Из двух допустимых планов транспортной задачи лучшим считается тот, которому соответствуют меньшие транспортные издержки (общая стоимость перевозки товаров из мест хранения в места потребления). Таким образом, критериальной функцией в транспортной задаче является функция, сопоставляющая плану x соответствующие транспортные издержки:
E(x) = c11 x11 + c12 x12 + … + cmn xmn
Выпишем получившуюся задачу математического программирования
Поскольку транспортная задача является задачей линейного программирования, она может быть решена симплекс-методом. В силу специфики задачи можно вместо симплекс-таблиц пользоваться таблицами более простого вида (так называемыми транспортными таблицами):
Таблица 9
БазыМагазиныЗапасB1B2…BnA1c11c12…c1na1x11x12x1nA2c21c22…c2na2x21x22x2n……………...Amcm1cm2…cmnamxm1xm2xmnСпросb1b2...bn
Решение транспортной задачи может быть получено путем некоторых преобразований транспортной таблицы. Как и в общем случае, оптимальное решение ищется среди опорных решений. В системе ограничений-равенств транспортной задачи можно выделить т + п - 1 базисных переменных, выразив их через остальные (свободные). В опорном решении свободные переменные равны нулю. Эти нули в таблицу не записываются, а соответствующие (пустые) клетки таблицы называются свободными клетками. Заполненные клетки таблицы соответствуют базисным переменным и называются базисными клетками. Таким образом, в транспортной таблице, представляющей опорный план, имеется т + п - 1 заполненных клеток.
3. Алгоритм решения транспортной задачи
.1 Определение опорного транспортного плана
Как и в общем случае, решение транспортной задачи начинается с нахождения первого опорного плана. Существует несколько методов построения опорного плана перевозок. Рассмотрим один из них - метод наименьшей стоимости.
При построении опорного плана этим методом сначала заполняется клетка таблицы с минимальной стоимостью. При этом на каждом шаге либо удовлетворяется спрос соответствующего магазина, либо исчерпывается запас базы. Далее клетки заполняются в порядке возрастания стоимостей.
Построение опорного плана перевозок
Условия транспортной задачи заданы транспортной таблицей 1:
Таблица 10
БазыМагазиныЗапасB1B2B3A4A1734215A2614631A3695325A41047922Спрос28172820
Составим опорный план перевозок методом наименьшей стоимости.
Заполним таблицу 1, начиная с клетки (A2, B2), в которой мы имеем минимальную стоимость перевозки (c22 = 1). За счет запаса базы A2 можно удовлетворить всю заявку магазина B2, поэтому записываем 17 в клетку (A2, B2).
Следующую по величине стоимость, равную 2, имеем в клетке (A1, B4). Поскольку запас базы A1 меньше заявки магазина B4, в эту клетку записываем перевозку, равную запасу базы A1 (15 единиц). Следующую по величине стоимость равную 3, имеем в клетках (A1, B2) и (A3, B4). Клетку (A1, B2) нельзя заполнять, поскольку запас базы A1 уже исчерпан. Заполняем клетку (A3, B4), удовлетворяя оставшуюся часть заявки магазина B4 (5 единиц) за счет базы A3.
Рассуждая аналогично, заполняем остальные клетки в такой последовательности: (A2, B3), (A3, B3), (A3, B1), (A4, B1). Будем иметь:
Таблица 11
БазыМагазиныЗапасB1B2B3A4A173421515A26146311714A36953256145A4104792222Спрос28172820
Нетрудно убедиться в том, что сумма перевозок в каждой строке таблицы равна запасу товара на соответствующей базе, а в каждом столбце - заявке соответствующего магазина. Таким образом, мы получили план перевозок товара, удовлетворяющий всем ограничением транспортной задачи (перевозки по маршрутам, соответствующим незаполненным клеткам, полагаются равными нулю):
=(0, 0, 0, 15, 0, 17, 14, 0, 6, 0, 14, 5, 22, 0, 0, 0),
или, в матричной форме,
Вычислим стоимость плана x:
(x)=2´15+1´17+4´14+6´6+5´14+3´5+10´22=444.
Отметим, что число заполненных (базисных) клеток равно т + п - 1= 7, то есть, действительно построен опорный план перевозок.
При построении опорного плана перевозок в рассмотренной задаче на каждом шаге, кроме последнего, либо исчерпывался запас базы (но оставалась невыполненной заявка), либо выполнялась заявка магазина (но оставалась неиспользованной часть запаса базы). Может оказаться, что на некотором (не последнем!) шаге будет одновременно выполнена заявка магазина и исчерпан запас базы, тогда число заполненных клеток окажется меньше, чем т + п - 1. В этом случае следует записать нулевую перевозку в ту клетку, которая заполнялась бы, если бы остаток запаса данной базы не был бы равен нулю. Эта клетка в дальнейшем считается базисной.
Проверка оптимальности транспортного плана методом потенциалов
При решении транспортной задачи, как и при решении любой задачи линейного программирования, осуществляется последовательный переход от одного опорного плана к другому. При этом на каждом шаге осуществляется замена одной базисной переменной на одну свободную, то есть, в транспортной таблице одна свободная клетка становится базисной, а одна базисная - свободной.
Рассмотрим опорный план, построенный в таблице 2. Предположим, что мы хотим сделать свободную клетку (A4, B2) базисной клеткой или запланировать перевозку с четвертой базы во второй магазин. С этой целью запишем в клетку положительное значение, равное а единиц:
Таблица 12
БазыМагазиныЗапасB1B2B3A4A173421515A261463117-a14+aA36953256+a14-a5A4104792222-a+aСпрос28172820
Тогда, чтобы сумма объемов перевозок в каждой строке оставалась равной ее запасу, а в столбце - заявке, нужно:
уменьшить на а единиц объем перевозки в клетке (A4, B1),
увеличить на а единиц объем перевозки в клетке (A3, B1),
уменьшить на а единиц объем перевозки в клетке (A3, B3),
увеличить на а единиц объем перевозки в клетке (A2, B3),
уменьшить на а единиц объем перевозки в клетке (A2, B2).
Таким образом, осуществляется «переброска» а единиц товара по замкнутому контуру, изображенному пунктиром в таблице 3. Такой контур называется циклом.
Цикл - это замкнутая ломаная, соединяющая несколько клеток таблицы и совершающая в каждой из них поворот на 90°. Две последовательные вершины цикла лежат либо в одной строке, либо в одном столбце. В одной из них объем перевозки увеличивается (в клетке ставится знак +), в другой - уменьшается на столько же единиц (в клетке ставится знак -). Примеры циклов различных конфигураций показаны на рис. 1:
-+-+-++-+-+--++-Рис. 4 - Примеры циклов
Так как при переходе от одного опорного плана к другому мы осуществляем замену одной свободной клетки на одну базисную, то переброска должна осуществляться по циклу, содержащему только одну свободную клетку. Такой цикл называется циклом пересчета для данной свободной клетки.
Можно доказать, что для любой свободной клетки в опорном плане перевозок существует единственный цикл пересчета. Для того, чтобы одна из базисных клеток после переброски стала свободной, значение перевозки в этой клетке должно стать равным нулю. Ясно, что это может быть только клетка, в которой стоит знак (-). Поэтому количество товара, перебрасываемого по циклу пересчета, должно быть равно наименьшей из величин перевозок, стоящих в отрицательных вершинах цикла. Например, если в таблице 3 положить а=min(22, 14, 17)=14, то, перебросив 14 единиц товара по указанному циклу пересчета, приходим к новому опорному плану:
Таблица 13
БазыМагазиныЗапасB1B2B3A4A173421515A2614631328A3695325205A41047922814Спрос28172820
Осталось уяснить, в каком случае переброска по циклу позволяет уменьшить суммарную стоимость всех перевозок.
Назовем ценой цикла, начинающегося в клетке (Ai, Bk), величину gik, равную приращению суммарной стоимости перевозок в результате переброски по циклу одной единицы товара. Цена цикла равна сумме стоимостей, стоящих в вершинах цикла, причем стоимость берется со знаком плюс, если перевозка от базы к магазину увеличивается (в клетке стоит знак +), и минус - в противном случае.
Например, цена цикла, изображенного пунктирной линией в таблице 3, равна:
g42 = 4 - 10 + 6 - 5 + 4 - 1 = - 2.
При переброске по циклу, начинающемуся в клетке (Ai, Bk), а единиц товара приращение суммарной стоимости перевозок равно
DE=a´gik.
Очевидно, что улучшение плана происходит только в случае, если DE < 0, а это равносильно тому, что gik < 0.
При переходе к плану, приведенному в таблице 4, приращение суммарной стоимости перевозок равно
DE= 14´(-2) = -28,
то есть, значение целевой функции уменьшается на 28 единиц. Поскольку для первого плана суммарная стоимость перевозок равнялась E = 444, для нового плана будем иметь:¢= E+a´g42 = 444 - 28 = 416.
Итак, последовательность решения транспортной задачи такова. Строится опорный план перевозок. Если для любой свободной клетки в этом плане цена цикла пересчета неотрицательна, то план оптимален. Если же имеется свободная клетка с отрицательной ценой цикла пересчета, то план можно улучшить, перебросив некоторое количество товара по циклу пересчета, соответствующему этой клетке.
Существует метод, который позволяет находить свободные клетки с отрицательной ценой цикла. Этот метод называется методом потенциалов. Он состоит в следующем.
Предположим, что мы построили опорный план перевозок. Сопоставим каждой базе Ai число ai и каждому магазину Bk число bk так, чтобы для любой базисной клетки плана выполнялось условие
ai +bk = cik.(1)
Числа ai и bk называются потенциалами баз (строк) и магазинов (столбцов). Так как в опорном плане имеется т + п - 1 базисных клеток, то для нахождения потенциалов нужно решить систему из т + п - 1 уравнений с т + п неизвестными. Поскольку число неизвестных на 1 больше числа уравнений, значение одного потенциала можно выбрать произвольно (например, положить его равным нулю).
Рассмотрим опорный план, полученный в таблице 4. Составим систему уравнений для вычисления потенциалов, соответствующих этому плану:
(2)
Выбирая, например, a1=0, из (2) последовательно получаем:
b4=2, a3=1, b1=5, a4=5, b2=-1, a2=2, b3=2.
Обычно потенциалы записываются в дополнительных строке и столбце таблицы, в которой записан опорный план. Перепишем таблицу 4, заменив в ней столбец обозначений баз столбцом для потенциалов ai и строку обозначений магазинов строкой для потенциалов bk:
Таблица 14
Потенциалы базПотенциалы магазиновЗапасb1=5b2=-1b3=2b4=2a1=073421515a2=2614631328a3=1695325205a4=51047922814Спрос28172820
На практике, как правило, система (2) для определения потенциалов строк и столбцов не выписывается. Для их нахождения поступают следующим образом:
в таблице, содержащей опорный план, ищут строку (столбец) с наибольшим количеством базисных клеток, ее (его) потенциал полагают равным нулю, используя соотношение (1) и стоимости базисных клеток, последовательно (визуально) определяют остальные потенциалы.
Рассмотрим алгоритм использования найденных потенциалов для проверки оптимальности опорного плана.
Назовем псевдостоимостью cik* клетки (Ai, Bk) сумму потенциалов, соответствующих этой клетке
* = ai +bk.
Очевидно, что для базисных клеток cik*=cik. Можно доказать, что для любой свободной клетки (Ai, Bk) в опорном плане перевозок справедливо равенство
gik = cik - cik*,
где gik - цена цикла пересчета для клетки (Ai, Bk). Отсюда следует, что если хотя бы в одной свободной клетке псевдостоимость превышает стоимость, то цена цикла пересчета для этой клетки отрицательна, и план можно улучшить.
Критерий оптимальности транспортного плана
План оптимален, если во всех клетках таблицы псевдостоимости не превышают стоимостей.
Проверим оптимальность рассматриваемого опорного плана. Рассчитаем псевдостоимости свободных клеток и запишем их в левом верхнем углу свободных клеток таблицы 15:
Таблица 15
Потенциалы базПотенциалы магазиновЗапасb1=5b2=-1b3=2b4=2a1=057-132421515a2=276144631328a3=160935325205a4=5104777922814Спрос28172820
Проверим условие оптимальности плана, сравнивая псевдостоимости и стоимости свободных клеток (для базисных клеток они по построению совпадают). Поскольку в клетке (A2, B1) псевдостоимость превышает стоимость, план, записанный в таблице 6, не оптимален.
Построим цикл пересчета для этой клетки:
Таблица 16
БазыМагазиныЗапасB1B2B3A4A173421515A2614631+a3-a28A3695325205A410479228-a14+aСпрос28172820
Используя данные таблицы 6, найдем цену цикла:
g21 = c21 - c21* = 6 - 7 = - 1.
Определим величину перевозки по новому маршруту: а=min(8, 3)=3.
Таким образом, клетка (A2, B1) становится базисной, а клетка (A2, В2) - свободной. Выпишем новый план перевозок:
Таблица 17
БазыМагазиныЗапасB1B2B3A4A173421515A2614631328A3695325205A41047922517Спрос28172820
Вычислим стоимость полученного плана:
¢¢= E¢+a´g21 = 416 - 3 = 413.
Проверим оптимальность нового опорного плана. Поскольку наибольшее число базисных клеток (три) в первом столбце таблицы, положим его потенциал равным нулю, последовательно (визуально) определим потенциалы остальных строк и столбцов, найдем псевдостоимости свободных клеток:
Таблица 18
Потенциалы базПотенциалы магазиновЗапасb1=0b2=-6b3=-2b4=-3a1=557-133421515a2=660143631328a3=660945325205a4=10104877922517Спрос28172820
Поскольку в клетке (A4, B3) псевдостоимость превышает стоимость, транспортный план не оптимален. Построим цикл пересчета для этой клетки:
Таблица 19
БазыМагазиныЗапасB1B2B3A4A173421515A26146313+a28-aA3695325205A410479225-a17+aСпрос28172820
Используя данные таблицы 9, найдем цену цикла:
g43 = c43 - c43* = 7 - 8 = - 1.
Определим величину перевозки по новому маршруту:
а=min(28, 5)=5.
Таким образом, клетка (A4, B3) становится базисной, а клетка (A4, В1) - свободной. Выпишем новый план перевозок:
Таблица 20
БазыМагазиныЗапасB1B2B3A4A173421515A2614631823A3695325205A41047922175Спрос28172820
Вычислим стоимость полученного плана:
¢¢¢= E¢¢ + a´g43 = 413 - 5=408.
Проверим оптимальность нового опорного плана. Поскольку наибольшее число базисных клеток (две), например, в первом столбце таблицы, положим его потенциал равным нулю, последовательно определим потенциалы остальных строк и столбцов, найдем псевдостоимости клеток:
Таблица 21
Потенциалы базПотенциалы магазиновЗапасb1=0b2=-5b3=-2b4=-3a1=557033421515a2=661143631823a3=661945325205a4=9910476922175Спрос28172820
Поскольку во всех свободных клетках псевдостоимость не превышают стоимости, рассматриваемый план
является оптимальным. Стоимость плана x (минимальные транспортные издержки) равна 408.
Задания для контрольной работы
В контрольную работу по математическому программированию входят две задачи.
Номер выполняемого варианта совпадает с последней цифрой студенческой зачетной книжки. Если эта цифра 0, выполняется 10 вариант.
Задача планирования товарооборота
При продаже товаров А и В используется три вида ресурсов: R1, R2, R3.
Сведения о количестве ресурсов, необходимых для продаж и единицы каждого товара, обеспеченности торгового предприятия этими ресурсами и ценах, по которым товары продаются, приведены в следующей таблице:
ТоварыРесурсыABЗапас ресурсовR1a1b1c1R2a2b2c2R3a3b3c3Цена товараp1p2
Постройте математическую модель задачи максимизации товарооборота. Полученную задачу математического программирования решите геометрически, симплекс-методом.
Номер вариантаТехнология продажи товаровЗапас ресурсовЦены товаров(a1, a2, a3)(b1, b2, b3)(c1, c2, c3)(p1, p2)12 4 21 5 4120 280 2003 421 6 02 2 330 60 423 431 4 12 2 080 140 303 243 5 22 2 642 60 848 751 2 02 1 170 80 309 661 3 12 2 412 24 203 471 5 46 2 2620 600 50011 583 1 32 6 4600 720 72011 995 2 32 6 2600 960 39011 9101 1 51 0 2210 100 60010 5
Транспортная задача
Решите транспортную задачу, условия которой представлены ее матрицей:
Номер вариантаМатрица транспортной задачи12345678910