Skip to content

Commit dfc9b15

Browse files
committed
planted noisy kXOR algorithm
1 parent 65b35a0 commit dfc9b15

31 files changed

+8468
-12
lines changed

dev_tools/qualtran_dev_tools/notebook_specs.py

+46-1
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
@@ -804,14 +806,57 @@
804806
# ----- Optimization ---------------------------------------------------
805807
# --------------------------------------------------------------------------
806808
OPTIMIZATION: List[NotebookSpecV2] = [
809+
# ----- Preliminaries ------------------------------------------
810+
NotebookSpecV2(
811+
title='Guided (sparse) Hamiltonian Problem',
812+
module=qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian.guided_hamiltonian,
813+
bloq_specs=[
814+
qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_DOC,
815+
qualtran.bloqs.optimization.k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_PHASE_ESTIMATION_DOC,
816+
],
817+
),
818+
# ----- Algorithm ------------------------------------------
819+
NotebookSpecV2(
820+
title='kXOR: Instance load Oracles',
821+
module=qualtran.bloqs.optimization.k_xor_sat.load_kxor_instance,
822+
bloq_specs=[qualtran.bloqs.optimization.k_xor_sat.load_kxor_instance._LOAD_INSTANCE_DOC],
823+
),
807824
NotebookSpecV2(
808825
title='Planted Noisy kXOR - Kikuchi Guiding State',
809826
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state,
810827
bloq_specs=[
811828
qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state._SIMPLE_GUIDING_STATE_DOC,
812829
qualtran.bloqs.optimization.k_xor_sat.kikuchi_guiding_state._GUIDING_STATE_DOC,
813830
],
814-
)
831+
),
832+
NotebookSpecV2(
833+
title='Planted Noisy kXOR: Kikuchi Adjacency List',
834+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_list,
835+
bloq_specs=[
836+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_list._KIKUCHI_NONZERO_INDEX_DOC
837+
],
838+
),
839+
NotebookSpecV2(
840+
title='Planted Noisy kXOR: Kikuchi Adjacency Matrix',
841+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_matrix,
842+
bloq_specs=[
843+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_matrix._KIKUCHI_MATRIX_ENTRY_DOC
844+
],
845+
),
846+
NotebookSpecV2(
847+
title='Planted Noisy kXOR: Block-encoding the Kikuchi Matrix',
848+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_block_encoding,
849+
bloq_specs=[
850+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_block_encoding._KIKUCHI_HAMILTONIAN_DOC
851+
],
852+
),
853+
NotebookSpecV2(
854+
title='Algorithm: Planted Noisy kXOR',
855+
module=qualtran.bloqs.optimization.k_xor_sat.planted_noisy_kxor,
856+
bloq_specs=[
857+
qualtran.bloqs.optimization.k_xor_sat.planted_noisy_kxor._PLANTED_NOISY_KXOR_DOC
858+
],
859+
),
815860
]
816861

817862
# --------------------------------------------------------------------------

docs/bloqs/index.rst

+6
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,13 @@ Bloqs Library
147147
:maxdepth: 2
148148
:caption: Optimization:
149149

150+
optimization/k_xor_sat/guided_hamiltonian/guided_hamiltonian.ipynb
151+
optimization/k_xor_sat/load_kxor_instance.ipynb
150152
optimization/k_xor_sat/kikuchi_guiding_state.ipynb
153+
optimization/k_xor_sat/kikuchi_adjacency_list.ipynb
154+
optimization/k_xor_sat/kikuchi_adjacency_matrix.ipynb
155+
optimization/k_xor_sat/kikuchi_block_encoding.ipynb
156+
optimization/k_xor_sat/planted_noisy_kxor.ipynb
151157

152158
.. toctree::
153159
:maxdepth: 2

qualtran/bloqs/optimization/k_xor_sat/__init__.py

+4
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
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)