Проекционное моделирование. Тезисы для начинающих

habr.png

Введение


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


  1. Модели должны быть масштабируемы. Это значит, что любой объект может стать частью синтезированного объекта (результат процесса синтеза), или быть разделенным на части (результат процесса анализа). При этом синтез и анализ можно делать разными способами. Это значит, что один и тот же объект может стать частью разных конструкций, или объект может быть поделен на части множеством способов.
  2. Один и тот же объект может быть назван разными субъектами по-разному. ИС должна поддерживать возможность моделировать представлений воображаемого или реального мира с разных точек зрения.
  3. Модели должны удовлетворять условию расширяемости. Это значит, что любая модель может быть продолжена тем же, или другим субъектом в любую сторону с учетом смены точки зрения.
  4. Модели должны удовлетворять принципу антропоцентричности. То есть, нельзя придумывать представления, отличные от тех, к которым привык человек. То есть, мы не рассматриваем представления, созданные искусственным интеллектом и языки, созданные им для описания этих представлений.


Для создания такой информационной системы нам потребуется свод знаний, про который я собираюсь рассказать в своих статьях. Я называю этот свод проекционным моделированием, потому что метод, изложенный в нем, очень напоминает начертательную геометрию. Так же как в начертательной геометрии делаются проекции на три ортогональные плоскости, так и в проекционном моделировании мы делаем проекции. Но поскольку наш мир четырехмерный, то проекции 4-Д объектов делаются на время и на пространство. При этом можно делать и другие проекции, но мы рассмотрим лишь те, которые удовлетворяют принципу антропоцентричности.


Краткое описание терминов


Для того, чтобы понять, какие проекции мы делаем, рассмотрим следующую классификацию:


  1. Объект — это представление о проекции 4-Д объема на пространство без знания о его структуре.
  2. Структура — это представление о проекции 4-Д объема на пространство как о «конечном» множестве объектов или веществ.
  3. Вещество — это представление о проекции 4-Д объема на пространство как о «бесконечном» множестве объектов, веществ или структур.


Поясню на примерах. Объект — это поверхность твердого тела. Оно может быть рыхлым, но мы ничего не знаем о его строении. Например, булыжник. Структура — это множество, состоящее из конечного числа элементов. Например, самолет состоит из крыльев хвоста и фюзеляжа. Вещество — это описание строения. Например, «кусок резины» — это описание в виде «вещество в виде множества веществ» (то есть, вещество состоит из вещества), «кристалл состоит из атомов» — это описание в виде «вещество состоит из множества объектов», «вода в стакане состоит из молекул, каждая из которых состоит из двух атомов водорода и одного атома кислорода» — это описание в виде «вещество состоит из множества структур».
Структура может включать в себя как объекты, так и вещества.
Объект, чьим размером в рамках решаемой задачи можно пренебречь, называется материальной точкой.


Попробуем сделать то же самое с проекциями 4-Д объемов на время. Для этого рассмотрим классификацию:


  1. Операция — это представление о проекции 4-Д объема на время как об интервале времени, строение которого нам неизвестно.
  2. Сценарий — это представление о проекции 4-Д объема на время как о «конечном» числе операций и функций.
  3. Функция — это представление о проекции 4-Д объема на время как о «бесконечном» числе операций, функций или сценариев.


Поясню на примерах. Операция — это просто интервал времени. Сценарий — это множество операций, которые показывают, как происходят изменения: меняются состояния объектов, появляются новые, уничтожаются старые. Функция — это описание строения интервала времени. Функция вращения — это функция, состоящая из функций. Функция заключения договоров — это функция, состоящая из операций. Функция постройки самолетов, состоящая из последовательностей операций «закупка запчастей — сборка самолета — отгрузка самолета», — это функция, состоящая из сценариев.
Операция, длительностью которой можно пренебречь, называется событием.


Трудности языка


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


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

© Habrahabr.ru