Если план неоптимален.
Для улучшения плана надо "загрузить" то ребро без стрелки, которому соответствует отрицательная характеристика. Если таких ребер несколько, то выбирается ребро с наибольшей по абсолютной величине отрицательной характеристикой и к нему подрисовывается новая стрелка. При этом образуется замкнутый контур из стрелок. Новая стрелка направляется от вершины с меньшим потенциалом к вершине с большим потенциалом.
При определении величины поставки для "загружаемого " ребра рассматриваются все стрелки образовавшегося контура (если на сети — опорный план, то такой контур всегда существует, причем только один!), имеющие направление, противоположное направлению новой стрелки, и среди них находится стрелка с наименьшей поставкой - А. Выбранная таким образом величина прибавляется ко всем поставкам со стрелками, имеющими то же направление, что и новая стрелка, и вычитается из поставок в стрелках, имеющих противоположное направление. Поставки в стрелках, не входящих в контур, сохраняются неизменными. Стрелка, по которой выбрано число А, ликвидируется, и общее число стрелок остается прежним.
Новый опорный план исследуется на оптимальность подобно предыдущему. Практически удобнее вести расчеты с положительными числами, поэтому значение первого (выбираемого произвольно) потенциала лучше брать равным не нулю, а какому-либо положительному числу.
Вырождение плана транспортной задачи в сетевой постановке внешне проявляется в том, что при полном использовании запасов и полном удовлетворении потребностей количество стрелок оказывается меньше, чем n - 1, где n - общее число вершин (включая и нулевые).
Способ преодоления вырождения весьма прост: дополнительно вводится нужное количество стрелок с нулевыми поставками. Направления стрелок выбираются произвольно, однако они не должны образовывать замкнутый контур.
В случае открытой модели вводят фиктивного потребителя (поставщика) со спросом, равным небалансу. Фиктивный потребитель (поставщик) соединяется ребрами непосредственно со всеми поставщиками (потребителями). При этом показатели Cij ребер, соединяющих фиктивного потребителя (поставщика) с поставщиками (потребителями), следует брать одинаковыми и сравнительно большими. Делается это для того, чтобы исключить возможность использования фиктивной вершины в качестве промежуточного пункта.
1.2 Входные данные
К входным данным относятся:
· количество поставщиков (от 1 до 6);
· количество потребителей (от 1 до 6);
· тарифы дорог;
· количество груза, имеющийся у каждого поставщика;
· потребность потребителей.
Количество поставщиков, потребителей и тарифы дорог должны быть целочисленным значением и неотрицательные.
1.3 Выходные данные
Выходным данными является.
· путь движения груза от поставщика к потребителю;
· затраты на перевозку.
При выполнении программного модуля необходимо предусмотреть обработку следующих ошибок: неправильный ввод исходных данных. В этом случае следует подсветить место ошибки цветом и повторить ввод данных, а также пользователь имеет возможность получить информацию об ошибке. Для получения описания ошибки, пользователь должен в меню “Опции” установить в соответствующем поле флажок.
Сообщения об ошибках будут выдаваться пользователю до тех пор, пока он не введёт правильное значение.
Основные ошибки и реакция программы на них указаны в таблице 1.
Таблица 1 – Основные ошибки и реакция программы на них
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.