惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
The Register - Security
The Register - Security
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
博客园 - 司徒正美
罗磊的独立博客
U
Unit 42
S
SegmentFault 最新的问题
Y
Y Combinator Blog
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
博客园 - 叶小钗
C
Cybersecurity and Infrastructure Security Agency CISA
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
S
Securelist
A
Arctic Wolf
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threatpost
Scott Helme
Scott Helme
博客园 - 聂微东
博客园 - 【当耐特】
T
Tenable Blog
I
Intezer
D
DataBreaches.Net
B
Blog RSS Feed
Security Latest
Security Latest
C
Cisco Blogs
T
Tor Project blog
N
Netflix TechBlog - Medium

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Заметки на полях: изоморфизм геометрических алгебр
Тимур Абизгельдин · 2026-06-07 · via Все публикации подряд на Хабре

Пролог

Скитаясь по лесистым равнинам геометрической алгебры, нашёл классный изоморфизм. Возможно, кому-то будет интересно - попытаюсь изложить по-русски и попроще.

Изоморфизм алгебр

В работе Garret Sobczyk “Spinors in Spacetime Algebra and Euclidean 4-Space” явно используется алгебраический изоморфизм между геометрической алгеброй евклидова четырёхмерного пространства Cl_{(4,0)} и алгеброй пространства-времени Cl_{(1,3)}.
У Sobczyk соответствие записано как

e_0\equiv\gamma_0,\qquad e_k\equiv\gamma_k\gamma_0,

откуда следует

\gamma_0=e_0,\qquad \gamma_k=e_ke_0.

Далее я буду использовать именно это соглашение. То есть наблюдаемые пространственные генераторы Cl_{(1,3)} представляются в Cl_{(4,0)} как произведения евклидова генератора на опору справа:

\gamma_i=e_ie_0.

Если в обычной евклидовой Cl_{(4,0)} выбрать 1-вектор e_0, будем далее называть его опорой, и построить относительно него базис (e^{}_0,e_1e_0,e_2e_0,e_3e_0), то элементы этого базиса удовлетворяют определяющим соотношениям генераторов Cl_{(1,3)}:

\gamma_0^2=+1,\qquad \gamma_i^2=-1,\\\gamma_\mu\gamma_\nu+\gamma_\nu\gamma_\mu=2\eta_{\mu\nu},\qquad\eta=\operatorname{diag}(1,-1,-1,-1).

При этом реверсия и грейд-инволюция в наблюдаемой Cl_{(1,3)}, конечно, не совпадают с исходными операциями реверсии и грейд-инволюции в Cl_{(4,0)}, и должны быть переопределены.
Удобно будет ввести одну операцию опорного отражения:

M(A):=e_0Ae_0.

На векторах эта операция имеет простой смысл. Если v=v_\parallel+v_\perp, где v_\parallel - компонента вдоль e_0, а v_\perp - ортогональное дополнение, то M(v)=v_\parallel-v_\perp. То есть опорная компонента сохраняется, а всё ортогональное ей меняет знак.
Кстати, это похоже на механизм лоренцизации метрики вида

g(u,v)=\delta(Mu,v),

где отражение относительно выбранной опоры меняет знак ортогонального дополнения в Reddy-Sharma-Sivaramakrishnan “Lorentzian metric induced from a background Riemannian metric”.
Тогда наблюдаемая реверсия задаётся как опорное отражение исходной реверсии

A^\ddagger=e_0\widetilde A e_0 = M(\widetilde A),

и наблюдаемая грейд-инволюция - аналогично:

\alpha_\gamma(A)=e_0\alpha_\delta(A)e_0 = M(\alpha_\delta(A)).

То есть наблюдаемая реверсия и наблюдаемая грейд-инволюция получаются из соответствующих операций Cl_{(4,0)} через то же опорное отражение. Само геометрическое произведение при этом остаётся обычным произведением внутри Cl_{(4,0)}.
Наконец, на бивекторном секторе та же идея даёт комплексную структуру. Если

\star_\delta B:=BI_4

это евклидова дуальность, то сама по себе она имеет квадрат +1. Но композиция дуальности с опорным отражением

J_{e_0}:=\star_\delta \circ M

уже даёт

J_{e_0}^2=-1.

Поэтому J_{e_0} можно использовать как мнимую единицу на пространстве пар (\gamma_i,\Gamma_i), где

\Gamma_i:=-I_4\gamma_i.

Покажем это подробнее.

Работаем в евклидовой Cl_{(4,0)} с ортонормированными генераторами

e_0,e_1,e_2,e_3,\qquad {e_a}^2=1,

и псевдоскаляром

I_4=e_0e_1e_2e_3.

В Cl_{(4,0)}

I_4^2=+1.

Пусть B^{}_{} — произвольный бивектор. Введём две операции на бивекторном секторе.

Первая — отражение относительно выбранной опоры e^{}_0:

M(B):=e_0Be_0.

Вторая — евклидова дуальность:

\star_\delta B:=BI_4.

Обе операции сами по себе являются инволюциями.

Для отражения:

M^2(B)=e_0(e_0Be_0)e_0=B.

Значит,

M^2=1.

Для евклидовой дуальности на бивекторах:

{\star_\delta}^2(B)=(BI_4)I_4=B {I_4}^2=B.

Значит,

{\star_\delta}^2=1.

Однако эти две операции антикоммутируют. Действительно,

(\star_\delta M)(B)=(e_0Be_0)I_4.

А в обратном порядке:

(M\star_\delta)(B)=e_0(BI_4)e_0=e_0BI_4e_0.

Так как

I_4e_0=-e_0I_4,

получаем

e_0BI_4e_0=-e_0Be_0I_4.

Следовательно,

M\star_\delta=-\star_\delta M.

Теперь определим

J_{e_0}:=\star_\delta\circ M.

То есть

J_{e_0}(B)=(e_0Be_0)I_4.

Тогда

J_{e_0}^2=(\star_\delta M)(\star_\delta M).

Используя антикоммутацию,

M\star_\delta=-\star_\delta M,

получаем:

J_{e_0}^2=\star_\delta(M\star_\delta)M=-\star_\delta\star_\delta MM=-1.

Итак, J_{e_0}^2=-1.

То есть мнимая единица здесь появляется как композиция двух инволюций: евклидова дуальность + отражение относительно опоры.

Проверим действие J_{e_0} на выбранной бивекторной тройке. Пусть теперь, в соглашении Sobczyk,

\gamma_i=e_ie_0.

Дуальные партнёры удобно определить как

\Gamma_i:=-I_4\gamma_i.

Тогда

\Gamma_1=-e_2e_3,\qquad\Gamma_2=-e_3e_1,\qquad\Gamma_3=-e_1e_2.

Для \gamma_i:

J_{e_0}(\gamma_i)=(e_0\gamma_i e_0)I_4.

Так как

e_0(e_ie_0)e_0=e_0e_i=-e_ie_0=-\gamma_i,

то

J_{e_0}(\gamma_i)=-\gamma_i I_4=-I_4\gamma_i=\Gamma_i.

Для \Gamma_i, поскольку \Gamma_i не содержит e_0,

e_0\Gamma_i e_0=\Gamma_i.

Значит,

J_{e_0}(\Gamma_i)=\Gamma_i I_4.

Но

\Gamma_i=-I_4 \gamma_i,

поэтому

\Gamma_i I_4=-\gamma_i.

Итак,

J_{e_0}(\gamma_i)=\Gamma_i,\qquad J_{e_0}(\Gamma_i)=-\gamma_i.

Это ровно действие умножения на мнимую единицу в каждой паре

(\gamma_i,\Gamma_i).

Таким образом, одно и то же опорное отражение

M(A):=e_0Ae_0

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

Ниже приведена обзорная таблица сопоставления элементов двух алгебр:

Например,

(e_ie_0)^2=e_ie_0e_ie_0=-e_ie_ie_0e_0=-1.

Таким образом, любую алгебраическую операцию STA (space-time algebra, Cl_{(1,3)}) можно переписать в терминах элементов евклидовой Cl_{(4,0)}, если заранее зафиксирован опорный генератор e_0 и выбран соответствующий образ базиса.

Электромагнитное поле в смещённой алгебре Клиффорда

В свете такой роскоши стоит хотя бы бегло взглянуть на формулу электромагнитного поля в STA: оно записывается не парой векторов \mathbf{E},\mathbf{B}, а единым бивектором F^{}_{}. В натуральных единицах, опуская коэффициенты c^{},\varepsilon_0,\mu_0, уравнения Максвелла сворачиваются в одну формулу:

\nabla F=J,

где \nabla=\gamma^\mu\partial_\mu - пространственно-временной градиент, F^{}_{} - электромагнитный бивектор, а J^{}_{} - 4-ток.
Поскольку геометрическое произведение вектора \nabla на бивектор F^{}_{} содержит две части,

\nabla F=\nabla\cdot F+\nabla\wedge F,

это одно уравнение сразу распадается на две группы:

\nabla\cdot F=J,\\\nabla\wedge F=0.

Первая строка даёт неоднородные уравнения Максвелла:

\nabla\cdot\mathbf{E}_\gamma = \rho,\\\nabla\times\mathbf{B}_\gamma -\partial_t\mathbf{E}_\gamma = \mathbf j.

Вторая строка даёт однородные:

\nabla\cdot\mathbf{B}_\gamma = 0,\\\nabla\times\mathbf{E}_\gamma + \partial_t\mathbf{B}_\gamma = 0.

То есть в STA электрическая и магнитная части не являются двумя независимыми сущностями. Они являются двумя наблюдательными разложениями одного пространственно-временного бивектора F^{}_{}.
Для выбранной временной опоры \gamma_0 это поле обычно раскладывается как

F=\mathbf{E}_\gamma+I\mathbf{B}_\gamma,

где I=\gamma_0\gamma_1\gamma_2\gamma_3 - псевдоскаляр STA, а \mathbf{E}_\gamma и \mathbf{B}_\gamma - пространственные векторы относительно выбранного наблюдателя.

Применим соглашение Sobczyk: \gamma_0=e_0,\gamma_i=e_ie_0:

F=\mathbf E+I\mathbf B = E^i(\gamma_i\gamma_0)+B^i I(\gamma_i\gamma_0) \in Cl^2_{(1,3)} \\\downarrow{ \\ \gamma_0=e_0,\ \gamma_i=e_ie_0 : \\ I = \gamma_0\gamma_1\gamma_2\gamma_3 = I_3=e_1e_2e_3 }\ \\\mathbf F_\delta = E^i e_i + B^i I_3 e_i = \mathbf E_\delta + I_3\mathbf B_\delta \in Cl^1_{(4,0)}\oplus Cl^2_{(4,0)}.

Тогда временно-пространственные бивекторы STA переходят в обычные векторы Cl_{(4,0)}, следовательно, электромагнитный бивектор F^{}_{} после переноса в Cl_{(4,0)} уже не является однородным бивектором исходной алгебры - электрическая часть становится векторной, тогда как магнитная остаётся бивекторной. Коэффициенты при этом остаются те же, поэтому далее мы просто будем обозначать \mathbf{E},\mathbf{B}, подразумевая их евклидовые образы, если не указано иное.
Это показывает, что единый бивектор F^{}_{} в STA как бы “скрывает” сдвинутую структуру. Лоренцев градиент и 4-ток при том же соответствии принимают вид

\nabla=\gamma^\mu\partial_\mu =e_0\partial_0-e_ie_0\partial_i =e_0(\partial_0+e_i\partial_i)=e_0(\partial_0+\nabla_3),\\J = \rho\gamma_0 + j^i\gamma_i = \rho e_0 + j^i e_ie_0=e_0(\rho-j^ie_i).

Поэтому уравнение Максвелла можно читать как уравнение между сдвинутыми уровнями:

(\partial_0+\nabla_3)(\mathbf E+I_3\mathbf B)=\rho-\mathbf j.

Раскроем левую часть по грейдам:

(\partial_0+\nabla_3)(\mathbf E+I_3\mathbf B)=\partial_0\mathbf E+\partial_0(I_3\mathbf B)+\nabla_3\mathbf E+\nabla_3(I_3\mathbf B).

где
(1) \nabla_3\mathbf{E}=\nabla_3\cdot\mathbf{E}+\nabla_3\wedge\mathbf{E},
(2) \nabla_3(I_3\mathbf{B})=I_3(\nabla_3\cdot\mathbf{B})-(\nabla_3\times\mathbf{B}),
(3) \nabla_3\wedge\mathbf{E}=I_3(\nabla_3\times\mathbf{E}),
поэтому полное уравнение

\nabla_3\cdot\mathbf E+\left(\partial_0\mathbf E-\nabla_3\times\mathbf B\right)+I_3\left(\partial_0\mathbf B+\nabla_3\times\mathbf E\right)+I_3(\nabla_3\cdot\mathbf B)=\rho-\mathbf j

распадается по грейдам:

Cl^0:\qquad \nabla_3\cdot\mathbf E=\rho,\\Cl^1:\qquad \partial_0\mathbf E-(\nabla_3\times\mathbf B)=-\mathbf j,\\Cl^2:\qquad \partial_0(I_3\mathbf B)+I_3(\nabla_3\times\mathbf E)=0,\\Cl^3:\qquad I_3(\nabla_3\cdot\mathbf B)=0.

Давая те же уравнения Максвелла с точностью до выбранного знака пространственного градиента.
Но теперь видно, что эти четыре строки возникают не просто как две тензорные группы \nabla\cdot F=J и \nabla\wedge F=0, а как четыре грейдовые проекции одного уравнения в смещённой алгебре:

Cl^0,\quad Cl^1,\quad Cl^2,\quad Cl^3.

Паравектор источника \rho-\mathbf j занимает скалярно-векторный сектор,

J_\delta = e_0J\in Cl^0_{(4,0)}\oplus Cl^1_{(4,0)},

а поле занимает векторно-бивекторный сектор

\mathbf F_\delta\in Cl^1_{(4,0)}\oplus Cl^2_{(4,0)}.

Таким образом, уравнение Максвелла связывает две соседние ступени смещённой (проективной) алгебры:

Cl^0\oplus Cl^1\quad \longleftrightarrow \quad Cl^1\oplus Cl^2.

Продолжение, наверное, следует.