সংবিধিবদ্ধ সতর্কীকরণঃ আঁতেল পুস্ট

সকালে ঘুম থেকে উঠেই ল্যাপটপ খুলে দেখি মুহাম্মদের ‘পাই’ নিয়ে একটা লেখা। পড়লাম, এবং পড়ে আমার একটা পুস্ট দিতে ইচ্ছা করলো। যেন তেন পুস্ট না, আঁতেল পুস্ট। ধৈর্য্য থাকলে সাথে থাকেন।

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

বৃত্তচাপের ক্ষেত্রফল, A1 = pi * r^2 / 4
বর্গের ক্ষেত্রফল, A2 = r^2
অনুপাত, A1:A2 = pi/4

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

১। চাল যখন বর্গক্ষেত্রে ছড়ানো হবে তখন দুইটা চলক দিয়া দানাটার অবস্থান নির্ণয় করা যায় (ছবি দেখুন)। চাল যখন ছড়ানোর ঘটনাটা যেহেতু র‌্যান্ডম, র‌্যান্ডম সংখ্যা দিয়ে এই দুইটা চলক নির্ণয় করা যায়।

x = rand();
y = rand();

এখানে rand() হলো, র‌্যান্ডম সংখ্যা নির্ণয় করার একটা ফাংশন। তবে একটা ব্যাপারে সাবধান হতে হবে, যে র‌্যান্ডম সংখ্যাগুলো পাওয়া যাবে সেগুলো যেন অবশ্যই বর্গের ভেতরে থাকে। সেজন্য র‌্যান্ডম সংখ্যার বিস্তৃতি এমন নিতে হবে যেন তা 0 থেকে r -এর মধ্যে থাকে।

২। চালের অবস্থান তো নির্ণয় করা গেল, এখন আমাদের নিরূপন করতে হবে এই চাল বৃত্তের ভেতর না বাইরে। ছবিটার দিকে তাকাইলেই বুঝবেন, এইটা বাইর করা এমন জটিল কিছু না। বর্গের নিচের বামকোনার বিন্দুটাই আমাদের কোঅর্ডিনেট ফ্রেমের অরিজিন, এবং এই অরিজিন থেকেই চালের দানার দুরত্ব নির্ণয় করা যায়। যদি দুরত্ব r-এর থেকে বেশি হয়, তাইলে চাল বৃত্তের বাইরে। যদি r-এর সমান বা কম হয়, তাইলে চাল যথাক্রমে বৃত্তের উপর বা বৃত্তের ভেতরে অবস্থিত।

৩। ধরা যাক, আপনি ১০,০০০ চালের দানা নিয়ে পরীক্ষাটা করবেন। এজন্য আপনাকে ১ এবং ২ নম্বর ধাপ ১০,০০০ বার করতে হবে, এবং প্রত্যেকবার বের করতে হবে চালের দানাটা কোথায় পড়লো। এখন পাই-এর মান হবেঃ

pi = 4*(বৃত্তের ভেতরে বা উপরে পড়া চালের সংখ্যা)/ মোট চালের সংখ্যা (এক্ষেত্রে ১০,০০০)

৪। ধাপ ১,২,৩ আপনাকে একটা সিমুলেশন রেজাল্ট দিবে। ভালো এস্টিমেট পাওয়ার জন্য অনেকগুলো সিমুলেশন করতে হবে। ধরা যাক, ১০০০ সিমুলেশন করা হলো। প্রত্যেকবার পাওয়া সিমুলেশনের মানগুলোর গড় নিলে পাই-এর মানের একটা ভালো এস্টিমেট পাওয়া যাবে।

যাদের জোশ আছে, তারা ছোট একটা কম্পিউটার প্রোগ্রাম লিখে পাই-এর মান বের করতে পারেন।
আমি সিমুলেশনটা করেছি, ১০ লাখ চালের দানার জন্য ১ হাজার বার পরীক্ষাটা করেছি। পাই-এর মান পেয়েছি হলো,

pi = 3.141755900000001

এই মান আসল মানের চেয়ে 0.005196294625306% ভুল।

(আমি একজন নাদান ছাত্র মাত্র, ভুলভাল হইলে বিজ্ঞজন ধরায়া দিয়েন। আর লেখাটা মুহাম্মদের লেখা পইড়াই লিখতে ইচ্ছা করলো, মুহাম্মদকে এইজন্য ধন্যবাদ।)

৩,১৯৭ বার দেখা হয়েছে

৩৮ টি মন্তব্য : “সংবিধিবদ্ধ সতর্কীকরণঃ আঁতেল পুস্ট”

    • তৌফিক (৯৬-০২)

      কেডায় নেয় ফ্লুইড? জামাতী সদরুল?? সদরুলের নেওয়া ৫টা কোর্সের ৪টাতেই আমি ডি পাইছিলাম। 🙁

      আর শয়তানী হাসি দেইখা তো ভয় পায়া গেলাম, কাহিনী কি? ভুল ধরসস নাকি?? 😕

      জবাব দিন
      • জিহাদ (৯৯-০৫)

        না। কামরুল স্যার। জিন্নাহর আমলে ডি পাইসিলাম ফ্লুইডে। রেফার্ড দিবার জন্য পরীক্ষা ছাইড়া আসছিলাম। কিন্তু জোর করে পাস করায়া ডি দিয়া দিসিল। মিজাজটা কেমুন যে হইসিল :grr: :grr: :grr:


        সাতেও নাই, পাঁচেও নাই

        জবাব দিন
        • এইটা নিয়া একটা কাহিনী মনে পড়ল ... সেকেন্ড সেমিস্টারে আমাদের এক কৃতী ছাত্র সি পরীক্ষায় পুরা ধরা খাইলো ... অনীক ভাই (পিসিসি নাইন্টি এইট) খাতা দেখতে গিয়ে দেখেন তারে অনেক বাড়ায়ে টাড়ায়ে দিলেও ডি পার হয় না, উনি ভাব্লেন তার চেয়ে রেফার্ড দেই, ভালো করে পড়ে বি তুলতে পারবে ... অনীক ভাই যেটা জানতেন না সেটা হইলো বেচারা আরো তিনটা সাবজেক্টে রেফার্ড খাইছিল, এবং চার সাবজেক্টে রেফার্ড খাইলে ফেইল ... বেচারা এক বছর পিছায় গেল :-s

          জবাব দিন
  1. শার্লী (১৯৯৯-২০০৫)

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

    তয় ভাই মনে হয় জিনিয়াস :salute:

    জবাব দিন
  2. ফয়েজ (৮৭-৯৩)

    ইস মনে হইতাছে জীবনে অন্য কিছু না হইয়া "পাই" হইতে পারলেও সার্থক হইত। তয় তোমার উপস্থাপনা জটিল হইছে। :boss:
    ক্লাসে পোলাপাইনকে বুঝাইতে পারবা ভাল।

    আর একটা কথা, এত বার "হইলো গিয়া" কইছ ক্যান? অন্য শব্দ নাই এইটার? "হইলো গিয়া" ইংরেজীতে কি হইব।


    পালটে দেবার স্বপ্ন আমার এখনও গেল না

    জবাব দিন
    • তৌফিক (৯৬-০২)

      কই আউলাইলি? ব্যাপার না, পরীক্ষা দে। তবে একটা কথা কই, ডিএসপি-র ফুরিয়ার এনালাইসিস যতোই করস না ক্যান, মনে রাখিস, ফুরিয়ার ছিল মেকানিক্যালের লোক। ধাতব পাতে তাপ ক্যামনে ছড়ায় এইটা বাইর করতে গিয়া সে ফুরিয়ার এনালাইসিস বাইর করছিল। :-B

      পড়ার জন্য ধন্যবাদ। 🙂

      জবাব দিন
  3. সানাউল্লাহ (৭৪ - ৮০)

    ~x( ~x( ~x(

    বড়ই বিপদে আছি। না পড়লে মনে হয়, বোকা থাইক্কা যামু! আর পড়লে মনে হয়, আরো বোকা হইলাম!! কি যে করি??

    আমি বরং :teacup: খাই। রকিব আমারে কিন্তু বহুতদিন :teacup: দাও না!!


    "মানুষে বিশ্বাস হারানো পাপ"

    জবাব দিন
  4. রকিবুল ইসলাম (৯৯-০৫)

    তৌফিক ভাই আপনি কিন্তু বলেন নাই r এর মান কতো হবে??
    আমি রেডিয়াস ৮০০ এর মতো দি্যা বেশ ভালো মান পাইছি।
    আপনি কতো ধরছিলেন??
    আমারটার error অনেক বেশি
    তবে পোস্টটা পড়ে ভাল লাগ্লো।

    জবাব দিন
    • তৌফিক (৯৬-০২)

      r- এর মানের উপর কোন বাধ্যবাধকতা নাই। আমি নিছিলাম ১০০, যাতে ফ্লোটিং পয়েন্টগুলারে মাল্টিপ্লাই করে মোটামুটি একুরেটলি অবস্থান বের করা যায়। আমার সিমুলেশনে আরেকটা ফাঁকিবাজি আছে, সেইটা হইলো র‌্যানডম নাম্বারের যে ফাংশনটা আমি ব্যবহার করছি ওইটা ০ থেকে 1 -এর মধ্যে ইউনিফর্মলি ডিস্ট্রিবিউটেড র‌্যানডম জেনারেট করে। সবচেয়ে ভালো হয় নরমাল ডিস্ট্রিবিউশান ব্যবহার করলে। আর এরর বের করার যে ফর্মুলা আমি ব্যবহার করছি ওইটা হইলোঃ

      (এস্টিমেটেড 'পাই'-এর মান - ম্যাটল্যাবের ৩২ বিট 'পাই'-এর মান)/ম্যাটল্যাবের ৩২ বিট 'পাই'-এর মান * ১০০

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

      4*(শুধু বৃত্তের ভেতরে বা উপরে পড়া চালের সংখ্যা)/ (বর্গের ভেতরে পড়া চালের সংখ্যা(বৃত্তসহ))

      জোশ থাকলে ট্রাই করতে পারো। আমি আমার একহাজার মানের সিমুলেশন-এর রেজাল্ট সেভ করে রাখছি। নিতে চাইলে আওয়াজ দিও।

      জবাব দিন

মন্তব্য করুন

দয়া করে বাংলায় মন্তব্য করুন। ইংরেজীতে প্রদানকৃত মন্তব্য প্রকাশ অথবা প্রদর্শনের নিশ্চয়তা আপনাকে দেয়া হচ্ছেনা।