Смекни!
smekni.com

Транспортная задача с ограничениями возможных транспортных средств (стр. 3 из 3)

После заполнения элемента плана объемы производства и потребления корректируются. Коррекции предшествует построение цепочки. Цепочка содержит обязательно нечетное число нулей и в принципе может состоять из одного нуля. Построение цепочки начинается с последнего найденного нуля со штрихом. Затем по столбу к нулю со звездочкой, а уже от него по строке к нулю со штрихом. Для коррекции плана выбирается корректирующий элемент

. Он выбирается из невязки строки сначала, из невязки конца цепочки и элементов конца Х, соответствующих нулям со звездочкой, которые вошли в цепочку. Элемент
прибавляется к элементу Хij, если ему в цепочку соответствовал элемент Сij =0', и отнимается от элемента Хij, если в цепочке ему соответствовал элемент Сij =0*. Для коррекции плана рассчитывается невязка по строкам и столбцам, а так же суммарная невязка.

Рассчитываются невязки по столбцам и строкам.

Невязка по строке

, i=1,m, j=1,n (2.19)

Невязка по строке

, i=1,m, j=1,n (2.20)

Затем рассчитывается суммарная невязка плана

(2.21)


Если суммарная невязка плана = 0, то это говорит о получении оптимального решения. Если  не равно 0, то переходим к этапу разметки. Выводим L - общая стоимость перевозок (см рисунок 2.3).

Рисунок 2.3 - блок - схема подпрограммы вычисления невязки.


Описание программы.

Описание работы программы:

пользователь вводит количество поставщиков и потребителей;

пользователь вводит все данные о поставщиках и потребителях;

пользователь вводит ограничения;

строит матрицу Сij, элементы которой отображают определенную скидку;

Все используемые в программе переменные и подпрограммы, кратко описаны в таблицах 2.1

Описание блок-схемы:

блок-схема проверка на условие баланса представлена на рисунке 2.1;

блок - схема общего алгоритма вычисления опорного плана представлена на рисунке 2.2;

блок схема вычисления невязки представлено на рисунке 2.3

Таблица 2.1 -Используемые переменные

Имя Тип Описание
Cont TZLPTableContext В каждой конкретной библиотеке будет свой тип контекста
Значение функции Integer Код возврата: ResultError = - 1 - ошибка в алгоритме; ResultFinish = 0 - успешное окончание расчетов; ResultNoSolution = 1 - нет решения;
SourceF TFunction Целевая функция
Limitations TLimitations Ограничения
MinMax TFunctionType Функция на минимум или максимум. ftMin - минимум; ftMax - максимум.

Integer

Длина массива ограничений

Factors

TDynIntegerArray

Массив ограничений: последовательность из Len целых чисел (Integer)

Значение функции

TIntegerMatrix

матрица из целых чисел