Saltar a contenido

core.base_operator

base_operator

Interfaz Base del Operador de Integridad de Bisagra (IOB).

Provee la axiomatización fundamental para la cuantificación de estrés espacial, operando sobre grafos computacionales diferenciables (Autograd) para permitir su integración como función de pérdida (Loss) en arquitecturas de aprendizaje profundo.

BaseIntegrityOperator

Bases: ABC

Clase abstracta que define el funcional métrico universal \mathcal{H}.

Establece el contrato topológico para los operadores IOB (Dominio Continuo) y D-IOB (Dominio Discreto).

Parameters:

Name Type Description Default
epsilon_tolerance float

Factor de regularización topológica (\varepsilon_{mach}) empleado para mitigar singularidades estocásticas y prevenir la degeneración aritmética en regiones de vacío (e.g., grafos desconectados o gradientes nulos).

1e-8
Source code in iobsolve/core/base_operator.py
class BaseIntegrityOperator(ABC):
    r"""
    Clase abstracta que define el funcional métrico universal \mathcal{H}.

    Establece el contrato topológico para los operadores IOB (Dominio Continuo) 
    y D-IOB (Dominio Discreto).

    Parameters
    ----------
    epsilon_tolerance : float, default=1e-8
        Factor de regularización topológica (\varepsilon_{mach}) empleado para 
        mitigar singularidades estocásticas y prevenir la degeneración aritmética
        en regiones de vacío (e.g., grafos desconectados o gradientes nulos).
    """

    def __init__(self, epsilon_tolerance: float = 1e-8) -> None:
        self.epsilon_tolerance = epsilon_tolerance

    @abstractmethod
    def compute_stress(self, state_tensor: ManifoldField | NodalStateVector, **kwargs: Any) -> StressTensor:
        r"""
        Calcula el residuo asimétrico (estrés geométrico o tensión topológica).

        Parameters
        ----------
        state_tensor : ManifoldField | NodalStateVector
            Tensor diferenciable que describe el estado dinámico del sistema sobre la 
            variedad euclidiana (\Omega) o el esqueleto topológico (\mathcal{G}).

        Returns
        -------
        StressTensor
            Tensor que cuantifica la divergencia o deformación local, preservando
            el historial de gradientes computacionales (Autograd track).
        """
        pass

    @abstractmethod
    def locate_singularities(self, stress_tensor: StressTensor,
                             threshold: float) -> tuple[torch.Tensor, ...]:
        r"""
        Aísla subdominios o subgrafos con deformaciones superiores a la cota crítica.

        Parameters
        ----------
        stress_tensor : StressTensor
            El campo de estrés topológico o Z-Score robusto \mathcal{M}_i(t) previamente computado.
        threshold : float
            Valor crítico de tensión (\tau_c) que gatilla la ramificación del QuadTree 
            (continuo) o la extirpación de aristas (discreto).

        Returns
        -------
        tuple[torch.Tensor, ...]
            Tensores de índices o coordenadas euclidianas que encapsulan espacialmente 
            a las singularidades para su posterior cicatrización.
        """
        pass

compute_stress abstractmethod

compute_stress(
    state_tensor: ManifoldField | NodalStateVector,
    **kwargs: Any
) -> StressTensor

Calcula el residuo asimétrico (estrés geométrico o tensión topológica).

Parameters:

Name Type Description Default
state_tensor ManifoldField | NodalStateVector

Tensor diferenciable que describe el estado dinámico del sistema sobre la variedad euclidiana (\Omega) o el esqueleto topológico (\mathcal{G}).

required

Returns:

Type Description
StressTensor

Tensor que cuantifica la divergencia o deformación local, preservando el historial de gradientes computacionales (Autograd track).

Source code in iobsolve/core/base_operator.py
@abstractmethod
def compute_stress(self, state_tensor: ManifoldField | NodalStateVector, **kwargs: Any) -> StressTensor:
    r"""
    Calcula el residuo asimétrico (estrés geométrico o tensión topológica).

    Parameters
    ----------
    state_tensor : ManifoldField | NodalStateVector
        Tensor diferenciable que describe el estado dinámico del sistema sobre la 
        variedad euclidiana (\Omega) o el esqueleto topológico (\mathcal{G}).

    Returns
    -------
    StressTensor
        Tensor que cuantifica la divergencia o deformación local, preservando
        el historial de gradientes computacionales (Autograd track).
    """
    pass

locate_singularities abstractmethod

locate_singularities(
    stress_tensor: StressTensor, threshold: float
) -> tuple[torch.Tensor, ...]

Aísla subdominios o subgrafos con deformaciones superiores a la cota crítica.

Parameters:

Name Type Description Default
stress_tensor StressTensor

El campo de estrés topológico o Z-Score robusto \mathcal{M}_i(t) previamente computado.

required
threshold float

Valor crítico de tensión (\tau_c) que gatilla la ramificación del QuadTree (continuo) o la extirpación de aristas (discreto).

required

Returns:

Type Description
tuple[Tensor, ...]

Tensores de índices o coordenadas euclidianas que encapsulan espacialmente a las singularidades para su posterior cicatrización.

Source code in iobsolve/core/base_operator.py
@abstractmethod
def locate_singularities(self, stress_tensor: StressTensor,
                         threshold: float) -> tuple[torch.Tensor, ...]:
    r"""
    Aísla subdominios o subgrafos con deformaciones superiores a la cota crítica.

    Parameters
    ----------
    stress_tensor : StressTensor
        El campo de estrés topológico o Z-Score robusto \mathcal{M}_i(t) previamente computado.
    threshold : float
        Valor crítico de tensión (\tau_c) que gatilla la ramificación del QuadTree 
        (continuo) o la extirpación de aristas (discreto).

    Returns
    -------
    tuple[torch.Tensor, ...]
        Tensores de índices o coordenadas euclidianas que encapsulan espacialmente 
        a las singularidades para su posterior cicatrización.
    """
    pass