Научная статья на тему 'Решение задачи коммивояжера методом расширения цикла и оценка его эффективности'

Решение задачи коммивояжера методом расширения цикла и оценка его эффективности Текст научной статьи по специальности «Математика»

CC BY
169
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Решение задачи коммивояжера методом расширения цикла и оценка его эффективности»

числения сил и моментов. Уравнения записаны в рекуррентной форме. Вычисление кинематических параметров механизма выполняется в два прохода. Первый проход обеспечивает вычисление линейных и угловых скоростей и ускорений, второй служит для вычисления сил и моментов [4,5]. Использование уравнений в рекуррентной форме позволяет провести кинематические расчеты без составления матричной системы уравнений и последующего ее решения.

6. Блок динамических расчетов модели компонента включает в себя уравнения, обеспечивающие расчет функционирования исследуемого устройства с учетом упруго-инерционных сил, возникающих в процессе функционирования исследуемого механизма. Как и в блоке кинематических расчетов, уравнения представлены в рекуррентной форме. Решение дифференциальных уравнений осуществляется на основе явных формул численного интегрирования, что позволяет сохранить рекуррентную форму уравнений, по которым выполняются динамические расчеты.

7. Блок планирования траектории. Данный режим используется моделями компонентов, участвующих в работе алгоритмов построения плана траектории перемещения схвата манипулятора.

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

с известным расположением препятствий и в среде с неизвестным расположением препятствий.

Подытоживая, отметим, что мы рассмотрели основные принципы построения БМК, способов ее развития и единой программной организации модели компонента. Каждый компонент работает в тесном взаимодействии с управляющим модулем системы моделирования РТК. Совокупность компонентов является важнейшей составной частью системы автоматизированного моделирования РТК, так как обеспечивает описание геометрии исследуемого механизма, различного типа кинематических звеньев, внешних силовых воздействий, упруго-демпфирующих свойств исследуемых РТК и тому подобное.

Список литературы

1. Горитов А.Н., Дмитриев В.М. Анализ управляемых механических систем с геометрической интерпретацией рабочего пространства. Геометрический и кинематический анализ. -Томск: Изд-во ТУСУР, 1998. - 120 с.

2. Горитов А.Н. Имитационное моделирование управляемой механической системы и ее рабочего пространства. // Приборы и системы. Управление, контроль, диагностика. -2000.- № 5. - С. 11-13.

3. Горитов А.Н. Геометрический анализ механизмов и управляемых механических систем. // Приборы и системы. Управление, контроль, диагностика. - 2000. - № 10. - С. 19-22.

4. Филонов И.П., Анципорович П.П., Акулич В.К. Теория механизмов, машин и манипуляторов. - Мн.: Дизайн ПРО, 1998. - 656 с.

5. Фу К., Гонсалес Р., Ли К. Робототехника. / Пер. с англ. -М.: Мир, 1990.

РЕШЕНИЕ ЗАДАЧИ КОММИВОЯЖЕРА МЕТОДОМ РАСШИРЕНИЯ ЦИКЛА И ОЦЕНКА ЕГО ЭФФЕКТИВНОСТИ

Е.А. Берзин, Д.В. Смирнов

Особенностью многих комбинаторных задач является проста и наглядность их содержательной постановки и в то же время сложность формализации и решения. Классическим примером подобной задачи является задача коммивояжера, которая состоит в определении такой последовательности однократного посещения всех п-1 пунктов с возвращением в исходный пункт Ак, при которой суммарная длина пройденного пути минимальна. Расстояния Сщ между каждой парой пунктов Аi Аj

известны и заданы матрицей с=||с| j || •

В комбинаторной постановке задача состоит в поиске кратчайшего маршрута, проходящего через все вершины графа, с возвращением в исходную вершину

Ак (вместо ЦВк)=Ц<к,..., У,...,к>) для краткости пишется

Ь<к,...,,у,...,к>):

Ь(Бк) = Ь(кг..,и...,к) =

2 ещ

№Бк

> ш1п,Бк е {БкЬ

Бк

где Вк=(к,...,1,Щ,...,к) - упорядоченная последовательность номеров пунктов (кортеж), посещаемых коммивояжером при их последовательном обходе; Ь(Бк) -длина проходимого при этом пути (при постановке в фор-

ме задачи математического программирования громоздкость записей значительно возрастет).

Поскольку между начальным и конечным пунктами находятся п-1 остальных, то общее число возможных замкнутых маршрутов (циклов) равно (п-1)!, что практически исключает возможность перебора всех возможных вариантов при значениях п, представляющих практический интерес.

К настоящему времени существует достаточно большое число точных и приближенных методов решения задачи коммивояжера. Точные методы [1] требуют больших объемов вычислений, а известные приближенные не гарантируют точность решения, и объем счета остается весьма значительным. Наиболее успешные реализации приближенных алгоритмов, полностью автоматизированные на ЭВМ, связаны с двумя схемами решения: схемой улучшения исходного цикла (схема А) и схемой последовательного построения цикла (схема В).

Предлагаемый метод расширения цикла (МРЦ) ближе примыкает к схеме В, однако отличается от нее тем, что в качестве исходного берется уже готовый цикл с одной промежуточной вершиной: Бк = (к; щ; к). На

22

каждом шаге в один из промежутков цикла вставляется номер ^ еще незадействованной вершины, при которой обеспечивается минимальное приращение

и вставляется он в тот про-

длины цикла ^ min межуток с номером rt , при котором это приращение так же минимально ^min

Предлагаемую схему решения проиллюстрируем на модельном примере (табл. 1).

t=3: G 3 ={4;5}, t=4: G4 = G3 \{5}= {4}

L3(1,6,2, 3,1 = 183, L4(1,6,2,3, 5,1 = 175,

(1A6) 67 (1,5,6) 46 (1,4,6> 67 (3,4,5) 81

(6,4,2> 57 (6,5,2) 141 (6,4,2> 57 (ЗД) 151 (3)

(2,4,3) 32 (2,5,3) 84 (2,4,3) 32 64

(3,4,1) 34 (3, 5,1) -8 64

64 65

Таблица 1

Y 1 2 3 4 5 6

1 97 60 73 17 52

2 97 41 52 90 30

3 60 41 21 35 41

4 73 52 21 95 46

5 17 90 35 95 81

6 52 30 41 46 81

Для построения начального минимального цикла может быть выбрана любая пара вершин. Пусть (к; Ц; к) = (1,2,1), тогда множество номеров вершин, из которых одна должна быть включена в цикл на первом (1=1) шаге процесса, будет равно С1 = {3,4,5,6}. Приращение

длины цикла при включении вер-

шины Л1 (1 € С1) в г-й интервал между вершинами с номерами к, j найдется по формуле:

öj{k,i,j) = сы

ckj

(1)

Для к=1, 1=3, j=2 (табл. 1), например, получим:

53 = 01,3 + С32 — С12 = 60 + 41 — 97 = 4, где первые два

слагаемых элемента обозначают новую длину маршрута между вершинами АК и Аj, из которой вычитается прежняя длина (до введения 1=3).

Расчеты, проведенные для первых двух шагов процесса, удобно представить в виде формулы (2):

t=1: G1 = = {3,4,5,6}, t=2: G2 ={3,4,5}

L1 (1,2,1) = 194, L2(1, 6 ,2,1) = 179,

(1,з,2 4 (2,ЗД) 4 (W) 49 <6>3'2) 52 (2,3Д) 4

(1,4,2) 28 <2A1> 28 (1,4,6> 67 (6A2) 68 (2A1) 28

(1,5,2) 10 (2,5,1 10 (1,5>6> 46 (6,5,2) 141 (2,5,1 10 (2)

(1,6,2 (k,i,j) -15 öj1 (2,M) -15 6j2 r=1 6j1 r=2 6j1 r=3 öj3

r=1 r=2

Примечание. Из анализа (2), в частности, следует, что в силу симметрии матрицы с (VCij = с ji) второй столбец для

1=1 можно было бы и не вычислять, так как Ь(к^,1)=Ь(У,к), то есть прямой и обратный пути равны. При этом теряется второй вариант решения, отличающийся от первого только направлением движения коммивояжера, что легко восстановить.

На последующих двух итерациях в цикл последовательно включаются номера оставшихся вершин j=5 и

j=4:

После включения в цикл вершины j=4 на шаге 1=4 с учетом примечания получено решение, которое является оптимальным и имеет вид формулы (3):

Ц1,6,2,4,3,5,1) = Ц1,5,3,4,2,6,1) = 207. (4)

Если в качестве начального цикла выбрать В1=(2,1,2), то снова будет получено оптимальное решение, так как на шаге 1=1 в (2) только лишь поменяются местами столбцы с вычислениями, а далее процесс не изменится. Более того, если в начальный цикл ввести сразу две промежуточные вершины (например, (1,2,4,1) (3,2,6,3), (3,6,2,3), (1,6,5,1) и др.), то их упорядоченность совпадет с их порядком в одном из оптимальных решений (4), а, следовательно, не исключает возможности получения правильного решения. Это справедливо только для симметричной матрицы ^Сц = с^).

Таким образом, при симметричной матрице расстояний МРЦ позволяет достаточно эффективно решать задачу коммивояжера, но не гарантирует оптимальности решения. Для получения таких гарантий рассмотрим применение МРЦ для решения задачи с полносвязной, но несимметричной матрицей расстояний с (зсу Ф Сц1 ) , при этом, если Vc¡j Ф Сц1 , то можно, в отличие от симметричного случая, говорить об отсутствии двух взаимно противоположных оптимальных циклов. Это, в частности, означает, что в качестве исходного можно брать цикл только с одним промежуточным элементом, чтобы в самом начале не исключить возможность оптимального решения. Схема расчета не меняется, и объем вычислений остается практически таким же.

Для матрицы расстояний, представленной в таблице 2, МРЦ получено 15 вариантов решений (для всех возможных сочетаний двух вершин графа, образующих исходный цикл (табл. 3, 1=0)). Динамика расширения цикла соответствует элементам, выделенным жирным шрифтом, на каждом шаге процесса.

При случайном (равновероятном) выборе двух элементов для начального цикла вероятность попасть на ошибочный вариант согласно данным таблицы 3, будет равна Рош=4/15»0,27. Если указанным способом наугад выбрать и решить т=3 варианта, то вероятность того, что среди них окажется хотя бы один оптимальныш, будет равна: Ропт = 1 — РОШ = 1 — 0,273 ~ 0,98.

Примечание. Следует отметить, что три из четырех ошибочных вариантов соответствуют минимальной оценке Ьк1 начального цикла Вк1 (жирный шрифт в таблице 3, 1=0). Если отмеченная особенность отражает существующую закономерность, то для снижения вероятности получения ошибочного

с= c

1 j

23

решения Рош, варианты с минимальными оценками Ьк1 целесообразно пропускать при выборе очередного начального варианта.

Таблица 2

у 1 2 3 4 5 6

1 6 13 27 18 25

2 10 20 1 9 23

3 22 28 15 8 3 =ы

4 19 2 30 12 17

5 14 11 26 29 5

6 24 7 16 4 21

Полагая, что и для других задач будет существовать вероятность ошибки выбора РоШ<1, можно использовать следующую схему расчета. Получив первый вариант решения задачи, не пытаться улучшать его известными методами [1], а перейти к поиску очередного варианта с новым начальным циклом. Так как среднее число попыток до появления оптимального варианта согласно геометрическому закону распределения равно (1-Рош)-1 [2], то, продолжая процесс вычисления вариантов до повторного появления оптимального варианта, в среднем потребуется 2(1-Рош)-1 попыток. В ОЗУ ЭВМ сохраняется только лучший вариант, и в момент получения варианта, совпадающего с ним, процесс прекращается.

Например, полагая, что вероятность ошибки Рош=0,5, ожидаемое число вариантов равно ш = 2-(1 -Рош)-1=4, при этом достоверность полученного таким путем решения будет равна:

Ропт = 1 - РШш = 1 - 0,54 » 0,94.

Для повышения надежности результата процесс можно продолжить до появления третьего решения, совпадающего с лучшим, что существенно не увеличит объем вычислений. Непосредственно моделированием с использованием таблицы 3 можно убедиться в справедливости полученной оценки, при этом до повторного появления правильного решения в среднем потребуется проверка ш=2-(1-0,27)-1 »2,6, то есть двух-трех вариантов.

Для моделирования без ЭВМ достаточно записать числа от 1 до 6 на шести бумажках. Выбирая наугад две из них, по написанным на них числам (пусть это 2 и 5) формируется начальный цикл Ь(2,5,2) (или Ь(5,2,5)). По таблице 3 проверяется, является ли решение оптимальным. Опыты продолжают до появления двух совпадающих решений.

Получим оценки требуемого объема счета и памяти ОЗУ для получения одного варианта.

На 1-м шаге процесса имеется 1+1 интервалов для подстановки в них поочередно каждого из оставшихся п-(1+1) номеров вершин. Следовательно, на 1-м шаге потребуется вычислить (1+1)-(п-(1+1)) значений поправок б 1 (1) и выбрать из них наименьшую. Для вычисления 61 (1) требуется две операции сложения и одна операция сравнения с предыдущей оценкой. Суммируя по всем п-2 шагам, получим требуемое число элементарных операций:

п-2 119

^оп = 2 3' (1+1)' (п - (1+1))=~п3 + 3п2 -—п+9 < 0,7п3, 1=1 22 (п > 10). (5)

Так, например, для расчета варианта задачи с п=1000 пунктами при быстродействии 106 оп/с потребуется 10 мин.

Требуемый объем оперативной памяти определится необходимостью хранения п-(п-1) значащих элементов матрицы е и п+2 ячеек должно быть выделено для хранения элементов расширяющегося цикла и его оценки Ь1. Промежуточная информация практически отсутствует, так как в ходе расчетов на каждом шаге из массива (2) хранится только один (минимальный) элемент б[ и связанные с ним величины.

Сравнение с аналогичными оценками, например, для точного метода Хелда, Карпа и Беллмана (~п2-2п-1-операций, ~п2п" -память), приведенными в [1], а также с соответствующими оценками для наилучших из приближенных алгоритмов (алг. Лина ~Э,5п3-(п-4)!, [1]), позволяет рассчитывать на высокую эффективность МРЦ.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Порядок решения задачи МРЦ может быть записан в виде следующего алгоритма:

10. Читать ||с 1щ || ,п.

20. Принять номер начального варианта к равным номеру вершины А1 (к=1).

30. Записать начальный цикл Б1к , его оценку Ьк 1 и множество номеров свободных (не включенных еще в цикл) вершин Ок1 : Бк = (к, к +1, к),

т 1

Ьк = ек,к+1 + ек+1,к, (Ок ={1пЬ {к,к +1}, 1 = 1.

40. Пронумеровать промежутки (дуги) в текущем цикле Бк ( г = 1;1 +1) и записать номера граничных вершин каждого промежутка: г - порядковый номер промежутка в цикле (слева направо); щг-1, щг - соответственно номера левой и правой вершин г-го промежутка в цикле.

50. На 1-м шаге для г-го промежутка вычислить приращение длины цикла при включении в промежуток г щ-й вершины:

Таблица 3

Динамика расширения цикла Ь\В), 1 = 0;4

к 1=0 1 2 3 4

1 Ь'(121)=16 Ь2(1241)=26 Ь3(12451)=33 Ь4(124561)=48 Ь5(1245631)=62

Ь1(131)=35 Ь2(1351)=35 Ь3(13521)=42 Ь4(135421)=62 Ь5(1356421)=42

Ь'(141)=46 Ь2(1241)=26 Ь3(12451)=33 Ь4(124561)=48 Ь5(1245631)=62

Ь'(151)=32 Ь2(1251)=29 Ь3( 12351 )=48 Ь4(124351)=59 Ь5(1246351)=62

Ь'(161)=49 Ь2(1361)=40 Ь3(13621)=33 Ь4(136421)=32 Ь5(1356421)=42

2 Ь'(232)=48 Ь2(2362)=30 Ь3(23642)=29 Ь4(213642)=32 Ь5(2135642)=42

Ь'(242)=3 Ь2(2412)=26 Ь3(24512)=33 Ь4(245612)=48 Ь5(2456312)=62

Ь'(252)=20 Ь2(2562)=21 Ь3(25642)=20 Ь4(235642)=20 Ь5(2135642)=42

Ь'(262)=30 Ь2(2562)=21 Ь3(25642)=20 Ь4(215642)=39 Ь5(2135642)=42

3 Ь'(343)=45 Ь2(3643)=37 Ь3(36423)=29 Ь4(364213)=32 Ь5(3564213)=42

Ь'(353)=34 Ь2(3563)=29 Ь3(35623)=40 Ь4(356423)=39 Ь5(3564213)=42

Ь'(363)=19 Ь2(3563)=29 Ь3(35623)=40 Ь4(356423)=39 Ь5(3564213)=42

4 Ь'(454)=41 Ь2(4564)=21 Ь3(42564)=20 Ь4(421564)=39 Ь5(4213564)=42

Ь'(464)=21 Ь2(4564)=21 Ь3(42564)=20 Ь4(421364)=32 Ь5(4213564)=42

5 Ь'(565)=26 Ь2(5625)=21 Ь3(56425)=20 Ь4(564235)=39 Ь5(5642135)=42

24

б/ = + . -Л ^ = +1' 1 Ок •

6°. Определить номер расширяемого промежутка ^ и включаемой в него вершины . из условия:

»rf.lt ( ^ .1' - 1,JГ )•

г = м + . Ок

7°. Пересчитать текущий цикл, его оценку и множе-

min min {j}= 6.j ^г^, r = 1,t + 1je Gj- j Jt

'k :

Бк+1 = Бкиш. ц+1=ц + вI1, ок+1=ок \ijti, 1=1+1.

8°. Если Ок #0 - идти к 4°.

90. Если Ь^ > Ь^-1 - принять к=к+1, идти к 3°.

10°. Если Ь^ < Ь"к-1 - запомнить новое решение Ь1к,Бк и перейти к 3°.

11о' Писать Бк, Бк-!, Ц = Ц-! . 12о' Конец.

Пункты 5°, 6° выполняются совместно, так что по мере вычисления элементов б' в памяти ЭВМ хранится

только меньший элемент б' , а также Г1, ^

При выполнении пункта 9° полагается, что для задач большой размерности необходимое условие к<п-2 будет соблюдено.

В пункте 11° учтена возможность получения одного экстремума при разных решениях (кортежах) Бк и

Бк-1.

Отметим возможность некоторых обобщений метода, особенность оптимального решения и некоторые проблемные вопросы.

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

В оптимальном цикле упорядоченность номеров вершин не меняется при выходе коммивояжера из любого другого пункта и возвращении в него же.

Имея оптимальный цикл, легко решается вопрос из какого пункта следует начать обход остальных, что-

бы длина пути до прибытия на последний пункт (без возвращения в исходный) была минимальной. Для решения задачи следует найти max сц из всех дуг, состав-(ij) J

ляющих оптимальный цикл, и в качестве исходного выбрать пункт, при котором наиболее длинная дуга окажется последней; то есть пункт, соответствующий концу наиболее длинной дуги. Так, для оптимального цикла имеем:

L(1, 3, 5, 6, 4, 2, 1) = 42 L=13+8+5+4+2+10+=42 ^max сц = =13.

Следовательно, обход может быть закончен на 13 ед. раньше, если обход начать из A3 и закончить в Ац:

L(3, 5, 6, 4, 2, 1 ) = 29.

В заключение отметим, что поскольку объем счета при МРЦ близок к минимально возможному (наиболее простой алгоритм - на каждом шаге идти к ближайшему пункту [1] - для получения варианта решения требует сП < 0,5 п2 операций сравнения) (см. (5)) и при этом гарантируется требуемая достоверность решения, то проблема решения классической задачи коммивояжера в значительной мере теряет свою актуальность. Однако может быть предложена более общая постановка задачи, в которой при обходе всех пунктов в каждый из них коммивояжер должен доставить с. тонн (. = 1,п) груза. Оптимальный маршрут (цикл) должен соответствовать минимуму энергозатрат в тоннокилометрах. Частный случай этой задачи ^с.=0 и вес транспортного средства со#0) соответствуют классической задаче коммивояжера.

Обобщенная задача еще более усложняется, если грузоподъемность транспортного средства не позволяет развезти все грузы за один заезд.

Возможные подходы к решению обобщенной задачи к настоящему времени нам неизвестны, как неизвестны и методы решения рассмотренных задач при не-полносвязной матрице расстояний между пунктами.

Список литературы

1. Основы теории оптимального управления. //Под ред. В.Ф. Кротова .-М.: Высш. шк., 1990.-430 с.

2. Гмурман В. Е. Теория вероятностей и математическая статистика. - М.: Высш. шк., 1997. - 479 с.

КОМПЬЮТЕРНОЕ ОБНАРУЖЕНИЕ ЛИЦ ЛЮДЕЙ НА ИЗОБРАЖЕНИИ

К.В. Мурыгин, К.М. Нюнькин

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

ную на периферию. С компьютерами самого недавнего прошлого нечего было и мечтать о создании искусственной зрительной системы. Но сейчас мощностей современных компьютеров уже хватает для решения хотя бы части задач анализа зрительной информации. Стремительно развивается производство сравнительно дешевых специализированных компьютерных видеокамер. В то же время вводимые

25

i Надоели баннеры? Вы всегда можете отключить рекламу.