|
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
|
|
106 | 107 | import qualtran.bloqs.factoring.ecc
|
107 | 108 | import qualtran.bloqs.factoring.mod_exp
|
108 | 109 | import qualtran.bloqs.hamiltonian_simulation.hamiltonian_simulation_by_gqsp
|
| 110 | +import qualtran.bloqs.max_k_xor_sat |
| 111 | +import qualtran.bloqs.max_k_xor_sat.arithmetic |
| 112 | +import qualtran.bloqs.max_k_xor_sat.arithmetic.has_duplicates |
| 113 | +import qualtran.bloqs.max_k_xor_sat.arithmetic.sort_in_place |
| 114 | +import qualtran.bloqs.max_k_xor_sat.arithmetic.symmetric_difference |
| 115 | +import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian |
| 116 | +import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian |
| 117 | +import qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.walk_operator |
| 118 | +import qualtran.bloqs.max_k_xor_sat.guiding_state |
| 119 | +import qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding |
| 120 | +import qualtran.bloqs.max_k_xor_sat.load_kxor_instance |
| 121 | +import qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor |
109 | 122 | import qualtran.bloqs.mcmt.and_bloq
|
110 | 123 | import qualtran.bloqs.mcmt.controlled_via_and
|
111 | 124 | import qualtran.bloqs.mcmt.ctrl_spec_and
|
|
699 | 712 | module=qualtran.bloqs.block_encoding.sparse_matrix,
|
700 | 713 | bloq_specs=[qualtran.bloqs.block_encoding.sparse_matrix._SPARSE_MATRIX_DOC],
|
701 | 714 | ),
|
| 715 | + NotebookSpecV2( |
| 716 | + title='Sparse Matrix (Hermitian)', |
| 717 | + module=qualtran.bloqs.block_encoding.sparse_matrix_hermitian, |
| 718 | + bloq_specs=[ |
| 719 | + qualtran.bloqs.block_encoding.sparse_matrix_hermitian._SPARSE_MATRIX_HERMITIAN_DOC |
| 720 | + ], |
| 721 | + ), |
702 | 722 | NotebookSpecV2(
|
703 | 723 | title='Chebyshev Polynomial',
|
704 | 724 | module=qualtran.bloqs.block_encoding.chebyshev_polynomial,
|
|
828 | 848 | ],
|
829 | 849 | ),
|
830 | 850 | ]
|
| 851 | +# -------------------------------------------------------------------------- |
| 852 | +# ----- Quartic Speedups paper ------------------------------------------ |
| 853 | +# -------------------------------------------------------------------------- |
| 854 | +ALGO_QUARTIC_SPEEDUPS = [ |
| 855 | + # ----- Preliminaries ------------------------------------------ |
| 856 | + NotebookSpecV2( |
| 857 | + title='Guided (sparse) Hamiltonian Problem', |
| 858 | + module=qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian, |
| 859 | + bloq_specs=[ |
| 860 | + qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_DOC, |
| 861 | + qualtran.bloqs.max_k_xor_sat.guided_hamiltonian.guided_hamiltonian._GUIDED_HAMILTONIAN_PHASE_ESTIMATION_DOC, |
| 862 | + ], |
| 863 | + ), |
| 864 | + NotebookSpecV2( |
| 865 | + title='Arithmetic Primitives', |
| 866 | + module=qualtran.bloqs.max_k_xor_sat.arithmetic, |
| 867 | + bloq_specs=[ |
| 868 | + qualtran.bloqs.max_k_xor_sat.arithmetic.sort_in_place._SORT_IN_PLACE_DOC, |
| 869 | + qualtran.bloqs.max_k_xor_sat.arithmetic.symmetric_difference._SYMMETRIC_DIFFERENCE_DOC, |
| 870 | + qualtran.bloqs.max_k_xor_sat.arithmetic.has_duplicates._HAS_DUPLICATES_DOC, |
| 871 | + ], |
| 872 | + ), |
| 873 | + # ----- Algorithm ------------------------------------------ |
| 874 | + NotebookSpecV2( |
| 875 | + title='kXOR: Instance load Oracles', |
| 876 | + module=qualtran.bloqs.max_k_xor_sat.load_kxor_instance, |
| 877 | + bloq_specs=[qualtran.bloqs.max_k_xor_sat.load_kxor_instance._LOAD_INSTANCE_DOC], |
| 878 | + ), |
| 879 | + NotebookSpecV2( |
| 880 | + title='Noisy kXOR: Guiding State', |
| 881 | + module=qualtran.bloqs.max_k_xor_sat.guiding_state, |
| 882 | + bloq_specs=[ |
| 883 | + qualtran.bloqs.max_k_xor_sat.guiding_state._SIMPLE_GUIDING_STATE_DOC, |
| 884 | + qualtran.bloqs.max_k_xor_sat.guiding_state._GUIDING_STATE_DOC, |
| 885 | + ], |
| 886 | + ), |
| 887 | + NotebookSpecV2( |
| 888 | + title='Noisy kXOR: Block-encoding the Kikuchi Matrix', |
| 889 | + module=qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding, |
| 890 | + bloq_specs=[ |
| 891 | + qualtran.bloqs.max_k_xor_sat.kikuchi_adjacency_matrix._KIKUCHI_MATRIX_ENTRY_DOC, |
| 892 | + qualtran.bloqs.max_k_xor_sat.kikuchi_adjacency_list._KIKUCHI_NONZERO_INDEX_DOC, |
| 893 | + qualtran.bloqs.max_k_xor_sat.kikuchi_block_encoding._KIKUCHI_HAMILTONIAN_DOC, |
| 894 | + ], |
| 895 | + ), |
| 896 | + NotebookSpecV2( |
| 897 | + title='Algorithm: Planted Noise kXOR', |
| 898 | + module=qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor, |
| 899 | + bloq_specs=[qualtran.bloqs.max_k_xor_sat.planted_noisy_kxor._PLANTED_NOISY_KXOR_DOC], |
| 900 | + ), |
| 901 | +] |
831 | 902 |
|
832 | 903 | # --------------------------------------------------------------------------
|
833 | 904 | # ----- Concepts -------------------------------------------------------
|
|
854 | 925 | ('Modular Arithmetic', MOD_ARITHMETIC),
|
855 | 926 | ('Rotations', ROT_QFT_PE),
|
856 | 927 | ('Block Encoding', BLOCK_ENCODING),
|
| 928 | + ('Paper: Quartic Quantum Speedups for Planted Inference', ALGO_QUARTIC_SPEEDUPS), |
857 | 929 | ('Other', OTHER),
|
858 | 930 | ]
|
859 | 931 |
|
|
0 commit comments