{"title":"DVCompute++ Simulator: decomposition for discrete event simulation","authors":"D. E. Sorokin","doi":"10.37791/2687-0649-2023-18-3-72-91","DOIUrl":null,"url":null,"abstract":"The decomposition method of discrete event simulation models is represented based on the author’s own work DVCompute++ Simulator, which is a collection of general-purpose programming libraries in C++ for creating and running simulation models. The aim of the research was to find an approach based on which arbitrary models could be divided into parts, then these parts of the model could be divided into less components and so on, where the result would be a hierarchy of nested sub-models that could be considered in isolation as independent entities. Now such sub-models can be created in C++ code, but, in the future, they can be created graphically as diagrams or as some text written in the specialized modeling language, where the sub-models can be used repeatedly, which makes them similar to library units from GPSS STUDIO. The mentioned ways of creating sub-models can be combined in any order on any level of nested hierarchy, where this work can be performed by different people with different skills. Moreover, it is shown in the article that the considered decomposition method can be applied to the case of distributed simulation, which is supported by DVCompute++ Simulator too. All this is possible due to the fact that the author applied functional programming techniques, where the simulation model is considered as a composition of computations. Then the model decomposition is the splitting of computations into parts, which can be connected to each other like constructor. There are two basic computations: blocks similar to the GPSS language and discrete signal computations similar to reactive programming. The diagrams of sub-models and the corresponding C++ code are provided in the article, based on which the suggested author’s method of decomposing the discrete event simulation models is illustrated.","PeriodicalId":44195,"journal":{"name":"Journal of Applied Mathematics & Informatics","volume":"27 1","pages":""},"PeriodicalIF":0.4000,"publicationDate":"2023-06-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Applied Mathematics & Informatics","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.37791/2687-0649-2023-18-3-72-91","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"MATHEMATICS, APPLIED","Score":null,"Total":0}
引用次数: 0
Abstract
The decomposition method of discrete event simulation models is represented based on the author’s own work DVCompute++ Simulator, which is a collection of general-purpose programming libraries in C++ for creating and running simulation models. The aim of the research was to find an approach based on which arbitrary models could be divided into parts, then these parts of the model could be divided into less components and so on, where the result would be a hierarchy of nested sub-models that could be considered in isolation as independent entities. Now such sub-models can be created in C++ code, but, in the future, they can be created graphically as diagrams or as some text written in the specialized modeling language, where the sub-models can be used repeatedly, which makes them similar to library units from GPSS STUDIO. The mentioned ways of creating sub-models can be combined in any order on any level of nested hierarchy, where this work can be performed by different people with different skills. Moreover, it is shown in the article that the considered decomposition method can be applied to the case of distributed simulation, which is supported by DVCompute++ Simulator too. All this is possible due to the fact that the author applied functional programming techniques, where the simulation model is considered as a composition of computations. Then the model decomposition is the splitting of computations into parts, which can be connected to each other like constructor. There are two basic computations: blocks similar to the GPSS language and discrete signal computations similar to reactive programming. The diagrams of sub-models and the corresponding C++ code are provided in the article, based on which the suggested author’s method of decomposing the discrete event simulation models is illustrated.