লিট বাংলা ডট টেক, প্রযুক্তির হাতেখড়ি হোক বাংলাতেই।

হ্যাকিং / সাইবার নিরাপত্তা বিষয়ক বাংলা প্রযুক্তির ব্লগ

"অ্যালগরিদম" রহস্য..!! পর্ব- ২






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

বিজ্ঞানের ভাষায় অ্যালগরিদম

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





বিভিন্ন রকমের অ্যালগরিদম
  • কুইক সর্ট অ্যালগরিদম
  • মার্জ সর্ট অ্যালগরিদম
  • বাইনারি সার্চ অ্যালগরিদম
  • বাবল সর্ট অ্যালগরিদম
  • লিনিয়ার সার্চ
  • কাউন্টিং সর্ট এলগরিদম
  • ফ্লাড ফিল অ্যালগরিদম


কীভাবে অ্যালগরিদম এর সাহায্য সমস্যা সমধান করা যাই


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

ধাপ ১: x নামক ধ্রুবকের মান ০ দিয়ে সূচিত করি
ধাপ ২: x এর মান ১ বৃদ্ধি করি
ধাপ ৩: x এর মান প্রিন্ট করি
ধাপ ৪: যদি x এর মান ১০ এর চেয়ে ছোট হয় তবে ধাপ ২-এ ফেরত যাই এবং পরবর্তী নির্দেশনা অনুসরণ করি
ধাপ ৫: যদি x এর মান ১০ এর সমান কিংবা ১০ থেকে বড় হয়,
কাজ সমাপ্ত করি

অ্যালগরিদম এর প্রতীকের ব্যবহার

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


বহুল ব্যবহৃত কিছু অ্যালগরিদম


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

Video game, artificial intelligency, cryptography, hash algorithm,
artificial intelligence সহ আরো বিভিন্ন ধরণের কম্পিউটিং এর ক্ষেত্রে random number ব্যবহৃত হয়।
তবে এ কথা মানতেই হবে এখন পর্যন্ত বেশ কিছু শক্তিশালী এলগরিদম থাকলেও পুরোপুরি
Random Number Generation Algorithm এখনো তৈরি হয় নি।

সকল এলগরিদমই ডিজাইন করা হয়েছে কোন না কোন সমস্যার সমাধানের জন্য। সেই দৃষ্টিকোণ থেকে সকল এলগরিদমই গুরুত্বপূর্ণ। এখানে বহুল ব্যবহৃত কয়েকটি এলগরিদমের নাম দেয়া হয়েছে। এগুলোর সমান গুরুত্ব বহন করে এমন আরো কিছু এলগরিদম হচ্ছেঃ Integer factorization,  Link Analysis, Proportional Integral Derivative Algorithm ইত্যাদি।

আরএসএ   সিকিউর হ্যাশ অ্যালগোরিদম সম্পর্কে বিস্তারিত জানতে ক্লিক করুন ।

অ্যালগরিদম  এর পর্ব ১ পড়ুন এখানে