21/12/2021
#মডার্ন_টেকনোলজি
নব্বই এর দশকে যাদের জন্ম বা বেড়ে উঠা তারা এই দশকটা নিয়ে হাল্কার উপর ঝাপসা অবসেশনে ভোগেন, এবং আমি নিজেও যেহেতু একই কাজ করি সেহেতু ইহা বিশেষ দোষের কিছু নয় ! তাই বছর দুয়েক আগে ন্যাশনাল জিওগ্রাফি চ্যানেল যখন The 90s নামক একটা ডকুমেন্টারি প্রচার করা শুরু করে তখন সেটা বেশ আগ্রহ নিয়ে দেখতে বসে যাই । তিন পর্বের এই সিরিজের প্রথম পর্বের একটা অংশে দেখায় উইন্ডোজ ৯৫ রিলিজের পর একজন টিভি উপস্থাপক সেটা চালায় এবং বিল গেটস পাশে দাঁড়িয়ে বলেন - দেখুন উইন্ডোজ ৯৫ এতোটাই সহজ যে সেটা একজন টিভি উপস্থাপকও ব্যবহার করতে পারেন ! এখনকার দিনে প্রচারণাটা অত্যন্ত হাস্যকর দেখালেও তখনকার দিনে এটাই ছিল বাস্তবতা । এখনকার ক্লাস টু এর বাচ্চারাও তখনকার একজন বিশ্ববিদ্যালয়ের শিক্ষকের চেয়ে কম্পিউটারে দক্ষ ! বিল গেটস নামক এক জাদুকর আসার আগ পর্যন্ত প্রকৃতপক্ষে কম্পিউটার নামক যন্ত্রটা ইন্ডাস্ট্রিয়াল লেভেলে বা গবেষণা খাতে শুধু ভূমিকা রাখত । তবে সাধারণ মানুষের সাথে বিশেষ লেনাদেনা না থাকলেও কম্পিউটার কিন্তু তার নিজের গতিতে উন্নতি করে চলেছিল । ইন্টেলের সহপ্রতিষ্ঠাতা গর্ডন মুর ১৯৬৫ সালে একটা ভবিষ্যতবাণী করেছিলেন যে প্রতি দুই বছরে কম্পিউটার সার্কিটে ট্রানজিস্টরের সংখ্যা দ্বিগুণ হতে থাকবে। অর্থাৎ প্রতি দুই বছরে কম্পিউটারের ক্ষমতা দ্বিগুণ হারে বাড়তে থাকবে । গত দশক পর্যন্ত এই নিয়মের কোন ব্যত্যয় হয়নি । কিন্তু ২০১৩ সাল নাগাদ এই হার কমতে শুরু করে। ২০১২ সালে ট্রানজিস্টরের সাইজ ছিল ২২ ন্যানোমিটার আর ২০১৫ সালে তা ১৪ ন্যানোমিটারে এসে ঠেকেছে । ইন্টেলের সিইও ব্রায়ান কানিচ ঘোষণা দেন টাইমস্কেল এখন দুই বছরের জায়গায় আড়াই বছর হয়ে গেছে। ২০১৭ সাল নাগাদ ট্রানজিস্টরের সাইজ ১০ ন্যানোমিটারে নামিয়ে আনা যাবে এবং মোটামুটি এটাই স্থিতিশীল হয়ে যাবে । অর্থাৎ আরএফএল টিউবওয়েলের বিজ্ঞাপনের মতো অবস্থা - যতই চাপাচাপি কর, কুন লাভ নাই ! তবে কি কম্পিউটারের উন্নতির অগ্রযাত্রা থেমে যাবে?
এই সমস্যা মোকাবেলা করার জন্য বড় বড় প্রতিষ্ঠানগুলো এরই মধ্যে মাল্টিকোর ম্যানারের হার্ডওয়ার বানানো শুরু করেছে । তবে এই ধরনের হার্ডওয়ারের সুবিধা নেবার জন্য প্রোগ্রামগুলোও মাল্টিথ্রেডের উপযুক্ত করে লিখতে হবে । এছাড়া বিজ্ঞানীরা সিলিকন নির্ভর ট্রানজিস্টর না বানিয়ে বিকল্প উপাদান খোঁজার চেষ্টা করছেন । বিকল্প হিসাবে ইতোমধ্যে কার্বনের একটি রূপ গ্রাফিনকে ব্যবহার করা শুরু হয়েছে । কিন্তু কিছু কিছু ক্ষেত্রে এগুলো চূড়ান্ত সমাধান নয়, তাই কার্যকরী সমাধানের জন্য আমাদের চাই বৈপ্লবিক কোন আইডিয়া । সেই আইডিয়ার নাম কোয়ান্টাম কম্পিউটার ।
আধুনিক একটা কম্পিউটারকে আমরা যতই শক্তিশালী করে বানাই না কেন সেটা দিয়ে পৃথিবীতে এমন কিছু অত্যন্ত গুরুত্বপূর্ণ সমস্যা আছে যেগুলোর সমাধান করা খুব কঠিন । তেমনি একটা সমস্যা হল প্রাইম ফ্যাক্টরাইজেশন । সরল বাংলায় যাকে বলে মৌলিক উৎপাদকে বিশ্লেষণ । এই সমস্যার সমাধান করতে হলে সাধারণ কোন কম্পিউটারকে অনেকগুলো ধাপ সম্পন্ন করে করতে হয় । এক্ষেত্রে অ্যালগরিদমের ধাপসংখ্যা ইনপুটের আকারের উপর নির্ভরশীল । ফলে অনেক বড় কোন সংখ্যাকে যদি আমরা প্রাইম ফ্যাক্টরাইজেশন করতে দেই তাহলে পৃথিবীর সবচেয়ে শক্তিশালী সুপার কম্পিউটারেরও কয়েক লক্ষ বছর লেগে যাবার সম্ভাবনা উড়িয়ে দেওয়া যায়না ! একারণেই আমাদের দরকার একটা কোয়ান্টাম কম্পিউটার । কারণ কম্পিউটার বিজ্ঞানীরা কোয়ান্টাম তথ্যকে ব্যাবহার করে এমন কিছু এ্যালগারিদম তৈরি করেছেন যেগুলো দিয়ে খুব দ্রুত এই কাজটি করে ফেলা যায় ।
সাধারণভাবে মনে হতে পারে এই “প্রাইম ফ্যাক্টরাইজেশন” করে আমাদের কি এমন দরকার আছে? ছোট বেলায় তো হাতে গননা করেই কত মৌলিক উৎপাদকে বিশ্লেষণের কাজ করেছি !! শুনলে অবাক হতে হবে- এই মৌলিক উৎপাদকে বিশ্লেষণের উপর ভিত্তি করেই পৃথিবীর যাবতীয় সিকিউরিটি সিস্টেম তৈরি করা হয়। কাজটি সাধারণ কম্পিউটার দ্রুত করতে পারবে না ধরে নিয়েই এই সিকিউরিটি সিস্টেম তৈরি । অর্থাৎ কোয়ান্টাম কম্পিউটার তৈরি করে আমরা যদি দ্রুত প্রাইম ফ্যাক্টরাইজেশন করতে পারি, তবে মুহূর্তেই যেকোনো সিস্টেমে ঢুকে যাওয়া যাবে । আর তাই বিপরীতভাবে, কোয়ান্টাম কম্পিউটার ব্যাবহার করে কোন সিকিউরিটি ব্যাবস্থা তৈরি করলে তা এতটাই শক্তিশালি হবে যে তা ভাঙ্গা হবে একদম অসম্ভব । এটি তো গেল একটি সমস্যা, এমন আর অনেক সমস্যা আছে যেগুলো করতে কোয়ান্টাম কম্পিউটারের খুব কম সময় লাগে । যদি কোয়ান্টাম কম্পিউটার তৈরি করা সম্ভব হয় তবে- রাসায়নিক বিক্রিয়াগুলোকে দ্রুত সিমুলেট করতে পারব । কোনো পরমাণু কার সাথে কিভাবে বিক্রিয়া করে সেগুলো কম্পিউটার দিয়েই গননা করা যাবে । আবার ন্যানোটেকনোলজি যেহেতু কোয়ান্টাম মেকানিক্সের উপর নির্ভরশীল, সেখানেও কোয়ান্টাম সিমুলেশন খুবই গুরুত্বপূর্ণ ভূমিকা রাখবে । তখন হয়তো নতুন ঔষধের কার্যকারিতা প্রাণীর উপর পরীক্ষা না করে আমরা কম্পিউটারে সিমুলেট করে ফেলতে পারব ।
সবই তো বুঝা গেল, এখন আসা যাক গুরুত্বপূর্ণ প্রশ্নে - এই কোয়ান্টাম কম্পিউটার আসলে জিনিসটা কি ? এটা বুঝার জন্য ফিজিক্সের কিছু 'কচকচানি' সহ্য করতে হবে আপনাদের । কোয়ান্টাম মেকানিক্স ফিজিক্সের সবচেয়ে জটিল আর গুরুত্বপূর্ণ শাখা, আর এর উপর ভিত্তি করেই কোয়ান্টাম কম্পিউটার তৈরি । তবে ভয় নেই আমি যথাসম্ভব কম গভীরতায় গিয়ে বুঝানোর চেষ্টা করব ।
প্রথমে আসা যাক কিউবিট প্রসঙ্গে । আমরা যেসব কম্পিউটার ব্যবহার করি সেগুলো হলো ক্লাসিকাল কম্পিউটার । এখানে ০,১ দিয়ে সবকিছু হিসাব করা হয়, সার্কিটে নির্দিষ্ট মাত্রার ভোল্টেজের উপস্থিতি হলো ১, অনুপস্থিতি হলো ০ । তাহলে ০,১ হলো ক্লাসিকাল কম্পিউটারে তথ্যের একক যাকে বলা হয় ‘বিট’ । কোয়ান্টাম কম্পিউটারে তথ্যের একক হলো ‘কিউবিট’ । সেই কিউবিট একটা ইলেকট্রণ হতে পারে, একটা আলোর কণিকা বা ফোটন হতে পারে, ডায়মন্ড বা অন্য কিছুর অণু হতে পারে । কোয়ান্টাম মানেই হলো কোন কিছু ক্ষুদ্রতম অংশ।
এরপর জেনে নিই সুপারপজিশন কি ? সুপারপজিশন হল কোয়ান্টাম মেকানিক্সের ভূতুরে কিছু ব্যাপার স্যাপারের একটা । কোয়ান্টাম জগতের কণাগুলো, যাদের আমরা কিউবিট হিসাবে সংজ্ঞায়িত করেছি, ক্রমাগত ঘুরছে । এই ঘূর্ণন যে সবসময়ই আমাদের চেনাজানা জগতের ঘূর্ণনের মতো তা কিন্তু নয় । নরম্যাল বা পূর্ণ ঘূর্ণনে ধরা যাক কোন কণা ডানে ঘুরলে সেটাকে আমরা ১ দ্বারা আর বামে ঘুরলে সেটাকে ০ দ্বারা সংজ্ঞায়িত করলাম । অর্থাৎ এক্ষেত্রে একটাই স্টেট গ্রহণ করছে কণাগুলো । কিন্তু কিছু কিছু ক্ষেত্রে ঘূর্ণনের মান ১/২ ও হতে পারে । আর এই ধরনের ঘূর্ণনে কোন কিউবিট একই সাথে ডানে এবং বামে অর্থাৎ দুইদিকেই ঘুরছে ! অর্থাৎ এই ধরনের কিউবিট একই সাথে দুইটা স্টেট (০ আর ১) ইনপুট হিসাবে নিতে পারে । এই ব্যাপারটাকেই বলা হয় সুপারপজিশন । ব্যাপারটা খুব অদ্ভুত ঠেকলেও কোয়ান্টাম জগতের জন্য এটা শতভাগ স্বাভাবিক ঘটনা । আমাদের চেনাজানা জগতে এরকম ঘটনা অকল্পনীয় বলেই বিশ্বাস করা কঠিন । তবে মজার ব্যাপার হল কোয়ান্টাম জগত অবজার্ভারের উপর নির্ভরশিল, আমরা যখনই এরকম কণা পর্যবেক্ষণ করতে যাব তখনই সে দুইদিক বাদ দিয়ে যেকোনো একটা নির্দিষ্ট দিকে ঘুরা শুরু করবে । অর্থাৎ দুইদিকেই ঘুরছে এরকম কণা দেখা আমাদের কপালে নাই ! আর পর্যবেক্ষণের পর কণাটা কোনদিকে ঘোরা শুরু করবে সেটা আগেভাগে বলা কখনই সম্ভব না । এমন না আমাদের জ্ঞানের স্বল্পতা এটা , এটা প্রকৃতির নিয়ম ।
যা হোক, এবার মূল প্রসঙ্গে ফিরে যাওয়া যাক, এসব ব্যাবহার করে কিভাবে কোয়ান্টাম কম্পিউটার কাজ করে । আগেই বলছি একটা কিউবিট একই সাথে দুইটা ইনপুট (০ আর ১) নিতে পারে । তাহলে দুইটা কিউবিট ইনপুট হিসাবে নিতে পারবে নিতে পারবে ৪ টা স্টেট (০০ বা ০১ বা ১০ বা ১১) তেমনি ৩ টা কিউবিট নিতে পারবে ৮ টা ইনপুট এবং এভাবে এক্সপোনেনশিয়াল হারে বাড়তে থাকবে । অর্থাৎ কিউবিটের সংখ্যা যথেষ্ট পরিমাণ বৃদ্ধি করানো গেলে তা ক্ল্যাসিকাল কম্পিউটারের চেয়ে লক্ষগুণ বেশি স্টেট একসাথে ইনপুট হিসাবে নিয়ে একসাথে প্রসেস করে ফেলতে পারবে ! আর যেহেতু আগেই বললাম কোয়ান্টাম জগত অবজার্ভার নির্ভর সেহেতু যখনই আমরা রেজাল্ট পর্যবেক্ষণ করতে যাব তখনই লক্ষ লক্ষ রেজাল্টের মধ্যে থেকে মাত্র একটা নির্দিষ্ট রেজাল্ট আউটপুট হিসাবে বেরিয়ে আসবে ! এভাবেই অনেক ক্ষেত্রে কোয়ান্টাম কম্পিউটার ক্ল্যাসিকাল কম্পিউটারের চেয়ে বহুগুণ দ্রুত কাজ করতে পারবে । একটা উদাহরণ দিয়ে ব্যাপারটা পরিষ্কার করা যাক ।
কোয়ান্টাম কম্পিউটিং এর দুই পাইওনিয়ার David Deutsch আর Richard Jozsa এই প্রবলেমের জনক । ধরা যাক কোন এক সেমিনার হলের গেটের সামনে একজন গার্ড দাঁড়িয়ে আছে, আর ৮ জন মানুষ প্রবেশের জন্য অপেক্ষা করছে । এখন হলে প্রবেশের সুযোগ সম্পূর্ণ গার্ডের ইচ্ছা অনিচ্ছার উপর নির্ভর করছে । সে যদি কারও জন্য ০ বরাদ্দ করে তাহলে সে ঢুকতে পারবেনা, আর ১ বরাদ্দ করলে ঢুকতে পারবে । যেদিন তার মন মেজাজ ভালো থাকে সেদিন সে সবার জন্য ১ বরাদ্দ করে এবং ঢুকতে দেয় । আর যেদিন মেজাজ খারাপ থাকে সেদিন অর্ধেকের জন্য ০ বরাদ্দ করে আর অর্ধেককে ঢুকতে দেয় । আমরা জানতে চাচ্ছি আজকে গার্ডের মন মেজাজ কেমন আছে । এই এলগরিদমের Worst case scenario চিন্তা করলে দেখা যাবে ক্ল্যাসিকাল কম্পিউটার দিয়ে এই সমস্যা সমাধানের জন্য অন্তত ৫ ধাপ হিসাব করতে হবে । কারণ প্রথম ৪ জনকে সে ১ বরাদ্দ করলেও সম্ভাবনা আছে সে ৫ নাম্বার ব্যক্তিকে ০ বরাদ্দ দিয়েছে । কিন্তু এখানে আমরা যদি একটা ৩ কিউবিটের কোয়ান্টাম কম্পিউটার ব্যাবহার করি তাহলে সে একই সাথে ৮ টা স্টেটকেই ইনপুট হিসাবে নিয়ে নিবে এবং মাত্র ১ ধাপ হিসাব করেই কাজটা করে দিতে পারবে । ৫ এর তুলনায় ১ চোখে লাগার মতো না হলেও ইনপুট যখন অনেক বড় হয় তখন পার্থক্যটা সহজেই চোখে পড়ে ।
তবে যতই কার্যকরী হোক না কেন, কোয়ান্টাম কম্পিউটার কখনোই ক্ল্যাসিকাল কম্পিউটারকে রিপ্লেস করতে পারবেনা । তার প্রধান কারণ কিউবিটগুলো পরিবেশের সাথে ইন্টার্যাকশনের কারণে সে যে স্টেট এ ছিল সেটা নষ্ট হয়ে যায়, পদার্থবিজ্ঞানীরা যাকে বলেন “ওয়েভ ফাংশন কলাপস” করে। আমরা দেখেছি কিউবিট একই সাথে একাধিক স্টেট এ সুপারপজিশন অবস্থায় থাকতে পারে, ডিকোহেরেন্স এর ফলে একটা মাত্র স্টেট এ “কলাপস” করে। এবং একবার “কলাপস” করলে সেটাকে আর আগের অবস্থায় ফেরত নেয়া যায় না । অর্থাৎ এমনও হতে পারে আমরা একাধিক ইনপুটের জন্য রেজাল্ট সেভ করতে চাচ্ছি, কিন্তু কোয়ান্টাম কম্পিউটারে তা সম্ভব নয় , যখনই কোন অবজার্ভার রেজাল্ট অবজার্ভ করতে যাবে , সে মাত্র একটা রেজাল্টই দিবে ! উপরের Deutsch-Jozsa এলগরিদমের মতো ডিসিশন মেকিং এর জন্য আমরা কোয়ান্টাম কম্পিউটার ব্যবহার করতে পারলেও অনেক ক্ষেত্রেই পারবনা । তারপরও কোয়ান্টাম কম্পিউটার যে কম্পিউটিং জগত সামনে সম্পূর্ণ বদলে দিতে চলেছে কোন সন্দেহ নেই ।