|
| 1 | +\section{Композиция} |
| 2 | + |
| 3 | +\label{sec:composition} |
| 4 | + |
| 5 | +Ядро строится вокруг трёх компонент: \textit{Distributions}, \textit{Families} и \textit{Transformations}. |
| 6 | +Они объединены общей идеей: все вычисления характеристик случайных величин происходят по единым контрактам, а сами компоненты остаются слабо связаны и расширяемы. |
| 7 | + |
| 8 | +\subsection{Роли компонент} |
| 9 | + |
| 10 | +\paragraph{Families.} |
| 11 | +Families отвечает за параметризацию и рождение конкретных распределений. |
| 12 | +Под параметризацией понимается множество имён параметров, а под параметрами --- отображение этих имён в значения. |
| 13 | +Поддерживается несколько параметризаций для одной и той же семьи, однако все вычисления выполняются через базовую параметризацию. |
| 14 | +Перед любыми вычислениями параметры приводятся к базовой форме, чтобы остальные компоненты работали с единым представлением. |
| 15 | +Families сохраняет смысловую целостность параметров, их допустимость и область определения будущего распределения. |
| 16 | + |
| 17 | +\paragraph{Distributions.} |
| 18 | +Distributions --- единая поверхность доступа к характеристикам распределений и точка их композиции. |
| 19 | +Компонента материализует распределение, зная его семью и параметры, и предоставляет согласованный интерфейс к характеристикам: функциям распределения, плотности, квантилям, моментам и т.\,д. |
| 20 | +Distributions не решает, \emph{как} именно получена та или иная характеристика; она лишь координирует вычисление по зависимостям и контрактам, в том числе для составных объектов, которые появились в результате преобразований. |
| 21 | + |
| 22 | +\paragraph{Transformations.} |
| 23 | +Transformations фиксирует операции над распределениями и правила пересчёта характеристик после этих операций. |
| 24 | +Сюда попадают преобразования вида «аффинное», «сдвиг и масштаб», «сумма/микс», «свёртка», «обрезка (truncation)», «монотонные отображения» и другие композиции. |
| 25 | +Компонента описывает, \emph{какие} характеристики нового распределения можно выразить через характеристики исходных и в каком порядке они должны вычисляться. |
| 26 | +На момент написания модуль проектно важен, но ещё не реализован; он задаёт общий язык описания преобразований и обеспечивает единообразную логику пересчёта поддержек, моментов, квантилей и прочих характеристик при переходе к результату преобразования. |
| 27 | + |
| 28 | +\subsection{Поток данных и точки соприкосновения} |
| 29 | + |
| 30 | +Рабочий цикл выглядит просто. Пользователь выбирает семью и задаёт параметры в удобной для него параметризации. |
| 31 | +Families приводит параметры к базовой форме и передаёт контекст в Distributions. |
| 32 | +Когда требуется характеристика, Distributions строит локальный граф зависимостей для этого запроса. |
| 33 | +Если характеристика получена применением преобразования, узлы этого графа добавляются модулем Transformations, а рёбра указывают, какие характеристики исходных распределений нужны для пересчёта. |
| 34 | +Таким образом, вычисления идут от стандартизованных параметров через согласованные правила преобразований к запрошенной характеристике результата. |
| 35 | + |
| 36 | +\subsection{Границы и контракты} |
| 37 | + |
| 38 | +Межкомпонентное взаимодействие опирается на несколько устойчивых сущностей: |
| 39 | +базовая параметризация, область значения случайной величины (support), именованный реестр характеристик и спецификация преобразований. |
| 40 | +Компоненты не разделяют внутреннее состояние и обмениваются только тем, что необходимо для вычисления. |
| 41 | +Это позволяет добавлять новые семьи и новые преобразования без изменения существующих модулей, сохраняя обратную совместимость. |
| 42 | + |
| 43 | +\subsection{Композиционные свойства} |
| 44 | + |
| 45 | +Композиция прозрачна: результат преобразования ведёт себя как обычное распределение, подчиняясь тем же контрактам Distributions. |
| 46 | +Порядок вычисления характеристик незначим для внешнего пользователя, так как зависимости и правила вывода зашиты в Transformations. |
| 47 | +Единая базовая параметризация в Families гарантирует сопоставимость результатов при смешении разных источников и представлений параметров. |
| 48 | + |
| 49 | +\begin{figure}[H] |
| 50 | + \centering |
| 51 | + % Замените путь на ваш файл со схемой компонентов. |
| 52 | + % Если у вас PDF/PNG, оставьте только одно расширение |
| 53 | + \includegraphics[width=.85\linewidth]{assets/images/Composition.png} |
| 54 | + \caption{Компоненты ядра и их роли в композиции} |
| 55 | + \label{fig:kernel-components} |
| 56 | +\end{figure} |
0 commit comments