|
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 4
|
||||||
Решение задачи коммивояжера(краш программы)15.12.2018, 17:13. Показов 7406. Ответов 3
Метки нет (Все метки)
Решаю задачу коммивояжера жадным алгоритмом. Когда побываем во всех городах, нужно вернуться в стартовый. Количество городов вводится с клавиатуры, расстояние между ними так-же. Строится матрица смежности. Дальше ввожу стартовую вершину. Для этой вершины ищется город, который находится ближе всего и мы идём в него. В массив пройденных расстояний записываем вершину из который уже вышли. Дальше для второго города ищем тот, который находится ближе всего, с учетом того, что мы не должны вернуться в предыдущий город. И так далее, пока не побываем во всех городах. Потом мы по массиву пройденных городов считаем пройденное расстояние и прибавляем к нему расстояние из последнего города в стартовый. Так вот, при прохождении проверки(я её выделил в коде), программа крашится, скрин краша прилагается. Если эту проверку закомментировать, то программа будет работать, но очень часто выдаёт ложный результат. Примечательно, что аналогичная проверка в предыдущем цикле работает нормально.
0
|
||||||
| 15.12.2018, 17:13 | |
|
Ответы с готовыми решениями:
3
Граф, решение задачи коммивояжера Решение задачи коммивояжёра при помощи перебора Решение задачи коммивояжера |
|
Мозгоправ
|
||||||
| 16.12.2018, 01:27 | ||||||
Сообщение было отмечено murphy_ как решение
Решение
Вы сделали несколько ошибок в результате которых происходило обращение к элементу массива по индексу -1.
У меня, например, ваш код крашился в строке 110 при входных данных: 3 города с расстояниями 5, 3 и 2. Кроме того, у вас при заполнении матрицы смежности возможен вариант, когда путь туда не равен пути обратно. В реальной жизни такое возможно, но здесь, я думаю, можно упростить задачу и считать, что длина пути не зависит от направления движения. Это, кстати, уменьшает количество значений, вводимых в матрицу смежности, вдвое. Я тут подредактировал ваш код. Поправил ошибки, убрал лишнее. С пристрастием не тестировал, но вроде работает правильно.
6
|
||||||
|
0 / 0 / 0
Регистрация: 03.12.2018
Сообщений: 4
|
||
| 16.12.2018, 12:33 [ТС] | ||
|
А матрица такая по условию должна быть.
0
|
||
|
0 / 0 / 0
Регистрация: 21.05.2019
Сообщений: 4
|
|
| 01.11.2019, 21:09 | |
|
можно просить Вас о помощи?
получил задание, решить ту же самую задачу методом ближайшего соседа(жадным). Разница в том что на входе получаю координаты точек. т.е. надо рассчитать расстояния между городами. На бумаге рассчитываю, но вот как нужно изменить код чтобы прикрутить к нему недостающую часть не знаю, т.к. не силен в программировании. Заранее примного благодарен за потраченное время и Вашу помощь.
0
|
|
| 01.11.2019, 21:09 | |
|
Помогаю со студенческими работами здесь
4
Решение задачи коммивояжера
Решение задачи о коммивояжера методом ветвей и границ. Решение задачи коммивояжера методом ветвей и границ Написать решение задачи коммивояжёра сведением к задаче целочисленного линейного программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|