এই পর্বে যা শিখবেন
- Variance আর standard deviation-এর সংজ্ঞা, Var = E[X²] − E[X]²-এর প্রমাণ, আর যোগফলের variance কেন শুধু pairwise independence চায়
- Markov, Chebyshev আর Chernoff অসমতার পূর্ণ প্রমাণ, আর প্রতিটির শর্ত কী
- বড় সংখ্যার দুর্বল নিয়মের প্রমাণ, আর একটি ত্রুটির হার মাপতে কত নমুনা লাগে তার হিসাব
- একই binomial লেজে চারটি সীমা আর exact উত্তরের তুলনা: কোনটি কখন কত শক্ত
- Majority vote আর পুনরাবৃত্তি দিয়ে randomized algorithm-এর ভুল কমানো, Python-এ exact আর simulation মিলিয়ে
১ · গড় যথেষ্ট নয় — variance আর standard deviation
কাল্পনিক অনলাইন দোকান বাজারঘর দুটি কুরিয়ার কোম্পানির মধ্যে একটি বাছবে। দুটিরই গড় দেরি ২ ঘণ্টা। প্রথমটি প্রতিদিন প্রায় ২ ঘণ্টাই দেরি করে, কখনো ১, কখনো ৩. দ্বিতীয়টি বেশিরভাগ দিন সময়মতো পৌঁছায়, কিন্তু মাঝে মাঝে ১০ ঘণ্টা দেরি করে। গড় এক হলেও গ্রাহকের অভিজ্ঞতা একেবারে আলাদা। পর্ব ৪০ “Random variable আর প্রত্যাশা — linearity-র জাদু”-এ আমরা গড় বা প্রত্যাশা E[X] শিখেছি; এই পর্বের প্রশ্ন হলো, মান গড়ের চারপাশে কতটা ছড়িয়ে থাকে, আর গড় থেকে অনেক দূরে যাওয়ার সম্ভাবনা কত।
ক্রিকেটে দুই ব্যাটসম্যানের গড় ৪০. একজন প্রায় প্রতি ইনিংসে ৩০ থেকে ৫০ করেন; আরেকজন হয় শূন্য, নয়তো একশো। দলের নির্বাচক শুধু গড় দেখলে দুজনকে এক মনে করবেন, কিন্তু টপ অর্ডারে স্থির রান চাইলে প্রথমজনই নিরাপদ। “কতটা ছড়ানো” মাপার সংখ্যাটির নাম variance.
একটি সসীম বা গণনাযোগ্য sample space-এ সংজ্ঞায়িত random variable X-এর প্রত্যাশা μ = E[X] হলে তার variance
Var(X) = E[(X − μ)²]
(যখন এই প্রত্যাশা সসীম)। এর বর্গমূল σ = √Var(X)-কে বলে standard deviation. Var সবসময় ≥ 0, কারণ এটি অঋণাত্মক সংখ্যার গড়।
বর্গ কেন? গড় থেকে বিচ্যুতি X − μ-এর গড় সবসময় 0 (linearity: E[X] − μ = 0), তাই যোগ আর বিয়োগ কাটাকাটি হয়ে যায়। বর্গ করলে সব বিচ্যুতি ধনাত্মক হয়, আর বড় বিচ্যুতি বেশি ওজন পায়। σ-এর একক X-এর এককের সমান (ঘণ্টা, টাকা, রান), তাই কথায় σ-ই বেশি ব্যবহার হয়; কিন্তু হিসাবে Var সহজ, কারণ এর বীজগণিত সুন্দর।
E[X²] সসীম হলে Var(X) = E[X²] − (E[X])², আর যেকোনো ধ্রুবক a, b-তে Var(aX + b) = a² Var(X).
প্রমাণ: μ = E[X] লিখুন।
- প্রতিটি ফলাফলে (X − μ)² = X² − 2μX + μ². — বীজগণিত
- প্রত্যাশা নিলে E[(X − μ)²] = E[X²] − 2μE[X] + μ², কারণ প্রত্যাশা রৈখিক আর μ একটি ধ্রুবক। — linearity, পর্ব ৪০
- E[X] = μ বসালে E[X²] − 2μ² + μ² = E[X²] − μ². — সরল করা
- দ্বিতীয় দাবির জন্য: E[aX + b] = aμ + b, তাই (aX + b) − (aμ + b) = a(X − μ), আর তার বর্গের প্রত্যাশা a² E[(X − μ)²] = a² Var(X). ∎ — linearity
ফলটির মানে সহজ: সব মান একটি ধ্রুবক b দিয়ে সরালে ছড়ানো বদলায় না, আর একক বদলালে (মিনিট থেকে ঘণ্টা, a = 1/60) variance বদলায় a² গুণে। একটি সাবধানতা: E[X²] আর (E[X])² এক জিনিস নয়, আর তাদের পার্থক্যটিই variance. দুটি সমান হয় শুধু তখন, যখন X কার্যত একটি ধ্রুবক। নিচের stepper একটি ছক্কার variance দুই পথে বের করে।
1X ∈ {1, …, 6}, প্রতিটি 1/62E[X] = 21/6 = 7/23(x − 7/2)²: 6.25 2.25 0.25 …4Var = 17.5/6 = 35/12591/6 − 49/4 = 35/126σ = √(35/12) ≈ 1.708
| E[X] | |
| E[X²] | |
| Var(X) | |
| σ |
- মান। একটি নিরপেক্ষ ছক্কায় X-এর মান 1 থেকে 6, প্রতিটির সম্ভাবনা 1/6.
- গড়। E[X] = (1 + 2 + 3 + 4 + 5 + 6)/6 = 21/6 = 7/2 = 3.5. কোনো দানেই 3.5 আসে না, তবু এটিই ভারসাম্যের বিন্দু।
- বিচ্যুতি। x − 3.5 হলো −2.5, −1.5, −0.5, 0.5, 1.5, 2.5; বর্গ 6.25, 2.25, 0.25, 0.25, 2.25, 6.25, যোগফল 17.5.
- সংজ্ঞা থেকে। Var(X) = 17.5/6 = 35/12 ≈ 2.917.
- সংক্ষিপ্ত সূত্র। E[X²] = (1 + 4 + 9 + 16 + 25 + 36)/6 = 91/6; Var = 91/6 − (7/2)² = 182/12 − 147/12 = 35/12 ✓.
- Standard deviation. σ = √(35/12) ≈ 1.708; অর্থাৎ একটি দান সাধারণত গড় থেকে দেড়-দুই ঘর দূরে পড়ে।
২ · যোগফলের variance — pairwise independence-ই যথেষ্ট
প্রত্যাশার যোগ সবসময় চলে: E[X + Y] = E[X] + E[Y], স্বাধীনতা লাগে না। Variance-এর ক্ষেত্রে তা সত্য নয়। একটি ছক্কার মান X হলে X + X = 2X, আর উপপাদ্য ১.২ অনুযায়ী Var(2X) = 4 Var(X), 2 Var(X) নয়। দুই চলক একসঙ্গে ওঠানামা করলে ছড়ানো বাড়ে। এই একসঙ্গে ওঠানামা মাপে covariance:
Cov(X, Y) = E[(X − μX)(Y − μY)] = E[XY] − E[X]E[Y]
উপপাদ্য ১.২-এর মতো বিস্তার করলেই পাওয়া যায় Var(X + Y) = Var(X) + Var(Y) + 2 Cov(X, Y). X আর Y স্বাধীন হলে E[XY] = E[X]E[Y] (পর্ব ৪০-এ প্রমাণিত), তাই Cov = 0. মজার কথা হলো, অনেক চলকের যোগফলে শুধু জোড়ায় জোড়ায় স্বাধীনতা লাগে।
X₁, …, Xₙ-এর প্রতিটির variance সসীম, আর প্রতিটি জোড়া Xᵢ, Xⱼ (i ≠ j) স্বাধীন হলে, অর্থাৎ চলকগুলো pairwise independent হলে,
Var(X₁ + X₂ + … + Xₙ) = Var(X₁) + Var(X₂) + … + Var(Xₙ)
প্রমাণ: μᵢ = E[Xᵢ], Dᵢ = Xᵢ − μᵢ, আর S = X₁ + … + Xₙ লিখুন।
- Linearity-তে E[S] = μ₁ + … + μₙ, তাই S − E[S] = D₁ + … + Dₙ. — পর্ব ৪০
- (D₁ + … + Dₙ)² = ∑ᵢ Dᵢ² + ∑i≠j DᵢDⱼ; এখানে দ্বিতীয় যোগে প্রতিটি ক্রমসহ জোড়া (i, j) একবার। — বীজগণিত
- প্রত্যাশা নিলে Var(S) = ∑ᵢ E[Dᵢ²] + ∑i≠j E[DᵢDⱼ] = ∑ᵢ Var(Xᵢ) + ∑i≠j Cov(Xᵢ, Xⱼ). — linearity, সংজ্ঞা
- প্রতিটি cross term-এ শুধু দুটি চলক থাকে। Xᵢ আর Xⱼ স্বাধীন, তাই Cov(Xᵢ, Xⱼ) = E[XᵢXⱼ] − μᵢμⱼ = 0. — জোড়ার স্বাধীনতা
- সব cross term 0, তাই Var(S) = ∑ Var(Xᵢ). ∎
ধাপ ৪-ই মূল কথা: প্রমাণে কখনো তিনটি চলক একসঙ্গে আসে না, তাই তিনটির যৌথ স্বাধীনতা (mutual independence) লাগে না। পর্ব ৩৯ “শর্তসাপেক্ষ সম্ভাবনা, independence আর Bayes-এর উপপাদ্য”-এর বিখ্যাত উদাহরণটি নিন: X, Y দুটি নিরপেক্ষ bit, আর Z = X ⊕ Y (XOR). তিনটি জোড়ায় জোড়ায় স্বাধীন, কিন্তু X আর Y জানলে Z পুরো জানা, তাই যৌথভাবে স্বাধীন নয়। তবু উপপাদ্য বলে Var(X + Y + Z) = 1/4 + 1/4 + 1/4 = 3/4. শুধু জোড়ার স্বাধীনতাই যথেষ্ট, এই তথ্যটি কম্পিউটার বিজ্ঞানে খুব কাজের: এলোমেলো bit কম খরচে বানানো যায়, কারণ পুরো স্বাধীনতার বদলে জোড়ার স্বাধীনতা পেতে অনেক কম এলোমেলো bit লাগে।
Binomial-এর variance: np(1 − p)
বাজারঘরের একটি চালানে n = 400টি পণ্য, প্রতিটি অন্যগুলো থেকে স্বাধীনভাবে p = 0.05 সম্ভাবনায় ত্রুটিপূর্ণ। ত্রুটিপূর্ণ পণ্যের সংখ্যা X-কে indicator-এর যোগ হিসেবে লিখুন: X = I₁ + … + Iₙ, যেখানে পণ্য i ত্রুটিপূর্ণ হলে Iᵢ = 1, না হলে 0 (পর্ব ৪০-এর কৌশল)। Iᵢ শুধু 0 বা 1, তাই Iᵢ² = Iᵢ, আর
Var(Iᵢ) = E[Iᵢ²] − (E[Iᵢ])² = p − p² = p(1 − p)
Iᵢ-গুলো স্বাধীন, তাই উপপাদ্য ২.১ অনুযায়ী Var(X) = np(1 − p). চালানে গড় ত্রুটি np = 20, variance 400 × 0.05 × 0.95 = 19, আর σ = √19 ≈ 4.36. এই প্রমাণে C(n, k)-এর কোনো যোগফল লাগল না (পর্ব ৩৪-এর identity দিয়েও একই উত্তর আসে, কিন্তু অনেক লম্বা পথে)। p = 1/2-এ p(1 − p) = 1/4, যা এর সর্বোচ্চ মান; কারণ p(1 − p) = 1/4 − (p − 1/2)². তাই যেকোনো p-তে np(1 − p) ≤ n/4, এই সীমাটি §৫-এ কাজে লাগবে।
এবার Python-এ সব দাবি exact ভগ্নাংশে মিলিয়ে নিন: ছক্কার variance দুই সূত্রে, দুটি স্বাধীন ছক্কার যোগ আর বিয়োগ, X + X, আর XOR উদাহরণ। শেষে একটি seeded simulation. প্রথমবার চালালে ব্রাউজারে Python (Pyodide) নামতে কয়েক সেকেন্ড লাগে।
from fractions import Fraction as F
from itertools import product
import random
def E(space, f): # space: list of equally likely outcomes
return sum(F(f(w)) for w in space) / len(space)
def Var(space, f):
m = E(space, f)
return E(space, lambda w: (f(w) - m) ** 2)
die = list(range(1, 7))
print("E[X] =", E(die, lambda x: x), " E[X^2] =", E(die, lambda x: x * x))
print("Var by definition:", Var(die, lambda x: x),
" by E[X^2]-E[X]^2:", E(die, lambda x: x * x) - E(die, lambda x: x) ** 2)
two = list(product(die, die)) # 36 outcomes of two independent dice
print("Var(X+Y) =", Var(two, lambda w: w[0] + w[1]),
" Var(X-Y) =", Var(two, lambda w: w[0] - w[1]),
" Var(X+X) =", Var(die, lambda x: 2 * x))
bits = list(product((0, 1), repeat=2)) # Z = X xor Y: pairwise independent
S = lambda w: w[0] + w[1] + (w[0] ^ w[1])
print("Var(X+Y+Z) =", Var(bits, S), " sum of variances =", 3 * F(1, 4))
P_all = F(sum(1 for w in bits if w[0] and w[1] and (w[0] ^ w[1])), 4)
print("P(X=Y=Z=1) =", P_all, "but P(X=1)P(Y=1)P(Z=1) = 1/8")
random.seed(41) # sample variance of 100000 rolls
rolls = [random.randint(1, 6) for _ in range(100_000)]
m = sum(rolls) / len(rolls)
v = sum((r - m) ** 2 for r in rolls) / len(rolls)
print(f"simulated mean {m:.4f}, variance {v:.4f}; exact 3.5000, {35/12:.4f}")আসল আউটপুট (ব্রাউজারের Python):
E[X] = 7/2 E[X^2] = 91/6
Var by definition: 35/12 by E[X^2]-E[X]^2: 35/12
Var(X+Y) = 35/6 Var(X-Y) = 35/6 Var(X+X) = 35/3
Var(X+Y+Z) = 3/4 sum of variances = 3/4
P(X=Y=Z=1) = 0 but P(X=1)P(Y=1)P(Z=1) = 1/8
simulated mean 3.4966, variance 2.9222; exact 3.5000, 2.9167
প্রথম দুই লাইন stepper-এর হিসাব। তৃতীয় লাইনে তিনটি শিক্ষা: স্বাধীন দুই ছক্কার যোগে variance দ্বিগুণ (35/6); বিয়োগেও দ্বিগুণ, কারণ Var(−Y) = (−1)² Var(Y); আর একই ছক্কা দুবার যোগ করলে চারগুণ (35/3). চতুর্থ আর পঞ্চম লাইন XOR উদাহরণ: তিনটি একসঙ্গে 1 হওয়া অসম্ভব (X = Y = 1 হলে Z = 0), তাই যৌথ স্বাধীনতা নেই, তবু variance-এর যোগ খাটে। শেষ লাইনে ১ লাখ দানের simulation exact মানের কাছাকাছি, কিন্তু হুবহু নয়; কতটা কাছে আশা করা উচিত, সেটিই §৫-এর প্রশ্ন।
৩ · Markov-এর অসমতা — শুধু গড় জেনে লেজের সীমা
বাজারঘরের ম্যানেজার জানেন শুধু একটি সংখ্যা: ডেলিভারির গড় দেরি ২ ঘণ্টা। দেরি কখনো ঋণাত্মক নয়। এটুকু জেনেই কি বলা যায়, ১০ ঘণ্টা বা তার বেশি দেরির সম্ভাবনা সর্বোচ্চ কত? হ্যাঁ: ২০%-এর বেশি নয়। কারণটি সহজ। যদি ২০%-এর বেশি অর্ডারে দেরি ≥ ১০ ঘণ্টা হতো, শুধু ওই অর্ডারগুলোই গড়ে 0.2 × 10 = 2 ঘণ্টার বেশি যোগ করত, আর বাকি অর্ডারের দেরি ঋণাত্মক হতে পারে না; তাহলে গড় ২-এর বেশি হতো। কোনো মানের অনেক বড় হওয়ার সম্ভাবনাকে বলে লেজের সম্ভাবনা (tail probability), আর এমন সীমা দেওয়া প্রথম হাতিয়ারটির নাম Markov-এর অসমতা.
X একটি অঋণাত্মক random variable (প্রতিটি ফলাফলে X ≥ 0) আর a > 0 হলে
P(X ≥ a) ≤ E[X] / a
প্রমাণ: I দিয়ে ঘটনা {X ≥ a}-এর indicator বোঝান: X ≥ a হলে I = 1, নইলে I = 0.
- দাবি: প্রতিটি ফলাফলে a · I ≤ X. যদি X ≥ a, তাহলে বাঁ দিক a ≤ X. নইলে বাঁ দিক 0, আর 0 ≤ X, কারণ X অঋণাত্মক। — দুই ক্ষেত্র
- প্রতিটি ফলাফলে যে অসমতা খাটে, তা প্রত্যাশাতেও খাটে (প্রত্যাশা অঋণাত্মক ওজনের যোগ), তাই a · E[I] ≤ E[X]. — প্রত্যাশার monotonicity
- E[I] = P(X ≥ a) (পর্ব ৪০), তাই a · P(X ≥ a) ≤ E[X]; a > 0 দিয়ে ভাগ করলে দাবি। ∎ — indicator-এর প্রত্যাশা
খেয়াল করুন, ধাপ ১-এ X ≥ 0 শর্তটি ঠিক একবার লেগেছে। শর্তটি বাদ দিলে দাবি ভাঙে, §৯-এ একটি ভুল প্রমাণে তা দেখবেন। আরেকটি রূপ: t ≥ 1 হলে P(X ≥ t · E[X]) ≤ 1/t, অর্থাৎ অঋণাত্মক চলক গড়ের তিনগুণ ছাড়ানোর সম্ভাবনা সর্বোচ্চ ১/৩.
সীমাটি কি আরও ভালো করা যায়?
শুধু গড় জানা থাকলে না। X = 0 সম্ভাবনা 0.8-এ আর X = 10 সম্ভাবনা 0.2-এ নিন। তাহলে E[X] = 2 আর P(X ≥ 10) = 0.2 = 2/10, ঠিক Markov-এর সীমা। অর্থাৎ যে বিতরণে সমস্ত “ভর” হয় 0-তে, নয়তো ঠিক a-তে, সেখানে সমতা হয়। দ্বিতীয় কুরিয়ার কোম্পানিটি অনেকটা এমন। কিন্তু প্রথম কোম্পানির দেরি যদি সবসময় ১ থেকে ৩ ঘণ্টার মধ্যে থাকে, আসল সম্ভাবনা 0, আর Markov-এর 0.2 অনেক দুর্বল। আরও ভালো সীমা চাইলে আরও তথ্য লাগবে, যেমন variance.
শুধু এক দিকে: Markov বলে “বড় হওয়ার” সম্ভাবনা কম; “ছোট হওয়ার” বিষয়ে কিছু বলে না। আর a ≤ E[X] হলে সীমাটি ≥ 1, অর্থাৎ কোনো তথ্য দেয় না। গড়ের নিচের কোনো মানে Markov প্রয়োগ করে সিদ্ধান্ত টানা একটি সাধারণ ভুল।
Algorithm বিশ্লেষণে Markov একটি গুরুত্বপূর্ণ সেতু। একটি Las Vegas algorithm-এর (যা সবসময় ঠিক উত্তর দেয়, কিন্তু চলার সময় এলোমেলো) গড় সময় T হলে, 3T ধাপ পরে থামিয়ে দিলে ব্যর্থ হওয়ার সম্ভাবনা ≤ 1/3. এভাবে একটি “গড়ে দ্রুত” algorithm থেকে একটি “নির্দিষ্ট সময়ে শেষ হয়, কখনো কখনো ভুল” algorithm, অর্থাৎ Monte Carlo algorithm পাওয়া যায়। DSA কোর্সের পর্ব ৬১-এ এই দুই ধরনের algorithm কোডসহ আছে; এর গাণিতিক কাঠামো পর্ব ৪৩ “Probabilistic method আর randomized algorithm”-এ আসবে।
৪ · Chebyshev-এর অসমতা — variance দিয়ে আরও শক্ত সীমা
Markov-এর একটি সুন্দর কৌশল আছে: এটি যেকোনো অঋণাত্মক চলকে খাটে, তাই X-এর কোনো ফাংশনে বসিয়ে নতুন অসমতা পাওয়া যায়। (X − μ)² সবসময় অঋণাত্মক, আর তার প্রত্যাশা ঠিক variance. এই এক লাইনের ভাবনা থেকেই আসে Chebyshev-এর অসমতা.
X-এর প্রত্যাশা μ আর variance σ² সসীম হলে, যেকোনো t > 0-তে
P(|X − μ| ≥ t) ≤ σ² / t²
সমতুল্য রূপে, σ > 0 আর k > 0 হলে P(|X − μ| ≥ kσ) ≤ 1/k².
প্রমাণ:
- Y = (X − μ)² লিখুন। প্রতিটি ফলাফলে Y ≥ 0. — বর্গ অঋণাত্মক
- t > 0 হলে |X − μ| ≥ t ঠিক তখনই, যখন (X − μ)² ≥ t², অর্থাৎ দুটি ঘটনা একই সেট। — উভয় পক্ষ অঋণাত্মক, বর্গ একমুখী
- Y আর a = t²-এ Markov বসান: P(Y ≥ t²) ≤ E[Y]/t². — উপপাদ্য ৩.১
- E[Y] = Var(X) = σ², তাই P(|X − μ| ≥ t) ≤ σ²/t². t = kσ বসালে দ্বিতীয় রূপ। ∎ — সংজ্ঞা ১.১
কোনো বিতরণ সম্পর্কে শুধু μ আর σ জানলেই বলা যায়: যেকোনো বিতরণে গড় থেকে 2σ বা বেশি দূরে থাকার সম্ভাবনা ≤ 1/4, 3σ বা বেশি দূরে ≤ 1/9. শুধু গড় জানলে Markov এক দিকের লেজ বাঁধে; variance জানলে Chebyshev দুই দিকের লেজই বাঁধে, আর দূরত্বের সঙ্গে সীমাটি 1/t² হারে কমে, Markov-এর 1/a-এর চেয়ে দ্রুত।
এই সীমাও আর ভালো করা যায় না, যদি শুধু μ আর σ জানা থাকে। k ≥ 1-এ X = −k, 0, +k নিন, সম্ভাবনা যথাক্রমে 1/(2k²), 1 − 1/k², 1/(2k²). তাহলে μ = 0, Var = k² · 1/k² = 1, আর P(|X| ≥ k) = 1/k², ঠিক সমান। তবে বেশিরভাগ বাস্তব বিতরণে, বিশেষ করে অনেক স্বাধীন চলকের যোগে, আসল লেজ Chebyshev-এর চেয়ে অনেক ছোট; ছবিতে আর stepper-এ সেটিই দেখুন।
১০০টি মুদ্রা টস: মাথার সংখ্যার বিতরণ
মাঝের নীল অংশ 41 থেকে 59, যার মোট সম্ভাবনা 0.943. দুই লেজ (≤ 40 আর ≥ 60) মিলে 0.057, যেখানে Chebyshev-এর সীমা 0.25.
1X = মাথা, n = 100, p = 1/22μ = np = 503σ² = np(1 − p) = 25, σ = 54P(|X − 50| ≥ 10) ≤ 25/1005P(41 ≤ X ≤ 59) ≥ 0.756আসল: 0.0569 আর 0.9431
| μ | |
| σ² | |
| লেজের সীমা | |
| আসল লেজ |
- প্রশ্ন। একটি নিরপেক্ষ মুদ্রা ১০০ বার টস করলে মাথার সংখ্যা X. মাথা ৪০ বা কম, অথবা ৬০ বা বেশি আসার সম্ভাবনা সর্বোচ্চ কত?
- গড়। X = ১০০টি indicator-এর যোগ, তাই μ = 100 × 1/2 = 50.
- Variance. টসগুলো স্বাধীন, তাই σ² = 100 × 1/2 × 1/2 = 25, আর σ = 5.
- Chebyshev. “≤ 40 বা ≥ 60” মানে |X − 50| ≥ 10. t = 10 = 2σ বসালে সীমা 25/10² = 0.25.
- Complement. তাই P(41 ≤ X ≤ 59) ≥ 1 − 0.25 = 0.75: অন্তত তিন-চতুর্থাংশ সম্ভাবনায় মাথা 41 থেকে 59-এর মধ্যে।
- আসল মান। Exact হিসাবে লেজ 0.0569, মাঝখান 0.9431. সীমাটি সঠিক, কিন্তু চারগুণের বেশি ঢিলা। t = 15-এ সীমা 25/225 ≈ 0.111, অথচ আসল লেজ মাত্র 0.0035.
৫ · বড় সংখ্যার দুর্বল নিয়ম — গড় কেন স্থির হয়
বাজারঘর জানতে চায় তার গুদামের একটি লাইনে ত্রুটির হার p কত। পুরো লাইন পরীক্ষা করা অসম্ভব, তাই এলোমেলোভাবে n-টি পণ্য পরীক্ষা করে ত্রুটিপূর্ণগুলোর অনুপাত নেওয়া হয়। এই অনুপাত কি p-এর কাছে থাকবে? থাকলে কত কাছে, আর কত নমুনায়? এর উত্তর দেয় বড় সংখ্যার নিয়ম (law of large numbers). এখানে আমরা এর দুর্বল রূপটি সম্পূর্ণ প্রমাণ করব, আর প্রমাণে Chebyshev ছাড়া কিছুই লাগবে না।
X₁, …, Xₙ pairwise independent, প্রতিটির প্রত্যাশা μ আর variance σ² (সসীম)। তাদের নমুনা-গড় X̄ = (X₁ + … + Xₙ)/n হলে, যেকোনো ε > 0-তে
P(|X̄ − μ| ≥ ε) ≤ σ² / (n ε²) → 0 (n → ∞)
প্রমাণ:
- Linearity-তে E[X̄] = (μ + … + μ)/n = μ. — পর্ব ৪০
- চলকগুলো pairwise independent, তাই Var(X₁ + … + Xₙ) = nσ². — উপপাদ্য ২.১
- Var(X̄) = Var((1/n)(X₁ + … + Xₙ)) = (1/n²) · nσ² = σ²/n. — উপপাদ্য ১.২, a = 1/n
- X̄-এ Chebyshev বসালে P(|X̄ − μ| ≥ ε) ≤ (σ²/n)/ε². — উপপাদ্য ৪.১
- ε আর σ স্থির রেখে n বাড়ালে σ²/(nε²) যেকোনো ধনাত্মক সংখ্যার চেয়ে ছোট হয়, তাই সম্ভাবনাটি 0-তে যায়। ∎
মূল কথা ধাপ ৩-এ: গড়ের variance σ²/n, তাই তার standard deviation σ/√n. নমুনা চারগুণ করলে গড়ের অনিশ্চয়তা অর্ধেক হয়, দশগুণ নয়। এই “√n-এর নিয়ম” পরিসংখ্যানের প্রায় প্রতিটি হিসাবে ফিরে আসে। পর্ব ৩৮ “বিচ্ছিন্ন সম্ভাবনা — sample space, event আর Laplace-এর সংজ্ঞা”-এ সম্ভাবনা আর আপেক্ষিক কম্পাঙ্কের যে সম্পর্কের কথা বলা হয়েছিল, এটি তার গাণিতিক রূপ: indicator-এর গড় মানে ঘটনাটি কত ভাগ সময় ঘটল, আর তা p-এর কাছে জমে। একটি শক্তিশালী রূপ (strong law) আছে, যা বলে প্রায় নিশ্চিতভাবে গড় μ-তে পৌঁছায়; তার প্রমাণ অসীম sample space-এর পরিমাপ-তত্ত্ব চায়, তাই এই কোর্সে শুধু নাম।
কত নমুনা লাগবে? ত্রুটির হার মাপা
প্রশ্ন: ত্রুটির হার p-কে ±0.05-এর মধ্যে মাপতে হবে, আর ভুল হওয়ার সম্ভাবনা যেন ≤ 0.05 হয়। Xᵢ = পণ্য i ত্রুটিপূর্ণ কি না (indicator), তাই σ² = p(1 − p) ≤ 1/4, আর p অজানা হলেও এই সীমা খাটে (§২)। Chebyshev থেকে:
P(|X̄ − p| ≥ 0.05) ≤ 1/(4n × 0.05²) ≤ 0.05 ⇔ n ≥ 2000
অর্থাৎ ২০০০টি পণ্য পরীক্ষা যথেষ্ট, লাইনে মোট পণ্য যতই হোক। §৬-এর Chernoff-ধাঁচের Hoeffding অসমতা দিয়ে একই নিশ্চয়তা আসে মাত্র ৭৩৮টি নমুনায়; দুই উত্তরই সঠিক, শুধু দ্বিতীয় সীমাটি বেশি শক্ত। দুটি শর্ত ভুলবেন না: নমুনা সত্যিই এলোমেলো আর স্বাধীন হতে হবে, আর পক্ষপাতদুষ্ট নমুনা (যেমন শুধু সকালের শিফটের পণ্য) বেশি সংখ্যায় নিলেও ঠিক হয় না; তখন গড় ভুল মানের দিকেই জমে।
নিচের ব্লক দুটি কাজ করে। প্রথমে p = 0.05 ধরে ১ লাখ পণ্যের একটি seeded সারিতে চলমান গড় ছাপে। তারপর ৪০০ পণ্যের ১০০০টি চালান simulate করে দেখে কত ভাগ চালানে ত্রুটির সংখ্যা গড় 20 থেকে 10 বা বেশি দূরে, আর তাকে exact মান ও Chebyshev-এর সীমার সঙ্গে মেলায়।
import random
from math import comb
p = 0.05 # true defect rate of a batch line
random.seed(2026)
defects = 0
print(" n defects average |avg - p|")
for i in range(1, 100_001):
defects += random.random() < p
if i in (10, 100, 1_000, 10_000, 100_000):
avg = defects / i
print(f"{i:6d} {defects:7d} {avg:.5f} {abs(avg - p):.5f}")
# 1000 batches of n = 400: how often is |X - 20| >= 10 ?
n, runs = 400, 1000
random.seed(41)
far = 0
for _ in range(runs):
X = sum(random.random() < p for _ in range(n))
far += abs(X - 20) >= 10
exact = sum(comb(n, k) * p**k * (1 - p)**(n - k)
for k in range(n + 1) if abs(k - 20) >= 10)
cheb = n * p * (1 - p) / 10**2
print(f"simulated {far / runs:.4f} exact {exact:.4f} Chebyshev bound {cheb:.4f}")আসল আউটপুট (ব্রাউজারের Python):
n defects average |avg - p|
10 0 0.00000 0.05000
100 4 0.04000 0.01000
1000 50 0.05000 0.00000
10000 496 0.04960 0.00040
100000 4994 0.04994 0.00006
simulated 0.0260 exact 0.0284 Chebyshev bound 0.1900
প্রথম ১০টি পণ্যে একটিও ত্রুটি নেই, তাই অনুমান 0, যা পুরো ভুল; ছোট নমুনায় এমন হওয়া খুব স্বাভাবিক (P(কোনো ত্রুটি নেই) = 0.9510 ≈ 0.60). নমুনা বাড়ার সঙ্গে চলমান গড় 0.05-এর কাছে জমেছে। ১০০০-এ হুবহু 0.05 এসেছে কাকতালীয়ভাবে; পরের সারিগুলোতে আবার সামান্য সরেছে, কারণ নিয়মটি “কাছে থাকার সম্ভাবনা বাড়ে” বলে, “একবার পৌঁছালে স্থির” বলে না। শেষ লাইনে simulation-এর 0.0260 আর exact 0.0284 কাছাকাছি (১০০০টি চালানের simulation-এ এতটুকু পার্থক্য স্বাভাবিক), আর দুটিই Chebyshev-এর 0.19 সীমার অনেক নিচে।
ভুল ধরুন: “গড় ফিরে আসবে, তাই এবার tail”
একজন বললেন: “একটি নিরপেক্ষ মুদ্রায় পরপর ৫বার head এসেছে। বড় সংখ্যার নিয়ম বলে head-এর অনুপাত 1/2-এ ফিরবে, তাই পরের টসে tail-এর সম্ভাবনা 1/2-এর বেশি।” এই চিন্তার নাম gambler's fallacy. টসগুলো স্বাধীন, তাই পরের টসে tail-এর সম্ভাবনা ঠিক 1/2, আগের ফল যা-ই হোক। নিয়মটি “ক্ষতিপূরণ” দিয়ে কাজ করে না, কাজ করে “পাতলা করে”: ৫টি বাড়তি head পরের n টসের পরেও গড়ে বাড়তিই থাকে, কিন্তু অনুপাতে তার প্রভাব 5/(n + 5), যা n বাড়লে 0-তে যায়। উপপাদ্য ৫.১ অনুপাতের কথা বলে, গণনার পার্থক্যের কথা নয়; আসলে head আর tail-এর সংখ্যার পার্থক্যের standard deviation √n হারে বাড়ে।
৬ · Chernoff bound — সূচকীয় হারে ছোট লেজ
Chebyshev শুধু variance ব্যবহার করে, তাই তার সীমা 1/t² হারে কমে। কিন্তু অনেকগুলো স্বাধীন 0/1 চলকের যোগে আমরা আরও অনেক কিছু জানি, আর তখন লেজ সূচকীয় (exponential) হারে ছোট হয়। এমন সব সীমাকে একসঙ্গে বলে concentration inequality: চলকটি তার গড়ের চারপাশে “ঘন হয়ে জমে” থাকে। সবচেয়ে পরিচিতটির নাম Chernoff bound. এর মূল কৌশল আবার Markov, এবার etX-এ বসিয়ে। E[etX]-কে বলে X-এর moment generating function.
X₁, …, Xₙ যৌথভাবে (mutually) স্বাধীন, প্রতিটি 0 বা 1, P(Xᵢ = 1) = pᵢ. X = X₁ + … + Xₙ আর μ = E[X] = p₁ + … + pₙ হলে, যেকোনো δ > 0-তে
P(X ≥ (1 + δ)μ) ≤ ( eδ / (1 + δ)1+δ )μ
আর 0 < δ ≤ 1 হলে ডান দিক ≤ e−δ²μ/3. নিচের লেজের জন্য, 0 < δ < 1 হলে P(X ≤ (1 − δ)μ) ≤ e−δ²μ/2 (একই পদ্ধতিতে t < 0 নিয়ে প্রমাণ হয়; এখানে বাদ রাখা হলো)।
প্রমাণ (ওপরের লেজ, সম্পূর্ণ): a = (1 + δ)μ আর যেকোনো t > 0 নিন।
- etx ক্রমবর্ধমান, তাই X ≥ a ঠিক তখনই, যখন etX ≥ eta. — একমুখী ফাংশন
- etX > 0, তাই Markov-এ P(X ≥ a) ≤ E[etX] / eta. — উপপাদ্য ৩.১
- etX = etX₁ · … · etXₙ, আর স্বাধীন চলকের গুণফলের প্রত্যাশা প্রত্যাশার গুণফল, তাই E[etX] = ∏ E[etXᵢ]. — যৌথ স্বাধীনতা, পর্ব ৪০
- E[etXᵢ] = (1 − pᵢ) · 1 + pᵢ et = 1 + pᵢ(et − 1) ≤ exp(pᵢ(et − 1)), কারণ সব বাস্তব x-এ 1 + x ≤ ex. — ex-এর উত্তলতা
- গুণ করলে E[etX] ≤ exp(μ(et − 1)), তাই P(X ≥ a) ≤ exp(μ(et − 1) − t(1 + δ)μ). — সূচকের যোগ
- t = ln(1 + δ) > 0 বাছুন: et − 1 = δ, আর ডান দিক eδμ / (1 + δ)(1+δ)μ, অর্থাৎ দাবিকৃত রূপ। ∎ — t বাছাই
সরল রূপ e−δ²μ/3: প্রথম রূপের log হলো μ(δ − (1 + δ)ln(1 + δ)), তাই দেখাতে হবে যে 0 ≤ δ ≤ 1-এ f(δ) = (1 + δ)ln(1 + δ) − δ − δ²/3 ≥ 0. f(0) = 0, f′(δ) = ln(1 + δ) − 2δ/3, f′(0) = 0, আর f″(δ) = 1/(1 + δ) − 2/3, যা δ < 1/2-এ ধনাত্মক আর পরে ঋণাত্মক। তাই f′ প্রথমে বাড়ে, পরে কমে; আর f′(1) = ln 2 − 2/3 ≈ 0.026 > 0, তাই পুরো [0, 1]-এ f′ ≥ 0, ফলে f ≥ 0. ∎ (Calculus-এর এই একটি ধাপ বাদে প্রমাণটি পুরো বিচ্ছিন্ন।)
শর্তের পার্থক্য: Chebyshev-এর জন্য pairwise independence যথেষ্ট ছিল, কারণ variance-এ শুধু জোড়া আসে। Chernoff-এর ধাপ ৩-এ n-টি চলকের গুণফল একসঙ্গে ভাঙা হয়েছে, তাই এখানে যৌথ স্বাধীনতা লাগে। XOR উদাহরণের মতো pairwise-only চলকে Chernoff প্রয়োগ করা বৈধ নয়।
আরেকটি রূপ প্রায়ই সবচেয়ে সুবিধাজনক, যা Hoeffding-এর অসমতা নামে পরিচিত। এর প্রমাণ একই কাঠামোর (Markov-এ etX), কিন্তু একটি আলাদা লেমা চায় (Hoeffding's lemma); এখানে শুধু বিবৃতি দিচ্ছি, প্রমাণ বাদ।
X₁, …, Xₙ যৌথভাবে স্বাধীন, প্রতিটির মান [0, 1]-এর মধ্যে, আর X̄-এর প্রত্যাশা p হলে, যেকোনো ε > 0-তে
P(X̄ − p ≥ ε) ≤ e−2nε², P(X̄ − p ≤ −ε) ≤ e−2nε²
তাই দুই দিক মিলিয়ে P(|X̄ − p| ≥ ε) ≤ 2e−2nε².
§৫-এর নমুনার প্রশ্নে এটি বসান: 2e−2n(0.05)² ≤ 0.05 হতে হলে n ≥ ln(40)/(2 × 0.0025) ≈ 737.8, তাই ৭৩৮টি নমুনা যথেষ্ট, যেখানে Chebyshev চেয়েছিল ২০০০. আর লক্ষ্য আরও কঠোর হলে পার্থক্য বিশাল: ভুলের সম্ভাবনা 0.05 থেকে 0.0001-এ নামালে Chebyshev-এর n ৫০০ গুণ বাড়ে, কিন্তু Hoeffding-এর n বাড়ে শুধু log(1/ভুলের সম্ভাবনা) হারে, তিনগুণেরও কম। মেশিন লার্নিংয়ে “কত ডেটায় শেখা নির্ভরযোগ্য” প্রশ্নে এই log-হারই মূল চাবি; Machine Learning কোর্সের পর্ব ৩-এ PAC learning-এর হিসাবে Hoeffding এভাবেই আসে।
৭ · কোন bound কত শক্ত — exact লেজের সঙ্গে তুলনা
চারটি সীমা হাতে আছে। একই প্রশ্নে সবগুলো বসিয়ে exact উত্তরের সঙ্গে মেলালে বোঝা যায় কোনটি কী দেয়। প্রশ্ন: ১০০টি নিরপেক্ষ টসে মাথা অন্তত a, অর্থাৎ P(X ≥ a). Exact উত্তর C(100, k)-এর যোগফল দিয়ে, ভগ্নাংশে, কোনো আসন্ন মান ছাড়াই।
from fractions import Fraction as F
from math import comb, exp
n, p = 100, F(1, 2) # X = number of heads in 100 fair flips
mu, var = n * p, n * p * (1 - p) # 50 and 25
def exact_tail(a): # P(X >= a), exact
return sum(comb(n, k) for k in range(a, n + 1)) * p**n
print(" a exact Markov Chebyshev Chernoff Hoeffding")
for a in (55, 60, 70, 80):
d = (a - mu) / mu # a = (1 + d) mu
markov = mu / a
cheb = min(1, var / (a - mu) ** 2)
chern = (exp(d) / (1 + d) ** (1 + d)) ** mu
hoeff = exp(-2 * n * ((a - mu) / n) ** 2)
ex = float(exact_tail(a))
print(f"{a:4d} {ex:.2e} {float(markov):.3f} {float(cheb):9.4f}"
f" {float(chern):.2e} {hoeff:.2e}")
two_sided = 2 * exact_tail(60) # P(|X - 50| >= 10), by symmetry
print(f"P(|X - 50| >= 10) = {float(two_sided):.4f} Chebyshev: <= 0.25")আসল আউটপুট (ব্রাউজারের Python):
a exact Markov Chebyshev Chernoff Hoeffding
55 1.84e-01 0.909 1.0000 7.85e-01 6.07e-01
60 2.84e-02 0.833 0.2500 3.91e-01 1.35e-01
70 3.93e-05 0.714 0.0625 2.86e-02 3.35e-04
80 5.58e-10 0.625 0.0278 5.00e-04 1.52e-08
P(|X - 50| >= 10) = 0.0569 Chebyshev: <= 0.25
প্রতিটি সারিতে চারটি সীমাই exact মানের ওপরে, যেমনটি প্রমাণ বলে। a = 80-তে exact উত্তর প্রায় 5.6 × 10−10, অর্থাৎ মোটামুটি ১৮০ কোটিতে একবার। Markov তখনও বলে “≤ 0.625”, প্রায় কিছুই না; Chebyshev বলে “≤ 0.028”, যা 1/t² হারে নামছে; Chernoff আর Hoeffding নামছে সূচকীয় হারে, আর Hoeffding exact মানের ৩০ গুণের মধ্যে চলে এসেছে। a = 55-এর মতো গড়ের খুব কাছে কোনো সীমাই ভালো নয়; তখন Chebyshev-এর মান 1-এর বেশি হতো, তাই কোডে min(1, …) দিয়ে কেটে দেওয়া হয়েছে। শেষ লাইন stepper ২-এর exact মান।
| সীমা | কী জানতে হয় | কমার হার | কখন ভালো |
|---|---|---|---|
| Markov | X ≥ 0, শুধু E[X] | 1/a | আর কিছু জানা না থাকলে; Las Vegas থেকে Monte Carlo বানাতে |
| Chebyshev | E[X], Var(X) | 1/t² | Pairwise independence-এ, যেখানে Chernoff চলে না |
| Chernoff (গুণনীয়) | যৌথভাবে স্বাধীন 0/1 যোগ | সূচকীয়, μ-এর ওপর | বিরল ঘটনা: p ছোট, μ ছোট |
| Hoeffding | যৌথভাবে স্বাধীন, মান [0, 1]-এ | e−2nε² | অনুপাতের ±ε সীমা, নমুনার আকার |
টেবিলে Hoeffding গুণনীয় Chernoff-কে হারিয়েছে, কারণ p = 1/2. বিরল ঘটনায় উল্টোটি হয়। বাজারঘরের চালানে (n = 400, p = 0.05, μ = 20) P(X ≥ 30) নিন: exact 0.0190, Markov 0.667, Chebyshev 0.19, গুণনীয় Chernoff (δ = 0.5) 0.115, তার সরল রূপ e−5/3 ≈ 0.189, অথচ Hoeffding e−2·400·0.025² = e−0.5 ≈ 0.607. Hoeffding শুধু জানে মান [0, 1]-এ, আর ধরে নেয় সবচেয়ে খারাপ variance; গুণনীয় রূপ μ ছোট হওয়ার সুবিধা নেয়। তাই সীমা বাছাইয়ের প্রশ্নটি “কোনটি সেরা” নয়, “আমার কাছে কী তথ্য আছে, আর ঘটনাটি বিরল কি না”।
৮ · Amplification — বারবার চালিয়ে ভুল কমানো
একটি randomized algorithm প্রতিবার ২/৩ সম্ভাবনায় ঠিক “হ্যাঁ/না” উত্তর দেয়। ৩৩% ভুল কোনো কাজের নয় মনে হতে পারে। কিন্তু algorithm-টি k বার, প্রতিবার নতুন এলোমেলো সংখ্যা দিয়ে স্বাধীনভাবে চালিয়ে যে উত্তর বেশিবার এসেছে, সেটি নিলে (majority vote) ভুল দ্রুত কমে। ভুল কমানোর এই কৌশলের নাম amplification.
একটি algorithm প্রতিবার অন্তত 2/3 সম্ভাবনায় ঠিক উত্তর দেয়, আর k (বিজোড়) বার স্বাধীনভাবে চালানো হয়। Majority উত্তর ভুল হওয়ার সম্ভাবনা ≤ e−k/18. তাই ভুল ≤ η করতে k ≥ 18 ln(1/η) যথেষ্ট।
প্রমাণ:
- Xᵢ = 1 যদি i-তম চালনা ঠিক, নইলে 0. Xᵢ-গুলো যৌথভাবে স্বাধীন, কারণ প্রতিবার নতুন এলোমেলো সংখ্যা। X̄ = ঠিক উত্তরের অনুপাত, আর q = E[X̄] ≥ 2/3. — indicator, linearity
- Majority ভুল মানে ঠিক উত্তর অর্ধেকের কম: X̄ < 1/2, ফলে X̄ − q < 1/2 − 2/3 = −1/6. — k বিজোড়, সমতা হয় না
- Hoeffding-এ (p-এর জায়গায় q) ε = 1/6: সম্ভাবনা ≤ e−2k/36 = e−k/18. — উপপাদ্য ৬.২
- e−k/18 ≤ η ⇔ k ≥ 18 ln(1/η). ∎
Chebyshev দিয়েও একটি সীমা আসে, তবে অনেক দুর্বল: ঠিক উত্তরের সংখ্যার variance k · (2/3)(1/3) = 2k/9, আর ভুল হতে হলে সংখ্যাটি গড় 2k/3 থেকে অন্তত k/6 দূরে যেতে হয়, তাই ভুল ≤ (2k/9)/(k/6)² = 8/k. ১০ লাখে একবার ভুলের জন্য Chebyshev চায় k = 80 লাখ, Hoeffding চায় k = 249, আর exact হিসাব বলে 193 যথেষ্ট। নিচের stepper ছোট k-তে exact ভুল হাতে বের করে।
1k = 1: ভুল = 1/32k = 3: ≤ 1 ঠিক → 7/273k = 5: ≤ 2 ঠিক → 17/814k = 25, 101: 0.0415, 0.000275Chebyshev: ≤ 8/k6Hoeffding: ≤ e^(−k/18)
| k | |
| exact ভুল | |
| সীমা |
- একবার। k = 1-এ majority মানে ওই একটি উত্তরই, তাই ভুল 1/3 ≈ 0.333.
- তিনবার। Majority ভুল যদি ঠিক উত্তর 0 বা 1টি: (1/3)³ + 3 · (2/3)(1/3)² = 1/27 + 6/27 = 7/27 ≈ 0.259.
- পাঁচবার। ঠিক উত্তর 0, 1 বা 2টি: (1 + 5·2 + 10·4)/3⁵ = 51/243 = 17/81 ≈ 0.210. প্রতি দুই চালনায় ভুল কমছে, তবে ধীরে।
- অনেকবার। k = 25-এ ভুল 0.0415, k = 101-এ মাত্র 0.00027 (Python-এ exact হিসাব)।
- Chebyshev-এর সীমা। ভুল ≤ 8/k; k = 101-এ 0.079, আসলের প্রায় ৩০০ গুণ। সীমাটি শুধু 1/k হারে কমে।
- Hoeffding-এর সীমা। ভুল ≤ e−k/18; ১০ লাখে এক-এর জন্য k ≥ 249 যথেষ্ট। Exact হিসাবে ক্ষুদ্রতম বিজোড় k = 193, যেখানে ভুল ≈ 9.0 × 10−7.
from fractions import Fraction as F
from math import comb, exp
import random
def majority_error(k): # each run correct with prob 2/3, k odd
bad = sum(comb(k, j) * 2**j for j in range((k + 1) // 2)) # j correct
return F(bad, 3**k) # fewer than half correct
print(" k exact error Chebyshev 8/k Hoeffding e^(-k/18)")
for k in (1, 3, 5, 9, 25, 51, 101, 193):
err = majority_error(k)
print(f"{k:3d} {float(err):.3e} {min(1, 8 / k):.3e} {exp(-k / 18):.3e}")
print("exact for k = 3:", majority_error(3), " k = 5:", majority_error(5))
k = 1
while majority_error(k) > F(1, 10**6):
k += 2
print("smallest odd k with error <= 1e-6:", k)
random.seed(41) # simulate k = 25 runs, 20000 times
trials, wrong = 20_000, 0
for _ in range(trials):
correct = sum(random.random() < 2 / 3 for _ in range(25))
wrong += correct <= 12
print(f"k = 25 simulated {wrong / trials:.4f} exact {float(majority_error(25)):.4f}")আসল আউটপুট (ব্রাউজারের Python):
k exact error Chebyshev 8/k Hoeffding e^(-k/18)
1 3.333e-01 1.000e+00 9.460e-01
3 2.593e-01 1.000e+00 8.465e-01
5 2.099e-01 1.000e+00 7.575e-01
9 1.448e-01 8.889e-01 6.065e-01
25 4.151e-02 3.200e-01 2.494e-01
51 6.888e-03 1.569e-01 5.882e-02
101 2.724e-04 7.921e-02 3.657e-03
193 9.027e-07 4.145e-02 2.205e-05
exact for k = 3: 7/27 k = 5: 17/81
smallest odd k with error <= 1e-6: 193
k = 25 simulated 0.0428 exact 0.0415
Exact কলাম stepper-এর সংখ্যাগুলোই, পূর্ণ ভগ্নাংশ থেকে। ভুলের হিসাবটি একটি পূর্ণসংখ্যার যোগফল ভাগ 3k, তাই k = 193-এও কোনো rounding ভুল নেই। দুই সীমার আচরণ স্পষ্ট: Chebyshev-এর 8/k ছোট k-তে 1 ছাড়ায় (তাই 1-এ কাটা) আর পরে ধীরে নামে; Hoeffding-এর সূচকীয় সীমা exact মানের তুলনায় ঢিলা, কিন্তু একই হারে নামে, তাই দরকারি k-এর ভালো অনুমান দেয় (249 বনাম 193). শেষ লাইনে ২০,০০০ বারের seeded simulation (0.0428) exact মানের (0.0415) কাছাকাছি।
এক দিকের ভুল: Miller–Rabin
কিছু algorithm-এর ভুল শুধু এক দিকে হয়। পর্ব ২৫-এর Miller–Rabin পরীক্ষা “যৌগিক” বললে তা নিশ্চিত সত্য; ভুল হতে পারে শুধু একটি বিজোড় যৌগিক সংখ্যাকে “সম্ভবত মৌলিক” বলায়, আর প্রতিটি এলোমেলো base-এ সেই সম্ভাবনা ≤ 1/4. এখানে majority লাগে না: k-টি স্বাধীন base-এর একটিও যৌগিকতা ধরলে উত্তর “যৌগিক”, আর সবগুলো ব্যর্থ হওয়ার সম্ভাবনা স্বাধীনতার গুণনের নিয়মে ≤ (1/4)k. k = 20-এ এটি ≤ 4−20 ≈ 9.1 × 10−13. এক দিকের ভুলে amplification তাই আরও সস্তা: ভুল প্রতি চালনায় নির্দিষ্ট গুণে কমে, কোনো concentration bound ছাড়াই।
সামনের ঝলক: hash bucket-এর ভার
n-টি অর্ডার আইডি n-টি hash bucket-এ এলোমেলোভাবে পড়লে প্রতিটি bucket-এ গড়ে ১টি আইডি। কিন্তু সবচেয়ে ভারী bucket-এ কতটি? প্রতিটি bucket-এর ভার স্বাধীন 0/1 চলকের যোগ, তাই Chernoff তার লেজ বাঁধে; তারপর n-টি bucket-এর ওপর union bound (পর্ব ৩৮-এর Boole-এর অসমতা) দিলে দেখা যায়, উচ্চ সম্ভাবনায় কোনো bucket-এই O(log n)-এর বেশি আইডি পড়ে না। আরও সূক্ষ্ম উত্তর Θ(log n / log log n), আর পুরো আলোচনা পর্ব ৪২ “Birthday paradox, hash collision আর balls-into-bins”-এ। Hash table-এর কোড আর load factor DSA কোর্সের পর্ব ৩২-এ আছে।
৯ · পরীক্ষার অঙ্ক আর একটি ভুল প্রমাণ
বিশ্ববিদ্যালয়, চাকরি বা ইন্টারভিউর লিখিত পরীক্ষায় এই পর্বের ধাঁচে যে অঙ্ক আসে, তার কয়েকটি পূর্ণ সমাধান। প্রতিটি সংখ্যা scratch-এ Python-এর Fraction দিয়ে মেলানো।
অঙ্ক ১: ৬০০ বার ছক্কা
একটি নিরপেক্ষ ছক্কা ৬০০ বার ছোড়া হলো; X = কতবার 6 এল। E[X], Var(X) বের করুন, আর Chebyshev দিয়ে P(|X − 100| ≥ 20)-এর সীমা দিন।
- X binomial, n = 600, p = 1/6. E[X] = 600/6 = 100.
- Var(X) = 600 × (1/6) × (5/6) = 250/3 ≈ 83.33.
- Chebyshev: P(|X − 100| ≥ 20) ≤ (250/3)/400 = 5/24 ≈ 0.208. (Exact মান প্রায় 0.0325.)
অঙ্ক ২: ঘণ্টায় অর্ডার
বাজারঘরে ঘণ্টায় অর্ডারের সংখ্যা X-এর গড় 50. (ক) শুধু এটুকু জেনে P(X ≥ 100)-এর সীমা কত? (খ) যদি Var(X) = 25 জানা থাকে?
- (ক) X ≥ 0, তাই Markov: P(X ≥ 100) ≤ 50/100 = 1/2.
- (খ) X ≥ 100 হলে |X − 50| ≥ 50, তাই Chebyshev: P(X ≥ 100) ≤ 25/50² = 1/100. বাড়তি তথ্য (variance) সীমাকে ৫০ গুণ শক্ত করেছে।
অঙ্ক ৩: নমুনার আকার
দেরিতে পৌঁছানো অর্ডারের অনুপাত ±0.02-এর মধ্যে মাপতে হবে, ভুলের সম্ভাবনা ≤ 0.01. Chebyshev আর Hoeffding অনুযায়ী কত নমুনা যথেষ্ট?
- Chebyshev, σ² ≤ 1/4: 1/(4n × 0.02²) ≤ 0.01 ⇔ n ≥ 1/(4 × 0.0004 × 0.01) = 62,500.
- Hoeffding: 2e−2n(0.02)² ≤ 0.01 ⇔ n ≥ ln(200)/(2 × 0.0004) ≈ 6622.9, তাই n = 6623.
- একই নিশ্চয়তায় Hoeffding প্রায় সাড়ে নয় গুণ কম নমুনা চায়।
প্রমাণের ভুল ধরুন: “Markov সব চলকে খাটে”
একজন লিখলেন: “দাবি: যেকোনো random variable X আর a > 0-তে P(X ≥ a) ≤ E[X]/a. প্রমাণ: I = {X ≥ a}-এর indicator. তাহলে a · I ≤ X, কারণ I = 1 হলে X ≥ a. প্রত্যাশা নিলে a · P(X ≥ a) ≤ E[X]. ∎” পড়ে ভুলটি নিজে খুঁজুন।
ভুল কোথায়: a · I ≤ X দুই ক্ষেত্রে দেখাতে হয়, আর প্রমাণটি শুধু I = 1-এর ক্ষেত্র দেখেছে। I = 0 হলে দাবিটি 0 ≤ X, যা X ঋণাত্মক হতে পারলে মিথ্যা। Counterexample: একটি দিনের লাভ X = −3 বা +3, প্রতিটি 1/2 সম্ভাবনায়। তাহলে E[X] = 0, আর “Markov” বলত P(X ≥ 3) ≤ 0, অথচ আসল মান 1/2. ঠিক সংস্করণে শর্ত X ≥ 0 লাগে; ঋণাত্মক মান থাকলে প্রথমে X − m-এর মতো একটি অঋণাত্মক চলকে নিন (m = X-এর ক্ষুদ্রতম মান), বা |X|, (X − μ)², etX-এর মতো চলকে Markov বসান, ঠিক যেমন Chebyshev আর Chernoff করে।
আরও গভীরে: Hoeffding-এর পরেও আরও শক্ত সীমা আছে: Bernstein-এর অসমতা variance ছোট হলে ভালো ফল দেয়, আর martingale-এর জন্য Azuma–Hoeffding অসমতা স্বাধীন নয় এমন চলকেও (যেমন একটি একটি করে প্রকাশিত এলোমেলো graph) কাজ করে। স্বাধীনতা পুরোপুরি না থাকলেও k-wise independence দিয়ে অনেক সীমা টিকে থাকে, যা কম এলোমেলো bit-এ algorithm বানাতে (derandomization) ব্যবহার হয়। আর অসীম স্থানে বড় সংখ্যার শক্তিশালী নিয়ম (Kolmogorov, ১৯৩০-এর দশক) আর central limit theorem লেজের আকার আরও নিখুঁতভাবে বলে; তার জন্য AI Foundations কোর্সের পর্ব ৩৭ দেখুন।
পরীক্ষা ও ইন্টারভিউতে: বিশ্ববিদ্যালয়, চাকরি বা ইন্টারভিউর পরীক্ষায় এই ধরনের প্রশ্ন প্রায়ই আসে:
- একটি ছক্কার variance কত? E[X²] − E[X]² = 91/6 − 49/4 = 35/12.
- Binomial(n, p)-এর variance কেন np(1 − p)? n-টি স্বাধীন indicator-এর variance যোগ, প্রতিটি p(1 − p).
- Markov থেকে Chebyshev প্রমাণ করুন। (X − μ)²-এ a = t² বসিয়ে Markov.
- যেকোনো বিতরণে গড় থেকে 3σ দূরে থাকার সম্ভাবনা সর্বোচ্চ কত? 1/9.
- ২/৩ নির্ভুল algorithm-কে ৯৯.৯৯% নির্ভুল কীভাবে করবেন? স্বাধীনভাবে k বার চালিয়ে majority; Hoeffding-এ k ≥ 18 ln(10⁴) ≈ 166.
১০ · AI-এর যুগে — সম্ভাবনার সীমা আর প্রমাণ যাচাই
সম্ভাবনার অসমতায় AI সহকারী প্রায়ই একটি সুন্দর, আত্মবিশ্বাসী উত্তর দেয়, যার ভুল লুকিয়ে থাকে কোনো বাদ পড়া শর্তে বা একটি ছোট ধাপে। এই পর্বের বিষয়ে কয়েকটি ভুল নিয়মিত দেখা যায়:
| AI-এর ভুল | কীভাবে ধরবেন |
|---|---|
| Markov-এ X ≥ 0 শর্ত বাদ দেওয়া | ±3-এর মতো একটি ছোট ঋণাত্মক উদাহরণে দাবিটি পরীক্ষা করুন |
| “Var(X + Y) = Var X + Var Y” স্বাধীনতা ছাড়াই, বা Var(X − Y) = Var X − Var Y | Y = X বা দুই ছক্কা নিয়ে Fraction-এ exact হিসাব করুন |
| Pairwise independence থেকে Chernoff প্রয়োগ | প্রমাণে কোথায় গুণফল ভাঙা হলো দেখুন; XOR উদাহরণ মনে রাখুন |
| সীমা আর আসল মান গুলিয়ে ফেলা: “সম্ভাবনা 0.25” বলা যেখানে শুধু “≤ 0.25” প্রমাণিত | Exact মান C(n, k)-এর যোগ দিয়ে বের করে পাশে রাখুন |
| Chernoff-এর ভুল রূপ বা ধ্রুবক (যেমন /3 আর /2 অদলবদল, δ > 1-এ সরল রূপ) | রূপটির শর্ত (δ-এর পরিসর, কোন লেজ) জিজ্ঞেস করুন, আর সংখ্যায় পরীক্ষা করুন |
| বানানো ইতিহাস বা রেফারেন্স (ভুল সাল, ভুল কৃতিত্ব) | সাল আর নাম বিশ্বস্ত পাঠ্যবই বা মূল প্রবন্ধে মেলান |
AI-এর কাছে সম্ভাবনার একটি সীমা বা প্রমাণ চাইলে এমন কাঠামো দিন, যাতে প্রতিটি ধাপ আলাদা করে যাচাই করা যায়:
AI-এর উত্তর হাতে পেলে — যাচাইয়ের চেকলিস্ট
সম্ভাবনার সীমা যাচাইয়ের সবচেয়ে সস্তা উপায় হলো exact মান পাশে রাখা। ছোট n-এ C(n, k)-এর যোগ এক সেকেন্ডেই হয়; AI-এর দেওয়া সীমা যদি কোথাও exact মানের নিচে নামে, তবে প্রমাণে নিশ্চিত ভুল আছে, আর সেই ধাপটিই খুঁজতে হবে।
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন, তারপর “→ উত্তর” চাপুন।
প্র ০১Jakob Bernoulli-র “golden theorem” কী ছিল, আর তিনি যে নমুনার সংখ্যা হিসাব করেছিলেন তা এত বড় কেন? আজকের সীমার সঙ্গে তুলনা করলে কী শেখা যায়?
সুইস গণিতবিদ Jakob Bernoulli ১৭০৫ সালে মারা যান; তাঁর বই Ars Conjectandi প্রকাশিত হয় মৃত্যুর পরে, ১৭১৩ সালে। বইয়ের চতুর্থ অংশে তিনি যে উপপাদ্য প্রমাণ করেন, তাকে নিজেই বলেছিলেন তাঁর “golden theorem”, আর আজ আমরা তাকে বড় সংখ্যার দুর্বল নিয়মের প্রথম কঠোর রূপ বলি। তাঁর ভাষায় প্রশ্নটি ছিল একটি কলসে সাদা আর কালো পাথর নিয়ে: অনুপাত অজানা, কিন্তু বারবার একটি করে তুলে (আর ফেরত রেখে) কি অনুপাতটি যত ইচ্ছা নিশ্চিতভাবে জানা যায়? তিনি দেখান, হ্যাঁ: যথেষ্ট বেশিবার তুললে পর্যবেক্ষিত অনুপাত সত্যিকারের অনুপাতের নির্দিষ্ট সীমার মধ্যে থাকার সম্ভাবনা যত ইচ্ছা 1-এর কাছে আনা যায়।
তাঁর একটি উদাহরণ বিখ্যাত: সাদা আর কালোর অনুপাত ৩:২, আর পর্যবেক্ষিত অনুপাত ১/৫০-এর মধ্যে থাকার “নৈতিক নিশ্চয়তা” চাই (তাঁর মাপে সম্ভাবনা অন্তত ১০০০/১০০১). তাঁর হিসাবে দরকার প্রায় ২৫,৫৫০ বার তোলা, যা সে যুগের যেকোনো বাস্তব পরীক্ষার চেয়ে অনেক বেশি; গণিত-ইতিহাসের বইগুলো এই সংখ্যাটি এভাবেই উল্লেখ করে, তবে মূল লেখার খুঁটিনাটি মিলিয়ে নেওয়া ভালো। সংখ্যাটি এত বড় কারণ তাঁর অনুমানগুলো ঢিলা ছিল, অনেকটা আমাদের Chebyshev-এর মতো। আধুনিক Hoeffding-ধাঁচের সীমা বা স্বাভাবিক বিতরণের আসন্ন মান দিয়ে একই প্রশ্নে কয়েক গুণ কম নমুনা লাগে, যেমন §৫-এ ২০০০ বনাম ৭৩৮.
পরে Siméon Denis Poisson ১৮৩০-এর দশকে “বড় সংখ্যার নিয়ম” নামটি দেন, আর ১৮৬৭ সালে Chebyshev তাঁর অসমতা দিয়ে নিয়মটির একটি সহজ, সাধারণ প্রমাণ দেন, যা এই পর্বে আমরা দেখেছি। তিনটি ধাপ মিলিয়ে একটি শিক্ষা পরিষ্কার: একটি সত্য উপপাদ্যের প্রথম প্রমাণ প্রায়ই জটিল আর তার সংখ্যাগত সীমা দুর্বল; পরের প্রজন্ম প্রমাণ সরল করে আর সীমা শক্ত করে। তাই একটি সীমা যখন অবাস্তব বড় সংখ্যা দেয়, তখন প্রশ্ন করা উচিত, ঘটনাটি সত্যিই কঠিন, নাকি আমাদের হাতিয়ার ঢিলা।
মূল উপলব্ধি: বড় সংখ্যার নিয়ম শুধু “গড় স্থির হয়” বলে না, একটি পরিমাণগত প্রতিশ্রুতি দেয়; আর সেই প্রতিশ্রুতির দাম (কত নমুনা) নির্ভর করে আমরা কোন অসমতা ব্যবহার করছি তার ওপর।
প্র ০২“Chebyshev-এর অসমতা” কি আসলে Chebyshev-এর? Bienaymé আর Markov-এর ভূমিকা কী, আর গণিতে নামকরণের এই জটিলতা থেকে কী শেখার আছে?
ফরাসি গণিতবিদ Irénée-Jules Bienaymé ১৮৫৩ সালে একটি প্রবন্ধে স্বাধীন (আসলে শুধু পরস্পর সম্পর্কহীন) চলকের যোগফলের variance যে variance-গুলোর যোগ, সেই সূত্র দেন, আর একই লেখায় আজকের Chebyshev-অসমতার মতো একটি ফলও আসে বলে ইতিহাসবিদেরা উল্লেখ করেন। রুশ গণিতবিদ Pafnuty Chebyshev ১৮৬৭ সালে স্বাধীনভাবে অসমতাটি আরও সাধারণ রূপে প্রকাশ করেন আর তা দিয়ে বড় সংখ্যার নিয়ম প্রমাণ করেন। পরে Chebyshev নিজে Bienaymé-এর অগ্রাধিকারের কথা স্বীকার করেছিলেন বলে বলা হয়, আর ফরাসি বইয়ে কখনো একে “Bienaymé–Chebyshev অসমতা” বলা হয়। এই কারণেই উপপাদ্য ২.১-কে আমরা Bienaymé-এর সূত্র বলেছি।
Andrey Markov ছিলেন Chebyshev-এর ছাত্র। আজ যাকে Markov-এর অসমতা বলি, সেটি Markov-এর লেখায় আসে, তবে একই যুক্তি Chebyshev-এর কাজেও পাওয়া যায় বলে অনেক উৎস বলে; তাই কিছু বইয়ে প্রথম অসমতাটিকেও “Chebyshev-এর” বলা হয়। Markov নিজে পরে এমন চলকের শৃঙ্খল নিয়ে কাজ করেন, যারা স্বাধীন নয়, কিন্তু প্রতিটি শুধু আগেরটির ওপর নির্ভর করে; সেখান থেকেই Markov chain, যা আজ search engine-এর ranking থেকে ভাষা-মডেল পর্যন্ত বহু জায়গায় আসে। তিনি দেখাতে চেয়েছিলেন যে বড় সংখ্যার নিয়মের জন্য পুরো স্বাধীনতা জরুরি নয়, ঠিক যেমন এই পর্বে দেখলাম pairwise independence-ই Chebyshev-এর জন্য যথেষ্ট।
নামকরণের এই জটিলতা একটি স্বাভাবিক ঘটনা; এর একটি রসিক নামও আছে, Stigler's law of eponymy: কোনো বৈজ্ঞানিক আবিষ্কারের নাম প্রায়ই তার আসল প্রথম আবিষ্কারকের নামে হয় না। Stephen Stigler ১৯৮০ সালে এটি লেখেন, আর নিজেই বলেন যে ধারণাটি তাঁরও আগের, Robert Merton-এর। শেখার কথা হলো: ইতিহাস লেখার সময় “X প্রথম আবিষ্কার করেন” ধরনের দাবি সাবধানে করুন, আর প্রশ্নে বা উত্তরে নাম নয়, বিবৃতি আর শর্তই আসল।
মূল উপলব্ধি: Markov আর Chebyshev একই একটি ভাবনার দুটি প্রয়োগ, আর তাদের ইতিহাস দেখায় যে গাণিতিক ধারণা প্রায়ই কয়েকজনের হাতে, কয়েক দশক ধরে পরিণত হয়।
প্র ০৩Chernoff bound-এর নাম Herman Chernoff-এর নামে, কিন্তু তার গল্পটি কী? আর আধুনিক কম্পিউটার বিজ্ঞান ও মেশিন লার্নিংয়ে এই ধরনের সীমা কেন সর্বত্র?
Herman Chernoff ১৯৫২ সালে Annals of Mathematical Statistics-এ একটি প্রবন্ধ প্রকাশ করেন, যার মূল বিষয় ছিল পরিসংখ্যানিক পরীক্ষার কার্যকারিতা তুলনা। সেখানে স্বাধীন চলকের যোগফলের লেজকে moment generating function আর Markov দিয়ে বাঁধার কৌশলটি আসে, যাকে আজ Chernoff bound বলি। Chernoff পরে সাক্ষাৎকারে বলেছেন যে মূল অসমতাটি তাঁর সহকর্মী Herman Rubin-এর দেওয়া, আর নিজের নামে পরিচিত হওয়ায় তিনি কিছুটা বিব্রত; এটিও Stigler-এর নিয়মের একটি উদাহরণ (গল্পটি তাঁর নিজের স্মৃতিকথা অনুযায়ী, তাই সেভাবেই পড়ুন)। Wassily Hoeffding ১৯৬৩ সালে Journal of the American Statistical Association-এ সীমাবদ্ধ মানের স্বাধীন চলকের জন্য তাঁর অসমতা প্রকাশ করেন, যা আজ মেশিন লার্নিং তত্ত্বের একটি ভিত্তি।
কম্পিউটার বিজ্ঞানে এই সীমাগুলো প্রায় প্রতিটি randomized algorithm-এর বিশ্লেষণে আসে, কারণ একটি গঠন প্রায়ই একই: অনেকগুলো ছোট, স্বাধীন এলোমেলো সিদ্ধান্ত, আর প্রশ্ন হলো তাদের যোগফল গড় থেকে কতটা সরতে পারে। Randomized quicksort-এ একটি উপাদান কত স্তরের recursion-এ যায়, load balancing-এ সবচেয়ে ব্যস্ত server-এ কত কাজ, একটি নেটওয়ার্কে এলোমেলো routing-এ সবচেয়ে ভিড়ের link-এ কত packet, সবখানে প্রথমে Chernoff দিয়ে একটির লেজ বাঁধা হয়, তারপর union bound দিয়ে সবগুলোর ওপর। লেজটি সূচকীয় হারে ছোট বলেই n-টি জিনিসের union bound-এর n গুণ খরচ সহজে মেটানো যায়: e−c log n = n−c.
মেশিন লার্নিংয়ে প্রশ্ন হলো: প্রশিক্ষণ ডেটায় একটি মডেলের ভুলের হার যা দেখা গেল, নতুন ডেটায় তা কতটা আলাদা হতে পারে? একটি নির্দিষ্ট মডেলের জন্য প্রতিটি উদাহরণ একটি 0/1 চলক (ভুল বা ঠিক), আর Hoeffding বলে n-টি উদাহরণে পার্থক্য ε-এর বেশি হওয়ার সম্ভাবনা ≤ 2e−2nε². অনেক মডেলের মধ্যে বাছাই করলে union bound যোগ হয়, আর সেখান থেকেই PAC learning-এর নমুনা-আকারের সূত্র। Machine Learning কোর্সের পর্ব ৩-এ এই যুক্তি পূর্ণভাবে আছে।
মূল উপলব্ধি: “অনেক স্বাধীন ছোট এলোমেলোতা যোগ হলে ফল গড়ের খুব কাছে থাকে”, এই একটি কথা algorithm থেকে মেশিন লার্নিং পর্যন্ত নিশ্চয়তা দেওয়ার প্রধান হাতিয়ার।
প্র ০৪Randomized algorithm-এর সাফল্যের সম্ভাবনা ২/৩ ধরাই কেন প্রথা, যেখানে ০.৫১ বা ০.৯৯ নেওয়া যেত? Complexity theory-র BPP শ্রেণি এর সঙ্গে কীভাবে যুক্ত?
জটিলতা তত্ত্বে BPP (bounded-error probabilistic polynomial time) হলো সেইসব হ্যাঁ/না সমস্যার শ্রেণি, যেগুলো এমন একটি polynomial-time randomized algorithm সমাধান করে, যা প্রতিটি ইনপুটে অন্তত ২/৩ সম্ভাবনায় ঠিক উত্তর দেয়। শ্রেণিটি John Gill ১৯৭০-এর দশকে probabilistic Turing machine-এর কাজে সংজ্ঞায়িত করেন বলে উল্লেখ করা হয়। ২/৩ সংখ্যাটির আসলে কোনো বিশেষত্ব নেই, আর তার কারণ ঠিক এই পর্বের উপপাদ্য ৮.১: সাফল্যের সম্ভাবনা 1/2-এর চেয়ে যেকোনো নির্দিষ্ট পরিমাণ বেশি হলেই majority vote দিয়ে তাকে যত ইচ্ছা 1-এর কাছে আনা যায়, আর তাতে চালনার সংখ্যা বাড়ে শুধু log(1/ভুল) হারে। তাই ০.৫১, ২/৩ বা ০.৯৯, যেটিই নেওয়া হোক, একই শ্রেণি পাওয়া যায়।
সাধারণ রূপে: সাফল্য 1/2 + γ হলে Hoeffding-এ ভুল ≤ e−2kγ². γ = 1/6-এ এটি e−k/18. γ খুব ছোট হলে (যেমন 1/2 + 2−n) দরকারি k সূচকীয় বড় হয়, তাই শর্তটি হলো γ যেন ইনপুটের আকারের তুলনায় খুব দ্রুত ছোট না হয়। এই কারণেই সংজ্ঞায় “bounded-error” শব্দ, আর 1/2-এর বেশি কিন্তু যত কাছে ইচ্ছা, এমন সম্ভাবনার শ্রেণি (PP) সম্পূর্ণ আলাদা আর অনেক শক্তিশালী বলে বিশ্বাস করা হয়।
এক দিকের ভুলের শ্রেণিগুলো (RP, co-RP) Miller–Rabin-এর মতো: সেখানে পুনরাবৃত্তিতে ভুল সরাসরি গুণ হয়ে কমে। Primality testing দীর্ঘদিন এর সেরা উদাহরণ ছিল; ২০০২ সালে Agrawal, Kayal আর Saxena একটি deterministic polynomial-time পরীক্ষা (AKS) দেন, যা দেখায় সমস্যাটি P-তে আছে। তবু ব্যবহারে Miller–Rabin-ই প্রচলিত, কারণ এটি অনেক দ্রুত আর ভুল 4−k-এ নামানো সস্তা। অনেক গবেষক অনুমান করেন যে BPP = P, অর্থাৎ যথেষ্ট ভালো pseudorandom generator থাকলে এলোমেলোতা বাদ দেওয়া যায়; এটি এখনো প্রমাণিত নয়।
মূল উপলব্ধি: Amplification দেখায় যে “একটু বেশি বার ঠিক” আর “প্রায় সবসময় ঠিক” একই শক্তির, আর এই সমতার গাণিতিক কারণ concentration inequality.
প্র ০৫একটি কারখানার ত্রুটির হার বা একটি জরিপের ফল মাপতে নমুনার আকার কেন মোট জনসংখ্যার ওপর প্রায় নির্ভর করে না? আর বেশি নমুনা নিলেও কোন ভুল ঠিক হয় না?
§৫-এর হিসাবে n ≥ 2000 এসেছিল শুধু ε আর ভুলের সম্ভাবনা থেকে; লাইনে মোট পণ্য ১০ হাজার না ১০ কোটি, তা সূত্রে কোথাও আসেনি। কারণ প্রতিটি নমুনা একটি স্বাধীন indicator, যার প্রত্যাশা p, আর গড়ের variance p(1 − p)/n. জনসংখ্যা নয়, নমুনার সংখ্যাই অনিশ্চয়তা ঠিক করে। ফেরত না রেখে তোলা হলে (একই পণ্য দুবার নয়) চলকগুলো পুরো স্বাধীন থাকে না, আর variance আসলে সামান্য কমে; জনসংখ্যা নমুনার চেয়ে অনেক বড় হলে সেই সংশোধন প্রায় ১. তাই পুরো দেশের একটি জরিপ আর একটি জেলার জরিপে একই নির্ভুলতার জন্য প্রায় একই সংখ্যক মানুষ লাগে, যা অনেকের কাছে প্রথমে অবিশ্বাস্য মনে হয়।
“প্রায় ±1/√n” নিয়মটিও এখান থেকে আসে: p = 1/2-এ গড়ের standard deviation 1/(2√n). ১০০০ নমুনায় এটি প্রায় 0.016, তাই সাধারণত ±৩ শতাংশ বিন্দুর মতো একটি সীমা বলা হয় (central limit theorem দিয়ে আরও নিখুঁত হিসাব; তার পরিসংখ্যানিক দিক AI Foundations কোর্সের পর্ব ৩৬ আর পর্ব ৩৭-এ)। নির্ভুলতা দ্বিগুণ করতে নমুনা চারগুণ লাগে, তাই একটি সীমার পর আরও নমুনা নেওয়া খুব ব্যয়বহুল হয়ে যায়।
কিন্তু এই সব প্রমাণের একটি অনুমান আছে: প্রতিটি নমুনার প্রত্যাশা সত্যিই p. নমুনা যদি পক্ষপাতদুষ্ট হয়, যেমন শুধু যাঁরা স্বেচ্ছায় উত্তর দেন, বা শুধু একটি ভালো মেশিনের পণ্য, তাহলে প্রত্যাশা p নয়, অন্য একটি q, আর বড় সংখ্যার নিয়ম অত্যন্ত নির্ভরযোগ্যভাবে গড়কে q-এর দিকেই নেয়। বেশি নমুনা তখন শুধু ভুল উত্তরের ওপর আত্মবিশ্বাস বাড়ায়। মান নিয়ন্ত্রণে তাই এলোমেলো নমুনা বাছাইয়ের পদ্ধতি (কোন পণ্য, কোন সময়, কোন শিফট) গণিতের মতোই গুরুত্বপূর্ণ।
মূল উপলব্ধি: Concentration inequality এলোমেলো ভুল (variance) কমায়, পদ্ধতিগত ভুল (bias) নয়; তাই “কত নমুনা” প্রশ্নের আগে “কীভাবে নমুনা” প্রশ্নের উত্তর দিতে হয়।
অনুশীলন
আগে খাতায় করুন, তারপর উত্তর খুলে মেলান।
-
প্রমাণ: X-এর variance সসীম আর c যেকোনো বাস্তব সংখ্যা হলে প্রমাণ করুন, E[(X − c)²] = Var(X) + (E[X] − c)². এ থেকে দেখান যে c = E[X]-এ E[(X − c)²] সবচেয়ে ছোট।
- μ = E[X] লিখুন। X − c = (X − μ) + (μ − c). — যোগ-বিয়োগ
- বর্গ করলে (X − c)² = (X − μ)² + 2(μ − c)(X − μ) + (μ − c)². — বীজগণিত
- প্রত্যাশা নিলে মাঝের পদ 2(μ − c) · E[X − μ] = 2(μ − c) · 0 = 0, কারণ μ − c ধ্রুবক। — linearity
- তাই E[(X − c)²] = Var(X) + (μ − c)². দ্বিতীয় পদ ≥ 0, আর 0 হয় ঠিক c = μ-তে; তাই c = μ-তে মান ক্ষুদ্রতম, Var(X). ∎
অর্থ: গড় বর্গ-ভুল (mean squared error) সবচেয়ে কম হয় গড় দিয়ে অনুমান করলে। c = 0 বসালে E[X²] = Var(X) + E[X]², অর্থাৎ উপপাদ্য ১.২ আবার পাওয়া যায়।
-
হিসাব: বাজারঘরের একটি চালানে ৪০০টি পণ্য, প্রতিটি স্বাধীনভাবে 0.05 সম্ভাবনায় ত্রুটিপূর্ণ; X = ত্রুটিপূর্ণ পণ্যের সংখ্যা। (ক) E[X] আর Var(X). (খ) Markov দিয়ে P(X ≥ 40)-এর সীমা। (গ) Chebyshev দিয়ে P(|X − 20| ≥ 10)-এর সীমা। (ঘ) Chernoff-এর সরল রূপে P(X ≥ 30)-এর সীমা।
(ক) E[X] = 400 × 0.05 = 20; Var(X) = 400 × 0.05 × 0.95 = 19.
(খ) P(X ≥ 40) ≤ 20/40 = 0.5. Exact মান প্রায় 3.1 × 10−5, তাই সীমাটি সত্য কিন্তু খুব ঢিলা।
(গ) P(|X − 20| ≥ 10) ≤ 19/100 = 0.19. Exact মান প্রায় 0.0284 (§৫-এর Python ব্লকেও এসেছে)।
(ঘ) 30 = (1 + δ) × 20 থেকে δ = 0.5 ≤ 1, তাই P(X ≥ 30) ≤ e−0.25 × 20/3 = e−5/3 ≈ 0.189. Exact মান প্রায় 0.0190. সব সংখ্যা scratch-এ Fraction আর math.comb দিয়ে মেলানো।
-
আউটপুট অনুমান: কোড না চালিয়ে বলুন কী ছাপা হবে, আর দ্বিতীয় লাইনের দুটি সংখ্যা কোন অসমতার সঙ্গে সম্পর্কিত। তারপর যেকোনো Python-এ চালিয়ে মেলান।
from fractions import Fraction as F vals = [0, 0, 0, 10] # four equally likely outcomes m = F(sum(vals), 4) var = sum((F(v) - m) ** 2 for v in vals) / 4 print(m, var) print(m / 10, sum(v >= 10 for v in vals) / 4)5/2 75/4 1/4 0.25গড় m = 10/4 = 5/2. বিচ্যুতির বর্গ: তিনবার (5/2)² = 25/4 আর একবার (15/2)² = 225/4; যোগ 300/4 = 75, ভাগ 4 = 75/4. দ্বিতীয় লাইনে Markov-এর সীমা E[X]/10 = 1/4 আর আসল P(X ≥ 10) = 0.25: দুটি সমান। এই বিতরণে সব ভর হয় 0-তে, নয়তো ঠিক a = 10-এ, তাই Markov এখানে হুবহু শক্ত (§৩)। খেয়াল করুন, প্রথম সংখ্যাটি Fraction, দ্বিতীয়টি সাধারণ float, কারণ পূর্ণসংখ্যা ভাগ 4 Python-এ float দেয়। আউটপুট CPython-এ চালিয়ে মেলানো।
-
প্রমাণের ভুল ধরুন: একজন লিখলেন: “দাবি: X আর Y স্বাধীন হলে Var(X − Y) = Var(X) − Var(Y). প্রমাণ: স্বাধীন চলকের variance যোগ হয়, আর variance রৈখিক, তাই বিয়োগের variance হলো variance-এর বিয়োগ। ∎” কোথায় ভুল, আর সঠিক উত্তর কী?
- ভুল ধাপ: “variance রৈখিক” মিথ্যা। উপপাদ্য ১.২ বলে Var(aY) = a² Var(Y), তাই Var(−Y) = (−1)² Var(Y) = Var(Y), −Var(Y) নয়।
- সঠিক উত্তর: X আর −Y স্বাধীন, তাই Var(X − Y) = Var(X) + Var(−Y) = Var(X) + Var(Y).
- Counterexample: দুটি স্বাধীন ছক্কা। দাবি বলত Var(X − Y) = 35/12 − 35/12 = 0, অর্থাৎ X − Y সবসময় একই সংখ্যা, যা স্পষ্টতই মিথ্যা (X − Y কখনো 0, কখনো 5). আসল মান 35/6, §২-এর Python ব্লকে exact হিসাবে এসেছে।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমবড় সংখ্যার দুর্বল নিয়মের প্রমাণের ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)
- নমুনা-গড় X̄ = (X₁ + … + Xₙ)/n সংজ্ঞায়িত করা
- Linearity দিয়ে E[X̄] = μ দেখানো
- Pairwise independence দিয়ে Var(X₁ + … + Xₙ) = nσ² পাওয়া
- Var(aY) = a² Var(Y) দিয়ে Var(X̄) = σ²/n পাওয়া
- X̄-এ Chebyshev বসানো: P(|X̄ − μ| ≥ ε) ≤ σ²/(nε²)
- n বাড়লে ডান দিক 0-তে যায়, এই সিদ্ধান্ত টানা
একটি নিরপেক্ষ ছক্কার এক দানের মান X (1 থেকে 6, সমান সম্ভাবনা)। Var(X) কত?
- 7/2
- 91/6
- 35/12
- 35/6
৪০০টি পণ্যের একটি চালানে প্রতিটি পণ্য স্বাধীনভাবে 0.05 সম্ভাবনায় ত্রুটিপূর্ণ। ত্রুটিপূর্ণ পণ্যের সংখ্যার variance কত?
- 20
- 19
- 4.36
- 380
ডেলিভারির দেরি কখনো ঋণাত্মক নয়, আর গড় দেরি ২ ঘণ্টা; আর কিছু জানা নেই। দেরি ৮ ঘণ্টা বা বেশি হওয়ার সম্ভাবনার সবচেয়ে ভালো নিশ্চিত সীমা কোনটি?
- ≤ 1/4
- ≤ 1/16
- ≤ 1/2
- ঠিক 1/4
যেকোনো বিতরণে (variance সসীম, σ > 0) গড় থেকে অন্তত 3σ দূরে থাকার সম্ভাবনা সর্বোচ্চ কত, যা Chebyshev নিশ্চিত করে?
- 1/3
- 0.0027
- 1/6
- 1/9
Var(X₁ + … + Xₙ) = Var(X₁) + … + Var(Xₙ) সূত্রটির জন্য X₁, …, Xₙ সম্পর্কে কোন শর্ত যথেষ্ট?
- যৌথ (mutual) স্বাধীনতা জরুরি
- জোড়ায় জোড়ায় (pairwise) স্বাধীনতা
- কোনো শর্ত লাগে না
- সবগুলোর বিতরণ একই হওয়া
একটি algorithm প্রতিবার স্বাধীনভাবে 2/3 সম্ভাবনায় ঠিক উত্তর দেয়। ৩ বার চালিয়ে majority নিলে উত্তর ভুল হওয়ার সম্ভাবনা কত?
- 1/27
- 1/3
- 7/27
- 20/27
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন, অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:
মনে রাখুন
- Variance: Var(X) = E[(X − μ)²] = E[X²] − E[X]², Var(aX + b) = a² Var(X); ছক্কায় 35/12.
- যোগফল: Pairwise independence-এ variance যোগ হয়; তাই binomial-এ np(1 − p), আর n-টির গড়ে σ²/n.
- Markov আর Chebyshev: X ≥ 0-তে P(X ≥ a) ≤ E[X]/a; (X − μ)²-এ বসিয়ে P(|X − μ| ≥ t) ≤ σ²/t². দুটিই আর ভালো করা যায় না, যদি শুধু ওই তথ্য জানা থাকে।
- বড় সংখ্যা আর Chernoff: Chebyshev থেকেই দুর্বল নিয়ম; যৌথভাবে স্বাধীন 0/1 যোগে লেজ সূচকীয় হারে ছোট, etX-এ Markov বসিয়ে প্রমাণ।
- Amplification: ২/৩ থেকে majority vote-এ ভুল ≤ e−k/18; এক দিকের ভুলে (Miller–Rabin) সরাসরি (1/4)k. সব সীমা exact মানের পাশে রেখে যাচাই করুন।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ৪২ · Birthday paradox, hash collision আর balls-into-binsপরবর্তী পর্বজন্মদিনের ধাঁধা, hash collision আর bucket-এর ভার।
- পর্ব ২৫ · Primality test আর factoring — Miller–Rabin থেকে কঠিনতার ধারণাপুনরালোচনাএক দিকের ভুল আর পুনরাবৃত্তিতে 4−k.
- ডিসক্রিট ম্যাথমেটিক্স · কোর্স হোম৮৩টি পর্বপুরো কোর্সের মানচিত্র আর ১৪টি মডিউল।
- DSA · পর্ব ৬১ · Randomized অ্যালগরিদম — Las Vegas আর Monte Carloকোডে প্রয়োগMarkov আর Chernoff দিয়ে algorithm-এর বিশ্লেষণ, কোডসহ।
- Machine Learning · পর্ব ৩ · শেখার তত্ত্ব — ERM, generalisation gap, PAC আর VC-এর অন্তর্দৃষ্টিপ্রয়োগHoeffding আর union bound থেকে নমুনা-আকারের সূত্র।