Конкретный алгоритм пути с учетом скорости - PullRequest
2 голосов
/ 07 февраля 2010

Мне нужно создать алгоритм, в котором "транспортное средство" покрывает 1262 м x 1262 м область с 20% перекрытием между каждой "ногой". Ширина каждой ноги составляет 103 м , что, по моим расчетам, дает 16 "ножек ", необходимых для покрытия этой области. В конце каждого этапа автомобиль совершает поворот 180 градусов и завершает следующий этап поиска. Транспортное средство движется с постоянной скоростью 23 м / с

Теперь причина, по которой я спрашиваю об этом, - это некоторые проблемы:

  1. Как лучше всего обращаться «положение» транспортного средства в отношение к скорости? Сделать 1 вторые "снимки" и просто переместите транспортное средство 23 метра? (Это кажется добрым из шероховатости по краям) ..

  2. Как мне справиться с поворотами на конец каждой ноги по отношению к скорость

  3. Должен ли я предварительно распределить поиск параметры ноги (IE найти границы на каждой ноге во время инициализации) или динамически рассчитать их в конец каждого этапа поиска?

  4. Я буду в конце концов реализуя этот алгоритм в Ява ... Какая Ява функции / библиотеки помогут мне со временем, математикой и т. д.?

  5. Что еще мне нужно учитывать?

EDIT

(отвечая на один из ответов)

По сути, во всей области поиска будут случайно размещаться "объекты", которые нужно найти ... Я собирался заняться этой проблемой, как только машина будет двигаться по правильному пути и охватывать эту область. Транспортное средство действительно покрывает область, когда оно поворачивает .. Минимальный радиус поворота составляет 12 метров. Я только собирался сделать так, чтобы он поворачивался в конце каждого этапа поиска и выстраивался в очередь для следующего этапа

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

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

Другая идея состоит в том, чтобы изучить использование «кривых заполнения пространства». Некоторые работы Бартольди можно найти здесь .

0 голосов
/ 07 февраля 2010

Несмотря на то, что я не совсем понимаю основную идею вашего описания, я пытаюсь дать некоторые ответы.

  1. Делайте «снимки» как можно меньше. Остановите время между расчетами, а затем переместите свое транспортное средство в соответствии со временем. Пример кода ниже.

  2. На сколько градусов ваш автомобиль разворачивается в секунду?

  3. Если они не изменятся, я бы вычислил их в начале.

  4. Чистой Java SE должно хватить для ваших нужд. Проверьте API для java.lang.Math и java.lang.System.


while(true) {
     final long time = System.currentTimeMillis();
     doSomeCalculations();
     doSomethingMore();
     long passedTime = System.currentTimeMillis() - time;
     vehicle.move(26.0 / 1000.0 * passedTime);
}
...