|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Алгоритм(ы) движения(наикротчайшего пути) |
|
*Теория* | Алгоритм(ы) движения(наикротчайшего пути)
|
Ветеран Сообщения: 878 |
Алгоритм стар как мир(IT)... скорее всего.
Есть 1 объект и одно поле. на поле постоянно перемещающиеся преграды. Объект должен перейти из одной точки в другую по наикротчайшему пути, обходя преграды и повозможности прогназирую, где они окажутся. Как я знаю, решается это путем 2-мерной матрицы. *******x * * * y на которой отмечаются все материальные объекты поля. Интересно есть ли бругие алгоритмы?... Желательно в реальных координатах(ну т.е. практическое применение не только по двигающемуся "0" в матрице). уравнение прямой? и прасчет каждой последующей пары (X,Y), с проверкой на существование преграды? |
|
Отправлено: 10:07, 11-09-2005 |
Ветеран Сообщения: 878
|
Профиль | Сайт | Отправить PM | Цитировать ![]() никто не знает?..... |
Отправлено: 19:08, 13-09-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 117
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 08:09, 14-09-2005 | #3 |
Ветеран Сообщения: 878
|
Профиль | Сайт | Отправить PM | Цитировать SergeCpp
ок, пороюсь но если все таки кто-то встречался с подобной "проблеммой" - поделитесь опытом |
Отправлено: 18:53, 14-09-2005 | #4 |
Ночной странник Сообщения: 4050
|
Профиль | Сайт | Отправить PM | Цитировать Xcode
я занимался отлько алгоритмом с двух мерным массивом |
|
------- Отправлено: 23:24, 15-09-2005 | #5 |
Ветеран Сообщения: 878
|
Профиль | Сайт | Отправить PM | Цитировать Vlad Drakula
томеж волновым?... дело в том, что хотелось бы узнать есть ли бругие алгоритмы, преспособленные для реальных координат? конечно же, переделать волновой в реальные координаты несложно, но будет бооольшая погрешность. а делать большой массив 640х480 для поля 640px - 480px - имхо не рационально.... |
Отправлено: 08:55, 17-09-2005 | #6 |
Старожил Сообщения: 401
|
Профиль | Отправить PM | Цитировать Xcode
Не знаю, насколько полезна информация в плане задачи для перемещающихся препятствий, но в бытность свою изучения САПР/ТАПР, наряду с волновыми учили т.н. лучевой алгоритм трассировки печатных плат. (Может название метода поможет?) Если учебник или конспекты найду... (хотя 15 лет уже прошло ![]() Цитата:
Примерный алгоритм (к сожалению, без мат. аппарата): 1) Строим уравнение прямой (отрезка) от начального пункта (А) до конечного (В) 2) проверяем преграды(учитывая их размеры?) на предмет попадания на эту прямую. 3) Если преграда на прямой, разбиваем отрезок на 2 - до преграды (А-С), и после (С-В). 4) Пытаемся преграду обойти следующим способом: сдвигаем точку С в сторону по перпендикуляру к изначальному отрезку (А-В) на расстояние примерно равное размеру преграды. (пробуем оба варианта, и "вправо" и "влево"). 5) Далее каждый отрезок обрабатываем отдельно. см. п. 1. (рекурсией, наверное удобно). Цитата:
![]() В свое время при реализации волнового алгоритма на БК0010 решили проблему недостатка памяти, храня как саму матрицу с преградами, так и волны в момент прохождения, в экранной памяти цветами точек. Насчет прогнозирования преград - в руки ко мне попадал учебник по что-то типа "военной теории вероятности": поиск/преследование подвижных/неподвижных целей с помощью подвижных/неподвижных наблюдателей/преследователей, проходов в минных полях, уход от поиска и т.п. |
||
------- Отправлено: 14:02, 17-09-2005 | #7 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Можно подойти к вопросу чисто математически:
1. Тот, кто ставит преграды, пытается вам навредить. Это называется антогонистической игрой (полный пессимизм). Решается так: перебираете все стратегии соперника и ваши ответы и ставится им оценка. Всё собирается в матрицу оценок, затем выбирается "седловая точка" задачи. (Вроде по вашим стратегиям минимум по сопернику максимум) Как точно не помню, если нужно, посмотрю в конспекте. Если такая точка есть, вы - победитель (у вас есть оптимальная стратегия). Если нет (значит нет решения) - нужно решать другим методом. 2. Тот, кто ставит преграды, либо пофигист, либо пытается вас запутать (статистическая модель) Это называется неантогонистической игрой. Каждому варианту соперника ставите вероятность, оцениваете свои стратегии. Дальше - несколько вариантов. 2.1. критерий риска. Методом 1 решается задача минимизации риска проигрыша (используется на бирже) 2.2. критерий выигрыша. Небольшая вариация метода 1. Любая задача имеет решение методом 2. Если нужно, я посмотрю, в какой книге это всё написано. 3. Смешанный способ - самый привлекательный. Задаётся коэффициент оптимизма и решается способом 2. |
Отправлено: 12:48, 03-10-2005 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Автоматизация клика и движения мышки | Rustem | Скриптовые языки администрирования Windows | 0 | 25-08-2009 14:42 | |
Debian/Ubuntu - эмулятор движения и кликов мыши | SERZHant1992 | Общий по Linux | 0 | 28-06-2009 22:30 | |
ищу прогу для вебкамеры с детектором движения | zl3p | Программное обеспечение Windows | 1 | 24-06-2007 01:11 | |
.NET - *Теория*(VB.NET || C#.net ) Нужен алгоритм для мини - игры | ssdm | Программирование и базы данных | 11 | 17-05-2007 02:12 | |
Как исправить дерганные движения в видео. | XPurple | Видео и аудио: обработка и кодирование | 3 | 06-03-2006 06:26 |
|