Skip to content

Commit d25acff

Browse files
committed
planted noisy kXOR algorithm
fix bugs
1 parent 5a1b03a commit d25acff

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
@@ -801,14 +803,57 @@
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='Planted Noisy kXOR: Kikuchi Adjacency List',
831+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_list,
832+
bloq_specs=[
833+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_list._KIKUCHI_NONZERO_INDEX_DOC
834+
],
835+
),
836+
NotebookSpecV2(
837+
title='Planted Noisy kXOR: Kikuchi Adjacency Matrix',
838+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_matrix,
839+
bloq_specs=[
840+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_adjacency_matrix._KIKUCHI_MATRIX_ENTRY_DOC
841+
],
842+
),
843+
NotebookSpecV2(
844+
title='Planted Noisy kXOR: Block-encoding the Kikuchi Matrix',
845+
module=qualtran.bloqs.optimization.k_xor_sat.kikuchi_block_encoding,
846+
bloq_specs=[
847+
qualtran.bloqs.optimization.k_xor_sat.kikuchi_block_encoding._KIKUCHI_HAMILTONIAN_DOC
848+
],
849+
),
850+
NotebookSpecV2(
851+
title='Algorithm: Planted Noisy kXOR',
852+
module=qualtran.bloqs.optimization.k_xor_sat.planted_noisy_kxor,
853+
bloq_specs=[
854+
qualtran.bloqs.optimization.k_xor_sat.planted_noisy_kxor._PLANTED_NOISY_KXOR_DOC
855+
],
856+
),
812857
]
813858

814859
# --------------------------------------------------------------------------

docs/bloqs/index.rst

+6
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,13 @@ 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_adjacency_list.ipynb
148+
optimization/k_xor_sat/kikuchi_adjacency_matrix.ipynb
149+
optimization/k_xor_sat/kikuchi_block_encoding.ipynb
150+
optimization/k_xor_sat/planted_noisy_kxor.ipynb
145151

146152
.. toctree::
147153
: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)