慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

博客园 - 司徒正美
V
V2EX
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
月光博客
月光博客
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

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

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Кто решает судьбу вашего проекта? Разбираем заинтересованные стороны. BABOK #1 Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче 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 Умный город начинается с точного взгляда: как Фалькон Тех меняет пространство к лучшему
«形而上学之公式:『朝圣者之信』『源』之数学之核」
DigitalPsych · 2026-05-24 · via Все публикации подряд на Хабре

從選擇之熵至效用之函數——愛之新模型,供哲人、物理學者與機器學習工程師探求

引言

前文《變分計算作為選擇自由之喻》中,吾輩立一概念類比:於障礙之野尋路,喻人生之選擇;添隨機性(變異性),為自由意志之數學對應。

然喻犹喻也。公式述途,未述其值 。算法觅径,未辨善择与恶择。至若「爱」、「罪」与「建筑师」之谓,则置括外,属纯粹哲思之域

。新文之旨,在继进一阶

。吾辈将构 形式数学之模。 《韦利·帕洛明加——源起》,立严明之界说以入之。

  • 可能生命轨迹之域

  • 選擇之熵為自由之度也

  • 愛之功用,為生命之目標函數。

  • 罪之程度若为减他之熵

  • 建築師爲空間之創造者,非程式設計師也。

吾等未尝自诩「数学之证」于形而上者。吾等所陈者 工作之假说,其者:

  1. 于程序员及机器学习工程师有益 — 予言以述求索之异、机率之优、众智之合也。

  2. 哲人好之。 —明自由、罪、爱之理,此三者常囿于定性之思.

  3. 物理学家晓之 —用变分之术、熵及最小作用之律.

  4. 对形而上学者诚之 —不隐其与特定宗教之关联,亦不强加于人.

吾辈亦将为之。 以MATLAB为器,行计算之实验,以明所立之式于世用如何。吾辈非欲「证」神之存或意志之自由。但示其理:

  • 苟采「朝圣者之信」,则必生若干数理之理。

  • 此理可于简朴之模,以数术验之。

  • 实验之果,非悖于本始之理,反以形貌显之。


研究之志与任

文章之旨

拟构形上之数理模型于「朝圣者之信—源」之形而上学,引入新符及量度,以应自由择之自由、生命途之利、及「罪」之量,并示此模型于MATLAB之计算实验而验之。

其务

  1. 形上之本体论 —定可能生命轨迹之域 Ω 具边界条件与限制.

  2. 引入选择熵 SS 为自由意志之量度,示明决定论当 S=0,而全然自由则 S=Smax​.

  3. 构爱之效用函数 U(γ),以光滑拉格朗日量为之。 ,并与之较之乎传统宗教之障壁之能。

  4. ,明定罪孽 ΔS罪孽 ,谓为减损他人(或代理人)选择熵之行。而此义,当以形式化之。

  5. ,阐发造物主 A 之职,乃创可能之域,初设之境,律令之章,而非固定之轨。

    1. 于MATLAB中施行计算之实验

      • 于障域中生成诸般路径

      • :估量路径分布之熵

      • :计算每条路径之效用

      • :拟「过」为独行之强制,测熵变之差

    2. :析其果 且论此模型于哲理与技道之辩之适用。


诚邀诸君览此文之结构:

文之结构

  1. 引言 (今之节也)——明其题旨,述其志业。

  2. 第一篇。形上于公式:可能之道之域
    公式之定义 Ω,界之條件與限。符號 Ω之引。

  3. 章二。選之熵:自由之度
    分佈 p(γ),熵 S,決定與自由之解釋。

  4. 章三。愛之效用函:生命之目標函
    拉格朗日函 L,泛函。 U(γ), 平滑与壁垒.

  5. 第四章. 罪恶乃熵减之原意.
    定义. ΔS罪, 例证与论辩.

  6. 第五章. 建筑师为空间之造物者(非程序员).
    符号 A, 与传统神学之比较.

  7. 第六章. MATLAB之计算实验.
    模型之述,代码之码,图形之图,及结果之析.

  8. 结论.
    新式公式之概,答“此为何用”之问.

数学之概(预拟)

Примечание: Все вводимые символы и формулы будут подробно объяснены в соответствующих частях статьи. Математический аппарат не превышает уровень продвинутого бакалавриата (вариационное исчисление, теория вероятностей, основы оптимизации), что делает статью доступной для широкой аудитории Хабра.

注: 凡所输入之符式,皆于文内详释。其数理之用,不越高才之学(变分之术、概率之理、优化之基),故此文可惠及广大读者。

是故,且进。

第一章。形上于式:可能之道之域。

1.1. 甚者何需形上之学

欲施自由之度(熵)、利之性(爱)或「罪」之谓,必先答其本问:

夫「生命之道」,于算学之理,究为何物?

经典之理,质点之径,乃函数 r(t)rt,适运动之方程。于经济学,乃效用极增之选序。于机器学习,乃参数空间中损函数极减之径。

于吾之形而上学《朝圣者之信——源》 ,此径 ,乃状态空间中连续之曲,贯通生成 A。 生死(或所立之志) B,不越禁域 O (现实之限)

。然异于物理,其轨迹 唯一 (定命),吾等设,通例存众途  可行之道。复加焉,择其一者,即 自由意志

1.2. 空间之形式定义 ΩΩ

使然。

  • 待翻译文本为空 — 时光, t属[0,T],其处 零 —诞之顷,  — 逝时之刻(或规划之界)。

  • γ(t) — 描状人身之态于时 t (形骸、心神、社谊、灵性)。境域之维 n 可任,然为显明,吾辈当取 n=2。 (平面坐标)。

  • A=γ(0) — 初态(生)。

  • B=γ(T) — 终态(死或达目标)。

  • O — 禁态之集,不可或不宜至者(病、犯法、社会禁忌)。

定义一。可能生命轨迹之域 Ω —乃诸连续函数 γ(t)之集,合乎边界条件与约束:

Примечание: Ω — это континуальное множество (бесконечное, несчётное). Даже для простейшего случая на плоскости его мощность равна мощности континуума.

注: Ω 者,连续之集也(无穷,不可数)。纵使至简之例于平面上,其势亦与连续统等。

1.3. 例示于

考之至简之例: n=2,场 20×20,障 O — 三圆一矩形, A —左下角, B —右上角。

下附MATLAB之码,以离散空间,示数例路径于 Ω (非尽然,惟取其偶)。

% ========================================================================
% 1.3. Визуализация пространства Ω на дискретной сетке
% ========================================================================

clear; clc; close all;

% Размер сетки
N = 30;
x = linspace(0, 20, N);
y = linspace(0, 20, N);
[X, Y] = meshgrid(x, y);

% Препятствия
obstacleMap = zeros(N);
for i = 1:N
    for j = 1:N
        if sqrt((X(i,j)-5)^2 + (Y(i,j)-5)^2) < 2
            obstacleMap(i,j) = 1;
        end
        if sqrt((X(i,j)-12)^2 + (Y(i,j)-12)^2) < 1.5
            obstacleMap(i,j) = 1;
        end
        if sqrt((X(i,j)-17)^2 + (Y(i,j)-7)^2) < 1.8
            obstacleMap(i,j) = 1;
        end
        if X(i,j) > 7 && X(i,j) < 11 && Y(i,j) > 14 && Y(i,j) < 18
            obstacleMap(i,j) = 1;
        end
    end
end

% Старт и финиш (исправлено: [строка, столбец])
start = [N, 1];  % левый нижний угол
goal = [1, N];   % правый верхний угол

% Проверка, что старт и финиш не в препятствиях
if obstacleMap(start(1), start(2)) == 1 || obstacleMap(goal(1), goal(2)) == 1
    error('Старт или финиш находятся внутри препятствия!');
end

% Поиск кратчайшего пути (BFS)
[path_det, ok] = bfs_path(obstacleMap, start, goal);

% Генерация нескольких альтернативных путей
numPaths = 5;
paths = cell(numPaths, 1);
for k = 1:numPaths
    [p, ~] = var_path(obstacleMap, start, goal, 0.5 + k*0.1);
    paths{k} = p;
end

% Визуализация
figure('Name', 'Пространство возможных путей Ω', 'NumberTitle', 'off');
imagesc(x, y, obstacleMap');
colormap([1 1 1; 0.5 0.5 0.5]);
axis xy; axis equal;
title('\Omega: множество возможных траекторий');
xlabel('X'); ylabel('Y');
hold on;

% Рисуем детерминированный путь
if ok && ~isempty(path_det)
    plot(path_det(:,2), path_det(:,1), 'b-', 'LineWidth', 2);
end

% Рисуем альтернативные пути
colors = ['r', 'g', 'c', 'm', 'y'];
for k = 1:numPaths
    if ~isempty(paths{k})
        plot(paths{k}(:,2), paths{k}(:,1), '--', 'Color', colors(mod(k-1,5)+1), 'LineWidth', 1.5);
    end
end

plot(x(start(2)), y(start(1)), 'go', 'MarkerSize', 10, 'LineWidth', 2);
plot(x(goal(2)), y(goal(1)), 'ro', 'MarkerSize', 10, 'LineWidth', 2);
legend('Оптимальный путь', 'Альтернативные пути', 'Старт', 'Финиш', 'Location', 'best');
hold off;

disp('Готово!');

% ========================================================================
% Функция BFS для поиска кратчайшего пути
% ========================================================================
function [path, found] = bfs_path(map, start, goal)
    [rows, cols] = size(map);
    
    % Направления: вверх, вниз, влево, вправо
    directions = [-1 0; 1 0; 0 -1; 0 1];
    
    % Очередь для BFS
    queue = [start, 0];  % [row, col, distance]
    visited = false(rows, cols);
    parent = zeros(rows, cols, 2);  % для восстановления пути
    
    visited(start(1), start(2)) = true;
    found = false;
    
    while ~isempty(queue)
        current = queue(1, :);
        queue(1, :) = [];
        
        if current(1) == goal(1) && current(2) == goal(2)
            found = true;
            % Восстановление пути
            path = reconstruct_path(parent, start, goal);
            return;
        end
        
        % Проверка соседей
        for d = 1:4
            newRow = current(1) + directions(d, 1);
            newCol = current(2) + directions(d, 2);
            
            if newRow >= 1 && newRow <= rows && newCol >= 1 && newCol <= cols
                if ~visited(newRow, newCol) && map(newRow, newCol) == 0
                    visited(newRow, newCol) = true;
                    parent(newRow, newCol, 1) = current(1);
                    parent(newRow, newCol, 2) = current(2);
                    queue(end+1, :) = [newRow, newCol, current(3)+1];
                end
            end
        end
    end
    
    path = [];
    found = false;
end

% ========================================================================
% Функция восстановления пути
% ========================================================================
function path = reconstruct_path(parent, start, goal)
    path = [goal];
    current = goal;
    
    while ~(current(1) == start(1) && current(2) == start(2))
        prevRow = parent(current(1), current(2), 1);
        prevCol = parent(current(1), current(2), 2);
        
        if prevRow == 0 && prevCol == 0
            break;  % нет пути
        end
        
        current = [prevRow, prevCol];
        path = [current; path];
    end
end

% ========================================================================
% Функция генерации альтернативных путей (вариационный метод с шумом)
% ========================================================================
function [path, success] = var_path(map, start, goal, noise_level)
    % Сначала находим оптимальный путь через BFS
    [opt_path, found] = bfs_path(map, start, goal);
    
    if ~found
        path = [];
        success = false;
        return;
    end
    
    % Добавляем случайные отклонения от оптимального пути
    path = opt_path;
    
    % Для каждого внутреннего узла (не старт и не финиш) добавляем случайное смещение
    for i = 2:size(path, 1)-1
        % Пробуем сместиться в случайном направлении
        for attempt = 1:10  % несколько попыток
            delta_row = randi([-1, 1]) * noise_level;
            delta_col = randi([-1, 1]) * noise_level;
            
            new_row = round(path(i, 1) + delta_row);
            new_col = round(path(i, 2) + delta_col);
            
            % Проверка границ и препятствий
            if new_row >= 1 && new_row <= size(map, 1) && ...
               new_col >= 1 && new_col <= size(map, 2) && ...
               map(new_row, new_col) == 0
                path(i, 1) = new_row;
                path(i, 2) = new_col;
                break;
            end
        end
    end
    
    % Убираем повторяющиеся точки
    path = unique(path, 'rows', 'stable');
    success = true;
end
Рисунок 1 . Вывод 1: Ω не пусто. Более того, оно содержит множество траекторий. Этот факт — математическая основа для свободы выбора.

图一。论一: Ω 非空。且,其含  轨迹。此实乃自由择之数学本源。

果: 图(图1)绘数 Ω之素。 —此为确定(蓝)之径,彼乃变通(彩虚线)之途,皆绕障物而行。留意:诸径虽异,然皆合边界之约,不犯障阻。

1.4. 边界之约若形而上之恒常

吾形而上之学 AA 与 BB 既定矣。人不能择其生,亦(大抵)不能择其死。然其间所有者, 自由之域也。

  • A 者,乃造物之赐也。初设之境(家族、康健、才情)非所择,然不能囿其途于严焉。

  • B或可类死亡之客观,或可类目标之主观(所谓「生之意义」)。后一事,人可择 B,然此已为道途之部分。


1.5. 限制 O:自然之律与社会之常

O —此乃「界」之域 Ω。不可忽之。吾等之模:

  • Физ之限: 重力学,资源有穷,疾患.

  • 社会之限: 律令,常度,禁忌.

  • 伦理之限: 《朝圣者之信》中,非外在于内(良知)。

要旨: O 非使径唯一。惟狭可能之域。


1.6. 此定义于下列诸部

  1. 选择熵 S (第二部)者,乃量其概率 p(γ) 布于 Ω

  2. 之均齐也。 效用函数 U(γ) (第三部)者,乃积__JHSNS_SEG_d4d2e697_213__γ也。 —即 Ω之功能.

  3. 罪 ΔS罪 (第四部分)将测度一者之行,如何使 Ω 他者之域狭.


1.7.第一部之简略要言

  • 吾等已正式界定 可能生命轨迹之域 Ω.

  • 环 视乎所依。 边界之境 A,B и 限界 .

  • 在典型配置中 ω 含之 无穷之数 元素者,自由择之数学表也。

  • MATLAB中图像化,显其道之多。


入第二部: 今,既明其可能之域,吾将引 择之熵 S —度人之决断自由之衡。

第二部。择之熵:自由之度。

自可能之域至概率之分配

于第一篇,吾等既明可能之生命轨迹之域 Ω —凡合边界之条件与限制之途也。然仅知 Ω 含众多元素,犹未得选择之自由量度 .

诚然,试想二境:

  1. 凡道之所出者 环 均等也。 人诚然可择所欲择,此乃至极之自由也。

  2. 一途在焉 ω 其概率近于一,其余则近乎零。 正式 Ω 犹存众物,然实无抉择之由。

是故,吾辈当 定其概率 p(γ) 于 Ω__之集。此乃彰其人(或算法)择此径或彼径之频也。

注: 于世人 p(γ) —乃主观之自由量也(吾常择异途之频耳)。于算法(如寻径之术)—乃变随机参数时轨迹生成之客量也。

2.2. 选择熵之定义

信息论中,香农熵为分布不定之量度。于连续之域 Ω (诸路之连续)者,其义为:

。于此,积分遍历所有可能之轨迹。于离散之域(如吾MATLAB实验所设)中,积分易为诸路径之和,而 p(γ) 之值,乃由变分算法反复运行时,各路径出现之频次所估。

熵之性质 S:

  • S≥0.

  • S=0 者,独道有率一,众道皆率零。此乃 全然定数之境。

  • S=Smax​ 者,诸道均等率也。此乃 至极自由 (诸道数固定时)。 Ω).

2.3. 因定论为特例

诸典算法寻径(如无随机之BFS)中,分配 p(γ) 殊异:

由是, S=0。此乃数学之表,无择之状也。

傳統之教,其「正道」既定不變(教條、戒律),稍有偏離即為罪孽,實則已然立論。 S=0。此选,虚妄耳。

二点四 自由若高熵

《朝圣者之信——源》中,自由非无拘无束,乃 变通之有熵愈高则然 S,则人之自由度愈增。

若 S 近于 Smax​,则人实能择诸平等(依某标准)之道途。

尤异者,高熵非即混沌。盖谓 可能之丰也。. 正是此丰饶,孕育创生,生爱,负责任。

2.5. 计算实验:在MATLAB中评估熵

吾等将修饰第一部分之变分算法,以:

  1. 生成 一。 异途(更迭坐随机之数)。

  2. 量度每径之频。

  3. 计算熵 生。 依离散分布之公式。

% ========================================================================
% 2.5. Оценка энтропии выбора
% ========================================================================

clear; clc; rng(42);

% Создание карты препятствий
N = 30;
x = linspace(0, 20, N);
y = linspace(0, 20, N);
[X, Y] = meshgrid(x, y);

obstacleMap = zeros(N);
for i = 1:N
    for j = 1:N
        if sqrt((X(i,j)-5)^2 + (Y(i,j)-5)^2) < 2 || ...
           sqrt((X(i,j)-12)^2 + (Y(i,j)-12)^2) < 1.5 || ...
           sqrt((X(i,j)-17)^2 + (Y(i,j)-7)^2) < 1.8 || ...
           (X(i,j) > 7 && X(i,j) < 11 && Y(i,j) > 14 && Y(i,j) < 18)
            obstacleMap(i,j) = 1;
        end
    end
end

start = [N, 1]; 
goal = [1, N];

% Генерация множества путей
N_paths = 200;
paths = cell(N_paths, 1);

fprintf('Генерация %d путей...\n', N_paths);
for i = 1:N_paths
    if mod(i, 50) == 0
        fprintf('  Прогресс: %d/%d\n', i, N_paths);
    end
    paths{i} = var_path(obstacleMap, start, goal, 0.5);
end

% Фильтрация пустых путей
valid_paths = paths(~cellfun(@isempty, paths));
fprintf('Успешно сгенерировано: %d/%d\n', length(valid_paths), N_paths);

% Преобразование путей в уникальные строковые ключи
path_keys = cell(length(valid_paths), 1);
for i = 1:length(valid_paths)
    p = valid_paths{i};
    % Создаем ключ как строку координат
    key = '';
    for j = 1:size(p, 1)
        key = [key, sprintf('(%d,%d)', p(j,1), p(j,2))];
    end
    path_keys{i} = key;
end

% Подсчет уникальных путей
[unique_keys, ~, ic] = unique(path_keys, 'stable');
counts = accumarray(ic, 1);
probs = counts / sum(counts);

% Энтропия Шеннона
entropy = -sum(probs .* log2(probs));

% Результаты
fprintf('\n========== РЕЗУЛЬТАТЫ ==========\n');
fprintf('Сгенерировано путей: %d\n', N_paths);
fprintf('Уникальных путей: %d\n', length(unique_keys));
fprintf('Энтропия выбора: %.4f бит\n', entropy);
fprintf('Макс. возможная энтропия: %.4f бит\n', log2(length(unique_keys)));
fprintf('Относительная энтропия: %.2f%%\n', entropy/log2(length(unique_keys))*100);
fprintf('================================\n');

% Визуализация
figure('Name', 'Распределение путей', 'Position', [100, 100, 800, 400]);

subplot(1,2,1);
bar(probs(1:min(10, length(probs))));
title(sprintf('Распределение вероятностей (H = %.4f бит)', entropy));
xlabel('Тип пути');
ylabel('Вероятность');
grid on;

subplot(1,2,2);
stairs(cumsum(sort(probs, 'descend')), 'LineWidth', 2);
title('Кумулятивное распределение');
xlabel('Количество типов путей');
ylabel('Суммарная вероятность');
grid on;
xlim([1, length(probs)]);

disp('Готово!');

% ========================================================================
% ФУНКЦИИ
% ========================================================================

function [path, found] = bfs(map, start, goal)
    [rows, cols] = size(map);
    directions = [-1 0; 1 0; 0 -1; 0 1];
    
    queue = start;
    visited = false(rows, cols);
    visited(start(1), start(2)) = true;
    parent = zeros(rows, cols, 2);
    found = false;
    
    while ~isempty(queue)
        current = queue(1, :);
        queue(1, :) = [];
        
        if isequal(current, goal)
            found = true;
            path = reconstruct_path(parent, start, goal);
            return;
        end
        
        for d = 1:4
            nr = current(1) + directions(d, 1);
            nc = current(2) + directions(d, 2);
            
            if nr >= 1 && nr <= rows && nc >= 1 && nc <= cols
                if ~visited(nr, nc) && map(nr, nc) == 0
                    visited(nr, nc) = true;
                    parent(nr, nc, 1) = current(1);
                    parent(nr, nc, 2) = current(2);
                    queue(end+1, :) = [nr, nc];
                end
            end
        end
    end
    
    path = [];
    found = false;
end

function path = reconstruct_path(parent, start, goal)
    path = goal;
    current = goal;
    
    while ~isequal(current, start)
        prev = [parent(current(1), current(2), 1), parent(current(1), current(2), 2)];
        if all(prev == 0)
            break;
        end
        current = prev;
        path = [current; path];
    end
end

function path = var_path(map, start, goal, sigma)
    [opt_path, ok] = bfs(map, start, goal);
    
    if ~ok || isempty(opt_path)
        path = [];
        return;
    end
    
    if size(opt_path, 1) <= 2
        path = opt_path;
        return;
    end
    
    path = opt_path;
    max_offset = max(1, round(sigma));
    
    for i = 2:size(path, 1)-1
        for attempt = 1:10
            dr = randi([-max_offset, max_offset]);
            dc = randi([-max_offset, max_offset]);
            
            nr = path(i, 1) + dr;
            nc = path(i, 2) + dc;
            
            if nr >= 1 && nr <= size(map, 1) && ...
               nc >= 1 && nc <= size(map, 2) && ...
               map(nr, nc) == 0
                path(i, :) = [nr, nc];
                break;
            end
        end
    end
    
    % Удаление последовательных дубликатов
    unique_path = path(1, :);
    for i = 2:size(path, 1)
        if ~isequal(path(i, :), unique_path(end, :))
            unique_path(end+1, :) = path(i, :);
        end
    end
    path = unique_path;
end
Рисунок 2

图二

Рисунок 3

图三

析其果也

  • 二百发射,各辟其途。 无一重复。

  • 熵至理极矣 此诸径之数(log2200≈7.64)。

  • 是故 诸径之布均匀:凡可通之途皆等概率。

若σ=0(定序之术):
Уникальных путей = 1, Энтропия = 0 бит, Относительная энтропия = 0% —纯然定序。

σ渐增,熵亦随之而长。,求极至之值,乃于 Ω中求可能之途。吾辈实验,已达至境:算法遍察万般可能之域。

2.6. 释熵于形而上

《行者之信——源》中,熵 S ,乃 自由意志之量度

  • S=0 (定命论):
    循硬定之程,举动皆前定。人为傀儡。自由乃幻象。

  • S=Smax​ (熵至极):
    自由之至境。每时每刻,人可择容许之途任一。诸途平等(就自由言,非就价值言)。

  • 0<S<Smax​ (中間之境):
    半自由也。途有可通者,有難通者,然選猶存焉.

吾之實驗,達 極境 S=Smax矣。此显,纵寻途于有阻之格,亦存 万般之选。算法中无所谓「隐定」。

要旨: 自由非纵恣。限 O (阻)未尝消弭。然此限之内,犹存 天地之间,万物齐同,机缘均等。.


二点七、自熵至利

自由本不能答此问 何者当择?若诸途均等(S=Smax),则人得自由,然无定向。彼需 靶向之功能,以辨“善”径与“恶”径之别。

于下文,吾将引 爱之效用函数 U(γ) —此乃拉格朗日函数之类似物,用以估量路径之价值.


2.8. 第二部分之简略摘要

  • 分布 p(γ) 定义于每条轨迹自 Ω

  • 之选择概率.__JHSNS_SEG_d4d2e697_383__熵 生。 — 自由之量度。 S=0生。等于零 至于决定论, 生。>零 为自由。

  • MATLAB中实验 显其当变数足(σ=0.8)时,算法得至。 至熵之极:凡二百途皆独异,分派匀齐。

  • 《行旅之信》之形而上学,释熵为 意志自由之度

 今既善量择之自由,当明 何途为优。为此,吾辈当立 愛之功用 () — 目标函数之对应于优化问题者。

第三部。愛之功利之用:生命之目標函數

三一,无志之自由,乃乱也

於第二部,吾等已習測量之術。 择自由 之熵 SS。吾等示之,于 ΩΩ 间,或存巨量(乃至无尽)之均等路径。然自由其自身,未答其问: 「何路径为优?」

。若授人以无尽之择,而未予判准,则人不能决。彼需 所向之功能 —「罗盘」,示以方向.

《行者信条·源起》中,此罗盘即 。爱无条件,不求牺牲,不染交易,不惧地狱之威.

3.2. 数理之化:效用之函数

设每道路径 γ(t)∈Ω 相应于数 U(γ),表其 价值 (效用,『爱之量』)。

定之:

其义如左:

  • L — 爱之拉格朗日函数 (依状、速、时而定);

  • T —生之界(死或成其志)。

越丰 U(γ),此「佳」途也。

注: 此乃直喻也 最小作用之理 物理之道,然求之精微,至於毫厘之差。彼处求作用之极小,此间求效用之至大。

三三、择拉格朗日之选:顺滑与障壁

在经典拉格朗日问题中,L 乃定游戏之规。其择,则所行之道自当为优。

方案甲:光滑拉格朗日(无条之爱)

拉格朗日光滑,连续无奇点。其可依:

  • 自由 (熵 S)

  • 创作 (行为多样)、

  • 爱邻 (与其他智能体互动)。

诸要素皆属圆融之态。无无尽之罚于「不驯」。此合乎「神不罚,惟待」之旨 

變式乙:障壁拉格朗日量(傳統宗教)

拉格朗日量含 奇點障壁 (越界無窮懲罰)。例如:

是致嚴定決:凡偏離「正途」之道,其效無窮微。此即 愛如交易之謂也。: «若从,则救;不从,则罚».


3.4. 实验之例:二途异利

复返吾之阻场。设:

  • 青途(定途)——短,然近「险域」(如近应激之源)。

  • 赤途(变途)——长,然经「佳境」(园、寂)。

定一简明之拉格朗日量:

其中 α 与 β 者,乃权重也。

如是,于此忆往昔论道之文,述路径(图四),未读者宜览,否则难明:

  • 青途:其长甚微,适意亦浅,故利泽平平。

  • 赤道之途:其长虽广,然安适甚高,故利得或可逾之(若) 贝塔 足矣矣)。

结论如下: 至善之道,非独系于外物之限,亦关乎内蕴之值(拉格朗日体系)。

三、五、计算之验:估其利弊于MATLAB

吾等当为吾之模型增以利之能。令每格之场各具其「安适」(热图)。则路径之利,乃所历格之安适之和,减其长之罚。

% ========================================================================
% 3.5. Оценка полезности пути
% ========================================================================

clear; clc; rng(42);

% Создание карты препятствий и поля комфорта
N = 30;
x = linspace(0, 20, N);
y = linspace(0, 20, N);
[X, Y] = meshgrid(x, y);

% Препятствия
obstacleMap = zeros(N);
for i = 1:N
    for j = 1:N
        if sqrt((X(i,j)-5)^2 + (Y(i,j)-5)^2) < 2 || ...
           sqrt((X(i,j)-12)^2 + (Y(i,j)-12)^2) < 1.5 || ...
           sqrt((X(i,j)-17)^2 + (Y(i,j)-7)^2) < 1.8 || ...
           (X(i,j) > 7 && X(i,j) < 11 && Y(i,j) > 14 && Y(i,j) < 18)
            obstacleMap(i,j) = 1;
        end
    end
end

% Поле комфорта (случайное с гладким градиентом)
comfort = imgaussfilt(randn(N), 5);
comfort = (comfort - min(comfort(:))) / (max(comfort(:)) - min(comfort(:)));

% Старт и финиш
start = [N, 1];
goal = [1, N];

% Поиск путей
[path_det, ~] = bfs(obstacleMap, start, goal);
path_var = var_path(obstacleMap, start, goal, 0.5);

% Функция полезности
alpha = 0.5;  % штраф за длину
beta = 1;     % коэффициент полезности комфорта

if ~isempty(path_det)
    idx_det = sub2ind(size(comfort), path_det(:,1), path_det(:,2));
    U_det = beta * sum(comfort(idx_det)) - alpha * size(path_det, 1);
else
    U_det = -inf;
end

if ~isempty(path_var)
    idx_var = sub2ind(size(comfort), path_var(:,1), path_var(:,2));
    U_var = beta * sum(comfort(idx_var)) - alpha * size(path_var, 1);
else
    U_var = -inf;
end

% Вывод результатов
fprintf('\n========== ПОЛЕЗНОСТЬ ПУТЕЙ ==========\n');
fprintf('Детерминированный путь: %.4f\n', U_det);
fprintf('Вариационный путь: %.4f\n', U_var);
fprintf('Разница: %.4f\n', U_var - U_det);
fprintf('=======================================\n');

% Визуализация
figure('Name', 'Поле комфорта и пути', 'Position', [100, 100, 800, 600]);
imagesc(x, y, comfort');
colorbar;
axis xy;
axis equal;
title('Поле комфорта (чем светлее, тем лучше)');
xlabel('X');
ylabel('Y');
hold on;

if ~isempty(path_det)
    plot(path_det(:,2), path_det(:,1), 'b-', 'LineWidth', 2.5);
end
if ~isempty(path_var)
    plot(path_var(:,2), path_var(:,1), 'r--', 'LineWidth', 2.5);
end

plot(x(start(2)), y(start(1)), 'go', 'MarkerSize', 12, 'LineWidth', 2);
plot(x(goal(2)), y(goal(1)), 'ro', 'MarkerSize', 12, 'LineWidth', 2);
legend('Детерминированный', 'Вариационный', 'Старт', 'Финиш', 'Location', 'best');
hold off;

% ========================================================================
% ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ
% ========================================================================

function [path, found] = bfs(map, start, goal)
    [rows, cols] = size(map);
    dirs = [-1 0; 1 0; 0 -1; 0 1];
    queue = start;
    visited = false(rows, cols);
    visited(start(1), start(2)) = true;
    parent = zeros(rows, cols, 2);
    found = false;
    
    while ~isempty(queue)
        curr = queue(1,:);
        queue(1,:) = [];
        
        if isequal(curr, goal)
            found = true;
            path = goal;
            while ~isequal(curr, start)
                curr = squeeze(parent(curr(1), curr(2), :))';
                path = [curr; path];
            end
            return;
        end
        
        for d = 1:4
            nr = curr(1) + dirs(d,1);
            nc = curr(2) + dirs(d,2);
            if nr>=1 && nr<=rows && nc>=1 && nc<=cols && ~visited(nr,nc) && map(nr,nc)==0
                visited(nr,nc) = true;
                parent(nr,nc,:) = curr;
                queue(end+1,:) = [nr, nc];
            end
        end
    end
    path = [];
    found = false;
end

function path = var_path(map, start, goal, sigma)
    [opt, ok] = bfs(map, start, goal);
    if ~ok || size(opt,1) <= 2
        path = opt;
        return;
    end
    
    path = opt;
    for i = 2:size(path,1)-1
        for attempt = 1:10
            dr = randi([-round(sigma), round(sigma)]);
            dc = randi([-round(sigma), round(sigma)]);
            nr = path(i,1) + dr;
            nc = path(i,2) + dc;
            if nr>=1 && nr<=size(map,1) && nc>=1 && nc<=size(map,2) && map(nr,nc)==0
                path(i,:) = [nr, nc];
                break;
            end
        end
    end
    path = unique(path, 'rows', 'stable');
end

成效之图与码之果:

Рисунок 4

图四

Рисунок 5

图五

其果: 因 α 而 β «лучшим»或可由二者择一。此例显明, 至善之境,主见为归。无一定「正途」可普适,唯行可最大化汝之自利。

3.6. 与形而上之关联

于《朝圣者之信——源》  非顺从之赏,而 自本然之构。匠者构此空域 Ω ,立拉格朗日之域 L,其域中:

  • 无永罚之罚(如天罚永惩)。

  • 行道之价,非恫吓所定,乃 自由、 创生 所系。 忧他者

  • 人可自择其重 α、β ,以应其心。

此乃 圆融之德 ,异于 峻壁之教 ,诸传统宗教,凡「非道」之行,必致永劫之苦。


第三部要旨

  • 利之功用 U(γ) 为生命之标向设也.

  • 拉格朗日式 L 明何为贵:自由、创造、亲爱.

  • 平滑拉格朗日式 合无条之爱, 障壁 — любовь, как сделка (страх ада).

  • Эксперимент в MATLAB 示,改易权重 α,β 可令任路为「优」。至善,主观耳.

今既得自由之度(熵)与价值之度(效用),可立「罪」之概念  —乃损人自由之行。

第四部。罪乃熵减(本源之论)

4.1。弃旧罪观

诸教多视  为犯天律、禁令、诫命。罪必受罚(地狱、业报、轮回卑类)。此模式似乎 法度之系:有规,有违,有惩。

《行者之诚——源》中,吾等呈献 别之定义,不依外法,而循 内蕴之自由量

罪者,乃有意识减损择之熵之行 S非他人(或非生灵)之故 。

简言之,作孽者 乃狭他人之机缘,强加己意,夺其自由.

4.2. 形式之定义

设行事者 X 其择之熵 一 已往矣 行止。事毕之后— 此后。乃:

  • 若 熵增>零 — 乱也  减矣,自由亦缩。此 罪愆 自彼方 奇哉!.

  • 若 ΔSгрех=0 ,則熵無變,自由亦如故。此乃中性之行。

  • 若 ΔSгрех<0 ,則熵增,自由 Y 亦長。此乃 也。

注: 罪不待外判。其量自在熵变。非"天罚",实"尔自夺他人自由,此乃实情"。

4.3.世之例

例一:胁以罚而强施其道

父诫子曰:"尔当为医,否则夺尔之产。"可能之业域 Ω 之于童子,众途归一。 S 之熵骤降。此乃 ,纵父母诚心望子得“善”,亦然。

例二:情谊之操控

“汝爱我,当从我意”。爱遂为胁制之器。择偶之域渐狭。此 .

例三:地狱之威

宗教之教曰:『若不循仪轨,必堕地狱而焚』。人生可行之道 Ω 狭如蹊径,稍有偏歧,则受无穷之苦。择之熵降于无。此 制度之罪也。,纵使个别神父诚心

4.4. 与传统之概念相异

Важно: Грех в нашей модели — это не «оскорбление Бога», а причинение вреда свободе другого. Архитектор не требует жертв и не карает. Он лишь создал пространство, где последствия поступков объективны.

要紧者: 吾等之模中,罪非"冒犯神明",乃 损害他人之自由。造物者不索祭品,亦不施罚。惟设一方寸,使行止之果昭然若揭。

四、计算之验:拟情于MATLAB

吾可拟"情"为使行者循一途之制.

设二行者:

  • 行者A (自由者)求径自始至终,用变法(S≈Smax).

  • 行者B (罪人)强加于代理A其唯一之"正道"(如确定性广度优先搜索)。

測量代理A選擇之熵,於干預之前後。

% ========================================================================
% 4.5. Моделирование греха
% ========================================================================

clear; clc; rng(42);

% Создание карты препятствий
N = 30;
x = linspace(0, 20, N);
y = linspace(0, 20, N);
[X, Y] = meshgrid(x, y);

obstacleMap = zeros(N);
for i = 1:N
    for j = 1:N
        if sqrt((X(i,j)-5)^2 + (Y(i,j)-5)^2) < 2 || ...
           sqrt((X(i,j)-12)^2 + (Y(i,j)-12)^2) < 1.5 || ...
           sqrt((X(i,j)-17)^2 + (Y(i,j)-7)^2) < 1.8 || ...
           (X(i,j) > 7 && X(i,j) < 11 && Y(i,j) > 14 && Y(i,j) < 18)
            obstacleMap(i,j) = 1;
        end
    end
end

start = [N, 1];
goal = [1, N];

% Параметры симуляции
N_sim = 100;
entropy_before = zeros(N_sim, 1);
entropy_after = zeros(N_sim, 1);

fprintf('Моделирование греха (%d симуляций)...\n', N_sim);

for sim = 1:N_sim
    if mod(sim, 20) == 0
        fprintf('  Прогресс: %d/%d\n', sim, N_sim);
    end
    
    % Генерируем множество свободных путей (без принуждения)
    paths_free = cell(200, 1);
    for i = 1:200
        paths_free{i} = var_path(obstacleMap, start, goal, 0.8);
    end
    
    % Энтропия до
    entropy_before(sim) = compute_entropy(paths_free);
    
    % Навязываем один «правильный» путь (детерминированный)
    fixed_path = bfs_path(obstacleMap, start, goal);
    
    paths_constrained = cell(200, 1);
    for i = 1:200
        if rand < 0.9   % 90% вероятности идти по навязанному пути
            paths_constrained{i} = fixed_path;
        else
            paths_constrained{i} = var_path(obstacleMap, start, goal, 0.8);
        end
    end
    
    % Энтропия после
    entropy_after(sim) = compute_entropy(paths_constrained);
end

% Результаты
delta_S = mean(entropy_before - entropy_after);
fprintf('\n========== РЕЗУЛЬТАТЫ ==========\n');
fprintf('Средняя энтропия до: %.4f бит\n', mean(entropy_before));
fprintf('Средняя энтропия после: %.4f бит\n', mean(entropy_after));
fprintf('Среднее уменьшение энтропии ΔS_грех = %.4f бит\n', delta_S);
fprintf('================================\n');

% Визуализация
figure('Name', 'Моделирование греха', 'Position', [100, 100, 800, 400]);

subplot(1,2,1);
histogram(entropy_before, 20, 'FaceColor', 'b', 'FaceAlpha', 0.5);
hold on;
histogram(entropy_after, 20, 'FaceColor', 'r', 'FaceAlpha', 0.5);
xlabel('Энтропия (бит)');
ylabel('Частота');
legend('До греха', 'После греха');
title('Распределение энтропии');
grid on;

subplot(1,2,2);
plot(1:N_sim, entropy_before, 'b.', 'MarkerSize', 10);
hold on;
plot(1:N_sim, entropy_after, 'r.', 'MarkerSize', 10);
xlabel('Номер симуляции');
ylabel('Энтропия (бит)');
legend('До греха', 'После греха');
title('Энтропия по симуляциям');
grid on;

disp('Готово!');

% ========================================================================
% ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ
% ========================================================================

function [path, found] = bfs_path(map, start, goal)
    [rows, cols] = size(map);
    dirs = [-1 0; 1 0; 0 -1; 0 1];
    queue = start;
    visited = false(rows, cols);
    visited(start(1), start(2)) = true;
    parent = zeros(rows, cols, 2);
    found = false;
    
    while ~isempty(queue)
        curr = queue(1,:);
        queue(1,:) = [];
        
        if isequal(curr, goal)
            found = true;
            path = goal;
            while ~isequal(curr, start)
                curr = squeeze(parent(curr(1), curr(2), :))';
                path = [curr; path];
            end
            return;
        end
        
        for d = 1:4
            nr = curr(1) + dirs(d,1);
            nc = curr(2) + dirs(d,2);
            if nr>=1 && nr<=rows && nc>=1 && nc<=cols && ~visited(nr,nc) && map(nr,nc)==0
                visited(nr,nc) = true;
                parent(nr,nc,:) = curr;
                queue(end+1,:) = [nr, nc];
            end
        end
    end
    path = [];
    found = false;
end

function path = var_path(map, start, goal, sigma)
    [opt, ok] = bfs_path(map, start, goal);
    if ~ok || size(opt,1) <= 2
        path = opt;
        return;
    end
    
    path = opt;
    for i = 2:size(path,1)-1
        for attempt = 1:10
            dr = randi([-round(sigma), round(sigma)]);
            dc = randi([-round(sigma), round(sigma)]);
            nr = path(i,1) + dr;
            nc = path(i,2) + dc;
            if nr>=1 && nr<=size(map,1) && nc>=1 && nc<=size(map,2) && map(nr,nc)==0
                path(i,:) = [nr, nc];
                break;
            end
        end
    end
    path = unique(path, 'rows', 'stable');
end

function entropy = compute_entropy(paths)
    % Фильтрация пустых путей
    valid = ~cellfun(@isempty, paths);
    paths_valid = paths(valid);
    
    if length(paths_valid) < 2
        entropy = 0;
        return;
    end
    
    % Создание ключей для путей
    keys = cell(length(paths_valid), 1);
    for i = 1:length(paths_valid)
        p = paths_valid{i};
        key = '';
        for j = 1:size(p, 1)
            key = [key, sprintf('(%d,%d)', p(j,1), p(j,2))];
        end
        keys{i} = key;
    end
    
    % Подсчёт уникальных путей
    [~, ~, ic] = unique(keys, 'stable');
    counts = accumarray(ic, 1);
    probs = counts / sum(counts);
    
    % Энтропия Шеннона
    entropy = -sum(probs .* log2(probs));
end
Рисунок 6

图六

析其果也

  • 未施强制,A者几近 至大之自由 (熵7.64比特—二百道皆独异)

  • 强施正道,熵堕至 零点九二比特择域狭而归一,偶有歧途。

  • 熵减 三角生。罪愆约六点七三 比特者,即也。 自由之损,量度之数,由「罪孽」之剂所施予.

结论: 强令独道几近尽毁择之自由。熵降至极盛之88%。此乃数学之表,显传统之宗教,以恐地狱之威,强加唯一「正道」,实犯 对人类自由之滔天罪愆 。

转入正题。

4.6. 赦罪与熵复

若罪乃熵减,则 赦罪 ——即熵之复。

吾辈试中,若「罪人」之使不复强施己道,使A使复得自由择,熵当返初之7.64位。此即 赦罪之实也。:自由之归返.

于《朝圣者之信》中,赦免非谓刑罚之废除,乃 增他人自由之行为.神不赦罪于法理之谓。神创世界,使熵得因爱与觉知而复。

第五部。筑境者非编程者.

5.1.「编程之神」之困

于旧时之教,神常示为 全能洞悉之码匠,其行如下:

  • 创世依先成之图.

  • 悉知万般所生(含吾辈所谓「自由」之择)。

  • 可随时入世,改写真实之码。

此模生不可解之悖:若神知一切而控一切,则 意志自由——幻象也。若自由存,则神或非全知,或非全能。神学家千载于此矛盾,未得通解之辞。

《朝圣者信条——出》示第三途 ,不取“神匠”之形,而取“空间可能之构者”之形 

5.2. 构者之形义

。吾等之模中 构者 ,非为形神,非为断裁,非为帝座之尊。其为 司者,所立者:

  1. 可能轨迹之域 Ω (万物生息之道集)

  2. 所限 O (天理法度,俗世规矩,疾患之困)

  3. 利之能 L (爱之拉格朗日式)

  4. 初始之境 A (诞育、初始之资、才俊)

  5. 边界之约 B (殁或既定之志)

架构者 不择 具体之径 γ(t)γ(于t)。彼创之 之潜能域,其中人(主体)自适求其道.

注: 物理之喻:建筑师设空间时序与动律(欧拉-拉格朗日方程),然不代粒子解之。粒子“择”其径,依初态与最小作用之则.

5.3. 与传统神学之比较

Ключевое отличие: Архитектор не управляет каждым шагом. Он доверяет агенту свободу выбора в рамках созданного пространства.

要旨之别: 建筑师不统御每一步。彼信诸于代理人,于所创之境,得自由择焉。

五、四、然何故建筑师不求牺牲?

于传统之教,神祇常需祭品、仪轨、顺从。此即谓神 有欲求 —于崇敬,于血腥,于守律。

吾模式之建筑师 无所求。其至善。不怒,不贪誉,不畏竞。但创可能之境 ΩΩ ,予代理人择之自由.

故曰: 此系统之爱,非交易也(吾予汝顺,汝予吾乐),而 存在之本性。建筑师不言曰:「爱之,否则罚之」。乃言曰:「爱者,达至至善之途也。尔其自择」。

5.5

建筑师与恶之问题

若建筑师仁善,何以世间有恶与苦痛?

  • 「朝圣者之信」答曰:__JHSNS_SEG_d4d2e697_726__恶非建筑师之失。此乃 自由选择之由 代理,减损他者之熵者(ΔSгрех)>零之零。

  • 苦楚非罚,乃 信息 所择之道,远非至善之境也 L.

  • 建築師不干預,蓋因 干预将废自由者,创一境,可谬误,可习之,可复试焉。

5.6. 计算之喻:筑者若境

试想筑者所创  (World),使行者得施其能。筑者定之:

  • 可能之径迹 Ω、

  • 所限之规。 (障阻), (拉格朗日之爱

  • ), (L),

  • (初始条件 ), (A) 及

(B)。 然彼 不召 act() (代理)之术。代理自决其行,而架构师惟予 (游戏)之规。 與 之可能性境域

茲列簡要MATLAB程式,以模擬此意。

% ========================================================================
% 5.6. Архитектор как среда: агент выбирает путь сам
% ========================================================================

clear; clc; close all; rng(42);

% Создание карты препятствий
N = 30;
x = linspace(0, 20, N);
y = linspace(0, 20, N);
[X, Y] = meshgrid(x, y);

obstacleMap = zeros(N);
for i = 1:N
    for j = 1:N
        if sqrt((X(i,j)-5)^2 + (Y(i,j)-5)^2) < 2 || ...
           sqrt((X(i,j)-12)^2 + (Y(i,j)-12)^2) < 1.5 || ...
           sqrt((X(i,j)-17)^2 + (Y(i,j)-7)^2) < 1.8 || ...
           (X(i,j) > 7 && X(i,j) < 11 && Y(i,j) > 14 && Y(i,j) < 18)
            obstacleMap(i,j) = 1;
        end
    end
end

start = [N, 1];
goal = [1, N];

% Функции для BFS
function [path, found] = bfs(map, s, g)
    dirs = [-1 0; 1 0; 0 -1; 0 1];
    queue = s;
    visited = false(size(map));
    visited(s(1), s(2)) = true;
    parent = zeros([size(map), 2]);
    found = false;
    
    while ~isempty(queue)
        curr = queue(1,:);
        queue(1,:) = [];
        if isequal(curr, g)
            found = true;
            path = g;
            while ~isequal(curr, s)
                curr = squeeze(parent(curr(1), curr(2), :))';
                path = [curr; path];
            end
            return;
        end
        for d = 1:4
            nr = curr(1) + dirs(d,1);
            nc = curr(2) + dirs(d,2);
            if nr>=1 && nr<=size(map,1) && nc>=1 && nc<=size(map,2)
                if ~visited(nr,nc) && map(nr,nc)==0
                    visited(nr,nc) = true;
                    parent(nr,nc,:) = curr;
                    queue(end+1,:) = [nr, nc];
                end
            end
        end
    end
    path = [];
    found = false;
end

function path = var_path(map, s, g, sigma)
    [opt, ok] = bfs(map, s, g);
    if ~ok || size(opt,1) <= 2
        path = opt;
        return;
    end
    path = opt;
    for i = 2:size(path,1)-1
        for a = 1:10
            dr = randi([-round(sigma), round(sigma)]);
            dc = randi([-round(sigma), round(sigma)]);
            nr = path(i,1) + dr;
            nc = path(i,2) + dc;
            if nr>=1 && nr<=size(map,1) && nc>=1 && nc<=size(map,2) && map(nr,nc)==0
                path(i,:) = [nr, nc];
                break;
            end
        end
    end
    path = unique(path, 'rows', 'stable');
end

% Архитектор создаёт мир (определяет параметры)
world.Omega = @() var_path(obstacleMap, start, goal, 0.8); % пространство путей
world.O = obstacleMap;   % ограничения (препятствия)
world.L = @(path) -size(path,1); % лагранжиан: короткий путь = лучше
world.A = start;         % начальные условия
world.B = goal;          % цель

% Агент сам ищет путь, максимизирующий полезность
% (Архитектор не вмешивается)
agent_find_path = @(world) world.Omega(); % агент выбирает любой путь из Omega

% Агент действует
path = agent_find_path(world);

% Архитектор лишь наблюдает (или оценивает результат)
if ~isempty(path)
    utility = world.L(path);
    fprintf('Агент выбрал путь с полезностью: %.2f\n', utility);
    fprintf('Длина пути: %d шагов\n', size(path,1));
else
    fprintf('Агент не смог найти путь\n');
    path = [start; goal];
end

% Визуализация
figure('Name', 'Путь, выбранный агентом', 'NumberTitle', 'off');
imagesc(x, y, world.O');
colormap([1 1 1; 0.5 0.5 0.5]);
axis xy; axis equal;
title('Агент выбрал путь самостоятельно (Архитектор не вмешивался)');
xlabel('X'); ylabel('Y');
hold on;
if ~isempty(path)
    plot(path(:,2), path(:,1), 'r-', 'LineWidth', 2, 'Marker', 'o', 'MarkerSize', 4);
end
plot(x(world.A(2)), y(world.A(1)), 'go', 'MarkerSize', 12, 'LineWidth', 2, 'MarkerFaceColor', 'g');
plot(x(world.B(2)), y(world.B(1)), 'ro', 'MarkerSize', 12, 'LineWidth', 2, 'MarkerFaceColor', 'r');
legend('Путь агента', 'Старт', 'Финиш', 'Location', 'best');
hold off;
Рисунок 7

圖七

Агент выбрал путь с полезностью: -53.00
Длина пути: 53 шагов

此果何解

  1. 使者獨自行動。 建築師未選使者之路,惟供境域(可能性境域 Ω,限制 哦。, 拉格朗日 L,始末之條件也)。

  2. 利弊 = -53.00。 于吾等简略之拉格朗日法中 L=−长度 径途。负义者,谓利愈高则径愈短。五十三数,乃离散格之径长也。

  3. 途长五十三步。 此乃所选轨迹之客观特征。较之:确定性算法(广度优先搜索)或可寻得较短路径,然此智能体择之。 或为可能之一 道途在 Ω,非必最优。

玄解之谓

  • 建築師不強加「正確」之道。 纵有更短之途(更益之途),亦得自择焉。 Ω. 建筑师不罚不妥之择。

  • 择自由之实也。 代理人或可择他途(他途乃随机数之别),其果遂异。熵也。 生。 是此实验之率,盖因路径分之均也。

  • 负效非惩也。 此惟 所择之径之实状耳 。匠者不云:“汝择之非善,今吾将罚汝。”惟言:“此径长五十三步。”此乃自然之果,非罚也。

 吾辈于下文将行 MATLAB中全计算实验,融汇贯通者 Ω,熵也 S,利也 尔,罪过 熵增 且示以建築師之職,並顯此模範於實際運作。 

是故,吾等已至终章之验。

第六章 MATLAB计算实验

6.1实验目的

前文已述形式定义:

  • 可能轨迹空间 Ω

  • 选择熵 S 为自由度之量度

  • 爱之效用函数 Uγ

  • Грех ΔSгрех​ 若为熵减之减,

  • Архитектора A 若为造境之造,

今合诸义于一算术之验,示其行于实也.

% ========================================================================
% 6.3. Полный вычислительный эксперимент (ИСПРАВЛЕННЫЙ)
% ========================================================================

clear; clc; close all; rng('shuffle');

% ========================================================================
% 1. Инициализация поля и препятствий
% ========================================================================
N = 30;
x = linspace(0, 20, N);
y = linspace(0, 20, N);
[X, Y] = meshgrid(x, y);

obstacleMap = zeros(N);
for i = 1:N
    for j = 1:N
        if sqrt((X(i,j)-5)^2 + (Y(i,j)-5)^2) < 2
            obstacleMap(i,j) = 1;
        end
        if sqrt((X(i,j)-12)^2 + (Y(i,j)-12)^2) < 1.5
            obstacleMap(i,j) = 1;
        end
        if sqrt((X(i,j)-17)^2 + (Y(i,j)-7)^2) < 1.8
            obstacleMap(i,j) = 1;
        end
        if X(i,j) > 7 && X(i,j) < 11 && Y(i,j) > 14 && Y(i,j) < 18
            obstacleMap(i,j) = 1;
        end
    end
end

start = [N, 1];
goal = [1, N];

% ========================================================================
% ФУНКЦИИ (определены до вызова)
% ========================================================================

function [path, found] = bfs_path(map, start, goal)
    [rows, cols] = size(map);
    dirs = [-1 0; 1 0; 0 -1; 0 1];
    queue = start;
    visited = false(rows, cols);
    visited(start(1), start(2)) = true;
    parent = zeros(rows, cols, 2);
    found = false;
    
    while ~isempty(queue)
        curr = queue(1,:);
        queue(1,:) = [];
        
        if isequal(curr, goal)
            found = true;
            path = goal;
            while ~isequal(curr, start)
                curr = squeeze(parent(curr(1), curr(2), :))';
                path = [curr; path];
            end
            return;
        end
        
        for d = 1:4
            nr = curr(1) + dirs(d,1);
            nc = curr(2) + dirs(d,2);
            if nr>=1 && nr<=rows && nc>=1 && nc<=cols && ~visited(nr,nc) && map(nr,nc)==0
                visited(nr,nc) = true;
                parent(nr,nc,:) = curr;
                queue(end+1,:) = [nr, nc];
            end
        end
    end
    path = [];
    found = false;
end

function path = var_path(map, start, goal, sigma)
    [opt, ok] = bfs_path(map, start, goal);
    if ~ok || size(opt,1) <= 2
        path = opt;
        return;
    end
    path = opt;
    for i = 2:size(path,1)-1
        for attempt = 1:10
            dr = randi([-round(sigma), round(sigma)]);
            dc = randi([-round(sigma), round(sigma)]);
            nr = path(i,1) + dr;
            nc = path(i,2) + dc;
            if nr>=1 && nr<=size(map,1) && nc>=1 && nc<=size(map,2) && map(nr,nc)==0
                path(i,:) = [nr, nc];
                break;
            end
        end
    end
    path = unique(path, 'rows', 'stable');
end

function entropy = compute_entropy(paths)
    valid = ~cellfun(@isempty, paths);
    keys = cell(sum(valid), 1);
    j = 1;
    for i = 1:length(paths)
        if valid(i)
            p = paths{i};
            key = '';
            for k = 1:size(p,1)
                key = [key sprintf('(%d,%d)', p(k,1), p(k,2))];
            end
            keys{j} = key;
            j = j + 1;
        end
    end
    [~, ~, ic] = unique(keys, 'stable');
    counts = accumarray(ic, 1);
    probs = counts / sum(counts);
    entropy = -sum(probs .* log2(probs));
end

% ========================================================================
% 2. Генерация пространства Ω (200 путей)
% ========================================================================
num_paths = 200;
sigma = 0.8;
fprintf('Генерация %d путей...\n', num_paths);
paths = cell(num_paths, 1);
for i = 1:num_paths
    if mod(i,50)==0, fprintf('  %d/%d\n', i, num_paths); end
    paths{i} = var_path(obstacleMap, start, goal, sigma);
end

% ========================================================================
% 3. Энтропия выбора S
% ========================================================================
entropy = compute_entropy(paths);
fprintf('\n========== РЕЗУЛЬТАТЫ ==========\n');
fprintf('Энтропия выбора S = %.4f бит\n', entropy);

% ========================================================================
% 4. Полезность U(γ) (тепловая карта комфорта)
% ========================================================================
comfort = imgaussfilt(randn(N), 3);
comfort = (comfort - min(comfort(:))) / (max(comfort(:)) - min(comfort(:)));

alpha = 0.5;
beta = 1;

U_vals = zeros(num_paths, 1);
for i = 1:num_paths
    if ~isempty(paths{i})
        idx = sub2ind(size(comfort), paths{i}(:,1), paths{i}(:,2));
        U_vals(i) = beta * sum(comfort(idx)) - alpha * size(paths{i}, 1);
    else
        U_vals(i) = -Inf;
    end
end

valid_U = U_vals(U_vals > -Inf);
fprintf('Средняя полезность U = %.4f\n', mean(valid_U));
fprintf('Максимальная полезность U_max = %.4f\n', max(valid_U));

% ========================================================================
% 5. Моделирование греха: принуждение к единственному пути
% ========================================================================
fixed_path = bfs_path(obstacleMap, start, goal);

paths_constrained = cell(num_paths, 1);
for i = 1:num_paths
    if rand < 0.9
        paths_constrained{i} = fixed_path;
    else
        paths_constrained{i} = var_path(obstacleMap, start, goal, sigma);
    end
end

entropy_c = compute_entropy(paths_constrained);
delta_S = entropy - entropy_c;

fprintf('Энтропия после принуждения S_c = %.4f бит\n', entropy_c);
fprintf('Уменьшение энтропии ΔS_грех = %.4f бит\n', delta_S);
fprintf('Относительное уменьшение: %.1f%%\n', delta_S/entropy*100);
fprintf('================================\n');

% ========================================================================
% 6. Визуализация
% ========================================================================

% Рис. 1: Тепловая карта комфорта и лучший путь
[~, best_idx] = max(U_vals);
best_path = paths{best_idx};

figure('Name', 'Тепловая карта комфорта и лучший путь', 'Position', [100,100,600,500]);
imagesc(x, y, comfort');
colorbar; axis xy; axis equal;
title('Тепловая карта комфорта (светлее = лучше) и путь с max U');
xlabel('X'); ylabel('Y');
hold on;
if ~isempty(best_path)
    plot(best_path(:,2), best_path(:,1), 'r-', 'LineWidth', 2);
end
plot(x(start(2)), y(start(1)), 'go', 'MarkerSize', 10, 'LineWidth', 2, 'MarkerFaceColor', 'g');
plot(x(goal(2)), y(goal(1)), 'ro', 'MarkerSize', 10, 'LineWidth', 2, 'MarkerFaceColor', 'r');
legend('Лучший путь', 'Старт', 'Финиш', 'Location', 'best');

% Рис. 2: Распределение полезности
figure('Name', 'Распределение полезности', 'Position', [100,100,600,400]);
histogram(valid_U, 20, 'FaceColor', 'b', 'FaceAlpha', 0.7);
title('Распределение полезности U(γ) среди всех путей');
xlabel('Полезность'); ylabel('Частота'); grid on;

% Рис. 3: Сравнение энтропии до и после греха
figure('Name', 'Влияние греха на энтропию', 'Position', [100,100,500,400]);
bar([entropy, entropy_c], 'FaceColor', [0.3 0.6 0.9]);
set(gca, 'XTickLabel', {'Свобода (S)', 'После греха (S_c)'});
ylabel('Энтропия (бит)');
title(sprintf('Уменьшение энтропии ΔS = %.4f бит', delta_S));
grid on;

% Рис. 4: Два пути — свободный и навязанный
figure('Name', 'Свободный путь vs навязанный', 'Position', [100,100,600,500]);
imagesc(x, y, obstacleMap');
colormap([1 1 1; 0.5 0.5 0.5]);
axis xy; axis equal;
title('Свободный выбор (красный) vs принуждение (синий)');
xlabel('X'); ylabel('Y');
hold on;
if ~isempty(best_path)
    plot(best_path(:,2), best_path(:,1), 'r-', 'LineWidth', 2);
end
if ~isempty(fixed_path)
    plot(fixed_path(:,2), fixed_path(:,1), 'b--', 'LineWidth', 2);
end
plot(x(start(2)), y(start(1)), 'go', 'MarkerSize', 10, 'LineWidth', 2, 'MarkerFaceColor', 'g');
plot(x(goal(2)), y(goal(1)), 'ro', 'MarkerSize', 10, 'LineWidth', 2, 'MarkerFaceColor', 'r');
legend('Свободный путь', 'Навязанный путь', 'Старт', 'Финиш', 'Location', 'best');

fprintf('\nГотово!\n');
Рисунок 8 Тепловая карта комфорта  показывает область, где полезность выше (светлые зоны). Лучший путь (максимум U) проходит через наиболее комфортные зоны, избегая препятствий.

图八舒適度熱圖 显明利处所在之域(光亮之区)。至善之道(极也)。 ) 循最适安处而行,避障物。

  • Рисунок 9 Сравнение энтропии  наглядно показывает: столбец S высокий (7.64), столбец Sc​ (после греха) — почти ноль.

    图九熵之比较 昭然示之:柱也 生。 高(7.64),柱 斯卡​ (过罪之后)—几近于无。

    Рисунок 10 Гистограмма распределения полезности  демонстрирует, что большинство путей имеют полезность в диапазоне 4–6. Нет «выбросов» в сторону очень низких значений.

    图十效用分布直方图 昭示众途,利在四六之间,无甚低值之异。

    Рисунок 11 Свободный путь против навязанного  показывает, что принуждение к короткому, но «бездушному» пути игнорирует реальные ценности (комфорт, красоту, тишину), которые важны для агента.

    图十一逍遥之道,非强加之途 示,强求捷径而失其本心,则罔顾真谛(如适意、雅致、幽静),此皆主体所重也。

    ========================================
    Энтропия выбора S = 7.6439 бит
    Средняя полезность U = 5.2176
    Максимальная полезность U_max = 6.6279
    Энтропия после принуждения S_c = 0.6773 бит
    Уменьшение энтропии ΔS_грех = 6.9665 бит
    Относительное уменьшение: 91.1%
    ========================================

    析其果:

    一、域 Ω 与熵 S=7.64比特

    生二百殊途。熵臻理极 log₂200≈7.64。 石。

    结论: 代理人具之 择其自由之至也 在限制之内 凡可通之径,皆等概率也。无有定轨。

    二、有用之益 吾

    中庸之利 U=5.22,最大者 Umax六点六三。值之参差,虽择之无拘,而途之优劣,于适与程则殊异焉。

    论曰: 自由非即均等。有径实胜(逾“适”之域),然造物者未强加之。

    三、罪(ΔS罪=六点九七 位,减损之率九十一有一)。

    强求唯一"正途"(循规蹈矩者九成)致使熵降之巨:

    • 未陷罪孽时: S=7.64 比特(极尽纷繁之态)。

    • 既陷罪孽后: Sc=0.68 比特(几近全然之定)。

    择自由减损 九十一成。.

    其言曰: 以刑罚胁之以独尊之道——此乃 可度之罪愆。是谓“罪人”之役(谓系统,迫人循定轨),几尽戕戮他役之自由。

    较之而言:若全然决定(一途之概率达百分之一百),则熵当为无,而减损乃百分之一百。吾之实验示之,纵九十之强制,足令自由压之九十一.

    四. 以形而上学释之

    • 造物主非有罪愆. 彼创宇宙 Ω 具最大熵(七点六四比特)。罪者,施力者(或系统)强己道于人。

    • 自由甚微。 欲几尽其自由,九十之概率循教条足矣。宗教之制,以地狱胁人离“正道”,即造此拘。

    • 罪可量也。 吾等可量度其或彼之系统(如教条、律法、社会之压力)减损择自由之程度。此辟「自由之学」之途。

    六六。第六部分之终

    计算之验,确证《朝圣者之信——源》之要义。

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

    模型不证形而上,然予 劳作者,检验之语 论自由、爱与罪。凡愿者皆可自行运行代码,更易参数,验其结果。

    历尽千帆,终抵至要:终得此果。今当析之。

    于 篇一 吾等沉潜于变分之学,悟得求极值之途,非仅技之巧,实乃抉择之深喻。埃勒-拉格朗日之方程,标示「至善」之径,然惟有边界严定方得之。若边界稍弛,则生 解族 —天地之广,万物之生。

    无文本可翻译。 第二部 吾等以MATLAB构建计算之实验,直观见定算法(BFS)寻唯一路径,而变算法(Dijkstra具随机权重)生 诸般轨迹异质非弊,乃特也。吾辈所引。 選擇之熵 生。 为自由之量度。

    В 第三部分 吾等定 爱之效用函数 U(γ) —优化之目标函数之类似物。显平滑拉格朗日乘子 (无条件之爱)与 障碍函数 之异。 (情若交易,挟地狱之威)。实验示之,道之最优,在主观,系于内在之价值体系。

    于 第四部分 ,吾等提议 定义罪愆之新说 ,非为外律之违,乃为减他人选择之熵之行: ΔS罪愆=S前−S后>0. 实验显,强求单途,则毁 91__% 择之自由。

    于 篇五 中,吾等立言 造物主 A=⟨Ω,O,L,A,B⟩ 之职——非若编程者,制每步之序,乃为造物之始。 之境域。匠者不惩不赏,惟予境以待之.

    于 篇六 ,吾等汇诸理于全算之验。其果昭然:择之自由,实可量度;罪愆有度,爱意可塑为圆融之标函数。

    吾等于此六段,所悟何在?

    1. 自由非无规矩,乃有变通之隙。
      熵 生。 — 此空间之度。决定论(S=0)者,循硬定之剧本而生。自由(S)>0) — 此乃择之机也。

    2. 无条件的爱,乃顺滑之目标函数也。
      其不含无穷之罚。其不恫吓以地狱。其惟示方向:增自由,增创造,增恤他人。

    3. 罪非犯律,乃损他人之自由。
      ΔS罪>0. 强己之道,恫吓,操纵——皆可度于失熵之斗。

    4. 建筑师非程序员,亦非裁判。
      彼创可能之域,立初始之境,设游戏之则。然不代择于我。彼授我以自由——此乃至高之赐。

    5. 数学非灭信仰,乃予其言。
      吾辈未“证”神之存。吾辈所建 乃可行之模。,可论自由、爱恋、罪愆,持论严谨,无虚言空泛。

    此文非终极之真。此 邀帖邀思辨,邀争鸣,邀验真。

    若尔心契自由为熵,爱为利之顺适,罪为择他之减损——吾等言同语也。

    若见谬误,或知隙可乘,欲陈善策——请书之。吾当应。虽辩,不愠。

    若觉旧教之形,未足舒怀;尘俗之见,犹存惑结——或此道可近。此乃行者之道。

    续此言谈,可循下文之链。

    • 吾之Telegram频道《信徒行者——源起》 —此间吾布宣言,抒怀,新思,非篇牍所能容者.
      👉 https://t.me/VerapalomnikaIsxod

    • 讨论与疑问之群组 —吾邀诸君,欲询则询,欲明则明,欲辩则辩,欲言则言。无苛责,无戏谑.
      👉 https://t.me/+ApgozeWvVoNjZDZi

    吾欲终以奥地利诗人兼译者雷纳·卡尔·威廉·约翰·约瑟夫·玛丽亚·里尔克之名言作结。其于《致青年诗人书》中云如是:

    «以问自居,或不知不觉,渐行渐远,终至得解」.

    吾不答,吾献之。 之疑 与 之具 以索之。其余,惟尔所决。

    谢君卒读。