Решение транспортной задачи методом потенциалов
Программа для решения транспортной задачи. Метод потенциалов, его математический смысл и порядок действий по его применению. Математические методы решения транспортных задач. Вычисление стоимости перевозок, расхода топлива, общей прибыли и окупаемости.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 20.11.2008 |
Размер файла | 33,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Министерство Российской Федерации по атомной энергии
Саровский Государственный Физико-Технический Институт
Политехникум СарФТИ
КУСОВАЯ РАБОТА
По специальности- «Программное обеспечение»
Тема: Решение транспортной задачи методом потенциалов
Студент:
Группа:
Преподаватель:
Дата: 05 Мая
Оценка:…
г. Саров
2005 г.
Содержание
- Введение 3
- 1. Транспортная задача 4
- 1.1 Составление опорного плана 7
- 1.2 Метод потенциалов 9
- 2. Практическая часть 16
- 2.1 Обоснование выбора языка программирования 16
- 2.2 Разработка 16
- 2.3 Руководство пользователей 16
- Заключение 18
- Литература 19
- Введение
- Данный курсовой проект представляет собой программу для решения транспортной задачи методом потенциалов. Программа предоставляет пользователю возможность пошагового нахождения оптимального решения. Все промежуточные результаты выводятся на экран, пользователь может следить за ходом решения.
- Транспортная задача заключается в нахождении такого плана поставок, при котором его цена минимальна.
- Условия задачи задаются в виде таблицы:
- C11
- C12
- C1n
- C21
- C22
- C2n
- Cm1
- Cm2
- Cmn
- Матрица (cij)m*n называется матрицей тарифов. Планом транспортной задачи называется матрица х=(xij)m*n, где каждое число обозначает количество единиц груза, которое надо доставить из i-го пункта отправления в j-й пункт назначения.
поставщик |
потребитель |
Запас груза |
||||
В1 |
В2 |
… |
Вn |
|||
А1 |
X11 |
X12 |
… |
X1n |
a1 |
|
А2 |
X21 |
X22 |
… |
X2n |
a2 |
|
… |
… |
… |
… |
… |
… |
|
Аm |
Xm1 |
Xm2 |
… |
Xmn |
am |
|
Потребность в грузе |
b1 |
b2 |
… |
bn |
1. Транспортная задача
Транспортная задача ставится следующим образом: имеется m пунктов отправления, в которых сосредоточены запасы каких-то однородных грузов. Имеется n пунктов назначения подавшие заявки соответственно на груза. Известны стоимости рij перевозки единицы груза от каждого пункта отправления до каждого пункта назначения. Все числа рij, образующие прямоугольную таблицу заданы. Требуется составить такой план перевозок (откуда, куда и сколько единиц поставить), чтобы все заявки были выполнены, а общая стоимость всех перевозок была минимальна.
Далее, предполагается, что
(1)
где bi есть количество продукции, находящееся на складе i, и aj - потребность потребителя j.
Замечание. Если то количество продукции, равное остается на складах. В этом случае мы введем "фиктивного" потребителя n +1 с потребностью и положим транспортные расходы pi,n+1 равными 0 для всех i.
Если то потребность не может быть покрыта. В этом случае начальные условия должны быть изменены таким образом, чтобы потребность в продукции могла быть обеспечена.
Обозначим через xij количество продукции, поставляемое со склада i потребителю j. В предложении (1) нам нужно решить следующую задачу (математическая модель транспортной задачи):
(2)
Транспортную задачу мы можем характеризовать транспортной таблицей и таблицей издержек:
а1 |
… |
аn |
|||||
b1...bm |
. |
||||||
. |
|||||||
. |
|||||||
. |
|||||||
. |
|||||||
. |
p11 |
… |
p1n |
|
. |
. |
||
. |
. |
||
. |
. |
||
pm1 |
… |
pmn |
Допустимый план перевозок будем представлять в виде транспортной таблицы:
а1 |
… |
аn |
||
b...bm |
… |
|||
. |
. |
|||
. |
. |
|||
. |
. |
|||
… |
Cумма элементов строки i должна быть равна bi, а сумма элементов столбца j должна быть равна aj, и все должны быть неотрицательными.
Пример 1.
20 |
5 |
10 |
10 |
5 |
||
15 |
||||||
15 |
||||||
20 |
5 |
6 |
3 |
5 |
9 |
|
6 |
4 |
7 |
3 |
5 |
|
2 |
5 |
3 |
1 |
8 |
Мы получаем следующую задачу:
х11+х12+х13+х14+х15 =15,
х21+х22+х23+х24+х55 =15,
х31+х32+х33+х34+х35 =20,
х11 +х21 +х31=20,
х12+х22 +х32=5,
х13+х23 +х33 =10,
х14 +х24 +х34 =10,
х15+х25+х35=5;
хij 0 для i = 1,2,3; j = 1,2,3,4,5;
Кmin=5х11+6х12+3х13+5х14+9х15+6х21+4х22+7х23+3х24+5х25+2х31+5х32+3х33+х34+8х35;
Такие задачи целесообразно решать при помощи особого варианта симплекс-метода - так называемого метода потенциалов.
Все транспортные задачи имеют оптимальное решение. Если все значение aj и bi в условиях транспортной задачи целочисленные, то переменные xij во всех базисных решениях (а так же и в любом оптимальном базисном решении) имеют целочисленные значения.
1.1 Составление опорного плана
Решение транспортной задачи начинается с нахождения опорного плана. Для этого существуют различные способы, рассмотрим простейший, так называемый способ северо-западного угла. Пояснить его проще всего будет на конкретном примере:
Условия транспортной задачи заданы транспортной таблицей.
аb |
20 |
5 |
10 |
10 |
5 |
|
15 |
5 |
6 |
3 |
5 |
9 |
|
15 |
6 |
4 |
7 |
3 |
5 |
|
20 |
2 |
5 |
3 |
1 |
8 |
Будем заполнять таблицу перевозками постепенно начиная с левой верхней ячейки ("северо-западного угла" таблицы). Будем рассуждать при этом следующим образом. Пункт а1 подал заявку на 20 единиц груза. Удовлетворим эту заявку за счёт запаса 15, имеющегося в пункте b 1 , и запишем перевозку 15 в клетке (1,1). После этого дополним заявку за счет заявка пункта b 2, и запишем 5 в клетке (1,2), теперь заявка удовлетворена, но в пункте b 2 осталось ещё 10 единиц груза. Удовлетворим за счёт них заявку пунктов а2 (5 единиц клетка 2,2) и а3 (5 единиц клетка 2,3). На складе b3 есть запас в 20 единиц, за счет его мы удовлетворим оставшиеся заявки а3 (оставшиеся 5 единиц клетка 3,3), а3 (10 единиц клетка 3,4) и а5 (5 единиц клетка 3,5).
5 |
|||||
6 |
4 |
7 |
|||
3 |
1 |
8 |
На этом распределение запасов закончено; каждый пункт назначения получил груз, согласно своей заявки. Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце - заявке. Таким образом, нами сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение является опорным решением транспортной задачи. Составленный нами план перевозок, не является оптимальным по стоимости, так как при его построении мы совсем не учитывали стоимость перевозок Сij .
1.2 Метод потенциалов
Пусть имеется транспортная таблица, соответствующая начальному решению, хil =
для базисного решения переменных, хil = 0 для свободных переменных (ячейки, соответствующие свободным переменным, остаются пустыми). Далее, нам требуется таблица расходов с заданными pij.
Отыскание симплекс множителей. Заполним таблицу расходов, оставив ячейки, соответствующие свободным переменным, пустыми. В крайний правый столбец внесем значения неизвестных u1,…,um, в нижнюю строку - значения неизвестных v1,…,vn,. Эти m + n неизвестных для всех (i, j), соответствующих базисным переменным, должны удовлетворять линейной системе уравнений ui + vj = pij.
pll |
plj |
pln |
ul |
|||
.…. |
.…. |
... |
||||
pil |
pij |
pin |
ui |
|||
.…. |
.…. |
... |
||||
pml |
pmj |
pmn |
um |
|||
vl |
… |
vj |
… |
vn |
Для всех базисных решений эта система имеет треугольный вид, ранг её матрицы равен n + m - 1. Следовательно, систему всегда можно решить следующим способом.
Полагают vn = 0. Если значения k неизвестных определены, то в системе всегда имеется уравнение, одно из неизвестных в котором уже найдено, а другое ещё нет.
Переменные ui и vj симплекс - множителями. Иногда они называются также потенциалами, а этот метод решения называют методом потенциалов.
Пример 2.
5 |
u1 |
|||||
6 |
4 |
7 |
u2 |
|||
3 |
1 |
8 |
u3 |
|||
v1 |
v2 |
v3 |
v4 |
v5 |
v5 = 0 u3 = 8, так как u3 + u5 = p35 = 8, v4 = -7, так как u3 + v4 = p34 = 1, v3 = -5, так как u3 + v3 = 3, u2 = 12 v2 = -8, v1 = -6 u1 = 11.
Симплекс - множители нужны для того, чтобы найти свободную ячейку (i, j), которая при замене базиса переходит в базисную (это соответствует отысканию разрешающего столбца в симплекс - методе).
Для определения симплекс - множителей мы вносим на свободные места в таблице значения
pij = pij - ui - vj
(коэффициенты целевой функции, пересчитанные для свободных переменных). Если все pij 0, то базисное решение оптимально. В противном случае мы выбираем произвольное p 0, чаще всего наименьшее. Индексом помечено свободное переменное х , которое должно войти в базис. Соответствующую ячейку транспортной таблицы мы отметим знаком +.
Кроме ячейки (, ) транспортной таблицы, мы пометим значками - и + другие занятые числами ячейки таким образом, чтобы в каждой строке и в каждом столбце транспортной таблицы число знаков + было равно числу знаков -. Это всегда можно сделать единственным образом, причем в каждой строке и в каждом столбце будет содержаться максимум по одному знаку = и по одному знаку -.
Затем мы определяем минимум М из всех элементов, помеченных знаком -, и выбираем ячейку (, ), где этот минимум достигается.
В нашем примере с М = 5 можно выбрать (, ) = (2, 3); при этом (, ) определяет базисное переменное, которое должно стать свободным, т.е. базисное переменное, соответствующее индексу разрешающей строки симплекс - метода.
20 |
5 |
10 |
10 |
5 |
||
15 |
15 |
|||||
15 |
5 |
5 |
5- |
+ |
||
20 |
5+ |
10 |
5- |
15 |
|||||
5- |
5 |
5+ |
|||
+ |
10 |
10 |
0- |
15- |
+ |
||||
5 |
5 |
5 |
|||
0+ |
10- |
10 |
5 |
10 |
||||
5- |
5 |
+ |
5 |
||
10+ |
10- |
5 |
10 |
||||
5 |
5 |
5 |
|||
15 |
5 |
Копт = 150
Переход к новой транспортной таблице (замена базиса) происходит следующим образом:
а). В ячейку (, ) новой таблицы записывается число М.
б). Ячейка (, ) остается пустой.
в). В других ячейках помеченных знаками - или +, число М вычитается из стоящего в ячейке числа (-) или складывается с ним (+). Результат вносится в соответствующую ячейку новой таблицы.
г). Непомеченные числа переносятся в новую таблицу без изменений. Остальные ячейки новой таблицы остаются пустыми.
2. Практическая часть
2.1 Обоснование выбора языка программирования
Мною был выбран язык программирования Turbo Pascal по следующим соображениям:
· Изучение данного языка в школе
· Наличие литературы по данному языку программирования
2.2 Разработка
Имеется m пунктов отправления А1, А2 , ..., Аm , в которых сосредоточены запасы каких-то однородных грузов в количестве соответственно а1, а2, ... , аm единиц. Имеется n пунктов назначения В1 , В2 , ... , Вn подавшие заявки соответственно на b1 , b2 , ... , bn единиц груза. Известны стоимости Сi,j перевозки единицы груза от каждого пункта отправления Аi до каждого пункта назначения Вj . Все числа Сi,j, образующие прямоугольную таблицу заданы.
Требуется составить такой план перевозок (откуда, куда и сколько единиц поставить), чтобы все заявки были выполнены, а общая стоимость всех перевозок была минимальна.
Составить программу, которая бы вычисляла оптимальный план перевозки (потенциальный план).
2.3 Руководство пользователей
При запуске программа предлагает ввести количество поставщиков (не меньше 2, но не больше 5), затем количество потребителей (условие тоже). Если вводятся числа не удовлетворяющие этому условию, то программа предлагает ввести их заново. Далее программа выводит на экран таблицу, число строк которой равно введенному количеству поставщиков, а число столбцов - количеству потребителей. Предлагается ввести количество продукции у первого поставщика, у второго и т.д. После пользователю предлагается ввести количество продукции необходимое первому потребителю, второму и т.д. Затем вводятся стоимости перевозок, после чего производятся вычисления и выдается результат
Литература
Карманов В.Г. Математическое программирование. - М.; Наука, 1986г
А.В.Кузнецов, Г.И.Новикова, И.И.Холод - "Сборник задач по математическому программированию". Минск, Высшая школа, 1985г
Боборыкин В.А. Математические методы решения транспортных задач. Л.: СЗПИ, 1986
Кузнецов Ю.Н., Кузубов В.И., Волощснко А. Б. Математическое программирование. М.: Высшая школа, 1980
Подобные документы
Основные этапы решения транспортной задачи, использование метода потенциалов. Алгоритм решения методом аппроксимации Фогеля. Процедура построения цикла. Планирование перевозок из конечного числа пунктов отправления в конечное число пунктов назначения.
контрольная работа [32,6 K], добавлен 26.04.2011Математическая постановка транспортной задачи открытой модели методом потенциалов при известных показателях запаса груза поставщика и потребности потребителя; ее решение ручным способом и с помощью компьютерной программы, написанной в среде Delphi.
курсовая работа [167,2 K], добавлен 16.01.2011Решение задачи линейного программирования симплекс-методом: постановка задачи, построение экономико-математической модели. Решение транспортной задачи методом потенциалов: построение исходного опорного плана, определение его оптимального значения.
контрольная работа [118,5 K], добавлен 11.04.2012Составление программы для расчета начального базиса сбалансированной транспортной задачи, где суммарные запасы поставщиков равны суммарным запросам потребителей. Алгоритм метода потенциалов. Пример решения транспортной задачи методом наименьшей стоимости.
отчет по практике [991,3 K], добавлен 06.12.2013Создание и реализация алгоритма решения транспортной задачи методом наименьших стоимостей. Схема алгоритма основной программы. Основные шаги алгоритма решения транспортной задачи. Инструкция по эксплуатации программы и обзор результатов ее выполнения.
курсовая работа [2,0 M], добавлен 12.02.2013Особенности решения транспортной задачи распределительным методом и анализ результатов. Построение математической модели, алгоритма. Создание программы для решения транспортной задачи распределительным методом в программной среде Borland Delphi 7.
курсовая работа [1000,7 K], добавлен 23.06.2012Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011Оптимизация затрат на доставку продукции потребителям. Характеристика транспортной задачи, общий вид решения, обобщение; содержательная и математическая постановка задачи, решение с помощью программы MS Excel: листинг программы, анализ результатов.
курсовая работа [514,8 K], добавлен 04.02.2011Сущность и назначение основных алгоритмов оптимизации. Линейное программирование. Постановка и аналитический метод решения параметрической транспортной задачи, математическая модель. Метод решения задачи об оптимальных перевозках средствами MS Excel.
курсовая работа [465,6 K], добавлен 24.04.2009Использование математических и программных средств моделирования при решении задачи минимизации транспортных издержек. Использование метода потенциалов, разработка алгоритма программы на языке программирования Turbo Pascal 7.0. Методы реализации.
курсовая работа [156,6 K], добавлен 16.02.2016