Skip to content

Commit d3e5f8a

Browse files
committed
planted noisy kXOR algorithm
1 parent 5a1b03a commit d3e5f8a

29 files changed

+9099
-12
lines changed

dev_tools/qualtran_dev_tools/notebook_specs.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@
104104
import qualtran.bloqs.multiplexers.black_box_select
105105
import qualtran.bloqs.multiplexers.select_base
106106
import qualtran.bloqs.multiplexers.select_pauli_lcu
107+
import qualtran.bloqs.optimization.k_xor_sat
108+
import qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian
107109
import qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state
108110
import qualtran.bloqs.phase_estimation.lp_resource_state
109111
import qualtran.bloqs.phase_estimation.qubitization_qpe
@@ -801,14 +803,45 @@
801803
# ----- Optimization ---------------------------------------------------
802804
# --------------------------------------------------------------------------
803805
OPTIMIZATION: List[NotebookSpecV2] = [
806+
# ----- Preliminaries ------------------------------------------
807+
NotebookSpecV2(
808+
title='Guided (sparse) Hamiltonian Problem',
809+
module=qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian.guided_hamiltonian,
810+
bloq_specs=[
811+
qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_DOC,
812+
qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_PHASE_ESTIMATION_DOC,
813+
],
814+
),
815+
# ----- Algorithm ------------------------------------------
816+
NotebookSpecV2(
817+
title='kXOR: Instance load Oracles',
818+
module=qualtran.bloqs.optimization.k_xor_sat.load_kxor_instance,
819+
bloq_specs=[qualtran.bloqs.optimization.k_xor_sat.load_kxor_instance._LOAD_INSTANCE_DOC],
820+
),
804821
NotebookSpecV2(
805822
title='Planted Noisy kXOR - Kikuchi Guiding State',
806823
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state,
807824
bloq_specs=[
808825
qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state._SIMPLE_GUIDING_STATE_DOC,
809826
qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state._GUIDING_STATE_DOC,
810827
],
811-
)
828+
),
829+
NotebookSpecV2(
830+
title='Noisy kXOR: Block-encoding the Kikuchi Matrix',
831+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_block_encoding,
832+
bloq_specs=[
833+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_matrix._KIKUCHI_MATRIX_ENTRY_DOC,
834+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_list._KIKUCHI_NONZERO_INDEX_DOC,
835+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_block_encoding._KIKUCHI_HAMILTONIAN_DOC,
836+
],
837+
),
838+
NotebookSpecV2(
839+
title='Algorithm: Planted Noise kXOR',
840+
module=qualtran.bloqs.optimization.k_xor_sat.planted_noisy_kxor,
841+
bloq_specs=[
842+
qualtran.bloqs.optimization.k_xor_sat.planted_noisy_kxor._PLANTED_NOISY_KXOR_DOC
843+
],
844+
),
812845
]
813846

814847
# --------------------------------------------------------------------------

docs/bloqs/index.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,11 @@ Bloqs Library
141141
:maxdepth: 2
142142
:caption: Optimization:
143143

144+
optimization/k_xor_sat/guided_hamiltonian/guided_hamiltonian.ipynb
145+
optimization/k_xor_sat/load_kxor_instance.ipynb
144146
optimization/k_xor_sat/kikuchi_guiding_state.ipynb
147+
optimization/k_xor_sat/kikuchi_block_encoding.ipynb
148+
optimization/k_xor_sat/planted_noisy_kxor.ipynb
145149

146150
.. toctree::
147151
:maxdepth: 2

qualtran/bloqs/optimization/k_xor_sat/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,9 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14+
from .kikuchi_adjacency_list import KikuchiNonZeroIndex
15+
from .kikuchi_adjacency_matrix import KikuchiMatrixEntry
16+
from .kikuchi_block_encoding import KikuchiHamiltonian, KikuchiMatrixEntry, KikuchiNonZeroIndex
1417
from .kikuchi_guiding_state import GuidingState, SimpleGuidingState
1518
from .kxor_instance import Constraint, KXorInstance
19+
from .planted_noisy_kxor import AliceTheorem, PlantedNoisyKXOR
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright 2024 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# https://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
from .guided_hamiltonian import GuidedHamiltonian, GuidedHamiltonianPhaseEstimation
15+
from .walk_operator import QubitizedWalkOperator

0 commit comments

Comments
 (0)