Неуловимый Космический Пират: спрячься в холодильнике от копов, победи в войне дроидов и плюнь Саурону в глаз

habr.png

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

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

Не буду говорить, что такая система невозможна. Напротив, мы рассмотрим — как ее сделать.

Немного о механике небесных тел


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

Почему тогда астрономы Нила Деграсса не смогли правильно рассчитать траекторию?

Эта система предназначена для быстрого грубого расчета положения 2-х тел со взаимным притяжением.

Но чтобы рассчитать положение 3-х тел, понадобится в единицу времени, кадр за кадром, каждое тело притянуть к каждому телу.

Для 2-х тел надо 2 раза рассчитать притяжение, для 3-х тел — 6 раз, для 4-х — 12 раз.
В единицу времени надо совершить (N-1) * N притяжений, где N — количество тел в системе.

Если бы в нашей системе было всего 10 000 объектов, надо было бы сделать за кадр 99 990 000 вычислений — и это при условии, что у нас будет ньютоновское пространство! А у нас пространство может искажаться, при том что мы не учитываем гравитационные приливы, солнечный ветер, форму астероидов, светимость и прочее.

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

Стоит учитывать, что вы вряд ли догадаетесь как распараллелить данные вычисления — нужно их производить последовательно, с использованием результатов предыдущих вычислений!

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

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

© Habrahabr.ru