VM-Aware QSCI API Reference¶
This page provides comprehensive API documentation for the VM-aware QSCI functionality, including quantum virtual machine integration, authentic time evolution, and resource estimation capabilities.
Core VM Components¶
VMFactory¶
qsci_vm_analysis.VMFactory
¶
Factory for creating pre-configured QURI VM instances.
Methods:
Name | Description |
---|---|
create_ideal_vm |
Create ideal VM for LogicalCircuit level sampling. |
create_star_vm |
Create STAR architecture VM with specified error rate. |
create_star_vm_for_h6 |
Create STAR VM optimized for H6 TE-QSCI calculations. |
create_ideal_vm
staticmethod
¶
Create ideal VM for LogicalCircuit level sampling.
Returns:
Type | Description |
---|---|
VM
|
VM instance configured for ideal quantum computation |
Source code in src/qsci_vm_analysis.py
create_star_vm
staticmethod
¶
create_star_vm(error_rate=0.0)
Create STAR architecture VM with specified error rate.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
float
|
Physical error rate (0.0 to 1.0) |
0.0
|
Returns:
Type | Description |
---|---|
VM
|
VM instance configured with STAR device properties for given error rate |
Source code in src/qsci_vm_analysis.py
create_star_vm_for_h6
staticmethod
¶
create_star_vm_for_h6(error_rate=0.0)
Create STAR VM optimized for H6 TE-QSCI calculations.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
float
|
Physical error rate for STAR architecture |
0.0
|
Returns:
Type | Description |
---|---|
VM
|
VM instance optimized for H6 molecular calculations |
Source code in src/qsci_vm_analysis.py
The VMFactory
class provides factory methods for creating pre-configured QURI VM instances optimized for different quantum architectures.
Key Methods:
- create_ideal_vm()
: Creates abstract ideal VM for LogicalCircuit analysis
- create_star_vm(error_rate)
: Creates STAR architecture VM with specified error rate
- create_star_vm_for_h6(error_rate)
: Creates STAR VM optimized for H6 calculations
VMSampler¶
qsci_vm_analysis.VMSampler
¶
VMSampler(vm_instance)
The VMSampler
class implements the quri-parts ConcurrentSampler interface, delegating circuit sampling to QURI VM instances with proper error handling.
Key Features:
- Direct delegation to VM.sample()
- Comprehensive error wrapping
- Support for multiple circuit-shot pairs
- Clean integration with quri-parts sampling interface
QURIVMInterface¶
qsci_vm_analysis.QURIVMInterface
¶
QURIVMInterface(logical_vm=None, arch_vm=None)
Interface to QURI VM for TE-QSCI analysis and sampling.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Pre-configured VM for LogicalCircuit level (ideal) |
None
|
|
|
Pre-configured VM for ArchLogicalCircuit level (with architecture) |
None
|
Methods:
Name | Description |
---|---|
analyze_circuit_at_level |
Analyze circuit at specified lowering level. |
create_logical_sampler |
Create sampler for LogicalCircuit level (ideal VM). |
create_arch_sampler |
Create sampler for ArchLogicalCircuit level (STAR architecture). |
create_sampler |
Create sampler for specified level. |
Attributes:
Name | Type | Description |
---|---|---|
logical_vm |
|
|
arch_vm |
|
Source code in src/qsci_vm_analysis.py
analyze_circuit_at_level
¶
Analyze circuit at specified lowering level.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
NonParametricQuantumCircuit
|
Circuit to analyze |
required |
|
LoweringLevel
|
Analysis level (LogicalCircuit or ArchLogicalCircuit) |
required |
Returns:
Type | Description |
---|---|
Dict[str, Any]
|
Analysis results dictionary |
Source code in src/qsci_vm_analysis.py
create_logical_sampler
¶
Create sampler for LogicalCircuit level (ideal VM).
Returns:
Type | Description |
---|---|
VMSampler instance for ideal quantum sampling |
create_arch_sampler
¶
Create sampler for ArchLogicalCircuit level (STAR architecture).
Returns:
Type | Description |
---|---|
VMSampler instance for STAR architecture sampling |
create_sampler
¶
create_sampler(level)
Create sampler for specified level.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
LoweringLevel
|
LoweringLevel for sampling (LogicalCircuit or ArchLogicalCircuit) |
required |
Returns:
Type | Description |
---|---|
VMSampler instance for the specified level |
Source code in src/qsci_vm_analysis.py
The QURIVMInterface
class provides a unified interface for QURI VM analysis and sampling across different quantum architectures.
Key Capabilities: - Circuit analysis at LogicalCircuit and ArchLogicalCircuit levels - Automatic VM instance management - Sampler creation for different analysis levels - Error propagation and handling
VM-Aware Algorithms¶
VMAwareSingleTimeTE_QSCI¶
qsci_vm_interface.VMAwareSingleTimeTE_QSCI
¶
VMAwareSingleTimeTE_QSCI(
hamiltonian,
evolution_time,
sampler=None,
num_states_pick_out=None,
trotter_steps=10,
vm_interface=None,
sampling_level=ArchLogicalCircuit,
use_vm_sampling=True,
)
Bases: SingleTimeTE_QSCI
TE-QSCI with integrated VM analysis capabilities.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Operator
|
Target Hamiltonian |
required |
|
float
|
Time evolution parameter |
required |
|
Quantum sampler (used as fallback if use_vm_sampling=False) |
None
|
|
|
Optional[int]
|
Number of states for QSCI subspace |
None
|
|
int
|
Number of Trotter steps for time evolution |
10
|
|
Optional[QURIVMInterface]
|
Pre-configured QURIVMInterface with appropriate VMs |
None
|
|
LoweringLevel
|
LoweringLevel for VM sampling (LogicalCircuit or ArchLogicalCircuit) |
ArchLogicalCircuit
|
|
bool
|
Whether to use VM sampling or fallback to provided sampler |
True
|
Methods:
Name | Description |
---|---|
run_with_vm_analysis |
Run TE-QSCI with comprehensive VM analysis. |
Attributes:
Name | Type | Description |
---|---|---|
vm_interface |
|
|
sampling_level |
|
|
use_vm_sampling |
|
|
fallback_sampler |
|
|
trotter_steps |
|
|
architecture |
|
|
circuit_analyses |
List[VMAnalysisResult]
|
|
time_evolution_analysis |
Optional[VMAnalysisResult]
|
|
name |
str
|
Algorithm name with VM capabilities. |
Source code in src/qsci_vm_interface.py
run_with_vm_analysis
¶
run_with_vm_analysis(
initial_state, analyze_sampling=True, num_shots=1000
)
Run TE-QSCI with comprehensive VM analysis.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
CircuitQuantumState
|
Initial quantum state |
required |
|
bool
|
Whether to analyze sampling circuits |
True
|
Returns:
Type | Description |
---|---|
TEQSCIVMResult
|
Enhanced TE-QSCI result with VM analysis |
Source code in src/qsci_vm_interface.py
342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 |
|
The VMAwareSingleTimeTE_QSCI
class extends the standard TE-QSCI algorithm with comprehensive VM analysis capabilities, including authentic time evolution and resource estimation.
Enhanced Features: - Authentic Trotter decomposition using quri-algo - Fallback to simplified Trotter when quri-algo unavailable - VM metrics calculation (overhead and fidelity impact) - Integration with molecular Hamiltonian systems - Multi-error-rate comparison support
VMAwareTimeEvolutionCircuit¶
qsci_vm_interface.VMAwareTimeEvolutionCircuit
¶
VMAwareTimeEvolutionCircuit(
base_circuit,
evolution_time,
trotter_steps,
vm_interface,
hamiltonian=None,
)
Wrapper for time evolution circuits with VM analysis capabilities.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
NonParametricQuantumCircuit
|
Base quantum circuit |
required |
|
float
|
Time evolution parameter |
required |
|
int
|
Number of Trotter decomposition steps |
required |
|
QURIVMInterface
|
QURI VM interface for analysis |
required |
|
Optional[Operator]
|
Target Hamiltonian for authentic analysis |
None
|
Methods:
Name | Description |
---|---|
analyze_at_level |
Analyze circuit at specified level with caching. |
get_analysis_summary |
Get comprehensive analysis summary. |
Attributes:
Name | Type | Description |
---|---|---|
base_circuit |
|
|
evolution_time |
|
|
trotter_steps |
|
|
vm_interface |
|
|
hamiltonian |
|
|
circuit |
NonParametricQuantumCircuit
|
Get the underlying circuit. |
Source code in src/qsci_vm_interface.py
analyze_at_level
¶
Analyze circuit at specified level with caching.
Source code in src/qsci_vm_interface.py
get_analysis_summary
¶
Get comprehensive analysis summary.
Source code in src/qsci_vm_interface.py
The VMAwareTimeEvolutionCircuit
class wraps quantum circuits with VM analysis capabilities, providing caching and comprehensive circuit characterization.
Key Features: - Analysis result caching for performance - Summary generation with timing information - Integration with VM interfaces - Support for both LogicalCircuit and ArchLogicalCircuit analysis
Result Classes¶
TEQSCIVMResult¶
qsci_vm_interface.TEQSCIVMResult
dataclass
¶
TEQSCIVMResult(
qsci_result,
time_evolution_analysis,
sampling_circuits_analysis,
total_logical_time,
total_arch_time,
architecture_overhead,
fidelity_impact,
evolution_time,
trotter_steps,
architecture_name,
)
Enhanced TE-QSCI result with VM analysis.
Attributes:
Name | Type | Description |
---|---|---|
qsci_result |
QSCIResult
|
|
time_evolution_analysis |
VMAnalysisResult
|
|
sampling_circuits_analysis |
List[VMAnalysisResult]
|
|
total_logical_time |
TimeValue
|
|
total_arch_time |
TimeValue
|
|
architecture_overhead |
float
|
|
fidelity_impact |
float
|
|
evolution_time |
float
|
|
trotter_steps |
int
|
|
architecture_name |
str
|
|
The TEQSCIVMResult
dataclass encapsulates enhanced TE-QSCI results with comprehensive VM analysis data.
Included Data: - Standard QSCI results (energies, states) - VM analysis results at multiple levels - Performance metrics (overhead, fidelity impact) - Circuit characterization data - Algorithm metadata
VMAnalysisResult¶
qsci_vm_interface.VMAnalysisResult
dataclass
¶
Result of VM-enhanced circuit analysis.
Attributes:
Name | Type | Description |
---|---|---|
logical_analysis |
Dict[str, Any]
|
|
arch_analysis |
Dict[str, Any]
|
|
circuit_description |
str
|
|
analysis_time |
float
|
|
The VMAnalysisResult
dataclass contains detailed VM circuit analysis information.
Analysis Data: - LogicalCircuit and ArchLogicalCircuit analysis - Circuit description and metadata - Analysis timing information - Resource estimation data
Factory Functions¶
create_vm_aware_te_qsci¶
qsci_vm_interface.create_vm_aware_te_qsci
¶
create_vm_aware_te_qsci(
hamiltonian,
evolution_time=1.5,
vm_interface=None,
sampling_level=ArchLogicalCircuit,
use_vm_sampling=True,
**kwargs
)
Create VM-aware TE-QSCI algorithm with VM sampling.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
Operator
|
Target Hamiltonian |
required |
|
float
|
Time evolution parameter |
1.5
|
|
Optional[QURIVMInterface]
|
Pre-configured QURIVMInterface with appropriate VMs |
None
|
|
LoweringLevel
|
LoweringLevel for VM sampling (LogicalCircuit for ideal, ArchLogicalCircuit for STAR) |
ArchLogicalCircuit
|
|
bool
|
Whether to use VM sampling or fallback to Qulacs |
True
|
|
Additional arguments for TE-QSCI |
{}
|
Returns:
Type | Description |
---|---|
VMAwareSingleTimeTE_QSCI
|
VM-aware TE-QSCI algorithm with VM sampling capabilities |
Source code in src/qsci_vm_interface.py
Factory function for creating VM-aware TE-QSCI algorithms with VM sampling capabilities.
Parameters:
- hamiltonian
: Target molecular Hamiltonian
- evolution_time
: Time evolution parameter
- vm_interface
: Pre-configured VM interface (optional)
- sampling_level
: Analysis level (LogicalCircuit or ArchLogicalCircuit)
- use_vm_sampling
: Enable VM-based sampling
- Additional TE-QSCI parameters
create_star_vm_for_h6¶
qsci_vm_analysis.create_star_vm_for_h6
¶
create_star_vm_for_h6(error_rate=0.0)
Create STAR architecture VM interface optimized for H6 TE-QSCI.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
|
float
|
Physical error rate for STAR architecture (0.0 for ideal) |
0.0
|
Source code in src/qsci_vm_analysis.py
Factory function for creating STAR architecture VM interface optimized for H6 TE-QSCI calculations.
Parameters:
- error_rate
: Physical error rate for STAR architecture (0.0 for ideal)
Returns:
- QURIVMInterface
: Configured interface with ideal and STAR VMs
Integration Points¶
QURI VM Integration¶
The VM-aware QSCI functionality integrates seamlessly with QURI VM for realistic quantum hardware simulation:
- Device Property Generation: Uses
star_device.generate_device_property()
for STAR architecture configuration - VM Analysis: Leverages
VM.analyze()
for circuit resource estimation - VM Sampling: Utilizes
VM.sample()
for quantum sampling with noise models
quri-algo Integration¶
Authentic time evolution leverages quri-algo for real quantum circuit generation:
- TrotterTimeEvolutionCircuitFactory: Generates authentic Trotter decomposition circuits
- QubitHamiltonian: Converts quri-parts Operators to quri-algo format
- Fallback Mechanisms: Graceful degradation when quri-algo unavailable
Error Handling¶
Comprehensive error handling throughout the VM stack:
- Import Error Handling: Graceful fallback when dependencies unavailable
- Runtime Error Wrapping: Clear error messages with context
- Validation: Parameter validation and boundary checking
- Resource Management: Proper cleanup and error propagation
Performance Considerations¶
Analysis Caching¶
The VM-aware components implement intelligent caching for performance:
- Circuit Analysis Caching: Avoids redundant VM analysis calls
- Level-Specific Caching: Separate caches for LogicalCircuit and ArchLogicalCircuit
- Cache Invalidation: Proper cache management for accuracy
Resource Optimization¶
Optimized for efficient quantum resource usage:
- Minimal VM Overhead: Efficient delegation patterns
- Batch Processing: Support for multiple circuit analysis
- Memory Management: Proper resource cleanup and management
Scalability¶
Designed for molecular system scalability:
- Hamiltonian Complexity: Scales with molecular system size
- Circuit Depth: Handles realistic molecular time evolution
- Error Rate Sensitivity: Efficient multi-error-rate analysis