Skip to main content

QuantumInference

Trait QuantumInference 

Source
pub trait QuantumInference {
    // Required methods
    fn solve_qaoa(&self, num_layers: usize) -> Result<HashMap<String, usize>>;
    fn quantum_marginals(
        &self,
        num_shots: usize,
    ) -> Result<HashMap<String, ArrayD<f64>>>;
    fn quantum_partition_function(&self) -> Result<f64>;
}
Expand description

Trait for quantum-enhanced inference on factor graphs.

This trait provides methods for using quantum algorithms (QAOA, quantum annealing) to perform inference tasks on probabilistic graphical models.

§Example

use tensorlogic_quantrs_hooks::{FactorGraph, QuantumInference};
use std::collections::HashMap;

let mut graph = FactorGraph::new();
graph.add_variable_with_card("x".to_string(), "Binary".to_string(), 2);
graph.add_variable_with_card("y".to_string(), "Binary".to_string(), 2);

// Solve using QAOA
let solution = graph.solve_qaoa(2).expect("unwrap");
println!("Best assignment: {:?}", solution);

Required Methods§

Source

fn solve_qaoa(&self, num_layers: usize) -> Result<HashMap<String, usize>>

Solve the optimization problem using QAOA (Quantum Approximate Optimization Algorithm).

QAOA maps the factor graph to a quantum circuit and finds the optimal variable assignment that maximizes the joint probability (or minimizes energy).

§Arguments
  • num_layers - Number of QAOA layers (p parameter). More layers give better approximation but require more quantum resources.
§Returns

A map from variable names to their optimal values.

Source

fn quantum_marginals( &self, num_shots: usize, ) -> Result<HashMap<String, ArrayD<f64>>>

Compute marginal distributions using quantum sampling.

This method uses quantum circuits to sample from the joint distribution and estimates marginal probabilities from the samples.

§Arguments
  • num_shots - Number of measurement shots for sampling.
§Returns

A map from variable names to their marginal probability distributions.

Source

fn quantum_partition_function(&self) -> Result<f64>

Compute the partition function using quantum amplitude estimation.

This is useful for computing normalized probabilities and free energy.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§