С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.04.2022
Сообщений: 2

Задача коммивояжера

20.04.2022, 11:11. Показов 1322. Ответов 0

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Заранее выражаю Вам благодарность за интерес к данной теме.

Мне необходима по возможности консультация и советы от более опытных людей в программированию на С++, так как у меня другой основной язык программирования, поэтому некоторые моменты реализации остаются для меня загадкой даже после усердного поиска в интернете. Огромное спасибо Вам заранее!

В университете дали задание решить задачу коммивояжера методом ветвей и границ с реализацией на С++. Преподаватель поделился программой, которую необходимо "доработать" в соответствии с определенными требованиями, а именно:

1) Размерность задачи:
а) 21 и 35;
б) 25 и 31.

Этот пункт в принципе мне понятен - размерность матрицы, например из а, 21 на 21 и 35 на 35. С остальными аналогично. Поправьте, пожалуйста, если я неправильно понял, буду очень благодарен.
Далее дано следующее указание, которое мне немного не понятно.

2) Исходная функция плотности вероятности для случайных данных:
а) c2·(1+x^2), x∈[0,1];

(во всех случаях надо подобрать константу ci, чтобы на отрезке [0,1] такой плотностью вероятности задавалось бы всё распределение, т.е. нужный интеграл от 0 до 1 давал бы значение 1;
(при этом можно сказать, что «обычное» равномерное распределение имеет плотность c, и не будет ошибкой сказать c·(1+x^0), x∈[0,1]).

Здесь, как я понимаю необходимо очевидно вычислить интеграл, который равняется 3/4 (дробь). Опять же если я не прав, пожалуйста, поправьте, буду очень благодарен. Далее, вопрос заключается в том, что делать с этим интегралом после вычисления? Как я понимаю, эту функцию плотности вероятности нужно реализовать на С++ и с помощью неё заполнять матрицы, размерность которых указана в пункте 1.
Пожалуйста, подскажите как это сделать или хотя бы приведите аналогичный пример реализации заполнения матрицы через функцию плотности вероятности. Буду здесь очень благодарен!

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

3) . Далее запускаем МВГ с ограниченным временем выполнения (truncated branchand-bound method), причём 5 вариантов: 0.01·Т, 0.03·Т, 0.1·Т, 0.3·Т и 0.5·Т (т.е. 1%, 3%, 10%, 30% и 50% от времени, предварительно вычисленного для этой размерности). Каждый из этих вариантов запускается 2 способами: с применением вызова последовательности правых задач (ППЗ, см. материал лекции) и без его применения. Таким образом, всего у каждого из вас будут такие разные задачи:
• 2 варианта размерности;
• 5 вариантов времени;
• 2 варианта вызова ППЗ
итого 2×5×2 = 20 вариантов.

Здесь у меня главный вопрос заключается в том, как реализовать в коде "ограниченное время выполнения". Столько статей пересмотрел и нигде не находил хоть приближенного ответа на поставленную задачу. Заранее огромное спасибо!

И последний пункт, по которому у меня остался вопрос.

4) Для каждого запуска фиксируем результат (значение целевой функции), полученный к окончанию выделенного времени. После этого досчитываем задачу до конца – и тоже получаем значение целевой функции. Отношение оптимального
значения к значению целевой функции, полученному к окончанию выделенного времени, назовём качеством решения. Усредняем эти значения качества на 10 новых запусках – это будет критерием качества этой одной из 20 задач, указанных в
пункте 3. При этом само усреднение можно делать разными способами (не только как среднее арифметическое).

Здесь в принципе мне большая часть не понятна. Единственное догадываюсь, что в общем нужно рассчитать среднее время выполнения программы - оно и будет тем самым качеством решения. Поправьте меня опять же, если я не прав, пожалуйста. Также буду очень благодарен за разъяснения и догадки по этому пункту.

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

Еще раз всем огромное спасибо! До связи!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2022, 11:11
Ответы с готовыми решениями:

Задача коммивояжера C++
Добрый вечер! Помогите найти ошибку в задаче коммивояжера! Выводит бесконечность в ответе. Решала методом динамического программирования по...

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

Задача коммивояжёра
Написать программу для решения задачи коммивояжёра с помощью алгоритма Литтла. Интерфейс должен позволять вводить количество городов...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2022, 11:11
Помогаю со студенческими работами здесь

Задача коммивояжера (C++ -> Си)
Задача коммивояжёра #include <iostream> using namespace std; const int inf=1E9,NMAX=16; int n,i,j,k,m,temp,ans,d,t; bool...

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

Задача коммивояжера методом динамического программирования
Помогите пожалуйста переделать коммивояжера методом динамического программирования. Пусть n - это количество вершин графа. Тогда в цикле...

Задача коммивояжера - выход за пределы массива
Бьет ошибку! Я так понимаю где-то выход за пределы массива! Народ гляньте кто, а то я уже ничего не вижу! Может свежий взгляд увидит как...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru