Skip to content

Entanglement API Reference

Complete API documentation for quantum-inspired entanglement networks.

QuantumEntangler Class

Main class for creating and managing entanglement networks between memes.

Constructor

class QuantumEntangler:
    def __init__(
        self,
        correlation_threshold: float = 0.7,
        max_entanglement_degree: int = 100,
        decay_rate: float = 0.95,
        algorithm: str = "quantum_inspired"
    ) -> None:
        """
        Initialize quantum entangler.

        Args:
            correlation_threshold: Minimum correlation for entanglement
            max_entanglement_degree: Maximum connections per meme
            decay_rate: Entanglement decay rate over time
            algorithm: Entanglement algorithm to use
        """

Properties

Property Type Description
correlation_threshold float Minimum correlation for entanglement
max_entanglement_degree int Maximum connections per meme
decay_rate float Rate of entanglement decay
network EntanglementNetwork Current entanglement network
total_entanglements int Total number of entanglements
network_density float Network density metric

Core Methods

Network Creation

def create_network(
    self,
    memes: List[Meme],
    method: str = "similarity_based"
) -> EntanglementNetwork:
    """
    Create entanglement network from memes.

    Args:
        memes: List of memes to entangle
        method: Network creation method

    Returns:
        EntanglementNetwork: Created network

    Raises:
        NetworkEntanglementError: If network creation fails
    """

def entangle_memes(
    self,
    memes: List[Meme],
    force_connections: bool = False
) -> EntanglementNetwork:
    """
    Create entanglements between memes.

    Args:
        memes: Memes to entangle
        force_connections: Force minimum connectivity

    Returns:
        EntanglementNetwork: Entanglement network
    """

Example:

from qmemetic_ai.core.entanglement import QuantumEntangler

# Initialize entangler
entangler = QuantumEntangler(
    correlation_threshold=0.8,
    max_entanglement_degree=50,
    decay_rate=0.9
)

# Create network
memes = [engine.create_meme(f"Research insight {i}") for i in range(20)]
network = entangler.create_network(memes, method="semantic_clustering")

print(f"Network created with {network.num_edges} entanglements")
print(f"Network density: {network.density:.3f}")

Entanglement Measurement

def measure_entanglement(
    self,
    meme_a: Meme,
    meme_b: Meme
) -> float:
    """
    Measure entanglement strength between two memes.

    Args:
        meme_a: First meme
        meme_b: Second meme

    Returns:
        float: Entanglement strength (0.0 to 1.0)
    """

def calculate_correlation(
    self,
    meme_a: Meme,
    meme_b: Meme,
    method: str = "semantic"
) -> float:
    """
    Calculate correlation between memes.

    Args:
        meme_a: First meme
        meme_b: Second meme
        method: Correlation calculation method

    Returns:
        float: Correlation strength
    """

Example:

# Measure entanglement between specific memes
meme1 = memes[0]
meme2 = memes[1]

entanglement_strength = entangler.measure_entanglement(meme1, meme2)
correlation = entangler.calculate_correlation(meme1, meme2, method="semantic")

print(f"Entanglement strength: {entanglement_strength:.3f}")
print(f"Semantic correlation: {correlation:.3f}")

Network Analysis

def analyze_network_properties(self) -> Dict[str, Any]:
    """
    Analyze properties of the entanglement network.

    Returns:
        Dict[str, Any]: Network analysis results including:
            - density: Network density
            - clustering: Average clustering coefficient
            - path_length: Average shortest path length
            - centrality: Node centrality measures
            - communities: Community detection results
    """

def find_communities(
    self,
    algorithm: str = "louvain"
) -> Dict[int, List[Meme]]:
    """
    Detect communities in the entanglement network.

    Args:
        algorithm: Community detection algorithm

    Returns:
        Dict[int, List[Meme]]: Communities of memes
    """

def calculate_centrality(
    self,
    centrality_type: str = "betweenness"
) -> Dict[str, float]:
    """
    Calculate centrality measures for memes.

    Args:
        centrality_type: Type of centrality measure

    Returns:
        Dict[str, float]: Centrality scores by meme ID
    """

Example:

# Analyze network properties
properties = entangler.analyze_network_properties()
print(f"Network analysis:")
print(f"  Density: {properties['density']:.3f}")
print(f"  Clustering: {properties['clustering']:.3f}")
print(f"  Average path length: {properties['path_length']:.2f}")

# Find communities
communities = entangler.find_communities(algorithm="leiden")
print(f"Found {len(communities)} communities:")
for i, community in communities.items():
    print(f"  Community {i}: {len(community)} memes")

# Calculate centrality
centrality = entangler.calculate_centrality(centrality_type="eigenvector")
top_central = sorted(centrality.items(), key=lambda x: x[1], reverse=True)[:5]
print("Most central memes:")
for meme_id, score in top_central:
    print(f"  {meme_id}: {score:.3f}")

Advanced Operations

Entanglement Evolution

def evolve_network(
    self,
    generations: int = 10,
    mutation_rate: float = 0.1,
    selection_pressure: float = 0.8
) -> EntanglementNetwork:
    """
    Evolve the entanglement network structure.

    Args:
        generations: Number of evolution generations
        mutation_rate: Rate of network mutations
        selection_pressure: Selection pressure for beneficial connections

    Returns:
        EntanglementNetwork: Evolved network
    """

def optimize_network(
    self,
    optimization_goal: str = "small_world",
    max_iterations: int = 100
) -> EntanglementNetwork:
    """
    Optimize network structure for specific properties.

    Args:
        optimization_goal: Optimization objective
        max_iterations: Maximum optimization iterations

    Returns:
        EntanglementNetwork: Optimized network
    """

Dynamic Operations

def propagate_changes(
    self,
    source_meme: Meme,
    change_magnitude: float = 1.0
) -> List[Tuple[Meme, float]]:
    """
    Propagate changes through entanglement network.

    Args:
        source_meme: Meme where change originated
        change_magnitude: Magnitude of the change

    Returns:
        List[Tuple[Meme, float]]: Affected memes and change amounts
    """

def simulate_decoherence(
    self,
    time_steps: int = 100,
    noise_level: float = 0.05
) -> Dict[str, Any]:
    """
    Simulate entanglement decoherence over time.

    Args:
        time_steps: Number of simulation steps
        noise_level: Environmental noise level

    Returns:
        Dict[str, Any]: Decoherence simulation results
    """

Example:

# Evolve network structure
evolved_network = entangler.evolve_network(
    generations=15,
    mutation_rate=0.2,
    selection_pressure=0.9
)

# Propagate changes
modified_meme = memes[0]
modified_meme.content = "Updated research insight with new findings"

affected_memes = entangler.propagate_changes(
    source_meme=modified_meme,
    change_magnitude=0.8
)

print(f"Change propagated to {len(affected_memes)} memes:")
for affected_meme, change_amount in affected_memes[:5]:
    print(f"  {affected_meme.meme_id}: change {change_amount:.3f}")

EntanglementNetwork Class

Represents the quantum-inspired entanglement network structure.

Network Properties

class EntanglementNetwork:
    @property
    def num_nodes(self) -> int:
        """Number of memes in the network."""

    @property
    def num_edges(self) -> int:
        """Number of entanglement connections."""

    @property
    def density(self) -> float:
        """Network density (0.0 to 1.0)."""

    @property
    def average_degree(self) -> float:
        """Average number of connections per meme."""

    @property
    def clustering_coefficient(self) -> float:
        """Global clustering coefficient."""

    @property
    def is_connected(self) -> bool:
        """Whether the network is fully connected."""

Network Methods

def get_neighbors(self, meme: Meme) -> List[Tuple[Meme, float]]:
    """
    Get directly entangled memes.

    Args:
        meme: Source meme

    Returns:
        List[Tuple[Meme, float]]: Neighbors and entanglement strengths
    """

def shortest_path(
    self,
    source_meme: Meme,
    target_meme: Meme
) -> List[Meme]:
    """
    Find shortest path between two memes.

    Args:
        source_meme: Starting meme
        target_meme: Target meme

    Returns:
        List[Meme]: Path through network
    """

def subnetwork(
    self,
    memes: List[Meme]
) -> 'EntanglementNetwork':
    """
    Extract subnetwork containing specified memes.

    Args:
        memes: Memes to include in subnetwork

    Returns:
        EntanglementNetwork: Extracted subnetwork
    """

Example:

# Analyze network structure
print(f"Network statistics:")
print(f"  Nodes: {network.num_nodes}")
print(f"  Edges: {network.num_edges}")
print(f"  Density: {network.density:.3f}")
print(f"  Average degree: {network.average_degree:.2f}")
print(f"  Clustering: {network.clustering_coefficient:.3f}")

# Find paths and neighbors
neighbors = network.get_neighbors(memes[0])
print(f"Neighbors of first meme: {len(neighbors)}")

if len(memes) > 1:
    path = network.shortest_path(memes[0], memes[-1])
    print(f"Shortest path length: {len(path)}")

Specialized Entanglement Algorithms

Quantum-Inspired Operations

class QuantumOperations:
    """Quantum-inspired operations for entanglement networks."""

    @staticmethod
    def entanglement_swapping(
        entangler: QuantumEntangler,
        meme_a: Meme,
        mediator: Meme,
        meme_c: Meme
    ) -> bool:
        """
        Perform entanglement swapping operation.

        Args:
            entangler: Entangler instance
            meme_a: First meme
            mediator: Mediating meme
            meme_c: Third meme

        Returns:
            bool: Success of swapping operation
        """

    @staticmethod
    def quantum_teleportation(
        entangler: QuantumEntangler,
        source_meme: Meme,
        target_meme: Meme,
        properties: List[str]
    ) -> Dict[str, Any]:
        """
        Perform quantum teleportation of meme properties.

        Args:
            entangler: Entangler instance
            source_meme: Source meme
            target_meme: Target meme
            properties: Properties to teleport

        Returns:
            Dict[str, Any]: Teleportation results
        """

    @staticmethod
    def bell_state_measurement(
        entangler: QuantumEntangler,
        meme_pair: Tuple[Meme, Meme]
    ) -> Dict[str, float]:
        """
        Perform Bell state measurement on entangled pair.

        Args:
            entangler: Entangler instance
            meme_pair: Pair of entangled memes

        Returns:
            Dict[str, float]: Measurement results
        """

Network Topology Algorithms

class NetworkTopology:
    """Network topology analysis and manipulation."""

    @staticmethod
    def small_world_coefficient(network: EntanglementNetwork) -> float:
        """Calculate small-world coefficient."""

    @staticmethod
    def scale_free_analysis(network: EntanglementNetwork) -> Dict[str, Any]:
        """Analyze scale-free network properties."""

    @staticmethod
    def robustness_analysis(
        network: EntanglementNetwork,
        attack_type: str = "random"
    ) -> Dict[str, float]:
        """Analyze network robustness to attacks."""

    @staticmethod
    def critical_nodes(
        network: EntanglementNetwork,
        num_nodes: int = 10
    ) -> List[Meme]:
        """Identify critical nodes in the network."""

Example:

# Quantum operations
success = QuantumOperations.entanglement_swapping(
    entangler=entangler,
    meme_a=memes[0],
    mediator=memes[1],
    meme_c=memes[2]
)
print(f"Entanglement swapping successful: {success}")

# Topology analysis
small_world = NetworkTopology.small_world_coefficient(network)
scale_free = NetworkTopology.scale_free_analysis(network)
robustness = NetworkTopology.robustness_analysis(network, attack_type="targeted")

print(f"Small-world coefficient: {small_world:.3f}")
print(f"Scale-free exponent: {scale_free['power_law_exponent']:.2f}")
print(f"Robustness score: {robustness['robustness_score']:.3f}")

Performance Optimization

Efficient Algorithms

class OptimizedEntangler(QuantumEntangler):
    """Performance-optimized entangler for large networks."""

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.use_sparse_matrices = True
        self.parallel_processing = True
        self.cache_correlations = True

    def fast_correlation_matrix(
        self,
        memes: List[Meme],
        batch_size: int = 1000
    ) -> np.ndarray:
        """
        Compute correlation matrix efficiently.

        Args:
            memes: List of memes
            batch_size: Processing batch size

        Returns:
            np.ndarray: Correlation matrix
        """

    def incremental_update(
        self,
        new_meme: Meme,
        existing_network: EntanglementNetwork
    ) -> EntanglementNetwork:
        """
        Incrementally update network with new meme.

        Args:
            new_meme: New meme to add
            existing_network: Existing network

        Returns:
            EntanglementNetwork: Updated network
        """

Memory Management

class MemoryEfficientNetwork(EntanglementNetwork):
    """Memory-efficient network representation."""

    def __init__(self, compression_level: float = 0.8):
        self.compression_level = compression_level
        self.sparse_representation = True

    def compress_network(self) -> None:
        """Compress network representation to save memory."""

    def decompress_subnetwork(self, meme_ids: List[str]) -> EntanglementNetwork:
        """Decompress specific subnetwork on demand."""

    def prune_weak_connections(self, threshold: float = 0.1) -> None:
        """Remove weak entanglement connections."""

Example:

# Use optimized entangler for large datasets
large_memes = [engine.create_meme(f"Content {i}") for i in range(5000)]

optimized_entangler = OptimizedEntangler(
    correlation_threshold=0.7,
    max_entanglement_degree=20
)

# Fast correlation computation
correlation_matrix = optimized_entangler.fast_correlation_matrix(
    memes=large_memes,
    batch_size=500
)

# Memory-efficient network
efficient_network = MemoryEfficientNetwork(compression_level=0.9)
efficient_network.compress_network()
print(f"Network compressed, memory usage reduced")

Visualization Support

Network Visualization

def visualize_network(
    network: EntanglementNetwork,
    layout: str = "spring",
    highlight_communities: bool = True,
    node_size_by: str = "degree",
    edge_width_by: str = "strength"
) -> Dict[str, Any]:
    """
    Create network visualization data.

    Args:
        network: Network to visualize
        layout: Layout algorithm
        highlight_communities: Whether to color communities
        node_size_by: Node size criterion
        edge_width_by: Edge width criterion

    Returns:
        Dict[str, Any]: Visualization data
    """

def interactive_network_plot(
    network: EntanglementNetwork,
    title: str = "Entanglement Network"
) -> Any:
    """
    Create interactive network plot.

    Args:
        network: Network to plot
        title: Plot title

    Returns:
        Interactive plot object
    """

Analysis Plots

def plot_degree_distribution(network: EntanglementNetwork) -> Any:
    """Plot degree distribution of the network."""

def plot_clustering_distribution(network: EntanglementNetwork) -> Any:
    """Plot clustering coefficient distribution."""

def plot_path_length_distribution(network: EntanglementNetwork) -> Any:
    """Plot shortest path length distribution."""

def plot_network_evolution(
    evolution_history: List[EntanglementNetwork]
) -> Any:
    """Plot network evolution over time."""

Example:

# Visualize the network
viz_data = visualize_network(
    network=network,
    layout="force_directed",
    highlight_communities=True,
    node_size_by="centrality"
)

# Create interactive plot
interactive_plot = interactive_network_plot(
    network=network,
    title="Research Meme Entanglement Network"
)

# Analysis plots
degree_plot = plot_degree_distribution(network)
clustering_plot = plot_clustering_distribution(network)

Integration Examples

With Evolution System

# Combine entanglement with evolution
evolved_memes = engine.evolve(memes, generations=10)
evolved_network = entangler.create_network(evolved_memes)

# Use entanglement for fitness evaluation
def entanglement_fitness(meme):
    degree = evolved_network.get_degree(meme)
    centrality = evolved_network.get_centrality(meme)
    return 0.6 * degree + 0.4 * centrality

# Re-evolve with entanglement-based fitness
final_memes = engine.evolve(
    evolved_memes,
    fitness_function=entanglement_fitness,
    generations=5
)

With Federation System

# Federated entanglement networks
from qmemetic_ai.federation.client import FederatedClient

fed_client = FederatedClient("research_node")
federated_networks = {}

# Sync entanglement networks across federation
for peer_id in fed_client.connected_peers:
    peer_network = fed_client.sync_entanglement_network(peer_id)
    federated_networks[peer_id] = peer_network

# Merge federated networks
global_network = entangler.merge_networks(list(federated_networks.values()))
print(f"Global network: {global_network.num_nodes} nodes")

For complete usage examples and integration patterns, see the Engine API and Evolution API documentation.