Ребят, подскажите! Вот задача. Есть пять городов А, B, C, D, E. Человек выходит
обязательно из города А и должен вернуться в А. Т.е. порядок городов за исключением
первого и последнего может менятся. Надо найти кротчайщие растояние.
Всего я подсчитал может быть 24 комбинации. Растояния между городами известно.
Я написал программу, всё вроде нормально. Но скажите так и должно быть что
иногда растояния повторяются, хотя комбинации разные? Тогда получается что
кротчайших путей может быть несколько. Может ли так быть? Если кому нужен
исходник говорите адрес пришлю.
Хм ничего секретного!!!!!!!! задача из учебника. Значит говорите случается!!!!! Интересно. Ну вот у меня из 24 чисел наверно больше 5 имеют пары а то и 3 одинаковых числа подается!!!! Так говорите так и должно быть?
Нет!!! При одном!!!!!!!! Например:
......
Комбинация №4 ADCBEA - 312
Комбинация №5 ADCEBA - 200
....
Комбинация №15 ACDEBA - 200
.....
Комбинация №24 ABCEDA -312
Это я к примеру!!!!!!!!
Теперь я вообще ничего не понимаю... Присоединяй исходник, вводимые данные и полное задание...
Есть пять городов , А , Б , С , Д и Е. Известно что человек всегда выходит из города А , и обязательно должен пройти все оставшиеся города и попасть обратно в А. К примеру , Из А -> Б -> C->Д->E->A. То есть за исключением А , порядок посещения оставшихся четырех городов может меняться. То есть существует (5-1)! комбинаций. Как мне задать чтобы программа сама смогла их посчитать, а потом выдать наикратчайщий путь ???
Вот файл. Вначале надо заполнить таблицу расстояний Может это очевидно но я поясню!!!!!!! Растояние между А и А, В и В, и т.д. - до лжно быть равно 0, а между СВ и ВС, т.д. - должно быть одинаково!!!!!!!!
Прикрепленные файлы
GORODA.PAS ( 2.81 килобайт )
Кол-во скачиваний: 270
Я так понял это задача о коммивояжере.Вообщу оптимальпого алгоритма решения этой задачи НЕТ !Откуда я знаю,это тема мой курсовой работы по дискретной математике,которую я успешно сдал.Переходим к делу, всего в задаче возможно п! решений ,где п-= кол-во городов.Самое точное решение дает генетический алгоритм,или метод ветвей и границ для комбинаторных задач.Оптимальное но не точное решение даст алгоритмм ближайшего соседа (по нему я программу то и сделалл).Я рекомендую тебе использовать один из этих методов (в зависимости от степени точности решения),ну а если у тебя ничего не выйдет ,то пиши я постораюсь тебе помочь
так я не понял а как моё решение??
задача о комивояжере это стандартная нп-задача(она не находит за данное время решения)=>>оптимального решения НЕТ !
А моя программа выходит не определяет кратчайший путь? Фигня?
Ответьте как моя программа? Выполняет то что требуется?
Нет... Что требуется? Найти минимальный путь, так? А у тебя что выводится? ВСЕ ВОЗМОЖНЫЕ пути? А зачем? Дейкстра или Флойд тебе в помощь - у нас в FAQ-е есть реализации...
А тебе WishMaster, я еще раз повторяю (если тебя читать и понимать прочитанное не научили): я и не говорил об оптимальном решении, еще раз тебе говорю - нет НИЧЕГО оптимального!!! Есть только решения, устраивающие заказчика. ВСЁ. Даже вычисление квадратного корня через Sqrt какого-то заказчика может не устроить!
Volvo, ты не заметил????????? там под таблицей выводится самый короткий путь!!!!!!!!!!!!!!! Посмотри!!!!!!!!!!!
Да это я видел... Только... Понимаешь, "Наикратчайший путь" и "Наименьшее расстояние" - не одно и то же... Пути-то нет... Есть длина его, а где сам маршрут? Кстати, твою программу можно малость оптимизировать, чтобы при вводе она сама заполняла уже введенные расстояния между городами (а не ты должен был бы вспоминать, чему равно расстояние AC, чтобы его же ввести в CA)
Так ведь можно в таблице с права найти это растояние и посмотреть какой это путь!!!!!! Разве нет?
Спасибо. Так верно что может быть несколько однаковых расстояний?
пусть у тебя 4 вершины,
пусть у тебя следующая матрица расстояний :
A B C D
A 0 1 1 0
B 1 0 0 1
C 1 0 0 1
D 0 1 1 0
Спасибо всем!