অনুশীলনে গ্রোভারের অ্যালগরিদম কীভাবে ব্যবহার করা যেতে পারে সে সম্পর্কে আমি যথেষ্ট বিভ্রান্ত এবং আমি একটি উদাহরণের মাধ্যমে স্পষ্টকরণে সহায়তা চাইতে চাই।
আসুন একটি উপাদান ডাটাবেস ধরে নেওয়া যাক যাতে লাল, কমলা, হলুদ, সবুজ, সায়ান, নীল, নীল এবং ভায়োলেট রঙ রয়েছে এবং এই ক্রমে অগত্যা নয়। আমার লক্ষ্য ডাটাবেসে রেড খুঁজে পাওয়া Red
গ্রোভারের অ্যালগরিদমের ইনপুট হ'ল কুইবিট, যেখানে 3 কোয়েট ডেটাসেটের সূচকগুলি এনকোড করে। আমার বিভ্রান্তি এখানে আসে (প্রাঙ্গণ সম্পর্কে বিভ্রান্ত হতে পারে তাই এখানে বিভ্রান্ত ধর্মঘট বলুন) যেহেতু আমি বুঝতে পেরেছি, ওরাকল আসলে ডেটাসেটের সূচকগুলির জন্য অনুসন্ধান করে (3 কোবিটের উপস্থাপিত দ্বারা উপস্থাপিত) এবং আরও, ওরাকলটি "হার্ডকোডযুক্ত" যার জন্য এটি সূচীটি সন্ধান করা উচিত।
আমার প্রশ্নগুলি হ'ল:
- এখানে আমি কী ভুল করব?
- যদি ওরাকল সত্যিই ডাটাবেসের সূচকের কোনও সন্ধান করে, তার অর্থ হ'ল আমরা ইতিমধ্যে জানি যে আমরা কোন সূচকটি সন্ধান করছি, তবে অনুসন্ধান কেন?
- রঙগুলির সাথে উপরোক্ত শর্তাবলী দেওয়া, কেউ গ্রোভারের দ্বারা একটি কাঠামোগত ডেটাসেটে রেড সন্ধান করা সম্ভব কিনা তা চিহ্নিত করতে পারেন?
| 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)