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_boolean_function(...)

Create quantum analyzer from classical Boolean function.

element_distinctness_analysis(f)

Analyze element distinctness problem structure.

estimate_quantum_advantage(n_vars[, ...])

Estimate potential quantum advantage for Boolean function analysis.

grover_speedup(f)

Convenience function to compute Grover speedup for a Boolean function.

quantum_walk_analysis(f)

Analyze Boolean function using quantum walk framework.

quantum_walk_search(f[, num_iterations])

Simulate quantum walk search on the hypercube.

Classes

QuantumBooleanFunction(boolean_function)

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

grover_amplitude_analysis() Dict[str, Any][source]

Analyze amplitudes after Grover iterations (simulation).

This simulates the Grover amplitude amplification process to show how solution amplitudes grow.

Returns:

Dict with amplitude evolution data

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

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