Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача коммивояжера, кратчайший обход всех объектов 
:(
    Опции темы
Graf Zeppelin
Дата 19.4.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 28.3.2004

Репутация: нет
Всего: 1



На практике столкнулся с такой проблемой: есть сверлильный станок для него существуе задание просверлить N дырок и вернутся в исходную позицию. Координаты дырок известны, нужно минимизировать пройденный путь.
ЗЫ Мне посоветовали читать книжки по теории графов sad.gif
--------------------
Jah, help me!
PM MAIL   Вверх
Alex101
Дата 19.4.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

Репутация: 1
Всего: 10



Если на плоскости, то это типичная задача коммивояжера.
Оптимизировать можно, отсекая лишние ветви, если уже на i-том шаге путь станка больше какого-то полученного. А вообще посмотри метод Литтла. Вроде как он позволяет решать задачу для N (кол-ва городов) в районе 30-50...


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
Graf Zeppelin
Дата 25.4.2004, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 28.3.2004

Репутация: нет
Всего: 1



Плиз дайте ссылку.
--------------------
Jah, help me!
PM MAIL   Вверх
Maverick
Дата 6.5.2004, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1307
Регистрация: 22.9.2003
Где: Odessa, Ukraine

Репутация: нет
Всего: 10



http://alglib.manual.ru/

Там только блок-схема была в прошлый раз.... но на безрыбье....


--------------------
smile
PM ICQ GTalk   Вверх
Lem03
Дата 6.5.2004, 13:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Можно использовать генетический алгоритм. Поищи "Konstantin Boukreev" , он написал программу на эту тему и выложил исходник. Правда генетические алгоритмы довольно медленные.
  Вверх
Graf Zeppelin
Дата 7.5.2004, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 28.3.2004

Репутация: нет
Всего: 1



http://www.codeproject.com/cpp/tspapp.asp
Буду разбириться
--------------------
Jah, help me!
PM MAIL   Вверх
Golod
Дата 8.5.2004, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 8.5.2004

Репутация: нет
Всего: нет



Алгоритм решения задачи комивояжера: (алгоритм жадный, так что он может давать оптимальное решение, а может и не давать, но не жадного алгоритма нет т.к. задача NP-полна)
1)Начинаем строить цикл, включив в него ребро наименьшего веса;
2)Среди рёбер, инцедентных концам нашего ребра, находится ребро наименьшего веса(весом будет расстояние между дырками) и тоже включается в цикл;
3)Если построили цепь, то просматриваем рёбра, инцедентные концам цепи, и не образующие цикл с уже включёнными рёбрами, выбираем наименьшее и включаем;
4)Пункт 3 повторяем, пока не закончатся вершины, а потом соединяем последнюю и первую вершины.
Вот и весь алгоритм. Его удобнее всего реализовать методом расстановки меток.
PM MAIL   Вверх
Crot
Дата 13.5.2004, 05:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2004

Репутация: нет
Всего: 3



А скажите, задача коммивояжёра определена для полного графа, или для любого?
PM MAIL WWW ICQ   Вверх
Guest
Дата 13.5.2004, 10:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Hello, ALL !

Если путь замкнутый, то видимо для любого.

В случае с печ-ми платми, прирост производит-ти станка при замене пути,
может достичь ~30 % (где вычитал не помню, давно это было)
Реальный экономический эффект, без "большого" напряга :-)
Когда-то я пробовал решать эту задачу по алгоритму, схожему с предложенным
Golod-ом, но с некоторым отличием. Внедрить, увы не удалось, т к на тот момент
все производства "дохли" ... :-( Попробуйте, может у вас что-то получится.

Итак, алгоритм:

1) в составленной матрице из _расстояний_ между точками выбираем самую
"дальнюю" точку (можно по макс расст или по сумме всех расст. Я брал 1-й вар )
2) вкл в маршрут _две_ ближайшие точки
3) добавить в маршрут точку с наименьшей ценой, т е включение которой даёт
_наименьшее_ приращение длинны маршрута. Включение этой точки
производится перебором включением во все рёбра уже имеющегося маршрута.
Есс-но выбирается вставка в то ребро, где приращение маршрута наименьше.
4) ... и так далее, пока не будут вставлены в маршрут все точки.

Была и вторая часть, оптимизатор, но сейчас точно я его не помню :-(
Если найду, кину. Эх, давно это было ... :-(

Удачи !

  Вверх
maxim1000
Дата 13.5.2004, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



кстати, а сколько отверстий? (приблизительно)


--------------------
qqq
PM WWW   Вверх
Graf Zeppelin
Дата 14.5.2004, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 28.3.2004

Репутация: нет
Всего: 1



Цитата(maxim1000 @ 13.5.2004, 11:37)
кстати, а сколько отверстий? (приблизительно)

~100 в худшем случае
p.s. уже потихоньку врубаюсь в книжку Кристофидеса "Графы.
Алгоритмический подход"

Это сообщение отредактировал(а) Graf Zeppelin - 14.5.2004, 11:25
--------------------
Jah, help me!
PM MAIL   Вверх
Гость_Eugene
Дата 14.5.2004, 11:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В догонку wink.gif

Как вариант:
п 2 можно изменить на включение 2-х или 3-х самых дальних точек,
что-бы охватить сразу _весь_ периметр печатной платы.
Этот вариант у меня тоже был. Экспериментируйте...

Удачи !
  Вверх
LSD
Дата 14.5.2004, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: нет
Всего: 538



Цитата(Crot @ 13.5.2004, 05:59)
А скажите, задача коммивояжёра определена для полного графа, или для любого?

Решение есть если граф Гамильтонов, задача определения являеся ли граф Гамильтоновым NP полная, но полный граф всегда Гамильтонов.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
achmed
Дата 14.5.2004, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 150
Регистрация: 12.4.2004

Репутация: нет
Всего: нет



в догонку могу посоветовать книгу Мину, тоже по графам.

PM MAIL   Вверх
HalkaR
Дата 17.5.2004, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: нет
Всего: 42



http://algolist.manual.ru

Вобщем там есть достаточно простые методы. Хотя там нет методов ветвей и границ.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.3836 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.