Go ahead

Go ahead
Logic doesn't explain everything

শনিবার, ১০ ডিসেম্বর, ২০১৬

অ্যালগোরিদমের হাতেখড়ি

অ্যালগোরিদম কি?
আমরা যে কাজই করি না কেন, কিছু নির্দিষ্ট ধাপ অবলম্বন করে করি।আর এই ধাপগুলোর সমষ্টি অ্যালগোরিদম। আর কম্পিউটার অ্যালগোরিদম হল কম্পিউটার যে সুনির্দিষ্ট উপায়ে কোন সুনির্দিষ্ট কাজ করে।
কিন্তু কথা হচ্ছে কম্পিউটার কি আসলেই নিজে থেকে কিছু করতে পারে। উত্তর হচ্ছে পারে না। আমারাই কম্পিউটার কে শিখিয়ে দিই কোন উপায়ে কাজটি করতে হবে।তাহলে বোঝা যাচ্ছে আমরা যত ভালোভাবে কম্পিউটার কে নির্দেশনা দিতে পারব তত নির্ভুল ও দক্ষভাবে আমাদের কাজটি সে করে দিবে। তো আমরা যে অ্যালগোরিদম ডিজাইন করব অবশ্যই তার কিছু বৈশিষ্ট্য থাকতে হবে। যেমন-
·         আপনাকে অবশ্যই কিছু না কিছু ইনপুট দিতে হবে। ইনপুট দিবেন না , আউটপুট আশা করবেন , তা হবে না তা হবে না।
·         আপনি ইনপুট দিয়ে আউট পুট পেলেন না , তাইলে অমন অ্যালগোরিদম ডিজাইন করার কি দরকার বলেন ? অর্থাৎ আপনার অ্যালগোরিদমের অবশ্যই আউট পুট দেবার ক্ষমতা থাকতে হবে।
·         আপনার নির্দেশনা স্পষ্ট হতে হবে তার মানে হল কি করতে হবে সেটা একদম ক্লিয়ার- কাট হতে হবে।
·         আর হ্যাঁ আপনার অ্যালগোরিদম কে কিন্তু সময়ের দিকে খেয়াল রাখতে হবে। এমন অ্যালগোরিদম ডিজাইন করলেন যার আউট পুট পেতে পেতে হাই উঠে যায়, সকাল গড়িয়ে সন্ধ্যা হয়ে যায় তাইলে তো চলবে না , তাই না বলেন? অলস অ্যালগোরিদম চলবে না, চৌকশ অ্যালগোরিদম ডিজাইন করুন।
অ্যালগোরিদম কেন দরকার?
আপনি কোন কিছু জানার দরকার পড়লে কি করেন?অনেক ধরনের উত্তর আসতে পারে।সহজতম উত্তর হল ইন্টারনেট সার্চ। মুহূর্তের মধ্যে এত এত তথ্যের মধ্যে থেকে আপনার প্রয়োজনীয় টা সার্চ ইঞ্জিন গুলো কিভাবে আপনার সামনে তুলে ধরে।অত্যন্ত চৌকস অ্যালগোরিদম এর কারনেই এটা সম্ভব।
আবার ধরুন আপনাকে বাংলাদেশ সরকার আদমশুমারির দায়িত্ব দিল।তারপর আপনাকে বলল ছোট থেকে বড় বয়স অনুযায়ী সাজাতে।এদের মধ্যে কতজন ২০ থেকে ২৫ বছরের মধ্যে?সেই ২০-২৫ বছরের বয়সীদের মধ্যে কতজনের নাম মেহমাত? ভাবুন তো এত বিশাল কাজ কি আদৌ নির্দিষ্ট সময়ে করা সম্ভব।
এভাবে ভাবতে থাকুন নিজেই খুজে পাবেন অ্যালগোরিদম জানার ও শেখার প্রয়োজন কেন ও কতটা?
অ্যালগোরিদম কিভাবে বর্ণনা করব?
অ্যালগোরিদম সাধারন ভাষা(বাংলা, ইংরেজি) দিয়ে বর্ণনা করা যায় অথবা ফ্লো-চার্ট দিয়েও প্রকাশ করা যায় অথবা সুডোকোড ব্যাবহার করা যেতে পারে।
আচ্ছা ধরুন আমরা 1 + 2 + 3 + ………. + n পর্যন্ত যোগফল নির্ণয়ের জন্য অ্যালগোরিদম ডিজাইন করব।নিম্নে তিন উপায়ে দেখানো হল কিভাবে এই অ্যালগোরিদম টা প্রকাশ করা যায়ঃ
1.      Using English Language:

Step - i. Summation ß 0
Step - ii. Present number ß 1
Step – iii. Is present number <= n?
Step – iv. If answer is ‘yes’ of the question of step – iii, then Summation ß Summation + present number
Step – v. present number ß present number + 1
Step – vi. Go to step – iii
Step – vii. If answer is ‘no’ of the question of step – iii, then prints the summation

2.      Using pseudocode:

Determine_SUM(n)
{
sum: = 0;
            for present_number: = 1 to n do
            {
                        sum = sum + present_num;
            }
            return sum;
}




                       

3.      Using flowchart:
Description of Algorithm


কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন