Pull to refresh

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

Reading time7 min
Views3.7K

Любая модель обладает ограниченной точностью. Чем более точную модель надо построить, тем больше информации для этого придется хранить. Если есть возможность свернуть массив данных по какому-то из критериев, то такая свертка позволяет резко сократить объем хранимой информации. Однако, такая свертка не моделируется штатными способами моделирования, потому что требует моделирования высказываний одновременно и относительно множеств объектов, а не относительно объектов этих множеств. Фактически, нам нужен инструмент для моделирования как предикатов первого порядка, так и предикатов второго порядка.


Поясню на самом распространенном примере. Когда мы пишем, что станок был выпущен в 1939 году, а утилизирован в 1990, мы имеем ввиду, что станок существовал на протяжении всего указанного периода и в любой интервал времени между указанными датами. Альтернативой этому высказыванию было бы хранение информации о всех возможных интервалах, в течение которых станок был признан существующим. Но все возможные интервалы времени на протяжении этого срока даже с шагом дискретизации в сутки – это огромный массив данных.


Пользоваться этим массивом данных так же неудобно, как и его хранить. Строить запросы к этому массиву данных – тоже неудобно. Например, у нас есть запись о том, что станок существовал с12 июня по 17 июня и находился в этот период в машинном отделении ГЭС. Но на основе этой записи мы ничего не можем сказать о существовании и нахождении станка в период с 13 июня по 15 июня, потому что при таком подходе к моделированию для ответа на это вопрос нам нужна отдельная соответствующая запись.


Чтобы не хранить каждый интервал отдельно, сократить объем хранимой информации и время на обработку запросов мы прибегаем к моделированию множества интервалов. Мы говорим, что в любой интервал времени между 1939 годом и 1990 годом станок существовал. Правда, при этом мы потеряли информацию о его местоположении, но сократили объем хранимой информации и увеличили скорость доступа к этой информации в миллионы раз. Формально эта информация записывается так: для любого элемента множества временных интервалов с 1939 года по 1990 верно следующее: в течение этого интервала времени существовал указанный станок. Это и есть моделирование в предикатах второго порядка. Мы записали свое знание в виде знания о множестве объектов: множестве всех возможных интервалов времени с 1939 года по 1990 год.


Можно ли интерпретировать запись о том, что станок существует с 1939 по 1990 год как утверждение не о множестве, а как утверждение об интервале времени? Да, можно. Но с такой трактовкой нельзя получить ответ на вопрос: существовал ли станок с 1956 по 1958 год? Такой способ моделирования не используется.


Мы видим, что одни и те же слова имеют совершенно разный смысл в зависимости от их трактовки. Если мы напишем, что станок существовал с 1939 года по 1990, то эти слова можно трактовать двумя разными способами:


  • как утверждение относительно всех интервалов, которые могут быть получены из интервала с 1939 по 1990 года.
  • как утверждение относительно интервала с 1939 по 1990.

Беда нашего языка в том, что невозможно разделить эти две разные трактовки одних и тех же слов. Это заставляет нас думать о том, что, указывая время начала и время завершения какой-то операции, мы моделируем интервал, а не множество всех его частей. Это приводит к неудобствам, которые мы испытываем при проектировании систем. Вы заметили, что работа с датами в запросах, которые мы строим, отличается от работы с данными другого типа? Вы задумывались: почему? Ответ в том, что, указывая интервал времени, мы моделируем утверждение относительно множества интервалов, которые можно выделить из этого интервала, а не относительно указанного интервала. Поскольку в рамках ООП, или иных аналогичных стандартов моделирования нет возможности моделировать предикаты второго порядка, становится невозможным моделирование классов временных интервалов штатным способом.


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


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


  • то ли речь идет об объекте.
  • то ли речь идет о веществе.

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


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


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


Вернемся к понятию регистрация. Я писал ранее, что под регистрацией состояния объекта может пониматься:


  • разовая регистрация состояния объекта (потока, среды)
  • множество регистраций похожих состояний.

При этом наше сознание не осознает разовую регистрацию. Когда ему сообщают, что в 12-00 температура воздуха была 25 градусов, сознание может сохранить эту информацию, но представить себе не может. Пользуется опытом, который говорит, что температура воздуха не могла измениться быстро, сознание предлагает свою версию, в которой представлена целая история с какого-то момента до регистрации до какого-то момента после, например, с 11-30 до 12-30. На протяжении всего этого интервала времени сознание предлагает считать температуру воздуха неизменной и равной 25 градусам. Более того, не просто на протяжении всего этого интервала, но и на протяжении любого диапазона из указанного интервала! То же происходит, когда мы видим старое здание. Мы не просто регистрируем факт того, что оно существует в момент регистрации, мы представляем его существование в течении длительного времени до этого и некоторое время после. И опять – не просто в течении этого временного интервала, а в течении любого из временных диапазонов внутри представленного нами интервала времени!


Когда же под регистрацией состояния объекта понимается множество регистраций, наше сознание продлевает гипотезу за пределы границ, которые были построены на основе одной регистрации. Например, если сообщить, что в 12-00, в 13-00 и в 14-00 температура воздуха была одинаковой и равной 25 градусам, то границы временного интервала, в течении которого мы считаем температуру неизменной, расширяются с 12-30 до 14-30.


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


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


Приведу пример. Допустим, что мы знаем о том, что Иванов вышел из пункта А в 11-00 и пришел в пункт Б в 12-00, передвигаясь пешком. Чтобы представить себе это передвижение, можно представить последовательность мгновений, которые с достаточной степенью точности передадут это передвижение. Поскольку мгновений бесконечное множество, для такого способа хранения информации требуется бесконечно большой объем памяти. Однако, как мы видим, весь объем хранимой информации умещается в несколько слов и ссылку на тип передвижения. Этого достаточно, чтобы представить себе любой отрезок пути Иванова. Для этого мы выбираем любой интервал времени между 11-00 и 12-00 и заполняем его многократно растиражированным типовым движением, которое хранится у нас в памяти. Конечно, это — лишь гипотеза, но она достаточно близка к тому, чтобы предсказать нужные нам последствия. Например, после того, как мы встретим Иванова, мы можем спросить его: не устал ли он столько шагать? Все методы сжатия информации основаны на обобщениях подобного рода.


Таким образом, добавим к двум трактовкам термина регистрация новую трактовку. Под регистрацией состояния объекта в определенный интервал времени может пониматься:


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

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


Так же, как регистрацию состояния, состояние объекта в течении определенного интервала времени тоже можно трактовать тремя разными способами:


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

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

Tags:
Hubs:
-12
Comments142

Articles

Change theme settings