МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Вологодский государственный технический университет Кафедра экономико-математического моделирования ЭКОНОМИКО-МАТЕМАТИЧЕСКИЕ МЕТОДЫ И МОДЕЛИ Методические указания и задания к контрольной работе для студентов заочной формы обучения Факультет: заочного и дистанционного обучения Специальность: 120100 Вологда 2003 УДК: 65.012.122 Экономико-математические методы и модели: Методические указания и задания к контрольной работе для студентов заочной формы обучения/ Сост.: Н.С. Матвеев, Л.В. Ярыгина. – Вологда: ВоГТУ, 2003. – __ с. В методических указаниях рассматриваются методы решения задач линейного программирования: универсальный – симплексный метод и специальный – метод потенциалов. Основные положения сопровождаются примерами. Методические указания содержат варианты контрольной работы для студентов заочной формы. Утверждено редакционно-издательским советом ВоГТУ Составители: Н.С. Матвеев, Л.В. Ярыгина Рецензент: 2 ВВЕДЕНИЕ Одной из важных задач экономики является поиск наилучших решений, обеспечивающих достижение определенных целей, например, максимизации прибыли от реализации продукции или минимизации затрат. Деятельность предприятия характеризуется наличием ограничений на факторы производства. В зависимости от характера целевых функций и факторов производства можно выделить классы задач, которые решаются различными математическими методами. В предлагаемых методических указаниях рассматриваются графический и симплексный методы решения задач линейного программирования, теория двойственности и транспортная задача линейного программирования. МЕТОДИЧЕСКИЕ УКАЗАНИЯ В различных областях человеческой деятельности, и, прежде всего в сфере экономики, находят применение задачи, где необходим выбор одного из возможных образов действий в соответствии с указанной целью. Изучением экстремальных задач и разработкой методов их решения занимается математическое программирование. В общем виде математическая постановка экстремальной задачи состоит в определении наибольшего или наименьшего значения целевой функции f x1 , x2 , , xn при условиях g i x1 , x2 , , xn bi i 1, m , где f и g i – заданные функции, а bi – некоторые действительные числа. В зависимости от свойств функций f и g i задачи математического программирования делятся на задачи линейного и нелинейного программирования. При этом если все функции f и g i линейные, то соответствующая задача является задачей линейного программирования. Исследование зависимостей между величинами, встречающихся во многих экономических задачах, приводит к линейной функции с линейными ограничениями, наложенными на неизвестные. Примером тому является задача оптимального использования ресурсов. Задача оптимального использования ресурсов Постановка задачи. Предприятие может выпускать n различных типов продукции, используя при этом ресурсы m видов. Известно: нормы затрат ресурсов при производстве единицы продукции каждого типа, запасы ресурсов в плановом периоде, цены на продукцию. Определить план выпуска изделий, обеспечивающий максимальную выручку от реализации продукции. Сбыт всей выпускаемой продукции обеспечен. 3 Условные обозначения: n – количество типов продукции; j – порядковый номер типа продукции j 1, n ; m – количество видов ресурсов; i – порядковый номер вида ресурсов i 1, m ; a i j – расход i -го ресурса при производстве единицы j -ой продукции; bi – запас ресурса i -го вида; с j –цена единицы продукции j -го типа. x j – планируемый объем производства продукции j -го типа. Математическая модель задачи. Продукция j , произведенная в количестве x j , обеспечит выручку от реализации с j x j (д.е.), поэтому общая выручка от реализации продукции ( F x) равна с1 x1 с2 x2 сn xn (д.е.). Так как необходимо получить максимальную выручку от реализации продукции, F x следует максимизировать: F x с1 x1 с2 x2 сn xn max . (1) Расход i -го ресурса при производстве x j единиц продукции j -го типа составит ai j x j единиц, а расход i -го ресурса при производстве всей выпускаемой предприятием продукции – ai 1 x1 ai 2 x2 ai n xn (единиц). Так как запас ресурса каждого вида ограничен, должны выполняться следующие условия: Расход i го ресурса Запас i го ресурса . Таким образом, приходим к следующей системе неравенств: a11 x1 a1 2 x2 a1 n xn b1 , a2 1 x1 a2 2 x2 a2 n xn b2 , , (2) a x a x a x b . m2 2 mn n m m1 1 Если продукция j -го типа не выпускается, то x j 0 , в противном случае – x j 0 . Поэтому на неизвестные задачи должно быть наложено условие неотрицательности: x1 0 , x2 0 , … , xn 0 . (3) Функция F x , подлежащая максимизации, называется целевой, а условия (2), (3) – ограничениями задачи линейного программирования. Эквивалентные формы задач линейного программирования В зависимости от особенностей ограничений различают три основные 4 формы задач линейного программирования: стандартную, каноническую и общую. Задача (1), (2), (3) имеет стандартную форму. Итак, стандартная задача – это задача с однотипными ограничениями–неравенствами и неотрицательными переменными. Канонической называется задача, где ограничения системы (2) имеют форму равенств и все переменные неотрицательны. Частным случаем канонической задачи является задача в базисной форме, отличающаяся тем, что все bi 0 i 1, m , и в каждом условии имеется переменная с коэффициентом +1, которая не входит ни в одно из остальных уравнений. Переменная с таким свойством называется базисной. Общей называется задача, в которой имеются ограничения в виде как равенств, так и неравенств, а требование неотрицательности может быть наложено не на все переменные. Нахождение решения задач линейного программирования Совокупность чисел X x1 , x2 , , xn , удовлетворяющих ограничениям задачи, называется допустимым решением (или планом), а план X * x1* , x*2 , , x*n , при котором целевая функция задачи примет свое экстремальное значение, называется оптимальным. При решении задач двумерного пространства в основном применяется графический метод. Пусть дана задача: F x с1 x1 с2 x2 max , (4) a11 x1 a1 2 x2 b1 , a2 1 x1 a2 2 x2 b2 , a x a x b , m2 2 m m1 1 (5) x1 0 , x2 0 . (6) Каждое неравенство системы (5) геометрически определяет полуплоскость с граничной прямой ai 1 x1 ai 2 x2 bi i 1, m . Условие неотрицательности (6) определяет полуплоскости соответственно с граничными прямыми x1 0 , x2 0 . Если система условий задачи совместна (т. е. имеет хотя бы одно решение), то полуплоскости, пересекаясь, образуют общую часть, называемую многоугольником решений (рис. 1). Он может быть точкой, отрезком, лучом, многоугольником, неограниченной многоугольной областью. Таким образом, допустимыми решениями являются только точки заштрихованной области. Оптимальными решениями будут те из них, в которых целевая функция максимальна. 5 I x2 x2 B A II X * x1* , x*2 C с2 С VI III 1 D -1 -1 1 с1 x1 IV V Рис. 1. Графическое решение задачи линейного программирования. Линии I, II, III, IV: ai 1 x1 ai 2 x2 bi . Линия V:. с1 x1 с2 x2 0 Линия VI: с1 x1 с2 x2 max . Уравнение целевой функции с1 x1 с2 x2 h для любого фиксированного h представляет собой прямую. При различных значениях h получаются параллельные между собой прямые. Поэтому, приравняв F x к некоторой постоянной, например к 0, и построив соответствующую прямую, нужно передвигать ее параллельно самой себе в направлении увеличения h , С с1 , c2 . При этом которое определяется направляющим вектором последняя общая точка (или точки) заштрихованной области и прямой с1 x1 с2 x2 h и определяет (-ют) оптимальный план (планы) задачи. Возможна также ситуация, когда целевая функция неограниченна сверху. Итак, нахождение решения задачи линейного программирования графическим методом включает следующие этапы: 1) Строят прямые, уравнения которых получаются в результате замены в ограничениях (5), (6) знаков неравенств на знаки точных равенств. 2) Находят полуплоскости, определяемые каждым из ограничений задачи. 3) Находят многоугольник решений. 4) Строят вектор С с1 , c2 . 5) Строят прямую с1 x1 с2 x2 h . 6) Передвигают прямую с1 x1 с2 x2 h в направлении вектора С , в 6 результате чего либо находят точку (точки), в которой (которых) целевая функция принимает максимальное значение, либо устанавливают неограниченность сверху функции на множестве планов. 7) Определяют координаты точки максимума функции и вычисляют значение целевой функции в этой точке. Из геометрического представления задачи линейного программирования видно, что для ее решения необходимо исследовать только вершины многоугольного множества – опорные планы задачи. Этот вывод сохраняется и при переходе к задачам с большим числом переменных, где вместо многоугольного рассматривается многогранное множество допустимых решений. Выбор среди всех вершин многогранника решений той, в которой целевая функция достигает своего экстремального значения, осуществляется с и м п л е к с н ы м м е т о д о м , разработанным применительно к задачам в базисной форме. Для решения симплекс-методом задачи (1), (2), (3), имеющей стандартную форму, следует сначала привести ее к каноническому виду. В каждое ограничение системы (2) необходимо добавить дополнительную неотрицательную переменную xni 0 i 1, m . В целевую функцию дополнительные переменные войдут с нулевыми коэффициентами. В результате получается задача в базисной форме: F x с1 x1 с2 x2 (7) сn xn 0 xn1 0 xn 2 0 xn m max, a11 x1 a1 2 x2 a1 n xn xn1 b1 , a2 1 x1 a2 2 x2 a2 n xn xn 2 b2 , a x a x a x x b , m2 2 mn n nm m m1 1 (8) x1 0 , x2 0 , … , xn 0 , xn1 0 , xn 2 0 , … , xnm 0 . (9) Вычислительная схема симплекс-метода для задачи в базисной форме ( F x максимизируется): 1. Находят первое опорное решение: x1 x2 xn 0 , xn1 b1 , xn 2 b2 , … , xn m bm . 2. Составляют симплекс-таблицу (таблица 1). Первые m строк заполняют, используя запись задачи в базисной форме и найденный опорный план. В столбце i записывают номера строк. В столбце Б перечисляются базисные переменные. Соответствующие базисным переменным коэффициенты целевой функции заносят в столбец С i , а значения базисных переменных при рассматриваемом опорном плане – в столбец bi . В столбцах переменных x1 , x2 , , xn записывают коэффициенты a i j из системы (8). Показатели m 1 -ой строки вычисляют. Для определения значения F x 7 используется формула: m F x ci bi , (10) i 1 а для расчета Δ - оценок – m Δ j ci ai j c j , ( j 1, n m) . (11) i 1 Таблица 1 Первая симплексная таблица i Сi 1 c n 1 x n 1 b1 2 … m c n 2 xn 2 … … cn m x n m b2 … bm Б bi m1 F x c1 с2 … сn c n 1 сn 2 … сn m x1 a1 1 x2 a1 2 … xn x n 1 xn 2 … xn m … a1 n a1 n 1 a1 n 2 … a1 n m a2 1 a2 2 a2 n a2 a2 … am 2 … am n … … … a2 nm … am 1 … … … Δ1 Δ2 … Δn n 1 … am n 1 Δn1 n 2 … am n 2 Δn 2 … am … … n m Δmn 3. Опорный план проверяют на оптимальность: если все Δ j 0 , то задача решена (признак оптимальности для нахождения минимума функции цели – все Δ j 0 ). Если не все Δ j 0 Δ j 0 , то переходят к шагу 4. 4. Среди значений Δ j 0 находят наибольшее по абсолютной величине (если находится минимум функции цели, выбирают наибольшее значение Δ j из Δ j 0 ). Соответствующий ему столбец называется ключевым. Он указывает на переменную, которую необходимо ввести в базис. Пусть это будет столбец с номером S . Если в ключевом столбце все элементы ai s 0 i 1, m , целевая функция не ограничена. Решение окончено. Если не все ai s 0 , то переходят к шагу 5. 5. Для каждого элемента ai s 0 ключевого столбца находят отношение: i bi ai s . (12) Полученные значения i записывают в -столбец, выбирают наименьшее из них и ту строку, где оно достигается, называют ключевой. Она указывает на переменную, которая их базиса выйдет. Пусть это будет строка с номером r , элемент a r s на пересечении ключевого столбца и ключевой строки называется ключевым. 6. Составляют новую симплекс-таблицу. В столбце Б в r -ой строке записывают переменную xs , а в столбце С i – соответствующий ей коэф8 фициент С s . Остальные элементы столбцов Б и Сi переносят из н н предыдущей таблицы без изменений. Элементы br и ar j ( j 1, n m) получают из соответствующих элементов ключевой строки предыдущей таблицы делением их на величину ключевого элемента. В S -м столбце в ! r ой строке получается 1, а в остальные строки этого столбца записывают н н нули. Остальные элементы bi и ai j пересчитывают из элементов предыдущей таблицы по правилу прямоугольника (формулы (13), (14)): br ai s biн bi , (13) ar s aiнj ai j a r j ai s . (14) ar s Для определения показателей оценочной строки снова используют формулы (10), (11) или правило прямоугольника (формулы (15), (16)): b Δ F н x F x r s , (15) ar s Δнj Δ j ar j Δ s ar s Переходят к шагу 3. . (16) Пример 1. Решить симплекс-методом задачу: F x x1 3 x2 x3 max , 3 x1 x2 2 x3 7, 12, 2 x1 4 x2 4 x 3 x 8 x 10, 1 2 3 x1 0 , x2 0 , x3 0 . Приведем задачу к каноническому виду: F x x1 3 x2 x3 0 x4 0 x5 0 x6 max , 7, 3 x1 x2 2 x3 x4 x5 12, 2 x1 4 x2 4 x 3 x 8 x x6 10, 1 2 3 x1 0 , x2 0 , x3 0 , x4 0 , x5 0 , x6 0 . Получили задачу в базисной форме, где переменные x4 , x5 , x6 – базисные. Находим первое опорное решение: x1 x2 x3 0 , x4 7, x5 12, x6 10 Значение целевой функции при данном плане равно F x 0 . Используя запись задачи в базисной форме и найденный опорный план, заполняем первые три строки первой симплексной таблицы (таблица 2). 9 Таблица 2 Первая симплексная таблица -1 3 -1 0 0 x3 x4 x5 x2 x1 0 x6 i Сi Б bi 1 0 x4 7 3 -1 2 1 0 0 – 2 0 x5 12 -2 4 0 0 1 0 3 3 0 x6 10 -4 3 8 0 0 1 10/3 0 1 -3 1 0 0 0 4 Показатели четвертой строки рассчитываем при помощи формул (10) и (11): 3 F x ci bi 0 7 0 12 0 10 0 , i 1 3 Δ1 ci ai 1 c1 0 3 0 2 0 4 1 1 , i 1 Δ2 3 , Δ3 1 , Δ4 0 , Δ5 0 , Δ6 0 . Так как оценка Δ2 отрицательна, то ключевым на данной итерации будет столбец переменной x2 . Наличие в ключевом столбце положительных элементов позволяет определить ключевую строку. Выбираем ее по наименьшему из отношений 2 12 4 3 и 3 10 3 3 1 3 . Ключевой элемент a22 4 возьмем в рамку. Переходим ко второй симплексной таблице (таблица 3). Таблица 3 Вторая симплексная таблица Б bi -1 x1 0 x4 10 2 3 x2 3 0 x6 i Сi 1 4 3 x2 -1 x3 0 x4 0 x5 0 x6 5/2 0 2 1 1/4 0 4 3 -1/2 1 0 0 1/4 0 – 1 -5/2 0 8 0 -3/4 1 – 9 -1/2 0 1 0 3/4 0 10 В столбце Б вместо переменной x 5 записываем переменную x2 . Соответствующий переменной x2 коэффициент в столбце С i равен 3. Остальные элементы столбцов Б и С i переносим из предыдущей таблицы н н без изменений. Элементы b2 и a2 j j 1, 6 получаем из соответствующих элементов первой симплексной таблицы делением их на 4. В столбце н н переменной x2 в 1, 3 строках записываем 0. Остальные элементы b j и ai j н пересчитываем по формулам (13), (14). Например, для вычисления b1 находим в таблице 2: 1) Число, соответствующее старому значению пересчитываемого элемента (7); 2) Число, стоящее на пересечении столбца, в котором расположен пересчитываемый элемент, и ключевой строки (12); 3) Число, стоящее на пересечении ключевого столбца и строки, в которой расположен пересчитываемый элемент (-1); 4) Число, соответствующее ключевому элементу (4). Искомый элемент равен: 12 1 b1н 7 10 . 4 Показатели оценочной строки определим по формулам (10), (11) или (15), (16). Например, 1 1 3 3 1 3 3 Δ5н 0 3 0 0 или Δ5н 0 . 4 4 4 4 4 4 Новый опорный план задачи: x1 x3 x5 0 , x2 3 , x4 10 , x6 1 ; F x 9 (см. столбцы Б и bi второй симплексной таблицы). Так как в оценочной строке имеется оценка Δ1 0 , то полученное решение не является оптимальным. Наличие в столбце переменной x1 положительного элемента позволяет перейти к следующему опорному плану: x1 4 , x2 5 , x3 x4 x5 0 , x6 11 ; F x 11 (таблица 4). Таблица 4 Третья симплексная таблица i Сi Б bi -1 x1 3 x2 -1 x3 0 x4 0 x5 0 x6 1 -1 x1 4 1 0 4/5 2/5 1/10 0 2 3 x2 5 0 1 2/5 1/5 3/10 0 3 0 x6 11 0 0 10 1 -1/2 1 11 0 0 7/5 1/5 4/5 0 4 11 Значения всех Δ - оценок неотрицательны, поэтому полученное * решение X 4, 5, 0, 0, 0, 11 является оптимальным и при этом решении * целевая функция принимает значение Fmax X 11 . Если каноническая задача не имеет базисной формы, то для ее решения можно использовать симплексный метод с искусственным базисом. Пусть дана задача: F x с1 x1 с2 x2 сn xn max, (17) a11 x1 a1 2 x2 a1 n xn b1 , a2 1 x1 a2 2 x2 a2 n xn b2 , (18) a x a x a x b , m2 2 mn n m m1 1 x1 0 , x2 0 , … , xn 0 . (19) В данном случае ограничения системы (18) не содержат базисных переменных. К каждому равенству прибавляют по одной переменной, которые называются искусственными. При этом величина Сni i 1, m предполагается достаточно малым отрицательным числом, если задача решается на отыскание максимального значения целевой функции Сni M и достаточно большим положительным числом, если задача решается на отыскание минимального значения целевой функции Сni M . В результате получают так называемую расширенную задачу. Так, для задачи (17), (18), (19) расширенная задача имеет вид: F x с1 x1 с2 x2 сn xn (20) М xn1 М xn 2 М xn m max, a11 x1 a1 2 x2 a1 n xn xn1 b1 , a2 1 x1 a2 2 x2 a2 n xn xn 2 b2 , a x a x a x x b , m2 2 mn n nm m m1 1 (21) x1 0 , x2 0 , … , xn 0 , xn1 0 , xn 2 0 , …, xnm 0 . (22) Задача (20), (21), (22) записана в базисной форме, поэтому ее решение можно найти симплексным методом. В первоначальном опорном плане базис образован искусственными переменными, однако коэффициенты Сni i 1, m , по абсолютной величине значительно превосходящие остальные коэффициенты целевой функции, позволяют выводить из базиса искусственные переменные и вводить в базис переменные исходной задачи. Для отыскания оптимального плана исходной задачи используют следующую теорему. 12 * * * 0, , 0 расТеорема. Если в оптимальном плане X x1 , x2 , , xn , 0, m * * * * * ширенной задачи переменные xni 0 i 1, m , то план X x1 , x2 , , xn является оптимальным планом исходной задачи. Решая расширенную задачу симплексным методом, необходимо руководствоваться следующим. 0, , 0 , b1 , b2 , , bm расширенной При первом опорном плане ! 0, n m задачи значение целевой функции есть F x M bi , а значения Δ -оценок i 1 m равны Δ j M ai j c j ( j 1, n m) .Таким образом, F x и Δ -оценки i 1 состоят из двух частей, одна из которых зависит от М , а другая – нет. Поэтому после вычисления F x и Δ j ( j 1, n m) их значения, а также исходные данные расширенной задачи заносят в таблицу, которая содержит на одну строку больше, чем обычная симплекс-таблица. При этом, в m 2 -ю строку помещают коэффициенты при М , а в m 1 -ю – слагаемые, не содержащие М . Проверка рассматриваемого опорного плана на оптимальность, а также выбор ключевого столбца осуществляются по оценкам m 2 -й строки. Искусственная переменная, исключенная из базиса на некоторой итерации, в дальнейшем не может быть введена в базис, и соответствующий столбец можно не заполнять. Пересчет симплекс-таблицы при переходе от одного опорного плана к другому производят по общим правилам симплексного метода. Итерационный процесс по m 2 -ой строке проводят до тех пор, пока не исключат из базиса все искусственные переменные, затем процесс отыскания оптимального плана продолжают по m 1 -ой строке. Доказано, что: 1) если в оптимальном плане расширенной задачи хотя бы одна из искусственных переменных положительна, то исходная задача не имеет допустимых планов – ее условия несовместны; 2) если расширенная задача не имеет решения, то и исходная задача неразрешима. Итак, процесс нахождения решения задачи (17), (18), (19) методом искусственного базиса включает следующие основные этапы: 1. Составляют расширенную задачу (20), (21), (22); 2. Находят опорный план расширенной задачи; 3. При помощи симплекс-метода исключают искусственные 13 переменные из базиса. В результате либо находят опорный план задачи (17), (18), (19), либо устанавливают ее неразрешимость; 4. Используя найденный опорный план задачи (17), (18), (19), либо находят симплекс-методом оптимальный план исходной задачи, либо устанавливают ее неразрешимость. Пример 2. Решить симплекс-методом с искусственным базисом задачу: F x 8 x1 2 x2 2 x3 5 x4 6 x5 min , 16 , x1 x2 x3 x4 x5 20, 4 x1 2 x2 2 x3 x1 0 , x2 0 , x3 0 , x4 0 , x5 0 . Так как уравнения системы не содержат базисных переменных, к каждому равенству прибавим по искусственной переменной x6 0 и x7 0 , включив их в целевую функцию с коэффициентом М . Получим расширенную задачу F x 8 x1 2 x2 2 x3 5 x4 6 x5 М x6 М x7 min, x6 16 , x1 x2 x3 x4 x5 x7 20, 4 x1 2 x2 2 x3 x1 0 , x2 0 , x3 0 , x4 0 , x5 0 , x6 0 , x7 0 , для которой можно найти первоначальный опорный план: x1 x2 x3 x4 x5 0 , x6 16 , x7 20 . Решаем расширенную задачу симплекс-методом (таблица 5). !Таблица 5 Симплексные таблицы решения расширенной задачи x2 2 x3 5 x4 6 x5 М x6 М x7 1 1 -1 -1 0 1 0 16 -2 2 0 -1 0 1 5 0 36 М 4 8 5М 2 -М -2 М -5 -М -6 -М 0 0М 0 0М 3/2 -3/2 -1 1/4 1 8/3 0 0 0М - Б bi -8 x1 -2 М x6 16 М x7 20 i Сi 1 2 3 4 1 М x6 11 0 2 3 4 1 2 -8 x1 -2 -8 x2 x1 5 -40 11 М 22/3 26/3 1 0 0М 0 1 -1/2 1/2 0 -1/4 6 -6 -5 -4 3/2 М -3/2 М -3/2 М 1/4 М 1 -1 -2/3 1/6 0 0 -1/3 -1/6 14 3 -84 0 0 0 15 -1 -5 x1 26 , x2 22 , 3 3 x3 x4 x5 x6 x7 0 . Отметим, что искусственные переменные x6 , x7 * равны нулю. Следовательно, план X 26 3 , 22 3 , 0, 0, 0 является оптимальным решением исходной задачи, а минимальное значение целевой * функции равно F X 84 . Иногда для нахождения решения задачи линейного программирования можно использовать теорию двойственности, согласно которой каждой задаче линейного программирования можно определенным образом сопоставить некоторую другую задачу (линейного программирования), называемую двойственной по отношению к исходной или прямой. Связь взаимодвойственных задач заключается в том, что решение одной из них можно получить непосредственно из решения другой, используя теоремы двойственности. По отношению к задаче (1), (2), (3) двойственной является следующая задача: F * y b1 y1 b2 y 2 bm y m min , (23) a11 y1 a21 y 2 am1 y m c1 , a 12 y1 a2 2 y 2 am 2 y m c2 , , (24) a y a y a y c , 2n 2 mn m n 1n 1 y1 0 , y2 0 , … , y m 0 . (25) Оптимальный план расширенной задачи: Правила составления двойственной задачи 1. Число переменных в двойственной задаче равно числу ограничений в системе (2) исходной задачи, а число ограничений в системе (24) двойственной задачи равно числу переменных в исходной задаче. 2. Матрица, составленная из коэффициентов a i j при неизвестных в системе ограничений (2) исходной задачи, и аналогичная матрица a11 a21 am1 a a a m2 AT 12 22 a a a mn 1n 2n в двойственной задаче получаются друг из друга транспонированием (т. е. заменой строк столбцами, а столбцов – строками). 3. Коэффициентами перед переменными в целевой функции (23) двойственной задачи являются свободные члены из системы (2) исходной задачи, а правыми частями в ограничениях системы (24) двойственной задачи – коэффициенты при неизвестных в целевой функции (1) исходной задачи. 4. Целевая функция исходной задачи задается на максимум, а целевая 16 функция двойственной задачи – на минимум. 5. Если переменная x j исходной задачи может принимать лишь неотрицательные значения, то j -е условие в системе (24) двойственной задачи является неравенством. Если же переменная x j не ограничена по знаку, то j -е ограничение в системе (24) представляет собой уравнение. Если j -е ограничение в системе (2) исходной задачи является неравенством, то переменная yi двойственной задачи должна быть неотрицательна. В противном случае переменная yi не ограничена по знаку. Замечание: Если в исходной задаче целевая функция максимизируется, а система ограничений содержит неравенства разного смысла, то целесообразно привести их к виду « ». В этом случае неравенства системы ограничений двойственной задачи будут иметь вид « ». Теоремы двойственности Теорема 1. Если одна из пары двойственных задач имеет оптимальный план, то и другая задача имеет оптимальный план и значения целевых функций задач при оптимальных планах равны между собой, т.е. * * * ! Fmax X Fmin Y . (26) Если же целевая функция одной из них не ограничена, то другая задача вообще не имеет решения. Теорема 2. (На примере взаимодвойственных задач (1), (2), (3) и (23), (24), (25)). * * * * * * * * План X x1 , x2 , , xn прямой задачи и план Y y1 , y 2 , , y m двойственной задачи являются оптимальными планами этих задач тогда и только тогда, когда выполняются условия: a1j y1* a2j y*2 am j y*m c j x*j 0 j 1, n , (27) b a i 1, m . x y * x1* ai2 x*2 ai n *n (28) i 0 Алгоритм нахождения решения двойственной задачи (23), (24), (25) по оптимальному решению исходной задачи(1), (2), (3): 1. Приводят системы ограничений (2) и (24) к канонической форме: ai1 x1 ai2 x2 ai n xn xni bi i 1, m , i i1 a1j y1 a2j y2 am j ym ym j c j 2. Составляют условия (27), (28): y*m j x*j 0 j 1, n , j 1, n . x*ni yi* 0 i 1, m . 3. Определяют переменные двойственной задачи, принимающие в оптимальном плане нулевые значения; 4. Удаляют из системы уравнений двойственной задачи переменные, принимающие в оптимальном плане нулевые значения; 17 5. Решают сокращенную систему уравнений двойственной задачи; 6. Проверяют выполнение равенства (26). Пример 3. Для задачи из примера 1 составить двойственную задачу и, используя теоремы двойственности, найти по оптимальному решению исходной задачи оптимальный план двойственной. Применяя правила составления двойственной задачи, получаем следующую задачу: F * y 7 y1 12 y 2 10 y3 min , 3 y1 2 y 2 4 y3 1, y1 4 y 2 3 y3 3, , 2 y 8 y3 1, 1 y1 0 , y2 0 , y3 0 . Запишем системы ограничений канонической форме: Прямая задача 7, 3 x1 x2 2 x3 x4 x5 12, 2 x1 4 x2 4 x 3 x 8 x x6 10 1 2 3 прямой и двойственной задач в Двойственная задача 1, 3 y1 2 y2 4 y3 y4 y5 3, y1 4 y 2 3 y 3 2 y 8 y3 y6 1. 1 Составим условия (27), (28): x1* y*4 0 ; y1* x*4 0 ; x*2 y*5 0 ; y*2 x*5 0 ; x*3 y6* 0 ; y*3 x6* 0 . Так как в оптимальном плане прямой задачи переменные x1 , x2 , x6 отличны от нуля, то в оптимальном плане двойственной задачи переменные y 4 , y 5 , y 3 равны нулю. Тогда система уравнений имеет вид: 1, 3 y1 2 y2 3, y1 4 y2 2 y y6 1. 1 y 1 1 , y 2 4 , y6 1 2 . 5 5 5 * Подставляем найденные значения переменных двойственной задачи в F y : F * y 7 1 12 4 10 0 0 0 0 0 0 1 2 11 . 5 5 5 Так как значения целевых функций при оптимальных решениях * * * взаимодвойственных задач совпадают ! Fmax X Fmin Y 11 , то полученный план двойственной задачи является оптимальным. Решая эту систему, получаем: 18 Транспортная задача линейного программирования Постановка задачи. Пусть имеется m пунктов производства некоторого однородного продукта и n пунктов его потребления. Известно: запас продукта в каждом пункте-поставщике, спрос в каждом пункте-потребителе и расходы на перевозку единицы груза от каждого отправителя к каждому потребителю. Требуется составить план перевозок продукта от производителей к пунктам назначения, при котором общие транспортные расходы минимальны. Условные обозначения: m – количество пунктов отправления; i – порядковый номер пункта отправления i 1, m ; n – количество пунктов потребления; j – порядковый номер пункта потребления j 1, n ; ai – количество единиц груза в i -м пункте отправления; b j – потребность в единицах груза в j -ом пункте назначения; C i j – расходы на перевозку единицы груза из i -го пункта отправления в j -й пункт назначения. x i j – искомый объем перевозки продукта из i -го пункта отправления в j -й пункт назначения. Математическая модель задачи: m n F x Ci j xi j min , (29) i 1 j 1 n xi j ai , i 1, m j 1 m x b , j 1, n ij j i 1 xi j 0 i 1, m; j 1, n . (30) (31) n Если общая потребность в грузе в пунктах назначения b j равна j 1 m запасу груза в пунктах отправления ai , т.е.: i 1 m n i 1 j 1 ai b j , (32) то модель такой транспортной задачи называется закрытой. Если же указанное условие не выполняется, то модель называется открытой. 19 Для разрешимости транспортной задачи необходимо и достаточно, чтобы запасы груза в пунктах отправления были равны потребностям в грузе в пунктах назначения. Поэтому, приступая к нахождению оптимального плана транспортной задачи, следует проверить выполнение равенства (32). m n i 1 j 1 В случае превышения запаса над потребностью, т. е. ai b j , вводится фиктивный m n i 1 j 1 n 1 -й пункт назначения с потребностью bn1 ai b j и соответствующие тарифы считаются равными нулю: C i n 1 0 m 1 -й m n i 1 j 1 i 1, m . Аналогично, при ai b j пункт отправления с запасом груза вводится фиктивный n m j 1 i 1 am1 b j ai и соответствующие тарифы полагаются равными нулю: C m1 j 0 j 1, n . Благодаря особенностям ограничений системы (30) для определения оптимального плана транспортной задачи разработаны специальные методы. Один из них – метод потенциалов. Общий принцип нахождения оптимального плана транспортной задачи методом потенциалов аналогичен принципу решения задачи линейного программирования симплекс-методом, а именно: сначала строят опорный план транспортной задачи, затем его последовательно улучшают до получения оптимального плана. Для определения первого опорного плана транспортной задачи можно воспользоваться различными методами, например методом северозападного угла или методом аппроксимации Фогеля. При построении первого опорного плана составляют таблицу 6. Вначале полагают все переменные x i j равными 0, при этом клетки таблицы условий считаются свободными. После того, как определено значение какойлибо переменной x i j , оно заносится в соответствующую клетку i, j , которая теперь будет называться занятой. Таблица 6 Таблица условий транспортной задачи Пункты отправления A1 B1 C11 x11 … Ai Пункты назначения Bj … … … … C1 j x1 j … C i1 xi1 … … C1 n x1 n … Ci j xi j 20 … … Запасы Bn … a1 … Ci n xi n ai … Am Потребности … … Cm1 xm1 b1 … … … Cm j xm j bj 21 … … … … Cm n xm n bn … am Рассматриваемые методы построения первого опорного плана гарантируют получение в исходном плане m n 1 занятых клеток. Это означает, что опорный план является невырожденным. Алгоритм метода северо-западного угла Заполнение клеток таблицы условий начинается с левой верхней клетки для неизвестного x11 . xi j Шаг 1. Выбранной переменной присваивают значение xi j min ai , b j , где ai и b j – текущие значения запаса и спроса. Шаг 2. Если xi j ai b j , то исключают из дальнейшего рассмотрения i -ю строку и устанавливают текущее значение b j равным b j xi j . Переходят к шагу 5. Шаг 3. Если xi j b j ai , то исключают из дальнейшего рассмотрения j -й столбец и текущее значение ai определяют как ai xi j . Переходят к шагу 5. Шаг 4. Если xi j ai b j , то исключают из дальнейшего рассмотрения сначала i -ю строку (или j -й столбец). Затем в j -м столбце (или i -й строке) выбирают одну из переменных, не исключенных ранее, полагают ее равной 0, и также исключают соответствующий (-ую) столбец (строку). Переходят к шагу 5. Шаг 5. Если присвоены значения менее чем m n 1 переменным, выбирают не исключенную переменную «северо-западного» угла и возвращаются к шагу 1. Если определены значения m n 1 переменных, алгоритм закончен. Алгоритм метода аппроксимации Фогеля Шаг 1. Для всех столбцов находят разность между двумя записанными в них минимальными тарифами. Эти разности заносят в специально отведенную строку в таблице условий задачи. Шаг 2. Для всех строк находят разность между двумя записанными в них минимальными тарифами. Эти разности заносят в столбец разностей в таблице условий задачи. Шаг 3. Среди всех указанных разностей выбирают максимальную. Шаг 4. В строке (или столбце), которой (-му) соответствует максимальная разность, определяют минимальный тариф. Он указывает на клетку, заполняемую на данной итерации. Шаги 5, 6, 7 аналогичны шагам 2, 3, 4 алгоритма метода северозападного угла, но переходить следует к шагу 8. Шаг 8. Если присвоены значения менее чем m n 1 переменным, возвращаются к шагу 1. Если определены значения m n 1 переменных, алгоритм закончен. 22 Замечание: Если наибольших (одинаковых) разностей окажется несколько, то предпочтение отдают той, которой соответствует наименьший тариф. Когда первоначальный опорный план транспортной задачи построен, переходят к следующим этапам метода потенциалов: 1. Составляют систему потенциалов. Для каждого из пунктов отправления и назначения определяют потенциалы U i (потенциалы поставщиков) и (потенциалы потребителей) i 1, m; j 1, n . Значение одного из потенциалов можно положить равным произвольному числу, например U1 0 , значения остальных потенциалов определяются однозначно из условий: U i V j Ci j , (33) которые выполняются для занятых клеток. Найденные значения потенциалов записывают в строку и столбец, добавляемые к таблице условий задачи. 2. Проверяют выполнение условия оптимальности. Для каждой свободной клетки определяют Δi j равные: Δi j U i V j Ci j . (34) Vj Если среди чисел Δi j нет положительных, то получен оптимальный план транспортной задачи; иначе, переходят к новому опорному плану. 3. Строят новый опорный план. Из Δi j 0 выбирают максимальное. Клетку, которой это число соответствует, делают занятой. Заполняя выбранную клетку, необходимо изменить объемы поставок, записанных в ряде занятых клеток, связанных с заполняемой так называемым циклом. Цикл – это ломаная линия, выходящая из заполняемой клетки и возвращающаяся в нее, вершины которой расположены в занятых клетках, а звенья – вдоль строк и столбцов, причем в каждой вершине цикла встречаются ровно два звена, одно из которых находится в строке, а другое – в столбце. Если ломаная линия, образующая цикл, пересекается, то точки самопересечения не являются вершинами. Каждой из клеток, соответствующих вершинам цикла, приписывают определенный знак, причем свободной клетке – знак плюс, а всем остальным клеткам – поочередно знаки минус и плюс. В заполняемую клетку переносят меньшее из чисел x i j , стоящих в минусовых клетках. Одновременно это число прибавляют к числам, стоящим в плюсовых клетках, и вычитают из чисел, стоящих в минусовых клетках. Клетка, которая ранее была свободной, становится занятой, а минусовая клетка, в которой стояло минимальное из чисел x i j , считается свободной. В результате сдвига по циклу пересчета определяют новый опорный план транспортной задачи. 4. Возвращаются к этапу 1. Замечание 1: Если наибольших положительных Δi j окажется несколько, то предпочтение отдают той, которой соответствует наименьший тариф. 23 Замечание 2: Если в минусовых клетках имеются два (или более) одинаковых минимальных числа x i j , то освобождают лишь одну из таких клеток, а другую (-ие) оставляют занятой (-ыми) (с нулевыми поставками). Пример 4. В трех пунктах отправления сосредоточен однородный груз в количествах, соответственно равных 200, 270 и 130 т. Этот груз необходим в трех пунктах потребления в количествах, соответственно равных 120, 180 и 220 т. Расходы на перевозку единицы груза из каждого пункта отправления в каждый пункт потребления являются известными величинами (д. е.) и задаются матрицей: 2 4 11 C 5 1 7 . 3 6 2 Найти план перевозок, обеспечивающий вывоз имеющегося в пунктах отправления и завоз необходимого в пунктах потребления груза, при котором общие транспортные расходы были бы минимальными. Общий запас груза в пунктах отправления составляет 600 т, а общая потребность в грузе в пунктах потребления – 520 т. Введем фиктивный четвертый пункт потребления с потребностью 80 т, а C i r i 1, 3 будем считать равными 0. Для определения опорного плана задачи сначала воспользуемся методом северо-западного угла. Заполнение клеток таблицы условий (таблица 7) начнем с левой верхней клетки. Таблица 7 Первый опорный план Пункты отправления A1 A2 A3 Потребности Vj Пункты назначения B3 B2 B1 2 11 0 4 120 80 5 7 1 0 + 100 - 170 3 6 0 2 + 50 120 180 220 2 4 10 B4 + 80 8 * 80 Запасы Ui 200 0 270 -3 130 -8 600 Так как запасы пункта A1 больше, чем потребности пункта B1 , то полагаем x11 120 (записываем это значение в клетке (1,1) таблицы 7) и временно исключаем из рассмотрения столбец B1 , считая при этом запасы пункта A1 равными 80 т. Рассмотрим первые из оставшихся пункты отправления A1 и потребления B2 . Потребности пункта B2 больше остав24 шихся запасов пункта A1 . Положим x12 80 и исключим из рассмотрения строку A1 . Значение x12 80 запишем в клетку (1,2) таблицы 7, считаем потребности пункта B2 равными 100 т. Теперь перейдем к заполнению клетки для неизвестного x22 и т. д. Через пять итераций алгоритма остается один пункт отправления A3 с запасом груза 80 т и один пункт потребления B4 с потребностью 80 т. Соответственно остается одна свободная клетка, которую и заполняем, полагая x34 80 (табл. 7). В результате получаем опорный план: 0 0 120 80 X 0 100 170 0 . 0 0 50 80 Согласно данному плану перевозок, транспортные расходы составляют: F x 2 120 4 80 1 100 7 170 2 50 0 80 1950 (д.е. ) . Полученный опорный план невырожденный, так как количество занятых клеток равно 4 3 1 6 . Опорный план проверяем на оптимальность. Для этого находим потенциалы поставщиков и потребителей. Положим U1 0 , тогда, работая с занятыми клетками, получаем из условий (33): V1 2 0 2 , V2 4 0 4 , U 2 1 4 3 , V3 7 3 10 , U 3 2 10 8 , V4 0 8 8 . Для каждой свободной клетки вычисляем Δi j по формуле (34): Δ1 4 8 , Δ1 3 U 1 V3 C1 3 0 10 11 1 , Δ2 1 6 , Δ2 4 5 , Δ3 1 9 , Δ3 2 10 . Так как среди чисел Δi j имеются положительные, то построенный план перевозок не является оптимальным и надо перейти к новому опорному плану. Наибольшей из положительных чисел является Δ1 4 8 , поэтому для свободной клетки (1,4) строим цикл пересчета (см.табл.7). Наименьшее из чисел в минусовых клетках 80. Так как в минусовых клетках имеются два одинаковых минимальных числа, то в новой таблице (табл. 8) свободной делаем лишь одну из клеток (1,2) и (3,4), к примеру клетку (3,4), а вторую оставляем занятой с нулевой поставкой. Таблица 8 Второй опорный план Пункты отправления A1 A2 A3 Пункты назначения Запасы B4 B3 B2 B1 2 4 11 0 200 120 0 80 5 1 7 0 270 180 90 3 6 2 0 130 25 Ui 0 -3 -8 Потребности Vj 120 2 130 220 10 180 4 26 80 0 600 Клетка (1,4) становится занятой x1 4 80 . Числа в клетках (2,2), (2,3) и (3,3) таблицы 8 получаются так: к числам, стоящим в плюсовых клетках таблицы 7, добавляем 80 и вычитаем 80 из числа, стоящего в минусовой клетке. После этих преобразований получаем новый невырожденный опорный план (см. табл. 8), который проверяем на оптимальность. Снова находим потенциалы поставщиков и потребителей (см. последний столбец и нижнюю строку табл. 8), а затем для свободных клеток вычисляем Δi j : Δ1 3 1 , Δ2 1 6 , Δ2 4 3 , Δ3 1 9 , Δ3 2 10 , Δ3 4 8 . Так как среди чисел Δi j нет положительных, то полученный план 0 0 80 120 X * 0 180 90 0 . 0 0 130 0 является оптимальным. При данном плане транспортные расходы составляют: F * x 2 120 4 0 0 80 1180 7 90 2 130 1310 (д. е. ) Для определения опорного плана рассматриваемой задачи воспользуемся также и методом аппроксимации Фогеля. Для каждой строки и каждого столбца таблицы условий найдем разности между двумя минимальными тарифами, записанными в строке или столбце, и поместим их в дополнительном столбце и дополнительной строке таблицы 9. Таблица 9 Построение опорного плана по методу аппроксимации Фогеля Пункты отправления A1 A2 A3 Потребности Разности по столбцам Пункты назначения Запасы B4 B3 B2 B1 2 4 11 0 200 120 0 80 5 1 7 0 270 180 90 3 6 2 0 130 130 120 180 220 80 600 1 3 0 5 3 3 0 4 3 – 0 3 0 – – – 0 – – – Разности по строкам 2 2 2 2 0 1 1 1 – – 2 – – – – Минимальный тариф равен 0, а следующий за ним равен 2, разность между ними 2 0 2 . Точно так же разность между минимальными тарифами в столбце B1 равна 3 2 1 , вычислив все разности, видим, что наибольшая из них соответствует столбцу B3 . В этом столбце минимальный 27 тариф записан в клетке (3,3). Таким образом, эту клетку следует заполнить. Заполнив ее, мы исчерпаем запасы пункта A3 . Поэтому исключим из рассмотрения строку A3 и будем считать потребности пункта B3 равными 90 т. Затем определим следующую клетку для заполнения. Найдем разности между оставшимися двумя минимальными тарифами в строках и столбцах и запишем их во втором дополнительном столбце и во второй дополнительной строке табл. 9. На второй итерации наибольшая разность соответствует столбцу B3 . Минимальный тариф в этом столбце записан в клетке (2,3). Следовательно, заполняем эту клетку. Поместив в нее число 90, предполагаем, что потребности в пункте B3 полностью удовлетворены, а запасы в пункте A2 стали равными 180 т. Исключим из рассмотрения столбец B3 и определим новую клетку для заполнения. Как видно из табл. 9, это будет клетка (2,2), в которую записываем число 180. Тем самым мы одновременно исчерпаем запасы пункта A2 и удовлетворим потребности пункта B2 . Чтобы получить невырожденный план опорный, необходимо исключить из рассмотрения сначала, к примеру, строку A2 , а затем, заполнив клетку (1,2) нулевой перевозкой, и столбец B2 . Продолжая итерационный процесс, последовательно заполняем клетки (1,4) и (1,1). В результате получим тот же опорный план, что и в табл. 8. Преимуществом метода аппроксимации Фогеля является то, что его применение позволяет получить либо опорный план, близкий к оптимальному, либо сам оптимальный план, как и в рассмотренном примере. СОДЕРЖАНИЕ И ВАРИАНТЫ КОНТРОЛЬНОЙ РАБОТЫ Номер варианта контрольной работы соответствует последней цифре шифра зачетной книжки студента. Каждый вариант работы содержит четыре задания: Задание 1. Для задачи 1: а) составить математическую модель задачи; б) найти оптимальный план графическим методом; в) найти оптимальный план задачи симплекс-методом. Задание 2. Для задачи 1 составить двойственную задачу и, используя теоремы двойственности, найти оптимальный план двойственной задачи. Задание 3. Найти симплекс-методом с искусственным базисом оптимальный план задачи, двойственной к задаче 1. Задание 4. Решить задачу 2. Для получения первого опорного плана использовать: а) метод северо-западного угла; б) метод аппроксимации Фогеля. 28 Вариант 4 Задача 1. На звероферме могут выращиваться черно-бурые лисицы и песцы. Для обеспечения нормальных условий их выращивания используется три вида кормов. Исходные данные приведены в таблице: Вид корма I II III Прибыль от реализации одной шкурки, д.е. Количество единиц корма, которое Общее ежедневно должны получать количество корма Лисица Писец 2 3 180 4 1 240 6 7 426 16 12 Определить, сколько лисиц и песцов следует выращивать на звероферме, чтобы прибыль от реализации их шкурок была максимальной. Задача 2. На трех складах оптовой базы сосредоточен однородный груз в количествах 180, 60, 80 ед. Этот груз необходимо перевезти в четыре магазина. Каждый из магазинов должен получить соответственно 120, 40, 60 и 80 ед. груза. Тарифы перевозок единицы груза из каждого из складов во все магазины задаются матрицей: 2 3 4 3 C 5 3 1 2 . 2 1 4 2 Составить такой план перевозок, при котором общая стоимость перевозок является минимальной. 29