МИНИСТЕРСТВО ОБРАЗОВАНИЯ И МОЛОДЁЖНОЙ ПОЛИТИКИ СТАВРОПОЛЬСКОГО КРАЯ ГБОУ СПО «Ставропольский региональный колледж вычислительной техники и электроники» ПРАКТИКУМ по учебной дисциплине «Математические методы в программировании» Специальность: 09.02.03 (230115) Программирование в компьютерных системах Ставрополь, 2014 Составитель: Т.В. Давыдова, преподаватель математики высшей категории Рецензент: А.А. Скорынина, преподаватель профессионального цикла высшей категории Настоящее учебное пособие представляет собой сборник практических работ по учебной дисциплине «Математические методы в программировании». Сборник содержит краткий теоретический материал по теме «Линейное программирование», примеры решения задач и индивидуальные задания. Пособие предназначено для обучающихся СПО по специальности 09.02.03 (230115) Программирование в компьютерных системах. Содержание 1. Введение 2. Практическая работа №1 3. Практическая работа №2 4. Практическая работа №3 5. Практическая работа №4 6. Практическая работа №5 7. Практическая работа №6 8. Практическая работа №7 9. Список рекомендуемой литературы Введение Линейное программирование - раздел дисциплины «Математические методы в программировании», который изучает теорию и методы поиска лучших вариантов планирования хозяйственной деятельности человека как на одном определенном предприятии, так и в некоторой отрасли. Лучшие варианты – это те, производительность при труда, которых минимум достигается максимальная себестоимости, максимальная прибыль, минимум использования ресурсов и т.д. С точки зрения математики – это класс оптимизационных задач. Основным инструментом при их решении является математическое моделирование. Математические модели большинства экономических задач относятся к классу задач линейного программирования (ЗЛП). Любая ЗЛП, приведенная к канонической форме, может быть решена с помощью универсального алгоритма – симплекс-метода. Однако, ручной счет по данному методу – достаточно трудоемкий процесс. Изучив алгоритмы «ручного» решения задач линейного программирования, полезно познакомиться и со способом упростить этот процесс. Ясно, что чем сложнее задача, чем больше в ней переменных и условий, тем утомительнее и дольше ее решать. В таких случаях удобно использовать программу Microsoft Excel. Изучение дисциплины «Математические методы в программировании» включает не только теоретическую подготовку в области математики, но и овладение навыками построения математических моделей, знания компьютерных технологий, подходов и методов к решению задач. Тем самым в процессе изучения предмета, как одной из важных его составляющих практические навыки по обучающемуся постановке необходимо задачи, приобрести переводу ее на математический язык, освоить и понять ее решение различными методами. Настоящий сборник как раз и ориентирован на получение практических навыков в изучении дисциплины «Математические методы в программировании». В пособии каждая практическая работа сопровождается краткими теоретическими сведениями, подробным разбором решения задачи и перечнем заданий для самостоятельного решения. В результате выполнения практических работ по теме «Линейное программирование» обучающийся должен уметь: составлять простейшие математические модели задач, возникающих в практической деятельности людей; решать задачи линейного программирования графическим и симплекс-методом; находить оптимальное решение транспортной задачи методом потенциалов; решать задачи линейного программирования с помощью Microsoft Excel. Практическая работа №1 (2 часа) Тема: Построение простейших математических моделей Цель работы: научиться составлять простейшие математические модели задач, возникающих в практической деятельности людей. 1. Теоретические сведения 1.1. Общая постановка задачи линейного программирования В общем виде оптимизационная задача записывается следующим образом: Z F ( х) max(min), х U , где х ( x1 , x2 ,...xn ); U-область допустимых значений переменных x1 , x2 ,...xn ; F(х)-целевая функция. Задача линейного программирования имеет вид: n F ( х) c j x j max(min), j 1 n a j 1 ij x j bi , i k 1, k 2,..., m, k m, ij x j bi , i 1,2,..., k , n a j 1 x j 0, j 1,..., n, где a, b, c - коэффициенты задачи линейного программирования. При этом система линейных уравнений и неравенств, определяющая допустимое множество решений задачи U, называется системой ограничений задачи линейного программирования, а линейная функция F(х) называется целевой функцией или критерием эффективности. 1.2. Задачи на построение математической модели задач линейного программирования Математическая модель – это система математических соотношений, приближено, в абстрактной форме описывающих изучаемый процесс или систему. Построение экономико-математических моделей задач линейного программирования рассмотрим на конкретном примере. Задача: Предприятие производит два вида продукции - Р1 и Р2 , которая поступает в продажу. Для производства продукции используется два вида ресурсов - A и B. Максимально возможные запасы сырья в сутки составляют 10 и 15 единиц соответственно. Расход сырья на единицу каждой продукции приведен в таблице 1.1. Таблица 1.1. Ресурсы Расходы сырья на 1ед. продукции Запас сырья, ед. Р1 Р2 A 1 2 10 B 3 2 15 Известно также, что суточный спрос на продукцию Р1 никогда не превышает спроса на продукцию Р2 более, чем на 2 ед., а спрос на продукцию Р2 никогда не превышает 3 ед. в сутки. Оптовые цены единицы продукции равны: 4 денежные единицы для Р1 и 5 денежных единиц для Р2 . Какое количество продукции каждого вида должно производить предприятие, чтобы доход от реализации продукции был бы максимальным? Решение: Для построения математической модели необходимо идентифицировать переменные и представить цель и ограничения в виде математических функций этих переменных. Обозначим через x1 количество единиц продукции Р1 , а через x 2 соответственно количество единиц продукции Р2 , которые производят предприятия. Так как производство продукции ограничено имеющимся в распоряжении предприятия сырьем каждого вида и спросом на данную продукцию, и количество изготавливаемых изделий не может быть отрицательным, должны выполняться следующие неравенства: x1 2 x 2 10, 3 x1 2 x 2 15, x1 x 2 2, x 2 3, x1 0, x 2 0, Доход от реализации x1 единиц продукции Р1 и x 2 единиц продукции Р2 составит F 4 x1 5x2 . Таким образом, мы приходим к следующей математической задаче: среди всех неотрицательных решений данной системы линейных неравенств требуется найти такое, при котором функция F принимает максимальное значение. 2. Индивидуальные задания Запишите математическую модель для следующих задач: Задача 1. Для выпуска четырёх видов продукции требуются затраты сырья, рабочего времени и оборудования. Исходные данные приведены в таблице. Тип ресурсов Нормы затрат ресурсов на единицу продукции Наличие ресурсов 1 2 3 4 Сырьё 3 5 2 4 60 Рабочее время 20 10 20 15 200 Оборудование 5 10 4 5 100 30 25 10 15 Прибыль на единицу продукции Необходимо определить, сколько каждого вида продукции следует выпустить, чтобы общая прибыль выпускаемой продукции была максимальной. Задача 2. По предписанию врача пациенту необходимо перейти на диету и за сезон употребить определённое количество содержащихся в фруктах (см. таблицу). питательных веществ, Вещества Содержание питательных веществ Нормы Яблоки Смородина Клубника потребления Р1 3 2 1 30 Р2 1 2 4 40 Р3 0 5 0 60 Р4 0 1 1 70 Р5 2 4 1 50 Цена, руб. за 1 кг 30 40 60 Определите, какое количество фруктов каждого вида необходимо купить за сезон, чтобы выполнить предписание врача. Стоимость покупки должна быть минимальной. Задача 3. Известно, что содержание трёх питательных веществ А, В, С в рационе должно быть не менее 80, 60 и 30 единиц соответственно. Указанные питательные вещества содержат три вида продуктов. Содержание единиц питательных веществ в одном кг каждого из видов продуктов приведено в таблице. Питательные Количество единиц питательных веществ вещества 1 2 3 А 1 4 3 В 2 4 2 С 2 1 3 Цена за 1кг 10 12 8 продукции Определите дневной рацион, обеспечивающий получение необходимого количества питательных веществ при минимальных денежных затратах. Задача 4. Составьте дешёвый вариант 1 т кормовой смеси в соответствии с требованиями, представленными в таблице. Питательные Содержание Содержание питательных веществ, т вещества вещества, % Люцерновая Сухая Рыбная Соевый мука барда мука шрот Белок Не менее 35 17 25 60 45 Жиры Не менее 1,5 2 5 7 0,5 Клетчатка Не более 8 25 3 1 6,5 70 90 150 100 Стоимость1т, руб В результате выполнения заданий в отчет записать: математическую модель задачи; сделать вывод; ответить на контрольные вопросы. Контрольные вопросы: 1. В каком виде можно представить задачу линейного программирования? 2. Какому условию должны удовлетворять значения переменных? 3. Что выражает целевая функция? 4. Понятие математической модели. 5. Классификация математических моделей. 6. Принципы построения математических моделей. Практическая работа №2 (2 часа) Тема: Решение задач линейного программирования графическим способом Цель работы: научиться решать задачи линейного программирования графическим способом, используя геометрическую интерпретацию ЗЛП. 1. Теоретические сведения Графический метод основан на геометрической интерпретации задачи линейного программирования (ЗЛП) и применяется для решения задач с двумя переменными, когда ограничения выражены неравенствами. Он хорошо иллюстрирует основные принципы поиска решения ЗЛП и анализа устойчивости этого решения. Рассмотрим графический метод решения на примере следующей задачи. Задача: Максимизируйте функцию F 3x1 3x2 при ограничениях: x1 3 x 2 14, 4 x 2 x 26, 1 2 x1 x 2 5, x 2 4. х1, х2≥0 Решение: Каждое из неравенств системы ограничений геометрически определяет полуплоскость. Пересечение этих полуплоскостей задает область допустимых решений планов ЗЛП. В общем случае такая область представляет собой одну из следующих фигур: выпуклый многоугольник, неограниченная многоугольная область, луч, отрезок, точка или пустая область. Для построения данной области необходимо начертить граничные прямые по уравнениям системы ограничений, в которых неравенства заменяются равенствами. х1+3х2=14 – прямая 1; 4х1+2х2=26 – прямая 2; х1-х2=5 – прямая 3; х2=4 – прямая 4. Неравенства х1,х2≥0 означают, что область решения будет расположена в первой четверти координатной плоскости. Пример построения такой области для решаемой задачи приведен на рис.1. рис.1 На рисунке номер прямой определяет порядковый номер ограничения. Латинскими буквами обозначены точки пересечения прямых. Таким образом, заштрихованная на рис.1 область OABCDE будет областью допустимых решений, определенной ограничениями задачи. Крайние точки полученной выпуклой многогранной области будут соответствовать допустимым базисным решениям задачи. Для нахождения оптимального плана сначала определяют направление максимального возрастания значения целевой функции. Для этого находят вектор градиента G, координатами которого являются коэффициенты целевой функции. Для данного примера он имеет значение G=(3,3). Прямая, идущая в направлении градиента, также обозначена на рисунке буквой G. Для определения оптимального решения необходимо построить прямую, перпендикулярную линии градиента и перемещать ее параллельно вдоль линии градиента до самой удаленной точки области. Такие прямые, перемещаемые вдоль линии градиента являются не чем иным, как линиями уровня плоскости. Если решается задача поиска максимума, то линии уровня перемещаются в направлении возрастания градиента до поиска самой удаленной точки области ограничений. В случае поиска минимума - линии перемещаются в направлении, противоположном возрастанию градиента до самой удаленной точки. На рисунке показана линия уровня F, определяющая оптимальную точку C, в которой значение целевой функции достигает своего максимума. Зная, какая точка задает оптимальное решение, можно точно вычислить ее координаты. Для данного примера точка C находится на пересечении прямых 1 и 2. Записав систему уравнений этих прямых, определяем координаты точки пересечения: х + 3х2 = 14, { 1 4х1 + 2х2 = 26. В результате получаем х1=5, х2=3. Подставляя найденный результат в целевую функцию, имеем искомое оптимальное значение Fmax 5;3 24 . Ответ: Fmax 5;3 24. 2. Индивидуальные задания Решить графически задачу линейного программирования: Задача 1. Максимизируйте функцию Z=2х1+3х2 при ограничениях: х1 + 2х2 ≥ 4, 2х1 − х2 ≥ 9, { 5х1 + 3х2 ≤ 30, 4х1 + 7х2 ≤ 28. х1≥0, х2≥0. Задача 2. Максимизируйте функцию Z=3х1-3х2 при ограничениях: х1 − 4х2 ≤ 4, 3х + 2х2 ≤ 6, { 1 х1 + 2х2 ≤ 2, −х1 + х2 ≤ 7. х1≥0, х2≥0. Задача 3. Максимизируйте функцию Z=3х1+4х2 при ограничениях: −2х1 + х2 ≤ 1, 4х + 6х2 ≤ 12, { 1 6х1 + 3х2 ≤ 9, х1 ≥ 0, х1 ≥ 0. Задача 4. Максимизируйте функцию Z=х1+2х2 при ограничениях: х1 + х2 ≤ 4, 3х1 + х2 ≥ 4, х1 + 5х2 ≥ 4, х1 ≤ 3, х2 ≤ 3, {х1 ≥ 0, х1 ≥ 0. Задача 5. Максимизируйте функцию Z=х1+х2 при ограничениях: −х1 + х2 ≤ 1, 2х1 − 3х2 ≤ 6, 2х1 + х2 ≤ 8, −х1 + х2 ≤ 7, х1 + 2х2 ≥ 2, { х1 ≥ 0, х1 ≥ 0. Задача 6. Максимизируйте функцию Z=2х1+х2 при ограничениях: 2х1 − х2 ≤ 4, 3х + 2х2 ≤ 3, { 1 3х1 − х2 ≤ 6, 7х1 + х2 ≤ 7. х1≥0, х2≥0. В отчёте представить: графическую интерпретацию задачи; полное описание хода решения задачи; полный ответ; ответить на контрольные вопросы. Контрольные вопросы: 1. В каком случае возможно применение графического метода решения задач линейного программирования? 2. Что необходимо сделать, чтобы определить точные координаты точек экстремума? 3. Что является решением ЗЛП, если в системе ограничений встречается знак неравенства (например, в условиях неотрицательности)? 4. В какой полуплоскости расположено множество решений системы ограничений ЗЛП? Практическая работа №3 (2 часа) Тема: Решение задач линейного программирования симплекс-методом Цель работы: научиться использовать симплекс-метод для решения задач линейного программирования. 1. Теоретические сведения Симплекс-метод является наиболее распространенным универсальным методом, который может быть применен для решения любых задач линейного программирования как вручную, так и с помощью ЭВМ. Идея метода состоит в последовательном продвижении по базисам опорных планов задачи, т.е. в последовательном улучшении планов задачи по определенному критерию до тех пор, пока не будет получено оптимальное решение. Для решения ЗЛП необходимо выполнить следующие процедуры: привести математическую модель задачи к каноническому виду; определить начальное допустимое базисное решение задачи; ввести в исходную симплекс-таблицу параметры, соответствующие начальному базисному решению. Алгоритм симплекс-метода 1. После введения добавочных переменных систему уравнений и линейную функцию записываем в виде, который называется расширенной системой. 2. Исходную расширенную систему заносим в первую симплексную таблицу (таблица 1). Таблица 1 Базис Свободный член х4 b1 х1 Переменные х2 х3 х4 х5 х6 а11 а12 а13 а14 а15 а16 х5 b2 а21 а22 а23 а24 а25 а26 х6 b3 а31 а32 а33 а34 а35 а36 F с0 -с1 -с2 -с3 -с4 -с5 -с6 Оценочное отношение Последний столбец подготовлен для оценочных отношений, необходимых при расчете наибольшего возможного значения переменной. Далее таблица преобразуется по определенным правилам. 3. Проверяем выполнение критерия оптимальности при решении задачи на максимум — наличие в последней строке отрицательных коэффициентов. Если таких нет, то решение оптимально, достигнут max F = с0 (в левом нижнем углу таблицы), основные переменные принимают значения bi (второй столбец), основные переменные равны 0, т.е. получаем оптимальное базисное решение. 4. Если критерий оптимальности не выполнен, то наибольший по модулю отрицательный коэффициент ci< 0 в последней строке определяет разрешающий столбец s. Составляем оценочные отношения по следующим правилам: 1) ∞ если b j и ais имеют разные знаки; 2) ∞, если b j = 0 и ais < 0; 3) ∞, если аij = 0; 4) 0, если b j = 0 и ais > 0; 5) {|bi|aij|}, если bi и аij имеют одинаковые знаки. Если конечного минимума нет, то задача не имеет конечного оптимума (F m a x = ∞ ) . Если минимум конечен, то выбираем строку, на которой он достигается (любую, если их несколько), и называем ее разрешающей строкой. На пересечении разрешающих строки и столбца находится разрешающий элемент ags. 5. Переходим к следующей таблице по правилам: а) в левом столбце записываем новый базис: вместо основной переменной xq — переменную хs; б) в столбцах, соответствующих основным переменным, проставляем нули и единицы: 1 — против "своей" основной переменной, 0 — против "чужой" основной переменной; в) новую строку с номером q получаем из старой делением на разрешающий элемент aqs; г) все остальные элементы a ij вычисляем по правилу прямо- угольника: Далее переходим к п.3 алгоритма. Процесс вычисления заканчивается, когда найдено оптимальное решение, либо когда функция буде неограниченной на области допустимых решений. Задача: Максимизировать функцию F 2x1 3x2 при ограничениях: x1 3 x 2 18, 2 x x 16, 1 2 x 2 5, 3 x1 21. x1 0, x2 0 . Решение: Расширенная система задачи имеет вид: x1 3 x 2 x3 18 2 x x x 16 1 2 4 x x 5 5 2 3 x1 x 6 21 Линейную функцию представим в виде F 2x1 3x2 0. Заполняем первую симплексную таблицу. Последняя строка заполняется коэффициентами линейной функции. Базис Свободный член х3 18 х1 1 Переменные х2 х3 х4 3 1 0 х5 0 х6 0 Оценочное отношение 18/3 0 0 16 х4 16 2 1 0 х5 5 0 1 0 0 1 0 5 ← х6 21 3 0 0 0 0 1 ∞ F 0 -2 -3 0 0 0 0 1 ↑ В соответствии с п.3 алгоритма проверяем критерий оптимальности. В последней строке имеются отрицательные коэффициенты. Выбираем из них наибольший по модулю (—3); второй столбец разрешающий, переменная х2 перейдет в основные. В соответствии с п.4 находим оценочные отношения и выбираем min {18/3; 16; 5; ∞}= 5. Третья строка является разрешающей (отмечена горизонтальной стрелкой). На пересечении разрешающих строки и столбца стоит разрешающий элемент а32 = 1. Строим вторую таблицу по правилам п. 5 алгоритма: а) в новом базисе основные переменные: х3, х 4 , х2, х6 б) расставляем нули и единицы; например, в клетке, соответствующей основной переменной х3 по столбцу и строке, ставим 1, а в клетке, соответствующей переменной х3 по строке, а основной переменной х2 — по столбцу, ставим 0 и т.п. В последней строке строка против получается всех основных делением на переменных разрешающий ставим 0. элемент а32 Третья = 1. Остальные клетки заполняем по правилу прямоугольника. На- пример: Получим вторую симплексную таблицу: Базис Свобод- Переменные Оценочное ный член х1 х2 х3 х4 х5 х6 отношение х3 3 1 0 1 0 -3 0 3← х4 11 2 0 0 1 -1 0 11/2 х2 5 0 1 0 0 1 0 ∞ х6 21 3 0 0 0 0 1 7 F 15 -2 0 0 0 3 0 ↑ Критерий оптимальности вновь не выполнен. Теперь первый столбец разрешающий; х 1 переходит в основные, min{3/l; 11/2; ∞; 7}= 3; первая строка разрешающая, а11 — разрешающий элемент. Новая симплексная таблица примет вид: Базис Свобод- Переменные Оценочное ный член х1 х2 х3 х4 х5 х6 отношение x1 3 1 0 1 0 -3 0 ∞ х4 5 0 0 -2 1 5 0 5/5 ← х2 5 0 1 0 0 1 0 5/1 х6 12 0 0 -3 0 9 1 12/9 F 21 0 0 2 0 -3 0 ↑ И на этот раз критерий оптимальности не выполнен; пятый столбец и вторая строка разрешающие, 5 — разрешающий элемент. Базис Свободный член Переменные Оценочное отношение x1 6 х1 1 х2 0 х3 -1/5 х4 3/5 х5 0 х6 0 х5 1 0 0 -2/5 1/5 1 0 х2 4 0 1 2/5 -1/5 0 0 х6 3 0 0 3/5 -9/5 0 1 F 24 0 0 4/5 3/5 0 0 Критерий оптимальности выполнен, значит Fmax = 24, оптимальное базисное решение (6; 4; 0; 0; 1; 3). Ответ: Fmax = 24, х1=6, х2=4. 2. Индивидуальные задания Решить задачу линейного программирования симплекс-методом: Задача 1. Z= 2х1+х2→max при ограничениях: 2х1-х2≤6, -х1+2х2≤5, х1+х2≤8, х1, х2≥0. Задача 2. Z= 5х1-х2→max при ограничениях: -3х1+х2≤6, х1+х2≤10, х1-4х2≤4, х1, х2≥0. Задача 3. Z= 2х1-6х2→max при ограничениях: х1+х2≥2, -х1+2х2≤4, х1+2х2≤8, х1, х2≥0. Задача 4. Z= 2х1-х2→min при ограничениях: х1+х2≥4, -х1+2х2≤2, х1+2х2≤10, х1, х2≥0. Задача 5. Z= 3х1+3х2→max при ограничениях: 5х1+3х2≤15, 2х1+6х2≤12, 2х1≤6, 2х2≤4, х1, х2≥0. Задача 6. Z= 3х1+4х2→min при ограничениях: 6х1+6х2≥36, 4х1+8х2≥32, 2х1≥2, х1, х2≥0. В отчёте представить: построение расширенной системы; полное описание хода решения задачи с помощью симплекс-таблиц; полный ответ; ответить на контрольные вопросы. Контрольные вопросы: 1. В каком случае ЗЛП называется канонической? 2. Какие методы применяют для решения 3ЛП? 3. В чём заключается сущность симплекс-метода? 4. Чем может быть вызвана неразрешимость задачи? Практическая работа №4 (2 часа) Тема: Решение задач линейного программирования с помощью Microsoft Excel Цель работы: научиться использовать возможности табличного процессора Excel для решения задач линейного программирования. Оборудование: компьютер, пакет Microsoft Office 1. Теоретические сведения 1.1. Инструкция по использованию Microsoft Excel для решения задач линейного программирования Электронные таблицы MS Excel содержат в своем составе специализированные средства, которые позволяют решать большинство типовых практических задач оптимизации. При решении оптимизационных задач обучающийся должен иметь представление об основах математического моделирования и уметь составлять оптимизационные математические модели. Кроме того, от обучающегося требуется знание основных методов математического программирования и навыки практической работы с пакетом MS Office. Для того, чтобы решить задачу ЛП в табличном процессоре Microsoft Excel, необходимо выполнить следующие действия: 1. Ввести условие задачи: а) создать экранную форму для ввода условия задачи: · переменных, · целевой функции (ЦФ), · ограничений, · граничных условий; б) ввести исходные данные в экранную форму: · коэффициенты целевой функции, · коэффициенты при переменных в ограничениях; · правые части ограничений; в) ввести зависимости из математической модели в экранную форму: · формулу для расчета целевой функции, · формулы для расчета значений левых частей ограничений; г) задать целевую функцию (в окне «Поиск решения»): · целевую ячейку; · направление оптимизации целевой функции; д) ввести ограничения и граничные условия (в окне «Поиск решения»): · ячейки со значениями переменных; · граничные условия для допустимых значений переменных; · соотношения между правыми и левыми частями ограничений; 2. Решить задачу: a) установить параметры решения задачи (в окне «Поиск решения»); б) запустить задачу на решение (в окне «Поиск решения»); в) выбрать формат вывода решения (в окне «Результаты поиска решения»). Рассмотрим подробно использование MS Excel на примере решения следующей задачи. 1.2. Задача об использовании сырья Небольшая фабрика изготавливает два вида красок: для наружных (Е) и внутренних (I) работ. Продукция обоих видов поступает в оптовую продажу. Для производства красок используются два исходных продукта А и В. Максимально возможные суточные запасы этих продуктов составляют 6 и 8 тонн соответственно. Расходы продуктов А и В на 1 тонну соответствующих красок приведены в таблице: Исходный продукт Расход исходных продуктов (в тоннах) на 1 Максимально тонну краски возможный запас краска Е краска I продукта, тонн А 1 2 6 В 2 1 8 Изучение рынка сбыта показало, что суточный спрос на краску I никогда не превышает величину спроса на краску Е более, чем на 1 тонну. Кроме того, установлено, что спрос на краску I никогда не превышает 2 тонн в сутки. Оптовые цены одной тонны красок равны: 3 тыс. у.е. для краски Е, 2 тыс. у.е. для краски I. Какое количество краски каждого вида должна производить фабрика, чтобы доход от реализации продукции был максимальным? Решение: Пусть х1, х2 – планируемый к производству суточный объём производства краски Е и I соответственно (в тоннах). Тогда целевая функция математической модели будет выражать суммарную прибыль от реализации краски обоих видов, а система ограничений – производственные и маркетинговые ограничения, накладываемые на переменные модели. Таким образом, математическая модель данной задачи будет иметь вид: F(x1, x2)=3x1+2x2→max при ограничениях: 𝑥1 + 2𝑥2 ≤ 6, 2𝑥1 + 𝑥2 ≤ 8, −𝑥1 + 𝑥2 ≤ 1, 𝑥2 ≤ 2, {𝑥1 ≥ 0, 𝑥2 ≥ 0. Подготовим лист Excel к использованию процедуры «Поиск решения»: 1) в ячейках C2:D2 записываются наименования переменных модели (в общем случае количество ячеек в данном диапазоне равно количеству переменных в соответствующей математической модели); 2) ячейки C3:D3 резервируются для значений переменных модели, которые будут найдены после выполнения процедуры «Поиск решения»; 3) в ячейках C4:D4 записывают коэффициенты при переменных модели в целевой функции модели F(x1, х2); 4) в ячейки C6:D9 (число строк диапазона равно количеству ограничений в системе ограничений математической модели, число столбцов – числу переменных) заносим матрицу коэффициентов при переменных x1 и х2 в системе ограничений модели; 5) в ячейках G6:G9 записаны правые части системы ограничений модели; 6) ячейка Е4 (целевая ячейка) резервируется для вычисления оптимального значения целевой функции модели. Для рассматриваемого примера лист Excel будет иметь вид (рис. 1): Рис. 1 Представление исходных данных в таблицах Excel После занесения исходных данных на лист Excel в целевую ячейку Е4 записывают формулу: СУММПРОИЗВ($C$3:$D$3;C4:D4), которую затем копируют с модификацией в ячейки Е6:Е9 (результат представлен на рис. 2): Рис. 2 Программирование целевой ячейки Примечание: для вызова встроенной функции СУММПРОИЗВ необходимо выполнить последовательность действий: 1) установить курсор в нужную ячейку (в нашем примере – в ячейку Е4); 2) вызвать «Мастер функций» (кнопка fx), далее «Математические» и выбрать «СУММПРОИЗВ»; 3) в появившейся экранной форме (рис. 3) установить курсор в «Массив 1» и выделить на листе Excel диапазон зарезервированных для значений переменных ячеек, поставив им абсолютные адреса ($C$3:$D$3) нажатием функциональной клавиши F4; перевести курсор в «Массив 2» и выделить диапазон ячеек, в которых записаны коэффициенты при переменных в целевой функции (C4:D4), после чего нажать «ОК». Рис. 3 Вызов функции СУММПРОИЗВ Таким образом, после завершения всех подготовительных операций выбираем в «Сервис» процедуру «Поиск решения» (рис. 4). В появившейся экранной форме (рис 5) устанавливаем целевую ячейку - $Е$4, затем отмечаем флажком тип оптимизации (исходя из условий задачи) – максимизация; переводим курсор в «Изменяя ячейки» и выделяем на листе Excel диапазон зарезервированных для значений переменных ячеек ($C$3:$D$3); после чего, установив курсор в «Ограничения», нажимаем «Добавить» и в появившейся экранной форме (рис. 6) отмечаем диапазон ячеек: 1) «Ссылка на ячейку» - $Е$6:$Е$9 (здесь записаны результаты суммирования левых частей неравенств в системе ограничений); 2) знак выбирается согласно построенной математической модели, причем, если не все ограничения имеют одинаковые знаки, то каждая группа таких ограничений программируется отдельно, для чего удобно ограничения с одинаковыми знаками располагать изначально рядом друг с другом; 3) «Ограничение:» - $G$6:$G$9 (здесь записаны правые части неравенств в системе ограничений модели). Рис. 4 Вызов процедуры «Поиск решения» Рис. 5 Экранная форма «Поиск решения» По нажатию «ОК» возвращаемся к экранной форме «Поиск решения». Выбираем пункт «Параметры», где отмечаем флажком «Линейная модель» и «Неотрицательные значения» (рис. 7), затем по нажатию «ОК» возвращаемся к экранной форме «Поиск решения». Рис. 6 Экранная форма «Добавление ограничения» Рис. 7 Экранная форма «Параметры» После выбора опции «Выполнить» Excel проводит расчеты и результаты вычислений заносятся в ячейки C3:D3 и Е4, которые были зарезервированы для значений искомых переменных и оптимального значения целевой функции. Окончательно лист Excel будет иметь вид (рис. 8): Рис. 8 Результаты работы процедуры «Поиск решения» Замечание. Если «Поиск решения» закончил работу конфликтно, то возможны следующие ситуации: 1) целевая функция не ограничена на множестве допустимых решений сверху (снизу) для задачи максимизации (минимизации); в этом случае Fmax ( Fmin ) 2) неправильно введены формулы в ячейки либо допущена ошибка при заполнении формы «Поиск решения»; в данной ситуации необходимо перепроверить правильность введенных формул и вновь запустить «Поиск решения». Таким образом, в результате использования встроенного инструмента «Поиск решения» было найдено оптимальное решение исходной задачи, а именно: x1* 3,333; x2* 1,333 ( y1* 0,333; y 2* 1,333; y3* 0; y 4* 0) Fmax ( x1* ; x2* ) 12,667 Итак, оптимальный план производства предусматривает выпуск 10/3тонн краски Е и 4/3тонн краски I, прибыль от реализации которой будет максимальной и составит Fmax 38 3 тыс. у.е. 2. Индивидуальные задания Построить математическую модель задачи. Решить задачу с использованием процедуры «Поиск решения». Сделать выводы в терминах постановки задачи: Задача 1. На заводе используется сталь трёх марок А, В, С, запасы которых соответственно равны 10, 16 и 12 единиц. Завод выпускает два вида изделий. Для изделия I требуется по одной единице стали всех марок. Для изделия II требуется 2 единицы стали марки В, 1 единица стали марки С и не требуется сталь марки А. От реализации единицы изделия вида I завод получает 3 условные единицы, вида II – 2 условные единицы. Составить план выпуска продукции, дающий наибольшую прибыль. Задача 2. Для изготовления столов и шкафов употребляются два вида древесины. Расход древесины каждого вида на каждое изделие задан таблицей: Вид изделия Древесина Вида I Вида II Стол 0,15 0,2 Шкаф 0,2 0.1 Доход мастерской от производства одного стола составляет 12 ден. ед., а шкафа – 15 ден. ед. Определить, сколько столов и сколько шкафов должна изготовить мастерская, чтобы прибыль мастерской была наибольшей, если в её распоряжении имеется 60 куб. м. древесины вида I и 40 куб. м. древесины вида II. Задача 3. Хозяйство располагает следующими ресурсами: площадь – 100 единиц, труд – 120 единиц, тяга - 80 единиц. Затраты на 1 единицу четырёх видов продукции П1, П2, П3, П4 и доход хозяйства от производства этих видов продукции даны в таблице: Вид продукции Затраты на 1 единицу продукции Денежный доход Площадь Труд Тяга П1 2 2 2 1 П2 3 1 2,6 4 П3 4 2 1 3 П4 5 4 1 5 Составить план, дающий наибольшую прибыль. Задача 4. В мастерской освоили производство столов и тумбочек для торговой сети. Для их изготовления имеется два вида древесины: I вида – 72 куб. м., II вида – 56 куб. м. Расход каждого вида древесины на каждое изделие – в таблице: Изделие Древесина Вид I Вид II 0,18 0,08 Тумбочка 0,09 0,28 Стол От производства одного стола мастерская получает 1,1 ден. ед. прибыли, от одной тумбочки – 0,70 ден. ед. прибыли. Определить, сколько столов и тумбочек должна изготовить мастерская из имеющегося материала, чтобы обеспечить наибольший доход. Задача 5. Завод выпускает изделия двух видов А и В. При этом используется сырьё четырёх видов I, II, III, IV, запасы которых равны соответственно 21, 4, 6, 10 единиц. Для изделия А требуется: 2 единицы сырья I, 1 единицы сырья II, 2 единицы сырья IV и не используется сырьё III. Для изделия В требуется: 3 единицы сырья I, 1 единица сырья III, 1 единица сырья IV и не используется сырьё II. Выпуск одного изделия А приносит 3 ден. ед. прибыли, одного изделия В – 2 ден. ед. прибыли. Составить план производства, обеспечивающий наибольшую прибыль. Задача 6. Фирма производит два продукта А и В, рынок сбыта которых неограничен. Каждый продукт должен быть обработан каждой из машин I, II, III. Время обработки в часах для каждого из изделий А и В приведено ниже: А В I 0.5 0.25 II 0.4 0.3 III 0,2 0.4 Время работы машин I, II, III, соответственно, 40, 36 и 36 часов в неделю. Прибыль от изделий А и В составляет, соответственно, 5 и 3 долл. Фирме надо определить недельные нормы выпуска изделий А и В, максимизирующие прибыль. В отчёте представить: постановку задачи; математическую модель с необходимыми комментариями по ее элементам; краткое описание компьютерной информационной технологии получения решения с фрагментом листа Excel, содержащего результаты решения; анализ полученных результатов; ответить на контрольные вопросы. Контрольные вопросы: 1. Что представляют собой задачи оптимизации и в чем особенность задач линейного программирования? 2. Какие методы применяют для решения 3ЛП? 3. В каком случае ЗЛП называется разрешимой? 4. С помощью какого диалогового окна в Excel можно решить задачу линейного программирования? Практическая работа №5 (2 часа) Тема: Решение комплексных задач линейного программирования Цель работы: закрепить навыки использования математических методов, а также методов с применением ЭВМ для решения задач линейного программирования. Оборудование: компьютер, пакет Microsoft Office Задание Построить математическую модель экономической задачи. Решить задачу с помощью построенной модели симплексным методом, а также с использованием процедуры «Поиск решения». Сделать сравнительный анализ применения ручного и машинного видов решения. Варианты индивидуальных заданий Задача 1. Чаеразвесочная фабрика выпускает чай сорта А и В, смешивая три ингредиента: индийский, грузинский и краснодарский чай. В таблице приведены нормы расхода ингредиентов, объем запасов каждого ингредиента и прибыль от реализации 1 тонны чая сорта А и В. Ингредиенты Нормы расхода (т/т) Объем запасов (т) Индийский чай 0,5 0,2 600 Грузинский чай 0,2 0,6 870 Краснодарский чай 0,3 0,2 430 320 290 Прибыль от реализации 1 тонны продукции (ден.ед) Требуется составить план производства чая сорта А и В с целью максимизации суммарной прибыли. Задача 2. Небольшая фирма производит два типа подшипников А и В, каждый из которых должен быть обработан на трех станках, а именно токарном, шлифовальном и сверлильном. Время, требуемое для каждой из стадий производственного процесса, приведено в таблице: Тип подшипника А Прибыль от Время обработки, ч продажи 1 Токарный Шлифовальный Сверлильный подшипника станок станок станок 80 0,01 0,02 0,04 В Полное возможное время работы в неделю Фирма хотела 125 бы 0,02 0,01 0,01 120 15 150 производить подшипники в количествах, максимизирующих прибыль. Задача 3. Фирма производит три вида продукции, используя для этого два вида ресурсов. Технологическая матрица задана в виде таблицы: Продукт 1 Продукт 2 Продукт 3 Ресурс 1 1 2 0 Ресурс 2 2 3 1 Фирма имеет в своём распоряжении 20 единиц 1-го ресурса и 25 единиц 2-го ресурса; цены, по которым предполагает реализовать свою продукцию фирма, равны 15, 20, 30 тыс. руб. за 1-й, 2-й и 3-й товар, соответственно. Фирма желает получить максимальный доход. Задача 4. Для производства столов и шкафов мебельная фабрика использует необходимые ресурсы. Нормы затрат ресурсов на одно изделие данного вида, прибыль от реализации одного изделия и общее количество имеющихся ресурсов каждого вида приведены в таблице. Определить, сколько столов и шкафов фабрике следует изготовить, чтобы прибыль от их реализации была максимальной. Ресурсы Древесина (м3): I вида II вида Трудоемкость (человеко-час) Прибыль от реализации одного Нормы затрат ресурсов на Общее одно изделие стол шкаф количество 0,2 0.1 1,2 0.1 0,3 1,5 6 8 ресурсов 40 60 371,4 изделия (у.е.) В отчёте представить: постановку задачи; математическую модель с необходимыми комментариями по её элементам; полное описание хода решения задачи с помощью симплекс-таблиц; фрагмент листа EXCEL, содержащего результаты решения; анализ полученных результатов. Практическая работа №6 (2 часа) Тема: Решение транспортной задачи различными методами Цель работы: научиться использовать различные методы построения начального плана и метод потенциалов для решения транспортной задачи. 1. Теоретические сведения 1.1. Общие понятия транспортной задачи Среди задач линейного программирования можно выделить класс задач со специальной структурой – транспортную задачу. Транспортная задача (ТЗ) определяется как задача разработки наиболее экономичного плана перевозки продукции одного вида из нескольких пунктов отправления в пункты назначения. При этом величина транспортных расходов прямо пропорциональна объему перевозимой продукции и задается с помощью тарифов на перевозку единицы продукции. Задачи транспортного типа широко распространены в практике. К ним сводятся многие задачи линейного программирования – задачи о назначениях, сетевые, календарного планирования и др. И хотя ТЗ может быть решена одним из методов решения любой задачи линейного программирования, ее математическая модель и структура ограничений имеют ряд специфических особенностей. Стандартная ТЗ формулируется следующим образом. Имеется m пунктов отправления (или пунктов производства) Аi…,Аm, в которых сосредоточены запасы однородных продуктов в количестве a1,...,аm единиц. Имеется n пунктов назначения (или пунктов потребления) В1,..., Вm, потребность которых в указанных продуктах составляет b1, ..., bn единиц. Известны также транспортные расходы Сij, связанные с перевозкой единицы продукта из пункта. Ai в пункт Вj, i 1,2…, m; j = 1,2..., n. Требуется составить такой план перевозок (откуда, куда и сколько единиц продукта везти), чтобы удовлетворить спрос всех пунктов потребления за счет реализации всего продукта, произведенного всеми пунктами производства, при минимальной общей стоимости всех перевозок. Пусть хij - количество единиц продукта, поставляемого из пункта Аi в пункт Вj. Подлежащие минимизации суммарные затраты на перевозку продуктов из всех пунктов производства во все пункты потребления выражаются формулой: m n C ij xij → min (1.1) i 1 j 1 Таким образом, целевая функция ТЗ представляет собой транспортные расходы на осуществление всех перевозок в целом. Математическая модель ТЗ содержит также две группы ограничений. Первая группа ограничений указывает, что запас продукции в любом пункте отправления должен быть равен суммарному объему перевозок продукции из этого пункта m . xij ai , где i = 1. …., m (1.2) i 1 Вторая группа ограничений указывает, что суммарные перевозки продукции в некоторый пункт потребления должны полностью удовлетворить спрос на продукцию в этом пункте. n xij b j , где j = 1. …., n (1.3) j 1 Объемы перевозок - неотрицательные числа, так как перевозки из пунктов потребления в пункты производства исключены: xij 0, i 1, ..., m; j 1, ..., n. (1.4) Из (1.2), (1.3) следует, что сумма запасов продукции во всех пунктах отправления должна равняться суммарной потребности во всех пунктах потребления, то есть m n ai b j i*1 (1.5) j*1 Если условие (1.5) выполняется, то ТЗ называется сбалансированной (замкнутая модель), в противном случае – несбалансированной (открытая модель). Поскольку ограничения модели ТЗ (1.2), (1.3) могут быть выполнены только при сбалансированной ТЗ, то при построении транспортной модели необходимо проверять условие баланса (1.5). В случае, когда суммарные запасы превышают суммарные потребности, необходим дополнительный фиктивный пункт потребления, который будет формально потреблять существующий излишек запасов, то есть m n i*1 j*1 bф a i b j (1.6) Если суммарные потребности превышают суммарные запасы, то необходим дополнительный фиктивный пункт отправления, формально восполняющий отправления: существующий недостаток продукции в пунктах n m j*1 i*1 aф b j ai Введение фиктивного потребителя или (1.7) отправителя повлечет необходимость формального задания фиктивных тарифов C фij (реально не существующих) для фиктивных перевозок. Так как нас интересует суммарная стоимость всех перевозок, можно принять величину фиктивного тарифа равной нулю C фij =0, что не изменит значение искомой целевой функции. 1. 2. Пример решения транспортной задачи Рассмотрим процедуру решения транспортной задачи на конкретном примере. Задача: Четыре предприятия данного экономического района для производства продукции используют некоторое сырьё. Спрос на сырьё каждого из предприятий соответственно составляет 120, 50, 190 и 110 у.е. Сырьё сосредоточено в трех местах. Предложения поставщиков сырья равны 160, 140 и 170 у.е.. На каждое предприятие сырьё может завозиться от любого поставщика. Тарифы перевозок известны и задаются матрицей: 7 8 1 2 С= 4 5 9 8 9 2 3 6 В i-ой строке и j-ом столбце матрицы С стоит тариф на перевозку сырья от i-го поставщика j-му потребителю. Под тарифом понимается стоимость перевозки единицы сырья. Требуется составить план перевозок, при котором общая стоимость перевозок минимальна. Решение: Представим задачу в виде таблицы: № 1 2 3 Предложение 4 1 7 8 1 2 160 2 4 9 9 8 140 3 9 2 3 6 170 Спрос 120 50 190 110 ////////////////////// Проверим задачу на сбалансированность. 120 + 50 + 190 + 110 = 160 + 140 +170 = 470, т.е. спрос равен предложению. Рассмотрим два метода построения начального опорного плана задачи. 1) Метод «северо-западного угла» № 1 2 7 1 120 8 9 10 2 60 Спрос 120 1 2 160 9 8 140 3 6 170 130 9 3 Предложение 4 40 4 2 3 50 190 110 110 ///////////////////// Начинаем заполнение таблицы с первой верхней клетки. В неё помещают x11 = min (160, 120) = 120. Спрос первого потребителя полностью удовлетворен, первый столбец вычеркиваем. Остаток сырья в первом пункте составляет 160 – 120 = 40 у.е. Двигаемся по первой строке вправо: x12 = min (160 – 120, 50) = 40. Предложение поставщика исчерпано, первая строка вычеркивается. Второму потребителю не хватает 50 – 40 = 10 у.е. Двигаемся по второму столбцу вниз: x22 = min (50 – 40, 140) = 10. Второй столбец вычеркиваем. Двигаемся по второй строке вправо: x23 = min (190, 140) = 150. Вторая строка вычеркивается. Двигаемся по третьему столбцу вниз: x33 = min (190 – 130, 170) = 60. Спрос третьего потребителя удовлетворен. Двигаемся по третьей строке вправо: x34 = min (170 – 60, 110) = 110. Начальный план перевозок имеет вид: x11 = 120 x12 = 40 x13 = 0 Х1 = x21 = 0 x14 = 0 x22 = 10 x23 = 130 x24 = 0 x31 = 0 x32 = 0 x33 = 60 x34 = 110 Стоимость перевозок по этому плану: S1 = 120 * 7 + 40 * 8 + 5 * 9 + 9 * 130 + 3 * 60 + 6 * 110 = 3220 у.е. 2) Метод минимального элемента № 1 2 7 1 3 8 Предложение 4 1 2 160 160 4 2 5 9 120 2 50 Спрос 140 6 170 20 9 3 8 120 3 30 50 90 190 110 ////////////////////// Заполняем таблицу с клетки с наименьшим тарифом. Минимальный тариф: c13 = 1, x13 = min (160, 190) = 160. Первую строку вычеркиваем. Минимальный тариф для оставшихся клеток: c32 = 2, x32 = min (50, 170) = 50. Второй столбец вычеркиваем. Для оставшихся клеток минимальный тариф: c33 = 3, x33 = min (190 – 160, 170 – 50) = 30. Третий столбец вычеркиваем. Для оставшихся клеток минимальный тариф: c21 = 4, x21 = min (120, 140) = 120. Первый столбец вычеркиваем. Для оставшихся клеток минимальный тариф: c34 = 6, x34 = min (170 – 50 – 30, 110) = 90. x24 = min (140 – 120, 110 – 90) = 20. План перевозок имеет вид: x11 = 0 x12 = 0 x13 = 160 x14 = 0 Х1 = x21 = 120 x22 = 0 x23 = 0 x31 = 0 x24 = 20 x32 = 50 x33 = 30 x34 = 90 Стоимость перевозок по этому плану: S1 = 160 * 1 + 120 * 4 + 20 * 8 + 50 * 2 + 30 * 3 + 90 * 6 = 1530 у.е. Для определения оптимальности полученного плана воспользуемся методом потенциалов. Проверим на оптимальность план, полученный методом минимального элемента. № 1 2 3 160 – 1 7 2 8 1 2 20 5 3 9 50 9 Спрос 160 + 120 4 Предложение 4 2 120 8 30 + 3 50 140 90 – 170 6 190 110 ////////////////////// Число заполненных клеток равно 4 + 3 – 1 = 6, т. е. план невырожденный. По заполненным клеткам таблицы определим потенциалы производителей и потребителей: U2 + V1 = 4 U1 = 0 V1 = 0 U1 + V3 = 1 U2 = 4 V2 = 0 U3 + V2 = 2 U3 = 2 V3 = 1 U3 + V3 = 3 V4 = 4 U2 + V4 = 8 U3 + V3 = 6 Для всех пустых клеток составим разность: Δij = Ui + Vj – Cij. Δ11 = U1 + V1 – C11 = 0 + 0 – 7 = –7 Δ12 = U1 + V2 – C12 = 0 + 0 – 8 = –8 Δ14 = 2>0 Δ22 = –1 Δ23 = –4 Δ31 = –7 Так как Δ14 = 2 > 0, условие оптимальности не выполняется. Улучшим план с помощью цикла пересчёта. Строим цикл (1,4) - (3,4) - (3,3) - (1,3) - (1,4). Перераспределяем продукцию по циклу. Минимальное значение для клеток со знаком « – » x34 = 90. Отнимем 90 от 160 и прибавим к 30. А в пустую клетку со знаком «+» поставим 90. Получим новый план перевозок: № 1 2 1 7 2 8 3 Спрос Предложение 70 – 90 + 160 20 – 140 2 + 5 9 50 9 4 1 120 4 3 2 120 8 120 + 3 50 170 6 190 110 Определим потенциалы производителей и потребителей: U1 + V3 = 1 U1 = 0 V1 = –2 U1 + V4 = 2 U2 = 6 V2 = 0 U2 + V1 = 4 U3 = 2 V3 = 1 U2 + V4 = 8 U3 + V2 = 2 U3 + V3 = 3 Для всех пустых клеток: Δ11 = –9 Δ12 = –8 Δ22 = 1 > 0 Δ23 = –2 Δ31 = –9 V4 = 2 ////////////////////// Δ34 = –2 Так как Δ22 = 1 > 0, условие оптимальности не выполняется. Улучшим план с помощью цикла пересчёта. Строим цикл (2,2) - (2,4) - (1,4) - (1,3) - (3,3) - (3,2) - (2,2) № 1 2 1 7 2 8 120 4 Предложение 50 110 160 1 2 20 4 140 5 3 9 30 9 Спрос 3 140 2 120 8 170 3 50 6 190 110 ////////////////////// Проверив полученный план, убеждаемся, что он оптимален. Ответ: План перевозок x11 = 0 Х= x12 = 0 x13 = 50 x14 = 110 x21 = 120 x22 = 20 x23 = 0 x31 = 0 x24 = 0 x32 = 30 x33 = 140 x34 = 0 Стоимость перевозки S = 1330 у.е. 2. Индивидуальные задания Решить транспортную задачу методом потенциалов, составив опорный план: а) методом «северо-западного угла»; б) методом минимального элемента: 1 вариант Заводы Потребители 2 3 1 Предложение 4 I 2 4 5 1 60 II 2 3 9 4 70 III 3 4 2 5 20 Спрос 40 30 30 50 Составить оптимальный план доставки станков. 2 вариант Песчаные карьеры Участки дороги 1 2 3 Наличие песка, тыс. т 30 4 I 1 8 2 3 II 4 7 5 1 50 III 5 3 4 4 20 Потребность в песке, тыс.т 15 15 40 30 Составить план перевозок, минимизирующий общий пробег грузовиков. 3 вариант Склады 1 2 Магазины 3 4 Предложе ние 5 I 2 6 3 4 6 40 II 1 5 6 9 7 30 III 3 4 1 6 10 35 Спрос 20 34 16 10 25 Составить оптимальный план перевозки груза от складов до магазинов. 4 вариант Хранилище Потребители 2 3 1 Предложение 4 I 2 7 3 6 45 II 9 4 5 7 35 III 5 7 6 2 60 Спрос 20 35 40 45 Составить оптимальный план обслуживания при минимальных расходах на транспортировку. 5 вариант Поставщики Потребители 2 3 1 Запасы 4 I 1 2 5 3 60 II 1 6 5 2 120 III 6 3 7 4 100 Потребность Необходимо 20 110 прикрепить 40 поставщиков 110 к потребителям с учётом минимальных транспортных затрат. 6 вариант Элеваторы С/х предприятия 2 3 1 Предложение 4 A 6 4 4 5 200 B 6 9 5 8 300 C 8 2 10 6 100 Спрос 450 250 100 100 Составить оптимальный план перевозки зерна из условия минимума стоимости перевозки. В отчёте представить: построение начального плана перевозок методом минимального элемента и методом «северо-западного угла»; решение задачи методом потенциалов; полный ответ; ответить на контрольные вопросы. Контрольные вопросы: 1. Что представляет собой транспортная задача? 2. Какие методы применяют для решения транспортной задачи? 3. В каком случае транспортная задача называется сбалансированной? 4. Какой метод применяется для определения оптимальности начального плана? Практическая работа №7 (2 часа) Тема: Решение транспортной задачи с помощью Microsoft Excel Цель работы: получить практические навыки использования функций «Поиск решения» в электронной таблице Excel при решении транспортной задачи. Оборудование: компьютер, пакет Microsoft Office 1. Пример решения задачи Задача: Крупная оптовая фирма занимается поставкой некоего товара в магазины города. Товар поставляется из трех складов, месячные запасы которых составляют 1500, 1300 и 1600 единиц товара соответственно. Товар нужно развести по трем магазинам, месячные потребности которых равны 2100, 1600 и 1000 единиц товара соответственно. Транспортные расходы по доставке единицы товара из соответствующего склада в соответствующий магазин приведены в табл.1.1. Необходимо определить оптимальные по транспортным расходам способы доставки товара со складов в магазины. Таблица 1.1 Магазины Магазин 1 Магазин 2 Магазин 3 Склад 1 80 200 70 Склад 2 100 105 120 Склад 3 120 70 90 Склады Решение: Составим в MS Excel транспортную матрицу для решения задачи, рис.1.11 Рис.1.11 Транспортная матрица задачи в MS Excel Проверяем баланс ТЗ. m Суммарные запасы составляют ai = 4400 шт. товара, суммарная i*1 n потребность b j = 4700 шт. j*1 Транспортная задача не сбалансирована – спрос превышает предложение. Приведем ТЗ к сбалансированной, добавив еще один фиктивный склад, стоимость перевозки товара в который будет равна нулю. n m j*1 i*1 Определим количество товара на фиктивном складе aф b j ai = 4700 – 4400 = 300 шт. и внесем изменения в лист книги MS Excel. Рис.1.12 Сбалансированная транспортная матрица Сбалансированность транспортной матрицы легко проверить средствами Excel, последовательно вычислив суммы ячеек В8:D8 и Е4:Е7. Суммы должны быть одинаковыми. Создадим экранную форму решения ТЗ, для чего выделим на листе книги все ячейки транспортной матрицы, создадим ее копию и внесем в копию необходимые исправления. За начальные условия перевозимого количества товара примем нули, рис.1.13. Рис.1.13 Транспортная матрица и экранная форма решения ТЗ Заполним полученную экранную форму необходимыми формулами. Для этого удобно воспользоваться встроенными в Excel математическими формулами СУММ() и СУММПРОИЗВ(), рис.1.14. Рис.1.14 Экранная форма решения ТЗ с введенными формулами Ячейка Е19 содержит формулу для вычисления значения целевой функции – суммарной стоимости всех транспортных перевозок. Выберем в меню СЕРВИС команду ПОИСК РЕШЕНИЯ и установим в диалоговом окне формы «Поиск решения» целевую ячейку, требуемый вид зависимости целевой функции, диапазон ячеек переменных и ограничения в соответствии с условиями решаемой ТЗ, рис.1.15. Рис.1.15 Окно форма «Поиск решения» ТЗ Нажмем кнопку «Параметры» и в открывшемся диалоговом окне формы «Параметры поиска решения» отметим галочкой «Линейная модель», так как решаемая нами ТЗ является задачей линейного программирования. После выполнения процедуры поиска решения на рабочем листе книги получим решение ТЗ, рис.1.16. Рис.1.16 Результат решения ТЗ на листе книги MS Excel Ответ: Стоимость перевозки составляет 352000 у.е.; план перевозки 500 0 имеет вид Х= ( 1300 0 0 1600 1000 0 ) 0 2. Индивидуальные задания Решить транспортную задачу с помощью Microsoft Excel: Задача 1. Поставщики Мощность поставщиков Потребители и их спрос 1 2 3 4 450 250 100 100 1 200 6 4 4 5 2 300 6 9 5 8 3 100 8 2 9 6 Задача 2. Имеются два поставщика с ресурсами 150 и 90, три пункта доставки. Необходимо доставить в соответствующие пункты 60, 70 и 110 единиц. Стоимость перевозки из А1 в В1- 6 у.е., в В2- 6 у.е., в В3-4 у.е., из А2 в В1- 12 у.е., в В2-2 у.е., в В3-8 у.е. Стоимость перевозки должна быть минимальной. Задача 3. Поставщики Мощность поставщиков Потребители и их спрос 1 2 3 4 45 15 20 20 1 25 9 5 3 10 2 55 6 3 8 2 3 20 3 8 4 8 Задача 4. Поставщики Мощность поставщиков Потребители и их спрос 1 2 3 4 50 50 40 60 1 30 5 4 6 3 2 70 4 5 5 8 3 70 7 3 4 7 Задача 5. Поставщики Мощность поставщиков Потребители и их спрос 1 2 3 4 20 110 40 110 1 60 1 2 5 3 2 120 1 6 5 2 3 100 6 3 7 4 Задача 6. Поставщики Мощность поставщиков Потребители и их спрос 1 2 3 60 60 50 1 50 2 3 2 2 70 2 4 5 3 60 6 5 7 В отчёте представить: условие задачи; краткое описание компьютерной информационной технологии получения решения с фрагментом листа Excel, содержащего результаты решения; анализ полученных результатов; полный ответ. Контрольные вопросы: 1. Что представляют собой задачи оптимизации и в чем особенность транспортной задачи? 2. Какие методы применяют для решения транспортной задачи? 3. В каком случае транспортная задача называется сбалансированной? 4. С помощью какого диалогового окна в Excel можно решить транспортную задачу? СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 1. Вентцель Е.С. Исследование операций: задачи, принципы, методология. – М.: Высшая школа, 2008. – 192 с. 2. Исследование операций в экономике: Учеб. пособие для вузов /Н.Ш. Кремер, БА. Путко, И.М. Тришин, М.Н. Фридман; Под ред. проф. Н.Ш. Кремера. — М.: ЮНИТИ, 2005. — 407 с. 3. Филимонова Е.В. Математика: Учебное пособие для средних специальных учебных заведений. / Е.В. Филимонова. – 2-е изд., доп. и перераб. – Ростов-на- Дону.: Феникс, 2008. - 576 с. 4. Хазанова Л. Х. Математические методы в экономике. – Москва, Волтерс Клувер, 2005 г.- 144 с. 5. Акулич И.Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. - М.: Высшая школа, 2011.-352 с. 6. Л. В. Рудикова «Microsoft Excel для студента», Санкт – Петербург, БХВПетербург, 2005.