มาร์คอฟเชนเป็นแบบจำลองของระบบที่เปลี่ยนไปมาระหว่างสถานะทีละก้าว เช่น แดดออกและฝนตก กฎสำคัญคือก้าวถัดไปขึ้นอยู่กับสถานะปัจจุบันเท่านั้น ถ้าสมมตินี้สมเหตุสมผลสำหรับระบบที่คุณกำลังสร้างแบบจำลอง

ความน่าจะเป็นแบบหนึ่งก้าวเหล่านี้จะถูกรวบรวมไว้ในเมทริกซ์การเปลี่ยนสถานะ ถ้ากระบวนการอยู่ในสถานะ ii ตอนนี้ และย้ายไปสถานะ jj ถัดไปด้วยความน่าจะเป็น PijP_{ij} จะได้ว่า

P=(Pij)P = (P_{ij})

สำหรับมาร์คอฟเชนแบบจำกัด แต่ละแถวของ PP จะมีผลรวมเป็น 11 เพราะกระบวนการต้องย้ายไปยังหนึ่งในสถานะถัดไปที่อนุญาตเสมอ

สมบัติมาร์คอฟหมายถึงอะไร

แนวคิดอย่างเป็นทางการคือ

P(Xn+1=jXn=i,Xn1,,X0)=P(Xn+1=jXn=i)P(X_{n+1} = j \mid X_n = i, X_{n-1}, \ldots, X_0) = P(X_{n+1} = j \mid X_n = i)

นี่หมายความว่า เมื่อคุณรู้สถานะปัจจุบัน Xn=iX_n = i แล้ว ประวัติที่เก่ากว่านั้นจะไม่เปลี่ยนความน่าจะเป็นของก้าวถัดไปในแบบจำลอง

เงื่อนไขนี้สำคัญมาก ระบบจริงบางระบบมีความจำ มีแนวโน้ม หรือมีผลกระทบที่ล่าช้า ดังนั้นมาร์คอฟเชนจะเหมาะก็ต่อเมื่อการมองว่า "รู้สถานะปัจจุบันก็พอ" เป็นการประมาณที่สมเหตุสมผล

วิธีอ่านเมทริกซ์การเปลี่ยนสถานะ

สมมติว่าแบบจำลองสภาพอากาศอย่างง่ายมี 2 สถานะ:

  • แดดออก
  • ฝนตก

ใช้เมทริกซ์การเปลี่ยนสถานะนี้:

P=[0.80.20.40.6]P = \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix}

ให้อ่านแต่ละแถวเป็นสถานะปัจจุบัน และแต่ละคอลัมน์เป็นสถานะถัดไป

ดังนั้นถ้าวันนี้แดดออก แบบจำลองบอกว่าพรุ่งนี้จะมีแดดออกด้วยความน่าจะเป็น 0.80.8 และฝนตกด้วยความน่าจะเป็น 0.20.2 ถ้าวันนี้ฝนตก พรุ่งนี้จะมีแดดออกด้วยความน่าจะเป็น 0.40.4 และฝนตกด้วยความน่าจะเป็น 0.60.6

ตัวอย่างคำนวณ: สภาพอากาศในช่วงสองวัน

สมมติว่าการแจกแจงของวันนี้คือ

v0=[10]\mathbf{v}_0 = \begin{bmatrix} 1 & 0 \end{bmatrix}

นี่หมายความว่าแบบจำลองเริ่มต้นที่สถานะแดดออกด้วยความน่าจะเป็น 11

การแจกแจงของวันพรุ่งนี้คือ

v1=v0P=[10][0.80.20.40.6]=[0.80.2]\mathbf{v}_1 = \mathbf{v}_0 P = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix} = \begin{bmatrix} 0.8 & 0.2 \end{bmatrix}

ดังนั้นหลังจากหนึ่งก้าว แบบจำลองให้โอกาสแดดออก 80%80\% และโอกาสฝนตก 20%20\%

หลังจากอีกหนึ่งก้าว

v2=v1P=[0.80.2][0.80.20.40.6]=[0.720.28]\mathbf{v}_2 = \mathbf{v}_1 P = \begin{bmatrix} 0.8 & 0.2 \end{bmatrix} \begin{bmatrix} 0.8 & 0.2 \\ 0.4 & 0.6 \end{bmatrix} = \begin{bmatrix} 0.72 & 0.28 \end{bmatrix}

ตอนนี้ความน่าจะเป็นของแดดออกคือ 0.720.72 และของฝนตกคือ 0.280.28

ประเด็นสำคัญไม่ได้มีแค่การคำนวณ เมทริกซ์นี้อัปเดตการแจกแจงความน่าจะเป็นทั้งชุดทีละก้าว ซึ่งเป็นเหตุผลว่าทำไมมาร์คอฟเชนจึงมีประโยชน์สำหรับกระบวนการที่เกิดซ้ำ

มาร์คอฟเชนถูกใช้ที่ไหน

มาร์คอฟเชนมีประโยชน์เมื่อระบบเปลี่ยนแปลงเป็นลำดับขั้น และคุณต้องการหาความน่าจะเป็นของสิ่งที่จะเกิดขึ้นต่อไป

ตัวอย่างที่พบบ่อย ได้แก่ แบบจำลองสภาพอากาศ การเคลื่อนที่ในเกมกระดาน แบบจำลองคิว และการนำทางบนเว็บแบบอย่างง่าย ในแต่ละกรณี แบบจำลองจะช่วยได้ก็ต่อเมื่อเลือกสถานะได้เหมาะสมและความน่าจะเป็นของการเปลี่ยนสถานะสมจริง

ข้อผิดพลาดที่พบบ่อยเกี่ยวกับมาร์คอฟเชน

คิดว่ากระบวนการสุ่มทุกแบบเป็นมาร์คอฟ

กระบวนการหนึ่งไม่ได้เป็นมาร์คอฟเชนโดยอัตโนมัติเพียงเพราะมันเป็นกระบวนการสุ่ม แบบจำลองต้องมีพฤติกรรมของก้าวถัดไปที่ถูกกำหนดโดยสถานะปัจจุบันตามนิยามของสถานะที่คุณใช้

ลืมว่าแต่ละแถวหมายถึงอะไร

หลายคนมักสลับแถวกับคอลัมน์ คุณต้องใช้ข้อตกลงให้สอดคล้องกัน ในหน้านี้ แถวคือสถานะปัจจุบัน และคอลัมน์คือสถานะถัดไป

ใช้ค่าความน่าจะเป็นที่ไม่ถูกต้อง

แต่ละค่าในเมทริกซ์ต้องอยู่ระหว่าง 00 ถึง 11 และแต่ละแถวต้องมีผลรวมเป็น 11 สำหรับเมทริกซ์การเปลี่ยนสถานะแบบมาตรฐานของมาร์คอฟเชนแบบจำกัด

คิดว่าแบบจำลองทำนายอนาคตที่แน่นอนได้เพียงแบบเดียว

โดยทั่วไปมาร์คอฟเชนให้ผลเป็นความน่าจะเป็น ไม่ใช่ความแน่นอน แม้ว่าสถานะหนึ่งจะมีโอกาสมากกว่า แต่ก็ยังอาจมีหลายสถานะถัดไปที่เป็นไปได้

พฤติกรรมระยะยาวขึ้นอยู่กับตัวเชน

มาร์คอฟเชนบางตัวจะค่อย ๆ เข้าสู่การแจกแจงระยะยาวที่คงที่ ซึ่งมักเรียกว่าการแจกแจงคงตัว แต่สิ่งนี้ไม่ได้เกิดขึ้นกับทุกเชน และรายละเอียดขึ้นอยู่กับสมบัติของเชน เช่น สถานะต่าง ๆ ติดต่อถึงกันได้อย่างไร และรูปแบบการเคลื่อนที่มีคาบหรือไม่

ดังนั้นการมองว่าการคูณซ้ำ ๆ ด้วย PP เป็นวิธีศึกษาพฤติกรรมระยะยาวนั้นทำได้ แต่คุณไม่ควรสมมติว่าจะลู่เข้าโดยไม่ตรวจสอบเงื่อนไขก่อน

เมื่อใดมาร์คอฟเชนจึงเป็นแบบจำลองที่ดี

ใช้มาร์คอฟเชนเมื่อเงื่อนไขทั้งหมดต่อไปนี้เป็นจริงอย่างสมเหตุสมผล:

  • กระบวนการสามารถอธิบายได้ด้วยชุดของสถานะที่มีจำนวนจัดการได้
  • เวลาเดินไปเป็นขั้น ๆ แบบไม่ต่อเนื่อง หรือคุณเลือกจะสร้างแบบจำลองในลักษณะนั้น
  • ความน่าจะเป็นของก้าวถัดไปถูกกำหนดอย่างมีความหมายจากสถานะปัจจุบัน

ถ้าเงื่อนไขเหล่านี้ไม่เป็นจริง แบบจำลองอาจยังใช้เป็นการประมาณคร่าว ๆ ได้ แต่คุณควรระบุเรื่องนั้นอย่างชัดเจน

ลองสร้างแบบของคุณเอง

สร้างแบบจำลองที่มี 3 สถานะ เช่น อุปสงค์ต่ำ อุปสงค์ปานกลาง และอุปสงค์สูง เลือกความน่าจะเป็นในแต่ละแถวให้มีผลรวมเป็น 11 กำหนดการแจกแจงเริ่มต้น แล้วคำนวณก้าวถัดไปด้วย vn+1=vnP\mathbf{v}_{n+1} = \mathbf{v}_n P ถ้าต้องการไปต่อ ลองอัปเดตอีกหนึ่งรอบแล้วดูว่าการแจกแจงเริ่มเข้าสู่รูปแบบบางอย่างหรือไม่

ต้องการความช่วยเหลือในการแก้โจทย์?

อัปโหลดคำถามของคุณแล้วรับคำตอบแบบทีละขั้นตอนที่ผ่านการตรวจสอบในไม่กี่วินาที

เปิด GPAI Solver →