Алгоритмы "убегания"

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Алгоритмы "убегания"

Сообщение uhm » 24.04.2006 (Пн) 10:28

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

ЗЫ Если кому-то интересно, могу дать достаточно точную постановку задачи, а не "в общих чертах", как выше.
Быть... или не быть. Вот. В чём вопрос?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.04.2006 (Пн) 10:30

Насколько быстрее?
Потому что если "охотники" окружают жертву и половину периметра "окружения" пройдут быстрее, чем жертва пройдет "радиус окружения", то не убежать жертве.
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 10:37

Я для того, чтобы было понятно, о чем вообще речь, сказал, что охотники могут жертву окружать. В исходной задаче расстановка охотников рэндомная, и абсолютно понятно, что убежать жертва может не всегда. Просто интерес представляет только тот случай, когда жертва в окружении - в остальных случаях можно просто убежать в сторону от всех охотников сразу.

Насколько быстрее - параметр. В худшем случае скорость одинаковая, нормальный случай - вдвое быстрее.

ЗЫ Забыл сказать, что охотники всегда бегут строго в сторону текущей позиции жертвы, что делает их поведение абсолютно прогнозируемым.
Быть... или не быть. Вот. В чём вопрос?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.04.2006 (Пн) 10:46

В сторону, противоположную градиенту плотности охотников на поле?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 10:49

:shock:

А можно еще раз, но словами попроще? :lol:

На самом деле, поясни, пожалуйста, что такое плотность в твоем понимании?
Быть... или не быть. Вот. В чём вопрос?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.04.2006 (Пн) 10:51

Если плоскость в клеточку и направлений всего 8, то вобщем-то нужно просто сделать перебор. До 5 ходов тогда в принципе вполне просто. Потом оценить срендюю удаленность и расстояние до ближайшего.

Пока не критично для жизни - следовать средней удаленности, когда критично - расстоянию до ближайшего. Ну и вперед. Я бы так делал. Можно конечно попробовать порешать красиво и на бумажке, но лень.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.04.2006 (Пн) 10:53

uhm писал(а)::shock:

А можно еще раз, но словами попроще? :lol:

На самом деле, поясни, пожалуйста, что такое плотность в твоем понимании?

Я так понимаю закрасить плоскость складывающимся градиентом с центрами - охотниками. И бежать там где цвет слабее всего.

Вот только в случае полного окружения жертва не пойдет на прорыв, а будет метаться пока не сожрут. Какую-то попытку долговременного планирования тоже надо.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 11:24

GAGArin, мне нравится идея с перебором, она мне как-то в голову не пришла...

Не знаю, правда, насколько она реализуется на практике, поскольку реальная задачка не совсем та же, что модель, которую я описал, но я попробую :)
Быть... или не быть. Вот. В чём вопрос?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.04.2006 (Пн) 11:56

uhm писал(а)::shock:

А можно еще раз, но словами попроще? :lol:

На самом деле, поясни, пожалуйста, что такое плотность в твоем понимании?


RTFM! :)
Учим теорию поля.
Если сказать проще, то надо связать с каждым охотником определенное число - степень его опасности. Скажем, 1/L, где L - расстояние до охотника. Затем строим векторы длиной 1/L, направленные от каждого охотника к жертве. Переносим их в точку, где находится жертва. Складываем вместе. Нормируем. Получаем единичный вектор направления, куда надо двигаться.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 24.04.2006 (Пн) 11:58

"Надо же, агроном!" :lol:

Теперь понял. :) Видимо, тоже попробую.
Быть... или не быть. Вот. В чём вопрос?

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 29.04.2006 (Сб) 9:17

Вообще проглядел задачку еще раз. Делать перебор направлений не особо хорошо. Реально для полной свободы нам нужно оставить всех охотников в секторе не большем pi позади. Т.е. чтобы через каких-то двух охотников можно было провести линию делящую плоскость на две полуплоскости. В одной ты, в другой они.

В итоге если это условие не выполнено, то нужно "прорываться" иначе просто убегать. Прорываться нужно по центру отрезка на концах которого пара охотников. Вот по этим прорывам и надо делать перебор. Т.е. делим всех охотников на пары всеми способами и пытаемся пробежать между каждой парой. Если пробежалось, то смотрим убежали мы окончательно или нет. Если нет, то снова перебираем все возможные пробежки. Отсеиваем по времени достижения полного убегания. А дальше просто идем в отрыв.

Если было необходимо два и более прорыва, то нужно просчитать начальную и конечную точку и бежать сразу к конечной. Это тоже не идеальный маршрут, но мне кажется он лучше ломаной. Хотя тут я абсолютно не уверен.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 02.05.2006 (Вт) 9:13

Про линию и полуплоскости - это я уже догадался, у меня именно такой критерий успешного "убегания" и был - дальше можно бежать в сторону "от всех охотников". Идея с перебором мне понравилась больше всего, потому что обычно охотники находятся на расстоянии в пределах 6-7 клеток от жертвы. Кроме того, на плоскости могут быть препятствия (не сказал об этом раньше, сорри), с точки зрения большинства алгоритмов, это усложняет дело, а с точки зрения перебора - как раз упрощает.

Спасибо всем за идеи! Буду потихонечку пробовать...
Быть... или не быть. Вот. В чём вопрос?


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 104

    TopList  
cron