기본적인 프로세스 모델링 - Databaser.Net, 이재학

download report

Transcript 기본적인 프로세스 모델링 - Databaser.Net, 이재학

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