আগের দুটো অংশে জটিলতার তত্ত্ব বা complexity theory নিয়ে আলোচনা হয়েছিল। জানা গেছিলো আজকের দিনে এই বিষয়ে কি ধরণের গবেষণা হয়। স্বাভাবিকভাবেই প্রশ্ন আসে, এই ধরণের গবেষণার জন্য নিজেকে তৈরী করতে গেলে কিভাবে প্রস্তুতি নিতে হয়। সেই আলোচনাই রয়েছে এখানে।
সৌমিকঃ ঠিক কি কারণে কোয়ান্টাম কম্পিউটেশনে কাজ করতে এলেন?
জনঃ ১৯৯২-তে প্রথমে যখন PhD করতে আসি তখন ঠিক কোয়ান্টাম কম্পিউটেশান নয়, শিখতে চেয়েছিলাম কম্পিউটেশনাল নাম্বার থিওরি। তারপর Peter Shor তাঁর quantum factoring algorithm বের করেন – সেটা তখন ১৯৯৪। আমি ভালো কোনও বিষয় খুঁজছিলাম PhD গবেষণার জন্য, আর Shor এর কাজ পড়ে কোয়ান্টাম কম্পিউটেশন-কে একটা ভালো বিষয় মনে হয়েছিল।
Shor প্রমাণ করেন যে কোয়ান্টাম কম্পিউটারের মাধ্যমে একটা যৌগিক সংখ্যাকে খুব তাড়াতাড়ি উৎপাদকে ভেঙ্গে ফেলা যায়। এইটা ক্লাসিক্যাল কম্পিউটারে করতে অনেক বেশি সময় লাগে। খুব খুব গুরুত্বপূর্ণ রিসার্চ ছিল এইটা। তার আগে প্রায় কেউই কোয়ান্টাম কম্পিউটারের ব্যাপারে জানতো না – আমি তো নয়ই। কিন্তু Shor এর এই গবেষণার পরে অনেকেই এই বিষয়ে খুব আগ্রহী হয়ে পড়ে। উৎপাদকে বিশ্লেষণ কম্পিউটেশনাল নাম্বার থিওরিতেও খুবই গুরুত্বপূর্ণ। Shor এর মতন বহু গবেষক বহুদিন ধরেই এটা efficient উপায়ে করার চেষ্টা করছিলেন [১], কিন্তু বিশেষ কিছু ফলাফল পাওয়া যায় নি।
সৌমিকঃ ধরুন, কেউ কোয়ান্টাম কম্পিউটার সায়েন্স পড়তে চায়, কিন্তু এখনো হাই স্কুলে আছে। তাকে আপনি কি উপদেশ দেবেন?
রাজীবুলঃ কীভাবে তারা তাদের পথ খুঁজে পাবে?
জনঃ কলেজে গিয়ে।
(হাসি)
রাজীবুলঃ কী পড়বে? ফিজিক্স, অঙ্ক, না কম্পিউটার সায়েন্স?
জনঃ যা ইচ্ছে। আমি বলব, যা মন চায় তাই পড়ো। ভবিষ্যতে ঠিক কী করতে চাও সেই ভেবে মানসিক চাপ নিয়ো না – যেটা ভালো লাগছে, মজার মনে হচ্ছে, সেইটা পড়ো। কোয়ান্টাম ইনফরমেশন বা কোয়ান্টাম কমপ্লেক্সিটি খুব মজার, কিন্তু মেশিন লার্নিংও খুব মজার, বায়োকেমিস্ট্রিও খুব মজার। ভবিষ্যতে কী হবে অতশত পরে ভেবো, বিষয়টা ভালো লাগাই আসল। বিষয়টাকে খুব ভালবাসতে হবে। যদি সেই বিষয়টা ফিজিক্স হয়, তাহলে ফিজিক্স পড়ো; অঙ্ক হলে অঙ্ক পড়ো। দুটোই ভালো লাগলে দুটোই পড়ো।
সৌমিকঃ অথবা কম্পিউটার সায়েন্স পড়ো।
(হাসি)
জনঃ মোদ্দা কথা, অত নির্দিষ্ট কিছু অত তাড়াতাড়ি না ভাবলেও হবে। যদি কোয়ান্টাম কম্পিউটেশন সত্যি ভালো লাগে, গবেষণায় ঢোকার অনেক উপায় আছে। আমি নিজে কোনোদিন সেইভাবে ফিজিক্স পড়িনি। স্নাতকস্তরে একবারই একটা খুব সহজ ফিজিক্স কোর্স নিয়েছিলাম – ঐ একটাই। কোয়ান্টাম ভালো লাগতে শুরু করে PhD করার সময়; যখন কোয়ান্টাম পড়তাম তখন পুরোটাই অঙ্কের দৃষ্টিভঙ্গি থেকে দেখতাম, পুরোটাই ভেক্টর (vector) আর ম্যাট্রিক্সের (matrix) কারসাজি হিসেবে ভাবতাম। পরে কিছু PhD লেভেলের ফিজিক্স কোর্স নি; সেগুলো নিয়ে খুব একটা লাভ হয়েছিল বলতে পারব না। এক গাদা differential equation সমাধান করতাম শুধু – কোয়ান্টাম কম্পিউটেশন-এ কেন ছাই সেটা লাগবে বুঝিনি। মনে হয় না খুব একটা কোয়ান্টাম মেকানিক্স-ও শিখেছিলাম সেখান থেকে, ওই differential equation সমাধান করতেই যা শিখেছিলাম।
(হাসি)
তবে কোর্সটা সেরম খারাপ ছিল না, ভালোই লেগেছিল নিতে। যাইহোক, ফিজিক্স নিয়ে আর কিছু আমি জানি না। জানার ইচ্ছে আছে, কিন্তু আর সময় পাই না সেরম।
আর কোয়ান্টাম কম্পিউটিং-এ অনেকগুলো বিষয়ের মিলন ঘটে – বিভিন্ন লোকে সায়েন্সের বিভিন্ন দিক থেকে আসে; কেউ ফিজিক্স, কেউ অঙ্ক, কেউ কম্পিউটার সায়েন্স, কেউ ইঙ্গিনিয়ারিং, কেউ কেমিস্ট্রি, ইত্যাদি। অনেক জায়গা থেকে বিষয়টায় ঢোকা যায়। তাই যাই পড়ো – ফিজিক্স হোক বা কেমিস্ট্রি – তোমার কাজ করার অনেক সুযোগ থাকবে। আর যদি পড়তে গিয়ে দেখ অন্যকিছু তোমার বেশি ভালো লাগছে – যেমন operating systems – তাহলে সেটাই পড়ো, কোনও ক্ষতি নেই তাতে। তোমার যে কিছু একটা ভালো লাগছে এটাই বড় কথা! আর ধরো তুমি পড়তে শুরু করলে কোয়ান্টাম কম্পিউটিং – কিন্তু মাঝপথে ভালো লাগল না; তাতেও কোনও ক্ষতি নেই! কেউ মাথার দিব্বি দেয়নি যে ওটাই সারাজীবন পড়তে হবে। অনেকে বিষয় পরিবর্তন করে পরে – তুমিও করতে পারো সেটা!
আমার এটা খুব ভালো লাগে যে বিভিন্ন বিষয়ের লোকে একই জিনিসকে বিভিন্ন চোখে দেখে। যেমন কোয়ান্টামের কোনও সমস্যা। একজন ফিজিক্সের ছাত্রের কাছে তার মানে একরকম, একজন কম্পিউটার সায়েন্সের ছাত্রের কাছে তার মানে অন্যরকম। কোয়ান্টাম কম্পিউটিং-এর পরবর্তীকালের বিকাশের জন্য ব্যাপারটা খুবই স্বাস্থ্যকর। এ এক এমন বিষয় যেখানে কম্পিউটার সায়েন্সের লোকে ফিজিক্সের প্রশ্নের সমাধান করে, আবার ফিজিক্সের লোকে algorithms নিয়ে রিসার্চ করে। খুবই ভালো ব্যবস্থা সেটা।
রাজীবুলঃ আচ্ছা, আপনার রিসার্চের কাজে ঠিক কী কী জিনিসপত্র ব্যবহার করেন? আপনি কি code লেখেন বা algorithms তৈরি করেন? নাকি অঙ্কের বই ঘাঁটতে হয়? Mathematica ব্যবহার করতে হয় কি?
জনঃ বিভিন্ন লোকে বিভিন্নকিছু ব্যবহার করেন; কিন্তু সবচেয়ে গুরুত্বপূর্ণ “যন্ত্র” অঙ্কের দুই মানিকজোড় – linear algebra আর matrix theory।
রাজীবুলঃ এটা কি কোয়ান্টাম মেকানিক্স linear বলে [২]?
জনঃ ঠিক তাই। আমরা ভেক্টর আর ম্যাট্রিক্স-এর ভেতর দিয়ে কোয়ান্টাম ইনফরমেশন-কে দেখি; তাই ভেক্টর আর ম্যাট্রিক্স নিয়ে বিশদে জানাটা খুব জরুরি। অঙ্কের analysis এর একটা ধারণাও গুরুত্বপূর্ণ, probability theory এবং ক্লাসিক্যাল information theory ও। আর কোয়ান্টাম algorithms নিয়ে জানতে গেলে ক্লাসিক্যাল algorithms তো জানতেই হবে, কোয়ান্টাম complexity theory তেও একই ব্যাপার।
আমি code খুব একটা লিখি না, অনেকদিন হলো লিখতে হয়নি। সফটওয়্যার ব্যবহার করি যদিও; গবেষণায় আন্দাজে ঢিল ছুঁড়তে পারা খুব জরুরি – সেটা করতে সফটওয়্যার খুব সাহায্য করে। যেমন ধরুন, আমার মনে হলো একটা নির্দিষ্ট বৈশিষ্ট্য আমার কোয়ান্টাম সিস্টেমে আছে, কিন্তু এটার কোনও প্রমাণ নেই আমার কাছে। আমি প্রথমেই MATLAB-এ কোড লিখব – সিস্টেমটার ১০ লক্ষ সম্ভবপর স্টেট (state) নিয়ে যেটা দেখবে আদৌ সেইসব স্টেটগুলোয় বৈশিষ্ট্যটা আছে কিনা। কোনও একটায় না থাকলেই সেটা আর মৌলিক কোনও বৈশিষ্ট্য রইলো না। কিন্তু যদি সবকটা স্টেট-এই থাকে, আমি আরেকটু বেশি আশা পাবো যে ঠিক দিকেই যাচ্ছি। তখন আমার কাজ বৈশিষ্ট্যটা সিস্টেমের যেকোনো স্টেট-এই আছে, এটা অঙ্ক কষে প্রমাণ করা।
মাঝে মাঝে MATLAB-এর জায়গায় Maple-ও ব্যাবহার করা হয়। Maple-এর Inverse Symbolic Calculator-টা খুব কাজের [৩]। খুব নিখুঁত জিনিসপত্র আউটপুট দিতে পারে, যেমন । অনেক অঙ্কের ক্ষেত্রেই এটা খুব কাজে লাগে।
রাজীবুলঃ এত নিখুঁত ব্যাপারস্যাপার করা যায় জানতামই না!
জনঃ তাহলেই আর বলছি কী। Wolfram Alpha একই জিনিস করে, কিন্তু আমার Inverse Symbolic Calculator কে বেশি ভালো লাগে। যাই ব্যবহার করা হোক, খাতায় লেখার সময় আমরা শুধু ওই symbolic expression টাই লিখে দি। অনেকেই ভেবে মরে কী করে এত জটিল জিনিসপত্তর কেউ পেতে পারে! এইসব সফটওয়্যারের কথা সচরাচর ফাঁস করি না।
(হাসি)
বেশ মজার ব্যাপার সেটা। এটাকে অনেকটা পরীক্ষামূলক অঙ্ক বলতে পারেন। কম্পিউটারের সাহায্য নিয়ে গভীরে কী রয়েছে, তার একটা আঁচ পাওয়া। কম্পিউটার ব্যবহারের অনেকরকম নমুনার এটা একটা।
আসলে দিনের শেষে আমার কাজ অঙ্ক কষে উপপাদ্য (theorem) প্রমাণ করা। একটা জম্পেশ প্রমাণ। শুধু symbolic expression কিংবা কিছু data নয় [৪]।
(আলোচনা চললো আরো কিছুক্ষণ। তবে তোমরা, পাঠকবন্ধুদের মধ্যে যারা এখনো স্কুলে আছো, তারা যাতে শিগগিরই প্রস্তুতি নিতে পারো এই গবেষণায় নামতে, তোমাদের কথা ভেবে আমরা এই লেখায় আপাতত ইতি টানছি। যে বিষয়ে পড়তে ভালো লাগে, চটপট বই খুলে বসে পড়ো! তবে যে পাঠকবন্ধুরা কোয়ান্টাম ইনফরমেশন তত্ত্ব আর জটিলতার তত্ত্ব নিয়ে জানতে খুব উৎসাহী, তাদের জন্য আমাদের একটা সারপ্রাইস আছে। খুব শিগগিরি জানতে পারবে সেটা কী … )
প্রচ্ছদের ছবি: বনানী মণ্ডল
কৃতজ্ঞতা স্বীকার: ইন্টারভিউটা ট্রান্সক্রাইব করেছে “বিজ্ঞান” টিমের সৌমিক ঘোষ। ইংরেজি থেকে বাংলায় অনুবাদ করেছে সৌমিক। অনুবাদে সাহায্য করেছে “বিজ্ঞান” টিমের অনির্বাণ গঙ্গোপাধ্যায়।
উৎসাহী পাঠকদের জন্য:
[১] ‘Efficient’ মানে জন বলতে চেয়েছেন সংখ্যাটা একটু বেড়ে গেলেও উৎপাদকে বিশ্লেষণ করার সময়টা যেন খুব বেড়ে না যায়। তাহলে সময়টা কতটা অবধি বাড়া চলবে? যতক্ষণ অবধি সংখ্যা ও সময়ের সম্পর্কটা একটা ‘polynomial’ বা বহুপদ দিয়ে লেখা যাচ্ছে। কী ধরণের কম্পিউটার ব্যবহার করছি, ক্লাসিক্যাল না কোয়ান্টাম, সেই অনুযায়ী দুধরণের “efficient” কমপ্লেক্সিটি ক্লাসের বর্ণনা দেওয়া যায় – P এবং BQP। লিঙ্ক দুটো পড়ে দেখতে পারো।
[২] Linearity অঙ্কের খুব গুরুত্বপূর্ণ একটা ধারণা। এই লিঙ্কটার “In Mathematics” সেকশনটা দেখতে পারো – একটা সিস্টেম ‘linear’ হতে গেলে তাকে কী কী সমীকরণ মেনে চলতে হবে তা নিয়ে বিশদে বলা আছে। আমরা ধরে নি কোয়ান্টাম মেকানিক্স ‘linear’ – এক্সপেরিমেন্টও সেই কথাই বলে। তবে যেহেতু এটা একটা ‘assumption’, অঙ্ক দিয়ে এর কোনও প্রমাণ হয় না।
[৩] এই ক্যালকুলেটরে কোনও সংখ্যা ইনপুটে দিলে এমন একটা symbolic mathematical expression পাওয়া যাবে যা ওই সংখ্যাটার কাছাকাছি। মানে, 3.1415 দিলে উত্তর আসবে π। [৪] প্রমাণ মানে রীতিমতো অঙ্ক কষে দেখাচ্ছ কোনও hypothesis সত্যি না মিথ্যে। ধরো আন্দাজে ঢিল ছুঁড়ে কয়েকটা symbolic expression পাওয়া গেছে, সেগুলো থেকে একটা hypothesis তৈরী করা যাচ্ছে। কিন্তু আদৌ hypothesis-টা সত্যি কিনা সেটা প্রমাণ ছাড়া বোঝা যাবে না। প্রমাণ করা গেলে তবেই সেটা উপপাদ্য বা theorem, যেটা পরে অন্য কোনো hypothesis-এর প্রমাণে কাজে লাগতে পারে। এভাবেই ছোটো ছোটো পা ফেলে বিজ্ঞান একটা বড় মৌলিক সত্যের দিকে এগোয়।