কোনো একটি কাজ সম্পন্ন করার জন্যে কম্পিউটারের যেসব নির্দেশনা এবং নিয়ম দরকার হয় সেসবের তালিকাকেই বলে অ্যালগরিদম।
কোনো ডিভাইসের মাধ্যমে আমরা যা কিছু করি, তার সবকিছুতেই অ্যালগরিদম আছে। তবে আমাদের মধ্যে যারা গণিত এবং প্রোগ্রামিংয়ে বিশেষজ্ঞ নন, তারা “অ্যালগরিদম” টার্মটি স্পষ্টভাবে বুঝি না। এ নিয়ে একটি কৌতুক প্রচলিত আছে যে, প্রোগ্রামাররা যখন তাদের কাজের ব্যাপারে কোনো ব্যাখ্যা দিতে না চান, তখন তারা “অ্যালগরিদম” কথাটি ব্যবহার করেন।
আমরা হয়তো অ্যালগরিদম শব্দটি প্রায়ই শুনি, এমনকি মাঝেমধ্যে ব্যবহারও করি। কিন্তু অ্যালগরিদম বলতে আসলেই কী বোঝায়?
অ্যালগরিদম কী?
অ্যালগরিদম হলো নির্দেশনার একটি সিরিজ, যা ধাপে ধাপে অনুসরণ করে কোনো কাজ বা সমস্যার সমাধান করা হয়। যেমন, কোনো এক ধরনের কেক তৈরি করার জন্যে যে রেসিপি থাকে, সেটাকেও অ্যালগরিদম হিসেবে গণ্য করা যায়।
কম্পিউটিংয়ের ক্ষেত্রে অ্যালগরিদমের মাধ্যমে কম্পিউটারকে কোনো কাজ সম্পন্ন করার জন্যে ধারাবাহিক ভাবে নির্দেশনা দেয়া হয়। নির্দেশনার একটি সুনির্দিষ্ট তালিকা নিয়ে গঠিত হয় এটি যাতে কোনো কাজ ঠিক কীভাবে সম্পন্ন করতে হবে, তার একটি স্পষ্ট রূপরেখা দেয়া থাকে।
সুতরাং সবচেয়ে যথার্থ সংজ্ঞা হলো, এটি নির্দেশনা সম্বলিত ছোট আকারের একটি ম্যানুয়াল, যাতে কম্পিউটার কোনো কাজ কীভাবে সম্পন্ন করবে বা ডেটা কীভাবে বিশ্লেষণ করতে হবে, তার উল্লেখ থাকে।
কম্পিউটার অ্যালগরিদম কীভাবে কাজ করে?
কম্পিউটার ইনপুট এবং আউটপুটের মাধ্যমে কাজ করে। কম্পিটার ডেটা ইনপুট নেয় এবং আউটপুট তৈরি করতে সেই ডেটাতে অ্যালগরিদমের প্রতিটি নির্দেশনা প্রয়োগ করে।
যেমন, কোনো সার্চ ইঞ্জিন হলো এক ধরনের অ্যালগরিদম, যা কোনো সার্চ কোয়্যারিকে ইনপুট হিসেবে গ্রহণ করে এবং কোয়্যারিতে থাকা শব্দের সাথে সম্পর্কিত তথ্যগুলি নিজের ডেটাবেজে অনুসন্ধান করে। এরপর সার্চ রেজাল্ট আউটপুট দেয়।
এটিকে ফ্লোচার্ট হিসেবেও কল্পনা করা যায়। যাতে প্রাথমিক ভাবে দেয়া ইনপুট এমন কিছু পদক্ষেপ এবং প্রশ্নের দিকে নিয়ে যায়, যা ক্রমান্বয়ে পরিচালনা করতে হয়। ফ্লোচার্টের প্রতিটি সেকশন সম্পন্ন হয়ে যে ফলাফল উৎপন্ন হয়, সেটাই আউটপুট।
অ্যালগরিদম এবং অটোমেশন-
এখন পর্যন্ত বিষয়টি যথেষ্ট সোজা মনে হচ্ছে। এরপরও প্রশ্ন করা যেতেই পারে যে, অ্যালগরিদম কীসের জন্যে ব্যবহৃত হয়? উত্তরটা হলো, এর ব্যবহার অনেক।
আইটি এবং কম্পিউটিংয়ের সকল ক্ষেত্রে অ্যালগরিদম ব্যবহার করা হয়। অ্যালগরিদম ডেটা ব্যবস্থাপনা ও প্রসেস করতে পারে। এছাড়াও বিভিন্ন ভাবে গণনা বা কম্পিউটিংয়ের কাজও সম্পন্ন করতে পারে।
সক্রিয় অ্যালগরিদমের একটি দুর্দান্ত উদাহরণ হলো অটোমেশন সফটওয়্যার। কারণ অটোমেশন সফটওয়্যারে কোনো কাজ সম্পন্ন করার জন্যে আগে থেকে নির্ধারিত কিছু নিয়ম অনুসরণ করা হয়। এই নিয়মগুলিই আসলে অ্যালগরিদম।
সুতরাং, অটোমেশন সফটওয়্যার অনেকগুলি অ্যালগরিদমের সমন্বয়ে গঠিত, যার মাধ্যমে কাজের বিভিন্ন প্রসেস স্বয়ংক্রিয় ভাবে করা হয়।
যেমন, ধরা যাক একটি স্বয়ংক্রিয় কাজের জন্যে আপনার অটোমেশন সফটওয়্যারটিকে ইমেইলের মাধ্যমে প্রাপ্ত সমস্ত বিলিং তথ্য নিতে হবে এবং তা একটি স্প্রেডশিটে রাখতে হবে। এজন্যে আপনি সেই সফটওয়্যার প্রোগ্রামটির জন্যে কিছু নিয়ম এবং শর্ত সেট করে দিয়েছেন। এসব নিয়ম এবং শর্তগুলিই আসলে অ্যালগরিদম।
এই উদাহরণে ইনপুট হলো প্রতিটি ইনকামিং ইমেইল। কাজটি সম্পন্ন করার জন্যে এই ইমেইলগুলির প্রত্যেকটাই তখন নির্দিষ্ট ধাপ বা নিয়মের মধ্যে রাখা হয়। এর মধ্যে কাঙ্ক্ষিত তথ্যের জন্যে প্রতিটি ইমেইল স্ক্যান বা পরীক্ষা করার কাজও অন্তর্ভুক্ত থাকতে পারে। যেসব ইমেইলে এই কাঙ্ক্ষিত তথ্য থাকে, সেসব এর পরবর্তী ধাপে চলে আসে এবং প্রাসঙ্গিক ডেটা শনাক্ত এবং বের করতে প্রতিটি পদক্ষেপ অনুসরণ করে চলতে থাকে। এখানে আউটপুট হলো সেই তথ্য, যা স্প্রেডশিটে রাখা হয়েছে।
মোটকথা, এটি হলো কোনো কাজের পরিকল্পনার একটি নীলনকশা, যাতে সেই কাজটি সম্পন্ন করার মূল পদ্ধতির রূপরেখা দেয়া থাকে। কম্পিউটিংয়ের ক্ষেত্রে অ্যালগরিদম হলো কিছু নির্দেশনা এবং নিয়মের তালিকা, যা কোনও কাজ সম্পন্ন করার জন্যে কম্পিউটারের প্রয়োজন হয়।