অ্যালগরিদমের সহজ কথা
১. বাসায় মেহমান এসেছে
২. জামা পাল্টে অন্য জামা পর
৩. চুল পরিপাটি কর
৪. মেহমানের সামনে দাঁতে নখ কাটবে না
৫. মেহমানের খাবার থেকে খেতে চাইবে না
৬. মেহমানকে ছড়া শোনাবে
৭. মেহমান “লক্ষ্মী বাচ্চা” বললে তাকে ধন্যবাদ দেবে
৮. মেহমানের সামনে শোরগোল করবে না
৯. মেহমান বিদায় নিলে তবে আগেকার অবস্থায় ফিরে যেতে পারবে…
একুশ শতক হচ্ছে তথ্য-প্রযুক্তির যুগ। প্রতিনিয়ত নতুন প্রযুক্তি, নতুন ট্রেন্ড তৈরি করা হচ্ছে যেগুলো এত দ্রুত আমাদের মাঝে জুড়ে যাচ্ছে যে আমরা সবগুলোকে নজরে রাখতেও পারছি না। কোন বিষয়টি ইতিবাচক, কোনটি নেতিবাচক এসব বিবেচনা করতেই আরেকটি বিষয়কে তুলে ধরা হচ্ছে আমাদের সামনে।
আজ আমরা চারপাশের জগত ছেড়ে এমন এক জগতকে নিজেদের করে নিচ্ছি, বাস্তবে যার কোনো অস্তিত্বই নেই। অস্তিত্বহীন এই জগত পরিচালনা করার মূলে রয়েছে অ্যালগরিদম। অ্যালগরিদম শব্দটির অর্থ নির্দেশনা। লক্ষ-কোটি লাইনের নির্দেশনায় পরিচালিত হচ্ছে আমাদের জীবন। আপনাকে, আমাকে তারা পড়ছে, জানছে। তাদের কাছে আমরা নিজেদের উন্মুক্ত করে দিচ্ছি। আমাদের সকল দুর্বল দিক, পছন্দের দিক তাদের জানা। অর্থাৎ তারা চাইলেই এই বিশাল জনগোষ্ঠীকে একটি নির্দিষ্ট দিকে পরিচালনা করতে পারে।
সামাজিক যোগাযোগমাধ্যম বা সোশ্যাল মিডিয়ার কথাই তুলে ধরা যাক। এটি আমাদের জীবনের সাথে ওতপ্রোতভাবে জড়িয়ে গেছে। আজকাল প্রায় সব বয়সের মানুষকেই ফেসবুকে দেখা যায়। এছাড়া ইউটিউব, ইন্সটাগ্রাম তো আছেই। এ দেশে সোশ্যাল মিডিয়ার ব্যবহার দিন দিন বাড়ছে, তার সাথে ব্যবহারকারীও। বাড়ছে সেই সাথে বিশৃঙ্খলা, একে অপরের প্রতি তৈরি হচ্ছে বিরূপ মনোভাব; মানুষ বিভক্ত হয়ে যাচ্ছে, অযাচিত কর্মকাণ্ড তৈরি হচ্ছে, ভুল তথ্য ছড়াচ্ছে, ঝরে যাচ্ছে অনেকের প্রাণও।
কেন? সোশ্যাল মিডিয়ার ইতিবাচক-নেতিবাচক দিক রয়েছে অনেক, এবং এই দিকগুলোকে পরিচালিত করা হচ্ছে।
এই দিকগুলো যারা তৈরি করেছে বা পরিচালনা করছে তারা কিন্তু নেতিবাচক হিসেবে তৈরি করেননি। কিন্তু এর প্রভাব যেন সকল বাঁধ ভেঙে দিচ্ছে। অজান্তেই আমরা পা বাড়াচ্ছি অন্ধকার দিকে। অন্ধকার থেকে সরিয়ে আনতেও তৈরি করা হচ্ছে আরও অনেক অ্যালগরিদম। অর্থাৎ এই ভার্চুয়াল জগত নিয়ন্ত্রণ করার ক্ষমতাও আর নেই আমাদের। অ্যালগরিদমের সাহায্যে কীভাবে পুরো দুনিয়া বদলে যাচ্ছে তারই গল্প শোনানো হবে আজ!
অ্যালগরিদম – সংজ্ঞা ও ইতিহাস
শুরুতে বলা হয়েছে, অ্যালগরিদম শব্দটির অর্থ নির্দেশনা। শব্দটি দেখলে আমরা জটিল মনে করে চোখ ফিরিয়ে নেই, মনে করি শুধু গণিত আর বিজ্ঞানেই এর ব্যবহার। কিন্তু আসলে অ্যালগরিদম আমরা ব্যবহার করছি সবসময়ই। কোনো কাজ সমাধান করার যে ধাপ বা নির্দেশনা সেগুলোই হচ্ছে অ্যালগরিদম। নিচের অ্যালগরিদমটি দেখলেই মোটামুটি একটি ধারণা আসবে।
আমরা মনে করি আধুনিক পৃথিবীতেই অ্যালগরিদম ব্যবহার শুরু হয়েছে। কিন্তু অ্যালগরিদমের ব্যবহার চলে আসছে সহাস্রব্দ ধরে। গণিতবিদ মুহাম্মদ ইবনে মুসা আল খারেজমি অ্যালগরিদম শব্দটি প্রথম ব্যবহার করেন নবম শতাব্দীতে। তিনি হিন্দি-আরবীয় সংখ্যার উপর একটি বই লিখেছিলেন, যা পরবর্তীতে ল্যাটিন ভাষায় রুপান্তর করা হয়। এরপর ল্যাটিন শব্দ algoritmi থেকে আসে Algorithm।
ঐতিহাসিক রেকর্ড ও প্রত্নতাত্ত্বিক নিদর্শন অনুযায়ী প্রথম অ্যালগরিদমের ব্যবহার করেন ব্যবিলনীয়রা। তারা অ্যালগরিদমের সাহায্যে স্কয়ার রুটের মান ও খুব সাধারম হিসেব করতো। ৩০০ খ্রিস্টপূর্বাব্দে ইউক্লিড তার ‘Euclidean Algorithm’ উদ্ভাবন করেন। পরবর্তী শতাব্দীগুলোতে ইসলামি বিশ্ব আরও জটিল ক্রিপ্ট্যালাইসিস, এনক্রিপশন এবং সাইফারের (সংকেত লেখনী) অ্যালগরিদম নিয়ে কাজ করে।
তবে বর্তমানের আধুনিক অ্যালগরিদমের উৎপত্তি হয় শিল্প বিপ্লবের মাঝ থেকে শেষের দিকে। তখন জর্জ বুলি বাইনারি বীজগণিত আবিষ্কার করেন যা আধুনিক কম্পিউটারের ভিত্তি। এরপর অ্যাডা লাভলেস ১৮৪০ সালে প্রথম কম্পিউটার প্রোগ্রাম তৈরি করেন যার মাধ্যমে অ্যালগরিদম প্রবেশ করে আধুনিক জগতে। তবে প্রথম যে মানুষটি অ্যালগরিদমকে অনন্য পর্যায়ে নিয়ে যান তিনি অ্যালান টুরিং। এরপর অলনজো চার্চের ল্যামডা ক্যালকুলাস সংযোজন আধুনিক কম্পিউটার বিজ্ঞানের পথ খুলে দেয়।
অ্যালগরিদম মূলত এক ধরনের প্রোসিডিউর, কিভাবে ধাপে ধাপে একটি কাজ সম্পুর্ণ করা যায়? প্রোগ্রামিং এর ভাষায়, বিভিন্ন বিশেষ বিশেষ সমস্যার সমাধানের জন্য লিখা প্রোসেস গুলি কে অ্যালগরিদম বলা হয় ।।এটাকে আহামরি ভাবে বিশ্লেষণ করার মতো কিছু নেই ।। তবে যে কোনো ভালো প্রোবলেম সলভার / সফটওয়্যার ইঞ্জিনিয়ার /কন্টেস্ট প্রোগ্রামার কোনো প্রোবলেম সমাধানের ক্ষেত্রে সেটা কিভাবে সলভ করবে, কি উপায়ে কোড লিখবে এটা সুন্দর ভাবে সাজিয়ে নেয়, এটাই অ্যালগরিদম ।
একটি অ্যালগরিদমের বৈশিষ্ট্য
যদিও অ্যালগরিদমটি সমস্যার সমাধানের দিকে পরিচালিত বিভিন্ন পদক্ষেপের আদেশিত এবং সসীম সেট হিসাবে পরিচিত , তবে বলা হয় যে এই সমস্যাগুলির প্রকৃতি যে প্রসঙ্গে তারা পাওয়া গেছে তার অনুসারে পরিবর্তিত হয়, এইভাবে সমস্যা রয়েছে রাসায়নিক, গাণিতিক, দার্শনিক, অন্যদের মধ্যে। সুতরাং, এটি বলা যেতে পারে যে এর প্রকৃতি বৈচিত্রময় এবং কম্পিউটার দ্বারা এটি কার্যকর করার প্রয়োজন হয় না। পূর্বে বর্ণিত সমস্ত কিছুর বাইরে, অ্যালগরিদমের এমন বৈশিষ্ট্য রয়েছে যা তারা আজ কী তা নির্ধারণ করার জন্য প্রাথমিক এবং নীচে উল্লেখ করা হবে।
- যে কোনও ধরণের বিভ্রান্তির জন্য জায়গা ছেড়ে যাওয়া এড়াতে অ্যালগরিদমে থাকা গাইডলাইনগুলি অবশ্যই নির্দিষ্ট হতে হবে , এর অর্থ এই যে সম্পর্কিত নির্দেশাবলী যথাযথভাবে অনুসরণ করা উচিত বা বিপরীতভাবে, আপনি যে প্রবাহটিতে নাম নিচ্ছেন তার গ্রাফিক উপস্থাপনা সমাধানটিকে সহজতর করবে না। সঠিক
- এটি অবশ্যই নির্ভুল সংজ্ঞায়িত হতে হবে , যথাসময়ে যথাসম্ভব চেষ্টা করে যথাসময়ে অনুসরণ করার চেষ্টা করা হবে, একই ফলাফলটি পেতে এবং বিপরীত ঘটলে, অ্যালগরিদম নির্ভরযোগ্য হবে না এবং সিদ্ধান্ত নেওয়ার সময় গাইড হিসাবে কাজ করবে না।
- এগুলি সসীম হওয়ার বৈশিষ্ট্যের জন্য পরিচিত , তারা সাধারণত কোনও এক পর্যায়ে শেষ হয় এবং পরে তারা প্রতিটি পদক্ষেপের শেষে ফলাফল ফেলে দেয়। যদি অ্যালগরিদম অনির্দিষ্টকালের জন্য প্রসারিত হয়, এমন কিছু প্রাথমিক পয়েন্টে ফিরে যা কখনই সমাধান করা যায় না, তবে প্যারাডক্স বা পুনরাবৃত্তির সুপরিচিত “লুপ” এর উপস্থিতি রয়েছে।
- পরিশেষে বলা হয় , অ্যালগরিদমের পাঠযোগ্যতা মূল উপাদান, কারণ যদি তার যুক্তিটি বোধগম্য হয় তবে সংশ্লিষ্ট নির্দেশাবলী অনুসরণ করা যায়নি, উপরন্তু, এটি প্রতিটিটিতে পাওয়া টেক্সটের প্রত্যক্ষ, স্পষ্ট এবং ল্যাকোনিক শব্দ যুক্ত করে।
অ্যালগরিদমের উদাহরণ
গণিত গণনার সাধারণ উদাহরণগুলির মধ্যে 2 + 3 = 5 যোগ করার জন্য এবং বিয়োগের জন্য 15-9 = 6 অন্তর্ভুক্ত রয়েছে । সাধারণ অ্যালগরিদমগুলি ভিজ্যুয়ালাইজ করার আরেকটি উপায় হ’ল রান্নাঘরের রেসিপিগুলি যেহেতু তারা একটি নির্দিষ্ট এবং সুশৃঙ্খল প্রক্রিয়া বর্ণনা করে, উদাহরণস্বরূপ, “প্রথমে আপনাকে আধা পাত্র জল গরম করা উচিত, তারপরে আপনার এক চিমটি নুন যোগ করা উচিত এবং শেষ পর্যন্ত গোলমরিচ বীজ এবং শিরা নিষ্কাশন করতে বিভক্ত হতে চলেছে। ” এই মডেলটিতে একটি সূচনা, একটি প্রক্রিয়া এবং একটি সমাপ্তি উপস্থাপিত হয় যা মূলত অ্যালগরিদমকে সংজ্ঞায়িত করে।
অ্যালগরিদম প্রকার
বিশ্বজুড়ে বিদ্যমান বিভিন্ন ধরণের অ্যালগরিদমগুলির মধ্যে, জোর দেওয়া হয় তাদেরকে যেগুলিকে চিহ্নের সিস্টেম অনুসারে শ্রেণিবদ্ধ করা হয় এবং তাদের কাজ অনুসারে অন্যকে to অ্যালগরিদম মূলত কোনও নির্দিষ্ট সমস্যা সমাধানের জন্য সর্বাধিক পরিচিত সমাধান এবং এর কৌশলগুলি এবং এর কার্যকারিতা অনুসারে বিভিন্ন ধরণের রয়েছে যাগুলির মধ্যে গতিশীল, বিপরীত, জন্তু শক্তি, সুযোগবাদী, চিহ্নিতকরণ , এলোমেলো ইত্যাদি উপরে উল্লিখিত অ্যালগরিদমগুলি ছাড়াও, এমন হাজার হাজার রয়েছে যা যে কোনও ক্ষেত্রে সমস্যার সমাধানের জন্য উপযুক্ত।
- গুণগত অ্যালগরিদমগুলি মৌখিক উপাদানগুলির দ্বারা চিহ্নিত করা হয় , এর উদাহরণ হ’ল নির্দেশাবলী বা স্বীকৃত “ধাপে ধাপে” যা মৌখিকভাবে দেওয়া হয়, যেমন রন্ধন শিল্পের রেসিপি বা ম্যানুয়াল কাজ সম্পাদনের পদ্ধতিগুলি procedures
- পরিমাণগত অ্যালগোরিদমগুলি নির্দিষ্ট সংখ্যার উপাদানগুলির উপস্থিতি এবং গণনা সম্পাদনের জন্য গণিতের ব্যবহারের কারণে গুণগতগুলির সম্পূর্ণ বিপরীত হয় , উদাহরণস্বরূপ, যখন বর্গমূল পাওয়া যায় বা সমীকরণগুলি সমাধান করা হয়।
এই শ্রেণিবিন্যাসের মধ্যে রয়েছে গণনামূলক এবং অ-গণনীয় অ্যালগরিদমও । গণনাগুলি কম্পিউটার ব্যবহার করে পরিচালিত হয় এবং একটি মেশিনকে চালিত করার প্রয়োজনের দিক থেকে এত জটিল হয়ে চিহ্নিত করা হয়, এগুলি ছাড়াও, তারা পরিমাণগত অ্যালগোরিদম যা অনুকূলিত হতে পারে। মেশিন বা কম্পিউটার দ্বারা অ-গণনীয়কে মৃত্যুদন্ড কার্যকর করা প্রয়োজন হয় না; এর একটি সুস্পষ্ট উদাহরণ হ’ল একটি টেলিভিশনের প্রোগ্রামিং।
এর কাজ অনুযায়ী
নিম্নলিখিত এই শ্রেণিবদ্ধে অবস্থিত।
পরিশ্রমী উপায়ে দাম নির্ধারণের জন্য অটোমেশন ব্যবহার করে এটি বৈশিষ্ট্যযুক্ত , ব্যবহারকারীর আচরণের মতো বিষয়ের উপর দৃষ্টি নিবদ্ধ করে এবং ব্যবহারকারীদের লাভ বাড়ানোর জন্য মূল্যহীন উপাদানগুলির জন্য দামগুলি স্বয়ংক্রিয়ভাবে নির্ধারণের ক্ষমতা হিসাবেও পরিচিত। বিক্রেতারা এটা তোলে সাধারণ অনুশীলনে একটি খুব গুরুত্বপূর্ণ ভূমিকা পালন করেছে এয়ারলাইন শিল্পের 1990 সাল থেকে।
চিহ্নিতকরণ অ্যালগরিদম ট্র্যাভেল এজেন্সি বা those অনলাইন প্রতিষ্ঠানের উল্লেখ করে অত্যন্ত প্রতিযোগিতামূলক শিল্পগুলির মধ্যে একটি অন্যতম সাধারণ অনুশীলন হয়ে আলাদা হয়। এই ধরণের অ্যালগরিদম অত্যন্ত জটিল বা তুলনামূলকভাবে সহজ হয়ে উঠতে পারে, যেহেতু অনেক ক্ষেত্রে দেখা যায় যে তারা নির্দিষ্ট পরীক্ষার ধারাবাহিকতা সহ অনুকূলিত বা স্ব-শিক্ষিত taught এই সমস্ত কিছুর বাইরেও, ট্যাগিং অ্যালগরিদমগুলি ক্লায়েন্টেলের সাথেও অপ্রিয় হয়ে উঠতে পারে কারণ ব্যক্তিরা স্থায়িত্ব এবং ন্যায্যতা উভয়কেই মূল্য দেয়।
2. সম্ভাব্য অ্যালগরিদম
তারা হ’ল ফলগুলি যেভাবে পাওয়া যায় তা সম্ভাবনার উপর নির্ভর করে, এগুলি সাধারণত র্যান্ডম অ্যালগরিদম হিসাবে পরিচিত।
কিছু অ্যাপ্লিকেশনগুলিতে, এই ধরণের অপারেশন পরিচালনা করা সাধারণ, উদাহরণস্বরূপ, যখন কোনও বিদ্যমান বা উদ্ভাবিত সিস্টেমের আচরণ সময়ের সাথে সাথে সিমুলেট করা হয়, যার ফলস্বরূপ একটি ফলস্বরূপ সমাধান পাওয়া যায় । অন্যান্য পরিস্থিতিতে, সমস্যার সমাধান করার সমস্যাটি সাধারণত নিয়ন্ত্রক, তবে সম্ভাব্যতা অ্যালগরিদম প্রয়োগ করে সমাধান করার জন্য এটি একটি ভাগ্যবান রূপে রূপান্তরিত হওয়ার সম্ভাবনা রয়েছে। এলোমেলো বিষয়গুলির সম্পর্কে ইতিবাচক বিষয় হ’ল তাদের প্রয়োগের জন্য খুব পরিশীলিত গাণিতিক অধ্যয়নের প্রয়োজন হয় না।
এছাড়াও, এই গোষ্ঠীর মধ্যে তিনটি প্রধান প্রকার রয়েছে যা সংখ্যাসূচক, মন্টে কার্লো এবং লাস ভেগাস নামে পরিচিত।
- সংখ্যার অ্যালগোরিদমগুলি সমস্যার একটি আনুমানিক ফলাফল সরবরাহ করতে পারে এবং সাধারণত ইঞ্জিনিয়ারিংয়ে প্রয়োগ করা হয়।
- মন্টি কার্লো অ্যালগরিদম সঠিক বা ভুল সমাধান দিতে পারে এবং একটি নির্দিষ্ট প্রান্তিক ত্রুটি থাকতে পারে এবং শেষ পর্যন্ত।
- লাস ভেগাস অ্যালগরিদমগুলি কোনও ভুল উত্তর না রেখে পৃথক করা হয়, আসলে, তারা সঠিক সমাধান খুঁজে পায় বা কেবল সম্ভাব্য ব্যর্থতা সম্পর্কে আপনাকে অবহিত করে।
ডায়নামিক প্রোগ্রামিং সেই পদ্ধতিটিকে বোঝায় যেখানে অ্যালগরিদম ফলাফলগুলি গণনা করে। কখনও কখনও, সমস্যা রয়েছে এমন কিছু উপাদানগুলির সমাধানগুলি অন্যান্য ছোট সমস্যার ফলাফলের উপর নির্ভর করে। সুতরাং, এগুলি সমাধান করার জন্য, ক্ষুদ্রতর সাব-সমস্যাগুলি সমাধান করার জন্য একই মানগুলি পুনরায় গণনা করতে হবে, তবে এটি চক্রের অপচয় করতে পারে can এটি ঠিক করার জন্য, ডায়নামিক প্রোগ্রামিং ব্যবহার করা যেতে পারে এবং এক্ষেত্রে প্রতিটি সাবপ্রব্লেমের সমাধান মনে রাখা হয়, বেশ কয়েকবার পুনরাবৃত্তি না করে একই মানটি ব্যবহার করতে।
৩. হিউরিস্টিক অ্যালগরিদম
সমাধানগুলি সন্ধানের মাধ্যমে তারা পৃথক হয় এবং এমনকি তারা গ্যারান্টি দেয় না যে উত্তরগুলির মধ্যে সবচেয়ে ভাল পাওয়া যাবে, এই কারণে, তারা আনুমানিক অ্যালগরিদম হিসাবে বিবেচিত হতে পারে । এগুলি ব্যবহার করা যেতে পারে যখন কোনও সাধারণ রুটের মাধ্যমে সমাধান খুঁজে পাওয়া অসম্ভব বলে মনে করা হয়। হিউরিস্টিক্সগুলি ব্যবহারগুলি সরবরাহ করে যা নীচে ব্যাখ্যা করা হবে। ইন পরিকল্পনা , তারা অল্প সময়ের মধ্যে তফসিল কার্যক্রম করতে ব্যবহার করা হয় নকশা তারা বৈদ্যুতিক বা ডিজিটাল সিস্টেম অঙ্কিত করার জন্য ব্যবহার করা হয় এবং সিমুলেশন তারা নির্দিষ্ট পদ্ধতি যাচাই করার জন্য ব্যবহার করা হয়।
4. ব্যাকট্র্যাকিং অ্যালগোরিদম
তারা পুনরাবৃত্ত কৌশল হিসাবে পরিচিত যা ধাঁধা, ম্যাজস বা অনুরূপ টুকরোগুলির মতো সমস্যার সমাধান করে , যার মধ্যে একটি সম্ভাব্য সমাধান খুঁজতে গভীর অনুসন্ধান চালানো হয়। এর নামটি এই ফলাফলটিকে বোঝায় যে ফলাফলগুলি অনুসন্ধানের জন্য অনুসন্ধানগুলিতে বিকল্পগুলি পরীক্ষা করতে সক্ষম হওয়ার জন্য এটি সর্বদা পূর্ববর্তী পয়েন্টে ফিরে যায়। এগুলি সাধারণত অর্থনীতিতে, বাজারে, মূল্য চিহ্নিতকরণে, নির্দিষ্ট ক্রিয়াকলাপে এবং এমনকি সমাজে নিজেই তাদের প্রভাব পর্যবেক্ষণ করতে প্রত্যাখ্যান করা হয়।
5. লোভী অ্যালগরিদম
এটি ধ্বংসকারী বা মিষ্টি দাঁত হিসাবে পরিচিত এবং এটি অপ্টিমাইজেশান সমস্যার ক্ষেত্রে প্রযোজ্য , এই অ্যালগরিদমের প্রতিটি ধাপে একটি যৌক্তিক এবং অনুকূল পছন্দটি বিশ্বব্যাপী সমাধানগুলির সর্বোত্তম সমাধানের সাথে সমাপ্ত করার জন্য তৈরি করা হয়। যাইহোক, এটি অবশ্যই বিবেচনায় নেওয়া উচিত যে একবার রায় পৌঁছে গেলে ভবিষ্যতে এটি সংশোধন বা পরিবর্তন করার জন্য একেবারে কিছুই করা যায় না। এই অপারেশনের এই নামটি রয়েছে কারণ প্রতিটি পদক্ষেপে “গিলতে” সক্ষম এমন সেরা ভগ্নাংশটি পরে কী হবে তা চিন্তা না করেই বেছে নেওয়া হয়।