대수 모델링 언어

Algebraic modeling language

대수 모델링 언어(AML)는 대규모 수학 계산(즉, 대규모 최적화 유형 문제)[1]의 고복잡도 문제를 기술하고 해결하기 위한 고급 컴퓨터 프로그래밍 언어입니다.AIMMS,[1] [2]AMPR, GAMS,[1] Gekko, MathProg, Mosel [1][3]OPL같은 일부 대수 모델링 언어의 특별한 장점 중 하나는 최적화 문제의 수학적 표기법과의 구문 유사성이다.이것은 집합, 색인, 대수식, 강력한 스파스 인덱스 및 데이터 처리 변수, 임의 이름을 가진 제약 조건과 같은 특정 언어 요소에 의해 지원되는 최적화 영역의 문제에 대한 매우 간결하고 읽기 쉬운 정의를 가능하게 한다.모형의 대수적 공식에는 모형의 처리 방법이 포함되어 있지 않습니다.

AML은 이러한 문제를 직접 해결하는 것이 아니라 적절한 외부 알고리즘을 호출하여 해결책을 얻습니다.이러한 알고리즘은 해결사라고 불리며 다음과 같은 특정 종류의 수학 문제를 처리할 수 있습니다.

핵심 요소

AML의 핵심 요소는 다음과 같습니다.

설계 원리

대부분의 AML은 다음과 같은 설계 원칙을 따릅니다.

  • 선언적 요소와 절차적 요소의 균형 잡힌 혼합
  • 오픈 아키텍처 및 다른 시스템과의 인터페이스
  • 다른 레이어:
    • 모델 및 데이터
    • 모델 및 솔루션 방법
    • 모델 및 운영 체제
    • 모델 및 인터페이스

데이터 기반 모델 생성

대부분의 모델링 언어는 구조화된 모델과 관계형 데이터베이스 간의 유사성을 이용하여 모델링 시스템이 외부 데이터 소스(예[5]: AMBL을 위한 이러한 테이블 핸들러)로부터 데이터에 직접 액세스할 수 있도록 하는 데이터베이스 액세스 계층을 제공합니다.비즈니스 프로세스에 적용되는 분석 기술이 개선됨에 따라 최적화 모델은 의사결정 지원 시스템의 필수적인 부분이 되고 있습니다.또한 최적화 모델을 구조화하고 계층화하여 복잡한 비즈니스 프로세스를 지원할 수 있습니다.이러한 애플리케이션에서는 OLAP 시스템의 전형적인 다차원 데이터 구조를 최적화 모델에 직접 매핑할 수 있으며, 일반적인 MDDB 연산은 기본 모델에 대한 집약 및 세분화 연산으로 변환될 수 있습니다.

역사

대수 모델링 언어는 70년대 후반에 개발된 매트릭스 생성기 및 보고서 작성 프로그램(MGRW)에 뿌리를 두고 있습니다.그 중 일부는 MAGEN, MGRW(IBM), GAMMA.3, DATAFORM 및 MGG/RWG이다. 이러한 시스템은 솔루션 알고리즘에 대한 문제 사례 전달과 결과의 판독 가능한 보고서 생성을 단순화했다.

LP용 초기 매트릭스 생성기는 1969년경 암스테르담의 [7]Mathemisch Centrum(현재의 CWI)에서 개발되었습니다.그 구문은 sigmas의 첨자를 사용하여 일반적인 수학 표기법에 매우 가까웠다.생성기에 대한 입력은 모델과 데이터에 대한 개별 섹션으로 구성되었습니다.대학과 업계에서 사용자를 찾았습니다.주요 산업 사용자는 후고벤스(현재의 타타 스틸)로 거의 25년 동안 사용되었다.

현대 모델링 언어를 향한 큰 발걸음이 UIMP에서 발견되며, UIMP에서는 [8]실생활에서 가져온 수학적 프로그래밍 모델의 구조가 최초로 분석되어 이러한 모델에서 발생하는 변수와 제약의 자연스러운 그룹화를 강조한다.이것은 구조화된 모델링을 지원하는 데이터 구조 특성으로 이어졌다. 이 패러다임에서, 모든 입력 및 출력 표는 결정 변수와 함께 첨자 및 집합의 사용과 유사한 방식으로 이러한 구조 측면에서 정의된다.이것은 아마도 모든 현대 AML에 공통되는 가장 주목할 만한 단일 기능이며, 모델 구조와 데이터 간의 분리와 MP 모델 내의 엔티티와 관계형 데이터베이스 내의 데이터 간의 대응이 시간적으로 가능하게 됩니다.따라서 데이터셋을 수정하는 것만으로 모델을 인스턴스화하고 여러 데이터셋에서 해결할 수 있습니다.

모델링 엔티티와 관계형 [4]데이터 모델 간의 대응관계로, 기업 데이터베이스에서 데이터를 가져와 모델 인스턴스를 원활하게 생성할 수 있습니다.이 기능은 현재 실제 애플리케이션에서 최적화의 많은 유용성을 설명하며, 가장 잘 알려진 모델링 언어에 의해 지원됩니다.

대수 모델링 언어가 전형적으로 고립되고 전문적이며 상업적인 언어인 반면, 보다 최근에는 Geko, Python의 Pyomo, Julia 언어의 JuMP와 같은 범용 언어 내에 오픈 소스, 전문화된 라이브러리의 형태로 나타나기 시작했다.

레퍼런스

  1. ^ a b c d Kallrath, Joseph (2004). Modeling Languages in Mathematical Optimization. Kluwer Academic Publishing. ISBN 978-1-4020-7547-6.
  2. ^ Robert Fourer; David M. Gay; Brian W. Kernighan (1990). "A Modeling Language for Mathematical Programming". Management Science. 36 (5): 519–554–83. doi:10.1287/mnsc.36.5.519.
  3. ^ Gueret, Christelle; Prins, Christian; Sevaux, Marc (2002). Applications of Optimization with Xpress-MP. Dash Optimization Limited. ISBN 0-9543503-0-8.
  4. ^ a b Gautam Mitra; Cormac Lucas; Shirley Moody; Bjarni Kristjansson (1995). "Sets and indices in linear programming modelling and their integration with relational data models". Computational Optimization and Applications. 4 (3): 262–283.
  5. ^ [1] AMPR용 데이터베이스 및 스프레드시트 테이블 핸들러
  6. ^ Koutsoukis, N.; Mitra, G.; Lucas, C. (1999). "Adapting on-line analytical processing for decision modelling: the interaction of information and decision technologies". Decision Support Systems. 26 (1): 1–30. doi:10.1016/S0167-9236(99)00021-4. Retrieved November 22, 2017.
  7. ^ Jac. M. Anthonis, 선형 프로그래밍 문제에 대한 입력 시스템, Statista Neerlandica 24(1970), 143-153.
  8. ^ Francis D Ellison; Gautam Mitra (1982). "UIMP: user interface for mathematical programming" (PDF). ACM Transactions on Mathematical Software. 8 (3): 229–255. doi:10.1145/356004.356005. S2CID 3948431. Archived from the original (PDF) on 2014-01-18. Retrieved 2014-01-16.