Skip to content

Commit

Permalink
Merge branch 'main' into no-array2string
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinsung committed Sep 20, 2024
2 parents 75d8ba2 + 87bfa37 commit 36626ff
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions qiskit_addon_sqd/configuration_recovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@

from __future__ import annotations

from collections import defaultdict
from collections.abc import Sequence

import numpy as np
Expand Down Expand Up @@ -106,7 +107,7 @@ def recover_configurations(

# First, we need to flip the orbitals such that

corrected_dict: dict[str, float] = {}
corrected_dict: defaultdict[str, float] = defaultdict(float)
for bitstring, freq in zip(bitstring_matrix, probabilities, strict=False):
bs_corrected = _bipartite_bitstring_correcting(
bitstring,
Expand All @@ -116,7 +117,7 @@ def recover_configurations(
rand_seed=rand_seed,
)
bs_str = "".join("1" if bit else "0" for bit in bs_corrected)
corrected_dict[bs_str] = corrected_dict.get(bs_str, 0.0) + freq
corrected_dict[bs_str] += freq
bs_mat_out = np.array([[bit == "1" for bit in bs] for bs in corrected_dict])
freqs_out = np.array([f for f in corrected_dict.values()])
freqs_out = np.abs(freqs_out) / np.sum(np.abs(freqs_out))
Expand Down Expand Up @@ -222,21 +223,17 @@ def _bipartite_bitstring_correcting(
probs_right = np.zeros(partition_size)
for i in range(partition_size):
if bit_array[i]:
probs_left[i] = _p_flip_1_to_0(
hamming_left / float(partition_size), avg_occupancies[i], 0.01
)
probs_left[i] = _p_flip_1_to_0(hamming_left / partition_size, avg_occupancies[i], 0.01)
else:
probs_left[i] = _p_flip_0_to_1(
hamming_left / float(partition_size), avg_occupancies[i], 0.01
)
probs_left[i] = _p_flip_0_to_1(hamming_left / partition_size, avg_occupancies[i], 0.01)

if bit_array[i + partition_size]:
probs_right[i] = _p_flip_1_to_0(
hamming_right / float(partition_size), avg_occupancies[i], 0.01
hamming_right / partition_size, avg_occupancies[i], 0.01
)
else:
probs_right[i] = _p_flip_0_to_1(
hamming_right / float(partition_size), avg_occupancies[i], 0.01
hamming_right / partition_size, avg_occupancies[i], 0.01
)

# Normalize
Expand Down

0 comments on commit 36626ff

Please sign in to comment.