Главная страница
Навигация по странице:

  • Критерий оптимальности для транспортной задачи

  • Поиск решения...

  • Линейное программирование. 1. введение в линейное программирование


    Скачать 1.28 Mb.
    Название1. введение в линейное программирование
    АнкорЛинейное программирование
    Дата12.04.2023
    Размер1.28 Mb.
    Формат файлаdoc
    Имя файлаTopic1.doc
    ТипЗадача
    #1057295
    страница6 из 6
    1   2   3   4   5   6

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


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

    Пример 2.6. Имеются три поставщика некоторого товара и четыре потребителя этого товара. Причём известна стоимость перевозки товара от каждого поставщика к каждому потребителю. Требуется найти объёмы перевозок для каждой пары "поставщик − потребитель" так, чтобы суммарные затраты на перевозку были минимальны, запасы всех поставщиков реализованы и потребности всех потребителей удовлетворены (табл.2.1).
    Таблица 2.1.

    Поставщики

    Потребители

    Запасы поставщиков,











    7




    2




    4




    8




    340























    8




    9




    6




    5




    200























    3




    5




    7




    2




    160





















    Спрос потребителей,

    120

    170

    150

    260





    В левом верхнем углу произвольной клетки стоит коэффициент, равный стоимости перевозки от поставщика, номер которого указан в этой строке, к потребителю, номер которого указан в столбце.

    В теории транспортной задачи таблица вида табл. 2.1 называется таблицей поставок.

    Построим экономико-математическую модель данной задачи, обозначив через объем поставляемого товара от i -го поставщика к j- му потребителю. Чтобы запасы каждого поставщика были полностью реализованы, должны быть справедливы уравнения баланса для каждой строки таблицы поставок, т. е. выполняться равенства

    (2.4)

    Чтобы спрос каждого из потребителей был удовлетворён, должны быть справедливы уравнения баланса для каждого столбца таблицы поставок, то есть

    (2.5)

    Поскольку объём перевозимого груза величина неотрицательная, то должны выполняться ограничения на переменные :



    Суммарные затраты F на перевозку определяются указанными в таблице поставок тарифами перевозок и размерами поставок:

    (2.6)

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

    Транспортная задача называется закрытой (сбалансированной), если сумма запасов всех n поставщиков равна сумме потребностей всех m потребителей:



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

    Число основных (базисных) переменных закрытой транспортной задачи равно m + n −1, где n − число поставщиков; m − число потребителей; так как в закрытой транспортной задаче сумма запасов всех поставщиков равна сумме потребностей всех потребителей.

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

    Нахождение первоначального базисного распределения – опорного плана задачи − возможно любым из известных методов: наименьшей стоимости, "северо-западного угла", Фогеля, наибольшего предпочтения.

    Рассмотрим метод "северо-западного угла". "Северо-западным углом" называется ячейка таблицы поставок, соответствующая значению переменной . В эту ячейку записываем максимально возможную поставку, определяя её по формуле

    (2.7)

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

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

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

    Получаемое распределение по методу "северо-западного угла" для транспортной задачи, исходные данные которой содержатся в табл. 2.1, показано в табл. 2.2.

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



    а значение целевой функции на этом плане, равное стоимости поставок, равно


    Таблица 2.2.

    Поставщики

    Потребители

    Запасы поставщиков,











    7




    2




    4




    8




    340




    120




    170




    50









    8




    9




    6




    5




    200
















    100




    100



    3




    5




    7




    2




    160






















    160

    Спрос потребителей,

    120

    170

    150

    260





    Другим методом определения опорного плана поставок является метод наименьшей стоимости.

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

    На втором шаге распределения выбираем клетку с тарифом 2 и делаем в неё поставку . Теперь запас третьего поставщика полностью израсходован и все клетки третьей строки далее не рассматриваем.

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









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

    Таблица 2.3.

    Поставщики

    Потребители

    Запасы поставщиков,











    7




    2




    4




    8




    340




    20




    170




    150









    8




    9




    6




    5




    200




    100
















    100



    3




    5




    7




    2




    160






















    160

    Спрос потребителей,

    120

    170

    150

    260





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



    а значение целевой функции на этом плане равно



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

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

    Для определения оценок свободных клеток используют два взаимозаменяемых метода: распределительный и потенциалов. Рассмотрим один из них, а именно метод потенциалов.

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

    (2.8)

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

    Разрешая равенства (2.8) относительно потенциалов, получаем их числовые значения. Оценки свободных клеток таблицы поставок рассчитываются по формулам

    (2.9)

    Если построенное первоначальное решение не удовлетворяет критерию оптимальности, то среди свободных клеток, имеющих отрицательную оценку, выбираем ту, для которой абсолютная величина оценки наибольшая. Отмечаем эту клетку знаком " + " и строим из неё цикл.

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

    Последовательно отмечаем вершины цикла знаками " + " и " − " так, чтобы соседние вершины были отмечены противоположными знаками.

    Среди поставок, находящихся в клетках помеченных знаком "−", выбираем наименьшую и помещаем ее в пустую клетку, помеченную знаком " + ". Затем рассчитываем новые значения поставок, прибавляя выбранное число ко всем поставкам, стоящим в клетках, помеченных знаком " + ", и вычитая его из всех поставок, стоящих в клетках, помеченных знаком " − ". Для вновь полученного плана поставок рассчитываем по занятым клеткам потенциалы, а затем оценки новых свободных клеток.

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

    Для вычисления оценки свободной клетки таблицы поставок распределительным методом необходимо построить цикл для неё и найти оценку по формуле



    где записаны в порядке прохождения цикла с чередованием знаков "+" и "" тарифы перевозок для всех клеток, образующих цикл оцениваемой свободной клетки.

    Пример 2.7. Решить транспортную задачу с опорным планом, заданным в табл. 2.3, методом потенциалов.

    Вычислим потенциалы для занятых клеток и результаты расчётов поместим в табл. 2.4:













    Рассчитаем оценки свободных клеток таблицы поставок:













    Таблица 2.4.

    Поставщики

    Потребители

    Запасы поставщиков,

    Потенциалы











    7




    2




    4




    8




    340






    2

    0




    170




    150









    8




    9




    6




    5


    +





    200






    1
    +
    00
















    100



    3




    5




    7




    2




    160
























    160

    Спрос потребителей,

    120

    170

    150

    260








    Потенциалы















    Среди найденных оценок одна меньше нуля, следовательно, найденный план не является оптимальным. Делаем перераспределение поставки в клетку . Цикл, найденный для перемены плана поставок, показан в табл. 2.4.

    Находим размер перемещаемой в клетку поставки по размерам отмеченных знаком "" поставок, а именно:



    Прибавляем число 100 к поставкам, отмеченным знаком "+", вычитаем число 100 из поставок, отмеченных знаком "−", новое получаем распределение поставок. Заносим результаты в новую таблицу поставок (табл. 2.5). Для вновь полученного плана поставок и по тарифам занятых клеток считаем значения потенциалов.

    Таблица 2.5.

    Поставщики

    Потребители

    Запасы поставщиков,

    Потенциалы











    7




    2




    4




    8




    340






    20




    170




    150









    8




    9




    6




    5




    200
























    200



    3




    5




    7




    2




    160






    100
















    60

    Спрос потребителей,

    120

    170

    150

    260








    Потенциалы















    Находим оценки свободных клеток:













    Для найденного плана



    Подсчитаем значение целевой функции:



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

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


    Решим средствами Excel задачу, представленную табл. 2.1. Исходные условия этой задачи представлены в таблице листа Excel на рис. 2.5.

    В ячейках с А2 по D4 представлена таблица стоимостей (тарифов) перевозок. При этом столбцы, обозначенные буквами А, B, C, D, соответствуют первому, второму, третьему и четвёртому потребителям, а строки с номерами "2", "3", "4" соответствуют первому, второму и третьему поставщикам.

    Ячейки с А6 по D8 зарезервированы под таблицу объёмов поставок (перевозок).

    В строке с номером "10" указаны величины спроса каждого из потребителей. А в столбце, обозначенном буквой "F", – запасы каждого из поставщиков.



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

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

    =СУММПРОИЗВ(А6:D8;А2:D4).

    В ячейках А9:D9 записываем формулу суммирования трех вышестоящих ячеек. Например, в ячейке А9 будет формула: =СУММ(A6:A8).

    В ячейках Е6:Е8 записываем формулу суммирования четырех ячеек, находящихся слева. Например, в ячейке Е6 будет формула: =СУММ(A6:D6).

    Затем открываем окно "Поиск решения". Значения, которые нужно ввести непосредственно в окне "Поиск решения", а также полученный результат, указаны на рис. 2.6.



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

    1   2   3   4   5   6


    написать администратору сайта