অ্যালগরিদম কি ? অ্যালগরিদম এর ৫ টি প্রধান বৈশিষ্ট্য

4.4/5 - (5 votes)

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

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

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

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

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

এই আধুনিক যুগে মানুষ সকল কাজই কম সময়ে করতে চায়। যেকোন কাজকে কম সময়ের মধ্যে করতে হলে তারজন্য উপযুক্ত নিয়ম অনুসরণ করে চলতে হবে। নাহলে সেই কাজটি করতে আরো বেশি সময় লাগবে। আর সেই কাজগুলোকে কম সময়ে করবার জন্যই প্রয়োজন হয় অ্যালগরিদমের। ডিজিটাল প্রযুক্তির জন্যই অ্যালগরিদম নয় অন্যান্য কাজেও ব্যবহার করা হয়।

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

বিভিন্ন ঐতিহাসিক রেকর্ড থেকে জানা যায় অ্যালগরিদম প্রথম ব্যবহার করেছিলেন ব্যবিলনীয়রা। এটির মাধ্যমে তারা স্কয়ার রুটের মান নির্ধারণ করা থেকে শুরু করে সাধারন হিসেবগুলো করতেন।ইউক্লিড ‘Euclidean Algorithm’ নামের একটি অ্যালগরিদম শুরু করেন। পরে অবশ্য ইসলামি বিশ্ব আরো কয়েকটি কঠিন ও জটিল অ্যালগরিদম নিয়ে কাজ করা শুরু করেন। যেগুলোর মধ্যে ছিল ক্রিপ্ট্যালাইসিস, এনক্রিপশন এবং সাইফারের (সংকেত লেখনী) অ্যালগরিদম।

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

অ্যালগরিদম কি?

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

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

এবার জানবো এটি কীভাবে কাজ করে:-

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

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

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

এখন অনেকের মনেই প্রশ্ন আসছে যে এই অ্যালগরিদম কিভাবে ডিজাইন করা যায়? চলুন জেনে নেওয়া যাক।

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

২) ইনপুট এবং আউটপুট নির্ধারণ করা: এরপর ইনপুট ও আউটপুট কী হবে সেটিও নির্ধারণ করতে হবে।

৩) ধাপ নির্ধারণ করা: এরপর সমস্ত প্রয়োজনীয় ধাপগুলোকে সাজাতে হবে।
৪) অ্যালগরিদম পরীক্ষা করা: অ্যালগরিদম ঠিকমতো কাজ করছে কিনা তারজন্য নানান ইনপুট দিয়ে পরীক্ষা করে নিতে হবে।
৫) অপ্টিমাইজেশন: অ্যালগরিদমের কার্যকারিতাকে উন্নত করার জন্য অপ্টিমাইজ করতে হবে। যদি কম সময় অথবা কম মেমোরি দিয়ে কাজ করা গেলে সেটি করা উচিত।

অ্যালগরিদমের অনেক প্রকারও রয়েছে। আসুন সেটি নিয়ে আলোচনা করি।
১) সরল লিনিয়ার অ্যালগরিদম (Simple Linear Algorithm): এই ধরনের অ্যালগরিদম সরাসরি ও ক্রমানুসারে কাজ করে থাকে। যেমন যেকোনো সংখ্যার যোগফল বের করা।

২) পুনরাবৃত্তিমূলক অ্যালগোরিদম (Recursive Algorithm): এটি নিজেকে নিজেই পুনরাবৃত্তি করে কাজ করে। এটিকে বিশেষ করে সাধারণত ফ্যাক্টরিয়াল অথবা ফিবোনাচি সিরিজের মতো সমস্যায় ব্যবহার করা হয়।

৩) ডিভাইড-এন্ড-কনকর অ্যালগোরিদম (Divide and Conquer Algorithm): এই ধরনের অ্যালগরিদম যেকোনো বড় সমস্যাকে ছোট ছোট অংশে ভাগ করে সেগুলোর সমাধান করে। যেমন মার্জ সর্ট (Merge Sort) এবং কুইক সর্ট (Quick Sort)।

৪) ডায়নামিক  প্রোগ্রামিং অ্যালগোরিদম (Dynamic  Programming Algorithm): এই অ্যালগরিদম আগের সমাধান করা তথ্যগুলোকে ব্যবহার করে সেগুলোকে নতুন করে সমাধান করে। ফলে কম্পিউটেশনাল জটিলতা কমে যায় এবং কার্যকারিতা বাড়ে।

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

২. অ্যালগরিদম এর ব্যবহার

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

২.১. যে কোনো Mathematical বা গাণিতিক সমস্যা সমাধানের জন্য অ্যালগরিদম এর ব্যবহার করা হয়ে থাকে , যেমন ১ সংখ্যা ০ এর থেকে বড়ো তখন যোগ বা Plus (+) আর যদি ছোট হয় তাহলে বিয়োগ (-) ।

২.২. বর্তমানে বেশ অনেক গুলি সার্চ ইঞ্জিন দেখতে পাওয়া যায় , সেই সব সার্চ ইঞ্জিন তাছাড়া ফেসবুক , ইনস্টাগ্রাম , গুগল ম্যাপ ইত্যাদি এইসব এলগোরিদম এর অনুসারে হয়ে থাকে ।

২.৩. বিভিন্ন কম্পিউটার সায়েন্টিস্ট ও সফটওয়্যার ইঞ্জিনিয়াররা এর ব্যবহার করে থাকে , কারণ এর ফলে তাদের কাজ করতে সময় অনেক কম লাগে , আর কম পরিশ্রমে অনেক কাজ  একসাথে হয়ে যায় ।

২.৪. যে কোনো ফ্লো চার্ট বানানোর সময় যাতে কোনো রকম ভুল না হয় , তার জন্য অ্যালগরিদম এর ব্যবহার করা হয়ে থাকে ।

২.৫. অ্যালগরিদম এর ব্যবহার বেশ কিছু জায়গায় যেমন মহাকাশ গবেষণা , স্যাটেলাইট , রোবট তৈরী , আর্টিফিশিয়াল ইন্টেলেজেন্স ইত্যাদি ক্ষেত্রে করা হয় ।

২.৬. যে কোনো ধরণের প্রোগ্রাম লেখার আগে কম্পিউটার প্রোগ্রামিং এর মধ্যে অ্যালগরিদম এর ব্যবহার করা হয় , যদি আপনি কম্পিউটার সাইন্স , আইটি বা ইনফরমেশন টেকনোলজি , BCA বা MCA এর স্টুডেন্ট হয়ে থাকেন এবং আপনাকে কোনো প্রোগ্রাম লিখতে হবে । সেই প্রোগ্রাম যদি আপনি কিছু চিন্তা ভাবনা না করে লেখা শুরু করেন , তাহলে অনেক ভুল দেখা যাবে, এই ভুল গুলো খুব সহজে অ্যালগরিদম খুঁজে বের করে এবং সমাধান করে । 

২.৭. Sudo কোড লেখার জন্য অ্যালগরিদম এর অনেক প্রয়োজন , না হলে কিছু ভুল হলে আবার নতুন করে Sudo কোড লিখতে হতে পারে ।

চলুন এবার দেখে নেওয়া যাক অ্যালগরিদম এর সুবিধা গুলি কি কি

৩. অ্যালগরিদম এর সুবিধা 

৩.১. অ্যালগরিদম এর সাহায্যে যে কোনো সমস্যার সমাধান খুব সহজে হয়ে থাকে ।

৩.২. একটি অ্যালগরিদম একটি নিশ্চিত প্রক্রিয়ার মাধ্যমে কাজ করে থাকে ।

৩.৩. অ্যালগরিদম কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজ এর উপর নির্ভরশীল নয় , তাই এটি প্রোগ্রামিং ল্যাঙ্গুয়েজের অভিজ্ঞতা ছাড়াই যে কেউ এলগোরিদম এর সম্বন্ধে খুব সহজে বুঝতে পারে ।

৩.৪. অ্যালগরিদম এর প্রতিটা স্টেপ বা ধাপ ক্রমানুযায়ী সাজানো থাকে , এই জন্য এটি বুঝতে সুবিধা হয় ।

৩.৫. অ্যালগরিদম কে Flow Chart এ কনভার্ট করতে পারেন , এবং পরে এটিকে যে কোনো প্রোগ্রামিং ল্যাঙ্গুয়েজে পরিবর্তন করা যেতে পারে । 

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

আর্টিফিশিয়াল ইন্টেলিজেন্স কি বা কৃত্রিম বুদ্ধিমত্তা কি ? ( artificial intelligence in bangla )

 

শেয়ার করুন:

নমস্কার , বঙ্গজ্ঞান ওয়েবসাইটে আপনাদের স্বাগত , আপনাদের বিভিন্ন বিষয়ে যেমন ব্যবসা , ক্যারিয়ার , কম্পিউটার জ্ঞান , ইন্টারনেট ইত্যাদির উপর আমরা তথ্য নিয়ে আসি প্রতি সপ্তাহে সোমবার এবং শুক্রবার । আমাদের উদ্দেশ্য আপনাদের সবার কাছে বাংলা ভাষায় সঠিক তথ্য পৌঁছে দেওয়া।

Leave a Comment