![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Экономика и Финансы
Экономико-математическое моделирование
Решение транспортной задачи с правильным балансом |
Аннотация Транспортная задача с правильным балансом состоит в том, чтобы найти оптимальный план по заданной таблице перевозок, при котором стоимость перевозок будет минимальна. Такая задача актуальна в областях связанных с транспортировкой грузов. САРОВСКИЙ ГОСУДАРСТВЕННЫЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ ЭКОНОМИКО-МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА МАТЕМАТИЧЕСКИХ МЕТОДОВ И ИССЛЕДОВАНИЙ ОПЕРАЦИЙ В ЭКОНОМИКЕ ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ на тему: Решение транспортной задачи с правильным балансом Студента руководитель работы консультанты работы Зав. кафедрой г. Саров 2005 г Оглавление Введение Постановка задачи Метод решения Язык программирования Описание алгоритма Описание основных структур данных Описание интерфейса с пользователем Заключение Литература Текст программы Введение Задача состоит в том, чтобы наитии такой способ перевозки при котором затраты связанные с перевозкой были бы минимальны Эта задача заинтересовала меня потому, что её решение напрямую связанно с экономией средств. Важно нахождение такого алгоритма, который позволит наиболее оптимально решить задачу. Постановка задачи Транспортная задача ставится следующим образом: имеется m пунктов отправления А1, А2 , ., Аm , в которых сосредоточены запасы каких-то однородных грузов в количестве соответственно а1, а2, . , аm. Имеется пунктов назначения В1 , В2 , . , В подавшие заявки соответственно на b1 , b2 , . , b груза. Известны стоимости Сi,j перевозки от каждого пункта отправления Аi до каждого пункта назначения Вj . Все числа Сi,j, образующие прямоугольную таблицу заданы. Требуется составить такой план перевозок (откуда, куда и сколько поставить), чтобы все заявки были выполнены, а общая стоимость всех перевозок была минимальна. Метод решения 1.Составление опорного плана. Решение транспортной задачи начинается с нахождения опорного плана. Для этого существуют различные способы. Например, способ “северо-западного угла” Рассмотрим конкретный примере: Условия транспортной задачи заданы транспортной таблицей. ПН ПО В1 В2 В3 В4 В5 Запасы аi А1 10 8 5 6 9 48 А2 6 7 8 6 5 30 А3 8 7 10 8 7 27 А4 7 5 4 6 8 20 Заявки bj 18 27 42 12 26 125 Будем заполнять таблицу перевозками постепенно начиная с левой верхней ячейки (“северо-западного угла“ таблицы). Будем рассуждать при этом следующим образом. Пункт В1 подал заявку на 18 единиц груза. Удовлетворим эту заявку за счёт запаса 48, имеющегося в пункте А1 , и запишем перевозку 18 в клетке (1,1). После этого заявка пункта В1 удовлетворена , а в пункте А1 осталось ещё 30 единиц груза. Удовлетворим за счёт них заявку пункта В2 (27 единиц), запишем 27 в клетке (1,2); оставшиеся 3 единицы пункта А1 назначим пункту В3. В составе заявки пункта В3 остались неудовлетворёнными 39 единиц. Из них 30 покроем за счёт пункта А2, чем его запас будет исчерпан, и ещё 9 возьмём из пункта А3. Из оставшихся 18 единиц пункта А3 12 выделим пункту В4; оставшиеся 6 единиц назначим пункту В5, что вместе со всеми 20 единицами пункта А4 покроет его заявку. На этом распределение запасов закончено; каждый пункт назначения получил груз согласно своей заявки.
Это выражается в том, что сумма перевозок в каждой строке равна соответствующему запасу, а в столбце — заявке. Таким образом, нами сразу же составлен план перевозок, удовлетворяющий балансовым условиям. Полученное решение является опорным решением транспортной задачи: ПН ПО В1 В2 В3 В4 В5 Запасы аi А1 10 18 8 27 5 3 6 9 48 А2 6 7 8 30 6 5 30 А3 8 7 10 9 8 12 7 6 27 А4 7 5 4 6 8 20 20 Заявки bj 18 27 42 12 26 125 Составленный нами план перевозок, не является оптимальным по стоимости, так как при его построении мы совсем не учитывали стоимость перевозок Сi,j . 2.Распределительный метод достижения оптимального плана Теперь попробуем улучшить план, составленный способом “северо-западного угла”. Перенесем, например, 18 единиц из клетки (1,1) в клетку (2,1) и чтобы не нарушить баланса перенесём те же 18 единиц из клетки (2,3) в клетку (1,3). Получим новый план. Подсчитав стоимость опорного плана (она ровняется 1039) и стоимость нового плана (она ровняется 913) нетрудно убедиться что стоимость нового плана на 126 единиц меньше. Таким образом за счёт циклической перестановки 18 единиц груза из одних клеток в другие нам удалось понизить стоимость плана: ПН ПО В1 В2 В3 В4 В5 Запасы аi А1 10 8 27 5 21 6 9 48 А2 6 18 7 8 12 6 5 30 А3 8 7 10 9 8 12 7 6 27 А4 7 5 4 6 8 20 20 Заявки bj 18 27 42 12 26 125 На этом способе уменьшения стоимости в дальнейшем и будет основан алгоритм оптимизации плана перевозок. Циклом в транспортной задаче мы будем называть несколько занятых клеток, соединённых замкнутой ломанной линией, которая в каждой клетке совершает поворот на 90°. Существует несколько вариантов цикла : 1.) 2.) 3.) Нетрудно убедиться, что каждый цикл имеет чётное число вершин и значит, чётное число звеньев (стрелок). Условимся отмечать знаком “ ” те вершины цикла, в которых перевозки необходимо увеличить, а знаком “-“ те вершины, в которых перевозки необходимо уменьшить. Цикл с отмеченными вершинами будем называть “означенным”. Перенести какое-то количество единиц груза по означенному циклу — это значит увеличить перевозки, стоящие в положительных вершинах цикла, на это количество единиц, а перевозки, стоящие в отрицательных вершинах уменьшить на то же количество. Очевидно, при переносе любого числа единиц по циклу равновесие между запасами и заявками не меняется: по прежнему сумма перевозок в каждой строке равна запасам этой строки, а сумма перевозок в каждом столбце — заявке этого столбца. Таким образом при любом циклическом переносе, оставляющем перевозки неотрицательными допустимый план остаётся допустимым. Стоимость же плана при этом может меняться: увеличиваться или уменьшатся. Назовём ценой цикла увеличение стоимости перевозок при перемещении одной единицы груза по означенному циклу. Очевидно цена цикла ровна алгебраической сумме стоимостей, стоящих в вершинах цикла, причём стоящие в положительных вершинах берутся со знаком “ ”, а в отрицательных со знаком “-“. Вершины чередуются начиная с “ ”. Обозначим цену цикла через g. При перемещении одной единицы груза по циклу стоимость перевозок увеличивается на величину g.
При перемещении по нему k единиц груза стоимость перевозок увеличиться на kg. Очевидно, для улучшения плана имеет смысл перемещать перевозки только по тем циклам, цена которых отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение стоимость плана уменьшается на соответствующую величину kg. Так как перевозки не могут быть отрицательными, мы будем пользоваться только такими циклами, отрицательные вершины которых лежат в базисных клетках таблицы, где стоят положительные перевозки. Если циклов с отрицательной ценой в таблице больше не осталось, это означает, что дальнейшее улучшение плана невозможно, то есть оптимальный план достигнут. Метод последовательного улучшения плана перевозок и состоит в том, что в таблице отыскиваются циклы с отрицательной ценой, по ним перемещаются перевозки, и план улучшается до тех пор пока циклов с отрицательной ценой уже не останется. Можно доказать, что для любой свободной клетке транспортной таблице всегда существует цикл и притом единственный, одна из вершин которого лежит в этой свободной клетке, а все остальные в базисных клетках. Если цена такого цикла, с плюсом в свободной клетке, отрицательна, то план можно улучшить перемещением перевозок по данному циклу. Количество единиц груза k, которое можно переместить, определяется минимальным значением перевозок, стоящих в отрицательных вершинах цикла (если переместить большее число единиц груза, возникнут отрицательные перевозки). Применённый выше метод отыскания оптимального решения транспортной задачи называется распределённым; он состоит в непосредственном отыскании свободных клеток с отрицательной ценой цикла и в перемещении перевозок по этому циклу. Язык программирования Для написания программы был выбран язык VBA по следующим причинам: 1. Visual Basic for Applica io s был написан специально для Office приложений то есть потенциальному заказчику достаточно установит Office и запустить Ms Excel чтобы программы работала 2. Так как Транспортная задача заданна в виде таблицы то удобнее решать ее использую возможности табличного редактора 3. Это один из языков, в котором я неплохо разбираюсь. Поэтому мне удобнее писать программу с помощью VBA. Описание алгоритма 1.При запуске программы пользователю предлагается ввести количество запасов и запросов А) Выполняется проверка на правильность ввода. Если введены числа то Б) Рисуется таблица 2. После прорисовки таблицы пользователю предлагается заполнить таблицу стоимости перевозок А) После подтверждения заполнения пользователем происходи проверка на правильность ввода Б) Суммируется строка Запросы и столбец Запасы выполняется проверка на равенство. Если равны то 3. Выполняем построение опорного плана методом Северо-западного угла A) Cтроим нулевую матрицу заданного размера на “листе2” Б) Затем методом северо-западного угла исходя из данных на листе “Данные” В) Переносим получившуюся таблицу на лист “Циклы” 4.Используем метод распределения следующим образом Из приведенного примера уже можно выделить, как алгоритм перебирает пути. Он действует по следующей схеме: Начальное значение j = 1 (первое место в маршруте).
В силу ряда особенностей региона они оказались очень эффективны в различных разновидностях боевых действий и для решения транспортных задач. Становилось все более очевидным, что на Черном море классическое соотношение сил по различным классам кораблей не отражало реальной картины возможностей противоборствующих сторон. Что касается господства в воздухе, то и здесь картина была не однозначной. В большинстве случаев объединенные ВВС флота и фронта не уступали количественно авиации противника, действующей на приморском направлении. Но советская авиация оказалась раздробленной между различными объединениями а германская, наоборот, управлялась централизованно. Таким образом, на Черном море сложилась ситуация, когда решающее значение стало играть не численное соотношение сил сторон, а искусность военачальников в ведении военных действий. Причем это относилось не только к уровню флота или фронта, но и к командирам соединений и кораблей. В условиях спорного господства (19421943Pгг.) Лето и осень 1942Pг. стали для черноморцев самыми тяжелыми за всю войну
1. Маршрутизація транспортних перевезень методом Кларка-Райта і її автоматизація в MS Excel
2. Метод Алексея Юрьевича Виноградова для решения краевых задач
3. Решения смешанной задачи для уравнения гиперболического типа методом сеток
4. Решение прикладных задач методом дихотомии
5. Решение экономических задач программными методами
9. Эвристические методы решения творческих задач
11. По решению прикладных задач на языке FRED
12. Графы. решение практических задач с использованием графов (С++)
13. Постановка задачи линейного программирования и двойственная задача линейного программирования.
14. Решение обратных задач теплопроводности для элементов конструкций простой геометрической формы
15. Маркетинг: решение исследовательских задач
17. Решение смешанной задачи для уравнения
18. План-конспект урока Математическое моделирование при решении экологических задач
19. Приложения определенного интеграла к решению некоторых задач механики и физики
20. Обучение решению математических задач с помощью графов
25. Решение многокритериальной задачи линейного програмирования
27. Решение экономических задач с помощью VBA
30. Использование Excel для решения статистических задач
31. Использование информационных технологий при решении экономических задач
32. Принципы разработки алгоритмов и программ для решения прикладных задач
35. Средства языка программирования Паскаль для решения математических задач
36. Применение неравенств при решении олимпиадных задач
41. Решение обратной задачи динамики
42. Решение статистических задач
43. Использование электронных таблиц MS EXCEL для решения экономических задач. Финансовый анализ в Excel
44. Разработка программных средств анализа графика функции и решение оптимизационных задач
45. Применение линейного программирования для решения экономических задач (оптимизация прибыли)
46. Решение транспортной задачи методом потенциалов
47. Рішення транспортної задачі за методом ПЗК і в Excel
48. Методы решения транспортных задач
50. Лабораторная работа №5 по "Основам теории систем" (Транспортные задачи линейного программирования)
51. Лабораторная работа №6 по "Основам теории систем" (Решение задачи о ранце методом ветвей и границ)
52. Расчет дифференциального уравнения первого, второго и третьего порядка методом Эйлера
53. Построение решения задачи Гурса для телеграфного уравнения методом Римана
57. Новый метод «дополнительных краевых условий» Алексея Юрьевича Виноградова для краевых задач
58. Расчет линейных цепей методом топологических графов
59. Предмет, метод и задачи бухгалтерского учета (Контрольная)
61. Математические модели и методы их расчета
62. Расчет площади сложной фигуры с помощью метода имитационного моделирования
63. Методы решения некорректно поставленных задач
64. Решение задачи Дирихле для уравнения Лапласа методом сеток
65. Новые представления о задачах и методах гипербарической медицины
66. Методы расчетов бюджета стимулирования
67. Налоговое администрирование: его цели, задачи, методы и формы
68. Применение обобщенного метода Фурье в задаче полого волновода треугольного сечения
69. Обучение общим методам решения задач
73. Методы расчета естественного и искусственного освещения
74. Анализ экономических задач симплексным методом
75. Применение новейших экономико-математических методов для решения задач
76. Методы расчета калькуляционных статей
77. Системы и методы калькулирования себестоимости. Расчет себестоимости на примере ячеек КРУ
78. Гидродинамический метод расчетов водозаборных сооружений
80. Расчет сетевой модели методом Форда (с программой)
82. Транспортная задача и задача об использовании сырья
83. Ряды Фурье. Численные методы расчета коэффициентов
84. Предмет, метод и задачи бухгалтерского учета
85. Предмет, задачи и методы физиологии растений
89. Предмет, метод и задачи курса истории государства и права
90. Аналіз чутливості використання методу Якобі для рішення задач лінійного програмування
91. Метод приоритетов для задач разработки расписаний
92. Обзор методов обработки естественного языка в задачах дистанционного обучения
93. Постановка и решение транспортной параметрической задачи
94. Решение задач линейного программирования симплекс методом
95. Решение задачи линейного программирования графическим методом
96. Розв’язання задачі Коші для звичайного диференціального рівняння першого порядку методом Ейлера
97. Численные методы расчетов в Exel
98. Метод статистической и гармонической линеаризации. Расчет автоколебаний по критерию Найквиста