- •Комплексная курсовая работа
- •Содержание
- •Введение
- •Сущность математического метода
- •1 Характеристика метода перевозки неоднородного груза
- •Аналитическое решение задачи перевозки неоднородного груза
- •Анализ и уточнение требований к программе
- •Анализ процесса обработки информации и выбор структур данных для ее хранения
- •Разработка основных алгоритмов решения задачи
- •Проектирование интерфейса пользователя
- •Граф состояния интерфейса
- •Формы ввода-вывода информации
- •Контрольный пример
- •Список литературы
- •Приложение а
Сущность математического метода
1 Характеристика метода перевозки неоднородного груза
Иногда встречаются задачи перевозки неоднородного груза к таким, например, относится планирование перевозок угля разных сортов, цемента разных марок, сортового железа и т.д. Характерной чертой всех этих задач является условие взаимозаменяемости различных сортов перевозимого груза при удовлетворении потребностей. Это означает, иными словами, что некоторая часть потребностей может быть удовлетворена различными видами имеющегося в наличии груза и характера потребностей. Мы рассмотрим, каким образом подобные задачи могут быть приведены к задачам о перевозках некоторого условного однородного груза.
Пусть, например, имеются два поставщика – А1и А2 и два потребителя В1и В2.
У каждого поставщика имеется груз двух сортов (например, бурый уголь и антрацит, цемент марок 500 и 600 и т.д.). Обозначим ресурсы 1-го поставщика по каждому из сортов груза через а11 и a111 и аналогично, 2-го поставщика – через а12 и a112.
В дальнейшее мы будем рассматривать не два, а как бы четыре поставщика, ресурсы которого соответственно равны а11, а111, а12 и а112. Теперь перейдем к анализу потребностей каждого потребителя. Очевидно, в условиях данной задачи эти потребности у каждого потребителя могут быть трех видов.
Потребности только на первый сорт груза. Обозначим их соответственно для 1-го потребителя через b11и для второго через b12.
Потребности только на второй сорт груза (соответственно b111и b112).
Взаимозаменяемые потребности на любой из сортов груза (соответственно b1111и b1112).
Будем полагать, что b1111и b1112означают потребности 1-го и 2-го потребителя, выраженные в единицах первого сорта груза.
Вместо каждого из двух потребителей В1 и В2 будем в дальнейшем рассматривать три потребителя с потребностями b1, b11 и b111.
Занесем все перечисленные исходные данные и, кроме того, коэффициенты затрат Cik на перевозку единицы груза в таблицу №1.
Оформление таблицы в методичке
Таблица 1
b11 a11
|
B1 |
B2 |
||||
b11 |
b111 |
b1111 |
b12 |
b112 |
b1112 |
|
a11 |
c11 |
c11 |
c11 |
c12 |
c12 |
c12 |
a111 |
c11 |
c11 |
c11 |
c12 |
c12 |
c12 |
a12 |
c21 |
cc1 |
c21 |
c22 |
c22 |
c22 |
a112 |
c21 |
c21 |
c21 |
c22 |
c22 |
c22 |
Будем полагать, что коэффициенты затрат от сорта перевозимого груза, а определяются только тем, «откуда» и «куда» он перевозится.
Пусть
p
- единицы груза первого сорта могут быть
замены при удовлетворении 3-й категории
потребностей q
– единиц второго сорта. Тогда отношение
назовем коэффициентом взаимозаменяемости.
Он показывает, сколько единиц груза
второго сора могут заменить единицу
груза первого сорта.
Приведем все данные таблицы к одному условному грузу, например грузу второго сорта, с помощью коэффициента взаимозаменяемости.
Так ресурсы а11 и а12 единиц первого сорта эквивалентны соответственно αа11 и αа12 единиц второго сорта. Аналогично, потребность b11, b12, b1111 и b1112 эквивалентны соответственно αb11 , αb12 , αb1112, αb1111. Однако затраты связаны с перевозками реального груза и зависят от его реального веса, а не от потребительских свойств.
Поэтому, увеличив искусственные ресурсы первого сорта в α раз, необходимо соответственно в этих строках уменьшить в α раз коэффициенты затрат. Наконец, следует предусмотреть, чтобы потребности 1-й и 2-й категории удовлетворялись только определенным допустимым сортом груза. Для этого производится блокировка недопустимых перевозок с помощью искусственно завышенных коэффициентов затрат М.
В результате внесения всех указанных изменений получим распределенную таблицу №2, в которой фигурирует однородный условный груз.
Оформление таблицы в методичке
Таблица 2
bk ai
|
B1 |
B2 |
||||
b11 |
b111 |
b1111 |
b12 |
b112 |
b1112 |
|
αa11 |
c11 |
M |
c11 |
c12 |
M |
c12 |
a111 |
M |
c11 |
c11 |
M |
c12 |
c12 |
αa12 |
c21 |
M |
c21 |
c22 |
M |
c22 |
a112 |
M |
c21 |
c21 |
M |
c22 |
c22 |
Условие для закрытой модели будет в данном случае выглядеть так:
а111 + а112 +α(а11 + а12) = b111 + b112 +α(b11 + b12) + α(b1111 + b1112).
Однако этого условия не достаточно. Очевидно, запасы ресурсов груза первого и второго сорта должны быть не меньше потребностей в этих сортах
a11 + a12 ≥ b11 + b12
a111 + a111≥ b111+ b112
Дальнейшее решение задач можно производить обычно распределительным методом, рассматривая условно четырех поставщиков груза и шесть потребителей.
Решение транспортной задачи начинается с нахождения опорного плана. Для этого существуют различные способы. Например, способ “северо-западного угла”, способ минимальной стоимости по строке, способ минимальной стоимости по столбцу и способ минимальной стоимости таблицы.
Простейшим способом является метод «северо-западного угла», в этом случае заполняют таблицу перевозками постепенно, начиная с левой верхней ячейки (“северо-западного угла“ таблицы).
Но такой способ не является оптимальным по стоимости, так как при его построении совсем не учитывается стоимость перевозок Сi,j .
Другой способ — способ минимальной стоимости по строке — основан на том, что распределяется продукция от пункта Ai не в любой из пунктов Bj, а в тот, к которому стоимость перевозки минимальна. Если в этом пункте заявка полностью удовлетворена, то мы убираем его из расчетов и находим минимальную стоимость перевозки из оставшихся пунктов Bj. Во всем остальном этот метод схож с методом “северо-западного угла”. При этом методе может получиться, что стоимости перевозок Ci,j и Ci,k от пункта Ai к пунктам Bj и Bk равны. В этом случае, с экономической точки зрения, выгоднее распределить продукцию в тот пункт, в котором заявка больше.
Способ минимальной стоимости по столбцу аналогичен предыдущему способу. Их отличие состоит в том, что во втором способе мы распределяем продукцию от пунктов Bi к пунктам Aj по минимальной стоимости Cj,i. Опорный план, составленный способами минимальных стоимостей, обычно более близок к оптимальному решению.
Клетки таблицы, в которых стоят ненулевые перевозки, являются базисными. Их число должно равняться m + n - 1. Необходимо отметить также, что встречаются такие ситуации, когда количество базисных клеток меньше чем m + n - 1. В этом случае распределительная задача называется вырожденной. И следует в одной из свободных клеток поставить количество перевозок равное нулю.
Составляя план по способам минимальных стоимостей в отличии от плана по способу “северо-западного угла” мы учитываем стоимости перевозок Ci,j, но все же не можем утверждать, что составленный нами план является оптимальным.
Следующий шаг - это улучшение план.
На этом способе уменьшения стоимости в дальнейшем и будет основан алгоритм оптимизации плана перевозок. Циклом в транспортной задаче мы будем называть несколько занятых клеток, соединённых замкнутой ломаной линией, которая в каждой клетке совершает поворот на 90.
Существует несколько вариантов цикла :
1
)
2) 3)
Нетрудно убедиться, что каждый цикл имеет чётное число вершин и значит , чётное число звеньев (стрелок). Условимся отмечать знаком “+” те вершины цикла, в которых перевозки необходимо увеличить, а знаком “-“ те вершины , в которых перевозки необходимо уменьшить. Цикл с отмеченными вершинами будем называть “означенным”. Перенести какое-то количество единиц груза по означенному циклу — это значит увеличить перевозки, стоящие в положительных вершинах цикла, на это количество единиц, а перевозки, стоящие в отрицательных вершинах уменьшить на то же количество. Очевидно при переносе любого числа единиц по циклу равновесие между запасами и заявками не меняется: по прежнему сумма перевозок в каждой строке равна запасам этой строки, а сумма перевозок в каждом столбце — заявке этого столбца. Таким образом, при любом циклическом переносе, оставляющем перевозки неотрицательными допустимый план остаётся допустимым. Стоимость же плана при этом может меняться: увеличиваться или уменьшатся. Назовём ценой цикла увеличение стоимости перевозок при перемещении одной единицы груза по означенному циклу. Очевидно цена цикла ровна алгебраической сумме стоимостей, стоящих в вершинах цикла, причём стоящие в положительных вершинах берутся со знаком “+”, а в отрицательных со знаком “-“. Обозначим цену цикла через . При перемещении одной единицы груза по циклу стоимость перевозок увеличивается на величину . При перемещении по нему k единиц груза стоимость перевозок увеличиться на k. Очевидно, для улучшения плана имеет смысл перемещать перевозки только по тем циклам, цена которых отрицательна. Каждый раз, когда нам удаётся совершить такое перемещение стоимость плана уменьшается на соответствующую величину k. Так как перевозки не могут быть отрицательными, мы будем пользоваться только такими циклами, отрицательные вершины которых лежат в базисных клетках таблицы, где стоят положительные перевозки. Если циклов с отрицательной ценой в таблице больше не осталось, это означает, что дальнейшее улучшение плана невозможно, то есть оптимальный план достигнут.
Метод последовательного улучшения плана перевозок и состоит в том, что в таблице отыскиваются циклы с отрицательной ценой, по ним перемещаются перевозки, и план улучшается до тех пор пока циклов с отрицательной ценой уже не останется. При улучшении плана циклическими переносами, как правило, пользуются приёмом, заимствованным из симплекс-метода: при каждом шаге (цикле) заменяют одну свободную переменную на базисную, то есть заполняют одну свободную клетку и взамен того освобождают одну из базисных клеток. При этом общее число базисных клеток остаётся неизменным и равным m + n – 1
