আমাদের বিশ্বের সবকিছুই কিছু আইন ও নিয়মের অধীন। আধুনিক বিজ্ঞান স্থির থাকে না, যার কারণে মানবজাতি অনেক সূত্র এবং অ্যালগরিদম জানে, যার অনুসরণ করে, আপনি প্রকৃতির দ্বারা সৃষ্ট অনেকগুলি ক্রিয়া এবং কাঠামো গণনা করতে এবং পুনরায় তৈরি করতে পারেন এবং মানুষের উদ্ভাবিত ধারণাগুলিকে জীবিত করতে পারেন৷
এই নিবন্ধে আমরা অ্যালগরিদমের মৌলিক ধারণাগুলো বিশ্লেষণ করব।
অ্যালগরিদমের উত্থানের ইতিহাস
অ্যালগরিদম - একটি ধারণা যা XII শতাব্দীতে আবির্ভূত হয়েছিল। "অ্যালগরিদম" শব্দটি নিজেই বিখ্যাত মধ্যপ্রাচ্যের গণিতবিদ মুহাম্মদ আল-খোয়ারিজমির নামের ল্যাটিন ব্যাখ্যা থেকে এসেছে, যিনি "অন ইন্ডিয়ান কাউন্টিং" বইটি লিখেছেন। এই বইটি বর্ণনা করে কিভাবে সঠিকভাবে আরবি সংখ্যা ব্যবহার করে প্রাকৃতিক সংখ্যা লিখতে হয় এবং এই ধরনের সংখ্যার উপর একটি কলাম সহ অ্যালগরিদম বর্ণনা করে৷
দ্বাদশ শতাব্দীতে, "অন দ্য ইন্ডিয়ান অ্যাকাউন্ট" বইটি ল্যাটিন ভাষায় অনুবাদ করা হয়েছিল এবং তারপরে এই সংজ্ঞাটি প্রকাশিত হয়েছিল৷
মানুষ এবং মেশিনের সাথে অ্যালগরিদমের মিথস্ক্রিয়া
সৃষ্টিঅ্যালগরিদমের জন্য একটি সৃজনশীল পদ্ধতির প্রয়োজন, তাই শুধুমাত্র একটি জীবিত প্রাণীই অনুক্রমিক ক্রিয়াগুলির একটি নতুন তালিকা তৈরি করতে পারে। কিন্তু বিদ্যমান নির্দেশাবলী কার্যকর করার জন্য, এটি একটি কল্পনার প্রয়োজন হয় না, এমনকি আত্মাহীন প্রযুক্তি এটি পরিচালনা করতে পারে৷
প্রদত্ত নির্দেশ অনুসরণ করার একটি চমৎকার উদাহরণ হল একটি খালি মাইক্রোওয়েভ ওভেন যা এর ভিতরে খাবারের অনুপস্থিতি সত্ত্বেও কাজ করতে থাকে।
একটি বিষয় বা একটি বস্তু যার অ্যালগরিদমের সারাংশ বোঝার প্রয়োজন নেই তাকে একটি আনুষ্ঠানিক নির্বাহক বলা হয়। একজন ব্যক্তি একটি আনুষ্ঠানিক নির্বাহকও হতে পারেন, তবে ঘটনাটি যে এক বা অন্য একটি কাজ অলাভজনক হয়, একজন চিন্তাশীল নির্বাহক তার নিজের উপায়ে সবকিছু করতে পারেন। অতএব, প্রধান পারফর্মার হল কম্পিউটার, মাইক্রোওয়েভ ওভেন, টেলিফোন এবং অন্যান্য সরঞ্জাম। কম্পিউটার বিজ্ঞানে অ্যালগরিদমের ধারণাটি অত্যন্ত গুরুত্বপূর্ণ। প্রতিটি অ্যালগরিদম একটি নির্দিষ্ট বিষয়ের প্রত্যাশার সাথে সংকলিত হয়, অনুমতিযোগ্য ক্রিয়াকলাপ বিবেচনায় নিয়ে। যে বস্তুগুলিতে বিষয় নির্দেশাবলী প্রয়োগ করতে পারে সেগুলি নির্বাহকের পরিবেশ গঠন করে৷
আমাদের বিশ্বের সবকিছুই কিছু আইন ও নিয়মের অধীন। আধুনিক বিজ্ঞান স্থির থাকে না, যার জন্য মানবজাতি অনেকগুলি সূত্র এবং অ্যালগরিদম জানে, যার অনুসরণ করে আপনি প্রকৃতির অনেক ক্রিয়া এবং সৃষ্টিকে গণনা করতে এবং পুনরায় তৈরি করতে পারেন এবং মানুষের দ্বারা উদ্ভাবিত ধারণাগুলিকে জীবিত করতে পারেন। এই নিবন্ধে, আমরা অ্যালগরিদমের মৌলিক ধারণাগুলি বিশ্লেষণ করব৷
অ্যালগরিদম কি?
আমাদের জীবনে আমরা যে সমস্ত ক্রিয়াকলাপ করি তার বেশিরভাগের জন্য কিছু নিয়ম মেনে চলার প্রয়োজন হয়। একজন ব্যক্তির কতটা সঠিক ধারণা রয়েছে তা থেকেতাকে কী, কীভাবে এবং কী ক্রমানুসারে করা উচিত, তার উপর অর্পিত কাজের গুণমান এবং ফলাফলের উপর নির্ভর করে। শৈশবকাল থেকেই, পিতামাতারা তাদের সন্তানের মধ্যে প্রধান ক্রিয়াকলাপের জন্য একটি অ্যালগরিদম বিকাশ করার চেষ্টা করছেন, উদাহরণস্বরূপ: ঘুম থেকে উঠুন, বিছানা তৈরি করুন, আপনার দাঁত ধুয়ে ফেলুন এবং ব্রাশ করুন, ব্যায়াম করুন, প্রাতঃরাশ করুন ইত্যাদি, একজন ব্যক্তি যে তালিকাটি করেন। তার সারা জীবন সকালকেও এক ধরনের অ্যালগরিদম হিসেবে বিবেচনা করা যেতে পারে।
একটি অ্যালগরিদম এমন একটি ধারণা যা নির্দেশের একটি সেটকে বোঝায় যা একটি নির্দিষ্ট সমস্যা সমাধানের জন্য একজন ব্যক্তিকে অনুসরণ করতে হবে।
সাধারণত, অ্যালগরিদমের অনেকগুলি সংজ্ঞা রয়েছে, অনেক বিজ্ঞানী একে আলাদাভাবে চিহ্নিত করেছেন৷
যদি একজন ব্যক্তির দ্বারা প্রতিদিন ব্যবহৃত অ্যালগরিদমটি প্রত্যেকের জন্য আলাদা হয়, এবং বয়স এবং পরিস্থিতির উপর নির্ভর করে পরিবর্তিত হতে পারে যেখানে অভিনয়শিল্পী নিজেকে খুঁজে পান, তাহলে একটি গাণিতিক সমস্যা সমাধানের জন্য যে ক্রিয়াগুলি সম্পাদন করতে হবে বা প্রযুক্তি ব্যবহার করা সবার জন্য একই এবং সর্বদা একই থাকে৷
একটি অ্যালগরিদমের একটি ভিন্ন ধারণা রয়েছে, অ্যালগরিদমের ধরনগুলিও আলাদা - উদাহরণস্বরূপ, একজন ব্যক্তি যিনি একটি লক্ষ্য অনুসরণ করেন এবং প্রযুক্তির জন্য৷
আমাদের তথ্য প্রযুক্তির যুগে, লোকেরা প্রতিদিন তাদের আগে অন্য লোকেদের দ্বারা তৈরি করা নির্দেশাবলীর একটি সেট অনুসরণ করে, কারণ প্রযুক্তি ব্যবহার করার সময় একটি সিরিজের ক্রিয়াগুলির সুনির্দিষ্ট সম্পাদনের প্রয়োজন হয়। অতএব, স্কুলে শিক্ষকদের প্রধান কাজ হল শিশুদের কীভাবে অ্যালগরিদম ব্যবহার করতে হয়, বর্তমান পরিস্থিতি অনুসারে বিদ্যমান নিয়মগুলি দ্রুত উপলব্ধি করা এবং পরিবর্তন করা শেখানো। অ্যালগরিদমের গঠন সেইগুলির মধ্যে একটিধারণা, যা প্রতিটি স্কুলে গণিত এবং কম্পিউটার বিজ্ঞানের পাঠে অধ্যয়ন করা হয়৷
অ্যালগরিদমের মৌলিক বৈশিষ্ট্য
1. বিচক্ষণতা (ব্যক্তিগত ক্রিয়াকলাপের ক্রম) - যেকোনো অ্যালগরিদমকে সরল ক্রিয়াগুলির একটি সিরিজ হিসাবে উপস্থাপন করা উচিত, যার প্রতিটি পূর্ববর্তীটি সম্পূর্ণ হওয়ার পরে শুরু হওয়া উচিত।
2. নিশ্চিততা - অ্যালগরিদমের প্রতিটি ক্রিয়া এত সহজ এবং পরিষ্কার হওয়া উচিত যে পারফর্মারের কোনও প্রশ্ন নেই এবং কর্মের স্বাধীনতা নেই৷
৩. দক্ষতা - অ্যালগরিদমের বর্ণনা পরিষ্কার এবং সম্পূর্ণ হওয়া উচিত, যাতে সমস্ত নির্দেশাবলী কার্যকর করার পরে, কাজটি তার যৌক্তিক শেষ পর্যন্ত পৌঁছায়।
৪. ভর অক্ষর - অ্যালগরিদম একটি সম্পূর্ণ শ্রেণীর সমস্যার জন্য প্রযোজ্য হওয়া উচিত, যা শুধুমাত্র অ্যালগরিদমের সংখ্যা পরিবর্তন করে সমাধান করা যেতে পারে। যদিও একটি মতামত রয়েছে যে শেষ বিন্দুটি অ্যালগরিদমের ক্ষেত্রে প্রযোজ্য নয়, তবে সাধারণভাবে সমস্ত গাণিতিক পদ্ধতিতে প্রযোজ্য।
প্রায়শই স্কুলে, বাচ্চাদের অ্যালগরিদম সম্পর্কে আরও ভাল বোঝার জন্য, শিক্ষকরা রান্নার বই থেকে রান্না করা, প্রেসক্রিপশন থেকে ওষুধ তৈরি করা বা মাস্টার ক্লাসের উপর ভিত্তি করে সাবান তৈরির প্রক্রিয়া তৈরির উদাহরণ ব্যবহার করেন। যাইহোক, অ্যালগরিদমের দ্বিতীয় বৈশিষ্ট্যটি বিবেচনায় নিয়ে, যা বলে যে অ্যালগরিদমের প্রতিটি আইটেম এতটা স্পষ্ট হতে হবে যে এটি একেবারে যে কোনও ব্যক্তি এবং এমনকি একটি মেশিন দ্বারা সঞ্চালিত হতে পারে, আমরা এই উপসংহারে পৌঁছাতে পারি যে কোনও প্রক্রিয়ার জন্য কমপক্ষে কিছু ধরণের প্রয়োজন। কল্পনার, অ্যালগরিদম নামকরণ করা যাবে না। এবং রান্না এবং সূঁচের কাজের জন্য নির্দিষ্ট দক্ষতা এবং একটি উন্নত কল্পনাশক্তি প্রয়োজন।
বিভিন্ন ধরনের অ্যালগরিদম আছে,তবে তিনটি প্রধান।
চক্রীয় অ্যালগরিদম
এই প্রকারে, কিছু আইটেম কয়েকবার পুনরাবৃত্তি হয়। লক্ষ্য অর্জনের জন্য যে ক্রিয়াগুলি পুনরাবৃত্তি করতে হবে তার তালিকাকে অ্যালগরিদমের বডি বলা হয়৷
লুপের পুনরাবৃত্তি হল লুপের মূল অংশে অন্তর্ভুক্ত সমস্ত আইটেমগুলি সম্পাদন করা।লুপের যে অংশগুলি ক্রমাগত নির্দিষ্ট সংখ্যক বার কার্যকর করা হয় তাকে একটি নির্দিষ্ট সংখ্যা সহ লুপ বলা হয় পুনরাবৃত্তির।
চক্রের যে অংশগুলি, যেগুলির ফ্রিকোয়েন্সি অনেকগুলি অবস্থার উপর নির্ভর করে, তাকে বলা হয় অনিশ্চিত।
সরল ধরনের চক্র স্থির।
দুই ধরনের সাইক্লিক অ্যালগরিদম আছে:
- পূর্ব শর্ত সহ লুপ। এই ক্ষেত্রে, লুপের বডি এটি কার্যকর করার আগে তার অবস্থা পরীক্ষা করে।
- একটি পোস্ট কন্ডিশন সহ একটি লুপ। একটি পোস্টকন্ডিশন সহ একটি লুপে, লুপ শেষ হওয়ার পরে শর্তটি পরীক্ষা করা হয়৷
রৈখিক ধরনের অ্যালগরিদম
এই ধরনের সার্কিটগুলির নির্দেশনাগুলি যে ক্রমানুসারে উপস্থাপন করা হয় সে অনুসারে একবার কার্যকর করা হয়। উদাহরণস্বরূপ, একটি বিছানা তৈরি বা দাঁত ব্রাশ করার প্রক্রিয়াটিকে একটি লিনিয়ার অ্যালগরিদম হিসাবে বিবেচনা করা যেতে পারে। এই ধরনের গাণিতিক উদাহরণগুলিও অন্তর্ভুক্ত করে, যেখানে শুধুমাত্র যোগ এবং বিয়োগের ক্রিয়াকলাপ রয়েছে৷
শাখা অ্যালগরিদম
একটি শাখার ধরনে বেশ কয়েকটি বিকল্প রয়েছে, কোনটি প্রয়োগ করা হবে তা শর্তের উপর নির্ভর করে।
উদাহরণ। প্রশ্ন: "বৃষ্টি হচ্ছে?" উত্তর বিকল্প: "হ্যাঁ" বা "না"। যদি একটি"হ্যাঁ" - ছাতা খুলুন, যদি "না" - ছাতাটি ব্যাগে রাখুন।
অক্সিলিয়ারি অ্যালগরিদম
অক্সিলিয়ারি অ্যালগরিদম অন্য অ্যালগরিদমে শুধুমাত্র নাম উল্লেখ করে ব্যবহার করা যেতে পারে।
অ্যালগরিদমে পাওয়া শর্তাদি
শর্তটি "যদি" এবং "তারপর" শব্দের মধ্যে।
উদাহরণস্বরূপ: আপনি যদি ইংরেজি জানেন, তাহলে একটি চাপুন। এই বাক্যে, "আপনি ইংরেজি জানেন" বাক্যাংশের অংশটি শর্ত হবে।
ডেটা এমন তথ্য যা একটি নির্দিষ্ট শব্দার্থিক লোড বহন করে এবং এমনভাবে উপস্থাপিত হয় যাতে এটি প্রেরণ করা যায় এবং এই অ্যালগরিদমের জন্য ব্যবহার করা যায়।
অ্যালগরিদমিক প্রক্রিয়া - নির্দিষ্ট ডেটা ব্যবহার করে একটি অ্যালগরিদম অনুযায়ী সমস্যা সমাধান করা।
অ্যালগরিদমের গঠন
অ্যালগরিদমের একটি ভিন্ন কাঠামো থাকতে পারে। একটি অ্যালগরিদম বর্ণনা করার জন্য, যার ধারণাটি তার গঠনের উপরও নির্ভর করে, আপনি বিভিন্ন উপায় ব্যবহার করতে পারেন, উদাহরণস্বরূপ: মৌখিক, গ্রাফিক, একটি বিশেষভাবে উন্নত অ্যালগরিদমিক ভাষা ব্যবহার করে৷
কোন পদ্ধতি ব্যবহার করা হবে তা বিভিন্ন বিষয়ের উপর নির্ভর করে: কাজের জটিলতা, সমস্যা সমাধানের প্রক্রিয়াটি কতটা বিস্তারিত হওয়া প্রয়োজন ইত্যাদি।
অ্যালগরিদমের গ্রাফিক সংস্করণ
গ্রাফিক অ্যালগরিদম - এমন একটি ধারণা যা নির্দিষ্ট জ্যামিতিক আকার অনুসারে একটি নির্দিষ্ট সমস্যা সমাধানের জন্য সঞ্চালিত ক্রিয়াগুলির পচন বোঝায়৷
গ্রাফিক ডায়াগ্রাম এলোমেলোভাবে দেখানো হয় না। যাতে তারা সক্ষম হয়যেকোনো ব্যক্তিকে বোঝার জন্য, ফ্লোচার্ট এবং নাসি-শ্নেইডারম্যান স্ট্রাকটোগ্রামগুলি প্রায়শই ব্যবহৃত হয়৷
এছাড়াও, ব্লক ডায়াগ্রামগুলি GOST-19701-90 এবং GOST-19.003-80 অনুসারে আঁকা হয়।
- বেসিক। একটি সমস্যা সমাধান করার সময় ডেটা প্রক্রিয়া করার জন্য প্রয়োজনীয় ক্রিয়াকলাপগুলি নির্দেশ করতে প্রধান চিত্রগুলি ব্যবহার করা হয়৷
- সহায়ক। সমস্যা সমাধানের উপাদানগুলি সবচেয়ে গুরুত্বপূর্ণ নয়, ব্যক্তিগত নির্দেশ করার জন্য সহায়ক চিত্রগুলি প্রয়োজন৷
গ্রাফিকাল অ্যালগরিদমে, ডেটা উপস্থাপন করতে ব্যবহৃত জ্যামিতিক আকারগুলিকে ব্লক বলা হয়।
সমস্ত ব্লকগুলি "উপর থেকে নীচে" এবং "বাম থেকে ডানে" ক্রমানুসারে যায় - এটি সঠিক প্রবাহের দিক। সঠিক ক্রম সহ, ব্লকগুলিকে একে অপরের সাথে সংযোগকারী লাইনগুলি দিক নির্দেশ করে না। অন্যান্য ক্ষেত্রে, রেখার দিক তীর দ্বারা নির্দেশিত হয়।
একটি সঠিক অ্যালগরিদম স্কিমে প্রসেসিং ব্লক থেকে একের বেশি প্রস্থান এবং লজিক্যাল অপারেশন এবং কন্ডিশন চেকিংয়ের জন্য দায়ী ব্লক থেকে দুটির কম এক্সিট থাকা উচিত নয়।
কিভাবে একটি অ্যালগরিদম সঠিকভাবে তৈরি করবেন?
অ্যালগরিদমের কাঠামো, উপরে উল্লিখিত হিসাবে, অবশ্যই GOST অনুযায়ী তৈরি করা উচিত, অন্যথায় এটি অন্যদের কাছে বোধগম্য এবং অ্যাক্সেসযোগ্য হবে না।
সাধারণ রেকর্ডিং পদ্ধতিতে নিম্নলিখিত আইটেমগুলি অন্তর্ভুক্ত রয়েছে:
যে নামটির মাধ্যমে এটি পরিষ্কার হবে যে এই স্কিমটি ব্যবহার করে কী সমস্যা সমাধান করা যেতে পারে।
প্রতিটি অ্যালগরিদমের একটি সুস্পষ্টভাবে চিহ্নিত শুরু এবং শেষ থাকতে হবে৷
অ্যালগরিদমসমস্ত ডেটা, ইনপুট এবং আউটপুট উভয়ই স্পষ্টভাবে এবং স্পষ্টভাবে বর্ণনা করা আবশ্যক৷
একটি অ্যালগরিদম কম্পাইল করার সময়, একজনকে এমন ক্রিয়াগুলি নোট করা উচিত যা নির্বাচিত ডেটাতে সমস্যা সমাধানের জন্য প্রয়োজনীয় ক্রিয়া সম্পাদন করতে দেয়৷ অ্যালগরিদমের আনুমানিক দৃশ্য:
- চেমার নাম।
- ডেটা।
- শুরু।
- টিম।
- শেষ।
সার্কিটের সঠিক নির্মাণ অ্যালগরিদমগুলির গণনাকে ব্যাপকভাবে সহজ করবে৷
অ্যালগরিদমের বিভিন্ন কর্মের জন্য দায়ী জ্যামিতিক আকার
অনুভূমিক ডিম্বাকৃতি - শুরু এবং শেষ (শেষ চিহ্ন)।
অনুভূমিক আয়তক্ষেত্র - গণনা বা অন্যান্য ক্রিয়া (প্রক্রিয়া চিহ্ন)।
অনুভূমিক সমান্তরাল - ইনপুট বা আউটপুট (ডেটা সাইন)।
অনুভূমিক রম্বস - শর্ত পরীক্ষা (সিদ্ধান্ত চিহ্ন)।
দীর্ঘায়িত, অনুভূমিক ষড়ভুজ - পরিবর্তন (প্রস্তুতির চিহ্ন)।
অ্যালগরিদম মডেলগুলি নীচে দেখানো হয়েছে৷
অ্যালগরিদম নির্মাণের সূত্র-মৌখিক সংস্করণ।
ফর্মুলা-মৌখিক অ্যালগরিদমগুলি একটি নির্বিচারে লেখা হয়, যে অঞ্চলের কাজটি তার পেশাদার ভাষায়। এইভাবে কর্মের বর্ণনা শব্দ এবং সূত্র ব্যবহার করে করা হয়৷
কম্পিউটার সায়েন্সে অ্যালগরিদমের ধারণা
কম্পিউটার ক্ষেত্রে, সবকিছুই অ্যালগরিদমের উপর ভিত্তি করে। একটি বিশেষ কোড আকারে প্রবেশ করা স্পষ্ট নির্দেশাবলী ছাড়া, কোন কৌশল কাজ করবে না বাকার্যক্রম. কম্পিউটার বিজ্ঞানের পাঠে, শিক্ষার্থীরা অ্যালগরিদমের প্রাথমিক ধারণা দেওয়ার চেষ্টা করছে, কীভাবে সেগুলি ব্যবহার করতে হয় এবং সেগুলি নিজেরাই তৈরি করতে হয় তা শেখান৷
কম্পিউটার বিজ্ঞানে অ্যালগরিদম তৈরি করা এবং ব্যবহার করা একটি আরও সৃজনশীল প্রক্রিয়া, উদাহরণস্বরূপ, গণিতের একটি সমস্যা সমাধানের জন্য নির্দেশাবলী অনুসরণ করা।
এছাড়া একটি বিশেষ প্রোগ্রাম "অ্যালগরিদম" রয়েছে যা প্রোগ্রামিংয়ের ক্ষেত্রে অজ্ঞ ব্যক্তিদের তাদের নিজস্ব প্রোগ্রাম তৈরি করতে সহায়তা করে। যারা কম্পিউটার বিজ্ঞানে তাদের প্রথম পদক্ষেপ নিচ্ছেন এবং তাদের নিজস্ব গেম বা অন্য কোন প্রোগ্রাম তৈরি করতে চান তাদের জন্য এই ধরনের সম্পদ একটি অপরিহার্য সহকারী হয়ে উঠতে পারে।
অন্যদিকে, যেকোনো প্রোগ্রাম একটি অ্যালগরিদম। কিন্তু যদি অ্যালগরিদম শুধুমাত্র সেই ক্রিয়াগুলি বহন করে যা তার ডেটা সন্নিবেশ করে সম্পাদন করা প্রয়োজন, তাহলে প্রোগ্রামটি ইতিমধ্যেই সমাপ্ত ডেটা বহন করে। আরেকটি পার্থক্য হল যে প্রোগ্রামটি পেটেন্ট এবং ব্যক্তিগত সম্পত্তি হতে পারে, কিন্তু অ্যালগরিদম নয়। একটি অ্যালগরিদম একটি প্রোগ্রামের চেয়ে একটি বিস্তৃত ধারণা৷
উপসংহার
এই নিবন্ধে, আমরা একটি অ্যালগরিদমের ধারণা এবং এর প্রকারগুলি বিশ্লেষণ করেছি, শিখেছি কীভাবে গ্রাফিক স্কিমগুলি সঠিকভাবে লিখতে হয়৷