SymQNet Molecular Optimization via Hamiltonian Estimation
Project description
SymQNet-MolOpt: Hamiltonian Parameter Estimation
SymQNet-MolOpt provides efficient, uncertainty-aware estimation of Hamiltonian parameters for 1D and 2D molecular models and ultimately much more efficient molecular optimization. It is designed for sample-efficient optimization and reports confidence intervals for each parameter.
Installation
pip install SymQNet-MolOpt
Usage
Core Command
SymQNet-MolOpt --hamiltonian input.json --output results.json
Arguments:
--hamiltonian: Path to a JSON Hamiltonian (OpenFermion-like format).--output: File to save results (JSON).--shots: Number of measurement shots (default auto-scales).--n-rollouts: Number of independent rollouts (default: 5).--max-steps: Max optimization steps per rollout (default: 50).
Examples
Water Molecule (H₂O, 10 qubits)
SymQNet-MolOpt --hamiltonian examples/H2O_10q.json --output h2o_results.json --shots 1024 --n-rollouts 5 --max-steps 50
Ising Chain (12 qubits)
SymQNet-MolOpt --hamiltonian examples/ising_12q.json --output ising_results.json --shots 1024
(You need to create your own JSON Hamiltonian.)
Input Format
Hamiltonians are specified in JSON:
{
"format": "openfermion",
"system": "H2O",
"n_qubits": 10,
"pauli_terms": [
{"coefficient": -74.943, "pauli_string": "IIIIIIIIII"},
{"coefficient": 0.342, "pauli_string": "IIIIIIIIIZ"}
]
}
Output Format
Results include estimated parameters with uncertainties plus experiment/config metadata:
{
"symqnet_results": {
"coupling_parameters": [
{
"index": 0,
"mean": 0.2134,
"confidence_interval": [0.2089, 0.2179],
"uncertainty": 0.0045
}
],
"field_parameters": [...],
"total_uncertainty": 0.0856,
"avg_measurements_used": 512.0,
"confidence_level": 0.95,
"n_rollouts": 5
},
"hamiltonian_info": {
"molecule": "H2O",
"n_qubits": 10,
"n_pauli_terms": 512,
"format": "openfermion",
"optimal_qubits": 10,
"performance_optimal": true
},
"experimental_config": {
"shots": 1024,
"max_steps": 50,
"n_rollouts": 5,
"confidence": 0.95,
"device": "cpu",
"seed": 42
},
"metadata": {
"generated_by": "Universal SymQNet Molecular Optimization CLI",
"version": "2.0.12",
"model_constraint": "Trained optimally for 10 qubits, supports any qubit count",
"timestamp": "2024-01-01T00:00:00",
"parameter_count": {
"coupling": 9,
"field": 10,
"total": 19
},
"parameter_extraction_fixed": true
},
"performance_analysis": {
"expected_performance": 1.0,
"performance_level": "optimal",
"optimal_qubits": 10,
"universal_symqnet_version": "2.0.0"
},
"universal_wrapper": {
"original_qubits": 12,
"normalized_to": 10,
"expected_performance": 0.85,
"normalization_applied": true,
"optimal_at": 10,
"fixed_parameter_extraction": true
},
"validation": {
"has_ground_truth": false
}
}
Metadata Slots (Policy Input)
The policy network conditions on a metadata vector with fixed slots. The layout is defined in the architecture contract document: ARCHITECTURE_CONTRACT.md.
Slot layout (see MetadataLayout):
- Qubit selection (one-hot):
n_qubitsslots. - Measurement basis (one-hot): 3 slots for X/Y/Z.
- Evolution time (one-hot):
M_evoslots. - Shot budget slot: single slot used only when
shots_encodingis enabled in the checkpoint. - Posterior mean (θ):
2 * n_qubits - 1slots. - Posterior covariance features:
theta_dim + 8slots. - Posterior Fisher diagonal:
theta_dimslots.
Total metadata dimension is n_qubits + 3 + M_evo + 1 + theta_dim + (theta_dim + 8) + theta_dim.
Shot Handling
- The CLI
--shotsvalue sets the measurement simulator budget and is used by the SMC filter. - If the checkpoint includes
shots_encodingmetadata, the shot budget is injected into the metadata vector at theshots_slotindex using the normalized value:log1p(shots) / log1p(1_000_000). Ifshots_encodingis missing/null, the slot is left at 0.
Migration Note (Older Checkpoints)
Legacy checkpoints that do not include the metadata bundle will be rejected. Please re-export or
retrain to include the required keys: model_state_dict, meta_dim, shots_encoding, n_qubits,
M_evo, rollout_steps, plus the optional checkpoint_format/checkpoint_version fields. The
current format expects checkpoint_format="symqnet-ppo-v2" and checkpoint_version=1.
Requirements
- Python 3.8+
- PyTorch 1.12+
- NumPy, SciPy, Click
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file symqnet_molopt-3.12.8.tar.gz.
File metadata
- Download URL: symqnet_molopt-3.12.8.tar.gz
- Upload date:
- Size: 2.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e6856ad0b39defc6f5b23e567d21863ec7b4d2d9a99ca50cbd07a18e73945db
|
|
| MD5 |
1292374c1995b50f5bc5b64e3300e00d
|
|
| BLAKE2b-256 |
b50308f38705580c02d77384abb5f85b82316d48f1fca9dfe5f3cb84c15402a0
|
File details
Details for the file symqnet_molopt-3.12.8-py3-none-any.whl.
File metadata
- Download URL: symqnet_molopt-3.12.8-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
958559f8b7db587cb4a198b1e15ffb4ad141006490d460330efb367d02bbedcb
|
|
| MD5 |
0a19ae2ac8f58ff82cd0c41434e8d2fc
|
|
| BLAKE2b-256 |
a8c83b112d66d6fa41fad8a7670c87c2a0e8503a94ee7cccb637b9f3f458d2e4
|