Транспортная задача в excel выводы

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

Содержание

  1. Транспортная задача: описание
  2. Подготовительный этап: включение функции “Поиск решения”
  3. Пример задачи и ее решение
    • Условия
    • Алгоритм решения
  4. Заключение

Транспортная задача: описание

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

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

  • Закрытая – совокупное предложение продавца равняется общему спросу.
  • Открытая – спрос и предложение не равны. Чтобы решить такую задачу, нужно сначала привести ее к закрытому типу. В этом случае добавляется условный покупатель или продавец с недостающим количеством спроса или предложения. Также в таблицу издержек следует внести соответствующую запись (с нулевыми значениями).

Подготовительный этап: включение функции “Поиск решения”

Чтобы решить транспортную задачу в Эксель, нужно воспользоваться функцией “Поиск решения”, которую нужно предварительно активировать, т.к. изначально она не включена. Алгоритм действий следующий:

  1. Открываем меню “Файл”.Переход в меню Файл в Эксель
  2. В перечне слева выбираем пункт “Параметры”.Переход к параметрам Эксель
  3. В параметрах кликаем по подразделу “Надстройки”. Затем в правой части окна в самом низу, выбрав значение “Надстройки Excel” для параметра “Управление”, щелкаем по кнопке “Перейти”.Переход к надстройкам Excel
  4. В открывшемся окне ставим галочку напротив надстройки “Поиск решения” и жмем OK.Включение надстройки Поиск решения в Эксель
  5. В результате, если мы перейдем во вкладу “Данные”, то увидим здесь кнопку “Поиск решения” в группе инструментов “Анализ”.Поиск решения во вкладке Данные в Excel

Пример задачи и ее решение

Чтобы лучше понять, как решать транспортные задачи в Excel, давайте рассмотрим конкретный практический пример.

Условия задачи

Допустим, у нас есть 6 продавцов и 7 покупателей. Предложение продавцов составляет 36, 51, 32, 44, 35 и 38 единиц. Спрос покупателей следующий: 33, 48, 30, 36, 33, 24 и 32 единицы. Суммарные количества по спросу и предложению равны, следовательно, это транспортная задача закрытого типа.

Исходные данные транспортной задачи для решения в Эксель

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

Исходные данные транспортной задачи для решения в Excel

Алгоритм решения

Итак, приступи к решению нашей задачи:

  1. Для начала строим таблицу, количество строк и столбцов в которой соответствует числу продавцов и покупателей, соответственно.Создание новой таблицы для решения транспортной задачи в Эксель
  2. Перейдя в любую свободную ячейку щелкаем по кнопке “Вставить функцию” (fx).Вставка функции в ячейку Excel
  3. В открывшемся окне выбираем категорию “Математические”, в списке операторов отмечаем “СУММПРОИЗВ”, после чего щелкаем OK.Выбор функции СУММПРОИЗВ в Эксель
  4. На экране отобразится окно, в котором нужно заполнить аргументы:
    • в поле для ввода значения напротив первого аргумента “Массив1” указываем координаты диапазона ячеек матрицы затрат (с желтым фоном). Сделать это можно, используя клавиши на клавиатуре, или просто выделив нужную область в самой таблице с помощью зажатой левой кнопки мыши.
    • в качестве значения второго аргумента “Массив2” указываем диапазон ячеек новой таблицы (либо вручную, либо выделив нужные элементы на листе).
    • по готовности жмем OK.Заполнение аргументов функции СУММПРОИЗВ в Эксель
  5. Щелкаем по ячейке, расположенной слева от самого верхнего левого элемента новой таблицы, после чего снова жмем кнопку “Вставить функцию”.Вставка функции в ячейку таблицы Excel
  6. На этот раз нам нужна функция “СУММ”, которая также, находится в категории “Математические”.Выбор функции СУММ в Эксель
  7. Теперь нужно заполнить аргументы. В качестве значения аргумента “Число1” указываем верхнюю строку созданной для расчетов таблицы (целиком) – вручную или методом выделения на листе. Жмем кнопку OK, когда все готово.Заполнение аргументов функции СУММ в Excel
  8. В ячейке с функцией появится результат, равный нулю. Наводим указатель мыши на ее правый нижний угол, и когда появится Маркер заполнения в виде черного плюсика, зажав левую кнопку мыши тянем его до конца таблицы.Копирование формулы с помощью Маркера заполнения в Эксель
  9. Это позволит скопировать формулу и получить аналогичные результаты для остальных строк.Результат копирования формулы в другие ячейки столбца в Эксель
  10. Выбираем ячейку, которая находится сверху от самого верхнего левого элемента созданной таблицы. Аналогично описанным выше действиям вставляем в нее функцию “СУММ”.Вставка функции СУММ в ячейку таблицы Эксель
  11. В значении аргумента “Число1” теперь указываем (вручную или с помощью выделения на листе) все ячейки первого столбца, после чего кликаем OK.Заполнение аргументов функции СУММ в Эксель
  12. С помощью Маркера заполнения выполняем копирование формулы на оставшиеся ячейки строки.Результат копирования формулы в другие ячейки строки в Эксель
  13. Переключаемся во вкладку “Данные”, где жмем по кнопке функции “Поиск решения” (группа инструментов “Анализ”).Функция Поиск решения в Эксель
  14. Перед нами появится окно с параметрами функции:
    • в качестве значения параметра “Оптимизировать целевую функцию” указываем координаты ячейки, в которую ранее была вставлена функция “СУММПРОИЗВ”.
    • для параметра “До” выбираем вариант – “Минимум”.
    • в области для ввода значений напротив параметра “Изменяя ячейки переменных” указываем диапазон ячеек новой таблицы (без суммирующей строки и столбца).
    • нажимаем кнопку “Добавить” в блоке “В соответствии с ограничениями”.Заполнение параметров функции Поиск решения в Эксель
  15. Откроется небольшое окошко, в котором мы можем добавить ограничение – сумма значений первых столбцов исходной и созданной таблицы должны быть равны.
    • становимся в поле “Ссылка на ячейки”, после чего указываем нужный диапазон данных в таблице для расчетов.
    • затем выбираем знак “равно”.
    • в качестве значения для параметра “Ограничение” указываем координаты  аналогичного столбца в исходной таблице.
    • щелкаем OK по готовности.Добавление ограничения в параметры функции Поиск решения в Excel
  16. Таким же способом добавляем условие по равенству сумм верхних строк таблиц.Добавление ограничения в параметры функции Поиск решения в Эксель
  17. Также добавляем следующие условия касательно суммы ячеек в таблице для расчетов (диапазон совпадает с тем, который мы указали для параметра “Изменяя ячейки переменных”):
    • больше или равно нулю;
    • целое число.
  18. В итоге получаем следующий список условий в поле “В соответствии с ограничениями”. Проверяем, чтобы обязательно была поставлена галочка напротив опции “Сделать переменные без ограничений неотрицательными”, а также, чтобы в качестве метода решения стояло значение “Поиск решения нелинейных задач методов ОПГ”. Когда все готово, нажимаем “Найти решение”.Запуск функции Поиск решения в Эксель
  19. В результате будет выполнен расчет и отобразится окно с результатами поиска решения. Оцениваем их, и в случае, когда они нас устраивают, нажимаем OK.Результат работы функции Поиск решения в Excel
  20. Все готово, мы получили таблицу с заполненными данными и транспортную задачу можно считать успешно решенной.Решенная транспортная задача в Эксель

Заключение

Таким образом, с помощью программы Эксель достаточно просто решить транспортную задачу. Самое главное – правильно заполнить начальные данные и четко следовать плану действий, и тогда проблем быть не должно, т.к. программа все расчеты выполнит сама.

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

Планирование перевозок с помощью математических и вычислительных методов дает хороший экономический эффект.

Виды транспортных задач

Условия и ограничения транспортной задачи достаточно обширны и разнообразны. Поэтому для ее решения разработаны специальные методы. С помощью любого из них можно найти опорное решение. А впоследствии улучшить его и получить оптимальный вариант.

Условия транспортной задачи можно представить двумя способами:

  • в виде схемы;
  • в виде матрицы.

В процессе решения могут быть ограничения (либо задача решается без них).

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

  • открытые открытые транспортные задачи (запас товара у поставщика не совпадает с потребностью в товаре у потребителя);
  • закрытые (суммарные запасы продукции у поставщиков и потребителей совпадают).

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



Пример решения транспортной задачи в Excel

Предприятия А1, А2, А3 и А4 производят однородную продукцию а1, а2, а3 и а4, соответственно. В условных единицах – 246, 186, 196 и 197. Затем товар поступает в пять пунктов назначения: В1, В2, В3, В4 и В5. Это потребители продукции. Они готовы ежедневно принимать 136, 171, 71, 261 и 186 единиц товара.

Стоимость перевозки единицы продукции с учетом удаленности от пункта назначения:

Производители Потребители Объем производства
В1 В2 В3 В4 В5
А1 4,2 4 3,35 5 4,65 246
А2 4 3,85 3,5 4,9 4,55 186
А3 4,75 3,5 3,4 4,5 4,4 196
А4 5 3 3,1 5,1 4,4 197
Объем потребления 136 171 71 261 186

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

  1. Проверим, является ли модель транспортной задачи сбалансированной. Для этого все количество производимого товара сравним с суммарным объемом потребности в продукции: 246 + 186 + 196 + 197 = 136 + 171 + 71 + 261 + 186. Вывод – модель сбалансированная.
  2. Сформулируем ограничения: объем перевозимой продукции не может быть отрицательным и весь товар должен быть доставлен к пунктам назначения (т.к. модель сбалансированная).
  3. Введем стоимость перевозки единицы продукции в рабочие ячейки Excel.
  4. Стоимость перевозки.

  5. Введем формулы для расчета суммарной потребности в товаре. Это будет первое ограничение.
  6. Формулы потребности.

  7. Введем формулы для расчета суммарного объема производства. Это будет второе ограничение.
  8. Формулы производства.

  9. Вносим известные значения потребности в товаре и объема производства.
  10. Значения.

  11. Вводим формулу целевой функции СУММПРОИЗВ(B3:F6; B9:F12), где первый массив (B3:F6) – стоимость единицы перевозки товаров. Второй (B9:F12) – искомые значения транспортных расходов.
  12. Вызываем команду «Поиск решения» на закладке «Данные» (если там нет данного инструмента, то его нужно подключить в настройках Excel, а как это сделать описано в статье: расширенные возможности финансового анализа). Заполняем диалоговое окно. В графе «Установить целевую ячейку» — ссылка на целевую функцию. Ставим галочку «Равной минимальному значению». В поле «Изменяя ячейки» — массив искомых критериев. В поле «Ограничения»: искомый массив >=0, целые числа; «ограничение 1» = объему потребностей; «ограничение 2» = объему производства.
  13. Поиск решения.

  14. Нажимаем «Выполнить». Команда подберет оптимальные переменные при заданных ограничениях.

Пример.

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

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

При таком типе возможны два варианта развития событий:

  • суммарный объем производства превышает суммарную потребность в товаре;
  • суммарная потребность больше суммы запасов.

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

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

Единица перевозки груза для фиктивного участника равняется 0.

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

Читайте также по теме: решение транспортной задачи методом потенциалов в Excel.

Содержание

  • Общее описание транспортной задачи
  • Инструменты для решения транспортной задачи в Эксель
  • Пример решения транспортной задачи в Excel
    • Условия задачи
    • Решение задачи
  • Вопросы и ответы

Транспортная задача в Microsoft Excel

Транспортная задача представляет собой задачу поиска наиболее оптимального варианта перевозок однотипного товара от поставщика к потребителю. Её основой является модель, широко применяемая в различных сферах математики и экономики. В Microsoft Excel имеются инструменты, которые значительно облегчают решение транспортной задачи. Выясним, как их использовать на практике.

Общее описание транспортной задачи

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

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

Инструменты для решения транспортной задачи в Эксель

Для решения транспортной задачи в Excel используется функция «Поиск решения». Проблема в том, что по умолчанию она отключена. Для того, чтобы включить данный инструмент, нужно выполнить определенные действия.

  1. Делаем перемещение во вкладку «Файл».
  2. Переход в раздел Файл в Microsoft Excel

  3. Кликаем по подразделу «Параметры».
  4. Переход в параметры в программе Microsoft Excel

  5. В новом окне переходим по надписи «Надстройки».
  6. Переход в надстройки в Microsoft Excel

  7. В блоке «Управление», который находится внизу открывшегося окна, в выпадающем списке останавливаем выбор на пункте «Надстройки Excel». Делаем клик по кнопке «Перейти…».
  8. Переход в надстройки Excel в Microsoft Excel

  9. Запускается окно активации надстроек. Устанавливаем флажок возле пункта «Поиск решения». Кликаем по кнопке «OK».
  10. Активация инструмента Поиск решения в Microsoft Excel

  11. Вследствие этих действий во вкладке «Данные» в блоке настроек «Анализ» на ленте появится кнопка «Поиск решения». Она нам и понадобится при поиске решения транспортной задачи.

Поиск решения в приложении Microsoft Excel

Урок: функция «Поиск решения» в Экселе

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

Условия задачи

Имеем 5 поставщиков и 6 покупателей. Объёмы производства этих поставщиков составляют 48, 65, 51, 61, 53 единиц. Потребность покупателей: 43, 47, 42, 46, 41, 59 единиц. Таким образом, общий объем предложения равен величине спроса, то есть, мы имеем дело с закрытой транспортной задачей.

Таблица объемов спроса и предложения в Microsoft Excel

Lumpics.ru

Кроме того, по условию дана матрица затрат перевозок из одного пункта в другой, которая отображена на иллюстрации ниже зеленым цветом.

Матрица затрат в Microsoft Excel

Решение задачи

Перед нами стоит задача при условиях, о которых было сказано выше, свести транспортные расходы к минимуму.

  1. Для того, чтобы решить задачу, строим таблицу с точно таким же количеством ячеек, как и у вышеописанной матрицы затрат.
  2. Макет таблицы для решения задачи в Microsoft Excel

  3. Выделяем любую пустую ячейку на листе. Кликаем по значку «Вставить функцию», размещенному слева от строки формул.
  4. Переход к Мастеру функций в Microsoft Excel

  5. Открывается «Мастер функций». В списке, который предлагает он, нам следует отыскать функцию СУММПРОИЗВ. Выделяем её и жмем на кнопку «OK».
  6. Мастер функций программы Microsoft Excel

  7. Открывается окно ввода аргументов функции СУММПРОИЗВ. В качестве первого аргумента внесем диапазон ячеек матрицы затрат. Для этого достаточно выделить курсором данные ячейки. Вторым аргументом выступит диапазон ячеек таблицы, которая была приготовлена для расчетов. Затем, жмем на кнопку «OK».
  8. Аргументы функции СУММПРОИЗВ в Microsoft Excel

  9. Кликаем по ячейке, которая расположена слева от верхней левой ячейки таблицы для расчетов. Как и в прошлый раз вызываем Мастер функций, открываем в нём аргументы функции СУММ. Кликнув по полю первого аргумента, выделяем весь верхний ряд ячеек таблицы для расчетов. После того, как их координаты занесены в соответствующее поле, кликаем по кнопке «OK».
  10. Аргументы функции СУММ в Microsoft Excel

  11. Становимся в нижний правый угол ячейки с функцией СУММ. Появляется маркер заполнения. Жмем на левую кнопку мыши и тянем маркер заполнения вниз до конца таблицы для расчета. Таким образом мы скопировали формулу.
  12. Копирование формулы маркером заполнения в Microsoft Excel

  13. Кликаем по ячейке размещенной сверху от верхней левой ячейки таблицы для расчетов. Как и в предыдущий раз вызываем функцию СУММ, но на этот раз в качестве аргумента используем первый столбец таблицы для расчетов. Жмем на кнопку «OK».
  14. Аргументы функции СУММ в Microsoft Excel

  15. Копируем маркером заполнения формулу на всю строку.
  16. Копирование формулы маркером заполнения в строку в Microsoft Excel

  17. Переходим во вкладку «Данные». Там в блоке инструментов «Анализ» кликаем по кнопке «Поиск решения».
  18. Переход в Поиск решения в Microsoft Excel

  19. Открываются параметры поиска решения. В поле «Оптимизировать целевую функцию» указываем ячейку, содержащую функцию СУММПРОИЗВ. В блоке «До» устанавливаем значение «Минимум». В поле «Изменяя ячейки переменных» указываем весь диапазон таблицы для расчета. В блоке настроек «В соответствии с ограничениями» жмем на кнопку «Добавить», чтобы добавить несколько важных ограничений.
  20. Параметры поиска решения в Microsoft Excel

  21. Запускается окно добавления ограничения. Прежде всего, нам нужно добавить условие того, что сумма данных в строках таблицы для расчетов должна быть равна сумме данных в строках таблицы с условием. В поле «Ссылка на ячейки» указываем диапазон суммы в строках таблицы расчетов. Затем выставляем знак равно (=). В поле «Ограничение» указываем диапазон сумм в строках таблицы с условием. После этого, жмем на кнопку «OK».
  22. Добавление ограничения в Microsoft Excel

  23. Аналогичным образом добавляем условие, что столбцы двух таблиц должны быть равны между собой. Добавляем ограничение, что сумма диапазона всех ячеек в таблице для расчета должна быть большей или равной 0, а также условие, что она должна быть целым числом. Общий вид ограничений должен быть таким, как представлен на изображении ниже. Обязательно проследите, чтобы около пункта «Сделать переменные без ограничений неотрицательными» стояла галочка, а методом решения был выбран «Поиск решения нелинейных задач методом ОПГ». После того, как все настройки указаны, жмем на кнопку «Найти решение».
  24. Параметры Поиска решений в Microsoft Excel

  25. После этого происходит расчет. Данные выводятся в ячейки таблицы для расчета. Открывается окно результатов поиска решения. Если результаты вас удовлетворяют, жмите на кнопку «OK».

Результаты поиска решения транспортной задачи в Microsoft Excel

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

Еще статьи по данной теме:

Помогла ли Вам статья?

Транспортная
задача

это задача о минимизации транспортных
расходов, связанных с обеспечением
пунктов потребления определенным
количеством однородной продукции,
производимой в нескольких пунктах
производства [1, 3, 7]. В общем виде задача
может быть сформулирована следующим
образом.

Однородный
продукт, сосредоточенный в

пунктах производства, необходимо
распределить между

пунктами потребления. Стоимость перевозки
единицы продукции известна для всех
маршрутов. Необходимо составить такой
план перевозок, при котором запросы
всех пунктов потребления были бы
удовлетворены за счет имеющихся продуктов
в пунктах производства и общие транспортные
расходы по доставке продуктов были бы
минимальными.

Примем
следующие обозначения: i
– номер пункта производства, j
–номер пункта потребления,

количество продукта, имеющееся в i-ом
пункте производства,

– количество продукта, необходимое для
j-го
пункта потребления,

– стоимость перевозки единицы продукта
из i-го
пункта производства в j-й
пункт потребления,

– количество груза, планируемого к
перевозке из i-го
пункта производства в j-й
пункт потребления, i=1,2,…,m;
j=1,2,…,n.
Математическая модель транспортной
задачи будет выглядеть следующим
образом:

Условия
задачи удобно записывать в виде таблицы,
которая называется матрицей
планирования:

с11

с12

с1n

. . .

сm1

сm2

сmn

a1

am

b1

b2

bn

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

Рассмотрим
транспортную задачу, матрица планирования
которой имеет вид:

Bj

Ai

B1

B2

B3

B4

B5

A1

14

25

18

19

23

33

A2

2

17

16

24

2

25

A3

29

3

7

15

22

25

A4

5

20

17

23

10

17

33

11

11

11

34

bj
ai

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

Рис.6.
Исходные данные транспортной задачи.

В
ячейки
B2
: F5
введем стоимость перевозок. Ячейки B8
: F11
отведены под значения объемов перевозок,
пока не­известные. В ячейки H8
: H11
введены объемы производства, а в ячейки
B13
: F13
— потребности (спрос) в продукции в
пунктах потребления.

В
ячейку G12
вводится целевая функция

=
СУММПРОИЗВ (
B2
:
F5;
B8
:
F11)
.

В
ячейки B12
: F12
вводятся формулы

=
СУММ (
B8
:
B11),

=
СУММ (
C8
:
C11),

=
СУММ (
D8
:
D11),

=
СУММ (
E8
:
E11),

=
СУММ (
F8
:
F11),

определяющие объем
продукции, ввозимой в пункты потребления.
В ячейки

G8
: G11
введены формулы

= СУММ (B8
:
F8),

= СУММ (B9
:
F9),

= СУММ (B10
:
F10),

= СУММ (B11
:
F11),

характеризующие
объем продукции, вывозимой из пунктов
производства.

Далее выбираем
команду Сервис,
Поиск решения
и
заполняем
открывшееся диалоговое окно Поиск
решения
, как
показано на рис.7.

Рис.7.
Диалоговое окно
Поиск
решения

для транспортной задачи.

В диалоговом окне
Параметры
поиска решения
установить
флажок Линейная
модель
(рис.8).

Рис.8.
Диалоговое окно
Параметры
поиска решений
.

После нажатия
кнопки Выполнить
получаем
оптимальный план поставок продук­ции
и соответствующие ему транспортные
расходы (рис. 9).

Рис.9.
Оптимальное решение транспортной
задачи.

Соседние файлы в папке 5_Практикум

  • #
  • #

Предложите, как улучшить StudyLib

(Для жалоб на нарушения авторских прав, используйте

другую форму
)

Ваш е-мэйл

Заполните, если хотите получить ответ

Оцените наш проект

1

2

3

4

5

Статья на тему «Решение
транспортной задачи в  
MS Excel»

Решение транспортных задач «вручную»
является рутинным процессом, при реализации которого всегда существует
вероятность ошибки. Именно поэтому при решении транспортных задач чаще всего
пользуются Microsoft Office Excel, позволяющим свести все возможные ошибки.

Задача №1

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

Исходные
данные для расчета:

Таблица
16

Мощность поставщиков

Мощность потребителей

1

2

3

4

100

120

200

160

База №1

210

10

11

15

8

База №2

340

12

7

13

11

База №3

200

8

13

9

8

В этом случае общее мощность
поставщиков (=750) больше общего количества спроса (=580). Таким образом, очевидно,
что часть строительных материалов останется у поставщиков.

Приступаем к решению задачи на
компьютере:

1)   
В ячейки С6:F8 занесем стоимость
перевозок единицы груза.

2)   
В ячейках С15:G15 укажем
формулы для расчета суммарной потребности продукции для j-го
пункта, в ячейках 
H12:H14 –
формулы суммарного объема производства i-го предприятия.

3)   
В ячейку C16 занесем
формулу целевой функции =СУММПРОИЗВ(
C6:F8;D12:G14).

4)   
Для поиска оптимального решения
транспортной задачи, а также проверки имеющихся программных средств на
правильность можно использовать надстройку «Поиск решения»: в поле «Установить
целевую ячейку», указываем ячейку, содержащую оптимизируемое значение.
Установим переключатель равный минимальному значению. В поле «Изменяя
ячейки» мышью зададим диапазон подбираемых параметров $
F$12:$G$14.
В поле ограничения введем: ограничения целочисленности, неотрицательности,
ограничения на соотношение объемов спроса и предложения.

Рис. 5 –Диалоговое окно
поиск решения

5)   
Затем нажимаем «Найти решение» →
«Выполнить». В результате получится оптимальный набор переменных при заданных
ограничениях:

Рис. 6 – Таблица-план оптимального решения
транспортной задачи

Вывод: в таблице-плане оптимального
транспортировки представлено оптимальное решение. Минимальная стоимость
транспортировки строительных материалов составляет 5020 у. е.

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

Содержание

Введение

§1. Постановка Транспортной задачи (ТЗ) для n переменных

§2. Пример решения Транспортной задачи

§3. Транспортные задачи по различным критериям

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

Список литературы


Введение

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

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

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


§1. Постановка
Транспортной задачи (ТЗ) для
n переменных

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

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

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

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

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

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

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

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

, где

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

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

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

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

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

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

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

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

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

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

.

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

 

для заполненных клеток (i,j) таблицы ТЗ.

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


§2.
Пример решения Транспортной задачи

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

ШАГ 1. Построение
начального плана перевозок.

ШАГ 2. Проверка
текущего плана на оптимальность.

Если план оптимален,
то алгоритм завершен.

ШАГ 3. Улучшение плана
перевозок. Переход к шагу 1.

Опишем
алгоритм по шагам, иллюстрируя каждый шаг

ШАГ 1. Построение
начального плана перевозок.

Построение начального решения
(как и последующие расчеты) проводят в таблице, имеющей следующий вид:

Клетка ( i , j ) таблицы соответствует коммуникации, связывающей i-го
поставщика сj-м потребителем.

Построить начальный план
перевозок означает — назначить объемы перевозок в клетки таблицы таким образом,
чтобы:

а)число заполненных
клеток было (m+n-1).
(Тогда план перевозок будет отвечать базисному решению ЗЛП);

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

Мы будем пользоваться способом
минимальной стоимости (МС).

Изложим теперь алгоритм
нахождения начального решения
.

ШАГ 1. Определенным способом выбираем клетку в текущей
таблице. Пусть она имеет индексы (i, j) (i -номер поставщика, j — номер потребителя).

ШАГ 2. В качестве перевозок в эту клетку назначаем наименьшую
из ai и потребности bj.

xij = min{ ai, bj }

ШАГ З. Уменьшим запас ai и потребность bj на величину перевозки xij, т.е.

ai = ai — xij,

bj =bj -xij

ШАГ 4. При исчерпании запаса (ai = 0) запрещаем к перевозке оставшиеся свободные клетки i-ой
строки, а при исчерпании потребности

(bj =0) запрещаем
такие же клетки вj-ом столбце.

В случае одновременного
исчерпания запасов потребностей (ai =bj = 0) запрещаем перевозки или в строке (тогда считаем, что у
потребителя осталась потребность в количестве равном нулю, которую необходимо
удовлетворить), или в столбце (в этом случае считаем, что у поставщика остается
запас равный нулю, который необходимо вывезти). Это делается для того, чтобы
при одновременном запрещении перевозок в строке и столбце количество
заполненных клеток таблицы не стало меньшим, чем m+n-1.

Получим новую текущую
таблицу, в которую не входят заполненные и запрещенные клетки. Если таблица не
пуста, переходим к шагу 1. (При исчерпании таблицы — конец).

Способ минимальной
стоимости.

1.Клетки с минимальной
ценой (3,1), (3,2) и (3,3). Выбираем, например, (3,2). (Далее все шаги, как в
предыдущем способе).

2 . x32 = min{50,60} = 50

3. a 3
=50-50=0, b 2 = 100-50=50

4.Запрещаем строку 3.

1.
Клетка с min ценой ~ (2,3)

2.
x23 = min{70,80} = 70

3.
a2=70-70=0, b’3 = 80-70=10

4.
Запрещаем строку
2.

1

2

3

 60

5

60

10

12

Χ

8

6

4

70

Χ

0

0

50

0

50

10

1.   Клетка с min ценой ~ (1,1)

2.   x 11=min{120,60} =
60

3.   a 1′ =120-60 = 60, b1′ = 0

4.В первом столбце
запрещать уже нечего. Текущая таблица содержит две клетки (1,2) и (1,3).

1.Выбираем клетку (1,2)

2.x 12 =min{110,100} = 100

3.a 1 =110-100 = 10, b1 = 0

4.Текущая таблица содержит
одну клетку (1,3).

1. Выбираем последнюю клетку(1,3)

2. x13=min{10,10} = 10

3.a1 = b3 = 0

4.Таблица исчерпана.
Конец.

Переходим к описанию
следующего шага метода потенциалов.

ШАГ 2. Проверка текущего плана на
оптимальность.

Признаком того, что
текущий план перевозок является оптимальным, служит условие

(1)ui +vj -cij ≤0

которое выполняется для всех
клеток таблицы. Неизвестные здесь величины ui и vj (называемые потенциалами)
определяются из условий

(2)ui + vj = cij

Условие (1) означает
невозможность появления «спекулятивной» цены. Само же название
«потенциалы» заимствовано из физического закона о том, что работа по
перемещению заряда в электростатическом поле равна разности потенциалов в
данных точках поля (У нас: «…цена перевозки единицы продукции по
коммуникации равна разности цен в конце и в начале пути»)

Так как заполненных
клеток в таблице (m+n-1) штук, а неизвестных и (m+n) штук, то для их определения имеется система из (m+n-1) уравнений относительно (m+n) неизвестных. Чтобы найти решение
(хотя бы какое-нибудь) такой системы, достаточно положить одно из неизвестных
(произвольное) равным некоторому произвольно выбранному числу. Тогда остальные
определяются единственным образом. Можно решать эту систему непосредственно
(продолжаем работать с нашим «старым» примером и найдем потенциалы
для начального плана, построенного способом МС).

Заполненные клетки Уравнения

(1,1) u1
+ v1 =5

(1,2) u1
+ v2 =10

(1,3) u1
+ v3 =12

(2,3) u2
+v3 =4

(3,2) u3 +v2 =0

Положим, например,
неизвестное u 1 равным 0 (через него можно из первых трех уравнений
найти v1, v2 и v3). Последовательно из них находим u 2 , u 3.

Этот метод можно
сформулировать в виде единого правила:

Неизвестный потенциал находится
вычитанием известного из цены перевозки в заполненной клетке

Применим это правило для
определения u и v в нашем примере и получим:

u1 =0, u2 =-8, u3
=-6

v1 =5, v2 =10, v3 =12

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

Проверим на оптимальность
имеющееся решение

(2,1) u2+v1-c21=-8+5-8=-11<0

(2,2) u 2 +v2 -c22=-8+10-6=-4<0

(3,1) u 3 +v1 -c31=-10+ 5-0=-5<0

(3,3) u 3 +v3 -c33=-10+12-0=2>0

Следовательно, условие оптимальности
нарушено в клетке (3,3).

Имеющийся план перевозок
можно улучшить.

Дадим описание
заключительного шага алгоритма метода потенциалов.

Улучшение плана
происходит путем назначения перевозки θ>0 в ту клетку (i , j) таблицы, в которой нарушилось условие оптимальности. Но
назначение ненулевой перевозки нарушает условия баланса вывоза продукции от
поставщика i (вывозит весь запас и еще плюсθ>0 ) и условия баланса привоза продукции к
потребителю j (получает все что можно и еще плюс θ
> 0). Условия баланса восстанавливают путем уменьшения вывоза от i-поставщика
к какому-то другому потребителю j (уменьшают на θ
перевозку в какой-то заполненной клетке (i , j) строки
i). При этом нарушается баланс привоза
продукции к потребителю j
(получает на θ меньше, чем ему требуется). Восстанавливают баланс в
столбце j, тогда он нарушается в некоторой строке i и т.д. до тех пор,
пока цикл перемещения перевозок не замкнется на клетке, в которой нарушалось
условие оптимальности. Продемонстрируем эти рассуждения на нашем примере.

120

60

50+ Ө

10- Ө

70

70

50

50- Ө

* + Ө

60

100

80

120

60

60

-(0)

70

70

50

40

* 10

60

100

80

1. Оптимальность нарушена
в клетке (3,3). Назначим в нее перевозку θ>0 (+θ означает,
увеличение на θ).

2.Нарушается баланс
вывоза от поставщика 3 (вывозит 50+ θ, а это больше его запаса!).
Уменьшаем на θ перевозку в заполненной клетке строки 3 (вне заполненной
уменьшать нельзя, так как это приведет к отрицательной перевозке).

Рассмотрим те клетки
цикла в которых уменьшаем на θ перевозку и берём минимум из вычетаемых, у
нас это min{10- θ ,50- θ }=10.

И данное число надо
подставить в цикл


§3. Транспортные
задачи по различным критериям

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

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

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

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

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

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

В качестве примера я
рассмотрел транспортную задачу для 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. Взгляните, как выглядят
результаты моей работы:

Окно Решателя при решении транспортной задачи

Рис. 2.21. Окно Решателя при решении
транспортной задачи

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

Настройка в окне параметров Решателя  при решении транспортной задачи

Рис. 2.22. Настройка в окне параметров Решателя
при решении транспортной задачи

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

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

Рис. 2.23. Решение транспортной задачи

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

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

·
Максимальное
время (MaxTime) — ограничивает время, отведенное на процесс поиска решения. По
умолчанию задано 100 секунд, что обычно достаточно для задач небольшой
размерности, имеющих около 10 ограничений. Для задач большой размерности
придется это значение увеличивать.

·
Предельное число
итераций (Iterations) — еще один способ ограничения времени поиска путем
задания максимального числа итераций. По умолчанию задано 100, но это число
можно увеличивать до 32767. Чаще всего, если решение не получено за 100
итераций, надежд получить его при увеличении этого значения мало. Лучше
попытаться изменить начальное приближение и запустить процесс поиска заново.

·
Относительная
погрешность (Precision) — задает точность выполнения ограничений. Иногда проще
изменить ограничение, отодвинув границу, чем пытаться выполнить ограничения с
высокой точностью.

·
Линейная модель
(Assume Linear Model) — этот флажок следует включать, когда целевая функция и
ограничения — линейные функции. Эта дополнительная информация позволяет
Решателю упростить процесс поиска решения.

·
Неотрицательные
значения (Assume Non-Negative) — этим флажком можно задать ограничения на
переменные, что позволит искать решения в положительной области значений, не
задавая специальных ограничений на их нижнюю границу.

·
Показывать
результаты итераций (Show Iteration Results) — флажок, позволяющий включить
пошаговый процесс поиска, показывая на экране результаты каждой итерации. В
сложных ситуациях, когда Решатель не находит решения автоматически,
рекомендуется включать этот флажок, так как иногда можно найти точку, от
которой процесс поиска уклонился в сторону.

·
Автоматическое
масштабирование (Use Automating Scaling) — флажок автоматического изменения
масштаба следует включать, когда масштаб значений входных переменных и целевой
функции и ограничений отличается, возможно, на порядки. Например, переменные
задаются в штуках, а целевая функция, задающая суммарную стоимость, измеряется
в миллионах рублей.

·
Относительная
погрешность (Tolerance) — задается в процентах. Указанное значение имеет смысл
только для задач с целочисленными ограничениями. Решатель в таких задачах
вначале находит оптимальное не целочисленное решение, а потом пытается найти
ближайшую целочисленную точку, решение в которой отличалось бы от оптимального
не более чем на указанное данным параметром количество процентов. Если такая
точка найдена, Решатель сообщает об успехе. При большом допуске (по умолчанию
5%) может быть потеряно лучшее целочисленное решение, правда, отличающееся от
найденного Решателем в пределах допуска. Для целочисленных задач допуск имеет
смысл уменьшить, что я и сделал при решении транспортной задачи. Хочу еще раз
обратить внимание на эту особенность решения задач целочисленного
программирования. Если значение параметра Tolerance задать большим, то Решатель
может остановиться раньше времени, не найдя лучшего целочисленного решения.
Если же его взять малым, то наилучшее целочисленное решение будет отличаться от
оптимального нецелочисленного решения на величину большую, чем ту, которая
задается параметром Tolerance. В этом случае формально решение заканчивается
неуспехом, поскольку найденное решение не удовлетворяет всем требованиям.
Конечно, параметр Tolerance играет служебную роль, и «умный»
Решатель, найдя наилучшее целочисленное решение, должен был бы уведомлять, что
решение найдено, но ограничение по Tolerance не выполнено. Этого, однако, не
происходит. Мы еще столкнемся с этой ситуацией при рассмотрении следующей
задачи.

·
Сохранить модель
(Save Model) — командная кнопка; позволяет открыть диалоговое окно, где можно
указать имя сохраняемой модели. Имеет смысл использовать эту возможность, когда
на рабочем листе несколько моделей, так как единственная модель запоминается
автоматически.

·
Загрузить модель
(Load Model) — позволяет загрузить одну из сохраненных моделей.

·
Есть еще
несколько более специальных параметров, которыми можно управлять, варьируя
процедурами, применяемыми в процессе поиска. К ним следует прибегать в тяжелых
ситуациях, когда решение найти не удается.

Понравилась статья? Поделить с друзьями:
  • Транспортировка таблицы в excel
  • Транспортировать таблицу в excel это
  • Транспортировать строк в столбец excel
  • Транспортирование таблицы в excel
  • Транспонировать ячейки excel с формулами