Skip to content

Commit 6dfc126

Browse files
committed
planted noisy kXOR algorithm
1 parent e450865 commit 6dfc126

31 files changed

+12912
-11
lines changed

dev_tools/qualtran_dev_tools/notebook_specs.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@
9393
import qualtran.bloqs.gf_arithmetic.gf2_multiplication
9494
import qualtran.bloqs.gf_arithmetic.gf2_square
9595
import qualtran.bloqs.hamiltonian_simulation.hamiltonian_simulation_by_gqsp
96+
import qualtran.bloqs.max_k_xor_sat
97+
import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian
9698
import qualtran.bloqs.mcmt.and_bloq
9799
import qualtran.bloqs.mcmt.controlled_via_and
98100
import qualtran.bloqs.mcmt.ctrl_spec_and
@@ -904,6 +906,49 @@
904906
),
905907
]
906908

909+
# --------------------------------------------------------------------------
910+
# ----- Quartic Speedups paper ------------------------------------------
911+
# --------------------------------------------------------------------------
912+
ALGO_QUARTIC_SPEEDUPS = [
913+
# ----- Preliminaries ------------------------------------------
914+
NotebookSpecV2(
915+
title='Guided (sparse) Hamiltonian Problem',
916+
module=qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian,
917+
bloq_specs=[
918+
qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_DOC,
919+
qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_PHASE_ESTIMATION_DOC,
920+
],
921+
),
922+
# ----- Algorithm ------------------------------------------
923+
NotebookSpecV2(
924+
title='kXOR: Instance load Oracles',
925+
module=qualtran.bloqs.max_k_xor_sat.load_kxor_instance,
926+
bloq_specs=[qualtran.bloqs.max_k_xor_sat.load_kxor_instance._LOAD_INSTANCE_DOC],
927+
),
928+
NotebookSpecV2(
929+
title='Noisy kXOR: Guiding State',
930+
module=qualtran.bloqs.max_k_xor_sat.guiding_state,
931+
bloq_specs=[
932+
qualtran.bloqs.max_k_xor_sat.guiding_state._SIMPLE_GUIDING_STATE_DOC,
933+
qualtran.bloqs.max_k_xor_sat.guiding_state._GUIDING_STATE_DOC,
934+
],
935+
),
936+
NotebookSpecV2(
937+
title='Noisy kXOR: Block-encoding the Kikuchi Matrix',
938+
module=qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding,
939+
bloq_specs=[
940+
qualtran.bloqs.max_k_xor_sat.kikuchi_adjacency_matrix._KIKUCHI_MATRIX_ENTRY_DOC,
941+
qualtran.bloqs.max_k_xor_sat.kikuchi_adjacency_list._KIKUCHI_NONZERO_INDEX_DOC,
942+
qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding._KIKUCHI_HAMILTONIAN_DOC,
943+
],
944+
),
945+
NotebookSpecV2(
946+
title='Algorithm: Planted Noise kXOR',
947+
module=qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor,
948+
bloq_specs=[qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor._PLANTED_NOISY_KXOR_DOC],
949+
),
950+
]
951+
907952
NB_BY_SECTION = [
908953
('Basic Gates', BASIC_GATES),
909954
('Chemistry', CHEMISTRY),
@@ -912,5 +957,6 @@
912957
('GF Arithmetic', GF_ARITHMETIC),
913958
('Rotations', ROT_QFT_PE),
914959
('Block Encoding', BLOCK_ENCODING),
960+
('Paper: Quartic Quantum Speedups for Planted Inference', ALGO_QUARTIC_SPEEDUPS),
915961
('Other', OTHER),
916962
]

docs/bloqs/index.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,16 @@ Bloqs Library
137137
block_encoding/chebyshev_polynomial.ipynb
138138
block_encoding/lcu_block_encoding.ipynb
139139

140+
.. toctree::
141+
:maxdepth: 2
142+
:caption: Paper: Quartic Quantum Speedups for Planted Inference:
143+
144+
max_k_xor_sat/guided_hamiltonian/guided_hamiltonian.ipynb
145+
max_k_xor_sat/load_kxor_instance.ipynb
146+
max_k_xor_sat/guiding_state.ipynb
147+
max_k_xor_sat/kikuchi_block_encoding.ipynb
148+
max_k_xor_sat/planted_noisy_kxor.ipynb
149+
140150
.. toctree::
141151
:maxdepth: 2
142152
:caption: Other:

qualtran/bloqs/max_k_xor_sat/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414
from .guiding_state import GuidingState, SimpleGuidingState
15+
from .kikuchi_adjacency_list import KikuchiNonZeroIndex
16+
from .kikuchi_adjacency_matrix import KikuchiMatrixEntry
17+
from .kikuchi_block_encoding import KikuchiHamiltonian, KikuchiMatrixEntry, KikuchiNonZeroIndex
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)