The present application claims priority from Japanese application JP2006-026501 filed on Feb. 3, 2006, the content of which is hereby incorporated by reference into this application.
The present invention relates to a method of generating a simulation model to conduct simulation of phenomena and events occurring in, for example, the economic and social environments by representing the phenomena and the events in terms of causality.
For a company to achieve better and advantageous decision making as compared with competing companies, it is essential to construct a decision making support system in which appropriate information items are gathered at an early stage to prepare an appropriate strategic step prior to the other companies. For this purpose, a simulation to predict the future will be efficiently utilized. There exists two types of simulations, that is, simulations of discrete type in which the simulation is conducted by handling events and simulations of continuous type in which values of variables continuously change on the time axis or with respect to time. For example, Akira Uchiyama, “Visualization of Economic Trend after Bubble Economy by SD”, JSD Conference, Oct. 23, 2004 describes that the simulation of continuous type in which feedback loops of chains and microscopic events can be dispensed with is efficiently used in the chain prediction of causality in the political decision making or in the chain prediction of causality, for example, to determine how a price of new products exerts influences when the new products are put to the market. Also, according to the article, the system dynamics technique is generally suitable as a simulator of continuous type for a system including causality in social phenomena taking place in the world. The system dynamics technique is proposed and developed by Forester at the Massachusetts Institute of Technology (MIT) and is a method of simulating transient phenomena by describing phenomena in the form of difference equations. According to the system dynamics, a model is configured by combining two kinds of symbols (variables), namely, a rate indicating a flow rate of a substance and a level indicating accumulation of the substance.
In a simulation model generation method of system dynamics, a model is constructed by setting relationships between rates and levels by use of a text-type programming technique called Dynamo and visual screen images such as those used in an associated tool available in the market.
In the simulation model generation of the system dynamics, it is quite important to determine which one of the rate and the level is adopted for the object of which a model is to be generated. However, for invisible factors such as social phenomena which are difficult to visually recognized, there does not exist any index or guidance for how to generate a model by use of rates and levels. Therefore, until the user has a sufficient deal of experience in the simulation model generation, it is required for the user to construct the simulation model in the try and error method. This requires a large amount of human power and time.
To achieve the object according to the present invention, there is provided a simulation model generator for generating a simulation model of a simulator which conducts simulation by representing phenomena and events in terms of causality. The generator includes a module for presenting a screen which defines causality between the phenomena and the events using nodes and links to a user, receiving inputs from the user, and registering information regarding each of the nodes and information regarding each of the links connecting the nodes to each other, a database for storing therein and controlling in a centralized way, metric information recorded using records each of which records, for each of the phenomena and the events thus registered, metrics quantitatively representing a quantity indicating a magnitude of the phenomenon or the event, the record including at least a metrics name, a unit, a metrics calculation formula, and an output time bucket indicating a period of time for totaling results of calculation; unit information recorded using records each of which includes, for each unit, at least a unit name, a conversion coefficient, and a time flag determining whether or not the unit is associated with time; coefficient information including a coefficient name and a coefficient value which are used in the metrics calculation formula; and a simulation time bucket representing a period of time per time step in the simulation; and a simulation model generating module for generating a simulation model using data registered to the database.
In the simulation model generator of the present invention, the simulation model generating module includes program templates of two kinds of patterns respectively for “data accumulation” and “flow rate calculation”. The simulation model generating module applies the program template for data accumulation to the metrics calculation formula if the output time bucket of the metrics information is larger than the simulation time bucket. The simulation model generating module applies the program template for flow rate calculation to the metrics calculation formula if the output time bucket of the metrics information is less than the simulation time bucket.
According to the present invention, in an operation to generate a simulation model using information items of causality of phenomena and events, it is not required to discriminate the rate representing a flow rate unique to the system dynamics from the level representing accumulation. Therefore, the period of time to generate the simulation model can be remarkably reduced when compared with the conventional model generation method requiring the try and error procedure. In addition, it is also possible for even a non-expert not having knowledge of the system dynamics to construct a simulation model and to achieve simulation.
Referring now to the drawings, description will be given of a first embodiment of a simulation model generator according to the present invention. In the description of the embodiment, a relationship between a measure to enhance the sales of products and an resultant effect of the measure is represented using causality and then a simulation model of the system dynamics is automatically generated.
First, description will be given of the overall configuration of the simulation model generator according to the present invention.
Subsequently, description will be given of a hardware configuration of the simulation model generator 1.
The modules of
It is possible that a program of the simulation model generator creates on a computer of a client 6, data required for a program of the simulation model generator on the server 3 and registers the data via the network 5 to the storage 20. It is possible to configure the system including the server 3 and the storage 20, without using the client 6 and the network 5.
First, description will be given of a processing sequence, shown in a dotted-line frame of
In this way, the user moves nodes and links from the palette 111 to the canvass 119 through the drag and drop operation. As a result, there is produced, for example, a causality chart in the canvass 119 as shown in
The model name inputted to the registration confirmation view is registered to the model name field.
The cause node name field is employed to register thereto a node name of the node on the last end of the arrow indicated by the link ID. The effect node name field is employed to register thereto a node name of the node on the arrowhead of the link indicated by the link ID. Description has been given of the causality definition module 11 shown in
Next, description will be given of the metrics definition module 12 and the unit master definition module 13. The metrics definition module 12 has a function to set, for each node generated by the causality definition module 11, a metrics item for quantitatively measuring a degree thereof, the unit thereof, etc.
The user may select the metrics unit from the menu of the list box. The menu list displays the value contained in the unit field of the unit table 203 shown in
Similarly, the menu list of the list box of the output time bucket displays the value of the unit field of each record of the unit table 203 for which the time flag field is “on”. After the respective items of
The unit master definition module 13 shown in
If the base unit is absent, a hyphen “-” is recorded. In this situation, the definition of the unit is set using the time flag field to indicate whether or not the unit is associated with time. When the close button is clicked, the input results are reflected in the unit table 203 shown in
As a result of the input operation in the metrics definition view, the metrics names thus set are reflected in the screen image as in the causality chart definition screen shown in
However, there likely occurs a situation in which the user desires to first define relationships between metrics items according to phenomena and events which the user imagines. To cope with the situation, the causality chart definition view of
Description will now be given of the influence relation definition module 14 shown in
The user selects a node for which an influence relation is to be defined. According to the node, the system extracts the initial values respectively of the metrics name, the unit, the output time bucket, and the metrics item and influence relation information from the metrics table 201 to display the obtained information items on the screen. In the influence relation information column, there are displayed a metrics name and a unit thereof associated with the cause node linked with the pertinent node.
Description will now be briefly given of a method of extracting the display data. Using as a search key the value selected from the node name list described above, a search is made through the link table 202 for the effect node name field to obtain the value of the cause node name field associated with the effect node name field. According to the extracted value, a search is made through the metrics table 201 of
In the expression column, the user describes a calculation formula including all metrics items displayed in the row of the metrics name. For example, data, which possibly is changed according to necessity, such as “consumption tax rate” can be set as indicated in area A of
The column of “expression judgment” is a field in which the system displays a result of the check conducted for the expression or the calculation formula inputted by the user. The check is made for four points, that is, “the link metrics items are entirely used”, “the units are appropriately aligned for addition or subtraction”, “the unit of the inputted calculation formula can be converted into the unit of the metrics item of the pertinent node”, and “the name used in the expression is beforehand registered as a link metrics name or a coefficient name”.
For example, the link metrics item “average sales” is not used in the calculation formula described in
When the user clicks the graph function button of
When the user clicks the close button in
The simulation time bucket setting module 15 of
The sequence described above is a sequence to prepare data required to automatically generate a simulation model in area A of
When the user selects from the list a model to be opened and then clicks the open button, data can be read from the system. The data displayed in the list menu is data created by collecting the model name fields of the metrics table 201.
Next, description will be given of the simulation model generation module 16. This module has a function to automatically generate a simulation model on the basis of the causality chart being opened at this point of time. The function can be called by depressing the simulation model generation button 116.
Next, the generation module 16 obtains a time bucket for which the model field of the simulation time bucket table 205 matches with the simulation model name (step 102). Next, the generation module 16 extracts a record for which the model name field of the metrics table 201 matches with the simulation field name in an order of coordinates (X,Y) and then increments the number of loop iterations (steps 103 and 104).
In step 105, using the unit table 203, the time bucket obtained in steps 102 and 103 is converted into a value expressed in the minimum time units. The output time bucket is compared with the simulation time bucket (step 106). If the output time bucket is larger, a program template 161 shown in
Description will now be given of the meaning of the program template 161 shown in
In
In expression (1), dt is a simulation time bucket. RBn(t) is represented as a function of expression (2). In this connection, T is an output time bucket (time constant), t0 is a simulation start point of time, and t1 is a point of time when a pulse first appears. Expression 1611 is a function to calculate the value of RAn(t).
In step 106 of
Description will now be given of the meaning of the program template 162 shown in
In step 112 of
Thereafter, a link is established for an input interface (I/F) of the program corresponding to the metrics item of the effect node name and an output interface of the program corresponding to the metrics item of the cause node name (step 114). Finally, a check is made to determine presence or absence of the next record in the link table 202. If the next record is present, the process returns to step 112; otherwise, the processing is terminated (step 115).
Since it is required that the simulation model is expressed to be understood by the simulator 4, the data is stored in the memory 32, for example, as a simulation model table 206 shown in
As shown in the simulation model table 206, each entry thereof includes a model name field, an object name field, a type field, a size field, a metrics field, a metrics initial value field, and an expression field. The object name is a variable name used in the expression. The type is a type of the variable and includes a rate, a level, and a coefficient.
If the type is set to “rate”, there are disposed an object size field, an associated metrics name field, a unit field, and an expression field. If the type is set to “level”, there are disposed an object size field, an associated metrics initial value field, and an expression field. If the type is set to “coefficient”, there are disposed an object size field and an associated metrics initial value field.
In this connection, the object size is an area size of a variable. An object for which the type is “coefficient” is a variable not exerting influence on a change in time series, and hence the size is set to “1”. An object for which the type is “rate” or “level” and which changes in time series, and hence a size of “tend” is required as an array. In this regard, “tend” indicates a simulation period of time. The expression field is disposed to register thereto an equation to calculate each variable. The simulation data table 207 of
If the type of the object is “rate”, arrays whose values are all null are registered according to the size “tend” as shown in
Subsequently, description will be given of the function of the simulator to execute the simulation model generated as above.
When the user selects a metrics item for the browsing thereof from the menu, the system extracts from the simulation table 207 a record for which the object name matches with the metrics item thus selected. The system converts the value of the record into a value in the metrics units to resultantly display a graph with the output time bucket taken along the X axis. The user therefore can confirm results of execution of the simulation by visually checking the graph.
The system finally outputs the values to the simulation data table 207. Referring now to
If the value of the variable obtained as above is other than null (step 407), the obtained value is assigned to each variable of the expression indicated by the expression field obtained in step 405 to solve the expression (step 408). The solution is then stored in the simulation data table 407 (step 409).
If the value of the variable obtained as above is null, the value of the expression field obtained in step 405 is temporarily saved in a first-in first-out stack. If the subsequent record is present in step 405, the operation is repeatedly conducted again (step 411). If the stack contains a value in step 410 (step 412), the system obtains the value from the stack in the first-in first-out way (step 413) and then returns to step 405. If the stack is empty in step 412, the simulation period is compared with the point of time t. If the time t is before the simulation period, the step 404 is executed; otherwise, the processing is terminated (step 414).
It should be further understood by those skilled in the art that although the foregoing description has been made on embodiments of the invention, the invention is not limited thereto and various changes and modifications may be made without departing from the spirit of the invention and the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
2006-026501 | Feb 2006 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
6321205 | Eder | Nov 2001 | B1 |
6708156 | Gonten | Mar 2004 | B1 |
6853920 | Hsiung et al. | Feb 2005 | B2 |
6970754 | Nanbu et al. | Nov 2005 | B1 |
7177834 | Maestle | Feb 2007 | B1 |
20030144746 | Hsiung et al. | Jul 2003 | A1 |
20060041466 | Woehler | Feb 2006 | A1 |
20070027736 | Reynolds et al. | Feb 2007 | A1 |
20070094219 | Kipersztok | Apr 2007 | A1 |
20070112746 | Todhunter | May 2007 | A1 |
20080059215 | Boyd | Mar 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20070192081 A1 | Aug 2007 | US |