เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การผลิตเสื้อผ้า: หลายกระบวนการและการสร้างโมดูล

คุณได้รับมอบหมายให้สร้างแบบจำลอง discrete-event เพื่อช่วยเพิ่มประสิทธิภาพโรงงานผลิตเสื้อผ้าในเมืองมิลาน ประเทศอิตาลี ซึ่งเป็นที่รู้จักในฐานะเมืองหลวงแห่งแฟชั่น

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

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

ขณะนี้ คุณได้รับข้อเสนอแนะจากผู้จัดการ และได้รับแจ้งให้เพิ่มกระบวนการใหม่เข้าไปในโมเดล คือ "การทำความสะอาดจุดด่างและซักรีด" ซึ่งควรอยู่ระหว่างขั้นตอนที่ 8 และ 9 (ดูแถวในตารางที่ไฮไลต์สีแดง) โดยได้นำเข้าแพ็กเกจ random และ simpy แล้ว

ตารางแสดงชื่อกระบวนการ ฟังก์ชันที่เกี่ยวข้อง และข้อมูลว่ากระบวนการใดถูกรวมไว้ในโมเดลแล้วบ้าง

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

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

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create a function for the new process
def ____(gen_type=None, gauss_mean=None, gauss_std=None, unif_start=None, unif_end=None):
  if gen_type == "gauss":
    duration = random.gauss(gauss_mean, gauss_std)
  elif gen_type == "uniform":
    duration = random.uniform(unif_start, unif_end)
  return duration

def all_processes(env, prod_line):

  with prod_line.request() as request:
    yield request

    t1 = fabric_relaxing(gen_type="gauss", gauss_mean=2*60, gauss_std=15)
    t2 = spread_form_layout(gen_type="gauss", gauss_mean=6, gauss_std=1)
    t3 = laying_paper_pattern(gen_type="uniform", unif_start=3, unif_end=0.5)
    t4 = marking(gen_type="gauss", gauss_mean=6, gauss_std=1)
    t5 = cutting(gen_type="gauss", gauss_mean=5, gauss_std=0.5)
    t6 = embroidery_screen_and_printing(gen_type="uniform", unif_start=10, unif_end=2)
    t7 = sewing(gen_type="gauss", gauss_mean=15, gauss_std=3)
    t8 = checking(gen_type="gauss", gauss_mean=2, gauss_std=0.5)

    # Add the new process
    tnew = ____

    # Account for the new process duration in the entire process duration
    total_duration = sum([t1, t2, t3, t4, t5, t6, t7, t8, ____, t9, t10])

    yield env.timeout(total_duration)
แก้ไขและรันโค้ด