Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.02.2012, 16:17
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию Алгоритм нахождения пути

Здравствуйте уважаемые форумчане. Возникла следующая проблема. Мне надо разработать алгоритм, что бы программа находила кратчайший путь из точки а, до точки б. То есть, там есть несколько подходов, например мы стоим в точке 1, мы можем пойти на лева в точку 3, либо направо, и т.д. Программа должна проверить все пути прохода, и найти истинный путь к конечной точке. Я не требую от вас кода, мне просто нужен алгоритм. Я разработал, но но слишком сложный, поэтому прошу у вас, возможно есть алгоритм более лёгкий. "Карта" на скриншоте.
Ответить с цитированием
  #2  
Старый 24.02.2012, 16:26
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Что-то типа этого:
http://www.delphisources.ru/forum/sh...8&postcount=17
Пример поиска пути в графах есть в исходниках на этом сайте. Все сцарапано с него.
Ответить с цитированием
  #3  
Старый 24.02.2012, 17:08
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Для этой задачи подойдет алгоритм Дейсктры
Ответить с цитированием
  #4  
Старый 24.02.2012, 17:27
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Цитата:
Сообщение от YVitaliy
Что-то типа этого:
http://www.delphisources.ru/forum/sh...8&postcount=17
Пример поиска пути в графах есть в исходниках на этом сайте. Все сцарапано с него.
Не совсем то, плюс у меня не графа, а массивы, это просто схема выше.

Цитата:
Сообщение от Pilot_Red
Для этой задачи подойдет алгоритм Дейсктры
Прочитал на вики, этот алгоритм находит кратчайший путь. А для моего это лишь второстепенная задача, на первом месте стоит вообще нахождение пути с точки а до б.
Ответить с цитированием
  #5  
Старый 24.02.2012, 17:33
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Если у тебя точки в массиве, то как знать, от которой точки к которой можно проити? Суть вопроса яснее.
Плюс, граф - это и есть массив точек, просто "соединенных" между собой
Ответить с цитированием
  #6  
Старый 24.02.2012, 17:44
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

двумерный массив, в котором находится например точка 1, и 4 точки куда от неё можно пройти.
Ответить с цитированием
  #7  
Старый 24.02.2012, 18:41
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,553
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

http://www.delphisources.ru/pages/so...-algoritm.html
Ответить с цитированием
  #8  
Старый 24.02.2012, 18:42
Аватар для YVitaliy
YVitaliy YVitaliy вне форума
Местный
 
Регистрация: 14.12.2011
Сообщения: 481
Версия Delphi: Borland Delphi7
Репутация: 17
По умолчанию

Вот есть у меня мой тестовый пример (я тестил на нем разные алгоритмы), мож такой? Так это волновой обычный (
Вложения
Тип файла: rar new_pathsearch.rar (216.1 Кбайт, 21 просмотров)
Ответить с цитированием
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение:
Мяфк (24.02.2012)
  #9  
Старый 24.02.2012, 19:04
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Цитата:
Сообщение от Мяфк
Не совсем то, плюс у меня не графа, а массивы, это просто схема выше.


Прочитал на вики, этот алгоритм находит кратчайший путь. А для моего это лишь второстепенная задача, на первом месте стоит вообще нахождение пути с точки а до б.
Админ скинул то что нужно!
Алгоритм Дейсктры ничем практически не будет отличаться от решения, которое понадобится для того что бы найти просто путь, там разница будет только отличаться в подсчете весов...
Ответить с цитированием
  #10  
Старый 24.02.2012, 19:21
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Да нет, всё таки не то. Отличие в том, что путь в алгоритме Дейкстры, всегда находится. А у меня например есть тупики. Если алгоритм зашёл в тупик, то надо возвращаться назад на последнее разветвление и проверять следующие точки разветвления.
Ответить с цитированием
  #11  
Старый 24.02.2012, 19:25
Мяфк Мяфк вне форума
Начинающий
 
Регистрация: 30.05.2010
Сообщения: 102
Репутация: 10
По умолчанию

Цитата:
Сообщение от YVitaliy
Вот есть у меня мой тестовый пример (я тестил на нем разные алгоритмы), мож такой? Так это волновой обычный (
А вот, то что вы скинули, это похоже, то что мне нужно. Спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:47.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025