-
JAVA 컴퓨터 시뮬레이션프로그래밍 JAVA 2020. 7. 15. 00:28
JAVA 컴퓨터 시뮬레이션
컴퓨터 시뮬레이션은 컴퓨터에서 수행되는 수학적 모델링의 과정으로, 실제 세계 또는 물리적 시스템의 행동이나 결과를 예측하도록 설계된다.
선택된 수학 모델의 신뢰성을 확인할 수 있기 때문에, 컴퓨터 시뮬레이션은 경제학, 심리학, 사회과학, 건강뿐만 아니라 물리학(컴퓨터물리학), 천체물리학, 기후학, 화학, 생물학, 제조업의 많은 자연 시스템의 수학 모델링에 유용한 도구가 되었다.
돌봄과 공학 시스템 시뮬레이션은 시스템 모델의 실행으로 표현된다.
그것은 새로운 기술에 대한 새로운 통찰력을 탐구하고 얻는데 이용될 수 있으며 분석적 해결책으로는 너무 복잡한 시스템의 성능을 추정할 수 있다.[1]
컴퓨터 시뮬레이션은 작은 컴퓨터 프로그램, 작은 장치에서 거의 즉각적으로 실행될 수 있는 컴퓨터 프로그램 또는 네트워크 기반의 컴퓨터 그룹에서 몇 시간 또는 며칠 동안 실행되는 대규모 프로그램을 실행함으로써 실현된다.컴퓨터 시뮬레이션에 의해 시뮬레이션되고 있는 사건의 규모는 전통적인 종이와 연필로 된 수학적 모델링을 사용하여 가능한 모든 것(또는 어쩌면 상상할 수 있는 것)을 훨씬 초과했다.
10여 년 전, 사막 전투 모의 실험에서는 쿠웨이트 주변의 시뮬레이션 지형에서 6만6,239대의 탱크, 트럭 및 기타 차량을 모델링하여 DoD 고성능 컴퓨터 현대화 프로그램에 여러 대의 슈퍼컴퓨터를 사용했다.
[2] 다른 예로는 10억 원자의 재료 변형 모델,[3] 모든 살아있는 유기체의 복합 단백질 생성 유기농인 리보솜의 264만 원자의 모델,[4] 2012년 마이코플라즈마 생식기 수명 주기의 완전한 시뮬레이션, 2005년 5월부터 시작된 EPFL(스위처랜드)의 블루 브레인 프로젝트가 있다.
분자 수준으로 내려가는 인간의 뇌 전체를 최초로 시뮬레이션한 것[5]
시뮬레이션의 계산 비용 때문에, 컴퓨터 실험은 불확실성 정량화와 같은 추론을 수행하기 위해 사용된다.[6]자료작성
시뮬레이션과 모델의 외부 데이터 요구사항은 매우 다양하다. 일부의 경우 입력은 몇 개의 숫자(예: 전선에서의 AC 전기 파형의 시뮬레이션)에 불과할 수 있는 반면, 다른 입력은 테라바이트 단위의 정보(날씨 및 기후 모델 등)가 필요할 수 있다.
입력 소스는 또한 매우 다양하다.
모델에 연결된 센서 및 기타 물리적 장치
시뮬레이션의 진행 상황을 지시하는 데 사용되는 제어 표면 제어
손으로 입력한 현재 또는 과거 데이터
다른 프로세스에서 부산물로 추출한 값
다른 시뮬레이션, 모델 또는 프로세스에 의한 목적을 위한 출력값.
마지막으로, 데이터를 사용할 수 있는 시간은 다음과 같이 다양하다.
"불변량" 데이터는 값이 실제로 불변량(예: π의 값)이거나 설계자가 모든 관심 사례에 대해 불변량으로 간주하기 때문에 종종 모델 코드에 내장된다.
예를 들어, 하나 이상의 파일을 읽거나 전처리기에서 데이터를 읽음으로써 데이터를 시뮬레이션에 입력할 수 있다.
예를 들어 센서 네트워크에 의해 시뮬레이션 실행 중에 데이터가 제공될 수 있다.
이러한 다양성 때문에, 그리고 다양한 시뮬레이션 시스템에는 공통 요소가 많기 때문에, 전문 시뮬레이션 언어가 많이 존재한다.가장 잘 알려진 것은 시물라(Simula-67이라고도 하며, 1967년 이후 그것이 제안되었다.)일 것이다. 이제 다른 사람들도 많이 있다.
외부 소스의 데이터를 받아들이는 시스템은 그들이 무엇을 받고 있는지 아는 데 매우 신중해야 한다.컴퓨터가 텍스트나 이진 파일에서 값을 읽는 것은 쉽지만, 훨씬 어려운 것은 값의 정확도(측정 분해능 및 정밀도와 비교)가 무엇인지 아는 것이다.
종종 "오류 막대"로 표현되는데, 이는 참 값(예상)이 있는 값 범위로부터 최소 및 최대 편차다.
디지털 컴퓨터 수학이 완벽하지 않기 때문에 반올림과 잘림 오류가 이 오류를 곱하기 때문에, 시뮬레이션에 의한 출력이 여전히 유용하게 정확한지 확인하기 위해 「오류 분석」[8]을 실시하는 것이 유용하다.
종류들
컴퓨터 모델은 다음과 같은 몇 가지 독립적인 속성 쌍에 따라 분류될 수 있다.
확률론적 또는 결정론적(그리고 결정론적, 혼돈적) – 확률론 대 결정론적 시뮬레이션의 예는 아래 외부 링크를 참조하십시오.
정상 상태 또는 동적
연속형 또는 이산형(그리고 이산형, 이산형 이벤트 또는 DE 모델의 중요한 특수 사례로서)
동적 시스템 시뮬레이션(예: 전기 시스템, 유압 시스템 또는 다체 기계 시스템(기본적으로 DAE:s로 설명됨) 또는 현장 문제의 동적 시뮬레이션(예: FEM 시뮬레이션의 CFD(PDE:s로 설명됨)).
로컬 또는 분산.
모델을 분류하는 또 다른 방법은 기초적인 데이터 구조를 살펴보는 것이다. 타임 스텝 시뮬레이션의 경우 크게 두 가지 클래스가 있다.
데이터를 일반 그리드에 저장하고 인접 네트워크 접속만 요구하는 시뮬레이션을 스텐실 코드라고 한다. 많은 CFD 애플리케이션은 이 범주에 속한다.
기본 그래프가 정규 그리드가 아닌 경우 모델은 메쉬프리 메서드 등급에 속할 수 있다.
방정식은 모델링된 시스템의 요소들 간의 관계를 정의하고 시스템이 평형 상태에 있는 상태를 찾으려고 시도한다. 그러한 모델은 동적 시뮬레이션을 시도하기 전에 더 간단한 모델링 사례로서 물리적 시스템을 시뮬레이션하는 데 종종 사용된다.
동적 시뮬레이션 모델은 (일반적으로 변화하는) 입력 신호에 대응하여 시스템에서 변경된다.
확률적 모델은 우연 또는 무작위 사건을 모형화하기 위해 난수 생성기를 사용한다.
이산 이벤트 시뮬레이션(DES)은 제때에 이벤트를 관리한다. 대부분의 컴퓨터, 논리 테스트 및 결함 트리 시뮬레이션은 이러한 유형이다. 이러한 유형의 시뮬레이션에서 시뮬레이터는 발생해야 하는 시뮬레이션 시간에 따라 정렬된 이벤트의 대기열을 유지한다.시뮬레이터는 대기열을 읽고 각 이벤트가 처리될 때 새로운 이벤트를 트리거한다. 시뮬레이션을 실시간으로 실행하는 것은 중요하지 않다. 시뮬레이션에 의해 생성된 데이터에 접근할 수 있고 설계 또는 사건 순서에서 논리 결함을 발견할 수 있는 것이 종종 더 중요하다.
연속 동적 시뮬레이션은 미분-알제브라 방정식 또는 미분 방정식(부분적 또는 일반적)의 수치 해답을 수행한다. 주기적으로 시뮬레이션 프로그램은 모든 방정식을 해결하고 숫자를 사용하여 시뮬레이션의 상태와 출력을 변경한다.응용 프로그램에는 비행 시뮬레이터, 건설 및 관리 시뮬레이션 게임, 화학 프로세스 모델링 및 전기 회로 시뮬레이션이 포함된다.
원래 이러한 종류의 시뮬레이션은 실제로 아날로그 컴퓨터에서 실행되었는데, 여기서 미분 방정식은 op-amps와 같은 다양한 전기 구성 요소에 의해 직접 표현될 수 있었다.
그러나 1980년대 후반까지 대부분의 "아날로그" 시뮬레이션은 아날로그 컴퓨터의 동작을 모방하는 기존의 디지털 컴퓨터에서 실행되었다.
'프로그래밍 JAVA' 카테고리의 다른 글
메타데이터 통신과 사진 (0) 2020.07.16 메타데이터 (META DATA 의 총평) (0) 2020.07.15 JAVA JSONIQ 의 기초 ( JSON ) (0) 2020.07.14 SQL의 기원과 역사 미래 (0) 2020.07.14 701 에러 코드 대처 방법 (0) 2020.07.13