Алгоритмы для работы с транспортными сетями
Зарегистрируйся в два клика и получи неограниченный доступ к материалам,а также промокод на новый заказ в Автор24. Это бесплатно.
Основной модуль программы, в котором определены структуры данных и алгоритмы для работы с транспортными сетями – «trafEU».
На рисунке 29 и 30 показаны основные типы данных и переменные используемые в модуле. План перевозок задается в переменной «M», являющейся массивом типа Trec. В аналогичной переменной «bufM» содержится временный массив, с которым осуществляется работа по поиску оптимального плана.
Рисунок 29 - Типы данных для работы с транспортными сетями
Рисунок 30 - Переменные для работы с транспортными сетями
Массивы «A» и «B» хранят данные об объемах производства и потребления в соответствующих пунктах. Массивы Ua и Vb типа «TPot» хранят значения потенциалов. Переменные «bufMk_1» и «bufMk_2» являются вспомогательными массивами для хранения элементов определяющейся, скорректированной цепочки.
Итак, после ввода данных, в памяти существуют переменные, определяющие не вырожденный, сбалансированный план, для которого, функцией «SearchSol», построен опорный план. Следующий шаг заключается в определении оптимального плана. Для этого используется код, показанный на рисунке 31.
Рисунок 31 - Код определения оптимального плана
Процедура «DefinePot» определяет потенциалы. Для этого строится матрица потенциалов
Зарегистрируйся, чтобы продолжить изучение работы
. Код процедуры «DefinePot» показан на рисунке 32. Процедура построена следующим образом. Осуществляется перебор всех элементов матрицы транспортных издержек. Для каждого существенного элемента решается система уравнений (9). Так-как, при её решении некоторые связанные значения еще могут быть не определены, то используя переменную «flag», сигнализирующую об изменении, происходит пропуск не определенных слагаемых уравнений. Этот перебор осуществляется внутри цикла, количеством итераций равных максимальному значению количества столбцов и строк. Таким образом однозначно гарантируется то, что все еще не определенные уравнения из системы (9) будут определены. Последний шаг алгоритма вносит в матрицу плана транспортировки разность потенциалов и соответствующих значений cij издержек транспортировки – kij. В виду этого, проверка плана на оптимальность сводится к поиску отрицательных значений kij. Данная проверка осуществляется функцией «isOptimal», которая возвращает true, если план оптимальный. Код функции показан на рисунке 33.
Рисунок 32 - Процедура определения потенциалов
В этой функции для всех x-существенных элементов определяется показатель kij. Если в матрице имеется хоть один такой элемент, то план не оптимальный
50% дипломной работы недоступно для прочтения
Закажи написание дипломной работы по выбранной теме всего за пару кликов. Персональная работа в кратчайшее время!