একটি ছোট আকৃতির মাপদণ্ড বিবেচনা করুন 0 কাছাকাছি যেমন α = 1 / 100 । 0 এবং মধ্যবর্তী সীমার মধ্যে α , ই - α আনুমানিক 1 , তাই গামা পিডিএফ আনুমানিক এক্স α - 1 ঘ এক্স / Γ ( α ) । এটি আনুমানিক সিডিএফ, এফ α ( এক্স ) = x α এর সাথে সংহত করা যায় ααα = 1 / 100αই- α1এক্সα - 1ঘএক্স / Γ ( α ) । এটিকে উল্টিয়ে দিয়ে আমরা একটি1/αশক্তিদেখতে পাই: বিশাল ব্যয়কারী। জন্যα=1/100এই underflow কিছু সুযোগ (ক ডবল স্পষ্টতা মানের চেয়ে কম ঘটায়10-300, বেশী বা কম)। এখানেαএর বেস-টেন লোগারিদমের ফাংশন হিসাবে আন্ডারফ্লো হওয়ার সম্ভাবনার একটি প্লট রয়েছে:এফα( x ) = xαα Γ ( α )1/αα=1/10010−300α
এর একটি সমাধান হ'ল লগ (গামা) বৈচিত্রগুলি উত্পন্ন করার জন্য এই আনুমানিকতাটি কাজে লাগানো: বাস্তবে, গামা ভেরিয়েট উত্পন্ন করার চেষ্টা করুন এবং যদি এটি খুব সামান্য হয় তবে আনুমানিক বিদ্যুত বিতরণ (নীচে দেখানো হয়েছে) থেকে এর লোগারিদম উত্পন্ন করুন। (লগটি ভূগর্ভস্থ সীমার মধ্যে না হওয়া পর্যন্ত এটি বারবার করুন, যাতে এটি মূল আধারপ্রবাহের বৈকল্পিকের বৈধ বিকল্প হয়)) ডিরিচলেট গণনার জন্য, লগ মানগুলির প্রতিটি থেকে সর্বোচ্চ সমস্ত লগারিদম বিয়োগ করুন: এটি স্পষ্টতই সমস্ত পুনরায় পুনঃনির্ধারণ করে গামা পরিবর্তিত হয় তাই এটি ডিরিচলেট মানগুলিকে প্রভাবিত করে না। সত্যিকারের শূন্যের লগ হিসাবে যে কোনও ফলাফলের লগ খুব ছোট (যেমন -100 এর চেয়ে কম) ব্যবহার করুন। অন্যান্য লগগুলি ব্যাখ্যা করুন। এখন আপনি আন্ডারফ্লো ছাড়াই এগিয়ে যেতে পারেন।
এটি আগের তুলনায় আরও বেশি সময় নিতে চলেছে, তবে কমপক্ষে এটি কার্যকর হবে!
একটি আনুমানিক লগ গামা variate উৎপন্ন করার জন্য আকৃতির মাপদণ্ড সঙ্গে , precompute সি = লগ ( Γ ( α ) ) + + লগ ( α ) । এটি সহজ, কারণ লগ গামার মানগুলি সরাসরি গণনা করার জন্য অ্যালগরিদম রয়েছে । 0 এবং 1 এর মধ্যে অভিন্ন র্যান্ডম ফ্ল্যাট তৈরি করুন, এর লোগারিদম নিন, α দ্বারা ভাগ করুন এবং এতে সি যুক্ত করুন ।αC=log(Γ(α))+log(α)αC
স্কেল প্যারামিটারটি কেবলমাত্র বৈচিত্রটিকে পুনরায় আকার দেয় তাই এই পদ্ধতিগুলিতে এটির সমন্বয় করতে কোনও সমস্যা নেই। সমস্ত স্কেল প্যারামিটার একই হলে আপনার এটির প্রয়োজনও নেই।
সম্পাদন করা
1/αB(α)Γ(α+1)(αxα−1)(yαe−ydy/Γ(α+1))z=xyy→z/xxxz∞0≤y≤1
pdf(z)=αΓ(α+1)∫∞z(xα/x)e−x(z/x)α−1dxdz=1Γ(α)zα−1e−zdz,
Γ(α)
0<α<1Γ(α+1)1/αΓ(α)