Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
133
Добавлен:
16.03.2016
Размер:
2.31 Mб
Скачать

«Решение транспортной задачи (тз) )»

Транспортная задача – задача о поиске оптимального распределения поставок однородного товара от поставщиков к потребителям при известных затратах Cij на перевозку (тарифах) товара между пунктами отправления и назначения. Она является задачей линейного программирования специального вида. Транспортная задача (исходные данные) может быть записана в виде прямоугольной таблицы. Пример подобной таблицы приведен ниже. Требуется определить оптимальный план поставок по критерию минимальных затрат на перевозки.

Запасы ai

Поставщики

Постi

Потребители

Потр1

Потр2

Потр3

Потр4

Потр5

a1=13

Пост1

7

6

8

9

4

a2=17

Пост2

10

9

5

11

3

a3=10

Пост3

14

9

4

10

9

a4=13

Пост4

3

11

8

8

8

ai = 53

Потребности

bi (bi = 53)

b1=10

b2=8

b3=12

b4=14

b5=9

Обозначим суммарный запас груза у всех поставщиков символом a, а суммарную потребность в грузе у всех потребителей – символом b.

Тогда

Транспортная задача называется закрытой, если a = b. Если же a b , то транспортная задача называется открытой.

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

В случае открытой задачи при a < b весь груз будет вывезен, однако будут недопоставки груза экономически невыгодным потребителям. При a > b, наоборот, будут удовлетворены все потребители, но часть груза останется на складах экономически невыгодных поставщиков.

Пусть - (0) это количество груза от поставщикаАiк потребителюВj. МатрицаX с неотрицательными элементамиxij называетсяпланом перевозок.

Функция z=называетсяцелевой функцией. План перевозок, реализующий минимум целевой функции z, называетсяоптимальным.

Если задача является открытой, то необходимопровестипроцедуру закрытия задачи. С этой целью приa <b добавляемфиктивного поставщика A'm+1с запасом грузаa'm +1=b-a. Если жеa >b , то добавляемфиктивного потребителя B'n+1 с заказом грузаb'n +1=a-b. В обоих случаях соответствующие фиктивным объектам тарифы перевозокc'ij полагаемравныминулю. В результате суммарная стоимость перевозокz не изменяется.

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

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

Рис.6.12 – Исходный лист после решения транспортной задачи

· В ячейках диапазонаB5:F8введены коэффициенты матрицы стоимостей {Cij}, в ячейкахI4:M4– объемы потребленияbj, в ячейкахH5:H8– объемы производстваai.

·Формула вычисления целевой функции задана в ячейкеF3:=СУММПРОИЗВ(B5:F8;I5:M8).

·Ячейки диапазоновN5:N8, I9:M9– это ячейки с формулами, задающими ограничения транспортной задачи (суммы по строкам и столбцам соответственно).

·Выделенная областьI5:M8– это ячейки, отведенные под искомые решения транспортной задачи xij. В исходном листе эта область была не заполненной, данные с решением транспортной задачи появились после запуска пакета «Поиск решения» (см. рис. 6.12).

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

Рис.6.13 – Результат решения транспортной задачи

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

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

Задача Х1.Имеются n=4 пунктов производства иm=4 пунктов распределения продукции. Стоимость перевозки единицы продукции с і-го пункта производства в j-й центр распределения cijприведена в таблице,где под строкой понимается пункт производства, а под столбцом - пункт распределения. Кроме того, в этой таблице в конце i-й строкие указан объем производства в і-м пункте производства, а внизу j-го столбца указан спрос в j-м центре распределения.

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

Пункт произв.

Стоимость перевозки ед. продукции

Объем пр-ва

П1

П2

П3

П4

Пр1

1

3

4

5

20

Пр2

5

2

10

3

30

Пр3

3

2

1

4

50

Пр4

6

4

2

6

20

Потребность

30

20

60

10

Решение задачи средствами MathCAD:

1) Введите исходные данные в матричной форме.

2) Введите линейную целевую функцию.

3) Задайте начальные значения переменных:

4) Введите ограничения задачи в матричной форме.

5) Определите оптимальное решение задачи с помощью встроенной функции Minimize:

Задача Х2.Постановка задачи. Пусть имеется m источников финансирования А1, А2, ..., Аm и n периодов финансирования B1, B2, ..., Вn. Известны затраты, связанные с выделением единицы денежных ресурсов Сij из i-ro источника в j-ом периоде, а также объемы финансирования из каждого i-гo источника в течение всего времени –аi. Известны суммарные объемы финансирования из всех источников в каждый j-й период времени - bj. Требуется определить объемы финансирования Хij из i-ro источника в j-ом периоде, чтобы:

1. Ресурсы всех источников были реализованы.

2. Обеспечить финансирование в полном объеме в каждом периоде.

3. Достигнуть экстремума выбранного критерия оптимизации.

Исходные данные задачи при m=n=3 представлены в следующей таблице.

Объемы ai

Источники

Аi

Периоды финансирования Вi

В1

В2

В3

a1=14

А1

70

38

24

a2=20

А2

58

18

56

a3=26

А3

19

10

100

ai = 60

Потребности

bi (bi =60)

b1=30

b2=22

b3=8

Введите в рабочем листе поясняющий текст. Для этого вначале разместите в месте ввода текста курсор (визир - красный крестик). Затем выберите (щелчком мыши или с помощью клавиатуры) пункт Insert (Вставка) главного меню Mathcad. В появившемся падающем меню щелкните по пункту Text Region (Текстовая область) или в месте расположения курсора нажмите клавишу с двойной кавычкой (команда для ввода текста). В обоих случаях появится шаблон, указывающий место и начало ввода, после чего можно приступить к этой операции. Текстовая область будет автоматически увеличиваться по мере ввода текста. По окончании его необходимо вывести курсор (маркер ввода) за рамки области.

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

Y (X11, Х12, Х13, Х21, Х22, Х23, Х31, Х32, ХЗЗ).

Затем нажмите комбинацию клавиш Shift+: для ввода знака присваивания :=. На месте правой метки поместите всё выражение критерия оптимизации. Начальные приближения вводятся аналогично.

Для решения задачи используем блок функций Given ... Minimize, выполнив следующие операции:

• введите, если необходимо, комментарии, воспользовавшись клавишей с двойной кавычкой;

• введите ключевое слово Given;

• введите систему ограничений, используя при вводе знак равенства, вызванный нажатием комбинации клавиш Ctrl+=;

• введите граничные значения (рис. 1);

• введите вектор-столбец искомых параметров, используя диалоговое окно Insert Matrix (Вставить матрицу). Для этого щелкните по левой верхней кнопке на панели инструментов Matrix (Матрица) или нажмите комбинацию клавиш Ctrl+M. В появившемся диалоговом окне Insert Matrix в поле Rows (Строки) число строк ( элементов вектора-столбца) должно быть равно 9, а в поле Columns (Столбцы) – 1;

• введите знак присваивания, нажав комбинацию клавиш Shift+:(двоеточие);

• используя диалоговое окно Insert Function (Вставить функцию), введите функцию Minimize с искомыми параметрами, нажав для этого комбинацию клавиш Ctrl+E;

• скопируйте и вставьте вектор-столбец искомых параметров и введите знак «равно».

На рис.1 показано подготовка процесса оптимизации распределения однородных ресурсов с помощью Mathcad.

Это математическое описание конкретной транспортной задачи в нотации системы, где. представлены критерий оптимизации, начальные приближения и граничные условия. В описании двух первых пунктов использован знак присваивания := (двоеточие и равно). Он вводится щелчком мыши по второй кнопке в первой строке панели Evaluation (Вычисление), если она была заранее выведена на рабочий лист.

Следует обратить внимание на представление системы ограничений в Mathcad. При ее написании используетсяжирный знак равенства, вызываемый щелчком по кнопке с аналогичным знаком - второй в первом столбце панели инструментовEvaluation(Вычисление).

На рис.2 показано продолжение процесса оптимизации распределения однородных ресурсов с помощью Mathcad. Жирный знак «равно» - его еще называют булевым равенством - можно вывести нажатием комбинации клавишCtrl+= (равно).

Оптимальное распределение однородных ресурсов зафиксировано в векторе (X11 Х12 Х13 ...). Из полученного решения видно, чтоX11 = 4, Х12 = 2, Х13 = 8, Х21= 0, Х22 = 20, Х23 = 0, Х31 = 26, Х32 =0, ХЗЗ = 0. Это означает, что источник 1 должен профинансировать в первом периоде 4 единицы, во втором и в третьем - 8 единиц. Источник 2: в первом периоде 0 единиц, во втором 20 и в третьем - 0 единиц. Источник 3: в первом периоде 26 единиц, во втором и в третьем финансирование отсутствует. Первая цифра в переменнойXопределяет источник, а вторая - период финансирования. Такое распределение денежных средств из источников обеспечит минимальные суммарные затратыY, которые составят 1,402 х 103единиц.

Рис.1. Подготовка процесса оптимизации

Рис.2. Начало и продолжение процесса оптимизации