หวัดดีครับ พอดีผมได้รับ request จากรุ่นน้องคนนึงให้เขียนเกี่ยวกับเรื่อง Simulation, Waiting line และ Queuing ในวันนี้ผมจะขอพูดเรื่อง Waiting Line กับ Queuing ซะก่อนนะครับ

Waiting line และ Queuing Theory นั้น เป็นเรื่องที่เราสร้างแบบจำลองที่คณิตศาสตร์ที่เป็นการคาดการเหตุการณ์ที่น่าจะเกิดขึ้นเมื่อมีคนมาเข้าคิว ถ้าเป็นในเชิงบริหาร เราก็มักจะมีจุดประสงค์ที่ต้องการทำให้ต้นทุนรวมของการเข้าคิวนั้นน้อยที่สุด ซึ่งต้นทุนของการเข้าคิวเกิดจาก 2 แหล่งใหญ่ๆ คือ ต้นทุนของค่าบริการ (ถ้าบริการได้ดีและเร็ว ย่อมมีต้นทุนค่าบริการสูง เพราะต้องจ้างคนเก่งๆ หรือมีระบบดีๆ ) + ต้นทุนของลูกค้าที่มาเข้าคิว (นั่นคือ เมื่อลูกค้าหงุดหงิด อาจทำให้บริษัทเสียหายได้)

แต่เราจะคำนวณต้นทนได้นั้น เราต้องคำนวนลักษณะต่างๆ ที่จะเกิดขึ้นในคิวได้ซะก่อน เช่น จำนวนคนที่เข้าคิว เวลาที่ใช้ในการเข้าคิว เป็นต้น

ซึ่งระบบของการเข้าคิว มีองค์ประกอบดังนี้

1. Calling Population (ประชากร) นั่นคือ แหล่งของสิ่งที่มารับบริการ แบ่งเป็น 2 ลักษณะคือ Finite = แบบจำกัด (จำนวนน้อยและจำกัด การที่มีส่วนนึงของประชากรมาเข้าคิว ทำให้ความเป้นไปได้ที่จะมีมาเข้าคิวเพิ่มอีกลดลง) และ Infinite = แบบไม่จำกัด (ประชากรเยอะมาก จนการที่มีมาเข้าคิวอยู่แล้วไม่ส่งผลให้ความเป้นไปได้ของการมาเข้าคิวเปลี่ยนไป)

2. Customer Arrival (สิ่งที่เข้ามาขอรับบริการในระบบ) อาจเป็นคน สัตว์ หรือสิ่งของ หรืออะไรก็ได้ ซึ่งมันอาจจะมาทีละอัน หรือมาเป็นกลุ่ม แต่เพื่อให้ง่าย ในที่นี้เราจะสมมติว่ามันมาทีละอัน

สิ่งที่สำคัญขององค์ประกอบนี้ก็คือ การแจกแจงของ Customer Arrival ซึ่งสามารถอธิบายได้ใน 2 ลักษณะ คือ

  • Arrival Rate = นั่นคือในช่วงเวลาหนึ่งๆ มีคนเข้ามาขอรับบริการกี่คนโดยเฉลี่ย (วัดที่จุดเริ่ม) โดยปกติแล้ว Arrival Rate มักจะมีการแจกแจงแบบ Poisson (จะเห็นว่าเป็นการแจกแจงแบบ discrete คือเป็นชิ้นๆ)
  • Interarrival Time = ช่วงเวลาระหว่างคนที่มาขอใช้บริการโดยเฉลี่ย มักมีการแจกแจงแบบ negative exponential (จะเห็นว่าเป็นการแจกแจงแบบ continuous เพราะเป็นการวัดเวลา)
    สมมติว่าในหนึ่งชั่วโมงมีคนมาเข้าแถว 10 คน (arrival rate) แสดงว่า ระยะเวลาโดยเฉลี่ยระหว่างแต่ละคิวก็คือ 6 นาทีนั่นเอง (interarrival time)

3.  Waiting Line (แถวคิว) ซึ่งสิ่งที่มาเข้าคิวจะถือว่าเป็นส่วนหนึ่งของระบบแล้ว(แต่ยังไม่ได้รับบริการ) ประกอบไปด้วยมี Arrival ที่เข้ามาแล้วและกำลังรอคิวอยู่ ตามความเป็นจริงแล้วคนที่เข้าคิวมาอาจจะหงุดหงิดจนออกจากคิวไปก็ได้ แต่เพื่อให้ง่าย ในที่นี้จะถือว่าเข้าคิวมาแล้วห้ามออกไปไหน ต้องรอไปจนกว่าจะได้รับบริการ ซึ่งในที่นี้จะสมมติให้มีแถวคิวแค่แถวเดียว และจะพุ่งไปหาช่องบริการที่ว่างอยู่อันถัดไปเพื่อความง่าย

4. Processing Order หรือ Queuing Discipline คือหลักการในการจัดการกับคิว ซึ่งปกติจะถือว่าเป็นแบบ First-Come, First-Served ในคือมาก่อนได้ก่อน แต่ในบางกรณีอาจมีการจัดให้คนบางกลุ่มอาจได้รับอภิสิทธิ์สูงกว่าอีกกลุ่มก็เป็นได้

5. Service (บริการ) คือ สิ่งที่มาเข้าคิวต้องการนั่นเอง ซึ่งแบ่งเป็นองค์ประกอบย่อยๆ ดังนี้

  • Number of Servers (จำนวนของช่องบริการ) ซึ่งปกติแล้วเราจะสมมติให้แต่ละช่องบริการทำงานไม่เกี่ยวข้องกัน
    • Single Channel แบบช่องเดียว
    • Multi Channel แบบหลายช่องบริการ
  • Number of Steps จำนวนขั้นตอนที่ต้องผ่านไป แบ่งเป็น
    • Single Phase แบบขั้นตอนเดียวจบ
    • Multiple Phase แบบหลายขั้นตอน
  • Distribution of Service Time การแจกแจงของเวลาที่ใช้ในการให้บริการ ซึ่งปกติจะสมมติให้แจกแจงตาม Negative Exponential Distribution

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

  • Lq = จำนวน customer ที่กำลังเข้าคิวอยู่
  • L = จำนวน customer ที่อยู่ในระบบ (นับคนที่กำลังเข้าคิวและกำลังรับบริการอยู่ด้วย)
  • Po = ความน่าจะเป็นที่ไม่มี customer ในระบบ
  • ρ = system utilization ( สัดส่วนของเวลาที่ยุ่งกับการให้บริการ)
  • Wq = เวลาโดยเฉลี่ยที่ customer ต้องรอในคิวเพื่อรับบริการ
  • Ws = เวลาโดยเฉลี่ยที่ customer ต้องใช้ในระบบ (รวมในคิวและตอนขณะรับบริการ)
  • M = จำนวน customer คาดหมายสูงสุดที่กำลังเข้าคิวอยู่ในระดับความมั่นใจต่างๆ
  • λ = Mean Arrival Rate (Customer)
  • μ = Mean Service Rate

เมื่อรู้จักตัวแปรทั้งหมดแล้ว เราก็มาดูความสัมพันธ์พื้นฐานกันต่อครับ

มาดูมิติของจำนวน Customer กันก่อนครับ

  • จำนวน Customer โดยเฉลี่ยที่กำลังรับบริการอยู่ = λ/μ
  • L  = Lq + λ/μ
    (จำนวน customer ที่อยู่ในระบบ) = (จำนวน customer ที่กำลังเข้าคิวอยู่) + (จำนวน Customer ที่กำลังรับบริการอยู่)

ต่อมามาดูมิติของเวลากันบ้าง

  • Wq (เวลาโดยเฉลี่ยในแถวคิว) = Lq/λ
  • เวลาที่ server ใช้ในการให้บริการ = 1/μ
  • Ws =Wq  + 1/μ
    (เวลาโดยเฉลี่ยที่ customer ต้องใช้ในระบบ) = (เวลาโดยเฉลี่ยในแถวคิว) + (เวลาที่ server ใช้ในการให้บริการ)

ต่อมาดูเรื่องของ System Utilization ครับ

  • ρ = λ / sμ   [เมื่อ s คือจำนวน service channel ในระบบครับ]

เมื่อรู้ความสัมพันธ์พวกนี้แล้วสิ่งที่เรายังขาดไปก็คือ การคำนวณหาค่าตัวแปรบางตัวที่ยังขาดอยู่ เช่น Lq, Po, Pn เป็นต้น ซึ่งจะแตกต่างกันแล้วแต่ลักษณะของระบบครับ โดยจะแบ่งเป็นโมเดลย่อยๆ ดังนี้

รูปแบบการแบ่งประเภทโมเดลย่อย (X1, X2, X3 ) = ( Arrival, Service, Number of Server)

  • Basic Single Channel Model (M/M/1) แปลได้ว่า Markovian arrival (Poisson), Markovian service (Negative exponetial), 1 server ครับ
    • Server =1
    • Arrival Rate = Poisson
    • Service Time = Negative Exponential
    • Processing Order = First-Come, First-Served
    • Calling Population = Infinite
    • Queue Length (ความยาวของคิว) = No limit (ไม่จำกัด)
  • Multiple-Channel Model (M/M/S)
    • ต่างจาก Basic ตรงที่มีจำนวน Server = S ช่องบริการ และแต่ละช่องบริการมี Mean Service Rate เท่ากัน
  • Poisson Arrival Rate with Any Service Distribution (M/G/1)
    • ใช้ได้กับ Service Time ซึ่งมี Distribution อะไรก็ได้ (G=General)
    • แต่ว่าการที่จะใช้ Model นี้ต้องรู้ Estimate of Variance ของ Service Time Distribution นั้นด้วย
  • Poisson Arrival Rate, Constant Service Time (M/D/1)
    • มี Service time คงที่ คล้ายเครื่องจักร (D=Deterministic) หรือแปลว่ามี Variance =0 นั่นเอง

ส่วนสูตรของแต่ละ Model ที่เอาไว้หา Lq, P0, Pn อะไรพวกนี้ ต้องไปเปิดดูและแทนค่าเอาเองนะครับ ในที่นี้จะบอกวิธีเลือกใช้ Model เท่านั้นครับ หลักสำคัญก็คือการแทนตัวแปรให้ถูกต้อง และใช้หน่วยที่สอดคล้องกันนั่นเอง

ตัวอย่างโจทย์

เราเปิดบริษัทรับขายตั๋วหนังที่ห้าง โดยจ้างเจ้าหน้าที่ที่เคาเตอร์ไว้หนึ่งคน โดยมีการประมาณการณ์ว่าจะมีคนมาซื้อตั๋วหนัง 15 คนในหนึ่งชั่วโมง (สมมติมีการกระขายแบบ Poisson) และจากการเก้บข้อมูลในอดีตพบว่าพนักงานใช้เวลาในการบริการแจกแจงแบบ Expo ด้วยเวลาเฉลี่ย 3 นาทีต่อลูกค้าหนึ่งคน

จะได้ว่านี่เป็น Model แบบ M/M/1 ซึ่งมีค่าตัวแปรดังนี้

  • λ = 15 คน / ชม.
  • μ = 1/service time = 1 คน/ 3 นาที = 20 คน/ชม.
    ซึ่งจะคำนวณได้จากสูตรของ M/M/1 ได้ว่า
  • System Utilization ρ = λ / sμ = 15 / 1*20 = 0.75 = 75%
  • เวลาที่พนักงานจะว่าง Idle Time = 1-ρ = 0.25 =25%
  • จำนวนลูกค้าที่อยู่ในคิว Lq =(λ^2)/ μ(μ-λ) = 15^2 / 20(20-15) = 2.25
  • เวลาที่ลูกค้าอยู่ในระบบ Ws = Lq/λ + 1/μ = 2.25/15  + 1/20 =0.2 ชม. = 12 นาที
  • ความเป็นไปได้ที่ไม่มีลูกค้าอยู่ในระบบ P0 = 1- λ/μ = 1-  15/20  =0.25
  • ความเป็นไปได้ที่มีลูกค้าอยู่ 4 คนในระบบ P4 =Po (λ/μ)^4  =0.25(15/20)^4  = 0.079
  • ความเป็นไปได้ที่มีลูกค้าน้อยกว่า 4 คนในระบบ P<4 = 1- (λ/μ)^4 =  0.68

จะเห็นว่าการคิดด้วย Queuing Theory นั้นมีข้อจำกัดและ Assumption เยอะแยะพอสมควร ถ้าหากต้องการคิดอะไรที่ซับซ้อนกว่านี้ คงต้องพึ่งการใช้โปรแกรมคอมพิวเตอร์โดยเฉพาะแล้วครับ เช่นพวกโปรแกรม Simulation ต่างๆ เช่น ARENA หรือ Crystal Ball ครับผม

Tagged on:         

Comments

  1. อร says:

    ขอบคุณมากคะพี่ อรไปเรียกให้เพื่อนๆ มาอ่านกันแล้วหละ สอบจันทร์หน้านี้แหละคะ ไม่รู้ว่ามหา’ลัยจะเปิดรึยัง

  2. ฝน says:

    โอ่ ขอบคุณมากค่ะ วิชานี้เรียนไม่รู้เรื่องอย่างแรง -*-

    เอ่อ negative exponential นี่หมายถึงอะไรอ่ะคะ (จะเรียนจบมั้ยเนี่ยเรา)

  3. Sira Ekabut says:

    ลองไปเปิดกราฟในหนังสือดูได้ แกน x เป็น interarrival time หรือ service time (เวลาระหว่างแต่ละคิวหรือแต่ละบริการ) แกน y เป็นความถี่ ซึ่งมันจะเป็นกราฟโค้งๆ เอกียงจากบนซ้าย ไปล่างขวา

    ซึ่งหมายถึงว่า เหตุการณ์ส่วนใหญ่จะเกิดใน interarrival time หรือ service time สั้นๆ แต่นานๆทีถึงจะเกิดเหตุการณืที่มี interarrival time หรือ service time นานๆ (เช่ร เกิดเหตุการณไม่คาดฝัน)

  4. Noom says:

    มีเทคนิคเกี่ยวกับ littlefield simulation มั้ยครับ ว่าทำอย่างไรจึงจะชนะเกมส์นี้ได้

  5. Sira Ekabut says:

    ผมไม่เคยเล่น Littlefield simulation อ่ะครับ ขอโทษด้วย

  6. nook says:

    ถ้าได้ รูปแบบการแจกแจง ของเวลาที่ลูกค้าเข้า เป็น expo และเวลาการให้บริการเปน lognormal แล้วมี2หน่วยบริิการอ่ะค่า เปนตัวแบบอะไรหรอค่ะ ขอยคุนมากๆค่ะ

  7. Lady Angel says:

    ได้ความรู้มากเลยค่ะ จากไม่รุ้เรื่อง เจ๋งมากๆ

  8. fert says:

    คือโจทย์บางข้อมีหลายserverก็สามารถใช้แบบM/M/1ได้ อยากรู้ว่าเป็นเพราะปัจจับอะไรครับ ประเภทของแถวคอยหรอ