:: Игры Разума
Оптимальное исследование поверхности марсоходом
sphinx

Сообщений: 32776
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Есть интересная задача. Марсоход должен исследовать поверхность. Исследование заключается в отсылке снимков через каждые K метров, объем отсылаемых снимков Vcur (Мб), общий объем памяти марсохода - V (Тб). Марсоход не должен повторять снимки одного и того же участка местности (цель - исследовать как можно больше).
Составить блок-схему движения.

Я так понимаю, что нужно решить ряд задач:
1) Определение первоначального направления движения. Ну, тут видимо без разницы, можно координаты X и Y определить через RAND().

2) Выбор стратегии/алгоритма обхода территории. Тут можно много придумать, например: 1) Выбрать прямую. 2) Выбрать синусоиду/зигзаг. 3) Выбрать спираль. По логике первые две стратегии не дают общего представления об окружающей поверхности вокруг базы (с которой стартует марсоход). Я бы выбрал движение по спирали. Сначала была идея с заданием угла поворота, там расчеты очередной координаты (X;Y), но есть же уравнение движения по спирали - Архимедова спираль, плоская трансцендентная кривая, уравнение которой в полярных координатах имеет вид: P=k*ф.

где k — смещение точки M по лучу r при повороте на угол, равный одному радиану.

Повороту прямой на 2п соответствует смещение a = |BM| = |MA| = 2*k*п;
Число a — называется «шагом спирали». Уравнение Архимедовой спирали можно переписать так:

P = (a/2п)*ф


3) Как часто марсоход может делать снимки, чтобы рационально использовать память?
Пусть длина пути, пройденного марсоходом до исчерпания памяти, равна L. Тогда общее число возможных кадров: n=L/K.
При условии, что каждый кадр занимает объём Vcur, суммарный объем данных составит:
Vtotal = n*Vcur = (L/K)*Vcur
Но поскольку память ограничена величиной V (Тб), получаем ограничение: (L/K)*Vcur <= V
Отсюда: L <= (V*K)/Vcur, Lmax = (V*K)/Vcur

Оптимальная частота съемки определяется исходя из соотношения количества накопленной информации к объему используемой памяти. Если интервал съемки слишком мал (K меньше оптимального значения), возникает избыточность данных и неэффективное использование памяти. Слишком большой интервал приведет к потере деталей ландшафта.

Следовательно, оптимальным является такое значение интервала K, которое обеспечивает наилучший компромисс между детализацией местности и объемом используемых ресурсов памяти.

Подведём итоговую формулу для оптимальной частоты съёмки: Kopt = SQRT(Vcur/V)*Lmax


------------------
"Veni, vidi, vici!"(с)




Исправлено 4 раз(а). Последнее : sphinx, 03.11.25 20:11
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
pasha_usue
Автор

Сообщений: 3766
Откуда: Е-бург
Дата регистрации: 06.10.2006
У тебя фотографии прямоугольные. Поэтому, прямоугольная спираль будет выгоднее, чем классическая.
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
sphinx

Сообщений: 32776
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Я думал над этим, но до прямоугольной спирали не дошел.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
pasha_usue
Автор

Сообщений: 3766
Откуда: Е-бург
Дата регистрации: 06.10.2006
sphinx
2) Выбор стратегии/алгоритма обхода территории. Тут можно много придумать, например: 1) Выбрать прямую.
Не знаю, кстати, почему ты откидываешь прямую. В условии задачи нет ничего такого, что бы задало преимущество любой сложной конфигурации перед прямой.
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
PaulWist

Сообщений: 14813
Дата регистрации: 01.04.2004
pasha_usue
Не знаю, кстати, почему ты откидываешь прямую. В условии задачи нет ничего такого, что бы задало преимущество любой сложной конфигурации перед прямой.

Саня, логично предположил, что поверхность значительно больше угла съёмки, если ширина поверхности = углу съёмки, то "спираль" вырождается в прямую.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 05.11.25 08:16
Ratings: 0 negative/1 positive
Re: Оптимальное исследование поверхности марсоходом
sphinx

Сообщений: 32776
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Цитата:
Не знаю, кстати, почему ты откидываешь прямую. В условии задачи нет ничего такого, что бы задало преимущество любой сложной конфигурации перед прямой.

Обычно ставится задача не просто поснимать часть планеты, а исследовать конкретную область. А что мы получим за картину, если просто сняли часть прямой?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
pasha_usue
Автор

Сообщений: 3766
Откуда: Е-бург
Дата регистрации: 06.10.2006
sphinx
Цитата:
Не знаю, кстати, почему ты откидываешь прямую. В условии задачи нет ничего такого, что бы задало преимущество любой сложной конфигурации перед прямой.

Обычно ставится задача не просто поснимать часть планеты, а исследовать конкретную область. А что мы получим за картину, если просто сняли часть прямой?
"Обычно" это домысливание условия. Можно домыслить, например так: "снизить энергозатраты марсохода". Тогда прямая получит ещё и преимущество перед другими траекториями. (;Ж
Наверное, надо дополнить условие как-то.
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
sphinx

Сообщений: 32776
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Паша есть условие, просто я его тоже не сфокусировал. Именно площадь. Сказали надо блок0схнму, тра-та-та, с координатами. Тут твой план по прямоугольной спирали в огонь, допилил. А саму блок-схему надо. Все обсудили, даже непростые выкладки привел.

Самому?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Оптимальное исследование поверхности марсоходом
sphinx

Сообщений: 32776
Откуда: Екатеринбург
Дата регистрации: 22.11.2006
Давайте рассуждать. (Я буду участвовать(с))
На условном языке...

V=1ТБ
k= 50М

Из точки (X0;Y0)

{X1;Y1} = ВЫБОР_НАПРАВЛЕНИЯ // RAND()
ДВИЖЕНИЕ_НАЧ( X1, Y1, К) // текущую точку не вычисляем, ее можно просто сохранить
X = X1
Y = Y1

ПОКА НЕ Vcur <=V
ДВИЖЕМСЯ(kA) А=90, так?
Не, тут угол не так умножается, не могу сообразить, как шаг нарастить. При проходе К метров и повороте угла на 90.
Пока не могу понять. Но туплю, видимо. )))

КОНЕЦ ЦИКЛА


Так, тут увидел. НЕ vcur <= V (!) А сумма на каждой точке.

Начинаешь рыть, рассуждать - понятнее.
Ну. это кому интересно, нет прикладного применения.

Vsum = 0

...

Vsum = Vsum+Vcur...
На каждой точке. Так? Тогда уже так: Vsum <= V

Так, и это пропишем. Но дальше пока застрял. И выпил немного. Надо к понедельнику закрыть вопрос.
Буду рад, если, коллеги скажут, а чо тут алгортмизировать, просто. Нет сомнений, пока туплю


------------------
"Veni, vidi, vici!"(с)




Исправлено 4 раз(а). Последнее : sphinx, 08.11.25 05:11
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 5 (Гостей: 5)

© 2000-2025 Fox Club 
Яндекс.Метрика