मैं इस बारे में काफी उलझन में हूं कि ग्रोवर के एल्गोरिदम का उपयोग कैसे किया जा सकता है और मैं एक उदाहरण के माध्यम से स्पष्टीकरण पर मदद मांगना चाहता हूं।
आइए मान लें कि तत्व डेटाबेस जिसमें रंग लाल, नारंगी, पीला, हरा, सियान, नीला, इंडिगो और वायलेट शामिल हैं, और इस क्रम में जरूरी नहीं है। मेरा लक्ष्य डेटाबेस में रेड ढूंढना है।
ग्रोवर के एल्गोरिथ्म के लिए इनपुट क्विट है, जहां 3 क्विट्स डेटासेट के इंडेक्स को एनकोड करते हैं। मेरा भ्रम यहां आता है (परिसर के बारे में भ्रमित हो सकता है, इसलिए यहां भ्रम की स्थिति कहो), जैसा कि मैं समझता हूं, वास्तव में ओरेकल डेटासेट के सूचकांकों में से एक के लिए खोज करता है (3 qubits के सुपरपोजिशन द्वारा प्रतिनिधित्व), और इसके अलावा। ओरेकल "हार्डकोड" है जिसके लिए यह सूचकांक देखना चाहिए।
मेरे प्रश्न हैं:
- मुझे यहाँ क्या गलत लगता है?
- यदि दैवज्ञ वास्तव में डेटाबेस के सूचकांकों में से एक की तलाश कर रहा है, तो इसका मतलब है कि हम पहले से ही जानते हैं कि हम किस सूचकांक की तलाश कर रहे हैं, इसलिए खोज क्यों?
- रंगों के साथ उपरोक्त स्थितियों को देखते हुए, क्या कोई इसे इंगित कर सकता है कि क्या ग्रोवर के साथ एक असंरचित डेटासेट में रेड की तलाश करना संभव है?
के लिए एक ओरेकल के साथ ग्रोवर के एल्गोरिदम के लिए कार्यान्वयन हैं । 111>, उदाहरण के लिए (या नीचे एक ही आर का कार्यान्वयन देखें): /quantum//a/2205
फिर से, मेरा भ्रम है, यह देखते हुए कि मैं डेटासेट में तत्वों की स्थिति नहीं जानता , एल्गोरिथ्म मुझे एक स्ट्रिंग की खोज करने की आवश्यकता है जो तत्वों की स्थिति को एनकोड करता है । मुझे कैसे पता चलेगा कि डेटासेट के असंरचित होने पर मुझे किस स्थिति की तलाश करनी चाहिए?
आर कोड:
#START
a = TensorProd(TensorProd(Hadamard(I2),Hadamard(I2)),Hadamard(I2))
# 1st CNOT
a1= CNOT3_12(a)
# 2nd composite
# I x I x T1Gate
b = TensorProd(TensorProd(I2,I2),T1Gate(I2))
b1 = DotProduct(b,a1)
c = CNOT3_02(b1)
# 3rd composite
# I x I x TGate
d = TensorProd(TensorProd(I2,I2),TGate(I2))
d1 = DotProduct(d,c)
e = CNOT3_12(d1)
# 4th composite
# I x I x T1Gate
f = TensorProd(TensorProd(I2,I2),T1Gate(I2))
f1 = DotProduct(f,e)
g = CNOT3_02(f1)
#5th composite
# I x T x T
h = TensorProd(TensorProd(I2,TGate(I2)),TGate(I2))
h1 = DotProduct(h,g)
i = CNOT3_01(h1)
#6th composite
j = TensorProd(TensorProd(I2,T1Gate(I2)),I2)
j1 = DotProduct(j,i)
k = CNOT3_01(j1)
#7th composite
l = TensorProd(TensorProd(TGate(I2),I2),I2)
l1 = DotProduct(l,k)
#8th composite
n = TensorProd(TensorProd(Hadamard(I2),Hadamard(I2)),Hadamard(I2))
n1 = DotProduct(n,l1)
n2 = TensorProd(TensorProd(PauliX(I2),PauliX(I2)),PauliX(I2))
a = DotProduct(n2,n1)
#repeat the same from 2st not gate
a1= CNOT3_12(a)
# 2nd composite
# I x I x T1Gate
b = TensorProd(TensorProd(I2,I2),T1Gate(I2))
b1 = DotProduct(b,a1)
c = CNOT3_02(b1)
# 3rd composite
# I x I x TGate
d = TensorProd(TensorProd(I2,I2),TGate(I2))
d1 = DotProduct(d,c)
e = CNOT3_12(d1)
# 4th composite
# I x I x T1Gate
f = TensorProd(TensorProd(I2,I2),T1Gate(I2))
f1 = DotProduct(f,e)
g = CNOT3_02(f1)
#5th composite
# I x T x T
h = TensorProd(TensorProd(I2,TGate(I2)),TGate(I2))
h1 = DotProduct(h,g)
i = CNOT3_01(h1)
#6th composite
j = TensorProd(TensorProd(I2,T1Gate(I2)),I2)
j1 = DotProduct(j,i)
k = CNOT3_01(j1)
#7th composite
l = TensorProd(TensorProd(TGate(I2),I2),I2)
l1 = DotProduct(l,k)
#8th composite
n = TensorProd(TensorProd(PauliX(I2),PauliX(I2)),PauliX(I2))
n1 = DotProduct(n,l1)
n2 = TensorProd(TensorProd(Hadamard(I2),Hadamard(I2)),Hadamard(I2))
n3 = DotProduct(n2,n1)
result=measurement(n3)
plotMeasurement(result)