Этот коммит содержится в:
Daniel Ari Friedman 2025-02-11 08:13:37 -08:00
родитель 4e0653b73b
Коммит 58c8260224
10 изменённых файлов: 377 добавлений и 287 удалений

3
.obsidian/appearance.json поставляемый
Просмотреть файл

@ -1,3 +1,4 @@
{
"accentColor": "#ff0000"
"accentColor": "#ff0000",
"theme": "obsidian"
}

8
.obsidian/graph.json поставляемый
Просмотреть файл

@ -1,11 +1,11 @@
{
"collapse-filter": false,
"search": "",
"collapse-filter": true,
"search": "Biofirm",
"showTags": false,
"showAttachments": false,
"hideUnresolved": false,
"showOrphans": true,
"collapse-color-groups": true,
"collapse-color-groups": false,
"colorGroups": [],
"collapse-display": true,
"showArrow": false,
@ -17,6 +17,6 @@
"repelStrength": 10,
"linkStrength": 1,
"linkDistance": 250,
"scale": 0.07829474440680095,
"scale": 0.8918260730087173,
"close": false
}

30
.obsidian/workspace.json поставляемый
Просмотреть файл

@ -6,7 +6,7 @@
{
"id": "dea337cf76935a08",
"type": "tabs",
"dimension": 37.73006134969325,
"dimension": 41.69769173492182,
"children": [
{
"id": "0ba8a1b9b9dd949a",
@ -14,12 +14,12 @@
"state": {
"type": "markdown",
"state": {
"file": "Things/Continuous_Generic/Continuous_Generic_README.md",
"file": "knowledge_base/systems/Adaptive Comanagement.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Continuous_Generic_README"
"title": "Adaptive Comanagement"
}
}
]
@ -27,7 +27,7 @@
{
"id": "99b33ec97f002ea4",
"type": "tabs",
"dimension": 62.26993865030674,
"dimension": 58.30230826507818,
"children": [
{
"id": "283b4112120e60a0",
@ -183,8 +183,17 @@
"command-palette:Open command palette": false
}
},
"active": "283b4112120e60a0",
"active": "b3ae48a59c7d14cd",
"lastOpenFiles": [
"src/models/active_inference/docs/BioFirm/biofirm_schema.md",
"knowledge_base/systems/Adaptive Comanagement.md",
"knowledge_base/systems/Resilience Thinking.md",
"knowledge_base/systems/Social-Ecological Systems.md",
"knowledge_base/systems/Traditional Ecological Knowledge.md",
"knowledge_base/systems/Bioregional Stewardship Theory.md",
"Things/Continuous_Generic/Continuous_Generic_README.md",
"src/models/active_inference/docs/biofirm_schema.md",
"src/models/active_inference/docs/BioFirm",
"Things/Baseball_Game/Baseball_Game.md",
"Things/Baseball_Game",
"Things/Path_Network/venv/lib/python3.10/site-packages/pip-25.0.dist-info/top_level.txt",
@ -195,7 +204,6 @@
"Things/Path_Network/venv/lib/python3.10/site-packages/pip-25.0.dist-info/METADATA",
"Things/Path_Network/venv/lib/python3.10/site-packages/pip-25.0.dist-info/LICENSE.txt",
"Things/Path_Network/venv/lib/python3.10/site-packages/pip-25.0.dist-info/AUTHORS.txt",
"Things/Path_Network/venv/lib/python3.10/site-packages/pip-25.0.dist-info/INSTALLER",
"Things/Path_Network/output/20250207_134114/agent_height_variations.png",
"Things/Path_Network/output/20250207_134114/water_level_distribution.png",
"Things/Path_Network/output/20250207_134114/final_state.png",
@ -207,12 +215,10 @@
"Things/Path_Network/README.md",
"Things/Path_Network/Path_Network_README.md",
"Things/BioFirm/BioFirm_README.md",
"Things/Continuous_Generic/Continuous_Generic_README.md",
"Output/tests/visualization/detailed_summary.png",
"Output/tests/visualization/summary.png",
"knowledge_base/cognitive/continuous_time_active_inference.md",
"Things/Generic_POMDP/Generic_POMDP_README.md",
"src/models/active_inference/docs/biofirm_schema.md",
"knowledge_base/agents/GenericPOMDP/matrices/A_matrix.md",
"knowledge_base/agents/GenericPOMDP/state_spaces/s_space.md",
"src/models/active_inference/docs/active_inference_dispatcher.md",
@ -225,12 +231,6 @@
"knowledge_base/agents/GenericPOMDP/guides/a_space_enthusiast.md",
"knowledge_base/mathematics/information_gain.md",
"knowledge_base/agents/GenericPOMDP/guides/b_matrix_enthusiast.md",
"knowledge_base/agents/GenericPOMDP/guides/o_space_enthusiast.md",
"knowledge_base/agents/GenericPOMDP/guides/b_matrix_basics.md",
"knowledge_base/mathematics/free_energy.md",
"knowledge_base/mathematics/expected_free_energy.md",
"knowledge_base/mathematics/active_inference_pomdp.md",
"knowledge_base/mathematics/compute_efe.md",
"knowledge_base/mathematics/belief_updating.md"
"knowledge_base/agents/GenericPOMDP/guides/o_space_enthusiast.md"
]
}

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -0,0 +1,356 @@
# BioFirm Active Inference Schema
## Core Abstractions
### [[State Space Abstraction]]
```python
@dataclass
class StateSpace:
"""Abstract representation of state spaces in active inference models."""
dimensions: List[int]
labels: Dict[str, List[str]]
mappings: Dict[str, np.ndarray]
hierarchical_levels: Optional[int] = 1
scale: Optional[str] = None # spatial scale of the state space
temporal_resolution: Optional[str] = None # temporal resolution
```
### [[Bioregional State Space]]
```python
@dataclass
class BioregionalState:
"""Comprehensive bioregional state representation."""
ecological_state: Dict[str, float] = field(default_factory=lambda: {
"biodiversity": 0.0,
"habitat_connectivity": 0.0,
"ecosystem_services": 0.0,
"species_richness": 0.0,
"ecological_integrity": 0.0
})
climate_state: Dict[str, float] = field(default_factory=lambda: {
"temperature": 0.0,
"precipitation": 0.0,
"carbon_storage": 0.0,
"albedo": 0.0,
"extreme_events": 0.0
})
social_state: Dict[str, float] = field(default_factory=lambda: {
"community_engagement": 0.0,
"traditional_knowledge": 0.0,
"stewardship_practices": 0.0,
"resource_governance": 0.0,
"social_resilience": 0.0
})
economic_state: Dict[str, float] = field(default_factory=lambda: {
"sustainable_livelihoods": 0.0,
"circular_economy": 0.0,
"ecosystem_valuation": 0.0,
"green_infrastructure": 0.0,
"resource_efficiency": 0.0
})
```
### [[Observation Model]]
```python
@dataclass
class ObservationModel:
"""Generalized observation model for active inference."""
state_space: StateSpace
observation_space: StateSpace
likelihood_matrix: np.ndarray # A matrix
noise_model: str = "gaussian"
precision: float = 1.0
```
### [[Transition Model]]
```python
@dataclass
class TransitionModel:
"""Dynamic transition model for state evolution."""
state_space: StateSpace
action_space: StateSpace
transition_matrices: Dict[str, np.ndarray] # B matrices
temporal_horizon: int
control_modes: List[str] = ["homeostatic", "goal_directed", "exploratory"]
```
## Homeostatic Control Framework
### 1. [[System Definition]]
```yaml
system:
name: "BioFirm"
type: "bioregional_stewardship"
state_spaces:
bioregional:
dimensions: [20] # Combined dimensions from ecological, climate, social, economic states
type: "continuous"
bounds: [0.0, 1.0]
scales: ["local", "landscape", "regional", "bioregional"]
observation:
dimensions: [5] # [CRITICAL, POOR, FAIR, GOOD, EXCELLENT]
type: "ordinal"
mapping: "probabilistic"
uncertainty: "heteroscedastic"
action:
dimensions: [4] # [PROTECT, RESTORE, ENHANCE, TRANSFORM]
type: "discrete"
constraints: "nested"
coupling: "cross_scale"
control_parameters:
temporal_horizon: 20
precision_init: 1.0
learning_rate: 0.01
exploration_weight: 0.3
adaptation_rate: 0.05
cross_scale_coupling: 0.4
```
### 2. [[Inference Configuration]]
```yaml
inference:
method: "variational" # or "sampling", "mean_field"
policy_type: "discrete"
variational_parameters:
free_energy_type: "expected"
inference_iterations: 10
convergence_threshold: 1e-6
belief_initialization:
type: "uniform"
prior_strength: 1.0
precision_dynamics:
update_rule: "adaptive"
learning_rate: 0.1
bounds: [0.1, 10.0]
```
### 3. [[Matrix Specifications]]
```yaml
matrices:
observation_model: # A Matrix
type: "hierarchical_probabilistic"
normalization: "hierarchical"
sparsity: "block_structured"
initialization: "informed_ecological"
transition_model: # B Matrix
type: "coupled_markov"
constraints: "mass_energy_conservation"
symmetry: "ecological_networks"
initialization: "ecosystem_based"
preference_model: # C Matrix
type: "multi_objective"
target_states:
ecological: "GOOD"
social: "FAIR"
economic: "SUSTAINABLE"
weights:
ecological: 0.4
social: 0.3
economic: 0.3
prior_beliefs: # D Matrix
type: "hierarchical_distribution"
initialization: "expert_informed"
update_rule: "bayesian_ecological"
```
## Analysis Framework
### 1. [[Performance Metrics]]
```python
@dataclass
class BioregionalMetrics:
"""Comprehensive bioregional performance tracking."""
ecological_metrics: Dict[str, float] = field(default_factory=lambda: {
"biodiversity_index": 0.0,
"ecosystem_health": 0.0,
"habitat_connectivity": 0.0,
"species_persistence": 0.0,
"ecological_resilience": 0.0
})
climate_metrics: Dict[str, float] = field(default_factory=lambda: {
"carbon_sequestration": 0.0,
"water_regulation": 0.0,
"microclimate_stability": 0.0,
"extreme_event_buffer": 0.0
})
social_metrics: Dict[str, float] = field(default_factory=lambda: {
"community_participation": 0.0,
"knowledge_integration": 0.0,
"cultural_preservation": 0.0,
"governance_effectiveness": 0.0
})
economic_metrics: Dict[str, float] = field(default_factory=lambda: {
"sustainable_value": 0.0,
"resource_efficiency": 0.0,
"green_jobs": 0.0,
"ecosystem_services_value": 0.0
})
stewardship_metrics: Dict[str, float] = field(default_factory=lambda: {
"management_effectiveness": 0.0,
"stakeholder_engagement": 0.0,
"adaptive_capacity": 0.0,
"cross_scale_coordination": 0.0
})
```
### 2. [[Visualization Suite]]
```python
class BioregionalVisualization:
"""Comprehensive bioregional visualization tools."""
@staticmethod
def plot_system_state(
bioregional_state: BioregionalState,
time_series: np.ndarray
) -> plt.Figure:
"""Visualize multi-dimensional system state."""
pass
@staticmethod
def plot_intervention_impacts(
before_state: BioregionalState,
after_state: BioregionalState,
intervention_data: Dict[str, Any]
) -> plt.Figure:
"""Visualize intervention outcomes."""
pass
@staticmethod
def plot_cross_scale_dynamics(
states: Dict[str, np.ndarray],
scales: List[str],
interactions: np.ndarray
) -> plt.Figure:
"""Visualize cross-scale ecological dynamics."""
pass
```
## Extension Points
### 1. [[Stewardship Modes]]
```python
class StewardshipMode(ABC):
"""Abstract base class for stewardship modes."""
@abstractmethod
def evaluate_state(self,
current_state: BioregionalState,
target_state: BioregionalState) -> float:
"""Evaluate current state against stewardship goals."""
pass
@abstractmethod
def propose_interventions(self,
state: BioregionalState,
constraints: Dict[str, Any]) -> List[Intervention]:
"""Propose context-appropriate interventions."""
pass
```
### 2. [[Learning Mechanisms]]
```python
class LearningMechanism(ABC):
"""Abstract base class for learning mechanisms."""
@abstractmethod
def update_parameters(self,
experience: Experience,
current_params: ModelParameters) -> ModelParameters:
"""Update model parameters based on experience."""
pass
```
### 3. [[Adaptation Strategies]]
```python
class AdaptationStrategy(ABC):
"""Abstract base class for adaptation strategies."""
@abstractmethod
def adapt_control_parameters(self,
performance: PerformanceMetrics,
current_params: ControlParameters
) -> ControlParameters:
"""Adapt control parameters based on performance."""
pass
```
## Integration Examples
### 1. [[Bioregional Stewardship]]
```python
# Configure bioregional stewardship
config = InferenceConfig(
method=InferenceMethod.HIERARCHICAL_SAMPLING,
policy_type=PolicyType.MIXED,
temporal_horizon=20,
spatial_scales=["local", "landscape", "regional"],
learning_rate=0.01,
precision_init=1.0,
custom_params={
"stewardship_mode": "adaptive_comanagement",
"stakeholder_weights": {
"local_communities": 0.3,
"indigenous_knowledge": 0.3,
"scientific_expertise": 0.2,
"policy_makers": 0.2
},
"intervention_constraints": {
"budget_limit": 1000000,
"time_horizon": "5y",
"social_acceptance": 0.7
}
}
)
# Create bioregional stewardship dispatcher
dispatcher = BioregionalStewardshipFactory.create(config)
```
### 2. [[Advanced Stewardship]]
```python
# Configure advanced stewardship with learning
config = InferenceConfig(
method=InferenceMethod.PARTICIPATORY_SAMPLING,
policy_type=PolicyType.ADAPTIVE,
temporal_horizon=50,
num_samples=5000,
custom_params={
"stewardship_mode": "transformative",
"learning_mechanism": "social_ecological",
"adaptation_strategy": "resilience_based",
"cross_scale_coupling": True,
"stakeholder_network": "distributed"
}
)
# Create dispatcher with social-ecological learning
dispatcher = BioregionalStewardshipFactory.create_with_learning(config)
```
## References
1. [[Bioregional Stewardship Theory]]
2. [[Social-Ecological Systems]]
3. [[Adaptive Comanagement]]
4. [[Resilience Thinking]]
5. [[Traditional Ecological Knowledge]]

Просмотреть файл

@ -1,267 +0,0 @@
# BioFirm Active Inference Schema
## Core Abstractions
### [[State Space Abstraction]]
```python
@dataclass
class StateSpace:
"""Abstract representation of state spaces in active inference models."""
dimensions: List[int]
labels: Dict[str, List[str]]
mappings: Dict[str, np.ndarray]
hierarchical_levels: Optional[int] = 1
```
### [[Observation Model]]
```python
@dataclass
class ObservationModel:
"""Generalized observation model for active inference."""
state_space: StateSpace
observation_space: StateSpace
likelihood_matrix: np.ndarray # A matrix
noise_model: str = "gaussian"
precision: float = 1.0
```
### [[Transition Model]]
```python
@dataclass
class TransitionModel:
"""Dynamic transition model for state evolution."""
state_space: StateSpace
action_space: StateSpace
transition_matrices: Dict[str, np.ndarray] # B matrices
temporal_horizon: int
control_modes: List[str] = ["homeostatic", "goal_directed", "exploratory"]
```
## Homeostatic Control Framework
### 1. [[System Definition]]
```yaml
system:
name: "BioFirm"
type: "homeostatic_control"
state_spaces:
environment:
dimensions: [5] # [TOO_LOW, LOWER_BOUND, MEDIUM, UPPER_BOUND, TOO_HIGH]
type: "ordinal"
bounds: [-2.0, 2.0]
observation:
dimensions: [3] # [LOW, MEDIUM, HIGH]
type: "categorical"
mapping: "probabilistic"
action:
dimensions: [3] # [DECREASE, MAINTAIN, INCREASE]
type: "discrete"
constraints: "ordered"
control_parameters:
temporal_horizon: 5
precision_init: 1.0
learning_rate: 0.01
exploration_weight: 0.3
```
### 2. [[Inference Configuration]]
```yaml
inference:
method: "variational" # or "sampling", "mean_field"
policy_type: "discrete"
variational_parameters:
free_energy_type: "expected"
inference_iterations: 10
convergence_threshold: 1e-6
belief_initialization:
type: "uniform"
prior_strength: 1.0
precision_dynamics:
update_rule: "adaptive"
learning_rate: 0.1
bounds: [0.1, 10.0]
```
### 3. [[Matrix Specifications]]
```yaml
matrices:
observation_model: # A Matrix
type: "probabilistic"
normalization: "column"
sparsity: "structured"
initialization: "informed"
transition_model: # B Matrix
type: "markov"
constraints: "conservation"
symmetry: "none"
initialization: "identity_based"
preference_model: # C Matrix
type: "log_probability"
target_state: "MEDIUM"
sharpness: 2.0
prior_beliefs: # D Matrix
type: "distribution"
initialization: "uniform"
update_rule: "bayesian"
```
## Analysis Framework
### 1. [[Performance Metrics]]
```python
@dataclass
class PerformanceMetrics:
"""Comprehensive performance tracking."""
homeostatic_metrics: Dict[str, float] = field(default_factory=lambda: {
"mean_deviation": 0.0,
"time_in_bounds": 0.0,
"recovery_speed": 0.0,
"stability_index": 0.0
})
information_metrics: Dict[str, float] = field(default_factory=lambda: {
"belief_accuracy": 0.0,
"epistemic_value": 0.0,
"pragmatic_value": 0.0,
"uncertainty": 0.0
})
control_metrics: Dict[str, float] = field(default_factory=lambda: {
"action_efficiency": 0.0,
"policy_consistency": 0.0,
"response_time": 0.0
})
```
### 2. [[Visualization Suite]]
```python
class VisualizationSuite:
"""Comprehensive visualization tools."""
@staticmethod
def plot_belief_dynamics(beliefs: np.ndarray,
times: np.ndarray) -> plt.Figure:
"""Plot belief evolution over time."""
pass
@staticmethod
def plot_free_energy_components(
vfe: np.ndarray,
efe: np.ndarray,
components: Dict[str, np.ndarray]
) -> plt.Figure:
"""Visualize free energy decomposition."""
pass
@staticmethod
def plot_control_performance(
states: np.ndarray,
actions: np.ndarray,
bounds: Tuple[float, float]
) -> plt.Figure:
"""Visualize control performance."""
pass
```
## Extension Points
### 1. [[Custom Control Modes]]
```python
class ControlMode(ABC):
"""Abstract base class for control modes."""
@abstractmethod
def compute_policy_prior(self,
state: ModelState,
goal: np.ndarray) -> np.ndarray:
"""Compute policy prior based on control mode."""
pass
```
### 2. [[Learning Mechanisms]]
```python
class LearningMechanism(ABC):
"""Abstract base class for learning mechanisms."""
@abstractmethod
def update_parameters(self,
experience: Experience,
current_params: ModelParameters) -> ModelParameters:
"""Update model parameters based on experience."""
pass
```
### 3. [[Adaptation Strategies]]
```python
class AdaptationStrategy(ABC):
"""Abstract base class for adaptation strategies."""
@abstractmethod
def adapt_control_parameters(self,
performance: PerformanceMetrics,
current_params: ControlParameters
) -> ControlParameters:
"""Adapt control parameters based on performance."""
pass
```
## Integration Examples
### 1. [[Basic Homeostatic Control]]
```python
# Configure basic homeostatic control
config = InferenceConfig(
method=InferenceMethod.VARIATIONAL,
policy_type=PolicyType.DISCRETE,
temporal_horizon=5,
learning_rate=0.01,
precision_init=1.0,
custom_params={
"control_mode": "homeostatic",
"bounds": [-1.0, 1.0],
"target_state": "MEDIUM"
}
)
# Create dispatcher
dispatcher = ActiveInferenceFactory.create(config)
```
### 2. [[Advanced Control]]
```python
# Configure advanced control with learning
config = InferenceConfig(
method=InferenceMethod.SAMPLING,
policy_type=PolicyType.CONTINUOUS,
temporal_horizon=10,
num_samples=2000,
custom_params={
"control_mode": "adaptive",
"learning_mechanism": "parameter_estimation",
"adaptation_strategy": "performance_based"
}
)
# Create dispatcher with learning
dispatcher = ActiveInferenceFactory.create_with_learning(config)
```
## References
1. [[Homeostatic Control Theory]]
2. [[Active Inference for Control]]
3. [[Adaptive Systems]]
4. [[Information Theory in Control]]