Задача побудови маршруту листоноші

Задача побудови маршруту листоноші полягає в знаходженні кільцевого маршруту мінімальної протяжності, який починається і закінчується у відділенні зв’язку і проходить вздовж усіх будинків, що обслуговує листоноша.

Побудуємо граф G (X,Y), одна з вершин якого відповідає відділенню зв’язку, кожна з решти вершин – перехрестю вулиць, кожне ребро – частині вулиці (кварталу) між двома сусідніми перехрестями вулиць, а ваги ребер – їх протяжностям.

Зазначена задача побудови маршруту листоноші зводиться до задачі пошуку найкоротшого маршруту, в який кожне ребро графа входить, як найменше, один раз.

Розв’язання задачі суттєво залежить від так званої парності вершин графа.

Вершина графа, в якій перехрещується парне число ребер, називається парною. Вершина графа, в якій перехрещується непарне число ребер, називається непарною.

Граф G (X,Y) називається парним, якщо всі його вершини парні. Граф G (X,Y) називається непарним, якщо в ньому є непарні вершини.

Відзначимо, що число непарних вершин у будь-якому графі завжди парне.

У парному графі завжди може бути забезпечене одноразове входження кожного ребра в маршрут листоноші, тому розв’язання задачі не залежить від ваг ребер графа.

У непарному графі одне або кілька ребер входять у маршрут листоноші більше одного разу, тому загальна протяжність зазначеного маршруту залежить від ваг ребер графа.

У парному графі число приходів листоноші у будь-яку вершину завжди дорівнює числу її виходів з цієї вершини, внаслідок чого розв’язання задачі полягає в побудові довільних циклів, сукупність яких містить всі ребра графа, і об’єднанні знайдених циклів в загальний цикл. Вибір початкової вершини може бути довільним.

На рис. 2.10 наведений парний граф G (X,Y), в якому n = 6, m = 8. Біля ребер графа зазначені їхні ваги. Початкова вершина 1 відповідає відділенню зв’язку.

 
 

 

 


 

Будуємо цикли:

(1,2), (2,6), (6,4), (4,1);

(1,3), (3,6), (6,5), (5,1).

Об’єднуємо знайдені цикли в будь-якій спільній вершині, скажімо 6, і будуємо загальний цикл:

(1,2), (2,6), (6,5), (5,1), (1,3), (3,6), (6,4), (4,1).

У знайденому загальному циклі ребра (1,2), (2,6) і (6,4), (4,1) належать першому циклу, а ребра (6,5), (5,1), (1,3), (3,6) – другому.

У непарному графі число ребер, по яких листоноша приходить у будь-яку непарну вершину, завжди на одиницю перевищує число ребер, по яких вона виходить з цієї вершини, внаслідок чого шлях листоноші по одному з ребер, що перехрещуються в зазначеній вершині, буде проходити двічі.

Уявимо ребро, по якому листоноша проходить двічі, у вигляді двох ребер – основного та додаткового. З урахуванням усіх додаткових ребер непарний граф перетворюється на парний, для якого задача побудови маршруту листоноші вже вирішена.

Отже, йдеться про знаходження такої сукупності додаткових ребер, яка перетворює непарний граф на парний і має мінімальну сумарну вагу.

Для знаходження зазначеної сукупності додаткових ребер побудуємо за алгоритмом знаходження найкоротших маршрутів (2.5, 2.6) найкоротші маршрути між усіма непарними вершинами графа і виберемо серед них таку сукупність маршрутів, що включає всі зазначені вершини і має мінімальну протяжність.

На рис. 2.11 наведений непарний граф G (X,Y), в якому n = 6, m = 10.

 
 

 

 


 

У наведеному графі вершини 2,5 – парні, вершини 1,3,4,6 – непарні.

Значення найкоротших шляхів між усіма непарними вершинами графа наведені у табл. 2.23.

Таблиця 2.23. Значення найкоротших шляхів між усіма непарними вершинами графа

Сполучення непарних вершин Найкоротший шлях Вага найкоротшого шляху
(1,3) 1 – 3
(1,4) 1 – 4
(1,6) 1 – 4 – 6
(3,4) 3 – 6 – 4
(3,6) 3 – 6
(4,6) 4 – 6

 

У табл. 2.24 наведені можливі варіанти сполучень чотирьох непарних вершин графа рис. 2.11 за допомогою додаткових ребер.

Таблиця 2.24. Можливі варіанти сполучень чотирьох непарних вершин графа

Варіант Сполучені вершини Сумарна вага додаткових ребер
(1,3), (4,6)
(1,4), (3,6)
(1,6), (3,4)

 

Як видно з табл. 2.24, мінімальна сумарна вага додаткових ребер графа досягається у варіанті 2.

Отже, додатковими повинні бути ребра (1,4), (3,6), сумарна вага яких мінімальна і складає 2.

На рис. 2.12 наведений парний граф G (X,Y), в якому n = 6, m = 12, отриманий з початкового непарного графа рис. 2.11 шляхом введення в нього додаткових ребер (1,4), (3,6).

 
 

 

 


 

Будуємо, як і раніше, довільні цикли. Для спрощення починаємо з циклів, створюваних подвійними ребрами:

(1,4), (4,1);

(3,6), (6,3);

(1,2), (2,6), (6,5), (5,1);

(1,3), (3,4), (4,6), (6,1).

Об’єднуємо знайдені цикли у спільних вершинах 1 і 3 та будуємо загальний цикл:

(1,4), (4,1), (1,2), (2,6), (6,5), (5,1), (1,3), (3,6), (6,3), (3,4), (4,6), (6,1).

Зазначимо, що наведене розв’язання задачі значною мірою відповідає побудові маршруту сільської листоноші. Вузькі вулиці та низька інтенсивність дорожнього руху дозволяють сільській листоноші проходити маршрут, переходячи з однієї сторони вулиці на іншу.

При розв’язанні задачі побудови маршруту міської листоноші слід враховувати ширину вулиць, високу інтенсивність дорожнього руху, можливість переходу вулиць тільки у визначених місцях. Практично це означає, що такі вулиці листоноша змушена проходити двічі – по одній і по другій стороні. На початковому графі це відбивається у вигляді додаткових (рівнобіжних) ребер, якими подаються зазначені вулиці, аналогічно додатковим ребрам, що вводились для перетворення непарного графа на парний.