시작하기무료로 시작하기

이산 사건 모델 개발하기

농업 운영에서 자원을 배분하고 생산성을 높이며 병목을 식별·제거할 수 있도록, 이산 사건 모델을 개발해 달라는 요청을 받았어요.

현재 동료들과 어떤 프로세스들이 포함되는지, 그리고 모델에서 얼마나 자세히 표현할지 논의 중이에요. 이에 따라, 관련 정보를 아래 구조의 process_dict라는 사전에 모으기로 했습니다. 프로세스에 대한 정보가 더 확보되면 이 사전을 계속 업데이트할 예정입니다.

process_dict = {
    "Process name 1":  <duration>,
    "Process name 2":  <duration>,
    ...
}

이 사전에 정의된 임의 개수의 이산 사건을 스케줄링할 수 있는 일반화된 이산 사건 모델 discrete_model_farm()을 만들어 봅시다.

모델의 입력 인자는 다음과 같고, 순서는 아래와 같습니다:

  1. process_dict: 프로세스 정보가 담긴 사전
  2. simulation_time: 시뮬레이션 기간

모델에서 시간 단위는 일(days)입니다.

이 연습은 강의의 일부입니다

Python으로 배우는 이산 사건 시뮬레이션

강의 보기

연습 안내

  • 모델의 상태 변수 time(시간 추적)과 supply_chain(사이클 수 추적)을 초기화하고 0으로 설정하세요.
  • 종료 조건을 정의하여 timesimulation_time보다 작은 동안 모델이 실행되도록 하세요.
  • 프로세스의 소요 시간을 상태 변수 time에 더하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

def discrete_model_farm(process_dict, simulation_time):
  # Initiate variables
  time = ____
  supply_chain = ____

  # Define ending condition
  while ____ < ____:

    supply_chain += 1
    process_names = list(process_dict.keys())

    for p in range(len(process_names)):
		  
      event_duration = process_dict[process_names[p]]
          
      # Add the process duration
      ____ += event_duration
      print(f"{process_names[p]}  (completed): time = {time}")
          
    print(f"COMPLETED: Production cycle #{supply_chain} | Time = {time} days")  
코드 편집 및 실행