애니로직

**애니로직**(AnyLogic)은 AnyLogic Company (구: XJ Technologies)에서 개발한 복합 시뮬레이션 모델링 도구이다. 이 소프트웨어는 이산 사건, 에이전트 기반 및 시스템 다이내믹스 시뮬레이션의 구현을 지원한다. AnyLogic PLE 에디션 (Personal Learning Edition)은 현재 개인 학습 및 교육 목적을 위한 용도로 무료로 이용 가능하다.

## 역사
1990년대 초에 들어서면서 병렬 프로세스의 모델링 및 시뮬레이션에 대한 수학적 접근 방식이 큰 관심을 모으기 시작했다. 이러한 접근법은 병렬 및 분산 프로그램의 정확성 분석에 적용될 수 있는 것이었다. 상트페테르부르크 기술 대학교 (Saint Petersburg Technical University)의 분산 컴퓨터 네트워크 (DCN) 연구팀은 이러한 소프트웨어 시스템을 프로그램의 정확도 분석을 위해 개발했다. 이 새로운 도구는 COVERS (Concurrent Verification and Simulation) 라고 이름 지어졌다. 이 시스템은 시스템 구조와 동작의 그래픽 모델링 표기를 가능하게 했다. 이 도구는 휴렛팩커드 사 (HP: Hewlett-Packard)의 지원을 바탕으로한 연구에 사용되었다.

1998년에 이 연구의 성공은 분산 컴퓨터 네트워크(DCN) 연구실이 새로운 시대의 시뮬레이션 소프트웨어를 개발하는 것을 임무로 하는 회사를 설립하는 계기가 되었다. 개발의 중점은 시뮬레이션, 성과 분석, 확률 시스템의 동작, 최적화 및 시각화와 같은 적용 방법에 놓여 졌다. 2000년에 출시된 새로운 소프트웨어는 객체지향 접근 방식, 표준 UML (Unified Modeling Language)의 요소들, Java의 사용, 현대적 GUI (Graphical User Interface) 등 최신 정보 기술의 이점들을 기반으로 하였다.
섬네일|500px|오른쪽|세 가지 비즈니스 시뮬레이션 접근 방식
이 도구는 잘 알려진 아래의 세 가지의 모델링 접근 방식을 모두 지원하기 때문에 ‘애니로직 (AnyLogic)’ 이라고 이름 지어졌다.
* 시스템 다이내믹스 (System dynamics),
* 이산 사건 시뮬레이션 (Discrete event simulation),
* 에이전트 기반 모델링 (Agent-based modeling).
+ AnyLogic은 하나의 모델 안에서 이러한 접근 방식들을 조합하여 모델링 할 수 있도록 한다.
AnyLogic의 첫번째 버전은 AnyLogic 4였는데, 이는 이전의 COVERS 3.0.의 번호를 연속적으로 이어가기 위함이었다.

AnyLogic 5가 출시된 2003년에는 큰 변화가 있었다. 바로 비즈니스 시뮬레이션으로서 다음과 같은 영역에 초점을 맞추기 시작한 것이다.
* 시장과 경쟁,
* 의료서비스 산업,
* 제조업,
* 공급망,
* 물류,
* 소매업,
* 비즈니스 프로세스,
* 사회 및 생태계 역학,
* 국방,
* 프로젝트 및 자산 관리,
* IT 인프라,
* 보행자 역학 및 교통 시뮬레이션,
* 항공우주,
* 태양광 발전.

2014년에는 AnyLogic 7이 출시되었다. 7년만의 가장 큰 출시작으로서, 이는 모델링 구축을 보다 단순화 시키는 것을 목표로 이루어진 상당한 업데이트들을 특징으로 삼고 있으며, 여기에는 다중 기법 모델링, 코딩 필요성의 감소, 새로워진 라이브러리 및 다른 사용자 편리성의 향상과 같은 지원 사항들을 개선시켰다. 또한 2014년에 출시된 AnyLogic 7.1은 소프트웨어에 새로운 GIS (지리정보시스템: Geographic Information System)의 실행을 포함시켰다. 이에 AnyLogic은 형상파일 기반의(shapefile-based) 지도뿐만 아니라, OpenStreetMap과 같은 무료 온라인 공급자들을 통해 타일맵 (tile maps)을 지원하기 시작했다.

2015년에는 내장 데이터베이스 및 유동체 라이브러리 (the Fluid Library)를 포함한 AnyLogiс 7.2를 출시했다. 또한 2015년에는 무료 개인 학습용 에디션(PLE)이 처음으로 선보여졌다.

새로운 도로 교통 라이브러리 (the Road Traffic Library)는 2016년에 출시된 AnyLogic 7.3 버전을 통해 소개되었다.

가장 최근인 2017년에는 AnyLogic 8이 출시되었다. 8.0 버전의 출시를 시작으로, AnyLogic의 모델 개발 환경은 시뮬레이션 분석을 위한 웹서비스인 AnyLogic Cloud와 통합되었다.

AnyLogic 8의 모델 개발 환경은 Eclipse이다. AnyLogic은 크로스 플랫폼 시뮬레이션 소프트웨어로서 윈도우, Mac OS 그리고 리눅스에서 실행 가능하다.

## AnyLogic과 Java
AnyLogic은 그래픽적인 모델링 언어를 포함하며, 또한 사용자들이 Java 코드를 통해 시뮬레이션 모델들을 확장시킬 수 있도록 한다. 따라서 Java를 기반으로 하는 AnyLogic은 어떠한 표준 브라우저에서도 열릴 수 있는 Java 애플릿의 구축뿐만 아니라 Java 코딩을 통한 사용자 정의 모델을 확장하는 데에 적합하다. 이러한 애플릿들은 AnyLogic 모델들을 매우 쉽게 웹사이트 상에서 공유하거나 구현시킬 수 있도록 한다. 더 나아가 Java 애플릿뿐만 아니라, 프로페셔널 버전은 사용자들에게 배포될 수 있는 Java 런타임 응용 프로그램들의 생성을 지원한다. 이와 같은 완전한 Java 응용 프로그램들은 의사 결정 지원 도구들을 위한 기반이 될 수 있다. 그러나, 보안 상의 이유로 많은 인터넷 사용자들이 Java 애플릿 지원을 비활성화 해왔다는 점은 유의할 필요가 있다.

## 다중기법 시뮬레이션 모델링
섬네일|500px|오른쪽|다양한 시뮬레이션 접근 방식이 어떤 추상화 수준에 해당하는지를 보여준다.
AnyLogic 모델은 다음과 같은 주요 시뮬레이션 모델링의 전형적인 예제들을 기반으로 한다. : 이산 사건 또는 프로세스 중심 (DE), 시스템 다이내믹스 (SD) 및 에이전트 기반 (AB).

시스템 다이내믹스와 이산 사건은 전통적인 시뮬레이션 접근 방식이며, 에이전트 기반은 보다 최신의 방식이라고 할 수 있다. 기술적으로 시스템 다이내믹스 처리 방식은 연속적인 공정을 다루는 반면, “이산 사건” (프로세스 중심 시뮬레이션 접근 방식으로도 알려져 있는 범용 시뮬레이션 시스템 – General Purpose Simulation System: GPSS – 의 모든 후속작들을 의미함) 및 에이전트 기반 모델은 대개 이산 시간을 다루며, 예를 들어 특정한 이벤트에서 다른 이벤트로의 이동과 같은 것을 다룬다.

시스템 다이내믹스와 이산 사건 시뮬레이션은 역사적으로 대학교에서 경영 및 경제, 산업 및 운영 연구 엔지니어와 같이 매우 다른 그룹의 학생들을 대상으로 교육되어 왔다. 그 결과 서로 대화를 나누지 않는 두 부류의 상이한 관련 전문가 그룹이 이 분야에 형성되었다.

최근까지 에이전트 기반의 모델링은 대개 순수한 학문적 주제로만 머물러 있었다. 그러나 국제 비즈니스 최적화에 대한 수요의 증가는 모델 개발자들이 매우 이질적인 성질을 가진 복잡한 상호의존적인 공정들에 대해 보다 깊이있는 통찰력을 가질 수 있도록 하는 혼합형 접근 방식을 모색하도록 만들었다.

어떻게 모델링 방법이 추상화 수준과 일치할 수 있을까? 집계를 다루는 시스템 다이내믹스는 분명히 가장 높은 추상화 수준에 사용된다. 이산 사건 모델링은 중간 정도의 추상화 수준에 사용되고 있다. 에이전트 기반의 모델링에 대해서 말하자면, 이 기술은 모든 수준의 추상화에 걸쳐서 사용된다고 할 수 있으며, 이는 에이전트가 매우 다양한 성질과 규모를 가진 대상들을 모델링 할 수 있기 때문이다. “물리적” 수준에서는, 예를 들어 에이전트는 보행자 또는 자동차 또는 로봇과 같은 것이 될 수 있고, 중간 수준에서는 고객, 그리고 가장 높은 수준에서는 경쟁사들이 될 수 있다.

AnyLogic은 동일한 모델 안에서 모델 개발자가 이러한 시뮬레이션 접근 방식들을 통합할 수 있도록 돕는다. 고정된 계층이 있는 것이 아니다. 즉, 한 가지 예를 들자면, 개발자는 포장물 운송 산업 모델을 만들 수 있는데, 이 안에서 운송 차량이 독립적으로 행동/ 반응하는 에이전트로 모델링 된다면, 운송 및 기반시설 연결망의 내부적인 작업들은 이산 사건 시뮬레이션으로 모델링 할 수도 있다. 비슷하게, 개발자는 개별적인 에이전트에 의존할 필요가 없는 수입이나 비용과 같은 흐름을 포착하는 시스템 다이내믹스 모델을 충족시키는 총체적인 행동을 가진 소비자들을 에이전트로서 모델링 할 수도 있다. 어떤 한 가지 접근법을 통해 모델링하는 절충안들이 있다고 하더라도, 이렇게 언어적으로 혼합된 접근 방식은 매우 다양한 복합 모델링 문제들에 직접적으로 적용될 수 있다.

## 특징

### 시뮬레이션 언어
섬네일|500px|오른쪽|AnyLogic 사에서 제공한 시뮬레이션 언어 구조
AnyLogic의 시뮬레이션 언어는 다음과 같은 요소들로 구성되어 있다.
* **저량과 유량 다이어그램 ([https://en.wikipedia.org/wiki/Stock_and_flow Stock & Flow Diagrams])**은 시스템 다이내믹스 모델링을 위해 사용된다.
* **상태 차트 ([https://en.wikipedia.org/wiki/State_machine Statecharts])**는 대개 에이전트의 행위를 정의하기 위한 에이전트 기반 모델링에 사용된다. 이는 또한 기계 고장 시뮬레이션과 같이 이산 사건 모델링에도 종종 사용된다.
* **액션 차트 (Action charts)**는 알고리즘을 정의하기 위해 사용된다. 이는 전화 연결 경로와 같은 이산 사건 모델링에 사용되거나 또는 에이전트의 결정 논리와 같이 에이전트 기반 모델링에도 사용될 수 있다.
* **처리과정 순서도(Process flowcharts)**는 이산 사건 모델링을 정의하는 기본 구조이다. 이 순서도를 살펴보면 왜 이산 사건 접근 방식을 종종 프로세스 중심 (Process Centric) 이라고 하는지를 알 수 있다.
언어에는 또한 다음과 같은 것들이 포함된다. : 낮은 수준의 모델링 구조 (변수, 방정식, 매개 변수, 이벤트 등), 프레젠테이션 도형들 (직선, 폴리선, 타원형 등), 분석 기능 (데이터 세트, 막대 그래프, 좌표 기록), 연결 도구, 표준 이미지, 그리고 실험 프레임워크.

### AnyLogic 라이브러리
AnyLogic은 다음과 같은 표준 라이브러리를 제공한다. :
* **프로세스 모델링 라이브러리 (Process Modeling Library)**은 제조업, 공급망, 물류 그리고 의료서비스 분야에서 이산 사건 (DE) 시뮬레이션을 지원하도록 설계되었다. 이 처리과정 모델링 라이브러리는 객체 (처리, 고객, 제품, 부품, 차량 등), 처리공정 (일반적으로 대기 행렬, 지연, 자원 활용을 포함하는 작업의 순서), 그리고 자원에 대해 실제 시스템을 모델링 할 수 있도록 한다. 프로세스 모델링 라이브러리는 AnyLogic 7 에서도 역시 사용가능한 AnyLogic 6 의 엔터프라이즈 라이브러리의 뒤를 잇는 것이다.
* **보행자 라이브러리 (Pedestrian Library)**는 물리적 환경에서 보행자의 이동을 시뮬레이션 하는 데에 사용된다. 이는 보행자가 밀집되어 있는 건물 (예를 들어 지하철역, 보안 검색대 등) 또는 상당히 많은 수의 보행자들이 돌아다니는 거리를 모델링 할 수 있도록 한다. 이를 통해 만들어진 모델은 다른 구역에서의 보행자 밀집도에 대한 통계를 수집할 수 있도록 지원한다. 이는 가상의 도로, 특정한 구역에서 머무는 시간의 예측, 그리고 예를 들어 많은 장애물들을 추가하는 것에 대한 결과와 같은 내부 기하학의 잠재적 문제 요소 감지, 그리고 그 밖에 다른 적용 사례들에서 서비스 이행에 대한 만족스러운 지점을 보장한다. 보행자 라이브러리를 통해 만들어진 모델에서, 보행자들은 연속적인 공간에서 움직이며, 다른 보행자들뿐만 아니라 다른 종류의 장애물들 (벽, 다른 종류의 구역들)에 대해서도 반응한다. 보행자들은 복잡한 행동을 가지는 상호적인 에이전트로서 시뮬레이션되지만, AnyLogic 의 보행자 라이브러리는 순서도의 양식으로 보다 빠르게 보행자 모델을 구축할 수 있는 훨씬 높은 수준의 인터페이스를 제공한다.
* **철도 라이브러리 (Rail Library)**는 어떠한 복잡성과 규모를 가진 철도 조차장의 운영도 모델링 및 시뮬레이션 하며, 시각화 할 수 있도록 지원한다. 철도 조차장 모델은 다음과 같은 이산 사건 또는 에이전트 모델과 결합될 수 있다. : 화물 하역, 자원 배분, 유지 보수, 비즈니스 프로세스 및 기타 운송 활동
* **유체 라이브러리 (Fluid Library)**는 분리 가능한 물체로서 모델링하는 것이 바람직 하지 않은 다량의 별개의 물체들, 대규모 화물, 유동체의 운송 및 저장과 같은 것을 사용자가 모델링 할 수 있도록 한다. 이 라이브러리는 탱크, 배관, 밸브, 그리고 특정한 흐름의 나눔, 융합 및 라우팅을 위한 대상들을 포함하고 있다. 모델 실행 속도를 향상시키기 위하여 유동체 라이브러리는 선형 프로그래밍 해결사를 사용하고 있다. 이 라이브러리는 제조업, 석유 및 광업 분야에서 AnyLogic 의 사용을 개선시키기 위해 개발되었다. 사용자는 석유 수송관 및 탱크, 광석, 석탄 운반기, 그리고 액체류나 콘크리트 제조와 같이 대량의 자제들을 수반하는 생산 공정을 시뮬레이션 하는 데에 사용할 수 있다.
* **도로 교통 라이브러리 (Road Traffic Library)**는 사용자들이 도로의 차량 통행을 시뮬레이션 할 수 있도록 한다. 이 라이브러리는 물리적 수준에서의 차량 이동의 상세한 모델링을 지원한다. 각각의 차량은 내부의 자체 행동 패턴을 가진 에이전트로 구현될 수 있다. 이 라이브러리는 사용자들이 도로에서의 차량의 움직임을 시뮬레이션 할 수 있도록 하며, 도로 주행 규정, 교통 신호등, 횡단 보도, 교차로에서의 우선 주행권, 주차장, 그리고 대중 교통 이동과 같은 사항들을 반영한다. 이 라이브러리는 고속도로 교통, 일반도로 교통, 제조 현장에서의 운송 수단, 또는 차량, 도로 그리고 차선을 포함하는 여러 다른 시스템을 다루는 데 적합하다. 교통 밀도 도구는 특별히 도로망의 상황을 분석하는 것을 지원하도록 설계되어 있다.

뿐만 아니라, 위와 같은 표준 라이브러리 사용자들은 자신만의 특별한 라이브러리를 구성하거나 배포하는 것이 가능하다.

### 모델 애니메이션
AnyLogic 은 상호적인 2D 및 3D 애니메이션을 지원한다.

AnyLogic에서 사용자들은 DXF 파일의 형태로 CAD 드로잉을 불러오기 할 수 있으며, 이 위에 모델을 시각화하는 것도 가능하다. 이 기능은 공장, 물류 창고, 병원 등 특정 대상의 내부 프로세스를 애니메이션화 하는데 사용될 수 있다. 이러한 기능은 대개 제조업, 의료서비스, 토목 공학, 그리고 건축 분야에서 이산 사건 (프로세스 기반)을 모델링 하는데 사용된다. AnyLogic 소프트웨어는 또한 3D 애니메이션을 지원하며, 건축물, 도로, 철도, 해양, 운송, 에너지, 물류 창고, 병원, 장비, 공항관련 사항들, 슈퍼마켓관련 사항들, 크레인 및 기타 다른 대상들과 같은 다양한 산업과 관련된 3D 애니메이션을 바로 만들 수 있는 모음집을 포함하고 있다.

모델은 사용자들이 입력 데이터값을 변경하고 환경설정을 할 수 있도록 하는 사용자 정의 UI 구성요소도 포함하고 있다.

### 지형공간 모델, 지리정보시스템 (GIS) 통합
AnyLogiс 모델은 공급망, 유통, 그리고 운송 산업에서 종종 요구되는 레이아웃 형태인 지도를 사용할 수 있다. AnyLogic 소프트웨어는 Esri 사의 전통적인 쉐이프 파일 기반의 (shapefile-based) 표준 지도인 SHP형식을 지원한다. 더 나아가, AnyLogic은 OpenStreetMap을 포함하여 무료 온라인 공급자의 타일맵 (tile maps)도 지원하고 있다. 타일맵은 모델 개발자가 모델 안에서 지도 정보 및 에이전트를 위한 지형공간 루트를 자동적으로 생성할 수 있도록 한다. AnyLogic의 타일맵 기능은 다음과 같은 요소들을 포함하고 있다. :
* 모델은 온라인 기반의 지도에 저장되어 있는 모든 데이터에 접근할 수 있다. : 도시, 지역, 도로망, 도로 네트워크 및 특정 대상 (병원, 학교, 버스 정류장 등).
* 에이전트는 지도 위에 명시된 특정한 지점에 놓여질 수 있으며, 실존하는 도로 또는 경로를 따라 이동이 가능하다.
* 사용자는 내장 검색 기능을 통해 모델 안에서 필요한 요소들을 생성할 수 있다.

### 다른 IT 인프라 모델과의 통합
AnyLogic의 모델은 다른 소프트웨어와 통합되거나 별도로 실행가능한 Java 애플리케이션의 형태로 내보낼 수 있다. 하나의 선택 사항으로서, 내보내진 AnyLogic 모델은 다른 종류의 소프트웨어 안에서 ERP, MRP, RMF, 그리고 TMS 시스템에 추가적인 모듈로서 작동할 수 있다. 다른 일반적인 사용에는 AnyLogic의 모델과 TXT, MS Excel, Ehsms MS Access 파일들 및 데이터베이스 (MS SQL, My SQL, Oracle 등)와의 통합이 있다. 또한 AnyLogic 모델은 HSQLDB에 기반한 자체 데이터베이스를 포함하고 있다.

## AnyLogic Cloud

AnyLogic Cloud는 시뮬레이션 분석을 위한 웹 서비스이다. 이는 애니로직 사용자들이 온라인을 통해 실험 결과를 분석할 뿐만 아니라 시뮬레이션 모델을 저장하고, 보다 쉽게 접근하며, 이를 실행시켜 보고, 공유할 수 있도록 한다.

AnyLogic 모델 개발 환경을 사용하여 사용자들은 AnyLogic Cloud에 자신들의 모델을 업로드 할 수 있으며, 온라인에서 모델 작업을 위해 공유가능한 웹 대시보드를 만들 수도 있다. 이러한 대시보드는 구성가능한 입력 변수 및 출력 자료를 차트와 그래프의 형태로 담을 수 있도록 한다. 모델 사용자들은 입력 변수를 대시보드 화면에 설정하고, 모델을 실행시키고, 결과를 분석할 수도 있다.

AnyLogic Cloud는 서버 사이드에서 모델이 실행될 수 있도록 함으로써 데스크탑 컴퓨터와 모바일 장치에서 웹 브라우저를 통해 사용자들이 모델을 실행시킬 수 있도록 지원한다. 복수의 실행 시험들은 여러 접속점을 사용함으로써 실행된다. 실행된 모든 실험 결과들은 데이터베이스에 저장되며, 바로 접근이 가능하다. 모델은 HTML5 기반의 상호기반의 애니메이션이 있든 없는 두 가지 상황에서 모두 실행이 가능하다.

개발자들은 다른 AnyLogic 사용자들이 개발한 모델들을 포함하고 있는 모델 라이브러리에 자신들이 직접 개발한 모델을 개인적으로 사용할 것인지 공개할 것인지 선택할 수 있다.

## 무료 교육용 버전
2015년부터 AnyLogic 개인 학습용 에디션 (Personal Learning Edition: PLE) 이 자기 학습 및 교육 목적을 위해 무료로 제공되고 있다. PLE 버전의 라이선스는 영구적이지만, 모델을 만들 때 규모의 제한이 있다.

교육 기관에서의 공공 연구를 위한 목적의 경우 사용자는 할인된 가격의 대학 연구원 (University Researcher) 에디션의 라이선스를 구입할 수 있으며, 이는 모델 규모에 제약이 없고 전문가 에디션의 많은 기능들을 포함하고 있다.

## 애니로지스틱스 (anyLogistix) 공급망 최적화 소프트웨어
AnyLogic 은 공급망 시뮬레이션을 위한 특정한 라이브러리를 포함하고 있지 않은데, 이는 애니로직 사 (The AnyLogic Company)가 이 분야는 따로 anyLogistix라는 전문화된 도구로 전환하여 개발시켰기 때문이다. 이 스핀오프 제품은 2014년에 처음으로 AnyLogic Logistics Network Manager라는 이름으로 출시되어 2015년에 anyLogistix로 다시 이름 지어졌다.

anyLogistix는 AnyLogic 엔진, 지리정보시스템(GIS), 그리고 새로운 산업 지향의 사용자 그래픽 인터페이스 (GUI)를 기반으로 하고 있다. 이는 또한 공급망 디자인과 최적화에 특화된 알고리즘과 기술들을 포함하고 있다. anyLogistix는 완전히 AnyLogic과 통합 가능하며, 예를 들어 AnyLogic이 anyLogistix 안에서 물류 창고, 생산지, 공급자, 재고, 대외구매, 및 운송 정책과 같은 대상의 최적화를 위해 사용될 수 있다. 더 나아가, anyLogistix는 최적화 문제를 다루기 위해 IBM ILOG CPLEX Optimization Studio를 사용하고 있다.

## 기타 보기
* 에이전트 기반 모델링 소프트웨어 비교
* 컴퓨터 시뮬레이션 소프트웨어 목록
* 이산 사건 시뮬레이션 소프트웨어 목록
* 컴퓨터 시뮬레이션

## 같이 보기
* 컴퓨터 시뮬레이션
## 각주

## 추가 관련 서적
* 
* 
* 

## 외부 링크

* 
* anylogic.com에서 AnyLogic 개요 보기

분류:자바 개발 도구
분류:2000년 소프트웨어
분류:시뮬레이션 소프트웨어
분류:에이전트 기반 소프트웨어