0 / 0 / 0
Регистрация: 29.11.2010
Сообщений: 7
|
||||||
1 | ||||||
Жадный алгоритм для определения последовательности обхода городов.05.01.2011, 16:48. Показов 15861. Ответов 25
Метки нет (Все метки)
Здравствуйте! Изучаю разные транспортные алгоритмы и возник следующий вопрос.
На основе данных, полученных из txt-файла формирую двумерный массив: матрицу смежности ras[i][j], в которой хранятся расстояния между городами. Пытаюсь применить жадный алгоритм для составления последовательности обхода городов. В 0-й строке ищу минимальный элемент, запоминаю индекс в массив mashrut[n] и перехожу в строку с этим индексом. Там снова ищу минимальный элемент и т.д. После того, как нашёл минимальный элемент в строке - зануляю весь его столбец (всё равно в эту вершину больше заходить не будем). И ищу дальше. Но последовательность всё равно выдаёт неверную - 1, 2, 3, 4, 5. Вместо 1, 3, 5, 2, 4. Подскажите пожалуйста! Добавлено через 46 минут
0
|
05.01.2011, 16:48 | |
Ответы с готовыми решениями:
25
Составить алгоритм определения последовательности номеров удаляемых спортсменов Жадный алгоритм Жадный алгоритм жадный алгоритм |
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
|
|
25.11.2012, 10:35 | 21 |
valeriikozlov, пришли мне, пожалуйста, улучшенную задачу коммивояжера с помощью жадного алгоритма, которое должно находить кратчайший путь по заданным городам и сумму найденного пути.
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
25.11.2012, 21:43 | 22 | |||||
а чем не нравится код из 12 поста?
Сумму найденного пути очень элементарно там найти (вставить этот кусок нужно перед выводом пути):
0
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
|
|
26.11.2012, 19:33 | 23 |
valeriikozlov, Моя задача с N городами (желательно 5 городов) и в ответе путь коммивояжера должен быть 1-5-3-4-2-1 и сумма пути 13 - вот что требуется для улучшения задачи. Прошу мне сегодня прислать улучшенную (модифицированную) задачу . Буду благодарен.
0
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
|
||||||
27.11.2012, 20:46 | 24 | |||||
valeriikozlov, Был у преподавателя программа почти правильна, только должна работать не из клавиатуры, а из файла (создать input.txt - потом появится output.txt)(таково условие преподавателя). Поэтому решенную задачу (кому нибудь пригодится) прикладываю здесь - путь коммивояжера начинается с 1 города (5 городов), ответ таков: путь 1-5-3-4-2-1 и сумма пути 13. Матрица стоимостей такова:
100 1 2 7 5 1 100 4 4 3 2 4 100 1 2 7 4 1 100 3 5 3 2 3 100
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
||||||
28.11.2012, 06:06 | 25 | |||||
Я понимаю эту фразу так, что вводить данные из файла input.txt , а выводить результат в файл output.txt.
Со второго так со второго. Насчет придумывания матрицы: это значит что Вы сами до запуска программы записываете матрицу в файл input.txt. И я так понимаю что матрица всегда размером 5*5. В итоге вот что получилось:
0
|
0 / 0 / 0
Регистрация: 13.11.2012
Сообщений: 8
|
|
28.11.2012, 18:58 | 26 |
valeriikozlov, ты сделай задачу так же, как я выложил в 24 пост, а то твое решение хоть и правильное, но преподавателю это не нравится - что такое и чем характеризуются: mas[n][n]={0}(оно не нужно по мнению преподавателя), res=0, tmp=0, min, bool mas1[n]={false}, #define n 5(оно не нужно по мнению преподавателя). Вообще сделай так как я выложил в 24 пост и прошу к каждой строке дать понятные комментарии и программа должна работать из файла и со второго города(смотреть мои условия в пост 24).
0
|
28.11.2012, 18:58 | |
28.11.2012, 18:58 | |
Помогаю со студенческими работами здесь
26
Жадный алгоритм Жадный алгоритм С++ Жадный алгоритм Жадный граф/алгоритм Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |