시뮬레이션 엔진의 개념 및 DEVS 알고리즘 적용


  • 시뮬레이션 엔진의 개념 및 DEVS 알고리즘 적용에 대한 글입니다

시뮬레이션 엔진 개념 및 시간 진행 관리

  • 엔진 : 자동차 vs 시뮬레이션
    • 유사성이 존재
  • 엔진과 연료의 분리 및 다양성 : 자동차 vs 시뮬레이터
  • 시뮬레이터(모델+엔진)
    • 모델과 시뮬레이션 엔진의 분리
    • 시뮬레이션 엔진에선 시간을 관리
  • 시뮬레이션 알고리즘(모델 실행 엔진)의 기본 틀
    • t : 현재 시각(또는 시뮬레이션 시각)
      • 프로그램 변수인지 실제 시각인지?
      • 가상 시간 시뮬레이션 / 실시간 시뮬레이션
    • 종료 조건은 어떻게 정하는지?
      • 시간 혹은 변수 값
      • 변수값이 특정 임계값 이상이면 종료 등
    • 어떤 모델을 어떻게 실행할 것인가
      • 동시에 여러개, 한번에 한번만
    • T1은 상수인지 난수인지?
      • 누가 어떻게 정하는지?
  • 시간 진행 관리 개념 : 1개의 모델
  • 시간 진행 관리 개념 : 주기가 동일한 2개의 모델
  • 시간 진행 관리 개념 : 주기가 다른 2개의 모델

모델 종류에 따른 시뮬레이션 엔진

  • 연속시간 모델, 이산사건 모델 및 하이브리드 모델의 시뮬레이션 엔진 소개
  • 시뮬레이션 알고리즘(엔진)의 기본 틀
  • 시뮬레이션 엔진의 3가지 기능
    • 사용자 명세
    • M&S 개발환경 제공
    • 시뮬레이션 엔진의 기능
      • 모델 해석
      • 시간 진행 관리
      • 모델 선택/데이터 전달
  • 연속시간 모델의 시뮬레이션 엔진 기능
    • 출력에서 입력의 인과 관계가 매 루프마다 진행
  • 이산사건 모델의 시뮬레이션 엔진 기능
    • 모델 해석 : 모델에 정의된 함수 호출
    • 시간 진행 관리 : 사건 발생 시간순으로 정리(사건 발생 시간은 모델에서 알려줌)
    • 모델 선택 / 데이터 전달 : 매 루프마다 다음 사건발생 시각이 최소인 모델을 선택하고 이 모델과 연결관계에 있는 모델에 데이터 전달
  • 하이브리드 시뮬레이션 엔진의 한가지 형태
    • 연속시간 시뮬레이터 + 이산사건 시뮬레이터
    • 하이브리드 시뮬레이터 엔진
      • 시간 진행 관리 : 두 시뮬레이터 사이의 시간 진행 동기화(연속시간 모델의 선행 시뮬레이션 필요)
      • 데이터 변환 : 서로 다른 형태의 데이터간 변환 필요, SE 변환기 : 연속 신호(S) => 이산사건(E)
  • 시뮬레이션 시간 진행 : 연속 시간 vs 이산사건 모델
    • 시간 진행의 차이
    • 연속시간은 일정한 시간 간격으로 모델에 내려주면 그에 따라 모델이 시뮬레이션 진행함
      • 1개의 메세지로 시간 진행
    • 이산사건은 모델이 Ti를 알려주고 t를 t+Ti로 갱신 후 모델 실행 명령
      • 2개의 메세지로 시간 진행
  • 모델과 엔진의 시간진행 방법이 다른 경우 문제점
    • 이산시간 시뮬레이션 엔진
    • T1 시점이 우리가 의도할 때가 아닐 수 있음

DEVS 모델의 시뮬레이션 엔진 구조 및 원자모델 시뮬레이션 알고리즘

  • DEVS 모델의 계층적 시뮬레이션의 특징
    • 계층적 시뮬레이터 구조 = DEVS 모델 구조
      • 원자모델 AM <-> 원자 모델 실행기 S:AM
      • 결합모델 CM <-> 결합 모델 실행기 C:CM
    • 계층적 시뮬레이션 알고리즘
      • 시뮬레이션 엔진의 3대 기능 수행
      • 모델 해석, 시간 진행 관리, 모델 선택 및 데이터 전달
    • 분산 알고리즘
      • 전역 정보를 가지고 있지 않음
      • 순차적 컴퓨팅 환경 및 분산 / 병렬 환경에서 구현 가능
  • DEVS 모델의 계층적 시뮬레이션 엔진 개념
    • 실행기 : DEVS 모델의 함수 호출
  • 모델 실행기의 DEVS 함수 호출 시점
  • 계층적 시뮬레이션 엔진 구조
    • 모델 + 실행기로 구성
  • 모델 실행기의 입/출력 정의
  • 원자 모델 실행기 알고리즘 개요
    • wait하다 외부 상태 천이, ta로 다음 시간 계산 -> 다시 전달 -> tn이 다되면 star t -> 내부 상태천이 및 tn 계산
  • 원자 모델 실행기 알고리즘의 수도 코드
    • when_receive 함수

DEVS 결합 모델 시뮬레이션 알고리즘

  • DEVS 결합 모델의 시뮬레이션 알고리즘을 이해하기
  • 결합모델의 다음 시뮬레이션 시각 tn 결정 방법
    • 어떻게 시각이 결정되는지 알아야할 필요가 있음
    • tn= min{t+ta(q1), t+ta(q2)}
  • 결합 모델 실행기 알고리즘 개요
    • 결합 모델과 실행기는 통신을 하며 실행기가 호출
    • 원자모델 실행기를 컴포넌트로 가지고 있는데 실제 xt는 원자 모델이 x를 받아 출력과 입력 상태를 전이하기 때문에 이 xt를 누가 받을지 결합 모델이 선별해야 함 => M*
    • 동시에 시뮬레이션을 할 경우 SELECT 함수를 사용해 우선순위를 가지고 있는 모델을 선택함 => 출력 발생 후 내부 상태 천이
  • 결합 모델 실행기 알고리즘 수도 코드
    • influences : M2는 M1로부터 메세지를 받는 모델
  • 스케줄 충돌 - 동일한 시각에 2개 이상의 이벤트 발생하는 경우
    • in 이벤트는가 M이 제어할 수 없고 M의 출력으로 보낸 모델의 타임아웃에 의해 제어됨
    • out 이벤트는 M의 time out에 의해 예약됨
    • 모델이 여러가지 존재하면 이런 상황이 많을 수 있음
    • 1) 입/출력 이벤트 동시 발생
    • 2) 출력 이벤트 동시 발생
      • DEVS에선 일어나지 않음. 출력은 함수(1:1)로 정의됨
    • 3) 입력 이벤트 동시 발생
    • DEVS 모델, 이산사건 모델에서 실제의 이벤트가 미리 스케쥴된다는 것은 출력을 스케쥴한다고 이해하면 됨! (입력은 스케쥴할 수 없음)
  • 스케쥴 충돌시 우선순위 명세의 중요성
    • 우선순위 명세는 실제 순위와 일치하도록 명세
  • DEVS 형식론에서 Select 함수의 불편한 진실
    • 복잡한 우선순위 명세를 거쳐야 함
    • DEVS 형식론의 집합론 기반과 계층적 모델 명세의 한계(순서를 정할 수 없음)
    • DEVS M&S 환경에선 API를 사용해 모든 모델의 우선순위를 한번에 명세

Reference


이 글이 도움이 되셨다면 추천 클릭을 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2017. by Seongyun Byeon

Powered by zzsza