Path: blob/main/translations/bn/ch-algorithms/bernstein-vazirani.ipynb
3855 views
বার্নস্টাইন-ভাজিরানি (Bernstein-Vazirani) অ্যালগরিদম
এই বিভাগে, আমরা প্রথমে বার্নস্টাইন-ভাজিরানি সমস্যা, এর ক্লাসিক্যাল সমাধান এবং এটি সমাধানের জন্য কোয়ান্টাম অ্যালগরিদম উপস্থাপন করি। তারপরে আমরা কিস্কিট ব্যবহার করে কোয়ান্টাম অ্যালগরিদম বাস্তবায়ন করি এবং এটি একটি সিমুলেটর এবং একটি ডিভাইস উভয়েই চালাই।
1. বার্নস্টাইন-ভাজিরানি অ্যালগরিদম
বার্নস্টাইন-ভাজিরানি অ্যালগরিদম, প্রথম রেফারেন্স [1]-এ প্রবর্তিত, আমরা শেষ বিভাগে কভার করা ডয়েচ-জোজসা অ্যালগরিদমের একটি এক্সটেনশন হিসাবে দেখা যেতে পারে। এটি দেখিয়েছে যে ডয়েচ-জোজসা সমস্যার চেয়ে আরও জটিল সমস্যার জন্য একটি কম্পিউটেশনাল টুল হিসাবে কোয়ান্টাম কম্পিউটার ব্যবহার করার সুবিধা থাকতে পারে।
1.1 বার্নস্টাইন-ভাজিরানি সমস্যা
আমাদের আবার একটি ব্ল্যাক-বক্স ফাংশন দেওয়া হয়, যা ইনপুট হিসাবে বিটগুলির একটি স্ট্রিং () নেয় এবং বা প্রদান করে, অর্থাৎ:
Deutsch-Jozsa সমস্যার মত ফাংশনটি ভারসাম্যপূর্ণ বা ধ্রুবক হওয়ার পরিবর্তে, এখন ফাংশনটি নিশ্চিত করা হয়েছে যে কিছু স্ট্রিং, সহ ইনপুটের বিটওয়াইজ পণ্য ফেরত দেবে। অন্য কথায়, , একটি ইনপুট দেওয়া হয়েছে। আমরা খুঁজে পাওয়ার আশা করা হচ্ছে। একটি ক্লাসিক্যাল বিপরীতমুখী সার্কিট হিসাবে, বার্নস্টাইন-ভাজিরানি ওরাকল দেখতে এইরকম:

1.2 ক্লাসিক্যাল সমাধান
ক্লাসিকভাবে, ওরাকল ফেরত দেয়: একটি ইনপুট দেওয়া হয়। এইভাবে, লুকানো বিট স্ট্রিং ইনপুটগুলির ক্রম সহ ওরাকলকে জিজ্ঞাসা করে প্রকাশ করা যেতে পারে:
Input(x) :-: 100...0 010...0 001...0 000...1
যেখানে প্রতিটি প্রশ্ন ( বিট) এর একটি ভিন্ন বিট প্রকাশ করে। উদাহরণ স্বরূপ, x = 1000...0 দিয়ে একজন এর সর্বনিম্ন উল্লেখযোগ্য বিট পেতে পারে, x = 0100...0 দিয়ে আমরা পরবর্তী সর্বনিম্ন উল্লেখযোগ্য বিট খুঁজে পেতে পারি, ইত্যাদি। এর মানে আমাদের , বার ফাংশন কল করতে হবে।
1.3 কোয়ান্টাম সমাধান
একটি কোয়ান্টাম কম্পিউটার ব্যবহার করে, আমরা ফাংশনে শুধুমাত্র একটি কল করার পরে 100% আত্মবিশ্বাসের সাথে এই সমস্যার সমাধান করতে পারি। লুকানো বিট স্ট্রিং খুঁজে পেতে কোয়ান্টাম বার্নস্টাইন-ভাজিরানি অ্যালগরিদম খুবই সহজ:
স্টেটে ইনপুট কিউবিট শুরু করুন এবং এ কিউবিট আউটপুট করুন।
ইনপুট রেজিস্টারে হাদমার্ড গেট প্রয়োগ করুন
ওরাকলকে জিজ্ঞাসা করুন
ইনপুট রেজিস্টারে হাদমার্ড গেট প্রয়োগ করুন
পরিমাপ করুন

অ্যালগরিদম ব্যাখ্যা করার জন্য, আসুন আমরা প্রতিটি কিউবিটে একটি H-গেট প্রয়োগ করলে কী ঘটে তা আরও গভীরভাবে দেখি। যদি আমাদের একটি -qubit অবস্থা থাকে, , এবং H-গেটস প্রয়োগ করি, আমরা রূপান্তর দেখতে পাব:
আমরা মনে করি হাদামার্ড একটি কিউবিটে নিম্নলিখিত রূপান্তরগুলি সম্পাদন করে:
সমষ্টি স্বরলিপি ব্যবহার করে, আমরা এটিকে এভাবে আবার লিখতে পারি:
দুটি কিউবিটের জন্য, প্রতিটিতে একটি হাডামার্ড প্রয়োগ করা নিম্নলিখিত রূপান্তরগুলি সম্পাদন করে:
আমরা নীচের সমষ্টি ব্যবহার করে এটি প্রকাশ করতে পারি:
আপনি আশাকরি এখন দেখতে পাবেন কিভাবে আমরা উপরের সমীকরণে পৌঁছেছি।
বিশেষ করে, যখন আমরা একটি কোয়ান্টাম রেজিস্টার দিয়ে শুরু করি এবং এতে হাদামার্ড গেট প্রয়োগ করি, তখন আমাদের কাছে পরিচিত কোয়ান্টাম সুপারপজিশন থাকে:
এই ক্ষেত্রে, ফেজ শব্দটি অদৃশ্য হয়ে যায়, যেহেতু , এবং এইভাবে ।
ক্লাসিক্যাল ওরাকল যেকোনো ইনপুটের জন্য ফেরত দেয় যেমন , এবং অন্যথায় ফেরত দেয়। আমরা যদি Deutsch-Jozsa অ্যালগরিদম থেকে একই ফেজ কিকব্যাক ট্রিক ব্যবহার করি এবং রাজ্যের একটি কিউবিটে কাজ করি, আমরা নিম্নলিখিত রূপান্তরটি পাই:
লুকানো বিট স্ট্রিংটি প্রকাশ করার অ্যালগরিদম স্বাভাবিকভাবেই কোয়ান্টাম ওরাকল কে হ্যাডামার্ড রূপান্তর থেকে প্রাপ্ত কোয়ান্টাম সুপারপজিশনের সাথে অনুসন্ধান করে অনুসরণ করে। যথা,
কারণ হাদামার্ড গেটের বিপরীতটি আবার হাদামার্ড গেট, আমরা পেতে পারি
2. উদাহরণ
আসুন qubits এবং একটি গোপন স্ট্রিং এর জন্য একটি নির্দিষ্ট উদাহরণ দিয়ে যাই। উল্লেখ্য যে আমরা রেফারেন্স [2] এর সূত্র অনুসরণ করছি যা শুধুমাত্র একটি রেজিস্টার ব্যবহার করে বার্নস্টেইন-ভাজিরানি কোয়ান্টাম ওরাকলের জন্য একটি সার্কিট তৈরি করে।
- দুটি কিউবিটের রেজিস্টার শূন্য থেকে শুরু করা হয়েছে:
নিচের উইজেট bv_widget ব্যবহার করুন। বিভিন্ন ধাপ প্রয়োগ করতে বোতাম টিপুন এবং অ্যালগরিদম অনুসরণ করার চেষ্টা করুন। আপনি প্রথম দুটি অবস্থানগত আর্গুমেন্টের মাধ্যমে ইনপুট কিউবিট সংখ্যা এবং গোপন স্ট্রিং এর মান পরিবর্তন করতে পারেন।
আমরা প্রথমে পরীক্ষায় ব্যবহৃত কিউবিটের সংখ্যা সেট করি এবং অ্যালগরিদম দ্বারা খুঁজে পাওয়া লুকানো বিট স্ট্রিং । লুকানো বিট স্ট্রিং কোয়ান্টাম ওরাকলের সার্কিট নির্ধারণ করে।
তারপরে আমরা বার্নস্টাইন-ভাজিরানি অ্যালগরিদম প্রোগ্রাম করতে কিস্কিট ব্যবহার করি।
আমরা দেখতে পাচ্ছি যে পরিমাপের ফলাফল হল লুকানো স্ট্রিং 011 ।
আমরা দেখতে পাচ্ছি, বেশিরভাগ ফলাফল 011 । অন্যান্য ফলাফলগুলি কোয়ান্টাম গণনার ত্রুটির কারণে।
বার্নস্টাইন-ভাজিরানির উপরোক্ত প্রয়োগটি একটি গোপন বিট স্ট্রিং এর জন্য। একটি গোপন স্ট্রিং এর জন্য বাস্তবায়ন পরিবর্তন করুন। ফলাফল আপনি কি আশা করা হয়? ব্যাখ্যা করা.
বার্নস্টাইন-ভাজিরানির উপরোক্ত প্রয়োগটি একটি গোপন বিট স্ট্রিং এর জন্য। একটি গোপন স্ট্রিং এর জন্য বাস্তবায়ন পরিবর্তন করুন। ফলাফল আপনি কি আশা করা হয়? ব্যাখ্যা করা.
5. References
Ethan Bernstein and Umesh Vazirani (1997) "Quantum Complexity Theory" SIAM Journal on Computing, Vol. 26, No. 5: 1411-1473, doi:10.1137/S0097539796300921.
Jiangfeng Du, Mingjun Shi, Jihui Wu, Xianyi Zhou, Yangmei Fan, BangJiao Ye, Rongdian Han (2001) "Implementation of a quantum algorithm to solve the Bernstein-Vazirani parity problem without entanglement on an ensemble quantum computer", Phys. Rev. A 64, 042306, 10.1103/PhysRevA.64.042306, arXiv:quant-ph/0012114.