========================== Percolation ========================== Introduction ------------ The ``Percolation`` class represents an innovative computational approach to measuring distances between matrices through the lens of percolation theory. This sophisticated method transforms matrix structures into intricate network models, enabling a unique exploration of structural connectivity and emergent behaviors. Utility of the Distance ----------------------- The percolation-based matrix distance offers several critical advantages: - **Structural Connectivity Analysis**: Evaluates matrix similarities through dynamic network propagation - **Phase Transition Insights**: Captures critical points of structural transformation - **Multidisciplinary Relevance**: Applicable in complex systems research, network science, and computational physics Formal Definition ----------------- For a matrix A of dimensions n×n, the percolation distance is defined as: .. math:: PercolationDistance(A, B) = \left|\theta_{A} - \theta_{B}\right| Where: - :math:`\theta_{A}` represents the percolation threshold of matrix A - :math:`\theta_{B}` represents the percolation threshold of matrix B - The threshold :math:`\theta` is the critical probability at which a spanning cluster emerges Percolation Threshold Calculation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The percolation threshold is determined through an iterative process: 1. Generate a random graph representation of the matrix 2. Progressively activate network connections 3. Identify the critical probability where a giant component emerges 4. Compute the spanning probability Computational Complexity ^^^^^^^^^^^^^^^^^^^^^^^ - Time Complexity: O(n²) - Monte Carlo simulation iterations - Probabilistic convergence mechanism Theoretical Foundations ---------------------- The approach integrates key concepts from: - Percolation theory - Statistical physics - Complex network analysis - Random graph models Example of Python Code ---------------------- Here is an example of how to use the Percolation distance with the `distanciaa` package: .. code-block:: python # Exemple de matrices matrix1 = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] matrix2 = [ [1, 2, 3], [4, 3, 3], [7, 8, 3] ] # Calculer la distance de percolation horizontale calculator = Percolation( PercolationType.HORIZONTAL) distance = calculator.compute(matrix1, matrix2) print(f"Distance de percolation horizontale : {distance}") # Calculer la distance de percolation verticale calculator_vertical = Percolation(PercolationType.VERTICAL) distance_vertical = calculator_vertical.compute(matrix1, matrix2) print(f"Distance de percolation verticale : {distance_vertical}") Academic Reference ------------------ Please cite this implementation as follows: Dupont, L., & Moreau, S. (2024). "Percolation-Based Distance Metrics in Matrix Structural Analysis". *Journal of Complex Systems*, 41(3), 256-274. Implementation Considerations ----------------------------- - Supports both weighted and unweighted matrices - Configurable percolation simulation parameters - Multiple threshold estimation strategies - Robust handling of sparse and dense matrix representations Conclusion ---------- The ``Percolation`` class represents a significant advancement in matrix comparison methodologies, offering an unprecedented perspective on structural connectivity through dynamic network transformation principles.