Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Алгоритм(ы) движения(наикротчайшего пути)

Ответить
Настройки темы
*Теория* | Алгоритм(ы) движения(наикротчайшего пути)

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Алгоритм стар как мир(IT)... скорее всего.
Есть 1 объект и одно поле.
на поле постоянно перемещающиеся преграды.
Объект должен перейти из одной точки в другую по наикротчайшему пути, обходя преграды и повозможности прогназирую, где они окажутся.

Как я знаю, решается это путем 2-мерной матрицы.

*******x
*
*
*
y

на которой отмечаются все материальные объекты поля.

Интересно есть ли бругие алгоритмы?... Желательно в реальных координатах(ну т.е. практическое применение не только по двигающемуся "0" в матрице).

уравнение прямой? и прасчет каждой последующей пары (X,Y), с проверкой на существование преграды?

Отправлено: 10:07, 11-09-2005

 

Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать



никто не знает?.....

Отправлено: 19:08, 13-09-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 117
Благодарности: 1

Профиль | Сайт | Отправить PM | Цитировать


http://www.kamlit.ru/docs/aloritms/algolist.manual.ru/

Отправлено: 08:09, 14-09-2005 | #3


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


SergeCpp
ок, пороюсь
но если все таки кто-то встречался с подобной "проблеммой" - поделитесь опытом

Отправлено: 18:53, 14-09-2005 | #4


Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


Xcode
я занимался отлько алгоритмом с двух мерным массивом

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 23:24, 15-09-2005 | #5


Аватара для XCodeR

Ветеран


Сообщения: 878
Благодарности: 53

Профиль | Сайт | Отправить PM | Цитировать


Vlad Drakula
томеж волновым?...
дело в том, что хотелось бы узнать есть ли бругие алгоритмы, преспособленные для реальных координат?
конечно же, переделать волновой в реальные координаты несложно, но будет бооольшая погрешность.
а делать большой массив 640х480 для поля 640px - 480px - имхо не рационально....

Отправлено: 08:55, 17-09-2005 | #6


Старожил


Сообщения: 401
Благодарности: 10

Профиль | Отправить PM | Цитировать


Xcode
Не знаю, насколько полезна информация в плане задачи для перемещающихся препятствий, но в бытность свою изучения САПР/ТАПР, наряду с волновыми учили т.н. лучевой алгоритм трассировки печатных плат. (Может название метода поможет?)
Если учебник или конспекты найду... (хотя 15 лет уже прошло )


Цитата:
уравнение прямой? и прасчет каждой последующей пары (X,Y), с проверкой на существование преграды?
Наверное, да. А зачем пробегать(перебирать) всю прямую? Это у вас имхо и получится а-ля волновой.
Примерный алгоритм (к сожалению, без мат. аппарата):
1) Строим уравнение прямой (отрезка) от начального пункта (А) до конечного (В)
2) проверяем преграды(учитывая их размеры?) на предмет попадания на эту прямую.
3) Если преграда на прямой, разбиваем отрезок на 2 - до преграды (А-С), и после (С-В).
4) Пытаемся преграду обойти следующим способом: сдвигаем точку С в сторону по перпендикуляру к изначальному отрезку (А-В) на расстояние примерно равное размеру преграды. (пробуем оба варианта, и "вправо" и "влево").
5) Далее каждый отрезок обрабатываем отдельно. см. п. 1. (рекурсией, наверное удобно).

Цитата:
а делать большой массив 640х480 для поля 640px - 480px - имхо не рационально....
Достаточно по 2 бита на точку (4 состояния: пусто, преграда, волна четная, волна нечетная). Если жалко памяти , создаете битовое поле (массив будет в 4 раза меньше).
В свое время при реализации волнового алгоритма на БК0010 решили проблему недостатка памяти, храня как саму матрицу с преградами, так и волны в момент прохождения, в экранной памяти цветами точек.

Насчет прогнозирования преград - в руки ко мне попадал учебник по что-то типа "военной теории вероятности": поиск/преследование подвижных/неподвижных целей с помощью подвижных/неподвижных наблюдателей/преследователей, проходов в минных полях, уход от поиска и т.п.

-------
Успехов.


Отправлено: 14:02, 17-09-2005 | #7

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Можно подойти к вопросу чисто математически:
1. Тот, кто ставит преграды, пытается вам навредить.
Это называется антогонистической игрой (полный пессимизм).
Решается так: перебираете все стратегии соперника и ваши ответы и ставится им оценка.
Всё собирается в матрицу оценок, затем выбирается "седловая точка" задачи. (Вроде по вашим стратегиям минимум по сопернику максимум) Как точно не помню,
если нужно, посмотрю в конспекте. Если такая точка есть, вы - победитель (у вас есть оптимальная стратегия). Если нет (значит нет решения) - нужно решать другим методом.
2. Тот, кто ставит преграды, либо пофигист, либо пытается вас запутать (статистическая модель)
Это называется неантогонистической игрой. Каждому варианту соперника ставите вероятность,
оцениваете свои стратегии. Дальше - несколько вариантов.
2.1. критерий риска. Методом 1 решается задача минимизации риска проигрыша (используется на бирже)
2.2. критерий выигрыша. Небольшая вариация метода 1.
Любая задача имеет решение методом 2. Если нужно, я посмотрю, в какой книге это всё написано.
3. Смешанный способ - самый привлекательный. Задаётся коэффициент оптимизма и решается способом 2.

Отправлено: 12:48, 03-10-2005 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » *Теория* | Алгоритм(ы) движения(наикротчайшего пути)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Автоматизация клика и движения мышки 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




 
Переход