|
72 | 72 | import qualtran.bloqs.block_encoding.phase
|
73 | 73 | import qualtran.bloqs.block_encoding.product
|
74 | 74 | import qualtran.bloqs.block_encoding.sparse_matrix
|
| 75 | +import qualtran.bloqs.block_encoding.sparse_matrix_hermitian |
75 | 76 | import qualtran.bloqs.block_encoding.tensor_product
|
76 | 77 | import qualtran.bloqs.block_encoding.unitary
|
77 | 78 | import qualtran.bloqs.bookkeeping
|
|
111 | 112 | import qualtran.bloqs.gf_arithmetic.gf2_multiplication
|
112 | 113 | import qualtran.bloqs.gf_arithmetic.gf2_square
|
113 | 114 | import qualtran.bloqs.hamiltonian_simulation.hamiltonian_simulation_by_gqsp
|
| 115 | +import qualtran.bloqs.max_k_xor_sat |
| 116 | +import qualtran.bloqs.max_k_xor_sat.arithmetic |
| 117 | +import qualtran.bloqs.max_k_xor_sat.arithmetic.has_duplicates |
| 118 | +import qualtran.bloqs.max_k_xor_sat.arithmetic.sort_in_place |
| 119 | +import qualtran.bloqs.max_k_xor_sat.arithmetic.symmetric_difference |
| 120 | +import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian |
| 121 | +import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian |
| 122 | +import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.walk_operator |
| 123 | +import qualtran.bloqs.max_k_xor_sat.guiding_state |
| 124 | +import qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding |
| 125 | +import qualtran.bloqs.max_k_xor_sat.load_kxor_instance |
| 126 | +import qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor |
114 | 127 | import qualtran.bloqs.mcmt.and_bloq
|
115 | 128 | import qualtran.bloqs.mcmt.controlled_via_and
|
116 | 129 | import qualtran.bloqs.mcmt.ctrl_spec_and
|
|
746 | 759 | module=qualtran.bloqs.block_encoding.sparse_matrix,
|
747 | 760 | bloq_specs=[qualtran.bloqs.block_encoding.sparse_matrix._SPARSE_MATRIX_DOC],
|
748 | 761 | ),
|
| 762 | + NotebookSpecV2( |
| 763 | + title='Sparse Matrix (Hermitian)', |
| 764 | + module=qualtran.bloqs.block_encoding.sparse_matrix_hermitian, |
| 765 | + bloq_specs=[ |
| 766 | + qualtran.bloqs.block_encoding.sparse_matrix_hermitian._SPARSE_MATRIX_HERMITIAN_DOC |
| 767 | + ], |
| 768 | + ), |
749 | 769 | NotebookSpecV2(
|
750 | 770 | title='Chebyshev Polynomial',
|
751 | 771 | module=qualtran.bloqs.block_encoding.chebyshev_polynomial,
|
|
875 | 895 | ],
|
876 | 896 | ),
|
877 | 897 | ]
|
| 898 | +# -------------------------------------------------------------------------- |
| 899 | +# ----- Quartic Speedups paper ------------------------------------------ |
| 900 | +# -------------------------------------------------------------------------- |
| 901 | +ALGO_QUARTIC_SPEEDUPS = [ |
| 902 | + # ----- Preliminaries ------------------------------------------ |
| 903 | + NotebookSpecV2( |
| 904 | + title='Guided (sparse) Hamiltonian Problem', |
| 905 | + module=qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian, |
| 906 | + bloq_specs=[ |
| 907 | + qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_DOC, |
| 908 | + qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_PHASE_ESTIMATION_DOC, |
| 909 | + ], |
| 910 | + ), |
| 911 | + NotebookSpecV2( |
| 912 | + title='Arithmetic Primitives', |
| 913 | + module=qualtran.bloqs.max_k_xor_sat.arithmetic, |
| 914 | + bloq_specs=[ |
| 915 | + qualtran.bloqs.max_k_xor_sat.arithmetic.sort_in_place._SORT_IN_PLACE_DOC, |
| 916 | + qualtran.bloqs.max_k_xor_sat.arithmetic.symmetric_difference._SYMMETRIC_DIFFERENCE_DOC, |
| 917 | + qualtran.bloqs.max_k_xor_sat.arithmetic.has_duplicates._HAS_DUPLICATES_DOC, |
| 918 | + ], |
| 919 | + ), |
| 920 | + # ----- Algorithm ------------------------------------------ |
| 921 | + NotebookSpecV2( |
| 922 | + title='kXOR: Instance load Oracles', |
| 923 | + module=qualtran.bloqs.max_k_xor_sat.load_kxor_instance, |
| 924 | + bloq_specs=[qualtran.bloqs.max_k_xor_sat.load_kxor_instance._LOAD_INSTANCE_DOC], |
| 925 | + ), |
| 926 | + NotebookSpecV2( |
| 927 | + title='Noisy kXOR: Guiding State', |
| 928 | + module=qualtran.bloqs.max_k_xor_sat.guiding_state, |
| 929 | + bloq_specs=[ |
| 930 | + qualtran.bloqs.max_k_xor_sat.guiding_state._SIMPLE_GUIDING_STATE_DOC, |
| 931 | + qualtran.bloqs.max_k_xor_sat.guiding_state._GUIDING_STATE_DOC, |
| 932 | + ], |
| 933 | + ), |
| 934 | + NotebookSpecV2( |
| 935 | + title='Noisy kXOR: Block-encoding the Kikuchi Matrix', |
| 936 | + module=qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding, |
| 937 | + bloq_specs=[ |
| 938 | + qualtran.bloqs.max_k_xor_sat.kikuchi_adjacency_matrix._KIKUCHI_MATRIX_ENTRY_DOC, |
| 939 | + qualtran.bloqs.max_k_xor_sat.kikuchi_adjacency_list._KIKUCHI_NONZERO_INDEX_DOC, |
| 940 | + qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding._KIKUCHI_HAMILTONIAN_DOC, |
| 941 | + ], |
| 942 | + ), |
| 943 | + NotebookSpecV2( |
| 944 | + title='Algorithm: Planted Noise kXOR', |
| 945 | + module=qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor, |
| 946 | + bloq_specs=[qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor._PLANTED_NOISY_KXOR_DOC], |
| 947 | + ), |
| 948 | +] |
878 | 949 |
|
879 | 950 | # --------------------------------------------------------------------------
|
880 | 951 | # ----- Concepts -------------------------------------------------------
|
|
902 | 973 | ('GF Arithmetic', GF_ARITHMETIC),
|
903 | 974 | ('Rotations', ROT_QFT_PE),
|
904 | 975 | ('Block Encoding', BLOCK_ENCODING),
|
| 976 | + ('Paper: Quartic Quantum Speedups for Planted Inference', ALGO_QUARTIC_SPEEDUPS), |
905 | 977 | ('Other', OTHER),
|
906 | 978 | ]
|
907 | 979 |
|
|
0 commit comments