Transcript
Page 1: 기본적인 프로세스 모델링

Chapter 2

기본적인 프로세스 모델링

석사과정 박종원

Page 2: 기본적인 프로세스 모델링

Chapter 2목차

2.1 개체 , 속성 , 그리고 변수

2.2 개체의 생성과 소멸

2.3 변수와 속성의 정의

2.4 개체 처리

2.5 속성 , 변수 , 그리고 입출력

2.6 Arena™ 에서의 흐름 제어

2.7 개체의 묶음과 해체

2.8 SIMAN 과 Arena™ 의 Run Controller 2.9 요약

Page 3: 기본적인 프로세스 모델링

Chapter 2용어 정리

시스템 (System) : 공통의 목적들을 달성하기 위해 함께 활동하는 관련된 요소들의 집합 모수 (Parameter) : 모델의 입력 자료 중에서 시스템을 변화시키지 않는 고유한 특성 변수 (Variable) : 시스템의 상태를 표현해주는 수치 시스템 상태 (System State) : 특정한 시점에 시스템의 특정한 위치의 상황을 변수의 값을

이용하여 순간적으로 보여 주는 것 시스템의 상태 변수 (State Variable) : 시스템이 미래에 어떻게 전개되는지 설명하기 위해

필요한 최소한의 변수들의 집합을 의미 개체 (Entity) : 시스템 내에서 움직이거나 사건이 일어나는 원인이 되는 객체 (Object) 속성 (Attribute) : 개체에 관련된 특성 사건 (Event) : 특정 시간에 시스템의 상태를 변화시키는 행동 활동 (Activity) : 두 개의 사건 ( 시작 사건과 종료 사건 ) 에 의해 결정되는 시간 간격 자원 (Resource) : 시스템에 있는 개체가 활용하기 위해 존재하는 것 대기행령 (Queue) : 개체의 움직임이 시스템 내에서 한정될 때 개체들이 기다리는 장소 미래 사건 달력 (Future Event List) : 시뮬레이션에서 사건이 일어날 순서를 기록하고 있는 목록

Page 4: 기본적인 프로세스 모델링

Chapter 22.1 개체 , 속성 , 그리고 변수

개체는 시스템 내에서 움직이거나 사건이 일어나는 원인이 되는 객체 예 ) 소매상점 – 고객 , 제품 , 상점에 도착하는 트럭 등

속성은 개체에 관련된 특성 속성은 개체의 종류를 구분함 속성은 개체에 붙어있는 변수로 생각할 수 있음

예 )

시스템에서의 광역변수는 시스템의 상태를 표현하는 수치 예 ) 상차중인 트럭의 수 , 일하고 있는 지게차의 수 등

품목 일련번호 무게 제품구분 가격

제품 1 12345 2 ㎏ 완두콩 800 원

제품 2 98765 2 ㎏ 콩 1200 원

Page 5: 기본적인 프로세스 모델링

Chapter 22.2 개체의 생성과 소멸

개체의 생성 : CREATE 모듈 Type : 개체가 연속적으로 도착하는 유형을 의미 Value : 도착 간격 시간 입력 Max Arrivals : Create 모듈에서 최대로 몇 번의 개체 생성 사건을

발생시킬 것인지 설정 Entities per Arrivals : 묶음 (batch) 단위로 도착하는 모델링에 사용 First Creation : 첫 번째 개체가 시스템에 도착하는 시간

Page 6: 기본적인 프로세스 모델링

Chapter 22.2 개체의 생성과 소멸

개체의 소멸 : DISPOSE 모듈 만들어진 각 개체는 각 개체 별로 메모리를 할당 받는데 일단 개체가

모델의 프로세스를 수행한 다음에는 소멸됨 DISPOSE 모듈은 개체가 더 이상 필요 없을 때 개체를 처리하기 위한

역할

Page 7: 기본적인 프로세스 모델링

Chapter 22.3 변수와 속성의 정의

Arena™ 에서 사용되는 모든 변수는 광역변수 ( 전역변수 ) 변수 선언 시 공백 사용 가능하며 공백 없는 것과 구분됨

This is a legal name 과 같은 것도 변수로 사용 가능 PartCount 와 Part Count 는 다른 변수

변수 정의를 위해 다음과 같이 대화상자 및

스프레드 시트 입력

2 차원 배열까지 사용 가능

Page 8: 기본적인 프로세스 모델링

Chapter 22.3 변수와 속성의 정의

Arena™ 에서 Entity 모듈을 이용하여 개체의 종류 설정

Page 9: 기본적인 프로세스 모델링

Chapter 22.4 개체 처리

개체가 모듈 사이를 이동 두 모듈을 직접 연결 개체 전달 방법 (transfer mechanism)

현재 움직이고 있는 개체 : 활동 중인 개체 (active entity) 활동 중인 개체는 지연 (delay) 되거나 다른 모듈에 의해서 막힐 (block) 때 까지

계속 이동

Resource 모듈 : 자원의 필요 유무에 따라 모델링 제약 받지 않는 활동 (unconstrained) 자원 제약적인 활동 (resource constrained)

Queue 모듈 : 대기 행렬에서 처리 우선순위 결정 Hold 모듈 : 다른 개체에 의해 특정 신호가 활성화 되거나 특정 조건이

충족되기 전까지 개체가 HOLD 모듈 속에 포함된 대기행렬에서 기다리게 함 Separate 모듈 : 모델 상에서 개체들이 자기 자신들을 복사

Page 10: 기본적인 프로세스 모델링

Chapter 22.5 속성 , 변수 , 그리고 입출력

2.5.1 약국 모델 수정 2.5.2 ASSIGN 모듈의 사용 2.5.3 READWRITE 모듈의 사용 2.5.4 RECORD 모듈의 사용 2.5.5 변수의 애니메이션 2.5.6 모델 실행시키기

Page 11: 기본적인 프로세스 모델링

Chapter 22.5 속성 , 변수 , 그리고 입출력

모델링 방법을 위한 질문들 시스템이 무엇인가 ? 시스템에 대해 어떤 정보가 알려져 있는가 ? 요구되는 성능 지표들은 무엇인가 ? 개체들은 무엇인가 ? 각 개체들에게 어떤 정보가 기록되거나 기억되어야

하는가 ? 개체들은 어떻게 시스템에 투입되는가 ? 어떤 자원들이 개체들에 의해 사용되는가 ? 어떤 개체가 어떤 자원을

어떻게 사용하는가 ? 프로세스 흐름 (process flow) 은 무엇인가 ? 프로세스나 활동 흐름

다이어그램 (activity flow diagram) 을 도시하라 시뮬레이션을 위한 의사코드를 개발하라 Arena™ 를 통해 모델을 구현하라

Page 12: 기본적인 프로세스 모델링

Chapter 22.5.1 약국 모델 수정

약사가 1 명 있고 , 고객이 기다리는 대기행렬도 1 개인 소규모 약국 시간당 평균 10 명의 고객이 포아송 과정에 의해 약국에 도착 약사가 고객의 주문을 처리하는데 소요되는 시간은 임의로

달라지는데 평균 3 분인 지수 분포를 따름 선입 선출 서비스 대기열 크기 제약은 없음 ( M / M / 1 ) : ( FCFS / ∞ / ∞ ) 모형 시뮬레이션은 오직 30 명의 고객들에 대해서 실행

Page 13: 기본적인 프로세스 모델링

Chapter 22.5.1 약국 모델 수정

사용될 모듈들 C REATE : 30 명의 고객을 생성 ASSIGN : 변수와 속성에 값을 할당 READ / WRITE : 고객으로부터 필요한 정보를 기입 PROCESS : 약사에게 요구된 처방전을 조제하는 활동을 구현 RECORD : 고객의 시스템 체류 시간에 대한 통계량을 기록 DISPOSE : 생성된 개체들의 소멸 FILE : 데이터 모듈 안의 READWRITE 모듈에서 사용되는 운영 체제

파일의 특성들을 정의 VARIABLE : 고객이 가지고 있는 처방전의 각각의 수량과 전체 수량을

추적하기 위해 변수들을 정의

Page 14: 기본적인 프로세스 모델링

Chapter 22.5.1 약국 모델 수정

표 2-3 의 정보 모델링 이 정보는 고객들을 생성하는 방법에 관한 것이므로 시스템에 소속된

것이라고 봐야함

VARIABLE 데이터 모듈을 선택하여 다음과 같이 변수 정의

처방전 수 확률 평균 서비스 시간

1 50% 3 분

2 30% 4 분

3 20% 5 분

Page 15: 기본적인 프로세스 모델링

Chapter 22.5.2 ASSIGN 모듈의 사용

표 2-3 의 정보 모델링 이 정보는 고객들을 생성하는 방법에 관한 것이므로 시스템에 소속된

것이라고 봐야함

VARIABLE 데이터 모듈을 선택하여 다음과 같이 변수 정의

처방전 수 확률 평균 서비스 시간

1 50% 3 분

2 30% 4 분

3 20% 5 분

Page 16: 기본적인 프로세스 모델링

Chapter 22.5.2 ASSIGN 모듈의 사용

ASSIGN 모듈에 할당된 순서를 보여주는 스트레드시트 뷰

myNP : DISC 함수에 의해 무작위로 추출되는 1, 2, 3 중 하나의 값을 가지는데 이것은 현재 고객이 가지고 있는 처방전의 수를 의미

vNumPrescriptions : 새로운 vNumPrescriptions 는 기존의 값에 새롭게 도착한 고객의 처방전 수 (myNP) 값을 합산한 것

myNP 값의 증가 : 1 차원 배열 변수 vNP 를 이용하여 시스템에 있는 고객의 수를 처방전 수량에 따라 분류

myArriveTime : TNOW 를 이용하여 현재 시뮬레이션 시간 기록 vEventType : (1 = 도착 , 2 = 출발 ) 등과 같은 사건의 종류를 기록

Page 17: 기본적인 프로세스 모델링

Chapter 22.5.3 READWRITE 모듈의 사용

READWRITE 모듈은 시뮬레이션으로부터 추출된 정보나 시뮬레이션에서 도출되는 값을 필요한 순간에 파일에 기록하는 기능을 제공

차후에 정보 처리나 분석 과정에서 유용

Page 18: 기본적인 프로세스 모델링

Chapter 22.5.4 RECORD 모듈의 사용

RECORD 모듈은 개체가 모듈을 통과할 때 마다 정보를 표로 작성 Count : 이름이 지정된 카운터의 값을 정해진 수량만큼 증가 /감소 Entity Statistics : 지속 시간과 비용처럼 개체에 관련된 일반적인 정보를

만들어냄 Time Interval : 특정한 속성의 값과 현재 시뮬레이션 시간의 차이를

계산하고 기록 Tim e Between : 개체들이 해당 모듈에 도착한 시간의 차이를 추적하여

계산하고 기록 Expression : 특정한 표현식의 값을 기록함

Page 19: 기본적인 프로세스 모델링

Chapter 22.5.4 RECORD 모듈의 사용

RECORD 모듈은 개체가 모듈을 통과할 때 마다 정보를 표로 작성 Count : 이름이 지정된 카운터의 값을 정해진 수량만큼 증가 /감소 Entity Statistics : 지속 시간과 비용처럼 개체에 관련된 일반적인 정보를

만들어냄 Time Interval : 특정한 속성의 값과 현재 시뮬레이션 시간의 차이를

계산하고 기록 Tim e Between : 개체들이 해당 모듈에 도착한 시간의 차이를 추적하여

계산하고 기록 Expression : 특정한 표현식의 값을 기록함

Page 20: 기본적인 프로세스 모델링

Chapter 22.5.5 변수의 애니메이션

Animate Variables 옵션을 이용하여 현재 시스템에 있는 처방전의 수량 표시 가능

Page 21: 기본적인 프로세스 모델링

Chapter 22.5.6 모델 실행시키기

모델에서 고객을 30 명만 생성하라고 요구

Page 22: 기본적인 프로세스 모델링

Chapter 22.6 Arena™ 에서의 흐름 제어

모델에서 개체들이 움직이는 방향을 결정하기 위한 매커니즘 논리적 (logical) 이고 확률적인 (probabilistic) 조건 반복 루프 (iterative looping) 개체의 이송

Page 23: 기본적인 프로세스 모델링

Chapter 22.6.1 논리적이고 확률적인 조건

논리를 제어하기 위한 구조 DECIDE BRANCH IF-ELSE-ENDIF

가장 많이 쓰이는 DECIDE 모듈 2-way by condition

If 조건이 사실이면 개체를 true 출구 지점으로 보냄Else 개체를 false 출구 지점으로 보냄

Page 24: 기본적인 프로세스 모델링

Chapter 22.6.2 반복 루프

C 언어와 같은 언어에서 for-loop, do-while 과 같이 명령문의 집합을 반복적으로 수행 WHILE/ENDWHILE 블록 제공

2.6.3 예제 : 반복 루프 , 표현식과 하위 모델 2.6.3.1 모델의 구축 2.6.3.2 VARIABLE 모듈 2.6.3.3 EXPRESSION 모듈 2.6.3.4 계층적 하위 모델 2.6.3.5 WHILE-ENDWHILE 블록 2.6.3.6 PROCESS 모듈의 지연 옵션

Page 25: 기본적인 프로세스 모델링

Chapter 2

2.6.3 예제 : 반복 루프 , 표현식과 하위모델

CREATE : 모델에서 두 개의 다른 도착 프로세스를 표현하기 위해 두 개의 CREATE 모듈을 사용

ASSIGN : 변수들과 속성들의 값을 할당하는데 사용 WHILE&ENDWHILE : 개체들이 조건을 만족시킬 때 까지 순환 DECIDE : 개체들이 조건을 만족시킬 때 까지 순환 PROCESS : 모델의 시뮬레이션에서 단순히 시간을 지연 DISPOSE : 생성된 개체를 소멸 VARIABLE : 모델에서 사용되는 변수와 배열 정의 EXPRESSION : 모델에 사용되는 표현식의 이름을 정의 SUBMODEL : 하위모델은 모델 창의 일부 영역으로 여러 모듈들을

하나의 모듈로 통합한 것

Page 26: 기본적인 프로세스 모델링

Chapter 2

2.6.3 예제 : 반복 루프 , 표현식과 하위모델

이 시스템은 제품을 생산 모델 1 과 모델 2 라는 두 가지의 모델 구성을 가짐

제품들의 기본 작업 시간은 제품의 종류에 따라 독립적 실제 작업 시간은 기본 작업 시간 분포를 이용하여 10 개의 값을

무작위로 생성한 후 , 그 10 개의 값을 합한 시간으로 가정 작업은 연속적인 두 개의 동일한 공정에서 수행 작업이 끝나면 제품은 시스템을 떠남 EXPRESSION 모듈 : 함수와 연산자를 이용하여 표현식을 만들 때 ,

표현식을 기억하기 위해 구조가 필요한데 이 때 사용

모델 평균 도착률 종류 A (%, 가공시간 )

종류 B (%, 가공시간 )

1 12 분에 하나씩 90%, expo(14) 분 10%, expo(12) 분

2 22 분에 하나씩 70%, expo(16) 분 30%, expo(10) 분

Page 27: 기본적인 프로세스 모델링

Chapter 22.7 개체의 묶음과 해체

BATCH 2 개 이상의 개체를 일시적으로 혹은 영구적으로 묶어서 하나의 개체로

표현 일시적인 개체는 제조 시스템에 대한 모델을 구축할 경우 조립 공정이나

분해 공정을 표현할 때 유용하게 사용 가능 영구적인 개체는 조립 공정으로 끝나는 경우 사용

SEPARATE 묶인 개체가 다시 원래의 개체로 돌아감

Page 28: 기본적인 프로세스 모델링

Chapter 22.8 SIMAN 과 Arena™ 의 Run Controller

Arena™ 을 이용하여 개발한 프로그램의 오류확인에 도움

Page 29: 기본적인 프로세스 모델링

Chapter 22.9 요약

CREATE DISPOSE PROCESS ASSIGN RECORD BATCH SEPARATE DECIDE VARIABLE RESOURCE QUEUE

ENTITY SET READWRITE FILE EXPRESSION DELAY MATCH IF / ELSE / IF ELSE / END IF WHILE / END WHILE BRANCH


Top Related