Задача коммивояжера
Категория реферата: Рефераты по математике
Теги реферата: понятие культуры, отчет о прохождении практики
Добавил(а) на сайт: Жигалов.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата
{Путь vi..vk выдаётся в обратном порядке следующей процедурой:}
3.1. z:=c[k];
3.2. Выдать z;
3.3. z:=c[z]; Если z = 0, то конец, иначе перейти к 3.2.
Для выполнения алгоритма нужно n раз просмотреть массив b из n
элементов, т. е. алгоритм Дейкстры имеет квадратичную сложность.
Проиллюстрируем работу алгоритма Дейкстры численным примером (для большей
сложности, считаем, что некоторые города (вершины) i,j не соединены между
собой, т. е. D[i,j]=?). Пусть, например, i=3. Требуется найти кратчайшие
пути из вершины 3. Содержимое массивов a,b,c после выполнения первого
пункта показано на табл. 12:
Очевидно, содержимое таблицы меняется по мере выполнения общего шага. Это
видно из следующей таблицы:
Одним из возможных недостатков такого алгоритма является необходимость знать не матрицу расстояний, а координаты каждого города на плоскости. Если нам известна матрица расстояний между городами, но неизвестны их координаты, то для их нахождения нужно будет решить n систем квадратных уравнений с n неизвестными для каждой координаты. Уже для 6 городов это сделать очень сложно. Если же, наоборот, имеются координаты всех городов, но нет матрицы расстояний между ними, то создать эту матрицу несложно. Это можно легко сделать в уме для 5-6 городов. Для большего количества городов можно воспользоваться возможностями компьютера, в то время как промоделировать решение системы квадратных уравнений на компьютере довольно сложно.
На основе вышеизложенного можно сделать вывод, что мой алгоритм, наряду с деревянным алгоритмом и алгоритмом Дейкстры, можно отнести к приближённым (хотя за этим алгоритмом ни разу не было замечено выдачи неправильного варианта).
1.2.6. Анализ методов решения задачи коммивояжера
Для подведения итогов в изучении методов решения ЗК протестируем
наиболее оптимальные алгоритмы на компьютере по следующим показателям:
количество городов, время обработки, вероятность неправильного ответа.
Данные занесём в таблицу.
|Алгоритм лексического перебора |
|Кол-во |Время обработки,|Вероятность неправильного |Тип |
|городов |c |ответа, % |алгоритма |
|10 |41 |0 |точный |
|12 |12000=3ч.20мин |0 | |
|32 |-* |0 | |
|100 |-* |0 | |
|Метод ветвей и границ |
|10 |~0 |0 |точный |
|32 |~0.0001 |0 | |
|100 |1.2 |0 | |
|Мой алгоритм решения ЗК |
|10 |0.001 |0 |приближенный|
|32 |2.5 |0 | |
|100 |6 |0 | |
*- ЗК с таким количеством городов методом лексического перебора
современный компьютер не смог бы решить даже за всё время существования
Вселенной.
Как видим по результатам этой таблицы, алгоритм лексического перебора можно применять лишь в случае с количеством городов 5..12. Метод ветвей и границ, наряду с моим методом, можно применять всегда. Хотя мой метод я отнёс к приближённым алгоритмам, он фактически является точным, так как доказать обратное ещё не удалось.
1.3 Практическое применение задачи коммивояжера
Кроме очевидного применения ЗК на практике, существует ещё ряд задач, сводимых к решению ЗК.
Задача о производстве красок. Имеется производственная линия для
производства n красок разного цвета; обозначим эти краски номерами 1,2… n.
Всю производственную линию будем считать одним процессором.. Будем считать
также, что единовременно процессор производит только одну краску, поэтому
краски нужно производить в некотором порядке Поскольку производство
циклическое, то краски надо производить в циклическом порядке
(=(j1,j2,..,jn,j1). После окончания производства краски i и перед началом
производства краски j надо отмыть оборудование от краски i. Для этого
требуется время C[i,j]. Очевидно, что C[i,j] зависит как от i, так и от j, и что, вообще говоря,C[i,j]?C[j,i]. При некотором выбранном порядке
придется на цикл производства красок потратить время
[pic]
Где tk - чистое время производства k-ой краски (не считая переналадок). Однако вторая сумма в правой части постоянна, поэтому полное время на цикл производства минимизируется вместе с общим временем на переналадку.
Таким образом, ЗК и задача о минимизации времени переналадки – это просто одна задача, только варианты ее описаны разными словами.
Задача о дыропробивном прессе. Дыропробивной пресс производит большое число одинаковых панелей – металлических листов, в которых последовательно по одному пробиваются отверстия разной формы и величины. Схематически пресс можно представить в виде стола, двигающегося независимо по координатам x, y, и вращающегося над столом диска, по периметру которого расположены дыропробивные инструменты разной формы и величины. Каждый инструмент присутствует в одном экземпляре. Диск может вращаться одинаково в двух направлениях (координата вращения z). Имеется собственно пресс, который надавливает на подвешенный под него инструмент тогда, когда под инструмент подведена нужная точка листа.
Операция пробивки j-того отверстия характеризуется четверкой чисел
(xj,yj,zj,tj),, где xj,yj- координаты нужного положения
стола, zj - координата нужного положения диска и tj - время пробивки j-того
отверстия.
Производство панелей носит циклический характер: в начале и конце обработки каждого листа стол должен находиться в положениях (x0, y0) диск в положении z0 причем в этом положении отверстие не пробивается. Это начальное состояние системы можно считать пробивкой фиктивного нулевого отверстия. С параметрами (x0,y0,z0,0).
Чтобы пробить j-тое отверстие непосредственно после i-того необходимо произвести следующие действия:
1. Переместить стол по оси x из положения xi в положение xj, затрачивая при этом время t(x)(|xi-xj|)=ti,j(x)
2. Проделать то же самое по оси y, затратив время ti,j(y)
3. Повернуть головку по кратчайшей из двух дуг из положения zi в положение zj, затратив время ti,j(z) .
Рекомендуем скачать другие рефераты по теме: конспекты по литературе, шпаргалки бесплатно.
Предыдущая страница реферата | 1 2 3 4 5 6 7 | Следующая страница реферата