Практическое применение алгоритма решения задачи коммивояжера

Практическое применение алгоритма решения задачи коммивояжера

Е.В. Володина, Е.А. Студентова Курганский государственный университет

Аннотация: Рассматривается возможность снижения логистических затрат на транспортировку посредством решения задачи коммивояжера. Предлагается алгоритм решения задачи с использованием вычислительной мощности надстройки «Решатель» ОрепОШсе Са1с. На основании предложенного алгоритма прорешивается практическая ситуация и составляется оптимальный маршрут для ООО «Молоко Зауралья». Ключевые слова: логистика, логистический подход, задача коммивояжера, задача странствующего торговца, КР-сложная задача, оптимальный маршрут, оптимизация перевозок, минимизация транспортных расходов, ОрепОГйсе Са1с, надстройка «Решатель».

Первоочередной задачей любого предприятия является поиск резервов снижения затрат на осуществляемую деятельность и как следствие повышение собственной конкурентоспособности и рентабельности. В современных условиях поиск таких резервов строится на основе логистического подхода, что связано с расширением содержания логистики, превращающейся из вспомогательного элемента, обеспечивающего реализацию хозяйственных процессов, в важный инструмент организации и ведения хозяйственной деятельности [1]. При этом одним из приоритетных направлений совершенствования с точки зрения логистического подхода является оптимизация перевозок. Это связано в первую очередь со структурой логистических затрат, значительную долю в которых (20-40% и более) составляют именно расходы на транспортную составляющую [2].

Существуют различные теоретические алгоритмы оптимизации таких затрат, но они довольно трудоемки и долговременны, а современный уровень развития техники и технологий открывает новые возможности решения различного рода задач. Поэтому мы предлагаем решить задачу странствующего торговца, или коммивояжера (ЗК) посредством использования программы ОрепОГйсе Са1с. Задача коммивояжера

заключается в нахождении оптимального маршрута, который проходит через все указанные пункты (города) хотя бы по одному разу с последующим возвращением в исходный пункт (город). В условиях задачи задаются критерий оптимальности маршрута (кратчайший, дешевый и т.п.) и соответствующие матрицы расстояний, стоимости и т.п. [3] Задачу странствующего торговца начали изучать еще в XVIII веке математик из Ирландии сэр Уильям Р. Гамильтон и британский математик Томас П. Киркман. Считается, что общая формулировка задачи коммивояжера впервые была изучена Карлом Менгером в Вене и Гарварде. Позже проблема исследовалась Хасслером, Уитни и Мерриллом в Принстоне [4]. За многие годы исследований было предложено множество вариантов решения ЗК, среди которых выделяют: алгоритм полного перебора, метод ветвей и границ, метод включения дальнего, BV-метод, генетический алгоритм, «Система муравьев» и некоторые другие [5]. Современный уровень развития технологий предлагает более широкие возможности для решения ЗК и определения наилучшего маршрута. Тем не менее, классическая задача коммивояжера относится к числу КР-сложных задач и требует для решения значительных вычислительных ресурсов [6]. Требуемое для решения задачи время пропорционально (п-1)! (где п - количество пунктов), в связи с чем можно сделать вывод о нецелесообразности попытки решения задачи странствующего торговца с числом городов более 50, т.к. для нахождения оптимального маршрута потребуется вычислительная мощность компьютеров всего мира [7]. Однако при более «скромном» количестве пунктов, в которых необходимо побывать, решение ЗК посредством компьютерных вычислительных мощностей представляется наиболее эффективным, в частности в данной статье предлагается использовать надстройку ОрепОГйсе Са1с «Решатель» для целей минимизации затрат предприятия ООО «Молоко Зауралья» на доставку продукции.

1

Практическая ситуация: ООО «Молоко Зауралья» осуществляет поставку собственной продукции, общее количество пунктов 19, необходимо решить задачу коммивояжера для ответа на вопрос является ли принятый на предприятии маршрут оптимальным.

Т.к. количество пунктов доставки не слишком велико для решения задачи воспользуемся возможностями надстройки «Решатель» программы OpenOffice Ca1c, который после задания ему условий задачи осуществит полный перебор всех возможных вариантов решения с целью планирования наилучшего маршрута. Алгоритм решения задачи коммивояжера посредством использования программного продукта OpenOffice Ca1c представлен на рис. 1 (на основании источника [8]).

Рис. 1. - Алгоритм решения задачи коммивояжера с использованием надстройки «Решатель» OpenOffice Ca1c

ООО «Молоко Зауралья» (обозначим как пункт №1) осуществляет поставку продукции для следующих учреждений: ЗАО «Одиссей» (№2), школа №7 (№3), дом ребенка (№4), продовольственный магазин «Трио» (№5), ООО «Вира» (№6), детские сады 116 (№7), 122 (№8), 124 (№9), 126 (№10), 127 (№11), 129 (№12), 130 (№13), 131 (№14), 133 (№15), 134 (№16), 135 (№17), 138 (№18), 141 (№19). На основании данных сайта 2Гис (Курган) [9] была составлена матрица расстояний Су (в км) между перечисленными выше пунктами (табл. 1 и табл. 2).

Таблица 1

Матрица расстояний, в км

Пункты №2 №3 №4 №5 №6 №7 №8 №9

№1 7,63 8 7,06 7,1 8,46 8,52 7,95 7,96

№2 0,31 1,9 1,33 1,28 1,34 0,78 0,78

№3 1,4 0,65 1,59 1,66 1,09 1,09

№4 1,43 1,86 1,42 0,51 0,31

№5 2,33 2,4 1,83 1,18

№6 0,15 1,04 1,04

№7 1,1 1,1

№8 0,2

№9

Таблица 2

Матрица расстояний, в км

Пункты №10 №11 №12 №13 №14 №15 №16 №17 №18 №19

№1 8,28 6,02 9,03 7,45 5,91 7,18 7,3 7,49 5,92 7,15

№2 1,1 2,53 1,85 0,38 3,12 0,78 0,87 1,73 2,42 1,83

№3 1,42 3,07 2,17 0,89 3,63 1,29 0,78 0,77 2,94 2,34

№4 0,19 2,13 1,93 1,35 2,73 0,57 1,67 1,33 2,03 1,98

№5 2,16 2,17 2,91 1,12 2,76 0,44 1,11 0,39 2,07 0,72

№6 1,37 3,53 1,07 1,54 4,12 1,96 1,36 2,73 3,43 3,37

№7 1,43 3,59 0,5 1,44 4,19 1,85 1,93 2,8 3,5 2,9

№8 0,52 3,02 1,61 0,88 3,62 1,28 1,36 2,23 2,93 2,33

№9 0,33 3,02 1,62 0,88 3,62 1,28 1,36 2,23 2,93 2,33

№10 3,35 1,94 1,21 3,95 1,61 1,69 2,56 3,26 2,66

№11 4,1 2,52 0,41 2,25 3,34 2,56 0,26 2,22

№12 2,12 4,7 2,54 2,44 3,3 7 3,95

|№13 2,91 0,96 1,35 1,72 2,21 2,37

№14 2,63 3,93 3,12 0,15 2,26

№15 1,78 0,84 1,94 1,34

№16 0,6 3,24 3,18

№17 2,43 1,13

№18 1,56

На предприятии принят следующий маршрут движения между пунктами: 1) ООО «Молоко Зауралья»; 2) детский сад 127; 3) детский сад 131; 4) детский сад 138; 5) детский сад 141; 6) детский сад 133; 7) продовольственный магазин «Трио»; 8) детский сад 135; 9) детский сад 134; 10) ООО «Вира»; 11) детский сад 130; 12) ЗАО «Одиссей»; 13) детский сад 116; 14) детский сад 129; 15) детский сад 126; 16) дом ребенка; 17) детский сад 124; 18) детский сад 122; 19) школа №7; 20) ООО «Молоко Зауралья». Протяженность принятого маршрута составляет 28,28 км.

Для решения задачи странствующего торговца сформируем все необходимые данные на листе OpenOffice Ca1c. На основании табл. 1 и 2 составим матрицу расстояний Cij (В3:Т21, рис. 2), которая является симметричной. При этом расстояния между конкретным пунктом и им самим (например между ООО «Молоко Зауралья» и ООО «Молоко Зауралья») равняется 0. Но, в случае, если в матрицу будут добавлены нулевые значения программа сочтет их наиболее рациональными маршрутами и решение окажется неверным. Чтобы предотвратить такой расклад необходимо задать программе ограничение, при котором такие расстояния не будут учитываться. Для этого проставим вместо нулевых значений числовые значения значительно превышающие самое большое из расстояний задачи. В нашей практической ситуации самое большое числовое значение, характеризующее расстояние между пунктами, не превышает 10 км. Поэтому в качестве ограничительного числа предлагается взять 999 км. Под матрицей оставим место для дополнительных переменных и ^22:Т22, рис. 2),

количество которых на 1 меньше общего числа пунктов, т.е. применительно к данной задаче - 18. Дополнительные переменные нужны для определения порядка, в котором будет осуществляться маршрут, а значение на единицу меньше общего количества пунктов связано с тем, что предприятие заранее знает откуда будет начинаться маршрут (ООО «Молоко Зауралья») и

соответственно, где он будет заканчиваться.

Матрица расстояний Сц

2 Пункты N1 N2 N3 N4 N5 ... N14 N15 N16 N17 N18 N19

3 N1 999 7,63 8 7,06 7,1 5,91 7,18 7,3 7,49 5,92 7,15

4 N2 7,53 999 0,31 1,9 1,33 3,12 0,78 0,87 1,73 2,42 1,83

5 N3 8 0,31 999 1,4 0,65 3,63 1,29 0,78 0,77 2,94 2,34

6 N4 7,06 1,9 1,4 999 1,43 2,73 0,57 1,67 1,33 2,03 1,98

7 N5 7Д 1,33 0,65 1,43 999 2,76 0,44 1,11 0,39 2,07 0,72

г N6 8,46 1,28 1,59 1,86 2,33 4,12 1,96 1,36 2,73 3,43 3,37

9 N7 8,52 1,34 1,66 1,42 г,4 4,19 1,85 1,93 2,8 3,5 2,9

10 N3 7,95 0,78 1,09 0,51 1,83 3,62 1,28 1,36 2,23 2,93 2,33

11 N9 7,96 0,78 1,09 0,31 1,18 3,62 1,28 1,36 2,23 2,93 2,33

12 N10 8,28 1,1 1,42 0,19 2,16 3,95 1,61 1,69 2,56 3,26 2,66

13 N11 6,02 2,53 3,07 2,13 2,17 0,41 2,25 3,34 2,56 0,26 2,22

14 N12 9,03 1,85 2,17 1,93 2,91 4,7 2,54 2,44 3,3 7 3,95

15 N13 7,45 0,38 0,89 1,35 1,12 2,91 0,96 1,35 1,72 2,21 2,37

16 N14 5,91 3,12 3,63 2,73 2,76 999 2,63 3,93 3,12 0,15 2,26

17 N15 7,18 0,78 1,29 0,57 0,44 2,63 999 1,78 0,84 1,94 1,34

18 N16 7,3 0,87 0,78 1,67 1Д1 3,93 1,78 999 0,6 3,24 3,18

19 N17 7,49 1,73 0,77 1,33 0,39 3,12 0,84 0,6 999 2,43 1,13

20 N13 5,92 2,42 2,94 2,03 2,07 0,15 1,94 3,24 2,43 999 1,56

21 N19 7,15 1,83 2,34 1,98 0,72 2,26 1,34 3,18 1,13 1,56 999

22 и ...

34

Рис. 2. - Матрица расстояний и дополнительные переменные Добавим на лист матрицу переменных, размер которых повторит матрицу расстояний - 19 на 19 пунктов (В26:Т44, рис. 3). Под матрицей добавим строку «Входят» (В45:Т45, рис. 3) и справа дополнительный столбец «Выходят» (и26:Ц44, рис. 3), с использованием которых будет прописано ограничение того, что коммивояжер въезжает и выезжает из каждого пункта только 1 раз. Для соблюдения подобного ограничения пропишем формулу, которая будет суммировать значения по строкам (для столбца «Выходят») и по столбцам (для строки «Входят»), сумма должна

будет равняться единице для соблюдения ограничения 4.1 алгоритма. Скопируем данные формулы для всех 19 пунктов.

После построения матриц расстояний и переменных пропишем целевую функцию (ячейка Б47, рис. 3). Цель задачи сводится к минимизации расстояний, для нахождения протяженности маршрута необходимо перемножить представленные выше матрицы, для этих целей в OpenOffice

Ca1c предусмотрена функция SИMPRODИCT.

А В С Е 5 Т и

24 Матрица переменных)^

25 Пункты N1 N2 N4 N18 N19 Выходят

26 N1 =5иМ

27 N2 =511М

20 N3 0

29 N4 0

30 N5 Г 0

31 N6 0

32 N7 0

33 ЕЮ 0

34 № 0

35 N10 0

36 N11 0

37 N12 0

за N13 0

39 N14 0

40 N15 0

41 N16 0

42 N17 0

43 N18 0

44 N19 =Б11М

45 Входят =5иМ

46

Целевэя функция | | =^11М Р [10011 СТ( ВЗ:Т21; В26:Т44) ^

Рис. 3. - Матрица переменных и целевая функция

Для соблюдения ограничения пункта 4.2.2 алгоритма необходимо составить дополнительную матрицу, в которую прописываются ограничения замкнутости маршрута. Т.к. количество переменных И = 18, то размер матрицы также будет 18 на 18 ^51:Т68, рис. 4). Формула из пункта 4.2.2 также представлена на рис. 4.

1

С 0 Е 5 т

ш Замкнутость маршрута

50 Пункты N2 N3 N4 N5 N18 N19

51 N2 =$С$22-С22+19 * С27 =$С$22-022+19*027 0 0 =$С$22-Т2 2+19*Т27

52 N5 = $0$22-С22+19*С28 = 50522-022+19*0 28 Цо 0 =$0$2 2 -Т22+19 *Т28

53 N4 = $Е$22-С22+19*С29 =$Е $22-022+19*029 "Го 0 = $Е $ 22-Т2 2+19*Т29

54 N5 = $Р$22-С22+19*СЗО =$Р$22-0 22+19*0 3 0 0 0 = $Р$22 -Т22 +19 *ТЗ 0

55 N6 =$6 $22-С22+19 * СЗ1 =$6 $22-022+19*031 0 =$6 $22-Т2 2+19 *ТЗ 1

56 N7 =$Н $22-С22+19 * СЗ 2 =$Н $22-022+19*032 0 =$Н $22-Т2 2+19 *ТЗ 2

57 N8 =$!$22-С22+19*СЗЗ =$ 1$22-022+19*033 0 =$1$22-Т22+19*ТЗЗ

58 N9 =$] $22-С22+19 * С34 =$J$22-D22+19*D34 "То 0 =$] $22 -Т2 2+19*Т34

59 N10 = $К$ 22-С22+19 * СЗ 5 =$К$22-022+19*035 "Го 0 = $К$ 22-Т2 2+19*Т35

60 N11 = $[_$22-С22+19*С36 =$1$22-022+19*036 0 0 = $1.$ 22 -Т22+19 *ТЗ 6

61 N12 =$М$22-С22+19*С37 =$М$22-022+19*037 0 = $ М $22-Т22+19 *ТЗ 7

62 N15 =$ N $ 22-С22+19 * С38 =$N$22-022+19*038 * 0 0 =$N$22-122+19*138

63 N14 =$0$22-С22+19 * С39 =$0$22-022+19*039 0 =$0$22-Т22+19*Т39

64 N15 = $ Р$ 22-С22+19 * С40 =$Р$22 -022+19 * 040 ь 0 0 = $Р$22-Т22+19*Т40

65 N16 = $Ц$22-С2 2+19 * С41 =$0$22-022+19*041 0 =$0$22-Т22+19*Т41

66 N17 = $И$22-С22+19*С42 = $Н $22-02 2+19* 042 »0 0 =$Р$22-Т22+19*Т42

67 N18 =$5$22-С22+19*С43 =$Б$22-0 22+19* 043 0 =$5$22 -Т22 +19 *Т43

68 .С Л N19 =$Т$22-С22+19*С44 =$Т$22-022+19*044 * 0 0 =$Т$ 2 2-Т2 2+19 *Т44

Рис. 4. - Замкнутость маршрута После того как данные задачи сформированы на листе OpenOffice Ca1c воспользуемся надстройкой «Решатель». Для этого в меню выберем Сервис -Решатель. Заполненное окно «Решателя» представлено на рис. 5.

Рис. 5. - Надстройка «Решатель», заполненная данными

В целевую ячейку подставляется адрес ячейки, в которой прописана целевая функция БИМРКОВИСТ (Б47). Результат стремится к минимуму, т.к. нашей целью является наиболее короткий маршрут. В строке «Изменяя ячейки» указываются два набора данных - матрица переменных Ху (ячейки В26:Т44) и дополнительные переменные и (ячейки С22:Т22). В задаче 4 ограничительных условия: 1) суммы, рассчитываемые по строке «Входит» должны быть равны единице (первое ограничение в «Решателе»); 2) суммы, рассчитываемые по столбцу «выходит» должны равняться единице (второе ограничение); 3) матрица переменных Ху представляет собой булевы числа (третье ограничение); 4) полученные по формуле, прописанной в матрице «Замкнутость маршрута», значения не должны превышать общее количество пунктов задачи, уменьшенное на единицу, т. е. 18 (четвертое ограничение). Существует еще одно дополнительное ограничение, проставить которое возможно, выбрав Параметры «Решателя». Нужно поставить галочку у пункта «Принять переменные как неотрицательные» для того, чтобы дополнительные переменные и могли принимать значения большие или равные нулю. По нажатию на кнопку «решить» программа начнет подсчет всех возможных вариантов решения задачи и выведет для пользователя оптимальный (рис. 6).

А В С кЧ N3 Е F G Н I J К L М N О Р Q R S т и

2 Пункты N1 N2 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17 N13 N19

22 и 3 7 16 4 10 11 13 14 15 1 12 9 0 17 6 5 2 3

Л

24 Матрица переменныхХц.

25 Пункты N1 N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17 N18 N19 Выходят

26 N1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 О О О 0 0 1

27 N2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 О О 0 0 1

28 N3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 О О 0 0 1

29 N4 0 0 0 0 0 0 0 0 0 0 0 0 0 О 1 О О 0 0 1

30 N5 0 0 0 0 0 0 0 0 0 0 0 0 0 О О О 1 0 0 1

31 N6 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 О О 0 0 1

32 N7 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 О О 0 0 1

33 N8 0 0 0 0 0 0 0 0 1 0 0 0 0 О О О 0 0 0 1

34 N9 0 0 0 0 0 0 0 0 0 1 0 0 0 О О О 0 0 0 1

35 N10 0 0 0 1 0 0 0 0 0 0 0 0 0 О О О 0 0 0 1

36 N11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 О 0 1 0 1

31 N12 0 0 0 0 0 0 0 1 0 0 0 0 0 О О О 0 0 0 1

за N13 0 0 0 0 0 1 0 0 0 0 0 0 0 О О О 0 0 0 1

39 N14 0 0 0 0 0 0 0 0 0 0 1 0 0 О О О 0 0 0 1

40 N15 1 0 0 0 0 0 0 0 0 0 0 0 0 0 О О 0 0 0 1

41 N16 0 0 1 0 0 0 0 0 0 0 0 0 0 О О О 0 0 0 1

42 N17 0 0 0 0 0 0 0 0 0 0 0 0 0 О О 1 0 0 0 1

43 N18 0 0 0 0 0 0 0 0 0 0 0 0 0 О О О 0 0 1 1

44 N19 0 0 0 0 1 0 0 0 0 0 0 0 0 0 О О 0 0 0 1

45 Входят 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Ф

Целевая функция 23,59 1

49 Замкнутость марш >ута

50 Пункты N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 N15 N16 N17 N18 N19

51 N2 0 1 -3 4 -2 -3 -5 -6 -7 7 А 13 S -9 2 3 6 5

52 N3 13 0 -9 3 -3 -А -6 -7 -3 6 -5 -2 7 -10 1 2 5 4

53 N4 S 9 0 12 6 5 3 2 1 15 4 7 16 18 10 11 14 13

54 N5 -А -3 -12 0 -6 -7 -9 -10 -11 3 -8 -5 А -13 -2 18 2 1

55 N6 2 3 -6 6 0 13 -3 А -5 9 -2 1 10 -7 4 5 S 7

56 N7 3 4 -5 7 1 0 -2 -3 А 10 13 2 11 -6 5 6 9 S

57 N8 5 6 -3 9 3 2 0 13 -2 12 1 4 13 А 7 а 11 10

58 N9 6 7 -2 10 4 3 1 0 13 13 2 5 14 -3 а 9 12 11

59 N10 7 3 13 11 5 4 2 1 0 14 3 6 15 -2 9 10 13 12

60 N11 -7 -6 -15 -3 -9 -10 -12 -13 -14 0 -11 -3 1 -16 -5 -А 13 -2

61 N12 4 5 -А 3 2 1 13 -2 -3 11 0 3 12 -5 6 7 10 9

62 N13 1 2 -7 5 13 -2 А -5 -6 3 -3 0 9 -а 3 А 7 6

63 N14 -3 -7 -16 -4 -10 11 -13 -14 -15 13 -12 -9 О -17 -6 -5 -2 -3

64 N15 9 10 1 13 7 6 4 3 2 16 5 в 17 О 11 12 15 14

65 N16 -2 13 -10 2 -А -5 -7 -3 -9 5 -6 -3 6 -11 О 1 4 3

66 N17 -3 -2 -11 1 -5 -6 -3 -9 -10 4 -7 А 5 -12 18 0 3 2

67 N18 -6 -5 -14 -2 -3 -9 -11 -12 -13 1 -10 -7 2 -15 А -3 0 18

68 N19 -5 Л -13 13 -7 -3 -10 -11 -12 2 -9 -6 3 -14 -3 -2 1 0

Рис. 6. - Результаты решения задачи коммивояжера для ООО «Молоко

Зауралья»

Согласно полученному решению оптимальный, т.е. наиболее короткий маршрут составит всего 23,59 км. В сравнении с принятым на сегодняшний день маршрутом, на предприятии при вводе нового экономия времени составит 16,6%, что доказывает целесообразность использования надстройки «Решатель» для целей формирования наилучшего пути движения транспортных средств. Для того, чтобы определить порядок посещения

пунктов доставки необходимо посмотреть на переменные U, их значения (ячейки С22:Т22, рис. 6) приняли значения от 0 до 17, тем самым показывая конкретный маршрут движения, который представит собой: 1) ООО «Молоко Зауралья»; 2) детский сад 131; 3) детский сад 127; 4) детский сад 138; 5) детский сад 141; 6) продовольственный магазин «Трио»; 7) детский сад 135; 8) детский сад 134; 9) школа №7; 10) ЗАО «Одиссей»; 11) детский сад 130; 12) ООО «Вира»; 13) детский сад 116; 14) детский сад 129; 15) детский сад 122; 16) детский сад 124; 17) детский сад 126; 18) дом ребенка; 19) детский сад 133; 20) исходный пункт, с которого начиналось движение ООО «Молоко Зауралья».

В процессе решения стоял выбор между программными продуктами Microsoft Excel и OpenOffice Calc. Программы обладают сходными функциями и возможностями и довольно распространены. Однако в процессе решения было выяснено, что надстройка «Поиск решения» (Excel) устанавливает жесткие рамки на количество ограничений решаемой задачи. В частности в MS Excel удобно решать задачи с небольшим количеством пунктов (до 10), общее количество формульных ограничений в которых не превысит 100. В «Решателе» подобных ограничений нет, но с добавлением каждого дополнительного пункта в задачу программе требуется все большее количество времени на нахождение оптимального маршрута [8]. Кроме того, OpenOffice является бесплатным программным продуктом, что обеспечивает дополнительную экономию средств при его использовании.

Важность решения поставленной задачи определяется тем, что согласно статистическим данным, около 98% от общего времени движения грузов занимает именно их прохождение по логистическим каналам, включая транспортировку [10]. Этим и обусловлена необходимость поиска резервов снижения затрат на перевозки, т.е. определения наилучшего маршрута, что приведет к экономии времени на перевозки, горючего, износа транспортных

средств и будет особенно ценно для предприятий, работающих по системе JIT (точно-в-срок).

Литература

1. Афанасьева И.И. Организационно-экономические проблемы и перспективы формирования логистической системы распределения зерна в России // Инженерный вестник Дона, 2014, №2 URL: ivdon.ru/ru/magazine/archive/n2y2014/2325

2. Дыбская В.В., Зайцев Е.И., Сергеев В..И. и др. Логистика - М.: Эксмо, 2013. - 944 с. - (Полный курс МВА).

3. Кочегурова Е.А., Мартынова Ю.А. Оптимизация составления маршрутов общественного транспорта при создании автоматизированной системы поддержки принятия решений // Известия ТПУ. 2013. №5. С. 79-84.

4. Matai R., Singh S.P., Mittal M.L. Traveling Salesman Problem: An Overview of Applications, Formulations, and Solution Approaches // URL: cdn.intechopen.com/pdfs-wm/12736.pdf

5. Борознов В.О. Исследование решения задачи коммивояжера // Вестник АГТУ. Серия: Управление, вычислительная техника и информатика. 2009. №2. С. 147-151.

6. Ишков С.А., Ишкова Е.С. Матричный подход в решении задачи маршрутизации с несколькими транспортными средствами // Известия Самарского научного центра РАН. 2011. №4-1. С. 189-194.

7. Applegate D.L., Bixby R.E., Chvatal V. & Cook W.J. The Traveling Salesman Problem // URL: press.princeton.edu/chapters/s8451.pdf

8. Студентова Е.А. Алгоритм решения задачи коммивояжера с использованием Microsoft Excel и Open Office Calc // Современные проблемы науки и образования. 2014. №6. (приложение "Технические науки"). - C. 40.

9. Карта Кургана: улицы, дома и организации города - 2ГИС // URL: 2gis.ru/kurgan/zoom/11

10. Макаров Е.И., Ярославцева Ю.И. Социально-экономическая эффективность формирования Воронежской региональной транспортно-логистической системы // Инженерный вестник Дона, 2011, №4 URL: ivdon.ru/ru/magazine/archive/n4y2011/557

References

1. Afanas'eva I.I. Inzenernyj vestnik Dona (Rus), 2014, №2 URL: ivdon.ru/ru/magazine/archive/n2y2014/2325

2. Dybskaya V.V., Zaytsev E.I., Sergeev V..I. i dr. Logistika [Logistics] M.: Eksmo, 2013. 944 p. (Polnyy kurs MVA).

3. Kochegurova E.A., Martynova Yu.A. Izvestiya TPU. 2013. №5. P. 79-84.

4. Matai R., Singh S.P., Mittal M.L. Traveling Salesman Problem: An Overview of Applications, Formulations, and Solution Approaches URL: cdn.intechopen.com/pdfs-wm/12736.pdf

5. Boroznov V.O. Vestnik AGTU. Seriya: Upravlenie, vychislitel'naya tekhnika i informatika. 2009. №2. P. 147-151.

6. Ishkov S.A., Ishkova E.S. Izvestiya Samarskogo nauchnogo tsentra RAN. 2011. №4-1. P. 189-194.

7. Applegate D.L., Bixby R.E., Chvatal V. & Cook W.J. The Traveling Salesman Problem URL: press.princeton.edu/chapters/s8451.pdf

8. Studentova E.A. Sovremennye problemy nauki i obrazovaniya. 2014. №6. (prilozhenie "Tekhnicheskie nauki"). p. 40.

9. Karta Kurgana: ulitsy, doma i organizatsii goroda - 2GIS [Kurgan map: streets, houses and town organisations - 2GIS] URL: 2gis.ru/kurgan/zoom/11

10. Makarov E.I., Yaroslavtseva Y.I. Inzenernyj vestnik Dona (Rus), 2011, №4 URL: ivdon.ru/ru/magazine/archive/n4y2011/557