Во избежание ошибок после построения начального опорного решения необходимо проверить, что число занятых клеток равно m+n-1 и векторы условий, соответствующие этим клеткам, линейно независимы.
Необходимо иметь в виду, что метод северо-западного угла не учитывает стоимость перевозок, поэтому, опорное решение, построенное по данному методу, может быть далеким от оптимального.
Пример 3:
Составить опорное решение методом северо-западного угла транспортной задачи, в которой 5 поставщиков и 5 потребителей. данные записаны в таблице 6
Таблица 6
| В150 | В240 | В330 | В420 | В510 |
А110 | |||||
А220 | |||||
А330 | |||||
А440 | |||||
А550 |
Решение:
Распределяем запасы первого поставщика. Так как его запасы
Распределяем запасы второго поставщика. Так как его запасы
Распределяем запасы третьего поставщика
Распределяем запасы третьего поставщика
Распределяем запасы четвертого поставщика
Распределяем запасы четвертого поставщика
Распределяем запасы пятого поставщика. Так как его запасы
Распределяем запасы пятого поставщика. Так как его запасы
Распределяем запасы пятого поставщика. Так как его запасы
Ввиду того, что задача с правильным балансом, запасы всех поставщиков исчерпаны и запросы всех потребителей удовлетворены.
Результаты построения опорного решения приведены в таблице 7.
| В150 | В240 | В330 | В420 | В510 |
А110 | 10 | - | - | - | - |
А220 | 20 | - | - | - | - |
А330 | 20 | 10 | - | - | - |
А440 | - | 30 | 10 | - | - |
А550 | - | - | 20 | 20 | 10 |
1.3 БЛОК-СХЕМА (АЛГОРИТМ РЕШЕНИЯ)
|
нет нет
да
Метод
северо-
- западного
угла
метод
потенциалов
2. ФОРМЫ ВХОДНОЙ ИНФОРМАЦИИ
Входные данные вводятся с клавиатуры
· Запасы i-го поставщика
· запросы j-го потребителя
В данном примере
· запасы поставщиков(10; 20; 30; 40; 50)
· запросы потребителей(50; 40; 30; 20; 10)
3. ФОРМЫ ВЫХОДНОЙ ИНФОРМАЦИИ
Информация выводится на экран в виде таблицы с введенными данными и допустимый начальный базис
| В150 | В240 | В330 | В420 | В510 |
А110 | 10 | - | - | - | - |
А220 | 20 | - | - | - | - |
А330 | 20 | 10 | - | - | - |
А440 | - | 30 | 10 | - | - |
А550 | - | - | 20 | 20 | 10 |
4. ИНСТРУКЦИЯ ДЛЯ ПОЛЬЗОВАТЕЛЯ
Общие сведения:
Программа производит вычисления допустимого начального базиса
Задача является сбалансированной. Поиск начального базиса происходит методом «северо-западного угла»
Управление:
Данные вводятся с клавиатуры:
Пользователь вводит запасы i-го потребителя. После нажатия клавиши «0» пользователь вводит запросы j-го поставщика. Далее на экране после нажатия клавиши «Enter» появляется таблица с вводимыми данными и начальный базис.
5. ИНСТРУКЦИЯ ДЛЯ ПРОГРАММИСТА
Данная программа реализуется с помощью процедурного языка TurboPascal 7.0, используется текстовый режим.
5.1 ТРЕБУЕМЫЕ ИНФОРМАЦИОННО–ВЫЧИСЛИТЕЛЬНЫЕ СРЕДСТВА:
1) техническое обеспечение: IBMPC\XT совместимые машины
а) оперативная память – не менее 8Мб
б) свободное место на жестком диске – не менее 60Кб
в) центральный процессор – от Intel 8088 до семейства Pentium или совместимых с ним
2) информационные средства для нормального функционирования программы достаточно иметь информационную систему MSDOS
5.2 ТИПЫ ПЕРЕМЕННЫХ, ИСПОЛЬЗОВАННЫХ В ПРОГРАММЕ:
constn=20 (строки)
m=20 (столбцы)
a:array [1..n] of integer; {массивзапасов}
b:array [1..m] of integer; {массивпотребностей}
a1:array [1..n] of integer; {вспомогательный массив запасов}
b1:array [1..m] of integer; {вспомогательный массив потребностей}
c:array [1..n,1..m] of integer; {основной массив в который производится запись базисного решения}
i,j,k,x,y,s1,s2:integer;
5.3 ПРОЦЕДУРЫ
procedurevvod_klav;(ввод данных с клавиатуры)
begin
i:=1;
k:=0;
s1:=0;
while (k=0) and (i<n) do
begin
write('введите запaсы ',i,'-того поставщика: ');