Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/78: Рейтинг темы: голосов - 78, средняя оценка - 4.97
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163

Коммивояжер

05.01.2011, 22:11. Показов 14623. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Для полного графа и n <= 20 нужно написать программу для задачи коммивояжера за приемлемое время
Какой алгоритм - возможен ли полный перебор, ветвей и границ или ?
Спасибо за любую идею или ссылку!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2011, 22:11
Ответы с готовыми решениями:

Коммивояжер (бродячий торговец)
Ребят, помогите с реализацией задачи о коммивояжере, желательно простое решение полным перебором: потому как, входные данные будут больше...

Коммивояжёр - или оптимизация пути.
Задача заключается в том, чтобы оптимизировать пути движения транспорта от подбора клиента до его высадки. Распределение заказов по...

коммивояжер
не могу найти подходящую приложению для коммивояжер!

11
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
05.01.2011, 23:15
http://ru.wikipedia.org/wiki/Задача_о_коммивояжёре
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
06.01.2011, 00:47  [ТС]
Спасибо! Теорию я знаю - в книжке Мудрова - хорошо рассказано. Есть интересные реализации - ищу их ввиду недостатка времени.

 Комментарий модератора 
Ссылка удалена, правила форума, п. 3.10
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.01.2011, 00:51
АТерентьев, так что нужно? Написать программу которая будет выполняться за приемлемое время? А какое тогда время приемлемое?
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
06.01.2011, 09:11  [ТС]
Да, нужна программа, я думаю минут 5 - это нормально. Я смотрю метод ветвей и границ - судя по тому, что посмотрел - вроде подходит. Предпочитаю C# , но не уверен, что это наиболее подходит в данном случае. Видел реализацию алгоритма Дейкстры на C++ - очень понравилось использование контейнеров типа векторов, векторов от векторов и множеств - очень компактно получилось и красиво. Главная проблема - время, поэтому искал готовое
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.01.2011, 10:26
Готового у меня нет. Лучше поищите в интернете сами, там очень много разных рефератов, курсовых работ с готовыми программами даже есть. Лучше что там есть Вам вряд ли кто здесь напишет.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
06.01.2011, 12:05  [ТС]
Сделаю - выложу. Все равно разбираться - что к чему . Вариант интересный есть.
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.01.2011, 13:12
АТерентьев, Если честно меня немного смущает: n <= 20 (имею ввиду n равное 20) и 5 минут. Но все может быть... Если что-то найдете и выложите, то обязательно посмотрю.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
06.01.2011, 14:09  [ТС]
Время - на вскидку сказал. Сейчас запустил на Паскале - для n=6 тестовый пример из книжки считает мгновенно. Прогу приложил с тестовым примером.
Вложения
Тип файла: zip commivgr.zip (2.3 Кб, 840 просмотров)
Тип файла: zip input.zip (171 байт, 390 просмотров)
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
06.01.2011, 14:14  [ТС]
Добавил входной файл для примера из книжки Мудрова - для метода ветвей и границ
Вложения
Тип файла: zip input.zip (265 байт, 367 просмотров)
0
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.01.2011, 15:59
АТерентьев, К сожалению с паскалем знаком очень поверхностно, можно сказать вообще "в первый раз вижу". Компилятора для паскаля не имею, и не умею с ним работать.
Ради интереса, загрузите такой тест:
20
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
1 0 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
2 2 0 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
3 3 3 0 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
4 4 4 4 0 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
5 5 5 5 5 0 6 7 8 9 0 1 2 3 4 5 6 7 8 9
6 6 6 6 6 6 0 7 8 9 0 1 2 3 4 5 6 7 8 9
7 7 7 7 7 7 7 0 8 9 0 1 2 3 4 5 6 7 8 9
8 8 8 8 8 8 8 8 0 9 0 1 2 3 4 5 6 7 8 9
9 9 9 9 9 9 9 9 9 0 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1 1 1 0 2 3 4 5 6 7 8 9
2 2 2 2 2 2 2 2 2 2 2 2 0 3 4 5 6 7 8 9
3 3 3 3 3 3 3 3 3 3 3 3 3 0 4 5 6 7 8 9
4 4 4 4 4 4 4 4 4 4 4 4 4 4 0 5 6 7 8 9
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 0 6 7 8 9
6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 0 7 8 9
7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 8 9
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 0

И напишите сколько по времени получилось?
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,163
06.01.2011, 18:39  [ТС]
Я по диагонали поставил 30000 - это аналог бесконечности, т.е. нет дуг, замкнутых на себя.
Посчитала мгновенно.
Ответ:
Кратчайший цикл - 1 11 10 12 9 13 8 14 7 15 6 16 5 17 4 18 3 19 2 20
Его длина - 90
Вроде похоже на правду.
Входные данные.
20
30000 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 30000 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 1 30000 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 1 2 30000 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 1 2 3 30000 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 30000 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 30000 7 8 9 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 30000 8 9 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 30000 9 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 30000 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 30000 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 30000 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 30000 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 30000 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 30000 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 30000 6 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 30000 7 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 30000 8 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 30000 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 30000
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2011, 18:39
Помогаю со студенческими работами здесь

Коммивояжер. Расчёт минимального пути
нужно переделать функцию которая считает минимальный путь с помощью метода ветвей и границ, на функцию полного перебора public void...

Коммивояжёр, метод поиска в глубину
Всем привет. Собственно, тема говорит сама за себя. И ведь задачка-то не самая сложная, но что-то как-то грустно у меня с ней. Нашёл...

Коммивояжер (полный перебор), и сколько стоит?
Здравствуйте, подскажите работающую программу для решения задачи коммивояжера методом полного перебора Цитата: поиск самого...

Определить, сможет ли коммивояжер обойти все клетки и вернутся в исходную клетку
Имеется клеточное поле размером N*M. Из каждой клетки можно перемещатся в одну из соседних, если она есть ( вверх, вправо, вниз, влево)....

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru