|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.10.2012, 18:01 | #1 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 16
|
Нахождение кратчайшего пути на графе.
Помогите с задачей на Delphi.Нахождение кратчайшего пути на графе.
|
16.10.2012, 19:14 | #2 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 16
|
есть программа. но она не работает, помогите найти причину
|
16.10.2012, 23:31 | #3 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Мария это известная задача. Почитайте в инете алгоритм Дейкстры. Существуют еще много других варинатов, но они либо вариации либо сложней.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.10.2012, 07:33 | #4 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 16
|
Я понимаю что это все давным давно известно. Попробовала решить после прочитанного в интернете. Запускается но работает не корректно. Поэтому и прошу помочь найти причину
|
17.10.2012, 09:20 | #5 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Я бы помог, но от Вас надо
1. Полные данные на которых тестить программу и какой при этом должен быть результат. 2. Объясните общую логику алгоритма и программы. Я так понимаю, в гриде матрица смежности графа (правда она почему-то 4*4 а в коде 10*10 массив). Но пока сомнения насчет что вводить в эдтиы. Вводил граф такой: 4 точки, 1 соед с 3 и 4, 3 соед с 4 , 2 не соединена ни с кем (в гриде 6 единичек проставил, на 3 связи. с зеркалированием по гл. диаг.). Путь от 1 до 2 прога ничего не вывела, путь 1-3 прога вывела "1 3, длина:4512268" Я теряюсь хоть как-то понять результат. Алгоритм пробежался глазами, но ввиду возможной там ошибки вникать не стал, ибо мне неизвестно как должен работать алгоритм, а тут ещё и он неправильно запрограммирован по идее.. Дома лежит работа по графам которую писал на заказ, из неё могу Вам надёргать функционала по работе с матрицей смежности и отрисовкой графа. путь там тоже искался, но он на дин. программировании и со свой спецификой, пилить будет накладно, да и потом - непедагогично с моей стороны, тем более, по коду и оформлению мне в целом понравилось как сделано у Вас, и думаю, Вы способны всё это сделать, а помочь по нестыковкам - поможем. Последний раз редактировалось phomm; 17.10.2012 в 09:25. |
17.10.2012, 10:06 | #6 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 16
|
тестировала программу на вот таких данных:
0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 из точки 1 в точку 5 должны попасть по пути 1 3 4 6 5 Вообще в сети нашла только этот алгоритм нахождения пути пользовалась эти ресурсом http://prodelphi.ucoz.ru/index/poisk_puti/0-165?lyeosi Откуда появляется длинна я не поняла. По идее длина должна задаваться с клавиатуры |
17.10.2012, 12:29 | #7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Вот так исправил, проверьте, искать стал норм, и выводить длину пути, но только не всегда самый короткий путь... (по моим прикидкам должны быть более быстрые пути а он просто некий путь кажет). Также не знаю реализовано ли в том алгоритме поиск с учетом веса ребра графа.. было бы хорошо, но я даже не проверил, раз он по единичным весам некорректно ищет. Надо будет Вам пошагово прогнать программу и проверить всё.
Сейчас уже нет времени у меня, возможно потом. Файлы просто замените и перезапустите проект в дельфи. |
25.10.2012, 19:29 | #8 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 16
|
Большое спасибо, а подскажите как реализовать графически этот алгоритм, с чего начать?
|
25.10.2012, 20:01 | #9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Научитесь, пожалуйста, ставить вопросы.
Что значит реализовать графически? Мы с Вами можем абсолютно по-разному понимать это, и если Вы хотите сразу работать в нужном направлении, то лучше очень чётко всё расписывать. Начать можно с изучения свойств и методов класса Canvas , почти все учебные пособия по дельфи имеют главы по данной теме. |
25.10.2012, 20:09 | #10 |
C++, Java
Старожил
Регистрация: 10.04.2010
Сообщений: 2,665
|
Дейкстра не айс, алгоритм Форда-Беллмана рулит, даже по асимптотике ( O(n * m) против O(n^2) у Дейкстры), да плюс Дейкстра с отрицательными ребрами не работает. Да и в реализации Форд-Беллман гораздо проще И, по-моему, интуитивно понятней.
Читать тут |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск кратчайшего пути в графе | BaceK | Помощь студентам | 0 | 18.12.2011 11:49 |
Нахождение кратчайшего пути в графе | Nata220 | Помощь студентам | 4 | 29.11.2010 14:54 |
1) Поиск кратчайшего пути в графе методом полного перебора в ширину(очередь) | Serega123 | Помощь студентам | 3 | 30.10.2008 22:26 |
применить Алгоритм Дейкстры для поиска кратчайшего пути в графе | Эдгар | Microsoft Office Excel | 13 | 24.10.2008 21:01 |