পরিগণনা

পরিগণনা বলতে এমন একটি প্রক্রিয়াকে বোঝায় যেখানে বিশেষ এক ধরনের ভৌত যন্ত্রের একদিক দিয়ে প্রবিষ্ট কিছু প্রতীকের ধারার (যেগুলিকে আগম বা ইনপুট বলে) উপরে যন্ত্রটির ভেতরে পূর্বস্থাপিত একটি সুস্পষ্ট পদ্ধতি (অর্থাৎ কতগুলি সসীমসংখ্যক ও সুস্পষ্টভাবে সংজ্ঞায়িত নিয়মের অনুক্রম) ধাপে ধাপে বাস্তবায়ন বা নির্বাহ করে প্রবিষ্ট প্রতীকগুলির রূপগুলিতে (অর্থাৎ প্রতীকগুলিতে নিহিত অর্থ না বুঝেই) উদ্দীষ্ট রূপান্তর সাধন করে যন্ত্রের অন্য দিক দিয়ে বহির্গত (যেগুলিকে নির্গম বা আউটপুট বলে) করা হয়, যেখানে প্রতীকগুলি বাস্তব বা বিমূর্ত বোধগম্য ও অর্থবহ কোনও কিছুর (যেমন সংখ্যা, পাঠ্যবস্তু, শ্রাব্য, চিত্র, চলমান চিত্র, এমনকি অন্য আরেকটি পদ্ধতি) প্রতিনিধিত্ব করে। একে ইংরেজি পরিভাষায় "কম্পিউটেশন" (Computation) বলে। পরিগণনা প্রক্রিয়াটিতে আগম থেকে নির্গম পাওয়ার জন্য যে সসীমসংখ্যক সুস্পষ্ট নিয়মের অনুক্রম ভৌত যন্ত্রে বাস্তবায়ন করা হয়, তাকে কলনবিধি বা ইংরেজি পরিভাষায় "অ্যালগোরিদম" (Algorithm) বলে। যে ভৌত যন্ত্রটি এই পরিগণনা কার্যটি নির্বাহ করে, তাকে পরিগণক বা ইংরেজি পরিভাষায় "কম্পিউটার" (Computer) বলে। পরিগণনার উপরোক্ত সংজ্ঞাটি মূলত বর্তমান বিশ্বে সর্বত্র ব্যবহৃত আধুনিক ইলেকট্রনীয় দ্বি-আংকিক পরিগণক যন্ত্রের (ইলেকট্রনিক ডিজিটাল কম্পিউটার) জন্য প্রযোজ্য। এই যন্ত্রটি তথ্য-উপাত্ত প্রক্রিয়াজাতকরণের বিভিন্ন সমস্যার সমাধানে ব্যবহৃত হয়। এই পরিগণক যন্ত্রে বাস্তব বিশ্বের সব ধরনের তথ্য-উপাত্তকে শেষ বিচারে দুইটি মাত্র প্রতীকের ধারায় (০ ও ১ এই দুইটি মাত্র অংক) রূপান্তরিত করা হয়। এভাবে বাস্তব বিশ্বের তথ্য-উপাত্ত প্রক্রিয়াজাতকরণের সমস্যাটিকে পরিগণক যন্ত্রের ভেতরে কলনবিধির মাধ্যমে ০ ও ১-এর প্রতীকের ধারার আগম-নির্গম সম্পর্ক বাস্তবায়নকারী একটি সমস্যা হিসেবে সমাধা করা হয়, যে সমস্যাটিকে পরিগণনামূলক সমস্যা (Computational problem) বলে। তথ্য ও পরিগণনার তাত্ত্বিক ভিত্তি, কলনবিধিসমূহ ও এগুলির পরিগণক যন্ত্রে বাস্তবায়ন যে উচ্চশিক্ষায়তনিক শাস্ত্রে অধ্যয়ন করা হয়, তাকে পরিগণক বিজ্ঞান বা কম্পিউটার বিজ্ঞান (Computer science) বলে। ২১শ শতকে এসে প্রাকৃতিক ও সামাজিক বিজ্ঞান এবং প্রকৌশলের বিভিন্ন শাখায় উদ্ভূত বিপুল পরিমাণ তথ্য-উপাত্তবিশিষ্ট জটিল কোনও সমস্যার প্রথমে একটি গাণিতিক প্রতিমান নির্মাণ করা হয় এবং অতঃপর এই গাণিতিক প্রতিমানটিকে একটি পরিগণনামূলক প্রতিমানে রূপান্তরিত করা হয়, যাতে এটিকে কোনও পরিগণক যন্ত্রে পরিগণনামূলক সমস্যা হিসেবে সমাধান করা যায় (যাকে পরিগণক ছদ্মায়ন বা ইংরেজিতে "কম্পিউটার সিমুলেশন" বলে)। এভাবে যান্ত্রিক স্বয়ংক্রিয় পরিগণনার সাহায্যে বিভিন্ন দুরূহ ও সময়সাপেক্ষ বৈজ্ঞানিক ও প্রকৌশলগত সমস্যার অপেক্ষাকৃত দ্রুত সমাধান বের করা যায়। এই বিষয়টির বিভিন্ন দিক বর্তমানে পরিগণনামূলক বিজ্ঞান নামক উদীয়মান আন্তঃশাস্ত্রীয় ক্ষেত্রটিতে অধ্যয়ন করা হয়। পরিগণনার সাথে গণিতের অপেক্ষক (Function) ধারণাটির সম্পর্ক আছে। গণিতে অপেক্ষক ধারণাটি দিয়ে প্রদত্ত কোনও প্রবিষ্ট সংখ্যার সাপেক্ষে কোনও বহির্গত সংখ্যার সম্পর্ক সংজ্ঞায়িত করা হয়। পরিগণনাতে অপেক্ষকের মতো প্রদত্ত কোনও প্রবিষ্ট প্রতীকের রূপান্তর সাধন করে বহির্গত প্রতীক উৎপন্ন করা হয়, কিন্তু এই রূপান্তরের কাজটি যান্ত্রিকভাবে ধাপে ধাপে যে নির্দিষ্ট পদ্ধতি অনুসরণ করে সম্পাদন করতে হবে, সেই পদ্ধতিটিই পরিগণনার মূল বিবেচ্য বিষয়, যা অপেক্ষকে বলা থাকে না। অর্থাৎ একই অপেক্ষক বিভিন্ন পদ্ধতিতে পরিগণনা করা সম্ভব, যে পদ্ধতিগুলি আচরণগতভাবে সমতুল্য (behaviorally equivalent)। যেমন f(x) = 2x একটি গাণিতিক অপেক্ষক, যেটিতে প্রবিষ্ট একটি পূর্ণ সংখ্যাকে দুই দিয়ে গুণ করলে বহির্গত পূর্ণ সংখ্যাটি পাওয়া যাবে, এই আপেক্ষিক সম্পর্কটিকে বিমূর্তভাবে সংজ্ঞায়িত করা হয়েছে। এর বিপরীতে পরিগণনায় নির্দিষ্ট একটি প্রতীক-ব্যবস্থা থাকে (যেমন দ্বি-আঙ্কিক বা বাইনারি ব্যবস্থা), যার সাহায্যে প্রবিষ্ট সংখ্যা ও বহির্গত সংখ্যাগুলিকে প্রতীক দ্বারা নির্দেশ করা হয়, এবং প্রবিষ্ট সংখ্যার প্রতীকগুলির উপরে নির্দিষ্ট ও সুস্পষ্ট কিছু নিয়ম সংবলিত পদ্ধতি বা অ্যালগোরিদম ব্যবহার করে "দুই দিয়ে গুণ" করার ব্যাপারটিকে ভৌত যন্ত্রে ধাপে ধাপে বাস্তবায়ন করে প্রবিষ্ট সংখ্যা থেকে উদ্দীষ্ট বহির্গত সংখ্যাগুলিকে প্রতীকের আকারে উৎপাদন করা হয়। যেমন যদি প্রবিষ্ট সংখ্যাটি "১" হয়, তাহলে দশমিক পদ্ধতিতে উদ্দিষ্ট বহির্গত সংখ্যাটি হবে "২x১=২"। এখন দ্বি-আঙ্কিক (বাইনারি) প্রতীক পদ্ধতি অনুসারে প্রবিষ্ট সংখ্যাটি হল "১" এবং বহির্গত সংখ্যাটি হল "১০" (বাইনারি "দুই")। সুতরাং ১ থেকে ১০-এ আসার পদ্ধতিটি নিম্নের দুই ধাপে সম্পন্ন হতে পারে -- ১) প্রবিষ্ট সমস্ত অঙ্ককে বাম পাশে এক ঘর করে সরানো এবং ২) সবচেয়ে ডান পাশের ঘরটিতে ০ (শূন্য) বসানো। যেমন, যদি প্রবিষ্ট সংখ্যাটি দশমিক পদ্ধতিতে "২" হয়, তাহলে দ্বি-আঙ্কিক পদ্ধতিতে এর প্রতীক হবে "১০"। এখন উপরের পদ্ধতি বা অ্যালগোরিদমটি প্রয়োগ করে প্রতিটি অঙ্ককে বাম পাশে এক ঘর করে সরালে এবং সবচেয়ে ডান পাশের ঘরটিতে ০ বসালে যে বহির্গত দ্বি-আঙ্কিক বা বাইনারি প্রতীকটি পাওয়া যায়, তা হল "১০০", যেটিকে দশমিক পদ্ধতিতে রূপান্তর করলে মান হয় "৪" (চার), অর্থাৎ উপরের পদ্ধতি বা অ্যালগোরিদমটি সঠিকভাবে একটি পূর্ণ সংখ্যার "দুই দিয়ে গুণ করা"-র পরিগণনা প্রক্রিয়াটি সম্পন্ন করে। অন্য ভাষায় গাণিতিক অপেক্ষক প্রবিষ্ট ও বহির্গতের মধ্যে সম্পর্কটি "কী", তা সংজ্ঞায়িত করে। অন্যদিকে পরিগণনা হল প্রতীক ব্যবহার করে "কীভাবে" বা কোন্‌ সুনির্দিষ্ট পদ্ধতি ব্যবহার করে যন্ত্রের মতো ধাপে ধাপে প্রবিষ্ট থেকে বহির্গতে পৌঁছানো যাবে, সেই প্রক্রিয়া। পরিগণনার প্রক্রিয়াটি যে কোনও ব্যক্তি প্রতীকগুলির অর্থ না বুঝেই যন্ত্রের মতো করে সম্পাদনা করতে পারেন। এক্ষেত্রে আলোচ্য ব্যক্তিটিকে মানব পরিগণক (Human computer) বলা হয়। পাশ্চাত্যে ১৭শ ও ১৮শ শতকে মানব পরিগণকের দলের মাধ্যমে বিজ্ঞান, ব্যবসা, নৌচালনা ও যুদ্ধের জন্য প্রয়োজনীয় বিভিন্ন দীর্ঘ সাংখ্যিক পরিগণনার কাজ সমাধা করার প্রচলন হয়। বিংশ শতাব্দীর প্রথমার্ধ পর্যন্ত মানব পরিগণক পেশাটি ব্যাপক প্রচলিত ছিল। মানব পরিগণকেরা দশমিক পদ্ধতির প্রতীকে প্রকাশিত দশমিক সংখ্যার উপরে গাণিতিক সারণীর সহায়তা নিয়ে ও বিভিন্ন হস্তচালিত যন্ত্রকৌশল যেমন পিচ্ছিল মাপকাঠি (Slide rule "স্লাইড রুল") ব্যবহার করে গুণ, ভাগ, সূচকীকরণ, লগারিদম নির্ণয়, বর্গমূল নির্ণয়, ত্রিকোণমিতিক অপেক্ষক, ইত্যাদি গাণিতিক প্রক্রিয়া সম্পাদন করতেন এবং এভাবে জটিল ও বহুসংখ্যক ধাপবিশিষ্ট দীর্ঘ পরিগণনা দ্রুত সমাধা করতে পারতেন। পাশ্চাত্যে ১৯শ শতকের শেষ দিকে এসে নারীরা এই পেশাতে আধিপত্য বিস্তার করা শুরু করেন। বিংশ শতাব্দীর দ্বিতীয়ার্ধে এসে বিশেষভাবে নির্মিত বিদ্যুৎচালিত ইলেকট্রনীয় বর্তনীভিত্তিক যন্ত্রের মাধ্যমে পরিগণনা সম্পাদন করার প্রচলন হয়, যে যন্ত্রের নাম দেওয়া হয় স্বয়ংক্রিয় পরিগণক (Automatic computer)। বর্তমানে মানব পরিগণক পেশাটির অবলুপ্তি ঘটেছে এবং সর্বত্র পরিগণনার কাজ সম্পাদনা করার জন্য স্বয়ংক্রিয় পরিগণক যন্ত্রই ব্যবহৃত হয়। তাই "স্বয়ংক্রিয়" কথাটি বাদ দিয়ে এগুলিকে সংক্ষেপে কেবলই পরিগণক যন্ত্র (Computer) নামে ডাকা হয়। আধুনিক পরিগণক যন্ত্রগুলিকে বিদ্যুৎচালিত ইলেকট্রনীয় বর্তনী ব্যবহার করে নির্মাণ করা হয়। পরিগণক যন্ত্র নির্মাণ করতে গিয়ে গবেষণায় দেখা যায় যে যন্ত্রে প্রবিষ্ট প্রতীকগুলিকে যদি মাত্র দুই ধরনের প্রতীকে সীমাবদ্ধ করা যায়, এবং যদি সেগুলিকে যন্ত্রের ইলেকট্রনীয় বর্তনীগুলিতে উপস্থিত বৈদ্যুতিক বিভবের মাত্র দুইটি মান (উচ্চমান ও নিম্নমান) দিয়ে নির্দেশ করা হয়, তাহলে সেই যন্ত্রের প্রতীক শনাক্ত করার নির্ভরযোগ্যতা সর্বাধিক হয় ও এরূপ যান্ত্রিক ব্যবস্থাটি সবচেয়ে বেশি অর্থসাশ্রয়ী হয়। এই ব্যবহারিক প্রকৌশলগত সুবিধার কারণে বর্তমানে সর্বত্র ব্যবহৃত আধুনিক ইলেকট্রনীয় পরিগণন যন্ত্রের ভিত্তিমূলে শেষ বিচারে সবকিছুকে শূন্য (০) ও এক (১) - শুধুমাত্র এই দুইটি প্রতীকের দ্বারা গঠিত একটি প্রতীক ব্যবস্থার মাধ্যমে প্রতিনিধিত্ব করা হয়। শূন্য ও এক - এই দুইটি মাত্র অঙ্কের (ডিজিট) উপরে নির্ভরশীল বলে এগুলিকে আঙ্কিক বা ডিজিটাল যন্ত্র বলা হয়। এ কারণে আধুনিক পরিগণক যন্ত্রগুলিকে ইলেকট্রনীয় আঙ্কিক পরিগণক যন্ত্র বা ইংরেজি পরিভাষায় "ইলেকট্রনিক ডিজিটাল কম্পিউটার" নামেও ডাকা হয়। আধুনিক ইলেকট্রনীয় আঙ্কিক পরিগণক যন্ত্রগুলিকে নির্মাণের সময়েই এগুলিতে দ্বি-আঙ্কিক প্রতীকের ধারাকে পরিচালনা করার জন্য কিছু নির্দেশের সমষ্টি স্থাপন করা থাকে। এছাড়া এগুলিতে স্মৃতির (মেমরি) ব্যবস্থা থাকে যাতে বাইরে থেকে প্রবিষ্ট নির্দেশের অনুক্রম বা পদ্ধতি সেই স্মৃতিতে দ্বি-আঙ্কিক (বাইনারি) প্রতীকের ধারা হিসেবে সংরক্ষণ করা যায়। এই ব্যাপারটিকে পরিগণক যন্ত্রের পূর্বলিখন (Programming) বলা হয়। পরিগণক যন্ত্রগুলি স্মৃতিতে পূর্বলিখিত ও সংরক্ষিত নির্দেশানুক্রম বা পদ্ধতিগুলি ভবিষ্যতে অন্য কোনও সময়ে বাস্তবে রূপদান (ইন্টারপ্রেট) করতে পারে অর্থাৎ এগুলি পড়তে (রিড) পারে ও নির্বাহ (এগজিকিউট) করতে পারে। একারণে আধুনিক ইলেকট্রনীয় পরিগণক যন্ত্রগুলিকে পূর্বলিখনযোগ্য যন্ত্রও (Programmable device) বলা হয়ে থাকে। Konrad Hinsen (২০১৫), "What is computation?", Computation in Science, Morgan & Claypool Publishers উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link) Ian Horswill (মার্চ ২০১২), "What is computation?", ACM XRDS, 18 (3) উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link) অপেক্ষক - function আগম - input আঙ্কিক - digital আচরণগতভাবে সমতুল্য - behaviorally equivalent ইলেকট্রনীয় আঙ্কিক পরিগণক যন্ত্র - electronic digital computer ইলেকট্রনীয় বর্তনী - electronic circuit চলমান চিত্র - video চিত্র - image দ্বি-আঙ্কিক - binary পূর্বলেখ (প্রোগ্রাম) - program নির্গম - output নির্বাহ করা - execute পড়া - read পরিগণক (যন্ত্র) - computer (machine) পরিগণনা - computation পাঠ্যবস্তু - text পিচ্ছিল মাপকাঠি - slide rule পূর্বলিখন - programming পূর্বলিখনযোগ্য যন্ত্র - programmable device প্রতিনিধিত্ব - representation প্রতীক - symbol প্রতীকের ধারা - string of symbols বাস্তবে রূপদান - interpret মানব পরিগণক - human computer শ্রাব্য - audio সংখ্যা - number সংরক্ষিত - stored সাংখ্যিক পরিগণনা - numerical computation সুস্পষ্ট নিয়মের সমষ্টি - precise set of rules সুস্পষ্ট পদ্ধতি - precise procedure স্বয়ংক্রিয় পরিগণক - automatic computer স্মৃতি - memory