অ্যালগরিদম

গণনার পদ্ধতি বিশেষ

গণিত এবং কম্পিউটার বিজ্ঞানে (/ˈælɡərɪðəm/ (শুনুন)), সুনির্দিষ্ট কোনো সমস্যা সমাধানের জন্য সসীম সংখ্যক অনুক্রমিক নির্দেশের সেটকে অ্যালগরিদম বলা হয়। অ্যালগরিদম শব্দটি এসেছে ৯ম শতাব্দীর মুসলিম গণিতবিদমুসা আল খারিজমী’-এর নাম থেকে।[১][২][৩] এর সংজ্ঞায় বলা যায় ‘ধাপে ধাপে সমস্যা সমাধানের পদ্ধতি বিশেষ,’ অর্থাৎ একটি সমস্যাকে কয়েকটি ধাপে ভেঙ্গে প্রত্যেকটি ধাপ পরপর সমাধান করে সমগ্র সমস্যা সমাধান করা। অ্যালগরিদম হচ্ছে কোনো একটি কাজ সম্পন্ন করার জন্য কতক গুলি সুনির্দিষ্ট ও ধারাবাহিক ধাপের সমষ্টি, যেখানে ধাপ সংখ্যা অবশ্যই সীমিত হবে। কম্পিউটার, মানুষ, রোবট ইত্যাদি অ্যালগোরিদের ধাপগুলো ধারাবাহিকভাবে অনুসরণ করে একটি নির্দিষ্ট কাজ সম্পাদন করতে পারে। কম্পিউটার বিজ্ঞানে বিভিন্ন সমস্যা সমাধানের জন্য সঠিক অ্যালগোরিদম অত্যন্ত গুরুত্বপূর্ণ। একটি অ্যালগোরিদমকে "সঠিক" বলা হয় যদি প্রতিটি ইনপুটের জন্য অ্যালগোরিদমটি সঠিক আউটপুট প্রদর্শন করে। তবে পুরোপুরি নির্ভুল নয় এমন অ্যালগোরিদমও গুরুত্বপূর্ণ হতে পারে যদি ভুলের মাত্রা নিয়ন্ত্রণের মধ্যে রাখা যায়। একটি অ্যালগোরিদমকে যেকোনো ভাষায় বর্ণনা করা যেতে পারে,সে ভাষাটি হতে পারে বাংলা, ইংরেজির মত মানুষের মৌখিক ভাষা,অথবা সি++,জাভার মত প্রোগ্রামিং ভাষা এমনকি হার্ডওয়্যার ডিজাইনের মাধ্যমেও। তবে যে ভাষাতেই লেখা হোক না, সমস্যা সমাধানের প্রতিটি ধাপের বর্ণনা অ্যালগোরিদমে থাকতে হবে।

এটা একটি অ্যালগরিদম যা একটি বন্ধ বাতি কিভাবে কাজ করবে তা দেখাচ্ছে

অ্যালগরিদম রচনার জন্য ৪টি উপযুক্ত শর্ত রয়েছে। এগুলো হল:

  1. অ্যালগরিদম সহজবোধ্য হবে।
  2. প্রত্যেকটি ধাপ স্পষ্ট হবে, যাতে সহজে বোঝা যায়; কোন ধাপই দ্ব্যর্থবোধক হবে না।
  3. সসীমসংখ্যক ধাপে সমস্যার সমাধান করতে হবে। কম্পিউটারের ক্ষেত্রে সীমাবদ্ধ সময়েই সমাধান পাওয়া যাবে।
  4. ব্যাপকভাবে প্রয়োগ করা সম্ভব হবে।

[৪]

শ্রেণীকরণসম্পাদনা

উদাহরণসম্পাদনা

অ্যালগরিদমের উদাহরণসম্পাদনা

অন্যতম সহজ একটি অ্যালগরিদম হলো, অনির্দিষ্ট ক্রমে থাকা একগুচ্ছ সংখ্যা থেকে সবচেয়ে বড় সংখ্যাটি খুঁজে বের করা। এর সমাধানের জন্য সংখ্যার তালিকায় থাকা সকল সংখ্যাকে দেখতে হয়। এ থেকে সহজ একটি অ্যালগরিদম তৈরি হয়, যাকে ভাষায় বললে কিছুটা এরকমঃ

  1. যদি তালিকায় কোনো সংখ্যা না থাকে তবে এতে কোনো সবচেয়ে বড় সংখ্যা নেই।
  2. ধরে নেয়া যাক, তালিকার প্রথম সংখ্যাটিই সবচেয়ে বড় সংখ্যা।
  3. বাকি অন্যান্য সংখ্যার জন্যঃ যদি সংখ্যাটি এখন পর্যন্ত পাওয়া সবচেয়ে বড় সংখ্যার চেয়ে বড় হয়, তবে এই সংখ্যাটিকেই সবচেয়ে বড় সংখ্যা হিসেবে বিবেচনা করি।
  4. যদি তালিকায় যাওয়ার মতো আর কোনো সংখ্যা না থাকে, তবে এখন পর্যন্ত পাওয়া সবচেয়ে বড় সংখ্যাটিই তালিকার সবচেয়ে বড় সংখ্যা।

নিচে অ্যালগরিদমের সিউডোকোড বা পিগিনকোড দেয়া হলো, এটি যেকোনো উচ্চতর প্রোগ্রামিং ভাষার কাছাকাছি তবে কোনো প্রোগ্রামিং ভাষা নয়।

  Input: A list of numbers L.
  Output: The largest number in the list L.
  if L.size = 0 return null
  largestL[0]
  for each item in L, do
    if item > largest, then
      largestitem
  return largest

তথ্যসূত্রসম্পাদনা

  1. "Al-Khwarizmi biography"www-history.mcs.st-andrews.ac.uk 
  2. "Etymology of algorithm"Chambers Dictionary। সংগ্রহের তারিখ ডিসেম্বর ১৩, ২০১৬ 
  3. Brezina, Corona (২০০৬)। Al-Khwarizmi: The Inventor Of Algebra। The Rosen Publishing Group। আইএসবিএন 978-1-4042-0513-0 
  4. Introduction To Algorithms: Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford Stein.(Third Edition)

বহিঃসংযোগসম্পাদনা