গ্রোভারের অ্যালগরিদম: বাস্তব জীবনের উদাহরণ?


13

অনুশীলনে গ্রোভারের অ্যালগরিদম কীভাবে ব্যবহার করা যেতে পারে সে সম্পর্কে আমি যথেষ্ট বিভ্রান্ত এবং আমি একটি উদাহরণের মাধ্যমে স্পষ্টকরণে সহায়তা চাইতে চাই।

আসুন একটি উপাদান ডাটাবেস ধরে নেওয়া যাক যাতে লাল, কমলা, হলুদ, সবুজ, সায়ান, নীল, নীল এবং ভায়োলেট রঙ রয়েছে এবং এই ক্রমে অগত্যা নয়। আমার লক্ষ্য ডাটাবেসে রেড খুঁজে পাওয়া RedN=8

গ্রোভারের অ্যালগরিদমের ইনপুট হ'ল কুইবিট, যেখানে 3 কোয়েট ডেটাসেটের সূচকগুলি এনকোড করে। আমার বিভ্রান্তি এখানে আসে (প্রাঙ্গণ সম্পর্কে বিভ্রান্ত হতে পারে তাই এখানে বিভ্রান্ত ধর্মঘট বলুন) যেহেতু আমি বুঝতে পেরেছি, ওরাকল আসলে ডেটাসেটের সূচকগুলির জন্য অনুসন্ধান করে (3 কোবিটের উপস্থাপিত দ্বারা উপস্থাপিত) এবং আরও, ওরাকলটি "হার্ডকোডযুক্ত" যার জন্য এটি সূচীটি সন্ধান করা উচিত।n=log2(N=8)=3

আমার প্রশ্নগুলি হ'ল:

  • এখানে আমি কী ভুল করব?
  • যদি ওরাকল সত্যিই ডাটাবেসের সূচকের কোনও সন্ধান করে, তার অর্থ হ'ল আমরা ইতিমধ্যে জানি যে আমরা কোন সূচকটি সন্ধান করছি, তবে অনুসন্ধান কেন?
  • রঙগুলির সাথে উপরোক্ত শর্তাবলী দেওয়া, কেউ গ্রোভারের দ্বারা একটি কাঠামোগত ডেটাসেটে রেড সন্ধান করা সম্ভব কিনা তা চিহ্নিত করতে পারেন?

| 111> অনুসন্ধানের জন্য জন্য একটি ওরেकल সহ গ্রোভারের অ্যালগরিদমের জন্য বাস্তবায়ন রয়েছে , উদাহরণস্বরূপ (বা নীচে একই ওরাকলটির একটি আর বাস্তবায়ন দেখুন): /quantum//a/2205n=3111 এর জন্য ওরাকল

আবার আমার বিভ্রান্তিটি হ'ল, আমি কোনও ডেটাসেটে উপাদানগুলির অবস্থান জানি না , তবে অ্যালগরিদমের জন্য আমাকে এমন একটি স্ট্রিং অনুসন্ধান করতে হবে যা এন উপাদানগুলির অবস্থানকে এনকোড করে । যখন আমি ডেটাসেটটি কাঠামোগত না করা হয় তখন আমি কীভাবে আমার অবস্থানের সন্ধান করব?NN

আর কোড:

 #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)

Image2



উত্তর:


5

|xaddress|0value|xaddress|load(x)0value=|xaddress|load(x)value.

Haddressn|0address|0value=12n/2x=02n1|xaddress|0value
apply load12n/2x=02n1|xaddress|load(x)value
O(N)x
|xaddress|load(x)value.

আপনার মুখ্য সমস্যাটি হ'ল গ্রোভার অ্যালগরিদম নয় ডাটাবেস বোঝা। আপনি এটির জন্য 6.5 অধ্যায় আরও বিস্তারিত ব্যাখ্যা দেখতে পারেন।

আমি আরও মনে করি যে গ্রোভার অ্যালগরিদমের সর্বাধিক দরকারী অ্যাপ্লিকেশন হ'ল ডাটাবেস অ্যাপ্লিকেশন নয়, এটি প্রশস্ততা প্রশস্তকরণ হিসাবে এর সাধারণকরণ (দেখুন https://arxiv.org/abs/quant-ph/0005055 দেখুন ) কোনও কোয়ান্টাম অ্যালগরিদম ।


k|k|skksk=+1sk
GLS


4

এটি ইতিমধ্যে এই সম্পর্কিত প্রশ্নে আংশিকভাবে আলোচনা করা হয়েছে , তবে আপনি উত্থাপিত কিছু বিষয়গুলিকে আরও সুনির্দিষ্টভাবে সমাধান করার জন্য আমি এখানে চেষ্টা করব।

|i(1)f(xi)|i,
ixii

f(xi)xixixiPP মানে হতে পারে "লাল হচ্ছে"।

fxiixi এটা দিয়ে আমিও জ্ঞান যা ওরাকল নির্মাণ করতে ব্যবহৃত হয় নি লাভ করে।

xi=ixi

এই জাতীয় ক্ষেত্রে, অ্যালগরিদমটি আসলে বিশেষভাবে কার্যকর নয় কারণ উত্তরটি ওরাকলটিতে হার্ডকোড করা উচিত, তবে সাধারণভাবে এটি হওয়া উচিত নয়।


ধন্যবাদ তোমার উত্তরের জন্য! সম্ভবত উপস্থাপন করা ওরাকল প্রদত্ত কিছু বাস্তব উপাত্তের উপর গ্রোভারের "দরকারী" প্রয়োগ করা হয়েছে এমন একটি বাস্তব জীবনের উদাহরণ প্রদান করা সম্ভব হবে কি? উদাহরণস্বরূপ, এটি প্রাইমস এবং নন প্রাইম সহ একটি 8 টি উপাদান ডাটাবেসের সাথে কীভাবে কাজ করবে?
01000001

1
ffx
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.