Решение транспортной задачи в MS Excel

Автор работы: Пользователь скрыл имя, 06 Ноября 2013 в 13:49, курсовая работа

Описание работы

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

Файлы: 1 файл

Курсавая.doc

— 909.50 Кб (Скачать файл)

Введение

 

Под названием «транспортная задача» объединяется широкий круг задач с единой математической моделью. Классическая транспортная задача – задача о наиболее экономном плане перевозок однородного продукта или взаимозаменяемых продуктов из пунктов производства в пункты потребления, встречается чаще всего в практических приложениях линейного программирования. Линейное программирование является одним из разделов математического программирования – области математики, разрабатывающей теорию и численные методы решения многомерных экстремальных задач с ограничениями.

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

В зависимости от способа  представления условий транспортной задачи она может быть представлена в сетевой (схематичной) или матричной (форме). Транспортная задача может также решаться с ограничениями и без ограничений.

Целью курсовой работы является обеспечение получения продукции потребителю в нужное время и место при минимально возможных совокупных затратах трудовых, материальных, финансовых ресурсов. Объектом изучения являются материальные и соответствующие им финансовые, информационные потоки, сопровождающие производственно-коммерческую деятельность

Глава 1. Методы решения транспортной задачи

 

1.1 Условие транспортной задачи

Пусть имеется несколько поставщиков однородной продукции (каждый с определенным запасом) и несколько потребителей этой продукции (с известными потребностями у каждого). Задана также сеть коммуникаций связывающая каждого поставщика с каждым потребителем. На каждой коммуникации задана цена перевозки – стоимость перевозки единицы продукции. Если какая – либо коммуникация отсутствует, то считаем, что она есть, но цену перевозки на ней устанавливаем равной бесконечности (+∞). Это соглашение сделает невыгодным перевозку по ней и автоматически исключит данную коммуникацию из плана перевозок.

Таким образом, требуется  составить план перевозок продукции  от поставщиков к потребителям так, чтобы потребности потребителей были бы удовлетворены за счет вывоза запаса от поставщиков. Цель – минимизация суммарной стоимости всех перевозок.

Транспортные задачи бывают:

1) открытые m ≠ n (суммарный запас продукции, имеющейся у поставщиков, не совпадает с суммарной потребностью в продукции у потребителей.)

2) закрытые m = n (суммарный запас продукции, имеющейся у поставщиков, совпадает с суммарной потребностью в продукции у потребителей.)

Метод потенциалов «работает» только для закрытых транспортной задачи, причем, закрытая транспортная задача всегда разрешима.

Открытую транспортную задачу сводят к закрытой транспортной задачи путем прибавления к суммарному запасу продукции или суммарной потребности продукции недостающих единиц до равенства суммарного запаса продукции и суммарной потребности продукции.

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


 

 

 

 

, где

- запас i – го поставщика

- потребность j – го потребителя

- цена перевозки единицы продукции по коммуникациям (i,j)

(от i – го поставщика к j – му потребителю)

- объем перевозки продукции (неизвестный)  по коммуникациям (i,j).

Для вывода критерии оптимальности  транспортной задачи построим двойственную задачу.

Структура матрицы ограничений транспортной задачи такова, что столбец, соответствующей переменной содержит ровно два ненулевых элемента: единицу в строке с номером i и единицу в строке m + i.

Вектор двойственных переменных Y = ( ,…, , ,…, ) имеет m + n компонент (по числу ограничений транспортной щадачи), которые называются потенциалами: переменные , ,…, - потенциалы поставщиков; переменные , …, - потенциалы потребителей.

Используя схему для  построения двойственной задачи к задачи линейного программирования в стандартной форме, имеем:

В полученной двойственной задаче n·m ограничений, соответствующих каждой переменной транспортной задачи. Вспоминая, что невязка между левой и правой частью в ограничений двойственной задачи есть оценка для соответствующей переменной исходной задачи , запишем условия оптимальности текущего плана перевозок в транспортной задачи:

.

Неизвестные потенциалы и (их общее количество равно m + n) могут быть найдены из условия равенства нулю оценок для базисных переменных транспортной задачи

 

для заполненных клеток (i,j) таблицы транспортной задачи

Решение полученной системы (содержащей неизвестных на единицу  больше, чем число уравнений) ищется, когда одно из неизвестных полагается равным некоторому числу . После этого оставшаяся система имеет единственное решение.

 

1.2 Транспортная задача по критерию времени

Иногда возникает ситуация, когда в условиях Транспортной задачи необходимо минимизировать не стоимость перевозок, а время их выполнения (Срочные грузы, перевозки скоропортящихся продуктов, работа «скорой помощи» и т.д.)

Имеется m поставщиков однородного груза и n потребителей груза. Для каждой пары ( , ) известно время , за которое груз перевозится от к . Требуется составить такой план перевозок, при котором все запасы поставщиков будут вывезены, а все запросы потребителей будут полностью удовлетворенны и наибольшее время доставки всех грузов будет минимизирован.

 

1.3 Задача о назначениях (Венгерский метод)

Имеется n видов работ и n рабочих. Каждый рабочий может выполнить любую из n работ за некоторое время (цена рабочего). Требуется распределить все работы между всеми рабочими так, чтобы время выполнения работ было минимальным, а каждую работу выполнял только один рабочий.

В качестве примера я  рассмотрел транспортную задачу для 2 складов и 5 магазинов.

  • В ячейки C4:C5 записал объемы продукции, имеющиеся на 2 складах.
  • В ячейки E5:I5 - заявки на продукцию, поступившие от магазинов.
  • В ячейки B8:F9 - матрицу транспортных расходов, задающую расходы на перевозку из I-го склада в J-й магазин единицы продукции.
  • В ячейки B13:F14 - план перевозок - матрицу, задающую количество товара, перевезенного из I-го склада в J-й магазин. Начальное распределение плана задано по принципу "каждой сестре по серьге", равномерно распределив всю имеющуюся на складе продукцию по магазинам. Эти ячейки являются регулируемыми и Решатель должен найти более подходящее решение, изменив значения в этих ячейках.
  • В ячейку D15 - записал целевую функцию:

{ =СУММ((B8:F8*B13:F13)+(B9:F9*B14:F14))}

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

{=СУММ(B13:B14) - E5 }

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

  • Затем задал следующую группу ограничений. Эти ограничения отвечают тому естественному условию, что со склада нельзя увести больше продукции, чем там имеется. Формула, помещенная в ячейку D18, имеет вид:

{=C4 - СУММ(B13:F13)}

Эта формула скопирована  уже по столбцу в ячейку D19. Подготовительный этап завершен - можно вызывать Решатель.

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

рис 1

Прежде чем дать команду на решение задачи, я провел настройку параметров в окне Options. В частности я включил флажки, указывающие на линейность модели и положительность переменных. Кроме того, я увеличил точность решения целочисленной задачи, задав в окне Tolerance значение в 1% вместо 5%, принятых по умолчанию.


 

 

 

 

 

 

рис 2

Осталось щелкнуть кнопку "Solve" и получить оптимальный  план перевозок. Вы можете проанализировать, насколько оптимальный план отличается от равномерного распределения, предложенного  в качестве первоначального варианта, и как уменьшились транспортные расходы:

рис 3

Параметры, управляющие  работой Решателя

Рассмотрим возможности управления работой Решателя, задаваемые в окне Параметры (Options):

  • Максимальное время (MaxTime) - ограничивает время, отведенное на процесс поиска решения. По умолчанию задано 100 секунд, что обычно достаточно для задач небольшой размерности, имеющих около 10 ограничений. Для задач большой размерности придется это значение увеличивать.
  • Предельное число итераций (Iterations) - еще один способ ограничения времени поиска путем задания максимального числа итераций. По умолчанию задано 100, но это число можно увеличивать до 32767. Чаще всего, если решение не получено за 100 итераций, надежд получить его при увеличении этого значения мало. Лучше попытаться изменить начальное приближение и запустить процесс поиска заново.
  • Относительная погрешность (Precision) - задает точность выполнения ограничений. Иногда проще изменить ограничение, отодвинув границу, чем пытаться выполнить ограничения с высокой точностью.
  • Сходимость (Convergence) - задается десятичной дробью, меньшей единицы, позволяя остановить процесс поиска при сходимости решения к неподвижной точке, когда относительные изменения в течение последних 5 итераций не превышают заданную дробь.
  • Линейная модель (Assume Linear Model) - этот флажок следует включать, когда целевая функция и ограничения - линейные функции. Эта дополнительная информация позволяет Решателю упростить процесс поиска решения.
  • Неотрицательные значения (Assume Non-Negative) - этим флажком можно задать ограничения на переменные, что позволит искать решения в положительной области значений, не задавая специальных ограничений на их нижнюю границу.
  • Показывать результаты итераций (Show Iteration Results) - флажок, позволяющий включить пошаговый процесс поиска, показывая на экране результаты каждой итерации. В сложных ситуациях, когда Решатель не находит решения автоматически, рекомендуется включать этот флажок, так как иногда можно найти точку, от которой процесс поиска уклонился в сторону.
  • Автоматическое масштабирование (Use Automating Scaling) - флажок автоматического изменения масштаба следует включать, когда масштаб значений входных переменных и целевой функции и ограничений отличается, возможно, на порядки. Например, переменные задаются в штуках, а целевая функция, задающая суммарную стоимость, измеряется в миллионах рублей.
  • Относительная погрешность (Tolerance) - задается в процентах. Указанное значение имеет смысл только для задач с целочисленными ограничениями. Решатель в таких задачах вначале находит оптимальное не целочисленное решение, а потом пытается найти ближайшую целочисленную точку, решение в которой отличалось бы от оптимального не более чем на указанное данным параметром количество процентов. Если такая точка найдена, Решатель сообщает об успехе. При большом допуске (по умолчанию 5%) может быть потеряно лучшее целочисленное решение, правда, отличающееся от найденного Решателем в пределах допуска. Для целочисленных задач допуск имеет смысл уменьшить, что я и сделал при решении транспортной задачи. Хочу еще раз обратить внимание на эту особенность решения задач целочисленного программирования. Если значение параметра Tolerance задать большим, то Решатель может остановиться раньше времени, не найдя лучшего целочисленного решения. Если же его взять малым, то наилучшее целочисленное решение будет отличаться от оптимального нецелочисленного решения на величину большую, чем ту, которая задается параметром Tolerance. В этом случае формально решение заканчивается неуспехом, поскольку найденное решение не удовлетворяет всем требованиям. Конечно, параметр Tolerance играет служебную роль, и "умный" Решатель, найдя наилучшее целочисленное решение, должен был бы уведомлять, что решение найдено, но ограничение по Tolerance не выполнено. Этого, однако, не происходит. Мы еще столкнемся с этой ситуацией при рассмотрении следующей задачи.
  • Сохранить модель (Save Model) - командная кнопка; позволяет открыть диалоговое окно, где можно указать имя сохраняемой модели. Имеет смысл использовать эту возможность, когда на рабочем листе несколько моделей, так как единственная модель запоминается автоматически.
  • Загрузить модель (Load Model) - позволяет загрузить одну из сохраненных моделей.
  • Есть еще несколько более специальных параметров, которыми можно управлять, варьируя процедурами, применяемыми в процессе поиска. К ним следует прибегать в тяжелых ситуациях, когда решение найти не удается.

 

 

 

 

 

 

 

 

Глава 2. Решение транспортной задачи в Excel

 

2.1 Постановка транспортной задачи

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

 

7

7

7

7

2

4

6

10

10

16

20

13

3

30

27

4

1

17

26

22

5

10

9

3

4

16

23

1

24


В данной задаче суммарные  запасы равны суммарным потребностям

Таким образом, транспортная задача является закрытой.

Ввод условий задачи состоит  из следующих основных шагов:

    1. Создание формы для ввода условий задачи.
    2. Ввод исходных данных.
    3. Ввод зависимостей из математической модели.
    4. Назначение целевой функции.
    5. Ввод ограничений и граничных условий.

Изменяемые ячейки   В3:Е6. В эти ячейки будет записан оптимальный план перевозок - xij

Ввести исходные данные задачи (рисунок 4 ).

 

рис. 4

В ячейку А3 ввести формулу =СУММ(В3:F3). Скопировать её в ячейки А4, А5, А6.(рисунок 5)

рис. 5

В ячейку В7 ввести формулу =СУММ(В3:В6). Скопировать её в ячейки С7, D7, E7,F7.(рисунок 6)

рис. 6

Выражение для вычисления значения целевой функции в ячейке В15 получено с помощью функции СУММПРОИЗВ(В3:F6;В10:F13 ограничения. (рисунок 7)

Информация о работе Решение транспортной задачи в MS Excel