Skip to content

Engine API Reference

Complete API documentation for the Q-Memetic AI engine.

MemeticEngine Class

The central orchestration engine for all memetic computing operations.

Constructor

class MemeticEngine:
    def __init__(
        self,
        license_key: Optional[str] = None,
        config: Optional[Dict[str, Any]] = None,
        data_dir: str = "./qmemetic_data"
    ) -> None:
        """
        Initialize the Q-Memetic AI engine.

        Args:
            license_key: QuantumMeta license key for feature access
            config: Configuration dictionary for engine settings
            data_dir: Directory for persistent data storage

        Raises:
            QMemeticLicenseError: If license validation fails
            ValueError: If configuration is invalid
        """

Parameters

Parameter Type Default Description
license_key Optional[str] None QuantumMeta license key
config Optional[Dict] None Engine configuration
data_dir str "./qmemetic_data" Data storage directory

Example

from qmemetic_ai import MemeticEngine

# Basic initialization
engine = MemeticEngine(license_key="your-license-key")

# Advanced configuration
config = {
    "evolution": {
        "population_size": 50,
        "mutation_rate": 0.15,
        "crossover_rate": 0.85
    },
    "entanglement": {
        "correlation_threshold": 0.7,
        "max_connections": 100
    },
    "performance": {
        "parallel_processing": True,
        "batch_size": 20
    }
}

engine = MemeticEngine(
    license_key="your-license-key",
    config=config,
    data_dir="/path/to/data"
)

Core Methods

Meme Creation

create_meme()

def create_meme(
    self,
    content: str,
    metadata: Optional[MemeMetadata] = None,
    vector_dim: int = 512
) -> Meme:
    """
    Create a new meme from content.

    Args:
        content: Text content for the meme
        metadata: Optional metadata object
        vector_dim: Dimension of the semantic vector

    Returns:
        Meme: Newly created meme object

    Raises:
        ValueError: If content is empty or invalid
        QMemeticLicenseError: If feature not available in license tier
    """

Example:

# Simple meme creation
meme = engine.create_meme("Quantum computing breakthrough")

# With metadata
from qmemetic_ai.core.meme import MemeMetadata

metadata = MemeMetadata(
    author="researcher_01",
    domain="quantum_computing",
    tags=["breakthrough", "research"],
    complexity=0.8
)

meme = engine.create_meme(
    content="Novel quantum algorithm for optimization",
    metadata=metadata,
    vector_dim=1024
)

create_memes()

def create_memes(
    self,
    content_list: List[str],
    batch_metadata: Optional[List[MemeMetadata]] = None
) -> List[Meme]:
    """
    Create multiple memes efficiently.

    Args:
        content_list: List of content strings
        batch_metadata: Optional list of metadata objects

    Returns:
        List[Meme]: List of created memes
    """

Example:

content_list = [
    "First research insight",
    "Second research finding", 
    "Third experimental result"
]

memes = engine.create_memes(content_list)
print(f"Created {len(memes)} memes")

Evolution Operations

evolve()

def evolve(
    self,
    memes: List[Meme],
    generations: int = 5,
    population_size: Optional[int] = None,
    fitness_function: Optional[Callable] = None,
    **kwargs
) -> List[Meme]:
    """
    Evolve a population of memes using genetic algorithms.

    Args:
        memes: Initial population of memes
        generations: Number of evolution generations
        population_size: Size of evolution population
        fitness_function: Custom fitness evaluation function
        **kwargs: Additional evolution parameters

    Returns:
        List[Meme]: Evolved population of memes

    Raises:
        MemeticEvolutionError: If evolution process fails
        QMemeticLicenseError: If advanced evolution features not licensed
    """

Parameters:

Parameter Type Default Description
memes List[Meme] - Initial meme population
generations int 5 Number of generations
population_size Optional[int] None Population size (auto if None)
fitness_function Optional[Callable] None Custom fitness function
mutation_rate float 0.25 Probability of mutation
crossover_rate float 0.75 Probability of crossover
elitism_ratio float 0.1 Fraction of elite preserved

Example:

# Basic evolution
initial_memes = [engine.create_meme(f"Idea {i}") for i in range(10)]
evolved = engine.evolve(initial_memes, generations=10)

# Custom fitness function
def research_fitness(meme):
    """Custom fitness based on research relevance."""
    relevance_score = calculate_research_relevance(meme.content)
    novelty_score = calculate_novelty(meme.vector)
    return 0.7 * relevance_score + 0.3 * novelty_score

evolved = engine.evolve(
    memes=initial_memes,
    generations=15,
    population_size=30,
    fitness_function=research_fitness,
    mutation_rate=0.3,
    crossover_rate=0.8
)

evolve_with_constraints()

def evolve_with_constraints(
    self,
    memes: List[Meme],
    constraints: Dict[str, Any],
    generations: int = 5
) -> List[Meme]:
    """
    Evolve memes with specific constraints.

    Args:
        memes: Initial population
        constraints: Evolution constraints
        generations: Number of generations

    Returns:
        List[Meme]: Constrained evolution results
    """

Example:

constraints = {
    "max_complexity": 0.8,
    "required_domains": ["AI", "quantum"],
    "diversity_threshold": 0.6,
    "semantic_bounds": {
        "min_similarity": 0.3,
        "max_similarity": 0.9
    }
}

constrained_evolution = engine.evolve_with_constraints(
    memes=initial_memes,
    constraints=constraints,
    generations=8
)

Entanglement Operations

entangle()

def entangle(
    self,
    memes: Optional[List[Meme]] = None,
    correlation_threshold: float = 0.7,
    max_connections: int = 100
) -> QuantumEntanglementNetwork:
    """
    Create quantum-inspired entanglement network.

    Args:
        memes: Memes to entangle (all if None)
        correlation_threshold: Minimum correlation for entanglement
        max_connections: Maximum connections per meme

    Returns:
        QuantumEntanglementNetwork: Entanglement network object

    Raises:
        NetworkEntanglementError: If network creation fails
    """

Example:

# Entangle all memes in engine
network = engine.entangle()

# Entangle specific memes
selected_memes = evolved[:20]  # Top 20 evolved memes
network = engine.entangle(
    memes=selected_memes,
    correlation_threshold=0.8,
    max_connections=50
)

# Analyze network properties
print(f"Network density: {network.density:.3f}")
print(f"Average clustering: {network.clustering_coefficient:.3f}")
print(f"Connected components: {network.num_components}")

measure_entanglement()

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)
    """

Federation Operations

sync()

def sync(
    self,
    mode: str = "bidirectional",
    peer_filters: Optional[Dict[str, Any]] = None
) -> Dict[str, Any]:
    """
    Synchronize with federated network.

    Args:
        mode: Sync mode ("pull", "push", "bidirectional")
        peer_filters: Filters for peer selection

    Returns:
        Dict[str, Any]: Synchronization results

    Raises:
        FederationError: If sync operation fails
        QMemeticLicenseError: If federation features not licensed
    """

Example:

# Basic synchronization
sync_result = engine.sync()
print(f"Received {sync_result['memes_received']} memes")
print(f"Sent {sync_result['memes_sent']} memes")

# Filtered synchronization
peer_filters = {
    "domains": ["AI", "quantum_computing"],
    "trust_level": 0.8,
    "geographic_region": "North America"
}

sync_result = engine.sync(
    mode="pull",
    peer_filters=peer_filters
)

Analysis Operations

analyze()

def analyze(
    self,
    analysis_type: str = "comprehensive",
    memes: Optional[List[Meme]] = None,
    parameters: Optional[Dict[str, Any]] = None
) -> Dict[str, Any]:
    """
    Perform comprehensive analysis of meme population.

    Args:
        analysis_type: Type of analysis to perform
        memes: Memes to analyze (all if None)
        parameters: Analysis parameters

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

Analysis Types:

Type Description Output
"comprehensive" Full statistical analysis All metrics
"fitness" Fitness distribution analysis Fitness statistics
"diversity" Population diversity metrics Diversity measures
"clustering" Semantic clustering analysis Cluster information
"evolution" Evolution trajectory analysis Evolution metrics
"network" Network topology analysis Network properties

Example:

# Comprehensive analysis
analysis = engine.analyze(analysis_type="comprehensive")
print(f"Population size: {analysis['population_size']}")
print(f"Average fitness: {analysis['fitness']['mean']:.3f}")
print(f"Diversity index: {analysis['diversity']['simpson_index']:.3f}")

# Clustering analysis
cluster_analysis = engine.analyze(
    analysis_type="clustering",
    parameters={
        "num_clusters": 5,
        "method": "kmeans",
        "include_visualization": True
    }
)

for i, cluster in enumerate(cluster_analysis['clusters']):
    print(f"Cluster {i}: {len(cluster['memes'])} memes")
    print(f"  Centroid: {cluster['centroid_summary']}")

Status and Information

get_status()

def get_status(self) -> Dict[str, Any]:
    """
    Get comprehensive engine status.

    Returns:
        Dict[str, Any]: Status information including:
            - license_info: License status and features
            - meme_count: Number of memes in system
            - network_info: Entanglement network status
            - federation_info: Federation connection status
            - performance_metrics: System performance data
    """

Example:

status = engine.get_status()
print(f"License tier: {status['license_info']['tier']}")
print(f"Total memes: {status['meme_count']}")
print(f"Network connections: {status['network_info']['total_connections']}")
print(f"Federation peers: {status['federation_info']['connected_peers']}")

get_license_info()

def get_license_info(self) -> Dict[str, Any]:
    """
    Get detailed license information.

    Returns:
        Dict[str, Any]: License details including tier, features, expiration
    """

Data Management

save_state()

def save_state(self, file_path: str) -> None:
    """
    Save complete engine state to file.

    Args:
        file_path: Path to save state file

    Raises:
        DataPersistenceError: If save operation fails
    """

load_state()

def load_state(self, file_path: str) -> None:
    """
    Load engine state from file.

    Args:
        file_path: Path to state file

    Raises:
        DataPersistenceError: If load operation fails
        FileNotFoundError: If state file doesn't exist
    """

Example:

# Save current state
engine.save_state("research_session_backup.json")

# Load previous state
engine.load_state("research_session_backup.json")

export_data()

def export_data(
    self,
    file_path: str,
    format: str = "json",
    include_vectors: bool = False
) -> None:
    """
    Export meme data to external file.

    Args:
        file_path: Output file path
        format: Export format ("json", "csv", "yaml")
        include_vectors: Whether to include vector data
    """

import_data()

def import_data(
    self,
    file_path: str,
    format: str = "auto",
    merge_strategy: str = "append"
) -> int:
    """
    Import meme data from external file.

    Args:
        file_path: Input file path
        format: File format ("auto", "json", "csv", "yaml")
        merge_strategy: How to handle existing data

    Returns:
        int: Number of memes imported
    """

Configuration Options

Engine Configuration

default_config = {
    "evolution": {
        "population_size": 20,
        "generations": 5,
        "mutation_rate": 0.25,
        "crossover_rate": 0.75,
        "elitism_ratio": 0.1,
        "fitness_caching": True,
        "parallel_evolution": True
    },
    "entanglement": {
        "correlation_threshold": 0.7,
        "max_connections_per_meme": 100,
        "network_update_frequency": 10,
        "decoherence_rate": 0.05,
        "clustering_algorithm": "louvain"
    },
    "federation": {
        "auto_discovery": True,
        "sync_interval": 300,  # seconds
        "max_peers": 50,
        "trust_threshold": 0.6,
        "bandwidth_limit": "10MB/s"
    },
    "performance": {
        "parallel_processing": True,
        "batch_size": 20,
        "memory_limit": "2GB",
        "disk_cache_size": "1GB",
        "optimization_level": "balanced"
    },
    "security": {
        "encryption_enabled": True,
        "audit_logging": True,
        "session_timeout": 7200,
        "api_rate_limiting": True
    },
    "logging": {
        "level": "INFO",
        "file_output": True,
        "console_output": True,
        "log_rotation": True
    }
}

Error Handling

Exception Types

from qmemetic_ai.exceptions import (
    QMemeticLicenseError,
    MemeticEvolutionError,
    NetworkEntanglementError,
    FederationError,
    DataPersistenceError
)

try:
    engine = MemeticEngine(license_key="invalid-key")
except QMemeticLicenseError as e:
    print(f"License error: {e}")

try:
    evolved = engine.evolve(memes, generations=100)
except MemeticEvolutionError as e:
    print(f"Evolution failed: {e}")
    # Try with reduced parameters
    evolved = engine.evolve(memes, generations=10, population_size=10)

Best Practices

# Always use context managers for resource management
with MemeticEngine(license_key="your-key") as engine:
    memes = engine.create_memes(content_list)
    evolved = engine.evolve(memes)
    network = engine.entangle(evolved)

# Handle license errors gracefully
def safe_engine_init(license_key):
    try:
        return MemeticEngine(license_key=license_key)
    except QMemeticLicenseError:
        # Fall back to trial mode with limited features
        return MemeticEngine()  # No license key

# Use proper error handling for evolution
def robust_evolution(engine, memes, max_attempts=3):
    for attempt in range(max_attempts):
        try:
            return engine.evolve(memes, generations=10)
        except MemeticEvolutionError as e:
            if attempt == max_attempts - 1:
                raise e
            # Reduce complexity and try again
            generations = max(1, 10 - attempt * 3)
            population_size = max(5, 20 - attempt * 5)

Performance Optimization

Parallel Processing

# Enable parallel processing
config = {
    "performance": {
        "parallel_processing": True,
        "max_workers": 8,
        "batch_size": 50
    }
}

engine = MemeticEngine(license_key="your-key", config=config)

# Batch operations for better performance
large_content_list = [f"Content {i}" for i in range(1000)]
memes = engine.create_memes(large_content_list)  # Automatically batched

Memory Management

# Configure memory limits
config = {
    "performance": {
        "memory_limit": "4GB",
        "disk_cache_size": "2GB",
        "cleanup_interval": 3600
    }
}

# Monitor memory usage
status = engine.get_status()
memory_usage = status['performance_metrics']['memory_usage']
if memory_usage > 0.8:
    engine.cleanup_memory()

Caching Strategies

# Enable aggressive caching for repeated operations
config = {
    "caching": {
        "fitness_cache_size": 10000,
        "vector_cache_size": 5000,
        "network_cache_ttl": 3600
    }
}

# Pre-warm caches for better performance
engine.pre_warm_caches(expected_operations=["evolution", "entanglement"])

For more detailed API documentation, see the individual module references: - Meme API - Evolution API - Entanglement API - Visualization API