boofun.quantum
Quantum Boolean function analysis module.
This module provides tools for analyzing Boolean functions in the quantum setting, including quantum Fourier analysis, quantum property testing, and quantum algorithms.
Functions
Create quantum analyzer from classical Boolean function. |
|
Analyze element distinctness problem structure. |
|
|
Estimate potential quantum advantage for Boolean function analysis. |
Convenience function to compute Grover speedup for a Boolean function. |
|
Analyze Boolean function using quantum walk framework. |
|
|
Simulate quantum walk search on the hypercube. |
Classes
|
Quantum Boolean function analysis class. |
- class boofun.quantum.QuantumBooleanFunction(boolean_function: BooleanFunction)[source]
Quantum Boolean function analysis class.
Provides quantum algorithms for analyzing Boolean functions, including quantum Fourier analysis and quantum property testing.
- __init__(boolean_function: BooleanFunction)[source]
Initialize quantum Boolean function analyzer.
- Parameters:
boolean_function – Classical Boolean function to analyze
- create_quantum_oracle() Any | None[source]
Create quantum oracle for the Boolean function.
- Returns:
Quantum circuit implementing the Boolean function oracle
- quantum_fourier_analysis() Dict[str, Any][source]
Perform quantum Fourier analysis of the Boolean function.
Uses quantum algorithms to compute Fourier coefficients more efficiently than classical methods for certain classes of functions.
- Returns:
Dictionary with quantum Fourier analysis results
- quantum_influence_estimation(variable_index: int, num_queries: int = 100) Dict[str, Any][source]
Estimate variable influence using quantum algorithms.
- Parameters:
variable_index – Index of variable to analyze
num_queries – Number of quantum queries
- Returns:
Influence estimation results
- quantum_property_testing(property_name: str, **kwargs) Dict[str, Any][source]
Quantum property testing algorithms.
- Parameters:
property_name – Property to test (‘linearity’, ‘monotonicity’, etc.)
**kwargs – Property-specific parameters
- Returns:
Quantum property testing results
- quantum_algorithm_comparison() Dict[str, Any][source]
Compare quantum vs classical algorithms for this function.
- Returns:
Comparison of quantum and classical approaches
- get_quantum_resources() Dict[str, Any][source]
Estimate quantum resources required for analysis.
- Returns:
Resource requirements for quantum algorithms
- grover_analysis() Dict[str, Any][source]
Analyze the function using Grover’s algorithm framework.
Grover’s algorithm finds a satisfying assignment (if one exists) with O(√N) queries instead of O(N) classical queries.
- Returns:
num_solutions: Number of satisfying assignments
classical_queries: Expected classical search queries
grover_queries: Expected Grover queries (O(√(N/M)))
speedup: Quantum speedup factor
optimal_iterations: Number of Grover iterations needed
- Return type:
Dict with
- boofun.quantum.create_quantum_boolean_function(classical_function: BooleanFunction) QuantumBooleanFunction[source]
Create quantum analyzer from classical Boolean function.
- Parameters:
classical_function – Classical Boolean function
- Returns:
Quantum Boolean function analyzer
- boofun.quantum.estimate_quantum_advantage(n_vars: int, analysis_type: str = 'fourier') Dict[str, Any][source]
Estimate potential quantum advantage for Boolean function analysis.
- Parameters:
n_vars – Number of variables
analysis_type – Type of analysis (‘fourier’, ‘property_testing’, ‘search’)
- Returns:
Quantum advantage estimation
- boofun.quantum.grover_speedup(f: BooleanFunction) Dict[str, Any][source]
Convenience function to compute Grover speedup for a Boolean function.
- Parameters:
f – Boolean function (oracle)
- Returns:
Grover analysis results
- boofun.quantum.quantum_walk_analysis(f: BooleanFunction) Dict[str, Any][source]
Analyze Boolean function using quantum walk framework.
Quantum walks can provide speedups for: - Element distinctness: O(n^{2/3}) vs O(n) classical - Graph connectivity: quadratic speedup - Finding marked vertices
- Parameters:
f – Boolean function to analyze
- Returns:
Dict with quantum walk analysis
- boofun.quantum.element_distinctness_analysis(f: BooleanFunction) Dict[str, Any][source]
Analyze element distinctness problem structure.
Element distinctness: Given oracle access to f, determine if there exist x ≠ y with f(x) = f(y).
Classical: O(N) queries needed Quantum: O(N^{2/3}) queries via quantum walk
- Parameters:
f – Boolean function (viewed as function from [N] to some range)
- Returns:
Analysis of element distinctness structure
- boofun.quantum.quantum_walk_search(f: BooleanFunction, num_iterations: int | None = None) Dict[str, Any][source]
Simulate quantum walk search on the hypercube.
This simulates the probability distribution of finding a marked vertex after t steps of a quantum walk.
- Parameters:
f – Boolean function (marked vertices are where f(x) = 1)
num_iterations – Number of walk iterations (default: optimal)
- Returns:
Dict with walk simulation results