Domanda
Voglio usare l'algoritmo Grover per cercare un elemento un database non ordinato . Ora sorge la domanda, come posso inizializzare l'indice e il valore del database con i qubit?
Esempio
- Diciamo che ho qubit. Pertanto, è possibile mappare valori classici.
- Il mio database non ordinato ha i seguenti elementi: .
- Voglio cercare .
- Il mio approccio: indicizzare il database con . Registra e per l'indice e registri e per il valore. Quindi applicare l'algoritmo Grover solo ai registri e . Questo può essere realizzato? C'è un altro approccio?
Cosa ho già implementato ( su GitHub )
"Grover-Algorithm with 2-, 3-, 4-Qubits", ma ciò che fa è semplice: i bit sono inizializzati con , l'oracolo segnerà la mia soluzione (che è solo un numero come ), la parte Grover aumenterà la probabilità dell'elemento selezionato e diminuire tutte le altre probabilità e poi i qubit sono leggere da essere mappato ai bit classici. Lasciamo che questo processo venga eseguito più volte in successione e quindi otteniamo una distribuzione di probabilità, dove la probabilità più alta ha il nostro elemento ricercato .
L'output è sempre uguale a quello contrassegnato nell'oracolo. Come posso generare più informazioni dall'output, che non conosco al momento in cui ho costruito l'oracolo?