Решение транспортных задач венгерским методом
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Предварительные потенциалы выбирают так, чтобы их разность для любой пары пунктов Аi и Вj, связанных основной коммуникацией, были равна cij. Если окажется, что разность предварительных потенциалов для всех других коммуникаций не превосходит cij, то данный план перевозок - оптимальное решение задачи. В противном случае указывают способ улучшения опорного плана Т-задачи.
Нахождение оптимального плана происходит по следующему алгоритму:
. Расчитываются потенциалы пунктов производства и потребления, решая последовательность уравнений
Сij=Ui-Vj;=1;
. Выполняется пересчет матрицы С по правилу:
С0=C-(Ui-Vj)
. Проверка на оптимальность. Если все компоненты матрицы С0 не отрицательны, то мы достигли оптимального решения. В противном случае план можно улучшить.
. Среди элементов матрицы С0 отыскивается минимальный отрицательный, который обозначается d. Соответствующая ему коммуникация будет вводится в базис. Данную коммуникацию в плане Х обозначают 0+.
. Для определения коммуникации, выводимой из базиса необходимо построить цепочку. Цепочка строится следующим образом. Начиная со строк матрицы Х вычеркиваются те из них, в которых один не нулевой элемент. Подобную операцию повторяют затем по столбцам, следом по строкам и т.д.
В результате проведенной процедуры не вычеркнутыми оказываются элементы, которые состовляют цепочку. Цепочка замкнута, содержит четное число элементов и строится, начиная от 0+, безразлично в каком направлении, по ходу ладьи в шахматах.
При этом элементы, стоящие на нечетных местах помечаются минусом, а на четных - плюсом.
Среди элементов, отмеченных знаком минус выбирается минимальный элемент Q.=min{Q-}, который прибавляется или вычитается к элементам плана Х, согласно индексации. При этом коммуникация, значение которой равной нулю оказывается выведенной из базиса.
Появление в результате вычитания более одного нуля черевато потерей опорности плана. Чтобы этого не произошло, все нули, кроме одного помечают символом 0 с эпсилом (все входящие только в цепочку) и соответствующие коммуникации считаются условно существующими.
. Коррекция значения целевой функции:= L - |d|*Q
. Подсчитывают матрицу С:
а) Отмечают в матрице нули, соответствующие базисным элементам плана Х.
б) Вычеркивается строка, соответствующая введенной коммуникации. Если в процесс вычеркивания строки оказались задетыми существенные или ранее отмеченные нули мытрицы С, то вычеркивают столбцы, на которых они находятся. Если в процесс вычеркивания столбца оказались задетыми ранее отмеченные нули матрицы С, то вычеркивают строки, на которых они находятся.
в) Процесс вычеркивания продолжается до тех пор, пока есть что вычеркивать. После этого к элементам вычеркнутых строк прибавляют + |d|, а из вычеркнутых столбцов вычитают модуль -|d|. Переходим в пункт 3.
2 СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ
В пунктах Аi имеются запасы некоего продукта, который необходимо перевезти потребителям Вj.
Требуется отыскать такой план перевозок, при котором весь продукт из пунктов Аi будет вывезен, потребности потребителей полностью удовлетворены и суммарные транспортные затраты буду