Source code for mercurial.params.empirical

"""Empirical parameter database for the MERCURIAL framework.

This file contains all literature‑driven and physically justified parameters
for neural models (Wilson‑Cowan, Jansen‑Rit, Hopf, Kuramoto, Hebbian),
sensory transduction (photoreceptor, hair cell), quantum field propagation,
entanglement, and the core Priorities 1‑4 (thermodynamics, pattern formation,
impression formation, LADDER coupling, branch decoherence).
"""

from dataclasses import dataclass
from typing import Any, Dict

# ============================================================================
# Neural models (Wilson‑Cowan, Jansen‑Rit, Hopf, Kuramoto, Hebbian)
# ============================================================================


[docs] @dataclass class WilsonCowanParams: """Literature‑sourced Wilson‑Cowan parameters.""" tau_e: float = 0.0025 # s tau_i: float = 0.00375 # s a_e: float = 1.5 a_i: float = 1.5 mu_e: float = 3.0 mu_i: float = 3.0 w_ee: float = 16.0 w_ie: float = 12.0 w_ei: float = 15.0 w_ii: float = 3.0 sigma_e: float = 5e-5 sigma_i: float = 5e-5
[docs] @dataclass class JansenRitParams: """Literature‑sourced Jansen‑Rit parameters.""" a: float = 100.0 # s⁻¹ (τₑ = 1/a = 0.01 s) b: float = 50.0 # s⁻¹ (τᵢ = 1/b = 0.02 s) A: float = 3.25 # mV B: float = 22.0 # mV C: float = 135.0 C1: float = 135.0 C2: float = 108.0 # 0.8 * C C3: float = 33.75 # 0.25 * C C4: float = 33.75 # 0.25 * C e0: float = 5.0 # s⁻¹ v0: float = 6.0 # mV r: float = 0.56 # mV⁻¹
[docs] @dataclass class HopfParams: """Parameters for Hopf oscillator (frequency bands).""" alpha_rest: float = -0.1 alpha_active: float = 0.1 beta: float = 1.0 omega_alpha: float = 2 * 3.141592653589793 * 10.0 # rad/s omega_beta: float = 2 * 3.141592653589793 * 20.0 omega_gamma: float = 2 * 3.141592653589793 * 40.0 sigma: float = 0.05
[docs] @dataclass class KuramotoParams: """Parameters for Kuramoto oscillator.""" coupling_weak: float = 0.1 coupling_moderate: float = 0.5 coupling_strong: float = 0.9 phase_noise: float = 0.05
[docs] @dataclass class HebbianParams: """Parameters for Hebbian plasticity.""" learning_rate: float = 0.001 decay: float = 0.2 stdp_ltp_rate: float = 0.001 stdp_ltd_rate: float = 0.001 stdp_tau_plus: float = 0.020 # s stdp_tau_minus: float = 0.020 # s
# ============================================================================ # Sensory transduction # ============================================================================
[docs] @dataclass class PhotoreceptorParams: """Naka‑Rushton photoreceptor model parameters.""" R_max: float = 100.0 # Hz I50: float = 100.0 # cd/m² n: float = 1.0 tau_p: float = 0.020 # s alpha_adapt: float = 0.1 # s⁻¹
[docs] @dataclass class HairCellParams: """Hair cell Boltzmann transduction parameters.""" g_max: float = 5e-9 # S z: float = 0.2 # pN⁻¹ x0: float = 0.0 # nm tau_fast: float = 0.002 # s tau_slow: float = 0.050 # s
# ============================================================================ # Quantum field propagation (QFT) # ============================================================================
[docs] @dataclass class QFTParams: """Parameters for Klein‑Gordon and Dirac field solvers.""" mass_scalar: float = 0.5 # natural units mass_dirac: float = 0.5 # natural units dx: float = 0.05 # spatial step (natural units) courant_factor: float = 0.707 # 1/√2 for 2D stability
# ============================================================================ # Additional realism enhancements (2D neural fields, FDTD, pattern completion, # entanglement) # ============================================================================
[docs] @dataclass class NeuralFieldParams: """2D neural field lateral connectivity parameters.""" A_e: float = 1.0 sigma_e: float = 0.5 # mm A_i: float = 0.8 sigma_i: float = 1.5 # mm dx: float = 0.5 # mm (cortical column spacing)
[docs] @dataclass class FDTDParams: """Biological tissue dielectric properties for FDTD.""" tissue_type: str = "gray_matter" frequency: float = 1e9 # Hz eps_r_gray: float = 52.0 sigma_gray: float = 0.98 # S/m eps_r_white: float = 38.0 sigma_white: float = 0.60 # S/m
[docs] @dataclass class PatternCompletionParams: """Olfactory/gustatory network parameters.""" n_glomeruli: int = 8000 # human young adult n_mitral_cells: int = 40000 n_piriform_neurons: int = 20000000 # estimated human tau_a: float = 0.020 # s (neural time constant) pattern_sparsity: float = 0.1 learning_rate: float = 0.001
[docs] @dataclass class EntanglementParams: """Quantum optical parameters for entanglement measures.""" squeezing_r: float = 0.5 squeezing_theta: float = 0.0 thermal_nbar: float = 0.05 coherence_length: float = 1.0
# ============================================================================ # Priorities 1‑4: Thermodynamics, pattern formation, impression formation, # LADDER coupling, branch decoherence # ============================================================================
[docs] @dataclass class ThermodynamicParams: """Parameters for free energy and entropy (Priority 1).""" T_eff: float = 1.0 # dimensionless k_eff: float = 1.0 # dimensionless eta: float = 0.01 # learning rate (temperature) gamma0: float = 0.001 # s⁻¹ (base decay rate)
[docs] @dataclass class PatternFormationParams: """Reaction‑diffusion / Turing parameters (Priority 2).""" diff_ratio: float = 0.1 reaction_rate: float = 0.05 # s⁻¹ decay_rate: float = 0.01 # s⁻¹ growth_param: float = 0.5
[docs] @dataclass class ImpressionParams: """Memory consolidation and emotional parameters (Priority 3).""" eta_STP: float = 0.1 eta_LTP: float = 0.02 # s⁻¹ gamma_forget: float = 0.001 # s⁻¹ kappa_emo: float = 2.0 beta_rep: float = 0.5
[docs] @dataclass class LadderCouplingParams: """Cross‑level coupling (LADDER) parameters (Priority 4).""" K0: float = 0.1 l_decay: float = 1.0 # level units L_min: int = 7 L_max: int = 10
[docs] @dataclass class DecoherenceParams: """Branch decoherence parameters (Priority 4).""" gamma_dec0: float = 0.1 # s⁻¹ kappa_env: float = 0.01 theta_branch: float = 0.7
# ============================================================================ # Helper functions # ============================================================================
[docs] def get_all_parameters() -> Dict[str, Any]: """Return all empirical parameters as a dictionary.""" return { "wilson_cowan": WilsonCowanParams().__dict__, "jansen_rit": JansenRitParams().__dict__, "hopf": HopfParams().__dict__, "kuramoto": KuramotoParams().__dict__, "hebbian": HebbianParams().__dict__, "photoreceptor": PhotoreceptorParams().__dict__, "hair_cell": HairCellParams().__dict__, "qft": QFTParams().__dict__, "neural_field": NeuralFieldParams().__dict__, "fdtd": FDTDParams().__dict__, "pattern_completion": PatternCompletionParams().__dict__, "entanglement": EntanglementParams().__dict__, "thermodynamic": ThermodynamicParams().__dict__, "pattern_formation": PatternFormationParams().__dict__, "impression": ImpressionParams().__dict__, "ladder_coupling": LadderCouplingParams().__dict__, "decoherence": DecoherenceParams().__dict__, }