কম্পিউটার অ্যালগোরিদম কি? একটি সংক্ষিপ্ত ব্যাখ্যা!

যারা ম্যাথ বা গণিতের পটু নন কিংবা যারা প্রোগ্রামিং সেক্টরে নেই তাদের কাছে এই এ্যালগোরিদম কথাটি বেশ অন্যরকম মনে হতে পারে। আবার আজ আমি কথা বলতে চলে এলাম কম্পিউটার এ্যালগোরিদম নিয়ে। আর শুরুতেই বলে নিচ্ছি আমি কিন্তু ম্যাথ বা কম্পিউটার সাইন্সের টিচার নই, তাই পোষ্টে বলা সকল ক্ষেত্রগুলো আমি রিসার্চ করে পেয়েছি। যারা এই সেক্টরগুলোতে রয়েছেন তারা আমার আজকের পোষ্টে কোনো ভূল থাকলে অবশ্যই কমেন্ট সেকশনে সেটা বলে দিবেন। আমি আজকের পোষ্টে কম্পিউটার এ্যালগোরিদমকে আপনাদের সামনে যতটুকু সহজ ভাষায় সম্ভব ততটুকু ভাবে উপস্থাপন করার চেষ্টা করবো!


কম্পিউটার অ্যালগোরিদম

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

কম্পিউটারকে দিয়ে কোনো কাজ করাতে চাইলে আপনাকে কম্পিউটার প্রোগ্রাম লিখতে হবে। কম্পিউটার প্রোগ্রাম লেখার জন্য আপনাকে স্টেপ বাই স্টেপ সঠিক কাজের নির্দেশনাগুলোকে লিখতে হবে। তারপরই কম্পিউটার এই প্রোগ্রামটিকে চালায় এবং আপনার উক্ত কাজটি কম্পিউটার করে ফেলে। এখানে লক্ষ্যনীয় বিষয় হচ্ছে প্রোগ্রামের মাধ্যমে শুধুমাত্র আপনি কম্পিউটারকে কি কি করতে হবে সেটাই বলছেন না; কিভাবে কাজগুলো করতে হবে সেটাও বলে দিচ্ছেন। আর এই “কিভাবে” কাজগুলো করতে হবে এখানেই আসে কম্পিউটার এ্যালগোরিদম। একটি প্রোগ্রামের কমান্ডগুলোকে কিভাবে কোন স্টেপ কোনটার আগে হবে বা পরে হবে সেটাই আপনি কম্পিউটার এ্যালগোরিদমের মাধ্যমে কম্পিউটারকে বুঝিয়ে থাকেন।

একটি বাস্তব ঘটনার মাধ্যমে এই অ্যালগোরিদমকে আপনাদের সামনে উপস্থাপন করার চেষ্টা করছি। ধরুণ এয়ারপোর্টে আপনার একজন বন্ধু বিদেশ থেকে আসছে, এবার এয়ারর্পোট থেকে বন্ধুটিকে আপনার বাসায় আসতে হবে। আর আপনার বাসায় আসতে গেলে ৪টি ভিন্ন ভিন্ন উপায়ে সে আসতে পারবে। এই সম্পূর্ণ ঘটনাটি কম্পিউটারকে বুঝাতে গেলে আপনার দরকার হবে চারটি (৪) অ্যালগোরিদম! এগুলো হচ্ছে…

ট্যাক্সি এ্যালগোরিদম

  • ট্যাক্সি স্ট্যান্ডে যেতে হবে
  • একটি ট্যাক্সিতে উঠতে হবে
  • ড্রাইভারকে গন্তব্যস্থলের ঠিকানা দিতে হবে

কল মি এ্যালগোরিদম

  • প্লেন থেকে নেমে আমাকে ফোন দিতে হবে
  • এয়ারর্পোটের ব্যাগেজ স্টোরের সামনে আমার সাথে দেখা করতে হবে

রেন্ট-এ-কার এ্যালগোরিদম

  • এয়ারর্পোটের পাশের রেন্টাল কার প্রতিষ্ঠানে যেতে হবে
  • একটি গাড়ি রেন্ট করতে হবে
  • জিপিএস য়ে ঠিকানা প্রবেশ করে এটা ফলো করে গন্তব্যস্থলে চলে আসতে হবে

বাস এ্যালগোরিদম

  • এয়ারর্পোট থেকে বাস নাম্বার ৭০ য়ে উঠতে হবে
  • মহাখালিতে নেমে যেতে হবে এবং লেগুনায় উঠতে হবে
  • শ্যামলিতে নেমে যেতে হবে এবং হেঁটে শ্যামলি পার্কের পাশে আসতে হবে
  • পার্কের পাশে এসে ১৪ নম্বর রোডে ঢুকে আমার বাসায় চলে আসতে হবে

লক্ষ্য করে দেখুন যে এই চারটি ভিন্ন ভিন্ন পদ্ধতির শেষ ঠিকানা কিন্তু একটিই, কিন্তু প্রতিটি এ্যালগোরিদম কাজগুলোকে একদমই আলাদা ভাবে করে থাকে। প্রতিটি এ্যালগোরিদমের খরচ এবং সময় ভিন্ন ভিন্ন হবে। টেক্সি নিয়ে চলে আসার এ্যালগোরিদমটি সব থেকে দ্রুত সিদ্ধান্ত হবে কিন্তু এতে খরচ হবে বেশি, আবার বাস এ্যালগোরিদমটিতে খরচ সবথেকে কম হবে কিন্তু এতে সময় লাগবে প্রচুর। এভাবেই কোনো প্রোগ্রাম বানানোর সময় পারিপার্শ্বিক অবস্থাকে বিবেচনা করে সঠিক এ্যালগোরিদম নির্বাচন করে থাকেন প্রোগ্রামরা।

আর কম্পিউটার প্রোগ্রামিংয়ে এই এ্যালগোরিদমকে বিভিন্ন পদ্ধতিতে ব্যবহার করা যায়। আর এই পদ্ধতিগুলোর নিজস্ব সুবিধা এবং অসুবিধা দুটোই রয়েছে। আর কোনো প্রোগ্রামিংয়ে বিভিন্ন এ্যালগোরিদমকে ব্যবহার করা হয় Sorting এর কাজ করার জন্য। কারণ কম্পিউটার যেকোনো প্রোগ্রামের কমান্ড লিস্টগুলোকে সঠিক ভাবে সর্টিং করার জন্য প্রচুর সময় ব্যয় করে থাকে। Sorting করার জন্য ৫ ধরণের এ্যালগোরিম ব্যবহৃত হয়ে থাকে! এগুলো হচ্ছে…

  • Bin sort
  • Merge sort
  • Bubble sort
  • Shell sort
  • Quicksort

আপনার যদি লক্ষাধিক ইন্টেগার থাকে যাদের ভ্যালু ১ এবং ১০ এর মধ্যে সীমাবদ্ধ রয়েছে এগুলোকে সর্টিং করার জন্য আপনার সব থেকে বেস্ট মেথড হবে bin sort এ্যালগোরিদম। অন্যদিকে আপনার যদি লক্ষাধিক বুক টাইটেল থাকে তাহলে এগুলোকে সর্টিং করার জন্য আপনার সব থেকে বেস্ট মেথড হবে quicksort এ্যালগোরিদম। আর এই এ্যালগোরিদমের সুবিধা ও অসুবিধা জেনেই একজন প্রোগ্রামার সঠিক এ্যালগোরিদমকে ব্যবহার করে থাকে।

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

সাধারণ কম্পিউটার ব্যবহারকারীরা (যেমন আমার মতো) মূলত দুটি ধরণের এ্যালগোরিদমের সাহায্য প্রতিদিনই পেয়ে থাকি। এগুলো হচ্ছে

১) সার্চ ইঞ্জিণ এ্যালগোরিদম: সার্চ ইঞ্জিণ এ্যালগোরিদম আমাদের সাধারণ কম্পিউটার ব্যবহারকারীদের প্রতিদিনের জীবনে সবথেকে বেশি ব্যবহৃত হয়ে থাকে। বিভিন্ন সার্চ ইঞ্জিণ সঠিকভাবে কাজ করার জন্য এই এ্যালগোরিদম ব্যবহৃত হয়ে থাকে। ভিজিটরের কিওর্য়াড কে সার্চ ইঞ্জিণের ডাটাবেসে খুঁজে নিয়ে সঠিক ওয়েবপেজগুলোকে ভিজিটরের সামনে উপস্থাপন করাই হচ্ছে সার্চ ইঞ্জিণ এ্যালগোরিদমের কাজ। আর এই কাজগুলো চোখের পলকেই হয়ে থাকে। এই জিনিসটি আসলেই বেশ চমকপ্রদ।

২) এনক্রিপ্টশন এ্যালগোরিদম: কম্পিউটার ইনফরমেশনগুলোকে দুবোর্ধ্য বা সাধারণ মানুষ সহজেই বুঝতে পারবে না এমন ভাষায় টান্সফর্ম করার কাজে এই এ্যালগোরিদমটি ব্যবহৃত হয়। বিভিন্ন এনক্রিপ্টশন সফটওয়্যারে এই এ্যালগোরিদমটি ব্যবহৃত হয়ে থাকে। এর মাধ্যমে হ্যাকারদের হাত থেকে গুরুত্বপূর্ণ তথ্যগুলোকে সুরক্ষিত রাখা হয়।


এই ছিলো কম্পিউটার এ্যালগোরিদম নিয়ে বেসিক ধারণা। আশা করবো আমার মতো যারা প্রোগ্রামার নন কিংবা কম্পিউটার এ্যালগোরিদম সম্পর্কে আগে ধারণা ছিলো না তারা এই পোষ্টটি পড়ে কম্পিউটার এ্যালগোরিদম সম্পর্কে প্রাথমিক ধারণা নিতে পেরেছেন।

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

তবে হ্যাঁ এইক্ষেত্রে এ্যালগোরিদম পরোক্ষভাবে আমাদের উপকার করে আসছে। আবার সব কিছুরই যেমন ভালো এবং খারাপ দিক রয়েছে; ঠিক তেমনটি প্রায়ই সময় এ্যালগোরিদমকেও এই খারাপ ধাপে ব্যবহার করা হয়ে থাকে। যেমন মানুষের ডিজিটাল প্রাইভেসি ভঙ্গ করতে অনেকে এ্যালগোরিদমের সাহায্য নিয়ে থাকেন, ক্ষতিমূলক হ্যাকিং চালাতেও এ্যালগোরিদমের ব্যবহার হয়ে থাকে।

এখানে লক্ষ্য করলে দেখবেন যে এ্যালগোরিদমের নিজস্ব কোনো খারাপ দিক নেই, মানুষরাই একে খারাপ এবং একই সাথে ভালো পথে ব্যবহার করছে। আর বর্তমানে মানুষের পাশাপাশি AI বা আর্টেফিশিয়াল ইন্টেলিজেন্সগুলোকেও এ্যালগোরিদম শেখানো হচ্ছে যাতে তারা আমাদের ডিজিটাল লাইফকে আরো সহজ করে দিতে পারে।


Image: Shutterstock

About the author

ফাহাদ

Add comment

Categories