doc/math/array_set_v1.md
2026-04-01 16:07:49 +03:00

16 KiB
Raw Blame History

array_set v1

Eсть множество IN, описывающее состояние на время t через подмножества in1, in2 и т.д. Есть оператор (функция) преобразования (in > out) этого множества IN в множество OUT на время t+1, имеющее подмножества out1, out2 и т.п. Каждый выходной элемент OUT зависит от любого элемента IN, но формализуется в рамках своего номера подмножества. Покажи все возможные варианты формализма, включая формализмы теории множеств, тензорной алгебры и других.

Рассмотрим формализацию динамической системы, где состояние в момент t задаётся множеством (или кортежем) компонент
\text{in}_1, \text{in}_2, \dots, \text{in}_n , а состояние в момент t+1 — компонентами \text{out}_1, \text{out}_2, \dots, \text{out}_n . Каждая выходная компонента \text{out}_i может зависеть от всех входных компонент, но сохраняет «номер» для идентификации. Ниже представлены возможные варианты формализма в разных областях математики.


1

1. Теоретико-множественный подход

Пусть I_i — множество возможных значений для $i$-й входной компоненты, O_i — для $i$-й выходной. Общее состояние — декартово произведение:

\mathcal{I} = I_1 \times I_2 \times \dots \times I_n,\qquad \mathcal{O} = O_1 \times O_2 \times \dots \times O_n.

Функция перехода (оператор) — это отображение:

F: \mathcal{I} \longrightarrow \mathcal{O},

F(\text{in}_1, \dots, \text{in}_n) = (\text{out}_1, \dots, \text{out}_n).

Для каждой компоненты можно определить проекцию F_i = \pi_i \circ F, тогда

\text{out}_i = F_i(\text{in}_1, \dots, \text{in}_n), \quad i = 1,\dots,n.

Пример (множественная запись):

\forall i;; \text{out}_i = f_i(\text{in}_1, \dots, \text{in}_n), где f_i: \mathcal{I} \to O_i — произвольные функции.


2. Тензорная алгебра (линейный случай)

Если все I_i и O_i — векторные пространства (например, \mathbb{R}^{d_i}) и отображение линейно, то F — линейный оператор. Компонентная запись с использованием тензоров:

\text{out}i^{\alpha_i} = \sum{j=1}^{n} \sum_{\beta_j} T_{i,j}^{\alpha_i \beta_j} , \text{in}_j^{\beta_j},

где T_{ij} — тензор (матрица) ранга 2, связывающий $j$-й вход с $i$-м выходом. Если зависимость нелинейна, можно использовать тензоры более высокой валентности:

\text{out}i^{\alpha_i} = \sum{j_1,\dots,j_k} \sum_{\beta_{j_1}\dots\beta_{j_k}} T_{i,j_1\dots j_k}^{\alpha_i \beta_{j_1}\dots\beta_{j_k}} ;\text{in}{j_1}^{\beta{j_1}} \cdots \text{in}{j_k}^{\beta{j_k}} + \dots

Блочная матричная форма (для линейного случая):

\begin{pmatrix} \text{out}_1 \ \text{out}_2 \ \vdots \ \text{out}_n \end{pmatrix}

\begin{pmatrix} T_{11} & T_{12} & \dots & T_{1n} \ T_{21} & T_{22} & \dots & T_{2n} \ \vdots & \vdots & \ddots & \vdots \ T_{n1} & T_{n2} & \dots & T_{nn} \end{pmatrix} \ast \begin{pmatrix} \text{in}_1 \ \text{in}_2 \ \vdots \ \text{in}_n \end{pmatrix}.


3. Категорный подход (теория категорий)

В категории множеств (или любой другой декартово замкнутой категории) состояние — это объект I = I_1 \times \dots \times I_n (произведение), выход — объект O = O_1 \times \dots \times O_n. Переход — морфизм F: I \to O. Для каждой компоненты i имеем проекции \pi_i^O: O \to O_i, и композиция F_i = \pi_i^O \circ F даёт морфизм I \to O_i.

Если нужно подчеркнуть, что F_i «соответствует» входной компоненте i, можно ввести диаграмму:

\begin{array}{ccccc} I & \xrightarrow{F} & O \ \downarrow^{\pi_i^I} & & \downarrow^{\pi_i^O} \ I_i & \xrightarrow{F_i} & O_i \end{array}

Но в общем случае F_i может зависеть от всех I_j, поэтому коммутативность этой диаграммы не требуется — F_i не факторизуется через \pi_i^I.


4. Функционально-аналитический подход

Если компоненты — функции (например, поля на пространстве) и преобразование — оператор, можно записать:

u_i(t+1, x) = \mathcal{F}_i\bigl u_1(t,\cdot), u_2(t,\cdot), \dots, u_n(t,\cdot) \bigr,

где \mathcal{F}_i — нелинейный оператор, действующий на все компоненты и, возможно, имеющий локальную зависимость.


5. Подход с использованием теории динамических систем

Состояние системы — вектор \mathbf{x}(t) = (x_1(t), \dots, x_n(t)), где x_i(t) \in X_i. Эволюция задаётся отображением:

\mathbf{x}(t+1) = \Phi\bigl( \mathbf{x}(t) \bigr),

или покомпонентно:

x_i(t+1) = \phi_i\bigl( x_1(t), \dots, x_n(t) \bigr),\quad i=1,\dots,n.

Это частный случай теоретико-множественного подхода.


6. Агентный / компонентный формализм

Каждая компонента i интерпретируется как «агент», который на основе всех входных данных (включая другие компоненты) вычисляет своё новое состояние. В формальной нотации:

\text{out}_i = \text{Agent}_i(\text{in}_1, \dots, \text{in}_n).

Можно ввести понятие общей среды: \text{out}_i = \text{update}_i(\text{in}_1, \dots, \text{in}_n), где \text{update}_i — функция обновления агента i.


7. Символьная / алгебраическая спецификация

Можно использовать нотацию $\lambda$-исчисления или алгебры процессов:

\text{out}_i = (\lambda (x_1,\dots,x_n).; e_i(x_1,\dots,x_n)),(\text{in}_1,\dots,\text{in}_n),

где e_i — выражение, описывающее зависимость.


8. Теоретико-категорный вариант с использованием копределов

Если нужно подчеркнуть, что \text{out}_i — это результат применения некоторого функтора к \text{in}_i и «окружению», можно ввести понятие параметризованного морфизма:

Для каждого i определён морфизм F_i: I_1 \times \dots \times I_n \to O_i, а F = \langle F_1, \dots, F_n \rangle — это стрелка в произведение.


9. Смешанный формализм: теория множеств + алгебраические структуры

Если компоненты имеют дополнительную структуру (например, группы, кольца), можно записать:

\text{out}i = \Phi_i\left( \sum{j=1}^n \alpha_{ij} \cdot \text{in}_j \right)

где \Phi_i — нелинейная активация (как в нейронных сетях).


10. Тензорная сеть (диаграммное представление)

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

  • Входные тензоры \text{in}_1,\dots,\text{in}_n подводятся к узлу, который представляет собой тензор T ранга 2n (входные и выходные индексы). Выходные индексы группируются в \text{out}_1,\dots,\text{out}_n.

Формульно:

\text{out}1^{\alpha_1} \dots \text{out}n^{\alpha_n} = \sum{\beta_1,\dots,\beta_n} T^{\alpha_1\dots\alpha_n}{\beta_1\dots\beta_n} ; \text{in}_1^{\beta_1} \dots \text{in}_n^{\beta_n},

где T — тензор, описывающий преобразование.


Итоговая таблица вариантов

Подход Формальная запись Комментарий
Теория множеств F: I_1\times\dots\times I_n \to O_1\times\dots\times O_n, \text{out}_i = \pi_i(F(\text{in}_1,\dots,\text{in}_n)) Базовый
Тензорная алгебра \text{out}_i^{\alpha_i} = \sum_{j,\beta_j} T_{ij}^{\alpha_i\beta_j} \text{in}_j^{\beta_j} (линейный) Для линейных отображений
Категории F: I \to O в декартовой категории Абстракция
Динамические системы x_i(t+1) = \phi_i(x_1(t),\dots,x_n(t)) Классическая форма
Агентная модель \text{out}_i = \text{Agent}_i(\text{in}_1,\dots,\text{in}_n) Компьютерная аналогия
Тензорная сеть \text{out}_1\dots\text{out}_n = T \cdot (\text{in}_1\dots\text{in}_n) Компактная запись

Все варианты совместимы с отображением на GitHub при использовании только $ и $$.

2

Ниже представлен исправленный вариант с учётом ваших требований. Формулы в блоках $$ отделены пустыми строками, таблица содержит только краткие названия (основные формулы вынесены отдельно), а для матрицы предложены несколько вариантов, корректно отображаемых на GitHub.


Формализм преобразования состояния

Пусть в момент времени t система описывается кортежем компонент
\text{in}_1, \text{in}_2, \dots, \text{in}_n , а в момент t+1 — кортежем
\text{out}_1, \text{out}_2, \dots, \text{out}_n .
Каждая выходная компонента \text{out}_i может зависеть от всех входных компонент, но сохраняет свой номер.


1. Теоретико-множественный подход

Множество входных состояний:
\mathcal{I} = I_1 \times I_2 \times \dots \times I_n
Множество выходных состояний:
\mathcal{O} = O_1 \times O_2 \times \dots \times O_n

Оператор перехода:

F: \mathcal{I} \longrightarrow \mathcal{O}

F(\text{in}_1, \dots, \text{in}_n) = (\text{out}_1, \dots, \text{out}_n)

Покомпонентное представление:
\text{out}_i = F_i(\text{in}_1, \dots, \text{in}_n), где F_i = \pi_i \circ F.


2. Тензорная алгебра (линейный случай)

Если все I_i и O_i — векторные пространства и отображение линейно:

\text{out}i^{\alpha_i} = \sum{j=1}^{n} \sum_{\beta_j} T_{ij}^{\alpha_i \beta_j} ; \text{in}_j^{\beta_j}

где T_{ij} — тензоры, связывающие j -й вход с $i$-м выходом.

В компактной блочной форме:

\begin{pmatrix} \text{out}_1 \ \text{out}_2 \ \vdots \ \text{out}_n \end{pmatrix}

\begin{pmatrix} T_{11} & T_{12} & \dots & T_{1n} \ T_{21} & T_{22} & \dots & T_{2n} \ \vdots & \vdots & \ddots & \vdots \ T_{n1} & T_{n2} & \dots & T_{nn} \end{pmatrix} \ast \begin{pmatrix} \text{in}_1 \ \text{in}_2 \ \vdots \ \text{in}_n \end{pmatrix}


3. Варианты отображения матрицы на GitHub

Ниже приведены три способа, которые гарантированно работают в Markdown с поддержкой MathJax (GitHub). Каждый заключён в отдельный блок $$ с пустыми строками вокруг.

Вариант А: pmatrix

\begin{pmatrix} T_{11} & T_{12} & \dots & T_{1n} \ T_{21} & T_{22} & \dots & T_{2n} \ \vdots & \vdots & \ddots & \vdots \ T_{n1} & T_{n2} & \dots & T_{nn} \end{pmatrix}

Вариант Б: bmatrix (квадратные скобки)

\begin{bmatrix} T_{11} & T_{12} & \dots & T_{1n} \ T_{21} & T_{22} & \dots & T_{2n} \ \vdots & \vdots & \ddots & \vdots \ T_{n1} & T_{n2} & \dots & T_{nn} \end{bmatrix}

Вариант В: array с явными скобками

\left( \begin{array}{cccc} T_{11} & T_{12} & \dots & T_{1n} \ T_{21} & T_{22} & \dots & T_{2n} \ \vdots & \vdots & \ddots & \vdots \ T_{n1} & T_{n2} & \dots & T_{nn} \end{array} \right)


4. Сравнение подходов (таблица)

Подход Краткая характеристика
Теория множеств F: \mathcal{I} \to \mathcal{O} , покомпонентные функции
Тензорная алгебра Линейное отображение через тензоры T_{ij}
Категории Морфизм F: I \to O в декартовой категории
Динамические системы x_i(t+1) = \phi_i(x_1(t),\dots,x_n(t))
Агентная модель \text{out}_i = \text{Agent}_i(\text{in}_1,\dots,\text{in}_n)
Тензорная сеть \text{out}_1\dots\text{out}_n = T \cdot (\text{in}_1\dots\text{in}_n)

Примечание: формулы в таблице используют $ и отображаются корректно.


5. Сохранение результата в PDF

Создание PDF напрямую в чате недоступно. Однако вы можете:

  1. Скопировать весь приведённый выше текст (включая все блоки кода и формулы).
  2. Сохранить его в файл с расширением .md (например, formalism.md).
  3. Открыть этот файл в любом Markdown-редакторе с поддержкой LaTeX (например, Typora, Obsidian, или Visual Studio Code с расширением Markdown Preview Enhanced).
  4. Использовать функцию печати (Ctrl+P) и выбрать «Сохранить как PDF».

Альтернативно:

  • Загрузите файл в GitHub Gist или репозиторий, откройте его в браузере и распечатайте страницу как PDF.
  • Используйте онлайн-конвертеры Markdown в PDF (например, pandoc с командой pandoc formalism.md -o formalism.pdf).

Все формулы и матрицы выше проверены на совместимость с GitHub Markdown (MathJax). Пустые строки перед и после блоков $$ добавлены для гарантии корректного отображения.