| Yes | No | |
|---|---|---|
| Official |
|
|
| Maintained |
|
|
| Permanent |
|
|
This site comprises some issues of research interrest to us at Cognitive Technology group in the area of Computer Modelling, Simulation and Learning. One reason why we model and simulate complex systems is that we that way actually can learn about the system.
This may be done in two different ways. We could either model and/or simulate a system with unknown properties, in order to obtain a better understanding. For instance, the hypothetic model of the atom in physics has served this puropse, and still does. The model has always flaws, inconsistencys that cannot be accounted for, which is the driving force for the design of new, improved models.
The other way is to learn students about a system that is known to us, but not them. Aircraft pilots, for example, are training critical situations in simulators.
Therefore, we think that models and simulation has great importance in learning.
Our modern society is crammed with models of various kinds. Everybody has certainly at least seen toys that in a sense really are models of real world objects like cars and trucks. A model is a kind of abstraction. [Denning et al, 1989] gives the following examples in the area of numerical and symbolic computation:
"1. Formulations of physical problems as models in continuos (and sometimes discrete) mathematics.
2. Discrete approximations to continuos problems. In this context, backward error analysis, error analysis, error propagation and stability in solutions of linear and non- linear systems. Special methods in special cases.
3. The finite element model for a large class of problems specifiable by regular meshes and boundary values. Associated iterative methods and convergence theory: direct, implicit, multigrids, rates of convergence. Parallel solution methods. Automatic grid refinement during numerical integration.
4. Symbolic integration and differentiation."
Another definition is given by [Bratley et al, 1987]:
"A model is a description of some system intended to predict what happens if certain actions are taken . . . For a model to be useful, it is essential that, given a reasonably limited set of descriptors, all relevant behavior and properties can be determined in a practical way . . . by driving the model with certain (typically random) inputs and observing the corresponding outputs. This latter process is called simulation."
Simulation is to study a model over time. A model is an approximation of an existing or hypothetical system. We use the model in simulation in order to try to understand the real system better. We could, of course, use the real system and leave the modeling and simulation behind us, but there are some drawbacks with this approach:
(i) The real system may be quite expensive or already in commercial use and we cannot risk to damage it. We may not even be allowed access to the system.
(ii) If the real system is mistreated, situations may occur that put human lives and safety on the line.
(iii) We may not have the time and funding to build a real system just so that we can perform experiments on it. Sometimes we have to build a model prototype of some kind to prove that our concept works in real life, thus obtaining the necessary funding afterwards.
(iv) The real system may occur in an environment that makes it impossible to observe, like the inner processes of the sun, or the properties of the proposed black holes in space.
(v) External reasons, like political considerations research ethics etc., may limit our ability or even prohibit us from experiments on the real system. The nuclear testing ban treaty is disputed just because some nations has the ability to work out the problems by computer simulation, while others cannot.
(vi) We want for some reason to keep our results secret, thus making full scale ex- periments that are observable by others impossible. This problem may occur in both experiments related to national security as well as the development of commercial products. For instance, car manufacturers tries to test their new, but not yet released, models in secrecy.
(vii) We do not have the technology to build the real system, but we hope to acquire a better understanding of what improvements and problems this new invention could bring. We could for example model Los Angeles, CA, and study the consequences of replacing all combustion engine vehicles with electrical ones. It seems obvious that the air should be better, but what would happen to the electrical power supply in the state of California?
(viii) We want to study a system on a time scale that is not suitable to humans, like the continental drift or the creation of the Grand Canyon by the Colorado River.
Every model is a simplification of the real world object, system or process. We cannot avoid loosing a great deal of the properties of the real system. In fact, one reason why modeling is of interest is that simplifications costs less and usually goes faster!
The complexity of the model is always a very important consideration. If we make a crude model we cannot expect to obtain anything but crude results. But a large and detailed model may be hard to understand, control and slow. Therefore, the balance must be found between what parts of the model that is necessary, and what parts only increases the complexity of the model, without significantly improve the quality of the results.
The trick is to ignore properties of the real system in the modeling process that have small or none significance whatsoever to the experiment that we want to perform. For instance, if a car manufacturer wants to perform crash tests, the color of the car should not be of any importance. On the other hand, the kind of paint may have if, for example, it tends to ignite the wreck into a blazing inferno.
Therefore, an essential part of designing computer models is to determine the useful and important input parameter sets and their boundaries. Inside these, we hopefully can trust the results. Outside any of them, the results are uncertain and probably (but not necessarily) erroneous.
Here are some links to related sites about modelling:
The small-scale military tactical communication network is a complex system. We needed to test the systems, present and future, to identify potential problems. We studied the problem and decided that the best approach was to model and simulate.
To model system, called ARLETTE, was developed to model and simulate a small grid network with up to 64 nodes. We encountered a lot of problems during the validation, for example:
- Military traffic is not uncorrelated. How could we model this correlation correctly? The offered trafic load is very hard to describe statistically.
- The system had a priority function. Some calls could break calls with lower priority. But, how did it work in detail? We found out that the rules for making these descisions were implicit incorporated in the hardware, and the actual performance was not explicitly known! So how should we model a function not fully known to us?
- Every switch has a routing list. Basically, it tries the routes in order, starting with the shortest one. However, there may be limitations, like the maximum time allowed to set up a call. The set up time is dependent on the speed of which the switches are able to communicate with each other. The response time for each switch is also dependant on the other tasks at hand. Therefore, the fact that a valid route exists does not guarantee that the call is set up!
- The system responded to disturbances in the network automatically, by re-routing calls that were already in progress. But how did the system handle this problem when the capacity in the network was limited? How were the descisions made in detail?
We found that we had questions about the system that not even the manufacturer could answer. The modeling process itself raised a lot of issues, and we learned a lot about the real system in the process, before we even tried simulation!
There are a wide range of applications of computer models in computer science. If we try to classify them by the way they are used, we could divide them up in:
(i) Computer simulation in training. The computers are used to simulate some real system or object. One or several student operators delivers commands and obtain responses in accordance with the system status. Typical examples are the flight simulators that s been around for decades.
(ii) Computer simulation in system design. The models are built in order to determine the final design of some system. When the model works satisfactory in simulation, the system may be constructed for real. They may also be used as platforms to make parallel design possible. For example, one team designs the hardware processor while another team develops software and test it on the corresponding model.
(iii) Computer simulation in scientific research. We are observing some real life system, witch we do not fully understand. Therefore we model it and make some simulation runs. The results are compared with the real world, and we find that there are crucial differences. Therefore, we refine our model, thereby really redefining our hypothesis of how the system really works. The new model must now not only correct the differences we had before, it must also behave the same way as the old one in all other respects. A typical example is the weather prediction models. They are constantly refined, thus making them somewhat more reliable.
(iv) Computer simulation as a presentation tool. An extremely complex system may be extremely hard to supervise for a human because of the large amount of incoming information. We can use the simulation to present a vast amount of data in a short time and still have the human brain to digest it all. The military have developed several systems that presents the true battlefield status, as it is known, in near real time to the commander, which is a quite complicated task.
(v) Computer simulation in scientific research to predict the consequences of processes that have not yet started, or at least not yet finished, where the final state of the real world system is unknown. A typical example of this kind is the ongoing research on the greenhouse effect.
The whole discipline Artificial Intelligence is based on the principle presented in (iii). Alan Turing [Turing, 1950] suggested the design of an electronic version of the human brain, that could perform exactly the same tasks, at least seen from the outside, with the same accuracy. Since this goal is at least to say ambitious, it has been divided up in sub goals like machine learning, computer vision etc. However,we note that some research is aimed to create models that behave like the human brain, while others tries to model how the human brain works.
If there is an analytical, mathematically correct and proven, method, it should be used. If the set of equations is large, or if the method itself cumbersome, it should certainly be set up in a computer system. In fact, we still have a model of the real world system and we still simulates over time. Why? Because there are extremely few processes (if any) in the universe that are so pure and free of any interference of any kind, not accounted for in the mathematical model!
The method of validating a pure deterministic mathematical/logic model may be somewhat different in detail, but the need is still there and the main problems are essentially the same.
It is not therefore any point in discussing the use of models or not, since we do not have any choice. What we have to discuss, however, is what method we should apply to obtain the best (in the respect of correctness) results. We may choose between deterministic and non- deterministic models. In each case there are alternative approaches where ever one comes with pro's and con's.
The important issues in using models and simulation in computer science research are:
- To define the real world system to be modeled.
- To determine what the important properties of the system really are.
- To make the tough choices of simplification, that is: determine what properties to ignore, which is always dangerous to some unknown degree.
- To decide what properties we want to study and whitin what ranges of data.
- To decide what method to use, and be clear about why it is to prefer before others.
- To give the model a good structure, thus dividing it up in sets of sub-problems.
- To validate that each part of the model functions as the corresponding part in the real system.
- To determine the models combined design parameters, that is to find out the boundaries within it may be used with some confidence.
- To determine the margins of errors in the results, compared to the real world. You may be able to predict the outcome of an general election down to the tenth decimal, but how many of them are really significant?
- To keep control over the model and it's use, so that we can tell the difference between phenomena s observed due to the shortcomings of the model and phenomena s that are related to the real system, which are the important ones.
[Bratley et al, 1987] Paul Bratley, Bennet L. Fox, Linus E. Schrage. 'A Guide to Simulation', Springer Verlag, New York, 1987. ISBN 3-540-96467-3.
[Denning, et al, 1989] Peter J. Denning, Douglas E. Comer, David Gries, Michael C. Mulder, Allen Tucker, A. Joe Turner, Paul R. Young. 'Computing as a Discipline', Communications of the ACM , Januari 1989, Volume 32 Number 1, Baltimore, MD.
[Drefus, et al, 1988] Herbert L. Dreyfus, Stuart E. Dreyfus. 'Making a Mind Versus Modelling the Brain: Artificial Intelligence Back at a Branch-Point'. Artificial Intelligence 117, no. 1 (Winter 1988), Cambridge, Mass.
[Turing,1950] Alan. M. Turing, 'Computing Machinery and intelligence', Mind LIX, no. 2236 (Oct. 1950), Oxford Press.