Search
🏫

[시뮬레이션] 1. 결정적/확률적 시뮬레이션, 확률 변수

Tags
CS
Simulation
Last edited time
2024/10/09 13:46
2 more properties
Search
[시뮬레이션] 2. 모델링과 시뮬레이션
CS
Simulation
2024/10/09 13:47
[시뮬레이션] 2. 모델링과 시뮬레이션
CS
Simulation
2024/10/09 13:47

1. 시뮬레이션

1.1. 시뮬레이션의 정의

실제 시스템에서 실시스템의 성질을 나타내는 모델을 만들고 그 모델로 실험하는 것

1.2. 시뮬레이션의 기본 요소

실 시스템
우리가 관찰하고자 하는 대상
시뮬레이터
시뮬레이션 프로그램을 실행하는 기계로 주로 컴퓨터
모델
실 시스템을 모방한 것
cf) 모델링
실시스템의 형태를 모방한 모델을 만드는 과정

1.3. 시뮬레이션의 목적 및 특징

목적
실제 시스템의 행위를 모델링하고 이를 통해 예측, 평가, 분석, 훈련
특징
미래 예측
시뮬레이션을 통해 미래의 결과를 예측
시간 변수 사용 및 다양한 실험 가능
시뮬레이션은 시간에 따라 변화하는 변수와 다양한 실험을 통해 결과를 도출

1.4. 시뮬레이션의 구분

확률 변수 (random variable)의 사용 여부
결정적(확정적) 시뮬레이션 (deterministic simulation)
확률적 시뮬레이션 (probabilistic simulation)
확률적 시뮬레이션에서는 변수 값이 불확실함
우리가 일반적으로 생각하는 시뮬레이션

2. 결정적 시뮬레이션 (deterministic simulation)

2.1. 결정적 시뮬레이션의 정의 및 특징

정의
동일한 입력 조건과 매개변수에 대해 항상 동일한 결과를 산출하는 시뮬레이션
특징
확률 변수나 무작위 요소가 사용되지 않음
입력 값이 정해지면 그에 따른 출력 결과도 미리 예측할 수 있음

2.2. 결정적 시뮬레이션의 예시

결정적 시뮬레이션이 사용되는 경우
시스템의 동작이 명확하고 불확실성이 거의 없는 경우
결과를 정확하게 예측하거나 최적화할 때
분석과 실험 결과를 반복해서 재현할 필요가 있는 경우
변수가 특정 값으로 고정되어 있음
저축 문제
연봉 상승 및 저축 계산
매년 연봉이 5% 상승하고, 저축액은 연봉의 10%, 은행 이율 5%로 복리 계산.
결과
30년 후의 연봉과 저축액을 그래프로 시각화
공의 탄성 문제
중력 가속도 및 반동
공이 튀면서 속도가 매번 25% 감소.
알고리즘
초기 속도와 각도를 설정하고, 중력과 반동을 계산하여 공의 위치를 추적.

3. 확률적 시뮬레이션 (Probabilistic Simulation)

3.1. 확률적 시뮬레이션의 정의

시스템이나 과정에서 발생할 수 있는 불확실성을 반영하기 위해 확률 변수를 사용하여 여러 가능한 시나리오와 결과를 모사하는 시뮬레이션 기법
확률 변수를 사용하여 불확실성을 포함한 시뮬레이션
변수들이 일정한 확률 분포에 따라 무작위로 선택되므로 동일한 입력 조건에서도 매번 다른 결과가 나올 수 있음

3.2. 확률 분포의 정의

확률변수 X 가 특정한 값을 가질 확률을 나타내는 분포로 X의 함수
확률 변수가 취할 수 있는 모든 가능한 값과 그 값들이 발생할 확률을 정의한 함수나 규칙

3.3. 확률 분포의 종류

일양 분포 (Uniform Distribution)
모든 값이 동일한 확률로 발생 (균등 분포)
예) 승객들이 전철역에 도착해서 기다리는 시간 (전철 간격 7분)
어떤 구간이든 동일한 확률을 가짐 (연속형 일양 분포)
정규 분포 (Normal Distribution)
평균과 표준편차로 표현되는 분포
예) 시뮬레이션 성적 분포
지수 분포 (Exponential Distribution)
독립적인 사건들이 발생하는 간격을 설명
예) 은행에 도착하는 고객의 도착시간 간격
포아송 분포 (Poisson Distribution)
일정 시간 내에 발생하는 사건 수를 설명
예) A회사의 단위 시간당 전화문의

3.4. 난수

정의
특정 패턴이나 규칙 없이 무작위로 생성된 숫자를 의미
특징
발생확률은 같음
예측할 수 없으며 임의성(Randomness)을 가짐
예) 주사위 던지기
주사위를 충분히 많이 던지면 각 면이 나올 확률이 유사해짐
그러나, 각 시도 횟수때마다 어떤 면이 나올 지를 예측할 수는 없음

3.5. 난수 발생

예) 난수 [0, 1) 발생
0부터 1 범위(정확히는 1은 포함하지 않음) 구간 내에 난수가 발생
그 숫자들은 일양확률변수 성격을 가짐
원하는 공식을 적용시키면 확률 변수를 발생할 수 있음
난수 발생기
난수를 발생시키는 프로그램

4. 확률변수의 발생

4.1. 확률변수 발생과정

난수 U[0, 1) 발생시켜 유도 공식을 적용하여 원하는 다양한 분포의 확률 변수를 발생
perlow ~ perhig 사이를 갖는 연속형 일양확률변수 변환공식을 이용
0, 1을 각각 perlow, perhig로 변환
저축문제에서는 perlow = 0, perhig가 10이됨

4.2. 예시 1) 저축 문제

배경
결정적 시뮬레이션
매년 연봉이 5% 상승하고, 저축액은 연봉의 10%, 은행 이율 5%로 복리 계산
그러나 실제 상황은 연봉인상률, 은행 이율등이 임의적임
가정
연봉인상률이 0~10% 사이에 랜덤하게 적용
오랫동안 관찰하면 0~10 사이가 골고루 분포 → 연속적 일양 분포
연봉의 변화
정확히 정수로 떨어지지 않으므로 (소수점)
0~10%의 연속형 일양 확률 변수 → 0~10% 이산형 일양 확률 변수라고 가정
연봉 인상율 적용 → 인상율 (perinc)에 0.01 곱셈
이산형 일양 확률 변수
0부터 10까지 정수형을 확률변수로 만들어주는 공식
알고리즘
seed: 초기값
U: 난수 - U[0, 1)
실행 결과

4.2. 예시 2) 주사위 문제

0≤ U < 1 → 난수 U[0, 1) 발생
call random(seed, U)
side = int(U * 6) + 1
주사위 문제 알고리즘
실행 결과

5. 확률변수 발생공식

연속형 일양 분포
지수 분포
정규 분포
이산형 일양 분포
포아송 분포