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.