Материал: Оптимизация транспортных потоков при перевозке грузов с использованием автомобильного транспорта

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

То же проделаем и со столбцами, не содержащими нуля. Получим матрицу, содержащую нули в каждой строке и каждом столбце.

1235





1

0

3500

3500

2

0

0

0

4

8200

4700

0

7

3500

0

3500


Для каждого нулевого элемента рассчитаем значение Гij, равное сумме наименьшего элемента i строки (исключая элемент Сij=0) и наименьшего элемента j столбца.

Г1,2=3500, Г2,1=3500, Г2,3=3500, Г2,5=0, Г4,5=4700, Г7,2=3500,

Максимальное значение имеет Г4,5=4700

Удалим из матрицы стоимости строку 4 и столбец 5. Внесем в текущий ориентированный граф дугу (4,5)


1

2

3

1

0

3500

2

0

0

7

3500

0

3500


В строке 7 и столбце 3 отсутствует элемент равный ∞. Присвоим элементу (7,3) значение бесконечности, чтобы избежать преждевременного замыкания контура.

Текущая Нижняя граница=34600

Найдем минимальные элементы в каждой строке и затем вычтем его из остальных элементов строки (минимальные элементы записаны напротив соответствующих строк). Получим матрицу представленную ниже.

123




1

0

3500

2

0

0

7

3500

0


То же проделаем и со столбцами, не содержащими нуля. Получим матрицу, содержащую нули в каждой строке и каждом столбце.

123




1

0

3500

2

0

0

7

3500

0


Для каждого нулевого элемента рассчитаем значение Гij, равное сумме наименьшего элемента i строки (исключая элемент Сij=0) и наименьшего элемента j столбца.

Г1,2=3500, Г2,1=3500, Г2,3=3500, Г7,2=3500,

В результате сравнения мы получили 4 одинаковых максимальных Г=3500. Это означает, что алгоритм разветвляется и мы должны рассмотреть все получившиеся варианты поочередно. Рассмотрим вариант Г1,2=3500

Удалим из матрицы стоимости строку 1 и столбец 2, и присвоим элементу (2,1) значение бесконечности. Внесем в текущий ориентированный граф дугу (1,2)


1

3

2

0

0

7

3500


В строке 2 и столбце 1 отсутствует элемент равный ∞. Присвоим элементу (2,1) значение бесконечности, чтобы избежать преждевременного замыкания контура.

Текущая Нижняя граница=34600

После того, как ранг матрицы становится равным двум мы получаем нули в каждой ее строке и столбце (добавив как и ранее вычтенные элементы матрицы к нижней границе), и добавляем к маршруту коммивояжёра дуги которым соответствуют нулевые элементы.

НГр=38100

Маршрут коммивояжера включает в себя дуги:, (6, 7), (5, 6), (3, 4), (4, 5), (1, 2), (2, 3), (7, 1)

------------------------------------------------------------------------

Вернемся к возникшему у нас ветвлению и рассмотрим случай при котором максимальное значение имеет Г7,2. Удалим из матрицы стоимости строку 2 и столбец 7. Внесем в текущий ориентированный граф дугу (7,2)


1

3

1

3500

2

0

0


В строке 2 и столбце 3 отсутствует элемент равный ∞. Присвоим элементу (2,3) значение бесконечности, чтобы избежать преждевременного замыкания контура.

После того, как ранг матрицы становится равным двум мы получаем нули в каждой ее строке и столбце (добавив как и ранее вычтенные элементы матрицы к нижней границе), и добавляем к маршруту коммивояжера дуги которым соответствуют нулевые элементы.

НГр=38100

Маршрут коммивояжера включает в себя дуги:, (6, 7), (5, 6), (3, 4), (4, 5), (7, 2), (1, 3), (2, 1)

------------------------------------------------------------------------

Вернемся к возникшему у нас ветвлению и рассмотрим случай при котором максимальное значение имеет Г2,3. Удалим из матрицы стоимости строку 3 и столбец 2. Внесем в текущий ориентированный граф дугу (2,3)


1

2

1

0

7

3500

0


В строке 7 и столбце 2 отсутствует элемент равный ∞. Присвоим элементу (7,2) значение бесконечности, чтобы избежать преждевременного замыкания контура.

После того, как ранг матрицы становится равным двум мы получаем нули в каждой ее строке и столбце (добавив как и ранее вычтенные элементы матрицы к нижней границе), и добавляем к маршруту коммивояжера дуги которым соответствуют нулевые элементы.

НГр=38100

Маршрут коммивояжера включает в себя дуги:, (6, 7), (5, 6), (3, 4), (4, 5), (2, 3), (1, 2), (7, 1)

------------------------------------------------------------------------

Вернемся к возникшему у нас ветвлению и рассмотрим случай при котором максимальное значение имеет Г2,1. Удалим из матрицы стоимости строку 1 и столбец 2. Внесем в текущий ориентированный граф дугу (2,1)


2

3

1

0

3500

7

0


В строке 1 и столбце 2 отсутствует элемент равный ∞. Присвоим элементу (1,2) значение бесконечности, чтобы избежать преждевременного замыкания контура.

После того, как ранг матрицы становится равным двум мы получаем нули в каждой ее строке и столбце (добавив как и ранее вычтенные элементы матрицы к нижней границе), и добавляем к маршруту коммивояжера дуги которым соответствуют нулевые элементы.

НГр=38100

Маршрут коммивояжера включает в себя дуги:, (6, 7), (5, 6), (3, 4), (4, 5), (2, 1), (1, 3), (7, 2)

------------------------------------------------------------------------

Вернемся к возникшему у нас ветвлению и рассмотрим случай при котором максимальное значение имеет Г7,6. Удалим из матрицы стоимости строку 6 и столбец 7. Внесем в текущий ориентированный граф дугу (7,6)


1

2

3

4

5

7

1

0

5000

8900

3500

6800

2

0

1500

5400

0

3300

3

4600

1100

0

4100

7900

4

8500

5000

0

300

11000

5

3500

0

4500

700

5600

6

10300

6800

11400

7600

1800

0


В строке 6 и столбце 7 отсутствует элемент равный ∞. Присвоим элементу (6,7) значение бесконечности, чтобы избежать преждевременного замыкания контура.

Найдем минимальные элементы в каждой строке и затем вычтем его из остальных элементов строки (минимальные элементы записаны напротив соответствующих строк). Получим матрицу представленную ниже.


1

2

3

4

5

7

1

0

5000

8900

3500

6800

2

0

1500

5400

0

3300

3

4600

1100

0

4100

7900

4

8500

5000

0

300

11000

5

3500

0

4500

700

5600

6

8500

5000

9600

5800

0


То же проделаем и со столбцами, не содержащими нуля. Получим матрицу, содержащую нули в каждой строке и каждом столбце.


1

2

3

4

5

7

1

0

5000

8900

3500

3500

2

0

1500

5400

0

0

3

4600

1100

0

4100

4600

4

8500

5000

0

300

7700

5

3500

0

4500

700

2300

6

8500

5000

9600

5800

0


Для каждого нулевого элемента рассчитаем значение Гij, равное сумме наименьшего элемента i строки (исключая элемент Сij=0) и наименьшего элемента j столбца.

Г1,2=3500, Г2,1=3500, Г2,5=0, Г2,7=2300, Г3,4=1800, Г4,3=1800, Г5,2=700, Г6,5=5000,

Максимальное значение имеет Г6,5=5000

Удалим из матрицы стоимости строку 6 и столбец 5. Внесем в текущий ориентированный граф дугу (6,5)


1

2

3

4

7

1

0

5000

8900

3500

2

0

1500

5400

0

3

4600

1100

0

4600

4

8500

5000

0

7700

5

3500

0

4500

700

2300


В строке 5 и столбце 7 отсутствует элемент равный ∞. Присвоим элементу (5,7) значение бесконечности, чтобы избежать преждевременного замыкания контура.

Текущая Нижняя граница=32800

Найдем минимальные элементы в каждой строке и затем вычтем его из остальных элементов строки (минимальные элементы записаны напротив соответствующих строк). Получим матрицу представленную ниже.

12347






1

0

5000

8900

3500

2

0

1500

5400

0

3

4600

1100

0

4600

4

8500

5000

0

7700

5

3500

0

4500

700


То же проделаем и со столбцами, не содержащими нуля. Получим матрицу, содержащую нули в каждой строке и каждом столбце.

12347






1

0

5000

8900

3500

2

0

1500

5400

0

3

4600

1100

0

4600

4

8500

5000

0

7700

5

3500

0

4500

700


Для каждого нулевого элемента рассчитаем значение Гij, равное сумме наименьшего элемента i строки (исключая элемент Сij=0) и наименьшего элемента j столбца.

Г1,2=3500, Г2,1=3500, Г2,7=3500, Г3,4=1800, Г4,3=6500, Г5,2=700,

Максимальное значение имеет Г4,3=6500

Удалим из матрицы стоимости строку 4 и столбец 3. Внесем в текущий ориентированный граф дугу (4,3)


1

2

4

7

1

0

8900

3500

2

0

5400

0

3

4600

1100

0

4600

5

3500

0

700


В строке 3 и столбце 4 отсутствует элемент равный ∞. Присвоим элементу (3,4) значение бесконечности чтобы избежать преждевременного замыкания контура.