KR101578421B1 - 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법 - Google Patents

사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법 Download PDF

Info

Publication number
KR101578421B1
KR101578421B1 KR1020140067118A KR20140067118A KR101578421B1 KR 101578421 B1 KR101578421 B1 KR 101578421B1 KR 1020140067118 A KR1020140067118 A KR 1020140067118A KR 20140067118 A KR20140067118 A KR 20140067118A KR 101578421 B1 KR101578421 B1 KR 101578421B1
Authority
KR
South Korea
Prior art keywords
calculation
type
function
main function
range
Prior art date
Application number
KR1020140067118A
Other languages
English (en)
Other versions
KR20150139138A (ko
Inventor
최경산
김동순
임한철
정봉남
Original Assignee
대한민국
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 대한민국 filed Critical 대한민국
Priority to KR1020140067118A priority Critical patent/KR101578421B1/ko
Publication of KR20150139138A publication Critical patent/KR20150139138A/ko
Application granted granted Critical
Publication of KR101578421B1 publication Critical patent/KR101578421B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법에 관한 것으로, 모의 대상 수식을 빠르게 리딩하고, 반복 계산을 최소화하여 모의 속도를 향상시킬 수 있는 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법을 제공한다. 이를 위한 본 발명은 모의하고자 하는 현상에 관하여 입력된 데이터, 상기 현상을 나타내는 구성 함수 및 이의 조합인 메인 함수, 상기 메인 함수의 계산 종류 및 계산 조건, 상기 데이터에 대한 계산 범위가 입력되고, 이를 기초로 사용자 정의형 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화하는 스테이지 모델 생성부; 상기 메인 함수의 상기 계산 종류, 상기 계산 조건, 및 상기 계산 범위에 따라 상기 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산이 실행되는 모의 실행부; 및 상기 생성된 스테이지 모델 및 상기 실행 결과가 저장되는 저장부를 포함하는 것을 특징으로 한다. 상기와 같은 구성에 의해 본 발명은 수식의 토큰화시 기본 단위별 리딩 및 숫자형 변환에 의해 통합 수식의 리딩 시간을 단축할 수 있고, 함수형 변수들에 대한 계산 횟수를 최소화하여 최종 계산 속도를 향상시킬 수 있는 효과가 있다.

Description

사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법{Integrated System and method for optimizing a calculation of user defined formula}
본 발명은 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법에 관한 것으로, 특히, 단위 모델화된 통합 수식의 모의시 빠른 수식 리딩 및 반복 계산 최소화를 제공하는 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법에 관한 것이다.
자연 현상들 또는 개체들을 분석하기 위해 모델을 구성하는데, 모델화는 현상 또는 대상의 궁극적인 본연의 모습을 추상화하는 과정이다. 이러한 모델은 그 분석 대상을 다양한 형태의 모델로 세분화하거나, 단위 모델들을 여러 가지로 조합한 형태로 조합하도록 구성될 수 있다.
곤충 모델의 경우, 곤충의 일부 특성과 관련된 모델로부터 세분화된 특성들이 모델화된 후 하나의 모델로 만들어질 수 있다. 예를 들면, 곤충은 알, 유충, 용, 성충 단계로 구분될 수 있으며, 또한, 유충을 1령, 2령, 3령, 4령, 5령 등의 세부 단계로 구분하여 각각에 대한 모델을 구성할 수 있다.
즉, 개체군 모델은 각각의 단위 모델로 구성되고, 단위 모델은 각 단위의 특성에 따라 여러 가지 모델들의 복합체가 될 수도 있다. 예를 들면, 알 모델은 알의 발육 속도 모델과 알의 발육 완료 분포 모델로 구성될 수 있다. 또한, 성충 모델은 성충의 수명 모델, 성충의 일별 생존율 모델, 총 산란수 모델, 일별 누적 산란율 모델로 구성될 수 있다. 위와 같은 세분화는 모델을 만드는 사람에 따라 훨씬 더 다양한 특성이 반영되어 더욱더 복잡한 모델들이 하나의 단위 모델을 구성할 수 있다.
이러한 모델은 반드시 수 및 함수를 포함하는 수식으로만 표현되지는 않지만, 다양한 분석 및 예측을 위한 모의를 위해서 수식의 복합체로 표현할 수 있다. 또한, 이러한 모델의 모의는 하나의 모델에 세분화되어 포함된 다양한 함수들을 포함하는 복잡한 수식 계산이 이루어져 한다. 이와 같이, 모델은 여러 개의 수식이 사용되고, 개별 수식의 계산 범위나 방식에 차이가 있으며, 더욱이 이러한 모델은 실제 모의되는 과정에서 다수의 특정 조건에서만 모의될 필요가 있는데, 이러한 특정 조건의 구성은 모델 전체에 적용되는 것과 부분적으로 적용되는 것으로 구분되어야 한다.
이러한 모델의 모의시 복잡한 계산 및 많은 계산 과정을 수행하기 때문에 처리양이 방대하여 모의에 많은 시간이 소요된다. 특히 사용자 정의형 계산 시스템의 경우, 더 복잡하고 다양한 모델들이 제공되며, 사용자가 원하는 모형을 모두 다 수용할 수 있도록 설계될수록 모의 속도가 느려진다. 따라서, 모의시 계산을 효율적으로 수행하여 모의 속도를 개선하기 위한 시스템 및 방법이 요구되고 있다.
KR 2013-0127616 A
상기와 같은 종래 기술의 문제점을 해결하기 위해, 본 발명은 모의 대상 수식을 빠르게 리딩하고, 반복 계산을 최소화하여 모의 속도를 향상시킬 수 있는 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법을 제공하고자 한다.
위와 같은 과제를 해결하기 위한 본 발명은 모의하고자 하는 현상에 관하여 입력된 데이터, 상기 현상을 나타내는 구성 함수 및 이의 조합인 메인 함수, 상기 메인 함수의 계산 종류 및 계산 조건, 상기 데이터에 대한 계산 범위가 입력되고, 이를 기초로 사용자 정의형 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화하는 스테이지 모델 생성부; 상기 메인 함수의 상기 계산 종류, 상기 계산 조건, 및 상기 계산 범위에 따라 상기 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산이 실행되는 모의 실행부; 및 상기 생성된 스테이지 모델 및 상기 실행 결과가 저장되는 저장부를 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 스테이지 모델 생성부는, 상기 메인 함수(Y형) 또는 서브 함수(F형) 단위로 토큰식을 구성하는 토큰화 모듈; 상기 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 유효성 검증 모듈; 및 상기 유효성 검증에 따라 상기 유효성 검증에 따라 상기 토큰식이 해당 토큰식의 총 길이를 포함하도록 상기 토큰의 수식을 후위식으로 변형하는 수식 변형 모듈을 포함할 수 있다.
일 실시예에서, 상기 토큰화 모듈은 상기 메인 함수의 숫자형을 토큰화하는 경우, 상기 토큰식에서 상기 숫자형의 크기에 해당하는 메모리 크기를 할당할 수 있다.
일 실시예에서, 상기 모의 실행부는, 상기 메인 함수에 대하여 상기 계산 범위가 적정한지를 판단하여 상기 계산 범위가 상기 데이터의 범위 이내가 되도록 재설정하는 계산 범위 재설정부; 상기 계산 종류가 단순 연산(calculator)인지의 여부를 판단하고, 단순 연산이 아닌 경우, 상기 구성 함수의 변수(C형)에 대한 사전 계산을 실행하는 부스터부; 및 상기 재설정된 범위 및 상기 사전 계산된 구성 함수의 변수를 기초로 상기 메인 함수를 계산하되, 함수형 변수 중 변수값이 존재하지 않는 경우, 상기 구성 함수의 변수(C형) 및 상기 메인 함수의 서브 함수 변수(F형)에 대한 사전 계산을 실행하며, 상기 구성 함수의 사전 계산된 변수값이 존재하는 경우, 사전 계산된 변수값을 호출하는 계산 엔진부를 포함할 수 있다.
일 실시예에서, 상기 부스터부는 상기 구성 함수에 배열 함수 또는 배열 변수가 포함되는지를 판단하여 포함되지 않는 경우에만 상기 사전 계산을 실행할 수 있다.
일 실시예에서, 상기 계산 엔진부는, 상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 고정형 배열 계산; 상기 계산 조건이 만족하는 경우, 상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 조건형 배열 계산; 및 상기 데이터의 일정 범위 내에서 상기 계산 조건이 만족하는 경우에만 계산의 결과를 누적 합산하는 전이형(transition) 계산 중 어느 하나를 수행할 수 있다.
일 실시예에서, 상기 계산 엔진부는 상기 전이형 계산의 경우, 상기 메인 함수의 모든 서브세트에 대한 계산 후 결과를 합산할 수 있다.
일 실시예에서, 상기 계산 엔진부는 상기 전이형 계산의 경우, 상기 메인 함수의 하나의 서브세트에 대한 계산 후 결과를 합산하고, 다음 서브세트에 대한 계산을 수행할 수 있다.
일 실시예에서, 상기 스테이지 모델은 생물적 특성에 부합하는 모델일 수 있다.
일 실시예에서, 상기 스테이지 모델은 작물, 병, 해충, 및 곤충에 발생 또는 발육을 나타낸 모델일 수 있다.
본 발명의 다른 양태에 따른 방법은 모의하고자 하는 현상에 관하여 입력된 데이터, 상기 현상을 나타내는 구성 함수 및 이의 조합인 메인 함수, 상기 메인 함수의 계산 종류 및 계산 조건, 상기 데이터에 대한 계산 범위를 등록하고, 이를 기초로 사용자 정의형 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화하는 스테이지 모델 생성 단계; 및 상기 메인 함수의 상기 계산 종류, 상기 계산 조건, 및 상기 계산 범위에 따라 상기 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산을 실행하는 모의 실행 단계를 포함하는 것을 특징으로 한다.
일 실시예에서, 상기 스테이지 모델 생성 단계는, 상기 메인 함수(Y형) 또는 서브 함수(F형) 단위로 토큰식을 구성하는 수식 토큰화 단계; 상기 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 유효성 검증 단계; 및 상기 유효성 검증에 따라 되, 상기 토큰식이 해당 토큰식의 총 길이를 포함하도록 상기 토큰의 수식을 후위식으로 변형하는 수식 변형 단계를 포함할 수 있다.
일 실시예에서, 상기 수식 토큰화 단계는 상기 메인 함수의 숫자형을 토큰화하는 경우, 상기 토큰식에서 상기 숫자형의 크기에 해당하는 메모리 크기를 할당할 수 있다.
일 실시예에서, 상기 모의 실행 단계는, 상기 메인 함수에 대하여 상기 계산 범위가 적정한지를 판단하여 상기 계산 범위가 상기 데이터의 범위 이내가 되도록 재설정하는 계산 범위 재설정 단계; 상기 계산 종류가 단순 연산인지의 여부를 판단하는 계산 종류 판단 단계; 상기 판단 결과, 단순 연산이 아닌 경우, 상기 구성 함수의 변수(C형)에 대한 사전 계산을 실행하는 부스터 실행 단계; 및 상기 재설정된 범위 및 상기 사전 계산된 구성 함수의 변수를 기초로 상기 메인 함수를 계산하되, 함수형 변수 중 변수값이 존재하지 않는 경우, 상기 구성 함수의 변수(C형) 및 상기 메인 함수의 서브 함수 변수(F형)에 대한 사전 계산을 실행하며, 상기 구성 함수의 사전 계산된 변수값이 존재하는 경우, 상기 사전 계산된 변수값을 호출하는 통합 수식 계산 단계를 포함할 수 있다.
일 실시예에서, 상기 부스터 실행 단계는, 상기 구성 함수에 배열 함수 또는 배열 변수가 포함되는지를 판단하는 판단 단계; 및 상기 판단 결과, 상기 배열 함수 또는 배열 변수가 상기 구성 함수에 포함되지 않는 경우, 상기 사전 계산을 실행하는 사전 계산 실행 단계를 포함할 수 있다.
일 실시예에서, 상기 통합 수식 계산 단계는, 상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 고정형 배열 계산 단계; 상기 계산 조건이 만족하는 경우, 상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 조건형 배열 계산 단계; 및 상기 데이터의 일정 범위 내에서 상기 계산 조건이 만족하는 경우에만 계산의 결과를 누적 합산하는 전이형 계산 단계 중 어느 하나를 수행할 수 있다.
일 실시예에서, 상기 전이형 계산 단계는, 상기 메인 함수의 모든 서브세트에 대한 계산을 실행하는 서브세트 계산 단계; 및 상기 모든 서브세트에 대한 계산 결과를 합산하는 합산 단계를 포함할 수 있다.
일 실시예에서, 상기 전이형 계산 단계는, 상기 메인 함수의 하나의 서브세트에 대한 계산을 실행하는 서브세트 계산 단계; 상기 서브세트의 계산 결과를 이전 계산된 서브세트과 합산하는 합산 단계; 및 상기 모든 서브세트에 대한 계산이 완료될 때까지 상기 서브세트 계산 단계 및 상기 합산 단계를 반복 수행하는 반복 단계를 포함할 수 있다.
일 실시예에서, 상기 스테이지 모델은 생물적 특성에 부합하는 모델일 수 있다.
일 실시예에서, 상기 스테이지 모델은 작물, 병, 해충, 및 곤충에 발생 또는 발육을 나타낸 모델일 수 있다.
본 발명에 따른 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법은 수식의 토큰화시 기본 단위별 리딩 및 숫자형 변환에 의해 통합 수식의 리딩 시간을 단축할 수 있는 효과가 있다.
또한, 본 발명은 반복 계산되는 함수형 변수들에 대하여 선별적인 관리를 통하여 계산하고, 따라서 함수형 변수들에 대한 계산 횟수를 최소화하여 최종 계산 속도를 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 사용자 정의형 수식 통합 계산의 최적화 시스템을 나타낸 블록도이다.
도 2는 도 1의 스테이지 모델 생성부의 세부 구성을 나타낸 블록도이다.
도 3은 도 2의 수식 검증부의 세부 구성을 나타낸 블록도이다.
도 4는 도 1의 모의 실행부의 세부 구성을 나타낸 블록도이다.
도 5는 도 1의 저장부의 세부 구성을 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 사용자 정의형 수식 통합 계산의 최적화 방법의 스테이지 모델 생성 방법을 나타낸 순서도이다.
도 7은 도 6의 계산 정보 유효성 검증의 세부 절차를 나타낸 순서도이다.
도 8은 도 6의 수식 토큰화의 세부 절차를 나타낸 순서도이다.
도 9는 본 발명의 일 실시예에 따른 스테이지 모델 생성의 예시적인 화면을 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 스테이지 모델 생성을 이용한 사용자 정의형 수식 통합 계산 방법의 모의 실행 방법을 나타낸 순서도이다.
도 11은 도 10의 부스터 실행의 세부 절차를 나타낸 순서도이다.
도 12는 도 10의 통합수식 계산의 세부 절차를 나타낸 순서도이다.
도 13은 도 12의 수식 계산 중 고정형 배열 계산 방법의 세부 절차를 나타낸 순서도이다.
도 14는 도 13에 따른 고정형 배열 계산의 예시적인 결과 화면을 나타낸 도면이다.
도 15는 도 12의 수식 계산 중 조건형 배열 계산 방법의 세부 절차를 나타낸 순서도이다.
도 16은 도 15에 따른 조건형 배열 계산의 예시적인 결과 화면을 나타낸 도면이다.
도 17은 도 10의 수식 계산 중 전이형 계산 방법의 세부 절차를 나타낸 순서도이다.
도 18은 도 17에 따른 전이형 계산의 예시적인 결과 화면을 나타낸 도면이다.
이하, 본 발명을 바람직한 실시예와 첨부한 도면을 참고로 하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되는 것은 아니다.
본 발명은 생물적 현상에 대한 모델의 설계 및 모의를 위한 사용자 정의형 통합 계산의 최적화에 관한 것으로, 모델을 구성하는 복잡한 수식들을 토큰화하는 과정에서 토큰식을 수식 단위별로 구성하고, 숫자형을 구성하여 수식의 리딩 속도를 향상시키고, 반복 계산의 횟수를 최소화하여 모의 시간을 단축할 수 있는 최적화 시스템 및 방법에 관한 것이다.
먼저, 도 1을 참조하여 본 발명의 한 실시예에 따른 사용자 정의형 수식 통합 계산의 최적화 시스템을 설명한다. 도 1은 본 발명의 일 실시예에 따른 사용자 정의형 수식 통합 계산의 최적화 시스템을 나타낸 블록도이다.
사용자 정의형 수식 통합 계산의 최적화 시스템(10)은 사용자에 의한 데이터 및 모델 조건들이 입력되는 입력부(110), 스테이지 모델의 구성 및 모의 결과를 출력하는 출력부(120), 및 입력된 데이터 및 조건들을 기초로 스테이지 모델의 생성 및 모의를 수행하는 통합 계산부(200)를 포함한다.
입력부(110)는 일반적인 컴퓨터 시스템의 입력부로서, 예를 들면, 키보드, 마우스 등을 포함하며, 사용자에 의한 선택이 입력된다. 또한, 입력부(110)는 이에 제한되지 않고, 원격지의 외부로부터 통신 수단 등을 통하여 통합 계산부(200)에 대한 데이터 및 조건들을 입력하기 위한 수단일 수 있다.
출력부(120)는 일반적인 컴퓨터 시스템의 출력부로서, 예를 들면, 디스플레이 장치를 포함하며, 스테이지 모델 및 모의 결과를 출력한다. 또한, 출력부(120)는 이에 제한되지 않고, 통신 수단 등을 통하여 원격지의 외부로 스테이지 모델 및 모의 결과를 출력하기 위한 수단일 수 있다.
이러한 입력부(110) 및 출력부(120)는 별도로 구성되는 것으로 설명되었지만, 이에 한정되지 않고, 예를 들면, 터치 스크린과 같이 입력 기능과 출력 기능이 일체형으로 구성될 수 있다.
통합 계산부(200)는 사용자의 입력에 따라 생물적 현상에 대한 스테이지 모델을 생성하는 스테이지 모델 생성부(210), 생성된 스테이지 모델의 모의를 실행하는 모의 실행부(220), 및 스테이지 모델 및 모의 결과에 대한 각종 데이터가 저장되는 저장부(230)를 포함한다. 이러한 통합 계산부(200)는 본 실시예에서는 하나의 기능 블록으로 설명되었지만, 이는 소프트웨어 또는 하드웨어 등 다양한 형태로 구현될 수 있으며, 특히, 본 실시예에서는 소프트웨어 프로그램인 것으로 설명한다.
스테이지 모델 생성부(210)는 모의하고자 하는 생물적 현상에 관하여 입력된 데이터, 생물적 현상을 나타내는 구성 함수 및 이의 조합인 메인 함수, 메인 함수의 계산 종류 및 계산 조건, 데이터에 대한 계산 범위가 입력부(110)를 통하여 입력되고, 이를 기초로 사용자 정의형 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화한다.
도 2를 참조하여 스테이지 모델 생성부(210)를 더 상세하게 설명한다. 도 2는 도 1의 스테이지 모델 생성부의 세부 구성을 나타낸 블록도이다.
스테이지 모델 생성부(210)는 스테이지 모델과 관련된 데이터를 관리하는 외부 데이터 관리부(212), 스테이지 모델의 구성함수를 관리하는 구성함수 관리부(214), 모의를 위한 통합계산을 관리하는 통합계산 관리부(216), 및 등록되는 수식의 유효성을 검증하여 토큰화하는 수식 검증부(218)를 포함한다.
외부 데이터 관리부(212)는 사용자 등에 의해 입력부(110)를 통하여 입력된 외부 데이터를 독립 변수(X형) 및 참조 변수(R형)의 형태에 따라 등록 및 삭제를 관리한다. 여기서, 독립 변수(X형)는 수식에 사용되는 독립 변수를 의미하며, 참조 변수(R형)는 수식 계산에 필요한 참고용 변수로서 수식의 제어, 값의 증폭 등에 관여할 수 있는 데이터용 변수를 의미하며, 이들은 사용자가 데이터의 종류를 쉽게 구분하고, 이해할 수 있도록 설계한 것이며, 이러한 독립 변수(X형) 및 참조 변수(R형)는 모든 스테이지 모델에 공통으로 적용된다. 또한 외부 데이터 관리부(212)는 데이터의 등록시 대상 변수들에 대한 유효성을 검증하여 성공여부를 출력한다.
구성함수 관리부(214)는 스테이지 모델의 생물적 현상을 수식으로 나타낸 구성함수의 등록 및 삭제를 관리한다. 여기서, 구성 함수는 메인 함수에 필요한 구성 함수들로서 개별 함수가 각각의 모델이 될 수 있으며, 구성 함수에서 사용하는 독립 변수(X형)는 여러 개로 구성될 수 있으므로, 구성 함수는 기본적으로 다변량에 대한 수식 계산이 가능하도록 구성된다. 또한, 구성 함수는 메인 함수에서 이용하여 스테이지 모델을 구성하는 경우, 각 모델의 원형을 변형시키지 않고 입력이 가능하고, 각 구성 함수를 쉽게 제어할 수 있도록 C형 변수가 정의되어 사용된다. 또한, 구성 함수 중 일부는 현재 계산 위치에서의 값을 사용할 수도 있지만, 일부는 데이터의 특정 위치값을 필요로 할 수 있기 때문에, 시작값, 현재값 및 종료값을 갖는 배열 변수를 사용하며, 이는 모의 과정에서 값을 자동으로 설정한다.
또한, 구성함수 관리부(214)는 입력부(110)를 통하여 사용자에 의해 구성 함수를 설정하여 등록하지만, 사전에 등록된 구성 함수들 중에서 선택하여 등록할 수 있다. 또한 구성함수 관리부(214)는 구성함수의 등록시 수식 검증부(218)를 통하여 함수의 유효성을 검증하여 성공여부를 출력하고, 변수 정보를 갱신한다.
통합계산 관리부(216)는 모의하고자 하는 대상을 나타낸 메인 함수 및 모의를 위한 조건의 등록 및 삭제를 관리하며, 모의 조건은 메인 함수의 계산 종류, 계산 조건, 및 계산 범위를 포함한다. 여기서, 계산 종류는 계산기와 같이 수식에 따라 연산을 수행하는 단순 연산, 데이터의 일정 범위에 대한 계산을 순차적으로 이동하면서 반복 수행하는 고정형 배열 계산, 주어진 데이터 범위 내에서 특정한 계산 조건이 만족하는 경우, 데이터의 일정 범위에 대한 계산을 반복 수행하는 조건형 배열 계산, 및 주어진 데이터의 일정 범위 내에서 특정한 계산 조건이 만족하는 경우에만 현재 위치에서 끝까지 계산한 결과를 누적 합산하여 하나의 결과값으로 제공하는 전이형 계산을 포함할 수 있다. 또한, 계산 조건은 메인 함수를 실행하는 조건 및 이를 위한 배열 변수값의 설정을 포함하고, 계산 범위는 스테이지 모델이 구동되어야 하는 데이터 범위의 설정을 포함한다. 또한, 통합계산 관리부(216)는 수식 검증부(218)를 통하여 메인 함수, 외부 변수, 구성 함수의 유효성을 검증하여 성공여부를 출력한다.
수식 검증부(218)는 메인 함수를 이루는 각 수식의 유효성을 검증한다. 여기서, 메인 함수는 구성함수, 각종 변수 및 데이터를 포함하기 때문에, 결과적으로 수식 검증부(218)는 구성함수 관리부(214), 및 통합계산 관리부(216)로부터 등록된 모든 수식에 대한 유효성을 검증하여 성공 여부를 리턴하고, 각각을 토큰화한다.
도 3을 참조하여 수식 검증부(218)를 더 상세하게 설명한다. 도 3은 도 2의 수식 검증부의 세부 구성을 나타낸 블록도이다.
수식 검증부(218)는 등록된 수식들을 메인 함수(Y형) 또는 서브 함수(F형) 단위로 토큰식으로 토큰화하는 토큰화 모듈(2182), 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 유효성 검증 모듈(2184), 및 유효하지 않은 수식들 변형하는 수식 변형 모듈(2186)을 포함한다. 이러한 수식 검증부(218)는 구성함수 관리부(214), 및 통합계산 관리부(216)에 의한 데이터 및 함수들의 등록시에 각각 수행된다.
토큰화 모듈(2182)은 등록된 구성 함수 및 메인 함수의 각 수식을 토큰식으로 토큰화한다. 이러한 토큰화는 모의시 통합 계산을 빠르게 수행하기 위해 입력된 수식들을 사정 정의된 토큰들로 변환하는 것으로, 토큰화 모듈(2182)은 수식을 구성하는 요소에 따라 문자형, 숫자형, 변수형, 및 함수형으로 각각 변환한다. 또한, 토큰화 모듈(2182)은 변수, 일반 연산자 및 부호 등과 같은 일반 토큰 및, 내부에 사전 정의된 함수들에 대한 함수 토큰을 포함하며, 이들 토큰들은 미리 정해진 메모리 크기, 예를 들면, 1바이트씩 할당된다.
또한, 토큰화 모듈(2182)은 메인 함수의 숫자형을 토큰화하는 경우, 토큰식에서 숫자형의 크기에 해당하는 메모리 크기를 할당할 수 있다. 예를 들면, 숫자형 변환의 경우, 토큰화 과정에서 숫자를 문자 형태로 저장하지 않고, 계산시 수식 토큰을 읽는 시간을 최소화하기 위해, 프로그램에서 읽어들여 바로 계산에 적용할 수 있는 형태로 구성하여 문자 형태로 저장한다. 즉, 사용자가 입력한 숫자들은 토큰화 과정에서 숫자형으로 변환된 후 숫자 토큰 다음에 그 값이 복사되는데, 이때, 정수형의 경우 4바이트, 실수형의 경우 8바이트가 할당된다.
유효성 검증 모듈(2184)은 토큰화 모듈(2182)에서 생성된 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증한다. 또한, 유효성 검증 모듈(2184)은 수식에 사용된 토큰으로부터 일반수식, 배열수식, 다결과 일반수식, 다결과 배열수식 중 하나를 구분하여 스타일로서 저장한다. 이와 같은 스타일에 따라, 후술하는 바와 같은 모의 실행시 반복적으로 수행되는 함수의 경우, 사전의 1회 연산만을 수행하고, 반복 수행시 해당 연산의 결과만을 호출함으로써 전체 계산 횟수를 감소시키고 따라서 통합 계산 전체의 계산 속도를 향상시킬 수 있다.
수식 변형 모듈(2186)은 유효성 검증 모듈(2184)의 유효성 검증에 따라 토큰식을 해당 토큰식의 길이를 포함하도록 후위식으로 변형한다. 또한, 수식 변형 모듈(2186)은 최종적인 토근식을 구성하여 토큰화를 완료한다.
여기서, 스테이지 모델의 메인 함수가 다수의 서브 함수들로 구성되는 경우, 각 서브 함수들을 계산의 기본 단위 수식으로 읽어들이는 시간을 최소화하기 위해, 수식 변형 모듈(2186)은 토큰 수식에 단위 수식의 총 길이 정보를 포함한다. 예를 들면, 메인 함수(Y형), 서브 함수(F형), 내부 정의 함수(SUM 등) 등의 단위 수식을 나타내는 토큰 정보에 해당 수식 전체 길이 정보를 포함함으로써, 향후 모의 과정에서 수식을 읽어들이는 경우, 수식 단위의 위치이동이 가능하여 불필요한 수식 모두를 읽지 않고 다음 수식으로 빠르게 점프할 수 있다.
또한, 스테이지 모델 생성부(210)는 위에서 설명한 바와 같이 스테이지 모델을 생성하며, 이러한 스테이지 모델은 생물적 특성에 부합하는 모델일 수 있고, 예를 들면, 작물, 병, 해충, 및 곤충에 발생 또는 발육을 나타낸 모델일 수 있다.
다시 도 1을 참조하여, 모의 실행부(220)는 스테이지 모델 생성부(210)로부터 등록 및 생성된 메인 함수의 계산 종류, 계산 조건, 및 계산 범위에 따라 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산을 실행한다.
도 4를 참조하여 모의 실행부(220)를 더 상세하게 설명한다. 도 4는 도 1의 모의 실행부의 세부 구성을 나타낸 블록도이다.
모의 실행부(220)는 모의 실행을 위한 계산 범위를 재조정하는 계산 범위 재설정부(222), 반복 계산의 횟수를 최소화하도록 사전 계산을 수행하는 부스터부(224), 및 정의된 계산 종류에 따라 통합 수식 계산을 수행하는 계산 엔진부(226)를 포함한다.
계산 범위 재설정부(222)는 모의 대상인 스테이지 모델의 메인 함수에 대하여 계산 범위가 적정한지를 판단하고, 계산 범위가 모의 대상 스테이지 모델과 관련된 데이터의 범위 이내가 되도록 재설정한다. 즉, 계산 범위 재설정부(222)는 계산의 시작 위치 및 종료 위치의 적절성, 시작 위치 및 종료 위치에 대한 데이터(X형 변수)가 유효 범위인지를 판단하여, 유효 범위가 아닌 경우, 시작 위치 및 종료 위치를 유효 데이터를 기준으로 재설정한다.
부스터부(224)는 계산 종류가 단순 연산인지의 여부를 판단하고, 계산 종류가 단순 연산이 아닌 경우, 즉, 계산 종류가 반복 계산을 포함하는 고정형 배열 계산, 조건형 배열 계산, 및 전이형 계산인 경우, 구성 함수의 변수(C형)에 대한 사전 계산을 실행한다. 이러한 부스터부(224)는 후술하는 계산 엔진부(226)에서 실질적인 모의를 위한 계산시 반복적으로 수행되는 구성 함수의 계산을 최소화하기 위해 사전에 계산을 수행한다. 즉, 구성 함수에 대한 토큰 정보에 포함된 스타일에 따라 구성 함수에 배열 변수 또는 배열 함수가 포함되는지를 판단하여 배열 변수 또는 배열 함수가 포함되지 않는 경우에만 사전 계산을 실행한다. 즉, 부스터부(224)는 메인 함수 계산의 수행 이전에 1반만 계산을 수행하고, 메인 함수의 계산시 해당 구성 함수를 계산하지 않고 결과값만을 호출하여 사용함으로써, 반복적인 구성 함수의 계산 횟수를 감소시키고, 따라서 전체 계산 속도를 향상시킬 수 있다.
계산 엔진부(226)는 계산 범위 재설정부(222)에 의해 재설정된 데이터 범위 및 부스터부(224)에 의해 사전 계산된 구성 함수의 변수를 기초로 메인 함수를 계산한다, 또한, 계산 엔진부(226)는 함수형 변수 중 변수값이 존재하지 않는 경우, 구성 함수의 변수(C형) 및 메인 함수의 서브 함수 변수(F형)에 대한 사전 계산을 실행하며, 구성 함수의 사전 계산된 변수값이 존재하는 경우, 사전 계산된 변수값을 호출한다.
이러한 계산 엔진부(226)는 메인 함수의 주어진 수식에서 순차적으로 토큰을 읽어들이고, 읽어들인 토큰에 맞는 계산을 수행한다. 여기서, 계산 엔진부(226)는 토큰 수식에 포함된 개별 단위 수식에 포함된 토큰 길이를 참조하여 해당 수식 전체를 일일이 검토하지 않고, 계산 단위별로 점프하면서 수식을 읽어들임으로써 계산 속도를 향상시킬 수 있다. 즉, 하나의 수식 안에 여러 개의 수식들이 포함되어 있는 경우, 해당 수식이나 복잡한 내부 정의 함수식에 대하여 별도의 복사 등의 추출과정 없이 주어진 수식에서 계산 단위로 첫 위치로 점핑하면서 수식을 읽을 수 있고, 따라서 계산속도가 향상될 수 있다.
또한, 계산 엔진부(226)는 상술한 바와 같은 단순 계산, 고정형 배열 계산, 조건형 배열 계산 및 전이형 계산 중 어느 하나를 수행한다. 예를 들면, 계산 엔진부(226)는 계산 종류가 고정형 배열 계산인 경우, 데이터의 일정 범위에 대한 계산을 반복 수행하고, 조건형 배열 계산인 경우, 계산 조건이 만족하는 경우, 데이터의 일정 범위에 대한 계산을 반복 수행하며, 전이형 계산인 경우, 데이터의 일정 범위 내에서 계산 조건이 만족하는 경우에만 계산의 결과를 누적 합산한다. 또한, 계산 엔진부(226)는 전이형 계산의 경우, 선택적으로, 메인 함수의 모든 서브세트에 대한 계산을 완료한 후 결과를 누적 합산하거나, 메인 함수의 하나의 서브세트에 대한 계산 후 결과를 합산하고, 다음 서브세트에 대한 계산을 수행할 수 있다.
다시 도 1을 참조하여, 저장부(230)는 스테이지 모델 생성부(210)에 의해 생성된 스테이지 모델 및 모의 실행부(220)의 실행 결과가 저장된다.
도 5를 참조하여 저장부(230)를 더 상세하게 설명한다. 도 5는 도 1의 저장부의 세부 구성을 나타낸 블록도이다.
저장부(230)는 스테이지 모델에 대한 스테이지 모델 정보 주소 구조체(232), 입력 데이터 및 구성함수에 대한 데이터 및 구성함수 정보 주소 구조체(234), 및 실제 데이터가 저장되는 데이터 저장부(236)를 포함한다.
스테이지 모델 정보 주소 구조체(232)는 스테이지 모델 생성부(210)에서 생성된 스테이지 모델에 대한 정보, 예를 들면, 계산 종류, 계산 범위, 계산 조건, 및 메인 함수 수식에 대한 주소 정보를 포함한다.
데이터 및 구성함수 정보 주소 구조체(234)는 입력된 데이터 및 구성 함수의 변수들에 대한 주소를 포함하며, 구체적으로는, 스테이지 모델 생성부(210)에서 생성된 스테이지 모델과 관련된 함수형 데이터 및 구성 함수의 수식의 주소, 예를 들면, 메인 함수에 대한 Y형 데이터, 외부 데이터에 대한 X형 데이터, 참조용 데이터인 R형 데이터, 구성 함수에 대한 C형 데이터, 및 구성 함수의 수식에 대한 주소 정보를 포함한다.
데이터 저장부(236)는 스테이지 모델 정보 주소 구조체(232) 및 데이터 및 구성함수 정보 주소 구조체(234)에 의해 정의되는 각 주소에 대응하여 해당 데이터를 저장한다.
이와 같은 구성에 의해 본 발명은 수식의 토큰화시 기본 단위별 리딩 및 숫자형 변환에 의해 통합 수식의 리딩 시간을 단축할 수 있는 동시에 반복 계산되는 함수형 변수들에 대하여 선별적인 관리를 통하여 계산하고, 따라서 함수형 변수들에 대한 계산 횟수를 최소화하여 최종 계산 속도를 향상시킬 수 있다.
이하, 도 6 내지 도 18을 참조하여 본 발명의 일 실시예에 따른 사용자 정의형 수식 통합 계산의 최적화 방법을 설명한다.
사용자 정의형 수식 통합 계산의 최적화 방법은 사용자 정의에 따라 모의하고자 하는 생물적 현상에 대한 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화하는 스테이지 모델 생성 단계, 및 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 수식 통합 계산에 의해 모의를 실행하는 모의 단계를 포함한다.
먼저, 도 6을 참조하여 스테이지 모델 생성에 대하여 구체적으로 설명한다. 도 6은 본 발명의 일 실시예에 따른 사용자 정의형 수식 통합 계산의 최적화 방법의 스테이지 모델 생성 방법을 나타낸 순서도이다.
스테이지 모델 생성 방법(600)은 모의하고자 하는 현상에 관한 데이터를 등록하는 단계(단계 S601), 현상을 나타내는 구성 함수를 등록하는 단계(단계 S602), 모의를 위한 메인 함수 및 메인 함수의 계산 종류 및 계산 조건을 등록하는 단계(단계 S603), 및 함수 및 데이터에 대한 계산 범위에 대한 유효성을 검증하는 단계(단계 S604)로 구성된다.
보다 상세히 설명하면, 도 6에 도시된 바와 같이, 먼저, 모의하고자 하는 생물적 현상에 관한 데이터를 입력하고, 이를 독립 변수(X형) 및 참조 변수(R형)의 형태에 따라 등록한다(단계 S601). 이러한 독립 변수(X형) 및 참조 변수(R형)는 모든 스테이지 모델에 공통으로 적용된다. 이때, 등록된 데이터 변수들에 대한 유효성을 검증하여 성공여부를 출력할 수 있다.
다음으로, 모의하고자 하는 현상을 나타내는 구성 함수를 등록한다(단계 S602). 여기서, 구성 함수는 메인 함수에서 이용하여 스테이지 모델을 구성하는 경우, 각 모델의 원형을 변형시키지 않고 입력이 가능하고, 각 구성 함수를 쉽게 제어할 수 있도록 C형 변수가 정의되어 사용된다. 또한, 구성 함수 중 일부는 현재 계산 위치에서의 값을 사용할 수도 있지만, 일부는 데이터의 특정 위치값을 필요로 할 수 있기 때문에, 시작값, 현재값 및 종료값을 갖는 배열 변수를 사용하며, 이는 모의 과정에서 값을 자동으로 설정한다.
이때, 등록되는 구성 함수는 사용자에 의해 설정하여 등록될 수 있지만, 사전에 등록된 구성 함수들 중에서 선택하여 등록할 수 있다. 또한, 등록된 구성 함수들에 대한 유효성을 검증하여 성공여부를 출력할 수 있다.
다음으로, 구성 함수의 조합인 메인 함수, 메인 함수의 계산 종류, 계산 조건, 및 데이터에 대한 계산 범위를 등록한다(단계 S603). 여기서, 계산 종류는 계산기와 같이 수식에 따라 연산을 수행하는 단순 연산, 데이터의 일정 범위에 대한 계산을 순차적으로 이동하면서 반복 수행하는 고정형 배열 계산, 주어진 데이터 범위 내에서 특정한 계산 조건이 만족하는 경우, 데이터의 일정 범위에 대한 계산을 반복 수행하는 조건형 배열 계산, 및 주어진 데이터의 일정 범위 내에서 특정한 계산 조건이 만족하는 경우에만 현재 위치에서 끝까지 계산한 결과를 누적 합산하여 하나의 결과값으로 제공하는 전이형 계산을 포함할 수 있다. 또한, 계산 조건은 메인 함수를 실행하는 조건 및 이를 위한 배열 변수값의 설정을 포함하고, 계산 범위는 스테이지 모델이 구동되어야 하는 데이터 범위의 설정을 포함한다.
다음으로, 메인 함수를 이루는 각 수식의 유효성을 검증한다(단계 S604). 즉, 상기와 같이 등록된 메인 함수, 메인 함수에 포함된 외부 변수, 및 구성 함수의 유효성을 검증함으로써 사용자 정의형 스테이지 모델을 생성한다.
도 7을 참조하여 계산 정보 유효성 검증 방법에 대하여 더 구체적으로 설명한다. 도 7은 도 6의 계산 정보 유효성 검증의 세부 절차를 나타낸 순서도이다.
계산 정보 유효성 검증 방법(700)은 스테이션 모델에 대한 함수를 포함하는 수식을 토큰식으로 토큰화하는 단계(단계 S701), 토큰식에 대한 유효성을 검증하는 단계(단계 S702), 및 유효성 검증 결과를 기초로 토큰식을 변형하는 단계(단계 S703)로 구성된다.
보다 상세히 설명하면, 도 7에 도시된 바와 같이, 먼저, 스테이션 모델에 대한 함수를 포함하는 수식을 메인 함수(Y형) 또는 서브 함수(F형) 단위로 토큰식을 구성하여 토큰화한다(단계 S701).
도 8을 참조하여 수식의 토큰화 방법에 대하여 더 구체적으로 설명한다. 도 8은 도 6의 수식 토큰화의 세부 절차를 나타낸 순서도이다.
수식 토큰화 방법(800)은 수식에 포함된 문자열의 종류를 판단하는 단계(단계 S801), 문자열의 종류에 따라 토큰식으로 변환하는 단계(단계 S802), 변환된 토큰식이 유효한지를 판단하는 단계(단계 S803), 변환이 유효하지 않은 경우 에러를 표시하는 단계(단계 S804), 및 토큰화 대상 수식이 끝인지를 판단하는 단계(단계 S805)로 구성된다.
보다 상세히 설명하면, 도 8에 도시된 바와 같이, 먼저, 각 수식을 구성하는 요소들, 즉 문자열들의 종류를 판단한다(단계 S801). 수식에 포함되는 문자열은 숫자형, 변수형, 함수형, 및 내부적으로 정의된 기타형을 포함한다.
다음으로, 각 문자열을 판단된 종류에 따라 토큰으로 각각 변환한다(단계 S802). 예를 들면, 변수, 일반 연산자 및 부호 등과 같은 일반 토큰 및, 내부에 사전 정의된 함수들에 대한 함수 토큰으로 변환되며, 이때, 각 토큰은 미리 정해진 메모리 크기, 예를 들면, 1바이트씩 할당된다.
이때, 메인 함수의 숫자형을 토큰화하는 경우, 토큰식에서 숫자형의 크기에 해당하는 메모리 크기를 할당한다. 즉, 숫자형 변환의 경우, 숫자를 문자 형태로 저장하지 않고, 계산시 수식 토큰을 읽는 시간을 최소화하기 위해, 프로그램에서 읽어들여 바로 계산에 적용할 수 있는 형태로 구성하여 문자 형태로 저장한다. 즉, 사용자가 입력한 숫자들은 토큰화 과정에서 숫자형으로 변환된 후 숫자 토큰 다음에 그 값이 복사되는데, 이때, 정수형의 경우 4바이트, 실수형의 경우 8바이트가 할당된다.
다음으로, 변환된 토큰식이 유효한지를 판단하여(단계 S803), 유효하지 않은 경우, 사용자에게 고지하기 위해 에러를 표시하고(단계 S804), 사용자가 수식을 수정할 수 있도록 토큰화 과정을 중지한다.
단계 S803의 판단 결과, 변환된 토큰식이 유효하다고 판단한 경우에는 토큰화 대상 수식의 끝인지를 판단하여(단계 S805), 수식이 끝이 아닌 경우에는 단계 S801로 복귀하여 다음 수식에 대한 토큰화를 진행한다. 즉, 이러한 토큰화는 단위 수식별로 진행하기 때문에, 모든 수식의 토큰화가 완료될 때까지 단계 S801 내지 단계 S805의 단계를 반복적으로 수행한다.
단계 S805의 판단 결과, 토큰화 대상 수식이 끝이라고 판단한 경우, 즉, 모든 수식에 대한 토큰화가 완료된 경우에는 수식의 토큰화를 종료한다.
다시 도 7을 참조하여, 생성된 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증한다(단계 S702). 이때, 수식에 사용된 토큰에 대하여 일반수식, 배열수식, 다결과 일반수식, 다결과 배열수식 중 하나를 구분하여 스타일로서 저장한다. 이와 같은 스타일에 따라, 후술하는 바와 같은 모의 실행시 반복적으로 수행되는 함수의 경우, 사전의 1회 연산만을 수행하고, 반복 수행시 해당 연산의 결과만을 호출함으로써 전체 계산 횟수를 감소시키고 따라서 통합 계산 전체의 계산 속도를 향상시킬 수 있다.
다음으로, 유효성 검증된 토큰식을 토큰식이 해당 토큰식의 총 길이를 포함하도록 후위식으로 변형한다(단계 S703). 즉, 스테이지 모델의 메인 함수가 다수의 서브 함수들로 구성되는 경우, 각 서브 함수들을 계산의 기본 단위 수식으로 읽어들이는 시간을 최소화하기 위해, 토큰 수식에 단위 수식의 총 길이 정보를 포함한다. 예를 들면, 메인 함수(Y형), 서브 함수(F형), 내부 정의 함수(SUM 등) 등의 단위 수식을 나타내는 토큰 정보에 해당 수식 전체 길이 정보를 포함함으로써, 향후 모의 과정에서 수식을 읽어들이는 경우, 수식 단위의 위치이동이 가능하여 불필요한 수식 모두를 읽지 않고 다음 수식으로 빠르게 점프할 수 있다. 이와 같이 최종적인 토근식을 구성하여 토큰화를 완료함으로써, 계산 정보 유효성 검증을 종료한다. 이와 같은 방법으로 모의하고자 하는 현상에 대한 스테이지 모델을 생성한다.
도 9는 본 발명의 일 실시예에 따른 스테이지 모델 생성의 예시적인 화면을 나타내는 도면이다. 도 9에 도시된 바와 같이, 본 발명의 스테이지 생성 모델을 생성하기 위한 프로그램의 화면은 외부 데이터, 계산 종류, 계산 조건, 계산 범위, 메인 함수 및 구성 함수로 구성되고, 각 윈도우를 통하여 사용자 정의형 스테이지 모델을 형성할 수 있다.
본 발명의 방법에 따라 생성되는 스테이지 모델은 생물적 특성에 부합하는 모델일 수 있다. 예를 들면, 본 발명에 따른 스테이지 모델은 작물, 병, 해충, 및 곤충에 발생 또는 발육을 나타낸 모델일 수 있다.
이상과 같이 생성된 스테이지 모델에 대한 모의 실행 방법을 설명하면, 본 발명에 따른 모의 실행 방법은 메인 함수의 계산 종류, 계산 조건, 및 계산 범위에 따라 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산을 실행한다.
이하, 도 10을 참조하여 모의 실행 방법에 대하여 더 상세하게 설명한다. 도 10은 본 발명의 일 실시예에 따른 스테이지 모델 생성을 이용한 사용자 정의형 수식 통합 계산 방법의 모의 실행 방법을 나타낸 순서도이다.
모의 실행 방법(1000)은 스테이지 모델에 대한 계산 범위를 유효한 범위로 재설정하는 단계(단계 S1001), 계산 종류에 따라 부스터 실행여부를 판단하는 단계(단계 S1002), 판단 결과에 따라 부스터를 실행하는 단계(단계 S1003), 및 모의를 위한 통합수식을 계산하는 단계(단계 S1004)로 구성된다.
보다 상세히 설명하면, 도 9에 도시된 바와 같이, 먼저, 메인 함수에 대하여 계산 범위가 적정한지를 판단하여 계산 범위가 데이터의 범위 이내가 되도록 재설정한다(단계 S1001). 즉, 메인 함수 또는 구성 함수에 대한 계산 범위가 데이터의 범위 이내인지를 검증하고, 예를 들면, 계산의 시작 위치 및 종료 위치의 적절성, 시작 위치 및 종료 위치에 대한 데이터(X형 변수)가 유효 범위인지를 검증한다. 이때, 메인 함수 또는 구성 함수에 대한 계산 범위가 데이터의 범위 이내가 아닌 경우에, 계산에 대한 시작 위치 및 종료 위치를 유효 데이터를 기준으로 재설정한다.
다음으로, 메인 함수의 계산 종류, 즉, 단순 연산인지의 여부를 판단한다(단계 S1002). 이런 과정은 실질적인 모의를 위한 계산시 반복적으로 수행되는 구성 함수의 계산을 최소화하기 위해 사전 계산을 수행함으로써 반복적인 구성 함수의 계산 횟수를 감소시키기 위한 것이다.
단계 S1002의 판단 결과, 계산 종류가 단순 연산이 아니라고 판단한 경우, 즉, 구성 함수의 변수(C형)에 대한 사전 계산(부스터)을 실행한다(단계 S903). 이러한 부스터 실행은 계산 종류가 고정형 배열 계산, 조건형 배열 계산, 및 전이형 계산인 경우에 대하여 실행한다.
도 11을 참조하여 부스터 실행 방법에 대하여 더 상세하게 설명한다. 도 11은 도 10의 부스터 실행의 세부 절차를 나타낸 순서도이다.
부스터 실행 방법(1100)은 모의하고자 하는 메인 함수를 호출하는 단계(단계 S1101), 메인 함수 내에 C형 변수의 존재 여부를 판단하는 단계(단계 S1102), 수식 내에 배열 함수 또는 배열 변수가 없는지의 여부를 판단하는 단계(단계 S1103), 사전 계산할 구성 함수를 계산하는 단계(단계 S1104)를 포함한다.
보다 상세히 설명하면, 도 11에 도시된 바와 같이, 모의하고자 하는 메인 함수를 호출한다(단계 S1101). 여기서, 메인 함수의 주어진 수식 전체를 읽어들인다.
다음으로, 메인 함수 내에 구성 함수가 존재하는지의 여부, 즉, C형 변수가 존재하는지의 여부를 판단하여(단계 S1102), 구성 함수가 존재하지 않는다고 판단한 경우에는, 부스터 실행을 종료한다.
단계 S1102의 판단 결과, 구성 함수가 존재한다고 판단한 경우에는, 구성 함수에 대한 토큰 정보에 포함된 스타일에 따라 구성 함수 내에 배열 변수 또는 배열 함수가 존재하는지를 판단한다(단계 S1103).
단계 S1103의 판단 결과, 구성 함수 내에 배열 변수 또는 배열 함수가 존재하지 않으면, 해당 구성 함수를 실행하고(단계 S1104), 단계 S1102로 복귀하여 다음 수식에 대한 C형 변수의 존재 여부를 확인한다. 이와 같이, 단계 S1102 내지 단계 S1104는 메인 함수 내의 모든 C형 변수, 즉, 구성 함수에 대한 사전 계산이 완료될 때까지 반복 수행된다.
이와 같은 부스터 실행에 의해, 메인 함수 계산의 수행 이전에 1번만 해당 구성 함수를 계산함으로써, 실제 모의중 메인 함수 계산시에는 해당 구성 함수를 계산하지 않고, 결과값만을 호출하여 사용할 수 있고, 따라서, 전체 계산 속도를 향상시킬 수 있다.
다시 도 10을 참조하여, 실질적인 모의 실행으로서, 재설정된 데이터 범위에 및 사전 계산된 구성 함수의 변수를 기초로 계산 종류에 따라 메인 함수를 계산한다(단계 S1004). 이와 같은 절차에 의해 모의 실행 방법을 종료한다.
도 12를 참조하여 통합수식 계산을 더 상세하게 설명한다. 도 12는 도 10의 통합수식 계산의 세부 절차를 나타낸 순서도이다.
통합수식 계산 방법(1200)은 메인 함수의 수식에 대한 토큰 및 변수형을 분석하는 단계(단계 S1201 및 S1202), 변수값이 존재하는지의 여부를 판단하는 단계(단계 S1203), 변수값 및 기타값을 호출하는 단계(단계 S1204 및 S1205), 내부 정의 수식을 계산하는 단계(단계 S1206), C형,F형의 변수값을 연산하는 단계(단계 S1207 내지 S1209), 메인 함수의 수식을 계산하는 단계(단계 S1210), 및 수식이 끝인지의 여부를 판단하는 단계(S1211)로 구성된다.
보다 상세하게 설명하면, 도 12에 도시된 바와 같이, 메인 함수의 주어진 수식에서 순차적으로 토큰을 분석한다. 즉, 메인 함수를 계산하기 위하여 토큰을 수식 단위로 읽어들인다.
다음으로, 토큰식에 포함된 변수형, 예를 들면, 메인 함수에 대한 Y형, 서브 함수에 대한 F형, 독립 변수에 대한 X형, 참조 변수에 대한 R형, 구성 함수에 대한 C형, 매개 변수에 대한 P형 변수를 종류에 따라 각각 분석한다(단계 S1202).
다음으로, 함수형 변수에 대하여 변수값이 존재하는지를 판단하여(단계 S1203), 변수값이 존재하는 경우, 즉, 구성 함수 또는 서브 함수의 사전 계산된 변수값이 존재하는 경우, 사전 계산된 변수값을 호출한다(단계 S1204).
다음으로, 토큰식에서 숫자, 상수, 배열 변수, 수학함수 및 연산자들에 대한기타 값을 호출하고(단계 S1205), 부분 계산값이 필요한 내부정의 수식에 대한 계산을 수행한다(단계 S1206).
단계 S1203의 판단 결과, 함수형 변수중 중에서 변수값이 존재하지 않는 경우, 해당 함수형 변수가 C형 또는 F형인지를 판단한다(단계 S1207). 해당 함수형 변수가 C형 또는 F형인 경우에는 해당 함수, 즉, 구동 함수(C형) 또는 서브 함수(F형)를 연산한다(단계 S1208). 이와 같이 구성 함수의 변수(C형) 및 메인 함수의 서브 함수 변수(F형)에 대한 사전 계산을 실행한다.
단계 S1207의 판단 결과, C형 또는 F형의 함수형 변수가 존재하지 않는다고 판단한 경우에는 사용자에게 고지하기 위해 에러를 표시하고(단계 S1209), 사용자가 수식을 수정할 수 있도록 통합수식 계산을 중지한다.
단계 S1206의 내부정의 수식 계산 및 단계 S1208의 함수형 변수에 대한 계산 이후에, 수식 계산을 수행한다(단계 S1210). 수식 계산은 도 13 내지 도 18을 참조하여 뒤에서 더 상세하게 설명한다.
다음으로, 계산 대상의 수식의 끝인지를 판단하고(단계 S1211), 다음 수식을 계산하기 위해 단계 S1201로 복귀한다. 이때, 토큰식에 포함된 개별 단위 수식에 포함된 토큰 길이를 참조하여 해당 수식 전체를 일일이 검토하지 않고, 계산 단위별로 점프하면서 수식을 읽어들임으로써 계산 속도를 향상시킬 수 있다. 즉, 하나의 수식 안에 여러 개의 수식들이 포함되어 있는 경우, 해당 수식이나 복잡한 내부 정의 함수식에 대하여 별도의 복사 등의 추출 과정 없이 주어진 수식에서 계산 단위로 첫 위치로 점핑하면서 수식을 읽을 수 있고, 따라서 계산 속도가 향상될 수 있다. 이와 같이, 단계 S1201 내지 단계 S1211은 모든 수식에 계산이 종료될 때까지 수식 단위로 반복하여 수행된다.
단계 S1211의 판단 결과, 계산 대상의 수식의 끝이라고 판단한 경우에는, 즉, 모든 수식에 대한 계산이 완료된 경우에는 통합수식 계산을 종료한다.
이하, 단계 S1210에서 수행되는 수식 계산에 대하여, 계산 종류에 따라, 즉, 단순 연산, 고정형 배열 계산, 조건형 배열 계산, 및 전이형 계산에 대하여 더 상세하게 설명한다.
먼저, 단순 연산은 계산기와 같이 수식에 따라 연산되는 단순 연산의 형태로서, 실질적으로 통합 수식의 모의시에 적합하지 않고, 특별한 기능을 포함하지 않으므로 그 구체적인 설명은 생략한다.
다음으로, 고정형 배열 계산은 데이터의 일정 범위에 대한 계산을 순차적으로 이동하면서 반복 수행하는 계산 방식으로서, 도 13에 더 상세하게 도시된다. 도 13은 도 12의 수식 계산 중 고정형 배열 계산 방법의 세부 절차를 나타낸 순서도이다.
고정형 배열 계산 방법(1300)은 배열 변수값을 설정하는 단계(단계 S1301), 메인 함수를 계산하는 단계(단계 S1302), 반복 계산이 완료되었는지를 판단하는 단계(단계 S1303)로 구성된다.
보다 상세히 설명하면, 도 13에 도시된 바와 같이, 먼저, 메인 함수의 계산을 위한 데이터의 초기 위치를 지정하기 위해 배열 변수값을 설정한다(단계 S1301). 이러한 배열 변수값 설정은 스테이지 모델의 생성시 설정된 계산 범위와 계산 범위 재설정 과정을 통하여 자동으로 유효 데이터의 초기 위치로 설정된다.
다음으로, 모의하고자 하는 메인 함수를 계산 한다(단계 S1302). 이때, 메인 함수 내에 포함된 구성 함수(C형) 또는 서브 함수(F형)는 그 수식 안에 배열 변수 또는 함수를 포함하지 않는 경우 사전에 계산된 값이 호출되고, 그렇지 않으면, 해당 함수의 계산 순서에서 계산이 수행된다.
다음으로, 배열 변수가 종료값에 도달했는지를 판단하여(단계 S1303), 종료값에 도달하지 않은 경우, 즉, 모든 배열 변수에 대한 메인 함수의 계산이 종료되지 않은 경우, 다시 말해, 모든 유효 데이터에 대한 메인 함수의 계산이 종료되지 않은 경우에는, 단계 S1302로 복귀하여 메인 함수의 계산을 수행한다. 이와 같이, 단계 S1302 및 단계 S1303은 모든 배열 변수에 대하여, 즉, 모든 유효 데이터에 대하여 메인 함수의 계산이 종료될 때까지 반복 수행된다.
단계 S1303의 판단 결과, 배열 변수가 종료값에 도달했다고 판단한 경우, 즉, 모든 배열 변수에 대한 메인 함수의 계산이 종료되었다고 판단한 경우, 반복 실행이 완료되어 고정형 배열 계산을 종료한다.
이와 같은 고정형 배열 계산에 대한 예시적인 화면이 도 14에 도시된다. 도 14는 도 13에 따른 고정형 배열 계산의 예시적인 결과 화면을 나타낸 도면이다.
도 14에 도시된 바와 같이, 고정형 배열 계산의 경우, 메인 함수(Y0)는 시작값인 82번째부터 계산이 수행되어 이후 반복적으로 데이터를 누적 연산하고 있음을 나타낸다.
다음으로, 조건형 배열 계산은 계산 조건이 만족하는 경우, 데이터의 일정 범위에 대한 계산을 반복 수행하는 계산 방식으로서, 도 15에 더 상세하게 도시된다. 도 15는 도 12의 수식 계산 중 조건형 배열 계산 방법의 세부 절차를 나타낸 순서도이다.
조건형 배열 계산 방법(1500)은 조건 함수에 대한 배열 변수값을 설정하는 단계(단계 S1501), 설정된 변수값에 따라 조건 함수를 계산하는 단계(단계 S1502), 조건의 만족 여부를 판단하는 단계(단계 S1503), 조건이 만족되는 경우 메인 함수에 대한 배열 변수값을 설정하는 단계(단계 S1504), 메인 함수를 계산하는 단계(단계 S1505), 및 메인 함수에 대한 반복 계산이 완료되었는지를 판단하는 단계(단계 S1506)로 구성된다.
보다 상세히 설명하면, 도 15에 도시된 바와 같이, 먼저, 조건 함수의 배열에 대한 변수값을 설정한다(단계 S1501). 즉, 조건 함수의 계산을 위한 데이터의 초기 위치를 지정하여 배열 변수값을 설정하는데, 이러한 설정은 스테이지 모델의 생성시 설정된 계산 범위와 계산 범위 재설정 과정을 통하여 자동으로 유효 데이터의 초기 위치로 설정된다.
다음으로, 조건을 만족하는 경우를 찾기 위해 조건 함수를 계산한다(단계 S1502). 이때, 조건 함수 내에 포함된 구성 함수(C형) 또는 서브 함수(F형)는 그 수식 안에 배열 변수 또는 함수를 포함하지 않는 경우 사전에 계산된 값이 호출되고, 그렇지 않으면, 해당 함수의 계산 순서에서 계산이 수행된다.
다음으로, 조건 함수의 계산 결과가 조건을 만족하는지의 여부를 판단하여(단계 S1503), 조건을 만족하지 않는 경우에는 단계 S1502로 복귀하여 다음 계산 위치(즉, 다음 변수 또는 다음 대상 데이터)에 대하여 조건 함수를 계산한다. 이와 같은 단계 S1502 및 단계 S1503은 조건 함수가 조건을 만족할 때까지 반복 수행된다.
단계 S1503의 판단 결과, 조건 함수가 조건을 만족한다고 판단한 경우에는 메인 함수에 대한 배열 변수값을 설정한다(단계 S1504). 즉, 메인 함수의 계산의 시작 위치가 조건 함수의 조건을 만족하는 위치로 되도록 배열 변수값을 설정한다.
다음으로, 조건을 만족하는 모의하고자 하는 메인 함수를 계산한다(단계 S1505). 이때, 메인 함수 내에 포함된 구성 함수(C형) 또는 서브 함수(F형)는 그 수식 안에 배열 변수 또는 함수를 포함하지 않는 경우 사전에 계산된 값이 호출되고, 그렇지 않으면, 해당 함수의 계산 순서에서 계산이 수행된다.
다음으로, 메인 함수에 대한 배열 변수가 종료값에 도달했는지를 판단하여(단계 S1506), 종료값에 도달하지 않은 경우, 즉, 모든 배열 변수에 대한 메인 함수의 계산이 종료되지 않은 경우, 다시 말해, 모든 유효 데이터에 대한 메인 함수의 계산이 종료되지 않은 경우에는, 단계 S1505로 복귀하여 메인 함수의 계산을 수행한다. 이와 같이, 단계 S1505 및 단계 S1506은 모든 배열 변수에 대하여, 즉, 모든 유효 데이터에 대하여 메인 함수의 계산이 종료될 때까지 반복 수행된다.
단계 S1506의 판단 결과, 배열 변수가 종료값에 도달했다고 판단한 경우, 즉, 모든 배열 변수에 대한 메인 함수의 계산이 종료되었다고 판단한 경우, 반복 실행이 완료되어 조건형 배열 계산을 종료한다.
이와 같은 조건형 배열 계산에 대한 예시적인 화면이 도 16에 도시된다. 도 16은 도 15에 따른 조건형 배열 계산의 예시적인 결과 화면을 나타낸 도면이다.
도 16에 도시된 바와 같이, 조건형 배열 계산의 경우, 모의는 조건식의 시작값인 82번째부터 계산이 시작되지만, 85번째까지는 조건이 만족하지 않으므로 메인 함수의 실질적인 계산이 이루어지지 않고, 조건이 참이 되는 85번째부터 메인 함수의 실질적인 계산이 이루어지며, 이후 반복적으로 데이터를 누적 연산하고 있음을 나타낸다.
다음으로, 전이형 계산은 데이터의 일정 범위 내에서 계산 조건이 만족하는 경우에만 계산의 결과를 누적 합산하는 계산 방식으로서, 도 17에 더 상세하게 도시된다. 도 17은 도 10의 수식 계산 중 전이형 계산 방법의 세부 절차를 나타낸 순서도이다.
전이형 계산 방법(1700)은 조건 함수에 대한 배열 변수값을 설정하는 단계(단계 S1701), 설정된 변수값에 따라 조건 함수를 계산하는 단계(단계 S1702), 조건의 만족 여부를 판단하는 단계(단계 S1703), 조건이 만족한 경우 메인 함수의 서브세트를 계산하는 단계(단계 S1704), 메인 함수의 서브세트에 대한 반복 계산이 완료되었는지를 판단하는 단계(단계 S1705), 및 메인 함수의 서브세트의 결과들을 누적 합산하는 단계(단계 S1706)로 구성된다.
보다 상세히 설명하면, 도 17에 도시된 바와 같이, 먼저, 조건 함수의 배열에 대한 변수값을 설정한다(단계 S1701). 즉, 조건 함수의 계산을 위한 데이터의 초기 위치를 지정하여 배열 변수값을 설정하는데, 이러한 설정은 스테이지 모델의 생성시 설정된 계산 범위와 도 9와 같은 계산 범위 재설정 과정을 통하여 자동으로 유효 데이터의 초기 위치로 설정된다.
다음으로, 조건을 만족하는 경우를 찾기 위해 조건 함수를 계산한다(단계 S1702). 이때, 조건 함수 내에 포함된 구성 함수(C형) 또는 서브 함수(F형)는 그 수식 안에 배열 변수 또는 함수를 포함하지 않는 경우 사전에 계산된 값이 호출되고, 그렇지 않으면, 해당 함수의 계산 순서에서 계산이 수행된다.
다음으로, 조건 함수의 계산 결과가 조건을 만족하는지의 여부를 판단하여(단계 S1703), 조건을 만족하는 경우에는, 메인 함수에 대한 배열 변수값을 설정한다(단계 S1704). 즉, 메인 함수의 계산 시작의 위치가 조건 함수의 조건을 만족하는 위치가 되도록 메인 함수의 배열 변수값을 재설정한다.
다음으로, 메인 함수를 서브세트로서 계산한다(단계 S1705). 이때, 메인 함수 내에 포함된 구성 함수(C형) 또는 서브 함수(F형)는 그 수식 안에 배열 변수 또는 함수를 포함하지 않는 경우 사전에 계산된 값이 호출되고, 그렇지 않으면, 해당 함수의 계산 순서에서 계산이 수행된다.
단계 S1703의 판단 결과, 조건을 만족하지 않은 경우, 또는 단계 S1705의 메인 함수의 서브세트의 계산이 수행된 후, 배열 변수가 종료값에 도달했는지를 판단하여(단계 S1706), 종료값에 도달하지 않은 경우, 즉, 모든 배열 변수에 대한 메인 함수의 계산이 종료되지 않은 경우, 다시 말해, 모든 유효 데이터에 대한 메인 함수의 계산이 종료되지 않은 경우에는, 단계 S1702로 복귀하여 다음 변수 또는 데이터에 대하여 조건 함수를 계산한다.
이와 같은 단계 S1702 내지 단계 S1706은 모든 배열 변수에 대하여, 즉, 모든 유효 데이터에 대하여 메인 함수의 모든 서브세트에 대한 계산이 종료될 때까지 반복 수행된다. 이러한 과정을 통하여, 모든 데이터에 대하여 단계 S1702의 조건이 만족하는 경우에만 메인 함수를 서브세트로서 계산한다.
전이형 계산은 이와 같이 조건을 만족하는 경우 계산된 메인 함수의 서브세트의 계산 결과를 최종적으로 누적 합산하는 것이다. 따라서, 단계 S1706의 판단 결과, 배열 변수가 종료값에 도달했다고 판단한 경우, 즉, 모든 배열 변수에 대한 메인 함수의 모든 서브세트의 계산이 종료되었다고 판단한 경우, 메인 함수의 모든 서브세트의 결과를 누적 합산하고(단계 S1707), 전이형 계산을 종료한다.
위에서 설명한 바와 같이, 메인 함수의 모든 서브세트에 대한 계산을 완료한 후 최종적으로 계산 결과를 누적하는 것으로 설명하였지만, 도 17에 도시된 바와 같이, 메인 함수의 각 서브세트에 대한 계산이 완료된 후 결과 누적을 실행 후 다음 서브세트에 대한 계산이 수행될 수 있다.
즉, 단계 S1705에서 메인 함수의 하나의 서브세트에 대한 계산이 완료된 후, 현재 계산된 메인 함수의 서브세트를 이전에 계산된 메임 함수의 서브세트와 합산하여 결과를 누적한 다음, 단계 S1706의 모든 배열 변수에 대한 계산이 완료되었는지를 판단할 수 있다. 따라서, 모든 서브세트에 대한 계산이 완료될 때까지 서브세트 계산 및 합산을 반복 수행할 수 있다. 이에 의해 메인 함수의 서브세트의 결과를 저장하기 위한 메모리를 최소화할 수 있다.
이와 같은 고정형 배열 계산에 대한 예시적인 화면이 도 18에 도시된다. 도 18은 도 17에 따른 전이형 계산의 예시적인 결과 화면을 나타낸 도면이다.
도 18에 도시된 바와 같이, 전이형 계산의 경우, 모의는 조건식의 시작값인 82번째부터 계산이 시작되지만, 조건이 만족하지 않는 경우, 메인 함수의 계산이 이루어지지 않고, 조건이 참이 되는 85, 92, 및 99번째에서 메인 함수의 실질적인 계산이 이루어지는데, 이는 메인 함수의 서브세트이다. 이어서, 메인 함수의 서브세트로서 각각 계산된 값들은 동일 위치의 결과값이 합산되어 메인 함수의 최종 결과를 산출한다. 예를 들면, 85번째부터 94번째까지의 제 1 서브 함수의 결과값은 111.4536이고, 92번째부터 94번째까지 계산된 제 2 서브 함수의 값(92번째부터 94번째까지의 데이터의 합)은 32.6165가 되므로, 최종적인 메인 함수는 이 두 값을 합산한 144.0701이 산출됨을 나타낸다.
이와 같은 방법에 의해, 본 발명은 수식의 토큰화시 기본 단위별 리딩 및 숫자형 변환에 의해 통합 수식의 리딩 시간을 단축할 수 있는 동시에 반복 계산되는 함수형 변수들에 대하여 선별적인 관리를 통하여 계산하고, 따라서 함수형 변수들에 대한 계산 횟수를 최소화하여 최종 계산 속도를 향상시킬 수 있다.
상기에서는 본 발명의 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 본 발명의 기술 사상 범위 내에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 첨부된 특허 청구 범위에 속하는 것은 당연하다.
10 : 사용자 정의형 수식 통합 계산의 최적화 시스템
110 : 입력부 120 : 출력부
200 : 통합 계산부 210 : 스테이지 모델 생성부
212 : 외부 데이터 관리부 214 : 구성함수 관리부
216 : 통합계산 관리부 218 : 수식 검증부
2182 : 토큰화 모듈 2184 : 유효성 검증 모듈
2186 : 수식 변형 모듈 220 : 모의 실행부
222 : 계산 범위 재설정부 224 : 부스터부
226 : 계산 엔진부 230 : 저장부
232 : 스테이지 모델 정보 주소 구조체
234 : 데이터 및 구성함수 정보 주소 구조체
236 : 데이터 저장부

Claims (20)

  1. 모의하고자 하는 현상에 관하여 입력된 데이터, 상기 현상을 나타내는 구성 함수 및 이의 조합인 메인 함수, 상기 메인 함수의 계산 종류 및 계산 조건, 상기 데이터에 대한 계산 범위가 입력되고, 이를 기초로 사용자 정의형 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화하되, 상기 토큰화된 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 스테이지 모델 생성부;
    상기 메인 함수의 상기 계산 종류, 상기 계산 조건, 및 상기 계산 범위에 따라 상기 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산이 실행되되, 상기 메인 함수에 대하여 상기 계산 범위가 적정한지를 판단하여 상기 계산 범위가 상기 데이터의 범위 이내가 되도록 재설정하는 모의 실행부; 및
    상기 생성된 스테이지 모델 및 상기 실행 결과가 저장되는 저장부를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  2. 제 1 항에 있어서,
    상기 스테이지 모델 생성부는,
    상기 메인 함수(Y형) 또는 서브 함수(F형) 단위로 토큰식을 구성하는 토큰화 모듈;
    상기 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 유효성 검증 모듈; 및
    상기 유효성 검증에 따라 상기 토큰식이 해당 토큰식의 총 길이를 포함하도록 상기 토큰의 수식을 후위식으로 변형하는 수식 변형 모듈을 포함하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  3. 제 2 항에 있어서,
    상기 토큰화 모듈은 상기 메인 함수의 숫자형을 토큰화하는 경우, 상기 토큰식에서 상기 숫자형의 크기에 해당하는 메모리 크기를 할당하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  4. 제 1 항에 있어서,
    상기 모의 실행부는,
    상기 메인 함수에 대하여 상기 계산 범위가 적정한지를 판단하여 상기 계산 범위가 상기 데이터의 범위 이내가 되도록 재설정하는 계산 범위 재설정부;
    상기 계산 종류가 단순 연산(calculator)인지의 여부를 판단하고, 단순 연산이 아닌 경우, 상기 구성 함수의 변수(C형)에 대한 사전 계산을 실행하는 부스터부; 및
    상기 재설정된 범위 및 상기 사전 계산된 구성 함수의 변수를 기초로 상기 메인 함수를 계산하되, 함수형 변수 중 변수값이 존재하지 않는 경우, 상기 구성 함수의 변수(C형) 및 상기 메인 함수의 서브 함수 변수(F형)에 대한 사전 계산을 실행하며, 상기 구성 함수의 사전 계산된 변수값이 존재하는 경우, 사전 계산된 변수값을 호출하는 계산 엔진부를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  5. 제 4 항에 있어서,
    상기 부스터부는 상기 구성 함수에 배열 함수 또는 배열 변수가 포함되는지를 판단하여 포함되지 않는 경우에만 상기 사전 계산을 실행하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  6. 제 4 항에 있어서,
    상기 계산 엔진부는,
    상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 고정형 배열 계산;
    상기 계산 조건이 만족하는 경우, 상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 조건형 배열 계산; 및
    상기 데이터의 일정 범위 내에서 상기 계산 조건이 만족하는 경우에만 계산의 결과를 누적 합산하는 전이형(transition) 계산 중 어느 하나를 수행하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  7. 제 6 항에 있어서,
    상기 계산 엔진부는 상기 전이형 계산의 경우, 상기 메인 함수의 모든 서브세트에 대한 계산 후 결과를 합산하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  8. 제 6 항에 있어서,
    상기 계산 엔진부는 상기 전이형 계산의 경우, 상기 메인 함수의 하나의 서브세트에 대한 계산 후 결과를 합산하고, 다음 서브세트에 대한 계산을 수행하는, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  9. 제 1 항에 있어서,
    상기 스테이지 모델은 생물적 특성에 부합하는 모델인, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  10. 제 9 항에 있어서,
    상기 스테이지 모델은 작물, 병, 해충, 및 곤충에 발생 또는 발육을 나타낸 모델인, 사용자 정의형 수식 통합 계산의 최적화 시스템.
  11. 사용자 정의형 수식 통합 계산의 최적화 시스템의 최적화 방법에 있어서,
    모의하고자 하는 현상에 관하여 입력된 데이터, 상기 현상을 나타내는 구성 함수 및 이의 조합인 메인 함수, 상기 메인 함수의 계산 종류 및 계산 조건, 상기 데이터에 대한 계산 범위를 등록하고, 이를 기초로 사용자 정의형 스테이지 모델을 생성하여 수식 단위로 읽기 가능하도록 토큰화하되, 상기 토큰화된 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 스테이지 모델 생성 단계; 및
    상기 메인 함수의 상기 계산 종류, 상기 계산 조건, 및 상기 계산 범위에 따라 상기 생성된 스테이지 모델에 대하여 반복 계산의 횟수를 최소화하도록 통합 계산을 실행하되, 상기 메인 함수에 대하여 상기 계산 범위가 적정한지를 판단하여 상기 계산 범위가 상기 데이터의 범위 이내가 되도록 재설정하는 모의 실행 단계를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  12. 제 11 항에 있어서,
    상기 스테이지 모델 생성 단계는,
    상기 메인 함수(Y형) 또는 서브 함수(F형) 단위로 토큰식을 구성하는 수식 토큰화 단계;
    상기 토큰식의 블록, 연산자, 수식, 변수들의 순환 참조에 대한 유효성을 검증하는 유효성 검증 단계; 및
    상기 유효성 검증에 따라 상기 토큰식이 해당 토큰식의 총 길이를 포함하도록 상기 토큰의 수식을 후위식으로 변형하는 수식 변형 단계를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  13. 제 12 항에 있어서,
    상기 수식 토큰화 단계는 상기 메인 함수의 숫자형을 토큰화하는 경우, 상기 토큰식에서 상기 숫자형의 크기에 해당하는 메모리 크기를 할당하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  14. 제 11 항에 있어서,
    상기 모의 실행 단계는,
    상기 메인 함수에 대하여 상기 계산 범위가 적정한지를 판단하여 상기 계산 범위가 상기 데이터의 범위 이내가 되도록 재설정하는 계산 범위 재설정 단계;
    상기 계산 종류가 단순 연산인지의 여부를 판단하는 계산 종류 판단 단계;
    상기 판단 결과, 단순 연산이 아닌 경우, 상기 구성 함수의 변수(C형)에 대한 사전 계산을 실행하는 부스터 실행 단계; 및
    상기 재설정된 범위 및 상기 사전 계산된 구성 함수의 변수를 기초로 상기 메인 함수를 계산하되, 함수형 변수 중 변수값이 존재하지 않는 경우, 상기 구성 함수의 변수(C형) 및 상기 메인 함수의 서브 함수 변수(F형)에 대한 사전 계산을 실행하며, 상기 구성 함수의 사전 계산된 변수값이 존재하는 경우, 상기 사전 계산된 변수값을 호출하는 통합 수식 계산 단계를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  15. 제 14 항에 있어서,
    상기 부스터 실행 단계는,
    상기 구성 함수에 배열 함수 또는 배열 변수가 포함되는지를 판단하는 판단 단계; 및
    상기 판단 결과, 상기 배열 함수 또는 배열 변수가 상기 구성 함수에 포함되지 않는 경우, 상기 사전 계산을 실행하는 사전 계산 실행 단계를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  16. 제 14 항에 있어서,
    상기 통합 수식 계산 단계는,
    상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 고정형 배열 계산 단계;
    상기 계산 조건이 만족하는 경우, 상기 데이터의 일정 범위에 대한 계산을 반복 수행하는 조건형 배열 계산 단계; 및
    상기 데이터의 일정 범위 내에서 상기 계산 조건이 만족하는 경우에만 계산의 결과를 누적 합산하는 전이형 계산 단계 중 어느 하나를 수행하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  17. 제 16 항에 있어서,
    상기 전이형 계산 단계는,
    상기 메인 함수의 모든 서브세트에 대한 계산을 실행하는 서브세트 계산 단계; 및
    상기 모든 서브세트에 대한 계산 결과를 합산하는 합산 단계를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  18. 제 16 항에 있어서,
    상기 전이형 계산 단계는,
    상기 메인 함수의 하나의 서브세트에 대한 계산을 실행하는 서브세트 계산 단계;
    상기 서브세트의 계산 결과를 이전 계산된 서브세트과 합산하는 합산 단계; 및
    상기 모든 서브세트에 대한 계산이 완료될 때까지 상기 서브세트 계산 단계 및 상기 합산 단계를 반복 수행하는 반복 단계를 포함하는, 사용자 정의형 수식 통합 계산의 최적화 방법.
  19. 제 11 항에 있어서,
    상기 스테이지 모델은 생물적 특성에 부합하는 모델인, 사용자 정의형 수식 통합 계산의 최적화 방법.
  20. 제 19 항에 있어서,
    상기 스테이지 모델은 작물, 병, 해충, 및 곤충에 발생 또는 발육을 나타낸 모델인, 사용자 정의형 수식 통합 계산의 최적화 방법.
KR1020140067118A 2014-06-02 2014-06-02 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법 KR101578421B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140067118A KR101578421B1 (ko) 2014-06-02 2014-06-02 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140067118A KR101578421B1 (ko) 2014-06-02 2014-06-02 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20150139138A KR20150139138A (ko) 2015-12-11
KR101578421B1 true KR101578421B1 (ko) 2015-12-18

Family

ID=55020358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140067118A KR101578421B1 (ko) 2014-06-02 2014-06-02 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101578421B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302859A (ja) * 2003-03-31 2004-10-28 Hideo Kioka 場の物理量のシミュレーション方法
JP2005267382A (ja) 2004-03-19 2005-09-29 Ip Flex Kk データ処理装置およびその制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004302859A (ja) * 2003-03-31 2004-10-28 Hideo Kioka 場の物理量のシミュレーション方法
JP2005267382A (ja) 2004-03-19 2005-09-29 Ip Flex Kk データ処理装置およびその制御方法

Also Published As

Publication number Publication date
KR20150139138A (ko) 2015-12-11

Similar Documents

Publication Publication Date Title
US11449670B2 (en) Iterative development and/or scalable deployment of a spreadsheet-based formula algorithm
Monecke et al. semPLS: structural equation modeling using partial least squares
Goodman et al. Brian: a simulator for spiking neural networks in python
Xu et al. StarPlace: A new analytic method for FPGA placement
Risco-Martín et al. Reconsidering the performance of DEVS modeling and simulation environments using the DEVStone benchmark
Markidis et al. OpenACC acceleration of the Nek5000 spectral element code
Ford et al. Implementing the ADVISE security modeling formalism in Möbius
Upadrasta et al. Sub-polyhedral scheduling using (unit-) two-variable-per-inequality polyhedra
Mi et al. Optimizing resource allocation for multistage selection in plant breeding with R package selectiongain
US20050187750A1 (en) Data processing device designing method, data processing device designing apparatus, program and computer readable information recording medium
US20070162531A1 (en) Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views
KR101578421B1 (ko) 사용자 정의형 수식 통합 계산의 최적화 시스템 및 그 방법
Marchenko Multiple-imputation analysis using Stata’s mi command
Batory et al. Dark knowledge and graph grammars in automated software design
Reinmuth et al. Toward more efficient model development for farming systems research–An integrative review
Williams A novel representation for search-based model-driven engineering
Meiklejohn et al. Lasp: a language for distributed, eventually consistent computations with CRDTs
Natale et al. Ray-tracing 3D dust radiative transfer with DART-Ray: code upgrade and public release
Lange et al. Optimised finite difference computation from symbolic equations
KR101589235B1 (ko) 스테이지 모델 생성을 이용한 사용자 정의형 수식 통합 계산 시스템 및 그 방법
Gray et al. A standard platform for testing and comparison of MDAO architectures
García-Quismondo et al. Probabilistic guarded P systems, a new formal modelling framework
Thaler et al. Show me your properties: the potential of property-based testing in agent-based simulation
CN104657542B (zh) 一种基于MSVL的Petri网模型检测方法
Boom et al. High-order implicit temporal integration for unsteady compressible fluid flow simulation

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant