2.3 Related concepts

For practical purposes, it is useful to define briefly some other related terms. The creator of a model is called the modeler. The modeler needs to have a profound knowledge of the object to be modeled, as well as an extensive understanding of mathematical structures in order to match them to the problem at hand. To create a model is and will always remain a complex and involved activity, even if computer based modeling tools can support the modeler, it cannot replace the creative work a modeler does. Of course, the modeler can be a team rather than a single person, as is often the case in big projects. In this case, the different activities such as data collection, setting up the model, solving the model, and verifying it, etc. can be distributed between the modelers.

Another concept is modeling. The term is difficult to define because it is used in so many different contexts. In art, it is used to express the process of working with plastic materials by hand to build up forms. In contrast to sculpturing, modeling allows corrections to be made on the forms. They can be manipulated, built and rebuilt until its creator feels happy with the result. In sculpturing, the objective cannot be formed, it must be cut out. Once finished, the form cannot be modified. Scientific activities are more like modeling than sculpturing, and therefore the common-sense meaning of modeling is used in various research communities.

In database technology, for instance, data modeling designates the design, validation, and implementation of databases by applying well-known methods and approaches such as the entity-relationship (ER) approach and the object-role modeling (ORM) method. From a practical point of view, data modeling could be considered as part of mathematical modeling. It is a set of tasks which consists of collecting, verifying, and ordering data.

Hence: Modeling is an iterative process to conceptualize, to build, to validate, and to solve a model. Often modeling is more important than the end-product, the model, to understand a problem. The creative process of getting though the modeling process gives invaluable insights in the structure of a particular problem.

(The concept of modeling process is so important that I have written a separate paper (see [8] (How to model?).)

Two further important notions in mathematical modeling are that of model structure and model instance. A model structure is a model where all data is captured by symbolic entities: the parameters. In fact, it represents a whole class of models. A model instance, on the other hand, does not contain any parameters; these are replaced by concrete data. As an example, take a look at the following differential equation:

dx   rx (1 - x)
---= ----------
dt       k

The equation contains two parameters r and k (and a variable x). Hence, it defines an entire class of sigmoid functions and can, therefore, be used to model the growth of a population with limited resources. For a concrete growth model, however, the two parameters r and k must be replaced by numerical data. Additionally, an initial population x0 must be given to make the equation numerically solvable.

Large models (models with many 1000 of variables and constraints) may also contain a large number of data that must first be collected, analyzed and verified. This may be a laborious task in itself, but that is another whole story.

Finally, a modeling language is a computer executable notation that represents a mathematical model augmented with some high level procedural statements to proceed the data of the model. There is an important difference between programming and modeling languages. Whilst the former encodes an algorithm and can easily be translated to a machine code to be executed, the later represents a mathematical model. It does normally not have enough information in itself to generate a solution code. So, why should modeling languages be useful? First of all, such a computer executable notation encodes the mathematical model in a concise manner, and it can be read by a computer. The model structure can be analyzed and translated to other forms. Secondly, for many important model classes the notation can be processed and handed over to sophisticated algorithms which solve the problem without the intervention of a user. Modeling languages have many further benefits, for example, automatic model documentation, generating activity/constraint graph or similar graphical representations, etc. (There is another paper that explains my concept of a modeling language (see [6]).