গ্রোভারের অনুসন্ধানের অ্যালগরিদমে কীভাবে ওরাকল প্রয়োগ করা হয়?


27

গ্রোভারের অনুসন্ধানের অ্যালগরিদমটি অচলিত ডাটাবেস অনুসন্ধানের জন্য একটি প্রযোজনীয় চতুর্ভুজ গতি সরবরাহ করে। অ্যালগরিদম সাধারণত নিম্নলিখিত কোয়ান্টাম সার্কিট দ্বারা প্রকাশ করা হয়:

সবচেয়ে উপস্থাপনা ইন, প্রোটোকলের একটি অত্যন্ত গুরুত্বপূর্ণ অংশ "ওরাকল গেট" হয় , যা "জাদুর" সঞ্চালিত অপারেশন । তবে এই জাতীয় গেটটি উপলব্ধি করা কতটা কষ্টসাধ্য হবে তা প্রায়শই অবৈতনিকভাবে ছেড়ে দেওয়া হয়। প্রকৃতপক্ষে, মনে হতে পারে এটি "ওরাকল" এর ব্যবহারটি কার্পেটের নীচে থাকা সমস্যাগুলি সরিয়ে দেওয়ার একমাত্র উপায়।Uω|x(1)f(x)|x

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


5
এটাই আমিও ভাবছিলাম। ইন এই গবেষণা উদাহরণস্বরূপ তারা হার্ড টেলিগ্রাম ওরাকল, যা আমার প্রতারনা মত একটি বিট কাণ্ডকীর্তি ... মধ্যে সমাধান
এম স্টার্ন

এই প্রশ্নের আরেকটি বড় উত্তর সরবরাহ করা হয় এই উত্তরটি সি এস তত্ত্ব দঃপূঃ উপর।
GMS

উত্তর:


20

ফাংশন : কেবল একটি বিট স্ট্রিং এর একটি অবাধ বুলিয়ান ফাংশন । [1] , [2] , বা [3] এর মতো ক্রিপ্টোগ্রাফি ভাঙার অ্যাপ্লিকেশনগুলির জন্য , এটি আসলে একটি 'ডাটাবেস অনুসন্ধান' নয়, যা পুরো ডেটাবেসটিকে কোনওভাবে কোয়ান্টাম সার্কিট হিসাবে সংরক্ষণ করার প্রয়োজন হবে, বরং একটি ফাংশন যেমনff:{0,1}n{0,1}

x{1,if SHA-256(x)=y;0,otherwise,

স্থির , যার কোনও কাঠামো নেই যা আমরা শাস্ত্রীয় অনুসন্ধানের জন্য কাজে লাগাতে পারি, বলি না, ফাংশনটি unlikey

x{1,if 2xy(mod220481942289),0,otherwise,

একটি কাঠামোগত রয়েছে যা এমনকি এটি একটি ধ্রুপদী কম্পিউটারে আরও দ্রুত রূপান্তর করতে কাজে লাগানো যেতে পারে

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

শীর্ষে কেবলমাত্র সাধারণ ব্যয় হ'ল অতিরিক্ত শর্তসাপেক্ষ নট গেট যেখানে এক্সর এবং এটির জন্য একটি অতিরিক্ত আনুষঙ্গিক কুইট। বিশেষত, যদি আমাদের একটি সার্কিট বাইরে তৈরি করা হয়েছে এবং জন্য সার্কিট , তবে আমরা যদি প্রথমে রাজ্যে একটি আনুষঙ্গিক কুইট সহ একসাথে প্রয়োগ করি if যেখানেf

C:|a|b|a|ab
F:|x|a|junk|x|af(x)|junk
Cf|x|=H|1=(1/2)(|0|1)H একটি হাদামারড গেট, তারপর আমরা পাই

F|x||junk=12(F|x|0|junkF|x|1|junk)=12(|x|f(x)|junk|x|1f(x)|junk).

যদি তবে , তাই মাধ্যমে আমরা যেখানে যদি তবে , তাই এবং সাধারণভাবে এইভাবেf(x)=01f(x)=1

F|x||junk=|x||junk,
f(x)=11f(x)=0
F|x||junk=|x||junk,
F|x||junk=(1)f(x)|x||junk.


5

ওয়েল, গ্রোভারের মূল কাগজ, "কোয়ান্টাম মেকানিক্স একটি খড়ের কাঁটাতে সূচ খুঁজতে সহায়তা করে" পরিষ্কারভাবে বলেছে, এটি ধরে নিয়েছে যে একটি ধ্রুবক সময়ে সি (এস) মূল্যায়ন করা যেতে পারে। গ্রোভারের অনুসন্ধান বাস্তবায়নের বিষয়ে উদ্বিগ্ন নয়, তবে যাকে কোয়েরি জটিলতা বলা হয় তাতে বহুগুণীয় হ্রাস (আপনি কতবার বার বার ক্লাসিকাল ডাটাবেসের মতো ওরাকেলের সাথে পরামর্শ করেন) reduction

প্রকৃতপক্ষে, কম্পিউটিংয়ে ওরাকল ধারণাটি অ্যালান ট্যুরিং নির্মাণের বর্ণনা দেওয়ার জন্য প্রস্তাব করেছিলেন যার জন্য কোনও ইউটিএম-তে বর্ণনাটি উপলব্ধিযোগ্য (উইকিপিডিয়া) নাও হতে পারে। এটা তোলে হয় কিছু অর্থে ঐন্দ্রজালিক হবে।

তবে অবশ্যই, আপনার প্রশ্নে ফিরে আসার পরে আমরা কীভাবে গ্রোভার অনুসন্ধানের (বা কোনও ওরাকুলার) অ্যালগরিদমকে প্রকৃতপক্ষে তৈরি করব? ফলাফলটি অনুসন্ধান করার জন্য আমাদের কী আগে থেকেই উত্তর জানতে হবে? ঠিক আছে, কিছুটা অর্থে আপনার দরকার। গ্রোভার অনুসন্ধানে চতুর উন্নতিগুলি ঠিক সেইরূপে কাজ করার চেষ্টা করে, যেমন, আমাদের সঠিক উত্তর আগে জানা উচিত নয়, তবে এর কয়েকটি বৈশিষ্ট্য। আমাকে একটি উদাহরণ দিয়ে বর্ণনা করুন।

গ্রোভারের অনুসন্ধান ব্যবহার করে প্যাটার্ন সনাক্তকরণের সমস্যার জন্য, যদি আমার 2 কুইবিটে (00, 01, 10, 11) 4 টি প্যাটার্ন থাকে এবং আমি 11 চিহ্নিত এবং প্রসারিত করতে চাই, তবে আমার ওরাকল ইউনিটেরটিটি 6,1,1 এর মতো হওয়া উচিত , -1) সমাধানের জন্য পাই ফেজ শিফ্টের যত্ন নিতে। সুতরাং, এই সাধারণ বাস্তবায়নের জন্য, এককটি নির্মাণের জন্য, আপনাকে পুরো উত্তরটি আগে থেকেই জানা উচিত।

মেটাস এবং ওমরের "কোয়ান্টাম প্যাটার্ন ম্যাচিং" কাগজে দেওয়া থাকলে প্যাটার্ন সমাপ্তির একটি চতুর উন্নতি। সংক্ষেপে, এটি সেটটিতে বর্ণমালা হিসাবে যতগুলি স্থির ওরাকল নির্মাণ করে। আমাদের বাইনারি স্ট্রিংয়ের জন্য, সেখানে একটি ওরাকল থাকবে যা সমস্ত 1 গুলি চিহ্নিত করে এবং অন্য একটি যা সমস্ত 0 গুলি চিহ্নিত করে। আমি যা অনুসন্ধান করতে চাই তার উপর ভিত্তি করে ওরাকলগুলি শর্তাধীনভাবে ডাকা হয়। আমি যদি 11 টি অনুসন্ধান করতে চাই, তবে আমি এলএসকিউবিটিতে ওরাকল 1 টি এবং এমএসকিউবিটে আবার ওরাকল 1 কল করব। প্রথম ওরাকল দ্বারা, আমি রাজ্যগুলিকে (01, 11) সম্প্রসারণ করব, অর্থাৎ এলএসকিউ যুক্ত রাজ্যগুলিকে 1 হিসাবে এবং দ্বিতীয় কলটিতে এটি প্রশস্ত করা হবে (10, 11)। সুতরাং আপনি যেমন দেখেন যে 11 কেবলমাত্র একমাত্র রাজ্য যা দ্বিগুণ প্রসারিত হয় এবং উচ্চতর পরিমাপের সম্ভাবনা শেষ হয়। যদিও আমার ইনপুট অনুসন্ধানের প্যাটার্নটির ভিত্তিতে সংকলিত কোয়ান্টাম সার্কিট পরিবর্তিত হবে, কোয়ান্টাম অ্যালগোরিদমের একটি উচ্চ-স্তরের বর্ণনা একই থাকে। আপনি অনুসন্ধান স্ট্রিংয়ের প্রতিটি অক্ষরের জন্য বর্ণিত বর্ণমালার স্যুইচ কেসের ভিত্তিতে ফাংশন কল হিসাবে ওরাকলগুলি ভাবতে পারেন।

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