Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2.0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение наших публикаций по тензорному моделированию сукцессии микоризных ассоциаций (УДК 519.87:574.3) представляю архитектурный план следующего этапа: создание сети взаимопроверяющих моделей разной размерности и на разных платформах.
1. Текущее состояние (v1.1.2)
На сегодняшний день разработано и откалибровано 28-мерное тензорное ядро на Python (SciPy, метод Radau), включающее:
- Три зоны мицелия (Core/Tips/Old) для AM и ECM
- Лабильный и стабильный (породный) пулы фосфора
- Листопад и реабсорбцию P (2% биомассы/год, 45% реабсорбция)
- Замкнутый симбиоз: гриб → P → хозяин (рост лимитирован фосфорным статусом)
- Хвойный подрост и устойчивые островки ECM
- Гидрологическое сжатие хотспота (динамический радиус ферментов)
- Вскрытие породы ECM при устойчивом закислении (медленное среднее pH)
- Азотный контур (в процессе калибровки)
Масштаб модели: делянка ~10 м² (проекция кроны одного дерева), гектар = ~1000 таких клеток.
N_STATE = 28 (планируется расширение до 30–32).
2. Сеть взаимопроверяющих моделей
Цель: создать три независимые реализации одной и той же физико-математической модели, чтобы:
- Проверять результаты друг через друга (кросс-верификация)
- Выявлять численные артефакты, специфичные для конкретного решателя
- Иметь эталон для калибровки при переходе к пространственным клеточным автоматам
Структура сети:
| Code | 1
2
3
| M1 (Wolfram 7d) ←→ M4 (Python 7d)
↕ ↕
M3 (Wolfram 28d) ←→ M2 (Python 28d) |
|
- M1 — Wolfram Mathematica, 7 переменных (упрощённый эталон). Работает, отлажен.
- M2 — Python (SciPy Radau), 28–32 переменных (основной движок). В разработке у Claude.
- M3 — Wolfram Mathematica, 28–32 переменных (точная копия M2). Будет создан после завершения M2.
- M4 — Python, 7 переменных (упрощённая версия M2 для кросс-проверки). Будет создан из M1.
Горизонтальные связи: сравниваем решатели на одинаковой размерности.
Вертикальные связи: оцениваем эффект перехода от 7d к 28d.
3. Этапы развития до v2.0
Этап 1: Доводка 28-мерного ядра (завершается)
- А9 — калибровка PS_base до равновесного роста дерева (1.16 → 1.38)
- А10 — замкнутый азотный контур (передача N → хозяину, пулы N в тканях)
- Б0.1 — биологические рынки (переток P между зонами одного дерева)
- Б0.2 — трейд-офф «Конкуренция-Функция» (адресная подкормка проигравшего гриба)
- Б0.3 — стратегия репродуктивного спасения (спороношение проигравшего)
Этап 2: Часть Б (новая территория)
- Б1 — эффект Алли для хвойного подроста (порог выживания)
- Б2 — перекалибровка K и W_coalesce_threshold (срастание островков)
- Б3 — шум/ансамбль (стохастическая бифуркация, «1 успех из N»)
- Б4 — отдельная pH-толерантность для хвойных (кислый оптимум)
- Б5 — pH-толерантность MHB (по аналогии с сапротрофом)
Этап 3: Сеть взаимопроверяющих моделей
- Перенос 28-мерного Python-ядра в Wolfram (M3)
- Создание 7-мерной Python-модели из Wolfram-эталона (M4)
- Автоматизация кросс-проверки (скрипт сравнения траекторий)
- Параметрический свип на всех четырёх моделях → сравнение чувствительности
4. Ключевые параметры модели v2.0
| | | [tr][td]Компонент[/td][td]Реализовано[/td][td]N_STATE[/td][/tr] | | [tr][td]AM мицелий (Core/Tips/Old)[/td][td]✅[/td][td]3[/td][/tr] | | [tr][td]ECM мицелий (Core/Tips/Old)[/td][td]✅[/td][td]3[/td][/tr] | | [tr][td]Азот почвы + некромасса ECM[/td][td]✅[/td][td]2[/td][/tr] | | [tr][td]Фосфор (лабильный + породный)[/td][td]✅[/td][td]5[/td][/tr] | | [tr][td]Субстрат, опад, фауна, MHB, сапротроф[/td][td]✅[/td][td]5[/td][/tr] | | [tr][td]Дерево + подрост + островки[/td][td]✅[/td][td]3[/td][/tr] | | [tr][td]Протоны (pH) + pH-среднее[/td][td]✅[/td][td]2[/td][/tr] | | [tr][td]P в тканях хозяев[/td][td]✅[/td][td]2[/td][/tr] | | [tr][td]N в тканях хозяев[/td][td]⏳[/td][td]2[/td][/tr] | | [tr][td]Споры AM/ECM[/td][td]⏳[/td][td]2[/td][/tr] | | [tr][td]Итого v2.0[/td][td][/td][td]30–32[/td][/tr] |
5. Автоматизация кросс-проверки
После создания всех четырёх моделей будет написан скрипт, который:
- Запускает M1, M2, M3, M4 на одинаковом наборе параметров (100+ вариаций)
- Сравнивает ключевые метрики: pH_final, время активации ECM, биомассы на 50-м году
- Выводит расхождения > 1% между любой парой моделей
- Сохраняет все траектории для визуализации
Целевая точность кросс-проверки: < 0.5% расхождения между Python и Wolfram на одинаковой размерности.
6. Прикладное значение
Данная сеть моделей решает три ключевые задачи:
- Верификация численных методов: Wolfram NDSolve с символьным контролем шага выявляет артефакты, которые Python-решатель «проглатывает».
- Калибровка по литературе: Упрощённые модели (7d) позволяют быстро перебирать параметры; сложные (28d) — дают финальные траектории.
- Переход к пространственным моделям: Сеть служит эталоном для калибровки будущих клеточных автоматов (гектар = 1000 клеток по 10 м²).
7. Ближайшие планы
- Доводка азотного контура и добавление трёх механизмов микологии (биологические рынки, трейд-офф, спороношение) — завершение M2
- Перенос M2 в Wolfram Mathematica — создание M3
- Создание M4 (Python 7d) из существующего Wolfram-эталона
- Запуск параметрического свипа и публикация результатов
[hr]
Приглашаю коллег к обсуждению архитектуры, особенно по следующим вопросам:
- Стоит ли добавлять в сеть модель на Julia (DifferentialEquations.jl) для тройной кросс-проверки?
- Какой метод обработки событий (WhenEvent vs. дискретные переменные) даёт меньшие артефакты при бифуркациях?
- Каков оптимальный размер делянки для калибровки по литературным данным (10 м² vs 20 м²)?
[hr]
Архитектор проекта: anaschu
Текущий статус: v1.1.2 — 28-мерное ядро откалибровано, переход к v2.0
|