Download presentation
Presentation is loading. Please wait.
1
기본적인 프로세스 모델링 석사과정 박종원
2
목차 2.1 개체, 속성, 그리고 변수 2.2 개체의 생성과 소멸 2.3 변수와 속성의 정의 2.4 개체 처리
2.5 속성, 변수, 그리고 입출력 2.6 Arena™ 에서의 흐름 제어 2.7 개체의 묶음과 해체 2.8 SIMAN 과 Arena™의 Run Controller 2.9 요약
3
용어 정리 시스템 (System) : 공통의 목적들을 달성하기 위해 함께 활동하는 관련된 요소들의 집합
모수 (Parameter) : 모델의 입력 자료 중에서 시스템을 변화시키지 않는 고유한 특성 변수 (Variable) : 시스템의 상태를 표현해주는 수치 시스템 상태 (System State) : 특정한 시점에 시스템의 특정한 위치의 상황을 변수의 값을 이용하여 순간적으로 보여 주는 것 시스템의 상태 변수 (State Variable) : 시스템이 미래에 어떻게 전개되는지 설명하기 위해 필요한 최소한의 변수들의 집합을 의미 개체 (Entity) : 시스템 내에서 움직이거나 사건이 일어나는 원인이 되는 객체 (Object) 속성 (Attribute) : 개체에 관련된 특성 사건 (Event) : 특정 시간에 시스템의 상태를 변화시키는 행동 활동 (Activity) : 두 개의 사건(시작 사건과 종료 사건)에 의해 결정되는 시간 간격 자원 (Resource) : 시스템에 있는 개체가 활용하기 위해 존재하는 것 대기행령 (Queue) : 개체의 움직임이 시스템 내에서 한정될 때 개체들이 기다리는 장소 미래 사건 달력 (Future Event List) : 시뮬레이션에서 사건이 일어날 순서를 기록하고 있는 목록
4
2.1 개체, 속성, 그리고 변수 개체는 시스템 내에서 움직이거나 사건이 일어나는 원인이 되는 객체 속성은 개체에 관련된 특성
예) 소매상점 – 고객, 제품, 상점에 도착하는 트럭 등 속성은 개체에 관련된 특성 속성은 개체의 종류를 구분함 속성은 개체에 붙어있는 변수로 생각할 수 있음 예) 시스템에서의 광역변수는 시스템의 상태를 표현하는 수치 예) 상차중인 트럭의 수, 일하고 있는 지게차의 수 등 품목 일련번호 무게 제품구분 가격 제품1 12345 2㎏ 완두콩 800원 제품2 98765 콩 1200원
5
2.2 개체의 생성과 소멸 개체의 생성 : CREATE 모듈 Type : 개체가 연속적으로 도착하는 유형을 의미
Value : 도착 간격 시간 입력 Max Arrivals : Create 모듈에서 최대로 몇 번의 개체 생성 사건을 발생시킬 것인지 설정 Entities per Arrivals : 묶음(batch)단위로 도착하는 모델링에 사용 First Creation : 첫 번째 개체가 시스템에 도착하는 시간
6
2.2 개체의 생성과 소멸 개체의 소멸 : DISPOSE 모듈
만들어진 각 개체는 각 개체 별로 메모리를 할당 받는데 일단 개체가 모델의 프로세스를 수행한 다음에는 소멸됨 DISPOSE 모듈은 개체가 더 이상 필요 없을 때 개체를 처리하기 위한 역할
7
2.3 변수와 속성의 정의 Arena™ 에서 사용되는 모든 변수는 광역변수 (전역변수)
변수 선언 시 공백 사용 가능하며 공백 없는 것과 구분됨 This is a legal name 과 같은 것도 변수로 사용 가능 PartCount 와 Part Count는 다른 변수 변수 정의를 위해 다음과 같이 대화상자 및 스프레드 시트 입력 2차원 배열까지 사용 가능
8
2.3 변수와 속성의 정의 Arena™ 에서 Entity 모듈을 이용하여 개체의 종류 설정
9
2.4 개체 처리 개체가 모듈 사이를 이동 현재 움직이고 있는 개체 : 활동 중인 개체 (active entity)
두 모듈을 직접 연결 개체 전달 방법(transfer mechanism) 현재 움직이고 있는 개체 : 활동 중인 개체 (active entity) 활동 중인 개체는 지연(delay) 되거나 다른 모듈에 의해서 막힐(block) 때 까지 계속 이동 Resource 모듈 : 자원의 필요 유무에 따라 모델링 제약 받지 않는 활동 (unconstrained) 자원 제약적인 활동 (resource constrained) Queue 모듈 : 대기 행렬에서 처리 우선순위 결정 Hold 모듈 : 다른 개체에 의해 특정 신호가 활성화 되거나 특정 조건이 충족되기 전까지 개체가 HOLD 모듈 속에 포함된 대기행렬에서 기다리게 함 Separate 모듈 : 모델 상에서 개체들이 자기 자신들을 복사
10
2.5 속성, 변수, 그리고 입출력 2.5.1 약국 모델 수정 2.5.2 ASSIGN 모듈의 사용
2.5.3 READWRITE 모듈의 사용 2.5.4 RECORD 모듈의 사용 2.5.5 변수의 애니메이션 2.5.6 모델 실행시키기
11
2.5 속성, 변수, 그리고 입출력 모델링 방법을 위한 질문들 시스템이 무엇인가? 시스템에 대해 어떤 정보가 알려져 있는가?
요구되는 성능 지표들은 무엇인가? 개체들은 무엇인가? 각 개체들에게 어떤 정보가 기록되거나 기억되어야 하는가? 개체들은 어떻게 시스템에 투입되는가? 어떤 자원들이 개체들에 의해 사용되는가? 어떤 개체가 어떤 자원을 어떻게 사용하는가? 프로세스 흐름(process flow)은 무엇인가? 프로세스나 활동 흐름 다이어그램(activity flow diagram)을 도시하라 시뮬레이션을 위한 의사코드를 개발하라 Arena™를 통해 모델을 구현하라
12
2.5.1 약국 모델 수정 약사가 1명 있고, 고객이 기다리는 대기행렬도 1개인 소규모 약국
시간당 평균 10명의 고객이 포아송 과정에 의해 약국에 도착 약사가 고객의 주문을 처리하는데 소요되는 시간은 임의로 달라지는데 평균 3분인 지수 분포를 따름 선입 선출 서비스 대기열 크기 제약은 없음 ( M / M / 1 ) : ( FCFS / ∞ / ∞ ) 모형 시뮬레이션은 오직 30명의 고객들에 대해서 실행
13
2.5.1 약국 모델 수정 사용될 모듈들 C REATE : 30명의 고객을 생성 ASSIGN : 변수와 속성에 값을 할당
READ / WRITE : 고객으로부터 필요한 정보를 기입 PROCESS : 약사에게 요구된 처방전을 조제하는 활동을 구현 RECORD : 고객의 시스템 체류 시간에 대한 통계량을 기록 DISPOSE : 생성된 개체들의 소멸 FILE : 데이터 모듈 안의 READWRITE 모듈에서 사용되는 운영 체제 파일의 특성들을 정의 VARIABLE : 고객이 가지고 있는 처방전의 각각의 수량과 전체 수량을 추적하기 위해 변수들을 정의
14
2.5.1 약국 모델 수정 표 2-3의 정보 모델링 이 정보는 고객들을 생성하는 방법에 관한 것이므로 시스템에 소속된 것이라고 봐야함 VARIABLE 데이터 모듈을 선택하여 다음과 같이 변수 정의 처방전 수 확률 평균 서비스 시간 1 50% 3분 2 30% 4분 3 20% 5분
15
2.5.2 ASSIGN 모듈의 사용 표 2-3의 정보 모델링 이 정보는 고객들을 생성하는 방법에 관한 것이므로 시스템에 소속된 것이라고 봐야함 VARIABLE 데이터 모듈을 선택하여 다음과 같이 변수 정의 처방전 수 확률 평균 서비스 시간 1 50% 3분 2 30% 4분 3 20% 5분
16
2.5.2 ASSIGN 모듈의 사용 ASSIGN 모듈에 할당된 순서를 보여주는 스트레드시트 뷰
myNP : DISC 함수에 의해 무작위로 추출되는 1, 2, 3 중 하나의 값을 가지는데 이것은 현재 고객이 가지고 있는 처방전의 수를 의미 vNumPrescriptions : 새로운 vNumPrescriptions는 기존의 값에 새롭게 도착한 고객의 처방전 수(myNP) 값을 합산한 것 myNP 값의 증가 : 1차원 배열 변수 vNP를 이용하여 시스템에 있는 고객의 수를 처방전 수량에 따라 분류 myArriveTime : TNOW를 이용하여 현재 시뮬레이션 시간 기록 vEventType : (1 = 도착, 2 = 출발) 등과 같은 사건의 종류를 기록
17
2.5.3 READWRITE 모듈의 사용 READWRITE 모듈은 시뮬레이션으로부터 추출된 정보나 시뮬레이션에서 도출되는 값을 필요한 순간에 파일에 기록하는 기능을 제공 차후에 정보 처리나 분석 과정에서 유용
18
2.5.4 RECORD 모듈의 사용 RECORD 모듈은 개체가 모듈을 통과할 때 마다 정보를 표로 작성
Count : 이름이 지정된 카운터의 값을 정해진 수량만큼 증가/감소 Entity Statistics : 지속 시간과 비용처럼 개체에 관련된 일반적인 정보를 만들어냄 Time Interval : 특정한 속성의 값과 현재 시뮬레이션 시간의 차이를 계산하고 기록 Tim e Between : 개체들이 해당 모듈에 도착한 시간의 차이를 추적하여 계산하고 기록 Expression : 특정한 표현식의 값을 기록함
19
2.5.4 RECORD 모듈의 사용 RECORD 모듈은 개체가 모듈을 통과할 때 마다 정보를 표로 작성
Count : 이름이 지정된 카운터의 값을 정해진 수량만큼 증가/감소 Entity Statistics : 지속 시간과 비용처럼 개체에 관련된 일반적인 정보를 만들어냄 Time Interval : 특정한 속성의 값과 현재 시뮬레이션 시간의 차이를 계산하고 기록 Tim e Between : 개체들이 해당 모듈에 도착한 시간의 차이를 추적하여 계산하고 기록 Expression : 특정한 표현식의 값을 기록함
20
2.5.5 변수의 애니메이션 Animate Variables 옵션을 이용하여 현재 시스템에 있는 처방전의 수량 표시 가능
21
2.5.6 모델 실행시키기 모델에서 고객을 30명만 생성하라고 요구
22
2.6 Arena™ 에서의 흐름 제어 모델에서 개체들이 움직이는 방향을 결정하기 위한 매커니즘
논리적(logical)이고 확률적인(probabilistic) 조건 반복 루프(iterative looping) 개체의 이송
23
2.6.1 논리적이고 확률적인 조건 논리를 제어하기 위한 구조 가장 많이 쓰이는 DECIDE 모듈 DECIDE BRANCH
IF-ELSE-ENDIF 가장 많이 쓰이는 DECIDE 모듈 2-way by condition If 조건이 사실이면 개체를 true 출구 지점으로 보냄 Else 개체를 false 출구 지점으로 보냄
24
2.6.2 반복 루프 C언어와 같은 언어에서 for-loop, do-while과 같이 명령문의 집합을 반복적으로 수행
WHILE/ENDWHILE 블록 제공 2.6.3 예제 : 반복 루프, 표현식과 하위 모델 모델의 구축 VARIABLE 모듈 EXPRESSION 모듈 계층적 하위 모델 WHILE-ENDWHILE 블록 PROCESS 모듈의 지연 옵션
25
2.6.3 예제 : 반복 루프, 표현식과 하위모델 CREATE : 모델에서 두 개의 다른 도착 프로세스를 표현하기 위해 두 개의 CREATE 모듈을 사용 ASSIGN : 변수들과 속성들의 값을 할당하는데 사용 WHILE&ENDWHILE : 개체들이 조건을 만족시킬 때 까지 순환 DECIDE : 개체들이 조건을 만족시킬 때 까지 순환 PROCESS : 모델의 시뮬레이션에서 단순히 시간을 지연 DISPOSE : 생성된 개체를 소멸 VARIABLE : 모델에서 사용되는 변수와 배열 정의 EXPRESSION : 모델에 사용되는 표현식의 이름을 정의 SUBMODEL : 하위모델은 모델 창의 일부 영역으로 여러 모듈들을 하나의 모듈로 통합한 것
26
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)분
27
2.7 개체의 묶음과 해체 BATCH SEPARATE 2개 이상의 개체를 일시적으로 혹은 영구적으로 묶어서 하나의 개체로 표현
일시적인 개체는 제조 시스템에 대한 모델을 구축할 경우 조립 공정이나 분해 공정을 표현할 때 유용하게 사용 가능 영구적인 개체는 조립 공정으로 끝나는 경우 사용 SEPARATE 묶인 개체가 다시 원래의 개체로 돌아감
28
2.8 SIMAN과 Arena™의 Run Controller
29
2.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
Similar presentations