Knowledge Sharing by Sira Ekabut ทบทวน MBA / ความคิดสร้างสรรค์ / ค้นหาตัวเอง

14May/106

Waiting line and Queuing theory ทฤษฎีการเข้าคิว

หัวข้อ         : Operation Management & QA
ป้ายกำกับ   : , ,

หวัดดีครับ พอดีผมได้รับ 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 ครับผม

No related posts.

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

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

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

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

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

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

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

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


Leave a comment


No trackbacks yet.