অ্যালগরিদম নিয়ে কিছু কথা, অ্যালগরিদম কাহারে বলে ?

সন্তু আর জোজো দুই বন্ধু। একদিন তারা গাছের উপর বসে আছে। ঝিরিঝিরি বাতাস, গাছের ডালে শান্তিপূর্ণ পরিবেশ। সন্তুর হাতে দুটো আপেল। জোজোর হাতে একটা চাকু।
হঠাৎ কি মনে করে সন্তু বলল, “দে দেখি তোর চাকুটা, আপেল কাঁটি।“জোজা চাকুটা এগিয়ে দিল, “দশটা টুকরা কর দেখি।““দশটা টুকরো কেন?”“বাবা যে গতমাসে স্পেনে গিয়েছিল, সেখানে ফুটবলার রোনালদো এসেছিল হাত দেখাতে। রোনালদোই বলেছে আপেল দশ টুকরো করে খাওয়া স্বাস্থ্যকর।
“আপাতত আপনাদের কাছে আমার প্রশ্ন, “সন্তু কেমন করে আপেলটাকে দশটা টুকরো করবে ?” আমি জানি আপনাদের মাঝে কেউ কেউ বলবেন, “এইটা কেমন ফালতু প্রশ্ন ? সন্তু কি তোমার মত বেকুব নাকি যে আপেল দশটা টুকরা করতে পারবে না?”
কিন্তু বিশ্বাস করুন, একটা আপেল দশ টুকরো করা মোটেও সহজ কাজ নয়।
প্রথম পদ্ধতি ১. সন্তু আপেলে একটা পোঁচ দেবে চাকু দিয়ে।
২. গুণে দেখবে দশ টুকরো হলো কি না।
৩. যদি হয়ে থাকে, তাহলে কাজ শেষ।
৪. যদি না হয়, প্রথম ধাপে ফিরে যাবে।
দ্বিতীয় পদ্ধতি
১.সন্তু বের করবে দশ একটা জোড় সংখ্যা।
২. আপেলে ১০ কে দুই দিয়ে ভাগ করলে পাঁচ হয় এবং চাকু দিয়ে পাঁচটি পোঁচ দেবে। অতএব আপেলকে দশ টুকরো করার মাঝেও অনেক উপায় আছে। তবু আমাদের সন্তু যথেষ্ট বুদ্ধিমান ব্যক্তি হলে নিশ্চয়ই দ্বিতীয় পদ্ধতি ছেড়ে প্রথম পদ্ধতি নিতে যাবে না। কিন্তু এ ব্যাপারে কোন আপত্তি থাকার কথা নয়, দুই উপায়েই আপেলকে সফল ভাবে দশ টুকরো করা সম্ভব।
কোন কাজ করার এই যে ধারাবাহিক নির্দেশনা, তার খটমটে নামও আছে একটা, অ্যালগরিদম(Algorithm)। আমাদের চারপাশে অসংখ্যা অ্যালগরিদম আছে। আপনি চাবি দিয়ে তালা খুলতে চান কি গণিত করতে চান, অ্যালগরিদম ঠিক ঢুকে যাবে। যা হোক, আপেল কাঁটার অ্যালগরিদম ব্যবহার করে সন্তু আপেল দশ টুকরো করুক,
আমরা এই ফাঁকে গণিত নিয়ে কিছু কথা বলে ফেলি। গাণিতিক অ্যালগরিদমের সাথে সকলেই আমরা কমবেশি পরিচিত। ছোটক্লাসে থাকতে সবাই নিশ্চয় ভাগ করে করে গ.সা.গু. বের করেছি, ওটাই গাণিতিক অ্যালগরিদমের একখানা উদাহরন। সত্যি বলতে কি, অত্যন্ত চমৎকার উদাহরন, কারণ ঐ অ্যালগরিদমটি বেশ নামকরা। নামটা হচ্ছে ইউক্লিডের অ্যালগরিদম। দুটি সংখ্যার গ.সা.গু. ইউক্লিডের অ্যালগরিদম এভাবে বের করতে পারে-
ইউক্লিডের অ্যালগরিদম
১. ছোট সংখ্যাটি দিয়ে বড়টিকে ভাগ করতে হবে।
২. ভাগশেষ শূন্য হলে যা দিয়ে ভাগ করা হয়েছে তাই গ.সা.গু।
৩. ভাগশেষ শূন্য না হলে প্রথমে যে সংখ্যাটি দিয়ে আমরা ভাগ করেছি, তাকে ভাগশেষ দিয়ে ভাগ করতে হবে।
৪. ২য় ধাপে ফিরে যেতে হবে।
ইউক্লিডের অ্যালগরিদম কেমন করে কাজ করে, তা নাহয় নাই বললাম। কিন্তু কাজ যে করে সে ব্যাপারে সবাই আমরা নিশ্চিত, কারন এককালে অনেকবার অ্যালগরিদমটা আমরা ব্যবহার করেছি।
গণিতে অ্যালগরিদম আমরা আরও অনেক ব্যবহার করি, সবগুলো বলতে গেলে ছোটখাট বিশ্বকোষ হয়ে যাবে। শুধু গণিত নয়, বিজ্ঞানেও অ্যালগরিদমের জয়জয়কার।
যেমন ধরা যাক, ল্যাবরেটরিতে একটা নাম না জানা লবন কি কি মূলক দ্বারা গঠিত তা বের করার যে পরীক্ষাটি আছে, সেটি চমৎকার একটি অ্যালগরিদম। প্রথমে লবনের সাথে একটি যৌগের বিক্রিয়া করতে হয়। তাহলে বিক্রিয়া কেমন হলো তা দেখে লবনের প্রকৃতি সম্পর্কে কিছুটা ধারনা পাওয়া যায়। সেই ধারনাকে কাজে লাগিয়ে আরেকটি বিক্রিয়া করানো হয়, আবার কিছুটা ধারনা পাওয়া যায়। এভাবে ধাপে ধাপে নতুন নতুন তথ্য বের করতে করতে আমরা লবনের নামটি পেয়ে যাই।
তবে অ্যালগরিদমের সবচেয়ে শক্তিশালী ক্ষেত্র হচ্ছে কম্পিউটার। কম্পিউটার প্রোগ্রাম বানাতে গেলে অ্যালগরিদম আসবেই আসবে। সত্যি বলতে কি, কম্পিউটার এই অ্যালগরিদমের সাহায্যেই সব কাজ করে।কম্পিউটারের যান্ত্রিক মস্তিষ্ক সুনিপুণ ভাবে কিছু করতে পারে যখন ওকে নিখুঁত ভাবে বলে দেওয়া হয় কেমন করে কাজটি করতে হবে। মানে, অ্যালগরিদমটি যখন কম্পিউটারের জানা থাকে, তখনই সে একটি কাজ করতে পারে।
এত ঝামেলার মাঝে না গিয়ে আমরা একটা উদাহরন দিয়ে ফেলি। ধরা যাক কম্পিউটারে একটা প্রোগ্রাম লিখা হল কোন সংখ্যা মৌলিক না যৌগিক জানার জন্য। অ্যালগরিদমটি কাজ করে এভাবে।
মৌলিক সংখ্যা বের করার অ্যালগরিদম
১. একটি সংখ্যা নিয়ে শুরু করতে হবে(একেবারে প্রথমে সংখ্যাটি নেওয়া হবে ২, পরে অ্যালগরিদম আস্তে আস্তে সংখ্যাটি বদলাতে শুরু করবে)।
২. ইনপুটে দেওয়া সংখ্যাটি(মানে যেটি মৌলিক না যৌগিক বের করতে হবে) কম্পিউটারের বাছাই করা সংখ্যাটির সমান না ছোট দেখতে হবে।
৩. সমান হলে ইনপুটের সংখ্যাটি মৌলিক(১ হলে অবশ্য অন্য কথা, সেই অংশ বাদ দিই আপাতত)।
৪. ছোট হলে বাছাই করা সংখ্যাটি দিয়ে ইনপুটের সংখ্যাটিকে ভাগ করলে ভাগশেষ কত হয় তা বের করতে হবে।
৫. ভাগশেষ শূন্য হলে ইনপুটের সংখ্যাটি যৌগিক।
৬. ভাগশেষ শূন্য হলে বাছাই করা সংখ্যাটির সাথে ১ যোগ করে নতুন আরেকটি সংখ্যা বাছাই করতে হবে।
৭. দ্বিতীয় ধাপে ফিরে যেতে হবে। আমাদের দেওয়া এই অ্যালগরিদমটি বারবার ব্যবহার করে কম্পিউটার ইনপুটের সংখ্যাটি মৌলিক না যৌগিক, তা ঠিকই বের করে ফেলতে পারবে! বিশ্বাস না হলে প্রোগ্রাম লিখে দেখতে পারেন।এই অ্যালগরিদমটা খুবই সহজ নিয়ম অনুসরন করে।

 প্রাইম নাম্বার বা মৌলিক সংখ্যা বের করার জন্য আরেকটি অ্যালগরিদম আসুন বানিয়ে ফেলি। এই অ্যালগরিদমটি উইলসনের থিওরেম ব্যবহার করবে। উইলিসনের থিওরেমটি হচ্ছে – যদি কোন সংখ্যা থেকে ছোট সবগুলো সংখ্যার গুণফল এর সাথে ১ যোগ
করে ঐ সংখ্যাটি দিয়ে ভাগ করলে ভাগশেষ শূন্য হয়, তবে সংখ্যাটি মৌলিক। গণিতের ভাষায়, P মৌলিক হবে যদি ও কেবল যদি(P-1)! ≡ -1(mod p)অ্যালগরিদমটি লিখে ফেলা যাক। আমরা ধরে নিতে পারি যে সংখ্যাটি মৌলিক কি যৌগিক বের করতে হবে সেটি হচ্ছে P। উইলসনের থিওরেম ব্যবহার করে প্রাইম নাম্বার বের করার অ্যালগরিদম

১. p এর থেকে ছোট সবগুলো সংখ্যার গুণফল বের করতে হবে(এই কাজটি করার জন্যও একটি অ্যালগরিদম দরকার, সেটা আপাতত নাই দিলাম)।
২. গুণফলের সাথে ১ যোগ করতে হবে।৩. ১ যোগ করে p দিয়ে ভাগ করতে ভাগশেষ কত হয় তা বের করতে হবে।
৪. ভাগশেষ শূন্য হলে সংখ্যাটি মৌলিক।
৫. ভাগশেষ শূন্য না হলে সংখ্যাটি যৌগিক।

সহজ ভাষায় এই হল অ্যালগরিদম।
সুত্র:  ইন্টারনেট

Level 2

আমি আবদুল্লাহ আল-হাসনাত। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 9 বছর 4 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 2 টি টিউন ও 3 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

নেক্সটাইম এরকম তথ্য শেয়ার করতে ভুলবেন না

Level 1

Thanks for a nice tune!!

যদি কোন সংখ্যা থেকে ছোট সবগুলো সংখ্যার গুণফল এর সাথে……….কি দিয়ে গুণ করলে গুণফল পাবো?