Вступление
Спасибо Игорю Катричеку за прекрасный вопрос! На форуме, посвященном проекционному моделированию, он задал интересный вопрос:
Если я буду смотреть на вал двигателя, и его повороты сольются для меня в единое целое, то это будет функция. Если я буду отсчитывать каждый поворот вала на 90 градусов или другой угол, то это будет операция. А если я буду следить за положением точки на валу, например, с целью автоматического регулирования её координат, то что это? Например, на валу радиолокационная антенна. Операций нет, так как нет начала и конца движения, повороты вала не дискретны, требуемое положение антенны постоянно меняется оператором, а фактическое меняется от ветра. Функций тоже нет, так как повороты вала не сливаются в единое вращение. Что это?
Вопрос настолько интересный, что я решил посвятить ему отдельную статью. Это поможет на конкретном примере разобраться с определениями проекционного моделирования. Заодно, я расскажу, какой у меня запрос к математикам.
Постановка задачи
Итак, напомню постулат Что скрыто за термином моделирование: мы не знаем, как устроен мир, но знаем, как мы его интерпретируем. Это значит, что, если я вижу, как самолет летит, то я в реальности не регистрирую КАЖДОЕ положение самолета в пространстве. Я регистрирую лишь НЕСКОЛЬКО положений, которые могу интерпретировать как непрерывное движение. Было ли движение, было ли оно непрерывным, мы не знаем. Нам дано:
- Несколько положений самолета в пространстве-времени, измеренных с некоторой погрешностью.
- Гипотеза о том, что самолет двигался непрерывно во времени.
Требуется:
- Для конкретного момента времени дать оценку возможных положений самолета. А в идеале, дать алгоритм для получения таких оценок для любого момента времени с указанием их вероятности.
Чувствуете, как на самом деле звучит постановка задачи? Вы понимаете, что это не совсем та постановка, к которой мы привыкли в школе? Требуется целый год на то, чтобы студент первого курса забыл про школьные задачи и научился бы ставить реальные задачи. И то, не всегда это удается. Я регулярно наблюдаю трудность такого перехода.
Вернемся к мотору. Дано:
- Мы имеем координаты вала, измеренные в какие-то моменты времени с какой-то точностью. Допустим, что каждое измерение в рамках решаемой задачи длилось настолько мало, что его можно считать не операцией по измерению, а событием. Напомню, что событие – это операция, длительностью которой можно пренебречь. Из этой последовательности событий можно построить сценарий: событие1, событие 2, событие3 и т.д. Напомню, что сценарий – это множество операций, в частности, множество событий. Итак, то, что мы имеем на входе, это сценарий.
Требуется:
- Для любого момента времени оценить возможные положения вала и их вероятность.
Решение задачи
Для решения этой задачи мы применяем аппроксимацию, например, в виде функциональной зависимости. Теперь кто бы нас не попросил, мы сможем создать модель события, относящегося к любому моменту времени, и для этого события указать возможные положения вала и предполагаемую вероятность такого положения, исходя из гипотезы, что вращение существует. Поэтому наша модель будет, с одной стороны, конечной, потому что точек ограниченное количество, а, с другой стороны, расширяемой, чтобы мы могли получить новые события, если нам потребуется. Конечная модель описана при помощи сценария, а расширения мы получаем в виде гипотез – мы предполагаем, что могли случиться такие события в такое время с такой вероятностью.
Теперь про определение функции. Напомню определение функции: функция – это конструкт из бесконечного числа операций. Поскольку событие – частный случай операции, то можно сказать, что часть функций – это конструкты из бесконечного количества событий. Понятно, что реальных событий всегда конечное множество. Однако я намеренно употребил термин бесконечность. В данном контексте бесконечность отражает наше восприятие функции. Мы воспринимаем ее как бесконечный поток непрерывных событий. В прошлой статье Две компетенции аналитика я показал, что для этого часто надо отрешиться от антропоморфных представлений. Так мы и делаем, но не всегда это осознаем. Из тезиса о бесконечности операций следует тезис, что описание функции возможно ТОЛЬКО описанием классов операций (событий), но не операций (событий) классов.
Пора вспомнить про математиков. Они используют аксиоматику, в которой точки являются последней неделимой частью материи, из которых путем умножения на континуум получаются куски материи. Понятно, что эта аксиоматика плохо подходит под наш кейс, в котором точка – это материальное тело, размерами которого в рамках решаемой задачи мы пренебрегаем. Но в рамках другой задачи мы можем вспомнить, что это тело – материальное и имеет вполне себе конечные размеры.
Точно так же с событиями – мы считаем их операциями, длительностью которых в рамках решаемой задачи мы пренебрегаем. Но в рамках другой задачи пренебречь их длительностью уже нельзя. Поэтому объяснение парадокса Зенона становится таким: детализируя события, рано или поздно мы приходим к такому положению вещей, при котором пренебречь длительностью события становится невозможно – у нас нет средств регистрации столь быстрых изменений. И тогда далее делить время на части нам не удастся.
В связи с этим, все объекты, с которыми мы имеем дело, конечны. А вот аксиоматики для этого пока нет. Боюсь, что эту аксиоматику придется придумывать самим.
Выводы
Итак, если мы имеем последовательность событий – это сценарий, если класс событий, то это – функция, если аппроксимацию событий, то это ни сценарий, ни функция – это метод построения моделей предполагаемых нами событий.
Автор: Марк Мельник