บันทึกคำบรรยายวิชา 204512 นี้ เป็นบันทึกที่นิสิตเขียนขึ้น เนื้อหาโดยมากยังไม่ผ่านการตรวจสอบอย่างละเอียด การนำไปใช้ควรระมัดระวัง
จดบันทึกคำบรรยายโดย:
- นายมนต์ชัย สารทอง
- นายอุกฤษณ์ กุลดิลก 50653971
บทนี้จะกล่าวถึงทฤษฎีความน่าจะเป็นพื้นฐาน จากนั้นจะพิจารณาโครงสร้างข้อมูลแบบสุ่มสองแบบ คือ skip list และ universal hash
Balls & Bins
- มีถัง n ถัง
- มีบอล n ลูก
![{\displaystyle {\rm {Pr[first\ bin\ is\ empty]=}}\left({{\rm {1-}}{\frac {\rm {1}}{\rm {n}}}}\right)^{\rm {n}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/872ae7759506a112be7071c0d265611466e058b1)
Random Variable
- นิยาม
- สำหรับตัวแปรสุ่ม X
![{\displaystyle \sum \limits _{i=-\infty }^{\infty }{i\cdot \Pr[X=i]}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2e3c91784fe9c9663e402366d27ca41b9012a195)
Ex.1 มีลูกเต๋า 2 ลูก โยนทีละลูก
ให้ตัวแปรสุ่ม
แต้มบนลูกเต๋าลูกที่ 1
แต้มบนลูกเต๋าลูกที่ 2
แต้มรวม
![{\displaystyle E[Y_{1}]=(1+2+3+...+6)\cdot {\frac {1}{6}}=3.5}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7f77b660319b5ac06155587ebf8aea3cc6b6c4db)
-
Wikimedia Error
Error
Too many requests (f061ab2)
![{\displaystyle E[Y_{2}]=(1+2+3+...+6)\cdot {\frac {1}{6}}=3.5}](https://wikimedia.org/api/rest_v1/media/math/render/svg/844ed0f7193d0ef657f6bcccf2eef0f6e44ce5df)
-
Wikimedia Error
Error
Too many requests (f061ab2)
![{\displaystyle E[Y]=2\cdot {\frac {1}{6}}\cdot {\frac {1}{6}}+3\cdot 2\cdot {\frac {1}{36}}+4\cdot 3\cdot {\frac {1}{36}}+5\cdot .....=7}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5609739b81381559b0049f44f8e8deb79cce8b01)
Linearity of Expectation
สำหรับตัวแปรสุ่ม X, Y
จาก Ex.1 ให้ตัวแปรสุ่ม X แทนจำนวนถังว่าง
![{\displaystyle E[X]=?}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fed450511cffa0a2dc75677b3834b8e8eac00989)
ให้ตัวแปรสุ่ม
ถ้าถังที่ i ว่าง
กรณีอื่นๆ
สังเกตว่า

ดังนั้น
![{\displaystyle E[X]=E[\sum \limits _{i=1}^{n}{X_{i}}]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/801de500a1e2efcb14962d97f5b66467a5cfad32)
โดย Linearity of Expectation
![{\displaystyle E[X_{i}]=0\cdot Pr[X_{i}=0]+1\cdot Pr[X_{i}=1]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3760a6ac32ce42b59374146bacff546dcb2c4692)
-
Wikimedia Error
Error
Too many requests (f061ab2)
![{\displaystyle E[X_{i}]=Pr[X_{i}=1]\,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d4a09691e19daaccd3bfd412a6d0f965794b7f68)
![{\displaystyle E[X]=\sum \limits _{i=1}^{n}{(1-{\frac {1}{n}})^{n}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f0557ac0e512b3f4a4c7596fee061461dc318d88)
![{\displaystyle E[X]=n(1-{\frac {1}{n}})^{n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/201a81a125622b9c3f670015530f328eec2f407e)

มีบอล m ลูก
มีถัง n ถัง
ให้ จำนวนถังว่าง
หา E[X]
![{\displaystyle E[X]=E[\sum \limits _{i=1}^{n}{X_{i}}]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/801de500a1e2efcb14962d97f5b66467a5cfad32)
![{\displaystyle E[X]=\sum \limits _{i=1}^{n}{E[X_{i}]}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bf4ad4e1484061a7df295923212bd111778bf5cb)
![{\displaystyle E[X]=\sum \limits _{i=1}^{n}{(1-{\frac {1}{n}})^{m}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1ac8d92a4cf6d0c157d83c76f3a2d9d01644bc10)
ต้องโยนบอลกี่ลูก X จะเข้าใกล้ 0
![{\displaystyle E[X]=n(1-{\frac {1}{n}})^{m}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b99da437eb4248c993a8b471f5520595d2c30c2c)
![{\displaystyle E[X]\leq n(e^{-1})^{\frac {m}{n}}={\frac {n}{e^{\frac {m}{n}}}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/37bd3e4e1b2a73d962acfe9cd9ea9b3b2bb47869)


ให้
![{\displaystyle E[X]=n(1-{\frac {1}{n}})^{cn\ ln\ n}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/951924294a8c657f690973fdb0080bc312bf5ab0)
![{\displaystyle E[X]\leq {\frac {n}{n^{c}}}={\frac {1}{n^{c-1}}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/45b29328a344d374d1acc88be44d67e1b4479e13)
- Thm
- สำหรับตัวแปรสุ่ม X, Y
![{\displaystyle E[X+Y]=E[X]+E[Y]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ea2251900ec2b03db1d6f870336155a2a09ff7f1)
- Proof
![{\displaystyle E[X+Y]=\sum \limits _{i=-\infty }^{\infty }{i\cdot Pr[X+Y=i]}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/32b83d952561845d379227ca45709ad3fd3f9a8a)
![{\displaystyle E[X+Y]=\sum \limits _{i=-\infty }^{\infty }{i\cdot [\sum \limits _{j=-\infty }^{\infty }{Pr[X=j,Y=i-j]}]}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f7ea0acc1a12bf4bda04b7a363aa239e5b302cba)
- ให้

![{\displaystyle E[X+Y]=\sum \limits _{a=-\infty }^{\infty }{\sum \limits _{b=-\infty }^{\infty }{(a+b)Pr[X=b,Y=a]}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0f79501fe89bdabfe921e4e4d9e8e404ee594bc3)
![{\displaystyle E[X+Y]=\sum \limits _{a=-\infty }^{\infty }{\sum \limits _{b=-\infty }^{\infty }{a\cdot Pr[X=b,Y=a]}}+\sum \limits _{a=-\infty }^{\infty }{\sum \limits _{b=-\infty }^{\infty }{b\cdot Pr[X=b,Y=a]}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99f8af1aae27ea9cfe37a81eedf3a459f7bdf7a0)
![{\displaystyle E[X+Y]=\sum \limits _{a=-\infty }^{\infty }{a[\sum \limits _{b=-\infty }^{\infty }{Pr[X=b,Y=a]}]}+\sum \limits _{b=-\infty }^{\infty }{b[\sum \limits _{a=-\infty }^{\infty }{Pr[X=b,Y=a]}]}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5cdf8f500331398d760391cf25291846ae13b5c0)
![{\displaystyle E[X+Y]=Pr[Y=a]+Pr[X=b]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3c7fa0aea59c4e1bf4820c42307ebbef7c05729a)
ตามต้องการ
ตัวแปรสุ่มที่สำคัญ
1. ตัวแปรสุ่มแบบ indicator
มีตัวแปรสุ่มที่มีค่า 0 หรือ 1 สังเกตว่า
Proposition: ถ้า X เป็น Indicator R.V.
Wikimedia Error
Error
Too many requests (f061ab2)
Proof: จากนิยาม เราได้ว่า
Wikimedia Error
Error
Too many requests (f061ab2)
2. ตัวแปรสุ่มแบบ binomial
- มีการทดลองสำเร็จด้วยความน่าจะเป็น p
- ทดลอง n ครั้ง แบบไม่ขึ้นต่อกัน
- จำนวนครั้งของการทดลองที่สำเร็จ จะเป็นตัวแปรสุ่มแบบ
- binomial => มี พารามิเตอร์ (n, p)
สำหรับตัวแปรสุ่ม X แบบ binomial ที่มี parameter (n, p)
ให้
ถ้าการทดลองครั้งที่ i สำเร็จ
- กรณีอื่นๆ

ดังนั้น
-
Wikimedia Error
Error
Too many requests (f061ab2)
![{\displaystyle Pr[X=a]=C(n,a)\cdot p^{a}(1-p)^{n-a}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/1f2d422c3102289f0149a89780f9bad8b5bdb55d)
เมื่อ แทนสัมประสิทธิ์ทวินาม ที่มีค่าเท่ากับ
ทั้งนี้เนื่องจาก ในการทดลอง n ครั้ง จะทดลองสำเร็จ a ครั้ง มีจำนวนรูปแบบที่เป็นไปได้ทั้งหมดเท่ากับ แบบ และแต่ละแบบ มีความน่าจะเป็นที่จะเกิดขึ้นเท่ากับ
3. Geometric R.V.
- มีเหรียญที่ออกหัวด้วยความน่าจะเป็น p
- จำนวนครั้งที่โยนจนได้หัว เป็นตัวแปรสุ่มแบบ geometric [พารามิเตอร์ p]
- ให้ r.v. X เป็นตัวแปรสุ่มแบบ geometric ที่มี parameter p
![{\displaystyle E[X]={\frac {1}{p}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/db85df0d1c494b9c8488276e542ac7a055a92492)
Skip List
#---------------->O---------->#
|
#---->O---------->O------->O->#
| | |
#---->O------->O->O---->O->O->#
| | | | |
#->O->O->O->O->O->O->O->O->O->#
ในการตัดสินใจว่าแต่ละโหนดจะมีความสูงขึ้นไปเท่าไหร่ จะใช้ความน่าจะเป็น เช่น การโยนเหรียญ เมื่อมีการเพิ่มข้อมูลใหม่ จะค้นหาจนกระทั่งพบช่องที่สามารถลงได้ จากนั้นก็ใช้ความน่าเป็น ในการดูว่าจะให้โหนดที่เพิ่มลงไปใหม่ควรจะมีความสูงเท่าไหร่
เมื่อกล่าวว่าเหตุการณ์ใดเกิดขึ้นด้วยความน่าจะเป็นสูง จะหมายความว่า เหตุการณ์ดังกล่าวขะไม่เกิดขึ้นด้วยความน่าจะเป็นไม่เกิน เมื่อ c>0 และ n คือ parameter ของระบบ
Lemma: skip list ที่มีข้อมูล n ตัวจะมีความสูง O(log n) ด้วยความน่าจะเป็นสูง
Proof: พิจารณาข้อมูล x ใดๆ ความน่าจะเป็นที่ระดับของ x>k
- Pr[ระดับ x>k] =

ให้เหตุการณ์
แทนเหตุการณ์ที่ข้อมูลตัวที่ i มีระดับมากกว่า k
- Pr[
] =
ให้เหตุการณ์ A แทนเหตุการณ์ที่มีข้อมูลบางตัวมีระดับมากกว่า k

ดังนั้น
ให้ K = c log n = O(log n) จะได้ว่า
- Pr[ความสูงไม่เกิน k] = 1 - Pr[มีข้อมูลบางตัวมีระดับมากกว่า k]
Wikimedia Error
Error
Too many requests (f061ab2)

ถ้า c>2 , เหตุการณ์ดังกล่าวจะเกิดด้วยความน่าจะเป็นสูง
- Pr[เดิน k node] =
Wikimedia Error
Error
Too many requests (f061ab2)

Theorem: Expected search time ของ skip list ที่มีข้อมูล n ตัว คือ O(log n)
Proof
- ให้ H = ความสูง = O(log n)
- ให้
เป็นเวลาที่ใช้ในชั้นที่ i
-
Wikimedia Error
Error
Too many requests (f061ab2)

Hashing
ในส่วนนี้ จะให้
Wikimedia Error
Error
Too many requests (f061ab2)
แทนเซตของคีย์
และ
Wikimedia Error
Error
Too many requests (f061ab2)
แืทนเซตของดัชนีในตาราง
hash function
จะส่งคีย์ไปยังตำแหน่งในตาราง
นิยาม: Family of hash function เป็น 2-universal ถ้า สำหรับทุก ๆ
สมาชิก
ที่
,
เลือกจำนวนเฉพาะ p > M
ให้ สำหรับ
และ

- Lemma
- สำหรับ x, y ที่
- จำนวน
ที่
- ไม่เกิน
ตัว
- Proof
- ให้

- (1) ถ้า
- พิสูจน์ด้วยข้อขัดแย้ง
- assume

- x = y
- (2) ถ้า
แล้ว
- จำนวนคู่ r, s ที่สอดคล้อง
![{\displaystyle \leq p[{\frac {p}{N}}-1]\leq {\frac {p(p-1)}{N}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/05289c21ed1de8a5d24ae7faf3fb91ca84025a64)
- (3) พิจารณา คู่ r, s คู่หนึ่ง ที่
- จะหาค่า a, b ที่


- แต่ละคู่ r, s จะมี a, b คู่เดียว
จาก (1), (2), (3), มี a, b ไม่เกิน
คู่