เหตุการณ์และกระบวนการแบบดีเทอร์มินิสติก

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

ความเป็นดีเทอร์มินิสติกของเหตุการณ์ (หรือกระบวนการ)

หมายเหตุ: คำว่า "เหตุการณ์" และ "กระบวนการ" ใช้แทนกันได้

ความเป็นดีเทอร์มินิสติกของเหตุการณ์ (หรือกระบวนการ) คืออะไร?

  • ความสามารถของกระบวนการที่คาดการณ์ได้อย่างแม่นยำ
  • เรียกกระบวนการนี้ว่า "ดีเทอร์มินิสติก"

เหตุใดกระบวนการแบบดีเทอร์มินิสติกจึงสำคัญ?

  • กิจกรรมในธรรมชาติและที่มนุษย์ขับเคลื่อนมีความซับซ้อน
  • กระบวนการและทรัพยากรต่าง ๆ ต่างพึ่งพากัน
  • บางกระบวนการเกิดขึ้นซ้ำในแบบเดิมทุกครั้ง
  • คาดการณ์ผลกระทบต่อผลลัพธ์ของระบบได้อย่างแม่นยำ
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

ตัวอย่างกระบวนการหรือเหตุการณ์แบบดีเทอร์มินิสติก

โลกธรรมชาติ

  • ความสูงของน้ำขึ้นน้ำลง
  • ความเร่งของวัตถุเนื่องจากแรงโน้มถ่วง (9.81 m$^2$/s)
  • การเคลื่อนที่ของดาวเคราะห์ในระบบสุริยะ
  • ความเร็วของเสียงในอากาศ (331.29 m/s)
  • ความเร็วของแสง (300,000 km/s)
  • การแข็งตัวของน้ำ (ที่ 0 องศาเซลเซียส)

กิจกรรมที่มนุษย์ขับเคลื่อนหรือริเริ่ม

  • การไหลของน้ำจากก๊อก
  • ความเร็วของเครื่องบรรจุขวดน้ำ
  • เวลาที่เครื่องชงกาแฟใช้ในการชงกาแฟ
  • ความร้อนที่เตาอบปล่อยออกที่ 230 องศาเซลเซียส
  • รอบการทำงานที่ตั้งโปรแกรมไว้ของเครื่องซักผ้า
  • การทำงานของเตาไมโครเวฟ
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

การแทนเหตุการณ์แบบดีเทอร์มินิสติกในโมเดลเหตุการณ์ไม่ต่อเนื่อง

กระบวนการแบบดีเทอร์มินิสติก

  • ผลกระทบต่อระบบไดนามิกสามารถคาดการณ์ได้
  • ระยะเวลาที่ทราบแน่ชัด
  • ทำซ้ำในแบบเดิมทุกครั้ง

ต้องนำระยะเวลาของกระบวนการมาคำนวณในเวลาการจำลอง

# Deterministic processes (time in hours)
duration_process_1 = 10
duration_process_2 = 5

while sim_time < total_sim_time:
# Update simulation time: Process 1 sim_time += duration_process_1
# Update simulation time: Process 2 sim_time += duration_process_2
การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

การแทนเหตุการณ์แบบดีเทอร์มินิสติกด้วย SimPy

การใช้งาน SimPy สำหรับเหตุการณ์แบบดีเทอร์มินิสติก:

  • เมธอด .timeout() บันทึกระยะเวลาของกระบวนการ
    • ไม่รับรู้หน่วยเวลา
    • ถือว่าเวลาเป็นตัวเลข
    • หน่วยเวลาต้องสอดคล้องกันตลอดทั้งโมเดล
# Deterministic processes
duration_process_1 = 10
duration_process_2 = 5

while True:

   # Update simulation time: Process 1
   yield env.timeout(duration_process_1)

   # Update simulation time: Process 2
   yield env.timeout(duration_process_2)

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

มาฝึกกันเถอะ!

การจำลองเหตุการณ์แบบไม่ต่อเนื่องด้วย Python

Preparing Video For Download...