Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2012, 18:01   #1
Мария74
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 16
По умолчанию Нахождение кратчайшего пути на графе.

Помогите с задачей на Delphi.Нахождение кратчайшего пути на графе.
Мария74 вне форума Ответить с цитированием
Старый 16.10.2012, 19:14   #2
Мария74
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 16
Восклицание

есть программа. но она не работает, помогите найти причину
Вложения
Тип файла: zip нахождение минимального пути.zip (238.0 Кб, 115 просмотров)
Мария74 вне форума Ответить с цитированием
Старый 16.10.2012, 23:31   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Мария это известная задача. Почитайте в инете алгоритм Дейкстры. Существуют еще много других варинатов, но они либо вариации либо сложней.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 17.10.2012, 07:33   #4
Мария74
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Мария это известная задача. Почитайте в инете алгоритм Дейкстры. Существуют еще много других варинатов, но они либо вариации либо сложней.
Я понимаю что это все давным давно известно. Попробовала решить после прочитанного в интернете. Запускается но работает не корректно. Поэтому и прошу помочь найти причину
Мария74 вне форума Ответить с цитированием
Старый 17.10.2012, 09:20   #5
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 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.
phomm вне форума Ответить с цитированием
Старый 17.10.2012, 10:06   #6
Мария74
Пользователь
 
Регистрация: 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
Откуда появляется длинна я не поняла. По идее длина должна задаваться с клавиатуры
Вложения
Тип файла: zip нахождение минимального пути - копия.zip (238.5 Кб, 129 просмотров)
Мария74 вне форума Ответить с цитированием
Старый 17.10.2012, 12:29   #7
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Вот так исправил, проверьте, искать стал норм, и выводить длину пути, но только не всегда самый короткий путь... (по моим прикидкам должны быть более быстрые пути а он просто некий путь кажет). Также не знаю реализовано ли в том алгоритме поиск с учетом веса ребра графа.. было бы хорошо, но я даже не проверил, раз он по единичным весам некорректно ищет. Надо будет Вам пошагово прогнать программу и проверить всё.
Сейчас уже нет времени у меня, возможно потом.

Файлы просто замените и перезапустите проект в дельфи.
Вложения
Тип файла: zip нахождение минпути.zip (2.3 Кб, 253 просмотров)
phomm вне форума Ответить с цитированием
Старый 25.10.2012, 19:29   #8
Мария74
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 16
По умолчанию

Большое спасибо, а подскажите как реализовать графически этот алгоритм, с чего начать?
Мария74 вне форума Ответить с цитированием
Старый 25.10.2012, 20:01   #9
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Научитесь, пожалуйста, ставить вопросы.
Что значит реализовать графически? Мы с Вами можем абсолютно по-разному понимать это, и если Вы хотите сразу работать в нужном направлении, то лучше очень чётко всё расписывать.

Начать можно с изучения свойств и методов класса Canvas , почти все учебные пособия по дельфи имеют главы по данной теме.
phomm вне форума Ответить с цитированием
Старый 25.10.2012, 20:09   #10
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Дейкстра не айс, алгоритм Форда-Беллмана рулит, даже по асимптотике ( O(n * m) против O(n^2) у Дейкстры), да плюс Дейкстра с отрицательными ребрами не работает. Да и в реализации Форд-Беллман гораздо проще И, по-моему, интуитивно понятней.
Читать тут
_-Re@l-_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск кратчайшего пути в графе 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