MODELING
  • Model <-> Abstraction (levels of detail)
  • Modeling (levels of meta)
  • e.g. modeling reality: physics
  • e.g. modeling reality: what the system is about
  • Abstractions
  • System Modeling: the paradigms
  • e.g. programs - descriptions of computation
  • e.g. models of computation
  • system properties: state
  • system properties: architecture
  • system models (dynamics graphs)
  • information models: spatial
  • associative networks
  •  

      System Modeling: The Paradigms
    ("levels of description" - the what/how dimension)

      Location http://www.cs.mun.ca/~ulf/mod/para.html.
    Written 291003 by Ulf Schünemann.
    Copyright (C) 2003 Ulf Schünemann.

    back to: scientific landscape (signs, relations) | prog. lang. design (paradigms, prog. lang. list)


    The Concrete System to be modeled
    «A system is a part of the world which we choose to regard as a whole, separated from the rest of the world during some period of consideration, a whole which we choose to consider as containing a collection of components, each characterized by a selected set of associated data items and patterns, and by actions which may involve itself and other components.
    We make mental and manifest models of a considered system. ...» [Delta report]

    S
        \_ _/
          `===:::
              :::~~~~~~\ /
               #      =>%<=
               #        #
              / \       #
              \_/====== ^
                      |___|    
    Consider an (existing or imagined) concrete system SCSys (where the parts are of certain materials, have different colors, etc.). As a (non-trivial) concrete system, S has the following kinds of properties Prop(S):

    1. Systemic properties:
      1. I/O: input/output-behavior (in time), ie., the behavior which S shows at its boundary
      2. internal: state, components (subsystems), internal products, ...
    2. Physical properties:
      1. shareable: materials (of componets, of input/output, of internal products), spatial configuration of components, color, temperature, ...
      2. individual: position in space and time
    There are fundamentally different ways ("paradigms") of modeling such a system (when it's interior is not accessible, when you are separated from it in space or time). They differ in what is modeled, and in how that is modeled.
     
    How-Model / Explanatory Theory   What-Model / Predictive Theory
    A. Emulation or Physical Modeling   B. Replication or Glas-Box Modeling   C. Simulation or Grey-Box Modeling   D. Black-Box Modeling
     
    M
    \_/==(/)~~~~~~<%>
          #        #
          #        #
         [ ]======|_|
     
     
    M
    [ ]--(/)--|>--<%>
          |        |
          |        |
         [ ]--<>--(O)
     
     
    M
    [ ]--<%>--V---<]
              |
              |
             (@)--[ ]
     
     
    S
    [ ]--(/)--|>--<%>
          |        |
          |        |
         [ ]--<>--(O)
     
    I. What is modeled = which properties of S are modeled = which properties are shared between S and its model M?
    Model how S is constructed and how it works (aka. 'the How'). As a theory of S: an explanatory theory. The externally visible I/O-behavior is modeled (aka. 'the What'). As a theory of S: a predictive theory.
    1. systemic:   a. I/O 1. systemic:   a. I/O 1. systemic:   a. I/O
    b. internal b. internal --
    2. physical: a. shareable 2. physical: -- 2. physical: --
    -- -- --
    II. How is `it' modeled?
    M
    (a) `It' is modeled by example, by providing or constructing another concrete system MCSys, the concrete model. As a concrete system, M, like S, has its own systemic and physical properties. Some properties of M "count" as properties of S (black below), others are ignored (gray below).
    1. systemic:   a. I/O 1. systemic:   a. I/O 1. systemic:   a. I/O (Black-box models are non- constructive)
    b. internal b. internal b. internal
    2. physical: a. shareable 2. physical: a. shareable 2. physical: a. shareable
    b. individual b. individual b. individual
    Which properties of M count is a matter of intention. The same M can be used to model different ranges [S]phy [S]sys [S]IOCSys of systems S
    All concrete systems S,M[S]phy CSys with the same systemic and shareable physical properties, ie., which produce the same outputs for the same inputs by similar processes and are made of the same materials, emulate each other [Fetzer 120]. All concrete systems S,M[S]sys CSys with the same systemic properties, ie., producing the same outputs for the same inputs by similar processes, replicate each other [Fetzer 120]. All concrete systems S,M[S]IO CSys with the same I/O-behavior, ie., producing the same outputs for the same inputs, simulate each other [Fetzer 120].
    (b) `It' is modeled linguistically, ie., by giving a partial description of `it', ie., of S's different properties. Unlike a concrete model, which always has the full range of physical and systemic properties, a model description can be silent about some properties or other. Moreover, the describe even of systemic properties does not need to be exhaustive, it can focus on certain aspects and abstract aways from others (-> describing system properties). Hence what a model description describes is an abstraction from all concrete systems with the same described systemic properties, it describes an abstract system MASys (used as a model, abstract model, of S).
    There is not much use in describing any physical properties for modeling (as understood here). -- A physical description of S is a different thing. Note that no description can ever hope to be able to completely describe all the physical properties of a concrete system. Systemic properties are described (it might, or not?, allow to constructed a concrete system, M's "implementation", by filling in the physical properties). M is an abstraction from a set [M]sysCSys of concrete systems with the same systemic properties.

    Properties described (at a certain level of detail):

    M is an abstraction from a set [M]IOCSys of concrete systems with the same I/O-behavior.
    1a. I/O behavior 1a. I/O behavior 1a. The I/O behavior is described without refering to any systemic properties (of any system) [MB4 253].
    1b. internal properties 1b. internal properties - described, but not as properties of S (they do not "count")
    M is used to model any concrete system S[M]sys = [S]sys M is a virtual replication of S. M is used to model any concrete system S[M]IO = [S]IO M is a virtual simulation of S.
    «Take a black box and observe or conjecture its internal states without disclosing the mechanism that makes it tick: you have a grey box. Psychologists say that an intervening variable has been added to the stimulus-response pairs, and that the new variable is not a "hypothetical construct" but a mere formal link between inputs and outputs. But if the interveing variable is interpreted as representing the mechanism that transforms inputs into outputs, then instead of a grey box we have a dynamical box. A grey box is then midway in depth between a black box and a translucid box or mechanismic model» [MB4 262].

    «Input-output models are used in a number of fields, from thermodynamics and electrical engineering (the two historical sources) to biology, psychology, and social sciences. ... Their success has fostered the beliefs that (a) every system can be fully modeled by an input-output model, and (b) the world as a whole is a supersystem composed of multipoles [ie., black-boxes with multiple input and output terminals]. But these are illusions ... Firstly, there are plenty of systems without any recognizable inputs and outputs: just think of a radio wave. Secondly, in many cases we need to know the spatial locations of the parts of a system: time is not enough. (Think again of a radio wave, or of a brain, or of a city.) An input-output analysis, though practical and useful in many areas - particular in technology - is much too poor and is bound to be eventually supplemented or even superseded by a deeper and more detailed model. Thus thermodynamics is supplemented by statistical mechanics, electrical network theory by electrodynamics, stimulus-response psychology [aka. behavioralism] by psychobiology, and so on» [MB4 257].

     
    Some examples

    Psychology - describe human learning of behavior:
    Neuropsychology/Psychobiology:
    Permanent changes in reactivity of synapses and conductivity of dendrites.
    Cognitive psychology:
    Changes in long-term memory (eg. change strength of associations between concepts in memory) - influenced by motivation, intelligence, role models, ...
    Behavioralism:
    Changes in the organism's repertoir of stimulus-response pairs.
     

    Linguistics & Psychology - describe human speach behavior
  • Neuropsycho-linguistics
  • Psycho-linguistics
  • Socio-linguistics
  • Two levels of idealization:
  • Chomskyean linguistics (competence theory)
  • performance linguistics (performance theory)
  • Bloomfieldean linguistics:
    Collection of speach samples and statistical pattern analysis.
  • «Chomsky (e.g., 1965) distinguishes competence theories from performance theories in linguistics ... A fundamental feature of a competence theory is its idealization (p. 3):
    Linguistic theory is concerned primarily with an ideal speaker-listener, in a completely homogeneous speech-community, who knows it language perfectly and is unaffected by such grammatically irrelevant conditions as memory limitations, distractions, shifts of attention and interest, and errors (random or characteristic) in applying his knowledge of the language in actual performance.
    ... A competence theory of an ideal speaker will be very likely to have a different input-output profile to a normal human speaker. In the same way, a competence theory of an ideal exclusive-or calculator might have a different extension when compared to an exclusive-or calculator with bugs while underdevelopment. Both the competence theories and the input-output profiles of the performance theories can be implemented in an arbitrary member of possible algorithms or hardware devices.» [AAI:12].
     

    Examples from Artifical Intelligence (AI)
  • The strong thesis of AI [Fetzer 74]: AI concerns how we do think, how human intelligence works, tries to replicate human thinking.
  • Connectionism: artificial neural networks - models that replicate how human thinking in the brain works. (They are usually not constructed in hardware but simulated on ordinary digital computers, which work in a completely different way.)
  • Computational Theory of Mind (CTM): Human thinking works by the manipulation of formal symbols. Computers can operate the same way as thinking in humans, can replicate human thinking. Computers can think.
  • The idea of the Turing test is that a computer (ie., a concrete system) is intelligent if (but not only if) it can show written language behavior indistinguishable from humans - i.e. simulate [Fetzer:4].
  • Searle's Chinese room passes the Turing test. It is perplexing because it works in a way completetly different to a human Chinese speaker [Fetzer:5]. -- Cf. the CTM to the right.
  •  

    Programming - model the (wanted) programmed computer's behavior (descriptive/prescriptive) [cf. paradigms]
    (a) Concrete model. An unusual way of describing what a computer does or should do is through a concrete model:
  • Emulation: "I want a clone of that other (programmed) computer".
  • Replication: "I want a computer operationally equivalent to that other one".
  • Simulation: "I want a computer simulating the input-output behavior of that one".

    (b) Abstract model. Typical model descriptions are used.
    «Software ... is merely a more or less accurate theory of the workings of a hardware system, a computer. It is at least a correct predictive theory (predicting the correct output given the input), but it may not be a very good explanatory theory (that is, a theory which is strong than extensional equivalence, one that explains something about how the output it reached). The accuracy of software in a traditional computer system as a theory of the states through which the system passes depends on the compilation ... and execution of the result» [AAI:80, underlining added].

    «We can view a program two ways.
    1. A program is a description of a set of actions that we want a computer to carry out. ... [=> glas box view]
    2. A program is a model of some process in the real or mathematical world [not a model of what the real computer does]. ... [=> gray box view]
    These two world-views are analogous to the way a builder and an architect view a house. The builder is concerned with the method for achieving a finished house. ... The architect is concerned with the overall function and form of the house ... A "builder's language" allows to prescribe how to do something. An "architect's language" deals with abstractions to express models of objects and processes» [TAPL 15f].

  • Programming on a physical theory of computation: Programming in various models of computation (in aworld of software objects) Programming with no theory/model of computation:
    Physical programming: Computer (glas-box) programming: Model-based (grey-box) programming: Declarative (black-box) programming:
    Specify in physical terms Specify how the computer should compute
    At different levels of abstraction:
  • real memory -> virtual memory -> flat store -> structured store
  • bit patterns -> integers/floats (ie. machine-lang. supported values) -> primitive values (of prog. lang.) -> abstract values (incl. user defined)
  • micro instructions -> machine instructions -> HLPL statements -> structured control constructs
  • Specify an input-output relation by describing one way how it could be computed Specify an input-output relation for the entire program without use of a model of computation, without hypothesizing internal states, steps, components.
    (This is easier said than done: any closed formula result = F(x,y) contains subterms corresponding ot intermediate steps in the compuation)
    (b1) descriptions for humans (a) i.e., a way in terms of abstractions of how computers work: (b) in terms of a model of computation (MOC) not derived from the computer by abstraction:
    Specification of direct physical manipulation:
    rewiring and setting-of-switches
    (eg. programming of the ENIAC 1944)
    Model-based spec.
    of entire program
    Modural specifications
    (trace, algebraic, model-based)
    Trace specification
    of entire program
    Algebraic specification
    of entire program
    (b2) code = can be loaded on computer to program it

    «Programming languages ... can be instantiated in arbitrary many physical ways. Any attempt to characterise the behavior of the programs at the physical level is doomed, Fodor and Pylyshyn claim» [AAI:20].

    Algorithmic code
    open formula:
    Logic code
  • relational logic
  • constraint-logic
  • partial list of input:output pairs (to be inter- and extrapolated) used in
    Neural network training
    Genetic programming

    Low-level programming in the imperative model:
  • micro code
  • machine code
  • assembly code
  • High-level programming in the imperative model:
  • imperative, procedural, structured
  • In the applicative model:
  • monadic-style functional code
  • <---|    
    inductive translation
        |--->
    through optimizer (reordering, unrolling, inlining, pre- evaluation, ...)
    In the applicative model: Functional code
    Code in the dataflow model
    In the multiagent model: Event-based code
    Code in the object change propagation model
    Rule-based code
    In the message passing model:
    Object-oriented code
    with 'clients', 'servers', 'links', 'messages'
    |
    Object-oriented programming and the physical model metaphor.

    «Object-oriented programming: A program execution is regarded as a physical model, simulating the behaviour of either a real or imaginary part of the world.» «Physical models are based upon a conception of the reality in terms of phenomena and concepts ... The physical models, we are intersted in [for object-oriented modeling], are models of those part of reality we want to regard as information processes» [OOP?].

    «The object-oriented approach to programming is based on an intuitive correspondence between a software simulation of a physical system and the physical system itself. An analogy is drawn between building an algorithmic model of a physical system from software components and building a mechanical model of a physical system from concrete objects. ... The proper analogy is between software objects and objects in a "real world" that one may imagine building, rather than objects in the "real world."» [ATO].

    «The basic philosophy underlying object-oriented programming is to make the programs as far as possible reflect that part of the reality they are going to treat. It is the often easier to understand and get and overview of what is described in programs. The reason is that human beings from their outset are used to and trained in perception of what is going on in the real world. The closer it is possible to use this way of thinking in programming, the easier it is to write and understand programs» (translation of Krogdahl and Olsen 1986 quoted in [OOP?]).

    «Instead of focusing on the functionality of a system, the first step in the development of the system ... is to make a physical model of the real world with which the system is concerned. This model then forms the basis for the different functions that the system may have. Functions may later be changed, and new functions may be added without changing the underlying model» [OOP?].
     

    Cognitive Science - description levels of computer systems (±humans) - or - system levels
    [AAI] C L Foster: Algorithms, Abstraction and Implementation: Levels of Detail in Cognitive Science; Academic Press 1992.

    «In cognitive psychology and in computer science the notion of levels is an important one. To speak only in terms of one level of components, such as `memory' or `lists', rules out the possibility of further explaining how those components are themselves structured and how their subcomponents interact. On the other hand, to limit explanation or even description to the lowest level (if that could be determined), say the level of physics, would be to miss out on important generalizations. The fundamental importance of levels is as uncontroversial as anything in cognitive science. ... Still, the variety of levels [proposed by different authors] is wide-ranging, and the definitions are less than precise» [AAI:31].

    System level (description level) =/= level of abstraction!
    «Computer systems levels are not simply levels of abstraction. That a system has a description at a given level does not necessarily imply it has a description at higher [system] levels. ... ([Newell 82] p. 97)» [AAI 17]. Cf. abstraction = selectively ignoring properties - always applicable.

    System level =/= point of view!
    «`... [C]omputer system levels ... are a reflection of the nature of the physical world. They are not just a point of view that exists solely in the eye of the beholder. This reality comes from computer system levels being genuine specializations, rather than being just abstractions that can be applied uniformely. (Newell, 1982:98)» [AAI 15f]. They are not just points of view since they depend on technologies (`circuit technology', `programming language technology', ...): «Computer systems levels are realized by technologies. ... It is not possible to invent arbitary additional computer system levels that nestle between existing levels. Potential levels do not become technologies, just by being thought up. Nature has a say in whether a technology can exist. ([Newell 82] p. 97 ...)» [AAI 17]
    OTOH: «I don't understand what it is to say, for example, that a level `really exists', rather than being a point of view. Usually there are theoretical framewaorks under which we describe computational devices; in one sense these are viewpoints, but that fact doesn't make the objects viewed from those viewpoints any less real, or descriptions in the viewpoints' terms any less true.» [Smith 1986:42, quoted from AAI 32].

    «Perhaps the most frequently cites theory of levels of explanation is that of David Marr ...» [AAI:9]. And then there is «Newell's `standard hierarchy, familiar to everyone in computer science'» [AAI 16]. But let us proceed chronologically:

     
  • D C Dennett: Intentional Systems; 87-106: The Journal of Philosophy 68; 1971.
  • Physical stance. Here «predications are based on the actual physical state of the particular object and are worked out by applying whatever knowledge we have of the laws of nature.» «[T]he physical stance is generally reserved for instances of breakdown, where the conditions preventing normal operation is generalized and easily locatable...» [Dennet 1971:222, quoted from AAI:22,23].
    Design stance. Here predications «are defined as being generated by assuming each functional component will perform as designed. The design includes the arrangement of the functions to fulfil their pruposes. This use of `function' highlights the purpose-relative defniition of the term, which tends to be forgotten in computer science lingo» [AAI:23] «[T]he design here includes the design of the particular machine» [AAI:23]. «If one knows exactly how the computer is designed (including the impermanent part of its design: its program [U: he must mean `machine program']), one can predict its designed response to any move one makes by following the computation instructions of the program» [Dennet 1971:221, quoted from AAI:23].
    Intentional stance. «The emphasis at the top level, or `intentional stance', is placed on predication of output from input, without necessarily explaining anything about how the actual mechanisms of this particular system serve to bring about the predicted resutls or what states the system goes through» [AAI:22]. «[In "The Intentional Stance" MIT Press 1987, Dennett] explicitly calls the intentional stance an idealization, such as the computational level of Marr and the notion of competence of Chomsky. Unlike Marr, however, Dennett clearly allows for the possibility that a good idealization may have little to do with the correct theory at a lower level: The fact about competence models that provoked my `instrumentalism' is that the decomposition of one's competence model into parts, phases, states, steps, or whatever need sheed no light at all on the decomposition of actual mechanical parts, phases, states, or steps of the system being modelled--even when the competence model is, as a competence model, excellent. (pp. 76-76)» [AAI:23f]
     
  • D Marr: Artificial Intelligence - A Personal View; 37-48: Artificial Intelligence 9; 1977.
  • D Marr: Vision: A Computational Investigation into the Human Representation and Processing of Visual Information; W H Freeman 1982.
  • «For a system that solves an information-processing problem, we may distinguish four important levels of description. At the lowest, there is basic component and circuit analysis--how do transistors, neurons, diodes, and synapses work? The second level is that of particular mechanisms: adders, multipliers, and memories accessed by address or by content. The third level is that of the algorithm, and the top level contains the theory of the overall computation» [D Marr, T Poggio: From Understanding Computation to Understanding Neural Circuitry; 470-488: Neurosciences Research Progress Bulletin 15 1977: p. 470, quote from AAI 34].
    Hardware implementation level. «This is just the level of explanation of the physical device in which an algorithm is implemented, be it person or computer. ... [This level] places constraints on [the repr. & algo. level], restricting the representations and operations that can be used at the algorithmic level» [AAI:11].
    Representation and algorithm level. «The distinction between process (algorithm) and representation is crucial, and the choice of representation comes first and restricts the choice of process.»
    «The representation is itself a system, much like a grammar: it is symbolic and compositional. `A representation', as Marr (1982:20) defines it, `is a formal system for making explicit certain entities or types of information, together with a specification of how the system does this'. he gives as examples number systems, such as binary and Roman numerals, pointing out that particular representations aid of impede various operations ...» [AAI 11].
    Computational level. There is «an element of abstraction and idealization in this level: it is independent of any particular representation, as addition is independent of the numeral system» [AAI:13]. This level «is critically important from an information- processing point of view." [Marr:27] ... An information processing problem [is] one such as perception (according to Marr), for which "an algorithm is likely to be understood more readily by understanding the nature of the problem being solved than by examining the mechanism (and the hardware) in which it is embodied. (p. 27)» [AAI:14].
    «While a description at the representation and algorithm level is meant to answer the question how?, the computational level description is intended to answer the questions what? and why?» [AAI:11]. The «important features are (1) that it contains separate arguments about what is computed and why and (2) that the resulting operation is defined uniquely by the constraints it has to satisfy». For example, the cash register's computational theory: «If you but nothing, it should cost you nothing; and buying nothing and something should cost the same as buying just the something» [Marr 1982:23 and 22, quote from AAI:12].
     
  • A Newell: The Knowledge Level; 87-127 in: Artificial Intelligence 18; 1982.
  • Configuration level (processor-memory-switch level). «`lies directly above both the symbol level and the register-transfer level' (p. 95)»
    Eg. «the whole VAX with peripherals, reading in data and writing out data, is the configuration level»
    I did not show the logic-level above the electronic circuit level, because: «There is no way to abstract from an arbitrary electronic circuit to obtain a logic-level system» [Newell 97, cited from AAI 17]. Logic level (medium: bits):
    Register-transfer sublevel (architectural sublevel). Medium: bit vectors
    Symbol level (program level). Medium: symbolic expressions. It «is supposed to be at the same hight as the register-transfer level» [AAI 16].
    The symbol level cannot be above the register-transfer level, because: «There is no way to abstract from an arbitrary register-transfer system to obtain a symbol-level system» [Newell 97, cited from AAI 17].

    «On closer inspection, there is no clear boundary between the symbolic level and the logic level. A description in machine language, for example, might be viewed as either» [AAI 32].

    Logic level (medium: bits):
    Logic circuit sublevel. Medium: single bits
    Electronic circuit level. Medium: current and voltage (for electric circuit, but could also be fluid)
    Device level. Medium: electrons and magnetic domains. This level «is (p. 97) `used only to devise components at the circuit level'»