lecture notes - Kees van Overveld`s

Transcription

lecture notes - Kees van Overveld`s
1
2
”When Minerva Meets the Centaur”
An Engineer’s Companion to Creative
Problem-Solving
Kees van Overveld
1
version: 1 June 2009
c
1
Kees van Overveld, 2005. Exclusive permission is granted to all students and staff of TU/e to use,
copy, or print this document with the sole purpose to accompany courses on Design Methodology and/or
Modeling. All other usage is strictly prohibited.
2
Contents
1 Introduction
1.1
7
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.1.1
Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
1.1.2
Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.2
Decision making processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
1.3
The structure of these lecture notes . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2 Thinking, Creativity, and Thinking about Creativity
2.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Creativity and Selection
17
17
19
3.1
The instruments in Assist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.2
How to get started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3
File IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.3.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
Sort and Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.4.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.4.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
Interactive Weights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.5.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.5.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
Inspire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.6.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
3.6.2
Auto-ranking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
3.6.3
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
3.7.1
Relations: a fundamental notion in Assist . . . . . . . . . . . . . . . . . .
38
3.7.2
Partial ordering, transitivity and a-cyclic graphs . . . . . . . . . . . . . . .
38
3.4
3.5
3.6
3.7
3
4
CONTENTS
3.7.3
Partial ordering, set-inclusion and ontology . . . . . . . . . . . . . . . . . .
41
Intentional relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Extensional relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Intentional vs. extensional relations . . . . . . . . . . . . . . . . . . . . . .
43
Consistency and propagation . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Partial ordering, comparison and ranking in Assist . . . . . . . . . . . . .
44
Pareto front-ranking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
Weighted Sum-ranking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
Comparing Pareto front ranking and Weighted Sum ranking . . . . . . . . .
49
Sliders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.8.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
3.8.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
3.8.3
Sliders for the ’include’ relation . . . . . . . . . . . . . . . . . . . . . . . . .
50
3.8.4
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
Questionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.9.1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
3.9.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
3.10 Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
3.10.2 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.11 Cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.11.2 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
3.12 Pareto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.12.2 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.13 Folk-ontology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
3.13.2 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60
3.14 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.14.2 Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
62
3.7.4
3.8
3.9
4 Modeling: a Systematic Approach
4.1
67
The notion of a Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
4.1.1
Different intentions require different models . . . . . . . . . . . . . . . . . .
68
4.1.2
The role of assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
5
CONTENTS
4.1.3
Multiple models co-exist in any design process; consistency . . . . . . . . .
71
4.1.4
Purposes for models in design . . . . . . . . . . . . . . . . . . . . . . . . . .
71
4.1.5
Requirements on models . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
4.1.6
Variables and relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
Type of a variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
72
Value of a variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Categories of variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Categories I and II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
74
Category I : independent, autonomous; Category II : dependent . . . . . . .
74
Finding category-II variables from category-I variables . . . . . . . . . . . .
75
Category-III: contextual variables . . . . . . . . . . . . . . . . . . . . . . . .
79
Category-IV: auxiliary variables
. . . . . . . . . . . . . . . . . . . . . . . .
79
A second distinction between variables in design models . . . . . . . . . . .
80
Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
81
Cyclic dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
82
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
How to deal with constraints . . . . . . . . . . . . . . . . . . . . . . . . . .
83
Educated guesses and models . . . . . . . . . . . . . . . . . . . . . . . . . .
85
Modeling an optimization: multiple category-II variables . . . . . . . . . . . . . . .
87
4.2.1
Pareto plots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
4.2.2
Estimating a Pareto front: evolution theory . . . . . . . . . . . . . . . . . .
89
Pareto: post processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
4.1.7
4.1.8
4.2
5 Modeling: a tutorial
93
5.1
Generic characteristics of a functional model . . . . . . . . . . . . . . . . . . . . . .
93
5.2
A functional model of a taxi company . . . . . . . . . . . . . . . . . . . . . . . . .
95
6 Modeling: tool support
113
6.1
Nano Accel: supporting the maintenance of functional models . . . . . . . . . . . . 113
6.2
Model manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.3
6.2.1
General Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.2.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
6.2.3
Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Navigation: the run-tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6.3.1
General Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
6
CONTENTS
6.4
6.5
Index
6.3.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
6.3.3
Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Optimization: the Pareto tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.4.1
General Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.4.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.4.3
Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Visualization: the graph-tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.5.1
General Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.5.2
Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
6.5.3
Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
139
Chapter 1
Introduction
’Since we can’t deal with reality, we better get good at modeling’
1.1
Introduction
When the Italian high-renaissance painter, Sandro Botticelli (Florence, round 1445 - ibid., 17
May 1510), painted his famous ’Minerva and the Centaur’ round 1488, he gave a briljant visual
expression to a fundamental psychological theme. It is a theme that dates back to ancient times
and continues to bother academic educational systems until today. In the painting, reproduced
in figure 1.1, we see a confrontation between Minerva, the Roman version of Athena, goddess of
wisdom and crafts, and a Centaur. Centaurs were mythological creatures, half man and half horse,
and they were associated with the god Bacchus. Bacchus, the Roman counterpart of Dionysus,
was the god of wine, ecstacy and unbridled creativity. Minerva and the Centaur can almost be
called archetypes; they represent two rather opposite aspects of the human nature. They both
relate to abilities that can be observed in skillful and competent men and women; both types of
mental attitudes are crucial in all situations of challenge, and every talented engineer or artist will
recognize both aspects in his or her work. Yet, they seem to be of a very different nature. They
are thought to be incommensurable at least, and perhaps even conflicting and mutually excluding.
Professionals with a dominant Minerva-attitude are orderly and systematic; they have an analytic
view to the world and their accuracy and discipline is their strongest tool. Minerva-type problem
situations can be complicated, but they have a clean structure; they allow step-by-step resolution,
and there are few surprises to be expected. Perhaps they could even be called boring, academic
in the negative sense, or unrealistic.
Professionals who feel themselves befriended with the Centaur, on the other hand, get their creative
inspiration from chaos. They excel in artistic environments where intuition flourishes, where
nothing is fixed beforehand, and where mistakes are welcomed as inspiration points for innovative
development. Intuition rather than ratio is their forte.
The Minerva nature and the Centaur nature are both essential in present day professionals irrespective of their field. A long time has passed since engineers were believed to dwell behind
7
8
CHAPTER 1. INTRODUCTION
Figure 1.1: Minerva and the Centaur, round 1488, by Sandro Botticelli: a metaphor for incompatible mental aspects in professionals.
1.1. INTRODUCTION
9
the drawing board, spending their time with slide ruler or pocket calculator. Similarly, designers,
architects and even artists nowadays partake in orderly planned, multi-disciplinary meetings, they
engage in meticulously managed projects, and they use MS Excel as a standard general purpose
computer tool.
But they are educated very differently.
We can interpret Minerva and the Centaur as two metaphors, not only for personal characteristics
or types of problems, but also for education. Ignoring the commonalities, and stressing the difference almost to the level of caricature, we see, on the Minerva side a strongly regulated curriculum
where processes, procedures, and protocols form the core. There is much attention for formalisms
and algorithms, and reasoning goes from techniques to application. Once a sufficient amount of
methods, tools and techniques has been acquired, there is hope that these can be made useful
in practical application - although this often means that the practical problem first has to be
thoroughly amended, massaged, or even modified.
A Centaur-type curriculum is similar to a survival excursion. The chaos of real-life problems forms
the starting point, and techniques are only considered interesting if they can immediately be seen
to lead to satisfied customers or problem-owners. Flexibility, endurance and an unorthodox mind
are considered to be more essential than factual knowledge or theoretical backgrounds.
Even though academic curricula invariably try to join the strengths of both thinking styles, it
is commonly believed that at the level of individual courses, projects or topics, one of the two
always prevails. In a class on linear algebra, the emphasis is on Minerva-style precision and
abstraction; a workshop on architectural design may hinge on Centauresque brainstorming or
guided imagination sessions. Only very few educational work forms attempt to balance - or even:
to reconcile methodology with creativity, formalisms with the chaos real-life problems, or Minerva
with the Centaur. As a result, young professionals are educated in an awkward, split-brain system
where talents and skills, or problems and solutions fall in two incompatible categories: either
Minerva or Centaur.
In the lecture notes you are reading now, we try to develop a coherent system of thinking tools
that aims to bridge the apparent gap between structure and creativity. We will try to convince
you that, incompatible as they may seem at first sight, structure and creativity, when seen as the
modern professional’s tools or working attitudes, in fact have very much in common. They are, to
a large extent, complementary. They mutually reinforce and stimulate each other. Creative ideas
can result from a highly structured process; developing a structured model for a problem at hand
can be a direct inspiration to start seeking for (unorthodox) alternatives, and, conversely, there is
much creativity involved in finding an appropriate structure for approaching a problem. Rather
than the classical distinction between ’structure’ and ’creativity’ therefore, we will encounter the
much more useful duality of explicit vs. implicit. Or, in a more psychological jargon: consciously
vs. unconsciously. Minerva can be interpreted as the aspect of ratio, consciousness and logic
whereas the centaur stands for intuition, pre-consciousness1 and emotionality.
Rather than viewing the two modes ’Minerva’ and ’Centaur’ as a static polarity, as if they were two
mutually exclusive mental characterizations that at best could be complementary but in practice
often lead to debate, envy or wasteful competition, we will focus on the dynamic transition between
the two. We will study various forms of explicitation that lead from intuition to precision, from
fruitful vagueness to even more fruitful concreteness, and from qualitative to quantitative.
We will see how both structured approaches and so-called non-structured ’creative’ approaches
benefit from the process of explicitation. We will demonstrate how it helps to explicitly formulate
assumptions, constraints, and intentions. We claim that is useful to invest in precision about
rationales, dependencies, and options.
Precision is the pathway of the professional.
1 ’consciousness’ can be contrasted with ’unconsciousness’, ’subconsciousness’, or ’pre-consciousness’. All three
are problematic. In line with our arguments later on, we choose for ’pre-consciousness’.
10
CHAPTER 1. INTRODUCTION
problem
type
approach
attitude
main asset
professional
field
main strength
main challenge
prevailing
mental aspect
notorious
prejudices
Minerva
closed
Centaur
open
techniquedriven
analytic
formalisms
and
procedures
engineers,
scientists
reproducibility
’ISO 9000’
whimsical, nonstandard problems
in varying context
problemdriven
synthetic
creativity
and
flexibility
artists,
designers
applicability
ingenuity
routine problems
situations that
require reliable
or dependable
solutions
emotionality or
intuition
chaotic and
non-conclusive;
believed to be
an innate quality
that cannot be
systematically
developed or taught;
results from too
little control.
rationality
boring and
restrictive;
believed to be
the result of
blind drilling in
an unforgiving
school system;
results from too
much control.
Table 1.1: The main distinctions between Minerva and the Centaur
11
1.1. INTRODUCTION
This is by no means a broadly-accepted slogan. Popular belief has it that formalization will kill
spontaneous creativity. Writing down things in some detail in a too early phase allegedly eliminates
options, it is accused of creating a rigid straightjacket of concepts that doesn’t do justice to the
playfulness of the exploring human mind - and most importantly: it is said to jeopardizes intuition.
Intuition is thought to flourish in vagueness.
Artists, designers and architects often boast on their intuition. Intuition, usually understood as
’un-formalized, unconscious knowledge’, relating to non-rational, non-explicit mental processes,
sometimes closely tied to emotions, is seen as the hallmark of non-structured creativity. Intuition
is thought to be a inexhaustible source of inspiration - at least by those who can freely tap
into their intuition. Thinkers and workers with more limited access to this miraculous asset are
sometimes regarded as being mildly handicapped. More intuitively capable sometimes even adopt
a conceited attitude towards rationalists, offering their assistance in the form of suggestions, tips
and techniques to ’stop thinking’ - as if ratio is a poor substitute for lacking intuition.
We will advocate a different position in this debate. We do recognize the value of intuition, but we
regard intuition as a non-explicit, first phase in any process of (creative) synthesis or (structured)
analysis. Hence our preference for the term ’pre-conscious’: this suggests that we deal with a
phase in thinking processes that precedes (or: should precede) explicit statements. A strong
intuition will definitely give a head start to solving any mental challenge, but it requires follow-up
in the form of rational explicitation. In figure 1.2 we schematically sketch the traditional, static
distinction between structure and creativity, and we confront it with the dynamic transition-type
process we want to put in place.
s tru c tu re
( a n a ly s is )
im p lic it, in tu itiv e
th in k in g
e x p lic it, r a tio n a l
th in k in g
- b o th a n a ly tic a lly
a n d s y n th e tic a lly
c r e a tiv ity
( s y n th e s is )
Figure 1.2: Left: the traditional, static dichotomy where (structured) analysis and (creative)
synthesis are seen as complementary or even competing opposites: the engineer vs. the artist.
Right: we want to advocate a thinking attitude where explicitation provides for a transition
between pre-rational intuition and more or less precisely formalized thinking - which applies both
to synthetic and analytic mental processes.
The two key observations to this intended merger of Minerva and the Centaur are design and
modeling.
1.1.1
Design
We use the notion of design in a very broad context. In fact, every situation where decisions are
made for the future benefit of one or more identified customers or stake holders, we will refer
to as ’design’. So a technical artifact can be designed, but also an immaterial object such as an
organization structure, a mathematical formula or a marketing strategy. A composer designs a
symphony, and a chief cook designs an exquisite banquet. You, the reader of these lecture notes,
12
CHAPTER 1. INTRODUCTION
may design the arrangement of the furniture in your living room, a pleasant evening or even your
career; politicians design laws, Utopian visions for a healthy national state or political programs.
Stake holders can be the customers or commissioners or problem owners that initiate the design
situation. But everybody who can be affected by the decisions to be made could (and should) fall
under the definition. In particular, it is inconceivable that the designer her- or himself is not a
stake holder, since many decisions will affect her or his happiness, both during the design process
and afterwards.
Design, in the above interpretation provides a very interesting working context to develop both
synthetic and analytic thinking skills. Indeed, a decision first requires a more or less precise
formulation of what it is to be decided, This is an analytic challenge. Next it requires a proposal
of - preferably several - alternative options. This is a synthetic challenge. The more, and the more
varied options we can conceive, the larger the chance that the solution space will be sufficiently
densely covered, and creativity is primarily engaged in generating many and different solutions
to problems. Finally, taking a decision requires that a justified choice is made for one of these
options, which should be ’better’ than the other ones. Justifying such as choice is again an analytic
challenge.
By dealing with the entire decision making process in terms of one single vocabulary, we see that
the analytic and synthetic aspects need to be integrated. It no longer suffices to interpret them as
isolated professional activities. Therefore, many of the examples we will encounter will be cases
of design, innovation, or decision making.
1.1.2
Modeling
Justifying a decision means that we want to have a reasonable amount of certainty about the
correctness of the decision. We want to know its consequences, and we want to certify that another
decision would not be better. At least we want to understand which line of argumentation was
followed, which assumptions were made, and which circumstances were ignored to arrive at the
decision. As soon as a quest for certainty comes up - however mildly formulated - we are in the
arena of logic. Logic, and mathematics in general, are the paradigms that deal with truth and
probability. Therefore we will find that we will be making a model of the situation at hand.
A model, in this context, is a story, consisting of concepts and relations between these concepts,
that has some correspondence to the situation we want to model. Let us call the situation at
hand the problem domain, DP , as opposed to the model domain, DM . In the problem domain
there is a question, and it is difficult to answer this question in DP only. Therefore we construct
DM . Now DM can consist of material objects. For instance, if we want to know if the air flow
around an aircraft wing will be smooth, we build a scale model of the wing and put it in a wind
tunnel. We observe the wind flow around the scale model, and we try to draw conclusions from
these observations that relate to the air flow around a real, full-size aircraft wing.
More often, however, DM will consist of non-material constructs, such as variables. The relations
between the concepts in DP are mapped to relations between the concepts in DM . In the case the
concepts in DM are variables, these relations can even take the form of formulas. It is important
to realize, therefore, that every formula in DM has a counterpart in DP . The question we want to
be answered in DP is mapped to an intention in DM . A mathematical intention specifies ’what
needs to be done’ with the variables and the formulas. Should they be interpreted as equation
that need to be solved, or should they be seen as a function that needs to be optimized? And if
so, which variables are the unknowns, which variables are known - and how are they known?2
For instance, ’how many check-out counters should we have in a store so that customers don’t
have to wait too long’ is mapped (translated) to a set of mathematical relations, formulated in
2 In
regular mathematical education, intention is often taken for granted. The impression is often held that it
is ’obvious’ what should be done with the mathematical objects at hand. When (applied) mathematics is used in
the context of modeling, however, this is often far from trivial.
1.1. INTRODUCTION
13
the language of mathematics. It may consist of the same variables and formulas as a model
representing the problem ’how long will customers have to wait for a given number of check-out
counters’. Yet another question, leading to the same relations is ’how many check-out counters
should we have so that customers never have to wait longer than twelve minutes’. Or ’ ... so
that customers on average don’t have to wait longer than twelve minutes’. Although there is no a
priori difference between the mathematical formulation in these cases, the difference between the
various intentions is crucial. As a result, the mathematical manipulations that will be done in
the various cases will also be very different. In the first case, we solve an optimization problem;
in the second case, we evaluate a function. The third and fourth cases are subtle mixtures of
optimization and probability theory. In more complex settings, it may not at all be obvious what
exactly the mathematical intention is, and more importantly, how this intention should result into
a mathematical agenda and into a sequence of mathematical manipulations. Even worse: not only
is this far from trivial, it is most often not recognized as a distinct problem in many (traditional)
mathematics curricula.
In mathematics, we deal with things like numbers, lists, probabilities and probability distributions,
rather than check-out counters, rows of irritated customers, and people queueing. The mathematical manipulations (like adding, multiplying, integrating and differentiating) are entirely different
from the types of processes that go on in DP (such as customers stepping into a queue, customers
loosing their temper, customers being served, et cetera). Nevertheless, if the mappings between
DP and PM were meaningful, we believe that a mathematical result (such as ’3.465653264667’) has
a meaning for the situation in PD (namely: ’either 3 or 4 check-out counters should be enough’).
There are three essential, but very different skills involved in making models. Namely:
• the analytic ability to see which are the essential concepts and relations in DP . That is:
which features of the real situation at hand need to be taken into account in order to solve the
problem. For the check-out counter problem: perhaps we need to know how fast a customer,
on average, is served; probably we don’t need to know how much money the customer will
have to pay (since that will not have major influence on how long the process takes);
• the synthetic ability to see what would be plausible concepts in DM to put in the place of the
relevant objects in DP . Once these concepts have been found, the (mathematical) relations
that should apply in DM follow from our understanding from the processes and interactions
between the relevant concepts in DP . These correspondences, however, can never be formally
proven to be correct. They can, at best, be plausible. Indeed, mathematical proofs can
only say something about mathematical objects only, and the correspondences we want to
establish are correspondences between non-mathematical objects and mathematical objects.
For the same reason, the correspondences between objects in DP and mathematical relations
in DM will never be unique. For a given process, relation or mechanism in DP there are
always multiple possible ways to express this in terms of mathematical formula(s). In chapter
5 we will elaborate this point further;
• the formal ability to manipulate the mathematical model in DM . It is very well conceivable
that a perfectly plausible translation between DP and DM gives rise to a completely intractable mathematical problem (for instance, a set of very non-linear equations, or a search
problem with non-polynomial complexity3 ). The required skills to manipulate DM such that
it gives a result that can be mapped back to an answer on the initial problem in DP may be
very different from the skills to develop DM . All too often, a mathematician or computer
scientist will be in place to take care of the formal manipulations on DM ; the problem owner
(the scientist, the designer, the engineer, ... ) will do the actual mapping between DP and
DM and back.
3 We
don’t have to go in to the details of algorithmic complexity here. We just mention that a problem with
non-polynomial complexity is a problem such that a small increase of the problem size leads to a (very) large
increase of the amount of computer time needed to solve the problem.
14
CHAPTER 1. INTRODUCTION
Figure 1.3: three phases in a decision-making process. Left: the item generation phase, where
as much as possible different items (or ideas) should be conceived; Middle: the selection phase,
where the space of all items is reduced to the very few very best ones; Right: the detailing phase,
where the (quantitative) details of the selected idea are defined. The grey polygon on top of the
colored rectangles represents the amount of options at a certain point in time during the decision
making process.
1.2
Decision making processes
We use modeling and design as vehicles to illustrate how creativity and systematic, structured
thinking come together. Therefore we will regard design, in the broad sense of ’taking decisions
such that future benefits of stake holders increase’. This decision making process can be seen as
a three-phase process.
• item generation (or: option generation, idea generation or concept generation). A decision
means that first a (preferably large) number of options has to be available, and these options
have to come from somewhere. They have to be conceived, imagined, proposed, ... . It
doesn’t matter where options come from. We will see that chaotic processes (based on pure
luck) are just as good as systematic approaches, and very often this phase is a mixture of
the two;
• selection. Modeling is an elaborate process, and we typically cannot take more than one
or two options seriously. Therefore, before we can do modeling in detail, we have to select
the most plausible option(s). This selection process therefore must be rather global; still,
we want to follow a route such that our selection can be justified by means of, preferably,
explicit and perhaps objective criteria. We want to be able to explain why we have chosen
one option and rejected another;
• detailing. The preferred option will always contain a (large) amount of details that need to
be filled in. This is the phase where (mathematical) modeling comes in.
Schematically, these phases can be depicted as in figure 1.3. (Notice: in stylized form, this figure
is also part of the logo that precedes every chapter).
1.3. THE STRUCTURE OF THESE LECTURE NOTES
15
In the item generation phase, it is essential to create as many as possible ideas (hence the color4
green: this relates to creativity), and criticism is absolutely forbidden (hence the color yellow: this
relates to optimism).
In the selection phase, initial ideas are critically assessed (hence the color black: this relates to
pessimism or constructive negativism), where criteria should formulated to make intuition more
explicit (hence the color red: this relates to intuition). The large collection of ideas from the item
generation phase needs to be brought back to the very few very best.
In the detailing phase, the few remaining items are cast in the form of (mathematical) models
(hence the color blue: this relates to systematic thinking) and factual information is brought in to
help making realistic estimates for crucial dimensions in the item-to-be-realized (hence the color
white: this relates to objective facts).
The techniques to be used in the various phases can drastically benefit from tool support. We have
developed two tool suites, called Assist and NanoAccel, and we explain the approach in the
various phases by means of the various features of these two tool suites. The tool-stack Assist, to
be described in chapter 3 contains a number of instruments to facilitate the first two phases of the
decision-making process; for support in the detailing phase, the tool NanoAccel (see chapters
4, 5 and 6) may be used.
The emphasis in Assist is much more on qualitative and less formal methods; creative inputs
are stimulated, and the main purpose of the tool is to administrate these in a meaningful way.
We will see, however, that despite the focus on creativity, a systematic way of working will give
welcome structure to the first two phases. In NanoAccel we accentuate quantitative and slightly
more formal approaches. Inevitable, the jargon will be somewhat more mathematics-oriented.
Nevertheless, in chapter 5 we will show that even in this phase of the decision making process,
there is much room for (structured) creativity.
Although the two parts of the process are very different in nature, we will see some techniques
occurring in both. For instance, the emphasis on concepts, attributes and values; also, the notion
of a Pareto-optimum will be a central issue in both parts. We hope to show that throughout the
entire process, there is a constant interaction between creativity and structure.
Minerva and the Centaur will never be far apart.
1.3
The structure of these lecture notes
In chapter 2 we will first give an account of the notion of creativity. Creativity is regarded as
an aspect of mental processes, and therefore our exposition starts with a brief overview of neural
processes as far as they help to understand the peculiarities of creative and non-creative thinking.
More importantly, we will see how some insight in the basic mechanisms of our brain helps to see
why explicitation is of paramount importance in all forms of problem solving, both in analytical
and in synthetical cases. Armed with this basic knowledge we pay attention to the basic ingredients
of creativity: multiple interpretation, forced association, and abstraction, and we describe some
techniques to work on all three. Next we zoom in onto abstraction, as this drives the process of
explicitation that forms the backbone of the rest of these lecture notes. We address some common
aspects of abstraction that will be used throughout, both in decision making and in modeling.
The theoretical ideas explained in chapter 2 can be used in problem solving by means of paper-andpencil techniques, but this will, in practice, seriously constrain the process. Therefore the use of
software support to carry the burden of administration and book-keeping is very much advisable.
To this aim, the software system Assist is devised, and chapter 3 explains how it works.
4 Colors have been chosen loosely in correspondence with the ideas of Edward de Bono about various thinking
attitudes. This is described in his books about ’thinking hats’.
16
CHAPTER 1. INTRODUCTION
After having discussed the qualitative aspects of problem solving, in terms of option generation and
selection, in chapter 3, we move to the quantitative aspects in chapter 4. We present a template
for building models to support decision problems in a systematic fashion. The key observation
is the notion of intention; we will see that, in the case of design processes, and decision making
processes in general, intentional reasoning leads to an iterative process for identifying variables
and their relations.
The theory of chapter 4 is illustrated by means of a detailed, worked-out example in chapter 5.
This example is given in sufficient detail that it can be run on any standard spreadsheet program.
However, it has even more educational value if it is run on MS-Excel with the tool NanoAccel.
The tool NanoAccel is described in detail in chapter 6.
Chapter 2
Thinking, Creativity, and
Thinking about Creativity
’Since our brain runs patterns, we’d better make it run creative patterns’
2.1
Introduction
This chapter is not yet available.
17
18
CHAPTER 2. THINKING, CREATIVITY, AND THINKING ABOUT CREATIVITY
Chapter 3
Creativity and Selection
’All good things are three’
3.1
The instruments in Assist
Assist is an acronym for Assist Supports Systematic Innovation by means of Software Tooling. It
is intended to support a process of option generation, adminstration, and evaluation. Options are
represented in a way that allows easy comparison and ranking; also, the creation of novel options
out of existing ones is addressed. The central idea behind the tool is to help getting insight in the
structure of the option-space, rather than seeing all options as isolated creative solutions. Option
spaces in Assist can be exported and re-used in other projects; in fact, Assist offers an interface
to a growing, web-based ontology of world knowledge to which everybody can contribute, and
where everybody can get inspiration from.
The instruments currently available in Assist are the following:
• The Data Grid: this is a table where all items live. An ’item’ here, is any idea that comes up
during the creativity process, and that is to be assessed in the selection process. Items are
rows in the table; its columns either represent classifiers or ranking attributes. Classifiers
are used to characterize an item in terms of its properties. These properties are, generally
speaking, qualitative features. Classifiers serve to distinguish one item from another: the
difference between two items will reflect in the difference of the values of at least one classifier. In subsection 3.4.1, a more detailed introduction into classifiers is given. The ranking
attributes (or ’attributes’ for short) characterize an item in terms of its adequateness. Ranking attributes help to tell if one item is better suited for its purpose than another. Classifiers
and ranking attributes can be added at any time; they can be deleted if no longer necessary,
and their name can be changed at will;
• File IO: create a new project which is initially empty, or load an existing project from an
earlier session, or write the current project to background storage for future processing;
19
20
CHAPTER 3. CREATIVITY AND SELECTION
• Sort and cluster: by their nature, classifiers serve to distinguish one item from another. We
could say that classifiers together form our frame of knowledge about the space of all items:
both the items in our list, and the items that do not (yet) occur in the list, but that could
be conceived as alternative possible ideas. In order to study the structure of this space, we
can apply various quantitative analyses, for instance to compare the distinguishing power of
classifiers, or to assess whether classifiers are sufficiently independent. Readers familiar with
non-parametric statistics may recognize some of the features of the ’sort and cluster’-tool;
• Interactive Weights: this allows interactively changing the relative importance of each of the
ranking attributes;
• Inspire: create new items, either from scratch, either as a result of an inspiring suggestion,
or either as a result of systematic, new combination of values for classifiers;
• Relations: there are various types of relationships between items. One type of relationship
has to do with classifiers. This is the ’is-a’ relationship, also called hierarchy: an apple
is a (piece of fruit), and a hammer is a tool. Often the space of possible ideas can be
conveniently structured by making hierarchies explicit. The other type of relationship is the
’inferior with respect to’-relationship. For instance, a motorcycle is an inferior means for
transportation than a bicycle with respect to CO2 -emission. The latter type of relationship
will be extensively used in the selection process;
• Sliders: see real-time consequences of varying the relative importance of ranking attributes;
• Questionnaire: an intuitive means to assess the relative adequateness of items;
• Query: navigate the list of items by means of database-like queries;
• Cluster: to aid the interpretation of the structure of the present set of items, their classification and their attribute-ranking can be explored by means of intuitive visualization;
• Pareto: to aid the analysis of relative qualities of the present set of items, they can be
visualized as points in a plane spanned by a pair of criteria, where any pair of criteria can
be selected;
• Preferences: to adjust the global behavior of Assist;
• Folk-ontology: this gives an interface to a growing, web-based ’folk ontology’ on world
knowledge;
• Registration: to run the web-based version of Assist, users must register (get an account)
and login in order to do input and output, and to contribute to the folk-ontology. The
functionality of the registration tool is not covered here.
In the sequel, each of the tools is described in detail.
3.2
How to get started
Assist consists of the Data Grid plus a series of interactive forms, each form representing one
of the tools. The forms allow processing of the information contents in the Data Grid; the Data
Grid, however, can also be manipulated directly. In particular, values for classifiers can be typed
in directly into cells in the Data Grid. Figure 3.1 shows the Data Grid and the related buttons.
The Data Grid plus all of the forms together form a Flash-application, to be run either as a
web-application in a browser, or as a stand-alone desktop application (a so-called Adobe AIRapplication). The two versions are identical up to one crucial difference: the File IO functionality
3.2. HOW TO GET STARTED
21
Figure 3.1: The Data Grid and related buttons. The actual row is the item ’coffee’, the actual
column is the classifier ’cont...’(contains alcohol)
22
CHAPTER 3. CREATIVITY AND SELECTION
is only available in the desktop version, since security considerations forbid storage and retrieval
of file data from within a web-application. Instead, the web-version supports saving and loading
information onto a web-database. Access to this database is granted for users who have registered
and logged in. To this aim, the web-based version of Assist contains one additional form, called
’manage registration’. This form allows to create a new account, to log in on an existing account,
to modify an account (e.g., to change the password), and to ask for a new password in case the
password has been forgotten. The operations of the ’manage registration’ form are very much
compliant with standard www-practice; these are not covered further.
One further difference between the web-based version and the stand-alone version is in the way
projects are saved and retrieved. In the stand-alone version, projects are files that are maintained
at the local file system of the computer running Assist. This means that e.g. deleting files is
handled by the local operating system (e.g., Windows). Selecting files takes place via a standard
file-browser. For the web-based version, the role of the file system is played by a remote database;
registered users have access to this database - and this is the only way the project data is available.
A maximum amount of projects is allowed for each registered user; deleting projects is controlled
via a additional ’delete’-button in the File IO form (see later) of the web-version of Assist; this
function is not present in the stand-alone version.
When running the stand-alone version, this has first to be installed. The installation of such a
so-called Adobe AIR-application, although straightforward, is not covered in these lecture notes.
In the sequel it is assumed that either a working version of the AIR-version of Assist is up and
running, or Assist is approached via the web in a browser.
Assist’s Data Grid is permanently visible. Rows or columns to the Data Grid can be added,
renamed or deleted by means of a set of 9 buttons in the upper row of the application. Buttons
carry the name of the rows or columns that they operate upon. The left three buttons cover
adding, deleting or changing items; the middle three adding, deleting or changing classifiers, and
the right three adding, deleting or changing ranking attributes. At any time there is an actual
row and an actual column. The actual row relates to an item; the actual column can either relate
to a classifier or to a ranking attribute. A row becomes the actual row by clicking into a cell of
that row; a column becomes the actual column by clicking into a cell of that column.
The Data Grid always contains at least two columns. One column is labeled ’itemName’ (the leftmost column), and the other column is labeled ’itemRank’ (the second column). The itemNamecolumn contains the names of the items; the itemRank-column contains an indication of their
adequateness - in terms of numerical values or a color code.
The itemName column and the itemRank column cannot be removed or renamed; all other
columns, holding classifiers or ranking attributes, are dynamically created under direct user control.
In some cases, some operations are not available. For instance, when clicking into a cell in the
itemName or itemRank column, the ’delete’ or ’rename’ operations for columns are not available.
Buttons for non-available operations are made invisible.
The top row of the Data Grid is the row of column headers. In the column headers, we find the
following information:
• the word ’itemName’ to indicate the column with item names;
• the word ’itemRank’ to indicate the column with values indicating the adequateness of the
items;
• the name of a classifier with the set of values for that classifier in parentheses for any classifier;
• the name of a ranking attribute with the relative importance of that ranking attribute in
parentheses for any ranking attribute. Column header cells for ranking attributes carry a
3.2. HOW TO GET STARTED
23
color code; red means ’little importance’; yellow means ’average importance’; green means
’much importance’.
By clicking into any column header cell, a sort-widget appears. This sort widget contains three
buttons, labeled ’up’, ’down’ or ’-X’-. Clicking the ’up’-button causes the rows to be sorted
in increasing direction for the values in the corresponding column; the ’down’ button sorts in
decreasing direction. For classifiers and item names, sorting is in lexicographical order; for the
item ranking and attribute ranking, sorting is in numerical order. The ’-X-’ button serves to cancel
the sorting tool.
The left-to-right order of columns is by default the order of their creation; the width is by default
set to a standard width. Columns can be dragged into a different order and the widths can be
adjusted, however, by means of dragging the column header cells or dragging the borders between
subsequent column header cells, respectively. This can be useful, for instance, if there are many
columns so that the standard width is too narrow ro read the entire classifier or ranking attribute
names.
Items, classifiers or ranking attributes can be added at any time when there is no other form
present. Item names must be unique; some other syntax requirements apply (for instance, there
are some forbidden characters), but users are warned if a name is given that is not acceptable.
Column names (either classifiers or ranking attributes) must also be unique, and they also must
obey some syntax requirements; users are warned if these restrictions are violated.
To build up an ontology in Assist, items and classifiers need to be entered. Entering a classifier is
done by clicking the ’add classifier’-button above the Data Grid, typing a new name, and hitting
’enter’. Thanks to the underlying folk-ontology, Assist knows the meaning of a growing list
of classifiers that have been entered by earlier users; classifiers from these list should preferably
be chosen in order to make an ontology that is compatible with the folk-ontology. Therefore,
inputting a classifier name is supported by completion-as-you-type. Instead of typing the full
name of a classifier, a classifier from the shown list can be selected. The same mechanism applies
to items.
Right next to the Data Grid there is a series of buttons, each labeled with the name of one of
Assist’s tools. These buttons are only visible when no tool is active: when a form appears and
its associated tools starts, all buttons are made invisible. This means that at any time, at most
one tool can be active.
Every tool is implemented as a form, containing the name of the tool in the upper left corner, and
an ’X’ in the upper right corner. Clicking on the ’X’ closes the form and quits the corresponding
tool.
Most forms can be dragged to a convenient place in the application by left-clicking somewhere
into the form and moving the mouse with the left button down.
In a form, we find various controls such as buttons, sliders and check boxes. In most tools, these
are enabled and disabled in a context-sensitive way. This means, that in any given state, only
those controls that have a meaningful usage are clickable, and have effect. Controls that have no
effect are invisible.
The desktop version of Assist allows a current project to be saved and reopened for further
working. To this end the contents of a project are written into a .amf file.
Although Assist is designed and implemented to be as robust as possible, there is always the
possibility of a runtime crash (perhaps due to external circumstances, such as power failure). To
protect the user against data loss in such events, the desktop version of ASSIST frequently stores
the current project in the form of a backup file, with extension .bu amf to the current directory.
With the recover function in the File IO manager, this back-up file can be loaded for further
processing.
24
CHAPTER 3. CREATIVITY AND SELECTION
The creation of automatic backup files assumes that the current project has been given a name.
Therefore it is recommended, immediately after starting a new project, to save this project, thereby
giving it a name. If an unsaved project exists, Assist will frequently prompt the user to save it
for the first time.
Although all processing takes place via the various forms of Assist, the .amf-files and .bu amffiles can be opened by any regular text editor. Modification of these files outside Assist may
jeopardize their integrity, though, which can cause Assist to fail. Under normal circumstances,
therefore, the .amf-files and .bu amf-files should never be edited, and loading any modified .amf-file
or .bu amf-file should not be attempted.
In the sequel, we describe all the separate ASSIST tools.
3.3
3.3.1
File IO
Introduction
There is a number of different reasons to save projects. One may want to share one’s work with
other people; one may want to preserve the work put into a project for later continuation, or
one may want to export the information to (future) other applications. In most applications, all
functions are combined in the notion of files. The web-based version of Assist, however, cannot
use files in the standard way: as a security policy, Adobe forbids online Flash applications to have
access to the client-side file system. Therefore the permanent representation of Assist projects is
implemented in a number of different ways, to work-around this lack of files.
objects stored in a remote database: registered users1 have a fixed amount of database storage space allowed on a remote server. Saving Assist projects as records in this database has
the advantage that these projects can be accessed from anywhere on the globe. There are
two disadvantages, however: the amount of space per registered user is limited (currently to
10 projects per user); furthermore, since a project is converted into the database by means of
an URL request, limitations apply in relation to the local URL facilities - which depend on
server settings and the local browser used. As a consequence, the size of an Assist project
may be too much for successful storage to the database.
objects stored in shared memory: if a user has admin-permissions on his/her local machine
(which is usually the case for privately-owned machines), Flash applications can write persistent data to hard disk in so-called ’Flash-cookies’. These are similar to common Web-cookies,
with the exception that they do not expire. These Flash-cookies can be thought to emulate a
(small) local filesystem, that is fully separated from the main file system for security reasons.
Assist projects can be saved in such a Flash-cookie. This means that this project is accessible to any user of the computer that has admin-permissions. The size of a Flash-cookie is
limited, but it will expand upon request (in that case, a dialogue pops up). Using this local
storage strategy is advised for Assist projects that need not to be shared among machines;
to a single project, no size limitations (normally) apply. The disadvantage of this approach
is, that Flash cookies are difficult to communicate to other machines (unlike standard Webcookies, their location in the computer’s file system is not always predictable and somewhat
obscure).
XML-objects, imported and exported by means of the copy-and-paste technique: to store
Assist projects in such a form that they can be easily administrated, shared with other
users, and be exported to (and imported from) other applications, there is an XML format
1 registration, authentication and login are only features of the web-based version of Assist; details of the
registration and authentication process are not covered in depth here.
3.3. FILE IO
25
for Assist projects. Projects in the XML format, however, can only be exported from and
imported into Assist by means of the standard copy-and-paste functionality. This means
that an XML-version of an Assist project should be saved in a standard text file and opened
in a standard ASCII-editor such as WinEdt, Notepad++ or similar. Then the entire text
should be selected and pasted (ctrl-V) from the copy-and-paste buffer into Assist. Similarly,
exporting an Assist project causes it to end up in the computer’s copy-and-paste buffer,
where it can be pasted into a text editor and handled further like any standard text file.
Remote files: apart from the remote database, there is also a (limited) amount of remote disk
space reserved for saving Assist projects in the form of files. This is similar to the option
where projects are stored as objects in a database, but the limitation of URL requests lengths
does not apply. Currently, this is the preferred option to save and retrieve Assist projects;
it is set as the default option in the preference manager.
Which of the three modes is used to perform the input-output functionality of Assist can be set
in the Preference tool.
In the sequel we make no difference between the three modes for input-output; we pretend that
Assist projects are simply stored as if they were files on a local file system.
A new project starts by activating the New-function. This clears the Data Grid and the internal
data structures. In order to prevent valuable information from a previous run to get lost, the user
is asked to confirm clearing the current Assist-model. Notice: this form is only available in the
desktop-version of Assist.
3.3.2
Manual
The form is given in figure 3.2. This form pops up if the user clicks the File IO-button right from
the Data Grid.
The following controls are available.
new
In order to start a new project, the new button should be clicked. If an unsaved project exists,
the user is asked if this should be saved first.
open
This opens a standard MS-Windows file browser which allows to navigate the file system and to
select an existing ’.amf’-file to be read in. In case an unsaved project exists, the user is asked first
if this project should be saved.
save
In order to save the current project under its current name, the save button should be clicked.
This replaces the existing file on disk with the current name by the current contents of the project.
save as
In order to save the current project under a new name, the save as button should be clicked. This
pops up a standard MS-Windows file browser which allows the user to navigate the file system
and to select an existing filename or to type in a new name. If an existing file is given, Assist
asks for confirmation first. Notice that the typed-in file name should have no extension; Assist
automatically extends the given filename with the extension ’.amf’.
recover
In case Assist terminated in case of a crash, the most recent version of the current project may
not have been stored. In that case, a back-up version of the previous version of the project may be
26
CHAPTER 3. CREATIVITY AND SELECTION
Figure 3.2: The File IO form. The current project, which contains 1 item, 1 classifier and no
rank attributes has not yet been saved and therefore has no name yet. (This is the version of the
web-based edition of Assist; the ’Delete’ button is absent in the stand-alone edition.
loaded. Clicking the recover file button allows the user to load files with the extension .bu amf,
i.e., Assist backup files.
delete
Deleting obsolete projects takes place in the stand-alone version by deleting the files in the file
system of the local computer. For the web-based version, this is not possible; there obsolete
projects have to be deleted in the (remote) database. The delete button puts up a list of current
projects; the project-to-be-deleted can be selected in this list.
Notice: the four different save-and-retrieve modes, supported by Assist all use the same dialogue,
and therefore the same form layout, for new, open, save, save as, recover and delete, with the
exception of the XML mode. For exporting and importing projects as XML-files, not all operations
are meaningful.
current status
This text field gives the information of the currently opened project: its title (=the name of the
file on disk, including the full path, if there is a current file), the number of items, the number of
classifiers, the number of attributes. The current status field cannot be edited.
3.4
3.4.1
Sort and Cluster
Introduction
We study the following design problem: a manufacturer for hardware tools produces a large
variety of equipment: hammers, saws, drills, pliers, . . . To increase the market, they consider to
expand their product range. A traditional way to do so is to set up a brainstorm - however, the
results from a brainstorm are just a haphazard collection of samples of an infinitely large space
of possibilities. It would be much more efficient if we could provide this space with a map, or a
system of coordinates that would allow systematic navigation. That would help us to find empty
regions, i.e., options for innovation or expansion.
Such a coordinate system, or ontology, can be found if we endow the space of possibilities with
orthogonal, operational classifiers,
where for each classifier the set of values can be finitely
enumerated.
3.4. SORT AND CLUSTER
27
We explain each of the terms classifier, orthogonal, and operational in more detail.
A classifier is a function that maps an item to the value that is assumed by the classifier when
applied to the item. For instance, the classifier ’color’ maps a cucumber to the value ’green’, and
a banana to the value ’yellow’.
Two classifiers are said to be orthogonal or independent if all combinations of their values can
occur; ideally, if they all have more or less equal probability to occur. In other words, if the value
of one classifier does not predict the value of the other classifier. For instance, ’contains sugar’,
with values ’much’, ’little’, and ’no’ is a strong predictor for the classifier ’taste’, with values
’sweet’, ’sour’, ’bitter’ and ’salt’, since food that contains much sugar tastes sweet. Therefore,
’contains sugar’ is not very orthogonal to ’taste’. On the other hand, sweet-tasting objects appear
in all sorts of colors. So ’taste’ is presumably quite orthogonal to ’color’.
A classifier is operational if it applies to all items in the considered domain. For instance, if
’software’ would be one of the tools in the list, the classifier ’weight’ would not be operational,
since software cannot be mapped to an amount of kilograms (it can be mapped to an amount
of kilobytes, though . . .). If finding the value of a classifier when applying it to an item of the
list requires a substantial amount of discussion, this often means that the classifier is not very
operational.
Finally, a classifier is said to have a finitely enumerated set of values if we can produce a list of all
outcomes of that classifier. A trivial case is a Boolean classifier that can only assume the values
’true’ or ’false’ (such as the classifier ’is legal’, ’is a banana’, ’is driven by a motor’, ...). A nice
example of a 3-valued classifier with values that can be enumerated is ’aggregation phase’, with
values ’gaseous’, ’liquid’, or ’solid’. But classifiers such as ’shape’ or ’is used for’ are not finitely
enumerated.
Finding classifiers is not trivial, and finding classifiers that are reasonably orthogonal is sometimes
quite tough. Still, the endeavor is worth the effort. Indeed, if a good set of classifiers can be found
for a given domain (in our example, the domain of hardware tools), this set of classifiers can be
said to represent (a substantial part of) the world knowledge or domain knowledge or ontology
underlying the list of items. Such a set of classifiers, among other things, can be used to see if
new combinations of values might yield a novel product. Perhaps even more importantly, the
construction of a set of (good) classifiers is a very instructive way to gain understanding of the
structure of the set of items for which these classifiers apply.
A ’good’ set of classifiers for any given set of items should be sufficient to distinguish all items.
Indeed, if a present set of classifiers is insufficient to distinguish any pair of items, whereas we
know that these two items are different for some reason, we can argue that there is still some
chunk of our world knowledge that is not yet captured in he set of classifiers, and it is challenging
to try to find the associated missing classifier(s).
At the same time, a ’good’ set of classifiers should be as small as possible. Indeed, for every next
classifier the requirement of (near) orthogonality with all earlier classifiers is increasingly more
challenging, and the fewer classifiers are needed, the least redundancy has to be coped with. (Two
classifiers are said to be redundant if they are not very orthogonal).
Finding a good set of classifiers is partially a matter of creativity, and the ability to think in abstract terms about an application domain. It is, however, also an administrative burden: verifying
the orthogonality of two (meaningful) classifiers is a matter of verification, bookkeeping and calculation. The latter task, therefore, can and should be automated, thus permitting the (human)
user to focus on the first task.
The Sort and Cluster-tool forms the component in the Assist-toolkit that performs the administrative duties of building orthogonal sets of classifiers.
A newly created classifier has no values. Every time, however, one or more values are entered into
a cell in the newly created column, it is understood that this / these value(s) is one of the possible
28
CHAPTER 3. CREATIVITY AND SELECTION
values for the new classifier. All these values are collected and put between parenthese behind the
name of the classifier in the column header.
For entering values into classifiers, Assist makes use of the folk-ontology whenever possible. That
means that a list of possible values for a classifier is shown when a cell is clicked in the column
of some classifier. If the number of values for this classifier is large (for instance, with generic
classifiers such as ’purpose’ or ’disadvantage’), the list operates in the same completion-as-youtype mode as explained before. Otherwise, values can be simply selected from the list; when
multiple values are needed for a single item-classifier, these need to be separated by comma’s.
Assist can deal with arbitrary numbers of classifier values per classifier. In practice, large sets
of values are rare, however; they typically indicate a classifier that is not very well defined. In
particular for beginning users, it may be a good idea to try and find two-values classifiers (classifiers
only allowing the values ’yes’ and ’no’, for instance).
The classifiers together with the (sets of) classifier values for all items form the ontology of the
collection of possible ideas . Classifier values are assigned to item-classifier combinations by simply
typing the classifier values directly into the cell of the Data Grid. The contents of a cell can be
one of the following:
• if no values are present, this means that the selected classifier has no meaning for the selected
item (for instance: the classifier ’temperature’ with values ’hot’ and ’cold’ is applied to the
item ’piano concerto’); or: the set of values of the classifier is not complete (for instance:
suppose a classifier ’aggregation state’ has values ’solid’ and ’liquid’, and it is applied to
’vapor’ (which is a gas state), then no value must be given);
• if more than one value is given (in a comma separated list), the interpretation is that apparently the item refers to a class of things; several of these things classify as various different
values for the classifier;
• if exactly one value is given, it is possible that the item refers to a class of things, where all
items of the class classify as the same value for the actual classifier; it is also possible that
the item refers to a single, unique thing, and obviously the value for the actual classifier
represents the value of that classifier for the single unique thing.
The ontology is complete if, for every item in the item-list, the values for each of the classifiers are
given in one of the above ways. Then, the world knowledge about the items is formally represented
in Assist. Once this information has been represented in Assist, we can use this information in
various ways:
• we can verify if the collection of classifiers is sufficient to distinguish all items;
• we can check if the various classifiers are sufficiently orthogonal (independent) to form a
meaningful and concise representation of the underlying world knowledge;
• we can automatically generate new combinations of classifier values that might inspire to
new items; this is done using the substitution or invention buttons on the Inspire-tool;
• we can express the notions of extensional is-a relationships (see 3.7.3) between items. For
instance: an item ’car’ where classifier ’number of wheels’ takes the value ’4’ is a special case
of an item ’vehicle’ where the values are 2, 3, 4, or ’more than 4’. By inspecting the (sets
of) value(s) for all classifiers for two items, A and B, we can conclude whether A is a special
instance of B, whether B is a special instance of A, or whether none of the two is the case.
(We give a more elaborate discussion of is-a relationships when we discuss hierarchies in the
section explaining the Relations-tool, 3.7);
3.4. SORT AND CLUSTER
29
Figure 3.3: The Sort and Cluster-tool. The ’sort’ button has been clicked, and the items in the
Data Grid have been sorted in lexicographical order with respect to their classifier values. Items
have been colored in accordance to whether they are distinguishable with their predecessors and
successors. Clusters of non-distinguished items are therefore visible as single-colored chunks in the
table. Notice, for example, that on the basis of the current set of classifiers and classifier values,
’bread knife’ and ’hand saw’ cannot be distinguished.
30
CHAPTER 3. CREATIVITY AND SELECTION
• we can automatically cluster the items in the list. One form of clustering is provided by
lexicographic sorting: we put the classifiers in a desired order, and next sort the items with
respect to their value for the first classifier; if several have the same value for this classifier,
these are sorted with respect to the second classifier, and so on - until we can assess if all
items are distinguishable with the present set of classifiers or not;
• we can access the list of items, and form meaningful selections, on characteristics that are
expressible as (constraints) on values for classifiers. This is supported by means of the
Queries form (see 3.10).
3.4.2
Manual
The Sort and Cluster-form looks as in figure 3.3.
Depending on the settings in the Preferences form, various additional circumstances can apply to
setting values for classifiers, related to hierarchies. These are explained in the section on Relations
(see 3.7.3).
Sort The Sort button performs two actions. First, it performs a lexicographical sort of all
items with respect to the classifiers in their present order. Next, it applies a coloring scheme to
the concepts. Every row is colored on the basis of the values of the classifiers in that row. If two
subsequent rows are identical with respect to the values of the active classifiers, they receive the
same color, otherwise they are colored differently. In other words: two subsequent rows with the
same colors indicate two items that are indistinguishable as far as the present active classifiers
are concerned. From the resulting coloring, it is immediately clear if groups or clusters of items
exist that are indistinguishable with respect to their classifier values: they appear in single-colored
bands, whereas items that are distinguishable from all other items have a color that differs from
their successor and predecessor. Sorting can be used for two purposes:
• to verify if a present choice of classifiers is sufficient to represent all distinctions in the domain
of items;
• in case there are clusters of indistinguishable items, it shows which these clusters are. So,
when inventing a next classifier, the user can focus on the items that should be distinguished
by means of this new classifier. It is often a good idea to focus on the largest cluster when
seeking a new classifier: which classifier could help splitting the largest cluster in smaller
clusters?
Every time when classifiers have been added or removed, sorting could be done to update the
information about whether or not the current set of classifiers is sufficient to distinguish all items.
Sorting obviously will affect the order of the items; this ordering is propagated consistently to all
other tools in Assist that deal with (lists of) items.
Correlate classifiers
Every active classifier can be assessed in terms of its ability to single out concepts. For instance,
a Boolean-valued classifier that scores 9 out of 10 cases ’true’ and only once ’false’ gives much less
information than a classifier that gives a 5-5 score. The former boolean attribute as not very well
balanced ; the second one is.
Also for classifiers with more than 2 values, Assist can compute how well the classifier balances.
Ideally, every value occurs exactly the same amount of times. In that case, the imbalance is said
to be 0. This is the best possible situation with respect to balancing. The other extreme is the
hypothetical case where a classifier only produces a single value (in which case it doesn’t contain
any information at all). In that case the imbalance is said to be 1.
31
3.4. SORT AND CLUSTER
Figure 3.4: Example of the result of clicking Sort and Correlate classifiers. The correlation
matrix shows that classifiers ’movement’ and ’impulse’ are poorly distinguished. They are rather
dependent: the color of the cells is orange. Further, the classifiers ’dividing’ and ’teeth’ balance
well, which is indicated by the green color of the cell. Correlation allows to distinguish ’good’
classifiers (low values in the matrix) from ’bad ones’; an indication for the ’goodness’ (or ’badness’)
of each individual classifier is given by adding the values in one column and color-coding the result.
This is seen in the lower most row in the above table.
The better an attribute balances, the more information it gives. Indeed, suppose we have n items.
The worst possible balance is obtained if one item belongs to one class, and n − 1 items belong
to the alternative class. This can be realized in precisely n different ways, because each of the n
items can be the one who is singled out. The best possible balance, assuming n even, is obtained
if half of the items belong to one class, and the other half to the alternative class.
The
number
n
of different ways a class of n individuals can be split into two equal halves is
= nn!
n ,
2!2!
n/2
for even n. For instance, for n = 4, the amount of possibilities for balanced partitioning is 6;
for (fully) unbalanced partitioning this amount is only 4. Obviously, for sufficiently large n the
latter gives immensely more possibilities, so a single boolean attribute contains immensely more
information when it gives a balanced partition.
For any combination of two classifiers, say V and W , we can express how independent they are.
To this aim, we average the imbalance for classifier V for each of the values of W , weighted with
the number of occurrences of these values. For instance, consider the following case:
value V1
value V2
value V3
value W1
20
3
4
value W2
3
3
4
This table represents the classifier values for 20+3+3+3+4+4=37 concepts. The combination
where classifier V takes the value V1 and classifier W takes the value W1 occurs 20 times, et
32
CHAPTER 3. CREATIVITY AND SELECTION
cetera. For value W2 of classifier W , we see that V is reasonably balanced. In order to quantify its
imbalance, we introduce a function of two vectors, called the normalized dot product, which can be
interpreted as the cosine of the angle of the two vectors, say a and b. This function is abbreviated
as dot(a, b). In the case of 1-dimensional vectors (that is, the vectors are just numbers, say x and
y), we define it as
dot(x, y) = 2
xy
,
x2 + y 2
which can be seen to vary between -1 and + 1. So it nicely corresponds with our intuition of the
cosine of an angle. With this definition, the imbalance of the list of scores (3,3,4) is defined as
1 − cos φ where
φ=
arccos(dot(3, 3)) + arccos(dot(3, 4)) + arccos(dot(4, 3))
0 + 0.28 + 0.28
=
= 0.19,
3
3
and the imbalance is 1 − cos 0.19 = 0.017. For value W1 , however, the numbers of occurrence of
values V1 , V2 , V3 of 20, 3, 4, respectively, cause a much larger imbalance: φ = 1.013, so 1 − cos φ =
0.47. The number of occurrences of W1 is 20+3+4=27 and the number of occurrences of W2 is
3+3+4=10, so the weighted average of the imbalances is (27 ∗ 0.47 + 10 ∗ 0.017)/(27 + 10) = 0.34.
Since a measure for independency should be commutative, we also compute the weighted average
for the transpose case:
value W1
value W2
value V1
20
3
value V2
3
3
value V3
4
4
With a similar procedure we find the value of 0.48 here. The final value for the independency of
V and W is therefore (0.34+0.48)/2= 0.41. If this value is (close to) 0, the classifiers are (close
to) independent.
Clicking the button Correlate classifiers computes the imbalance for every classifier and the
independency for every pair of classifiers, and compiles this information in a (symmetric) matrix,
as follows (assume classifiers V , W , and X)
V
W
X
V
imbalance
of V
independency
between V and W
independency
between V and X
W
independency
between V and W
imbalance
of W
independency
between X and W
X
independency
between V and X
independency
between W and X
imbalance
of X
For an ideal case, where all classifiers are perfectly balanced and all pairs of classifiers are perfectly
independent, all entries in he matrix are 0. In the worst case, entries are 1. For easier reference,
cells are color encoded: green means very good (very small values); yellow reasonably good; orange
not so good and red means very large (very bad) values. Using the values in this matrix, we can
define a quality for a classifier, being the sum of the values in the column associated to that
classifier. For instance, the quality of V is the sum of the imbalance of V plus the independency
between V and W plus the independency between V and X. After having computed all imbalances
and all independencies. See figure 3.4 for an example of the correlations matrix.
Notice: the above explanation assumes that all classifiers have a single value when applied to an
item. The case where items can have multi-valued classifiers is treated completely analogously.
3.5. INTERACTIVE WEIGHTS
33
Correlate attributes
Apart from the classifiers, items are also distinguished by means of ranking attributes. Although
we haven’t yet explained the mechanisms related to ranking, we can mention here that a fully analogous procedure can be followed to assess the ’quality’ (in terms of balancing and distinguishing)
of ranking attributes. Clicking the button Correlate attributes performs this calculation; the
results are also depicted in the form of a matrix where the same scaling and coloring conventions
apply.
3.5
Interactive Weights
3.5.1
Introduction
In 3.7.4, we give a more detailed account of the methodology of ranking, that is: the aggregation of
ranking attribute values in order to come up with global recommendations of which item is ’best’.
For now we give an introduction that is more down-to-earth, but that gives a quick-and-dirty
introduction of some of the essentials.
Ranking is done with the purpose to find ’the best’ suited item from the repository, or to distinguish ’good’ items from ’bad’ items. What constitutes a ’good’ item, however, depends on the
relative importance of the various ranking attributes (the weight of the ranking attributes). It is
possible that we have a precise intuition what these weights should be; in most cases, however,
our intuition with respect to ranking attribute weights is not that sharp, and we would like to
explore the consequences of shifting the relative weights of some ranking attributes. This asks
for an interactive, direct-manipulation based interaction rather than a more rigid, quantitative
or algorithmic approach. Such a direct-manipulation based approach is offered in the Interactive
Weights form.
3.5.2
Manual
The controls of the Interactive Weights form consist of a number of sliders; one slider for every
ranking attribute. The range of every slider is the interval between 0 and 100; 0 means completely
unimportant; 100 means maximally important. Any distribution of values is allowed that sums up
to 100: shifting one slider up will automatically move all other sliders down, and vice versa. For
every distribution of ranking weights, as set by the sliders, the total scores are computed according
to formula
Sj =
X
Wi Sij
i
, where Wi is the weight for ranking attribute i; Sij is the attribute score of item j for ranking attribute i, and Sj is the total score for item j. We will explain later how Si and Sij are represented
in Assist; for now we only have to know that Wi are the numbers as set by the sliders. After
calculating the total scores, rows in the Data Grid are colored accordingly. That means: ’better’
items receive a color that is ’greener’ and ’worse’ items receive a color that is ’redder’. The calculation of resulting item scores from the individual ranking attribute scores is called aggregation.
Optionally (depending on settings in Preferences, see 3.14), after aggregation the rows are sorted
from poor (top) to good (bottom) items - according to the current setting of the ranking attribute
weights Wi . Since updating the Sj , sorting and re-rendering the table takes some time, the image
is refreshed only after each update of one of the sliders; the sliders can be moved continuously,
but not every change will result in a re-rendered image. Within one second, however, the most
recent status will be be made visible. Figure 3.5 gives a screen shot of the Interactive Weights
34
CHAPTER 3. CREATIVITY AND SELECTION
Figure 3.5: With the Interactive Weights form, the user can interactively control the weights of
various ranking attributes by dragging sliders)
tool and the colored column headers of the associated ranking attributes in the Data Grid in the
background.
The following controls are available in the Interactive Weights tool.
sliders
The only controls of the Interactive Weights form are the sliders to adjust the ranking attribute
weights; the number of sliders is equal to the current number of ranking attributes; every slider is
labeled with the name of the corresponding ranking attribute.
3.6
3.6.1
Inspire
Introduction
The classifiers and classifier values form Assist’s ontology. On the basis of this ontology, Assist
can do suggestions for new ideas. Four different approaches have been implemented to generate
new ideas:
Substitution : take an item, and replace a classifier value for some classifier by another (random)
value;
Combination : invite the user to think about the combination of two random items, where
Assist will make sure that one of the two items is not a special case of the other; for
instance, the suggestion ’combine a hammer with a tool’ will not be made, since a hammer
is a special kind of tool;
Invention : an item which has multiple values for one or more of its classifiers is called an abstract
item. Abstract items can be instantiated by less abstract or concrete items. As follows: an
abstract item A is instantiated by an item B (for instance: a ’tool’ is instantiated by a
3.6. INSPIRE
35
’hammer’) if the values for any classifier in B are a subset of the values for that classifier in
A. B either can be a concrete item, or an item that is less abstract than A. The interpretation
of ’abstract’ in Assist is, that an abstract item represents a heterogenous class of items.
Item A is less abstract than item B is the class represented by A is included in the class
represented by B. Whether or not an item is fully concrete - that is, its associated class
contains exactly one distinct item, is impossible to assess. Indeed, for an item with unique
values for all classifiers, it is always possible that in the future a further classifier will be
added that has multiple values - making this item abstract. So the qualification ’concrete’
is always a provisional qualification, to be overruled if we know more about the item. An
invention is the instantiation of an abstract item into a less abstract item that did not exist
before in the ontology. Notice that this concrete item is only defined implicitly in terms of its
classifiers. Whether the suggested series of classifier values for the classifiers makes sense is a
matter of interpretation; this, of course, needs to be done by the user. It is very well possible
that an ’invention’ is done by Assist this is physically infeasible, or completely implausible.
But even then it might trigger human creativity to think of something innovative;
Improvement : Assist has information about the adequateness of the represented items. An
improvement of an item is a version of that item that performs better in at least one ranking
attribute - although it might perform worse in terms of other ranking attributes. (Notice:
if an item A performs better in all ranking attributes than B, we say that A dominates
B. The notion of domination will be important when we introduce the notion of Paretooptimality. The improvement-suggestion works in such a way that the user is presented two
random items where one is significantly below average in some ranking attribute and the
other is significantly better; the user is invited to think of a version of the first item that
takes advantage of some aspect of the second item. Again, whether or not this is practically
feasible is of course impossible to assess for Assist.
3.6.2
Auto-ranking
Assist implements a heuristic method to assign values to ranking attributes of an item on the
basis of the classifier values. This is based on the notion of metric. A metric is a way to assign a
distance to pairs of items. ’Distance’ is a numerical quantity, attributed to a pair of items. The
intuition of distance is, that is should tell if items are far apart. Indeed, items who have the same
set of values for all classifiers cannot be distinguished; they are identical as far as the ontology is
concerned (even though they might have different names: the Morning Star is the same object as
the Evening Star, because they have the same bundle of attributes, and every attribute takes the
same values). We can use the number of classifiers in which two items differ as a simple (albeit
naive) measure for their distance. This distance is called the Hamming distance. 2 . The Hamming
distance was originally defined for binary strings of equal length, as the number of bits in which
the two strings are different. So ’110011’ and ’111111’ have Hamming distance 2. In Assist we use
a distance that is derived from the classifiers: classifiers in which two items are different contribute
to the distance of these items.
Once we know the distance (in the ontology) between all pairs of items, we can use this distance
to predict the result of ranking. Indeed, two items that have distance 0 should be identical in
ranking. The smaller the distance between two items, the more similar their ranking values should
be. This leads to the following idea: suppose we have a collection of items, Ti , i=1,2,3,..., having
item-attribute scores Sij for a particular attribute j . Next there is a further item, X, with
(ontological) distances Di to each of the items Ti . Then it is a reasonable prediction to say that
2 Assist
uses a slightly different for of the Hamming distance: when two items are different in classifier C, the
contribution to their distance is not just 1, but 1 over the number of values that C can take. The intuition here is,
that a classifier has less importance to distinguish classifiers when it has more values.
36
CHAPTER 3. CREATIVITY AND SELECTION
the ranking attribute value for item X is given by
Sij
Di
1
i Di
P
SX;j = Pi
.
This is the so-called Shepard interpolation formula 3 ; other, more advanced formulas could be used
as well.
One interpretation of this auto-ranking algorithm is: assuming that the knowledge as represented
by the classifiers is everything we know about the items, then the ranking value as computed by
the auto-rank feature is the best estimate for for the value for any of its ranking attributes.
Auto ranking is used in the process of doing suggestions in two ways.
First, we can have the suggestions be selected from a pool of suggestions: in that case, Assist
first calculates some 30 random possible suggestions, and for all these suggestions it computes
the auto-ranking algorithm. The one with the best total ranking score is presented to the user.
This feature is enabled by checking the check box ’use weights’ in the lower right corner of the
inspire-frame.
Second, once we have decided that we want to add an item in the case of a Substitution or an
Invention, Assist has full knowledge of all the classifier values of the new item. In that case it
calculates a first guess for the ranking attribute values of this new items using auto-ranking; the
resulting values are substituted in the Data Grid when the new item is entered.
3.6.3
Manual
The inspire form is shown in figure 3.6.
The form consists of roughly three parts. The top part consists of the four buttons that can
produce the four types of suggestions. The actual suggestion is written in the middle part of the
form. The lower most part allows the user to put a new item, in the case the suggestion has
inspired him/her to do so.
In case the user decides to add a new item as a result of a suggestion, and the suggestion was
either a combination or an invention, Assist has full knowledge of all classifier values for the new
item; the item will be added to the Data Grid with all classifiers fully filled in. In the other two
cases, the classifier cells will be left open: Assist has no way to find out what the combination or
the improvement has yielded.
In order to add an item, its name must be typed in the appearing text box. The same regulations
to valid item names appear as when entering an item in the Data Grid by means of the ’Add Row’
button.
For all four the suggestion methods, it is possible that Assists can not come up with a valid
suggestion. There can be various reasons for this to happen; for instance, for an invention it
is necessary that the actual row is an abstract item. In case Assist fails in coming up with a
suggestion, it gives a comprehensible warning with the cause of failure.
The following buttons can be used for the various forms of inspiration.
Substitution
Ask for a suggestion on the basis of substitution.
Combination
3 In this form, the interpolation is singular for D is 0. In that case, however, S
i
X;j = Sij - which corresponds to
our intuition.
3.6. INSPIRE
37
Figure 3.6: The Inspire form. In this case, the user had clicked the ’invention’ button. The
produced suggestion is an instantiation of an abstract item where Assist suggests values for all
classifiers that are not unique.
Ask for a suggestion on the basis of combination.
Invention
Ask for a suggestion on the basis of invention.
Invention
Ask for a suggestion on the basis of invention.
Use weights
When this check box is selected, the request for a substitution or invention is based on an internal
pre-selection of suggestions, using the auto-ranking algorithm.
Wild substitute
When doing suggestions for a substitution, the values for classifiers are normally taken from the
range of values that occur in the current Assist ontology. However, we can choose to take values
from a wider range. By clicking the check box ’wild substitute’, all possible values for the
occurring classifiers as they occur in the folk ontology are considered. This gives a much more
’wilder’ range of possibilities - hence the title of the check box.
When this check box is selected, the request for a substitution or invention is based on an internal
pre-selection of suggestions, using the auto-ranking algorithm.
Add new item
When a suggestion is given, the button ’Add new item’ becomes visible. If the user thinks of a
new item (as a result of the suggestion, or spontaneously ...) a new item can be entered without
leaving the inspire tool by clicking on this button. Next, the name of the new item can be entered,
and the new item appears in the Data Grid.
38
3.7
3.7.1
CHAPTER 3. CREATIVITY AND SELECTION
Relations
Relations: a fundamental notion in Assist
At first sight, it may seem that Assist is a simple spreadsheet or database, organized in the form
of one single table with items as rows and classifiers or ranking attributes as columns. Such a
table structure is useful to administrate a list of ideas (or any list of things that may need to be
distinguished and/or ranked in some sense), but it does little more than book keeping. Assist’s
main functionality, however, is hidden in the internal data structures of Assist. Both of its
distinguishing features (viz. maintaining the ontology that allows doing inventions and exploring
variations, and ranking these according to various criteria) rely on a single formal notion.
This is the notion of partial ordering.
3.7.2
Partial ordering, transitivity and a-cyclic graphs
One way to view a partial ordering, is to interpret it as a collection of arrows over a set of points.
Every point represents an item; an arrow can have two distinct interpretations:
inclusion or the ’is-a’-relation, for instance an arrow can exist pointing from ’hammer’ to ’tool’,
or from ’apple’ to’fruit’;
comparison or the ’is inferior to ... with respect to a given ranking attribute’-relation, for instance an arrow can exist pointing from ’motorcycle’ to ’bicycle’ where the ranking attribute
is ’CO2 emission’.
A collection of points and arrows is called a directed graph. Even if there are no arrows (yet), the
collection of points forms a graph; also when there are no points at all we can speak of an (empty)
graph.
In the case of partial ordering, we adopt two further conventions that are compatible with the
inclusion and the comparison-interpretations.
transitivity : if there is an arrow from A to B and a second arrow from B to C, we can deduce
that an arrow is possible between A and C. The latter arrow is redundant; this means that it
gives no independent new information to the existing set of arrows. Redundant arrows can be
removed. An example of redundancy in the inclusion-interpretation is: a pneumatic hammer
is a hammer; a hammer is a tool; hence a pneumatic hammer is a tool. The last proposition
follows by transitivity; it is redundant. (Notice that none of the other two propositions is
redundant!). An example of redundancy in the comparison-interpretation is: a motorcycle
is inferior to a bicycle; an aircraft is inferior to a motorcycle; hence an aircraft is inferior
to a bicycle (all with respect to the same ranking attribute: CO2 emission). Again the
last proposition is redundant. Since they carry no independent information, all redundant
relations are automatically removed in Assist;
absence of cycles : both interpretations forbid that a sequence of arrows exist where the last
arrow points to the item where the first arrow starts. There is a subtlety here: if the
inclusion-interpretation is admitted to hold between identical items (which can be justified,
indeed: a hammer is a hammer), a cycle is not problematic. Similar, if ’is inferior to’ is
interpreted in a weak sense as ’is not better than’, identical values for a ranking attribute
could give rise to a cycle. To avoid numerous dubious cases, however, we adopt a strict
interpretation and forbid any cycles in Assist.
Since partial orders underly two fundamental functions of Assist, there is a single generic methodology to manage partial orderings. Despite that the partial orderings can mean two very different
3.7. RELATIONS
39
Figure 3.7: The Relations form showing the relationships as a partial ordering for the ranking
attribute ’price’. The user has clicked on the tail (=left clickable spot) of the item-icon ’bread
knife’. The arrows connecting this item to the heads of the items ’hand saw’ and ’hammer’ are
colored red to better show the connectivity. Apparently, ’bread knife’ is better than ’hand saw’
and better than ’hammer’ with respect to ’price’. Further, the heads of a number of item-icons
are colored green (for instance, ’sand paper’, ’screwdriver’, ’axe’ and others), indicated that an
arrow connecting the tail of ’bread knife’ to any of these heads is permitted.
things with respect to items, the handling of points and arrows is fully identical. This is handled in
the Relations tool. In figure 3.7 a screenshot is depicted of this tool, where the current relationship
a comparison-relation for the ranking attribute ’price’.
When clicking on the Relations button right next to the Data Grid, the Relations-form appears.
Which relation is shown depends on the currently actual column. If this column is a ranking
attribute, the ranking attribute is taken to be the relation for which the partial ordering is shown:
in that case, it is a comparison-relationship. In all other cases, it is the inclusion-relationship.
Whichever of the two cases applies, the graph is shown as a collection of item-icons. Every itemicon represents one item. The item-icon is a small dragable rectangle. The name of the item is
written underneath the rectangle. An item icon contains two clickable spots, one to the left and
one to the right. These two are the places to connect arrows. The right clickable spot is called
the head of the item icon, the left clickable spot is called the tail. Arrows always run from left to
right, from the head of the leftmost item-icon to the tail of the rightmost item-icon.
In the case of an arrow, the left item is called the inferior , and the arrow’s tail is connected to the
head of the inferior item. The right item is called the superior , and the arrow’s head is connected
to the tail of the superior item.
40
CHAPTER 3. CREATIVITY AND SELECTION
In the case of an inclusion-relationship, the superior is the abstracter of the two items. So, in the
case of an arrow pointing from ’hammer’ to ’tool’, ’hammer’ is the inferior item and ’tool’ is the
superior item.
In the case of a comparison-relationship, the superior is the superior of the two items. So, in case
of an arrow pointing from ’motorcycle’ to ’bicycle’, ’motorcycle’ is the inferior item and ’bicycle’
is the superior item, when the comparison is ’is inferior with respect to CO2 emission’.
Item icons can be freely moved (dragged) over the Relations-form, but the left-right ordering of
items that are connected by arrows is controlled by Assist. In particular in the case of many
items it is recommendable to attempt an arrangement of item-icons where few arrows cross. (In
general, however, this is not always possible.)
To facilitate building, altering and inspecting partial orderings, Assist has a number of provisions
that apply irrespective of whether the relations are inclusions or comparisons.
As follows:
• When a head or tail of an item-icon is clicked, all connected arrows are colored red. This
helps understanding the connectivity of the graph in case of many, possibly crossing arrows;
• When a head or tail of an item-icon is clicked, Assist does an analysis of all possible new
arrows that could be formed starting in this item. ’Possible’ here means the following:
– the relation doesn’t exist yet
– adding the relation will not cause any cycles;
– in case of an inclusion relation: adding the relation will not conflict with any current
classifier values. For instance, item A with values x, y, z for classifier C can never be
the inferior item for an item B with values x, z for that same classifier;
– in case of an inclusion relation: adding the relation will not conflict with any currently
existing comparison relations. For instance: suppose for items A and B, we have that
A is inferior (for some ranking attribute) than B. In that case, we cannot make A to
include B. (The precise details of the connection between inclusion and comparison
will be explained below);
– in case of a comparison relation: adding the relation will not conflict with any currently
existing inclusion relations. For instance: suppose for items A and B, we have that A is
a special case of B. In that case, we cannot make A inferior (for some ranking attribute)
to B. (The precise details of the connection between inclusion and comparison will be
explained below);
All admitted tails or heads are colored green: these form suitable connection points for an
new arrow.
• In order to remove an arrow, its both ends simply have to be clicked again. To facilitate
finding the existing arrows connected to some given head or tail spot, the partner tail or
head spots are colored white (notice: these are on the other end of a red arrow). Clicking
on a white spot will erase the connecting arrow.
Despite these provisions, it is possible that managing the collection of arrows gives rise to an
incomprehensible jumble. This may also happen because arrows can not only result from directly
drawing them into the Relations-tool; also as a result of answering Questionnaire-questions (see
3.9), arrows are created. In case the user should decide to remove all arrows and start anew,
(s)he can click on the delete all button in the right upper corner of the Relations-form. This will
remove only the relations that are managed in the actual Relation-form; all other relations are
left untouched.
41
3.7. RELATIONS
item
Kanoo
Jeep
Boeing
Boat
Car
Aircraft
environment
water
land
air
water
land
air
price (in Euros)
102 . . . 5 × 103
103 . . . 5 × 104
106 . . . 107
102 . . . 107
5 × 102 . . . 5 × 105
104 . . . 107
Table 3.1: A miniature ontology of vehicles
3.7.3
Partial ordering, set-inclusion and ontology
An essential feature of the Assist system is its ability to deal with set-valued classifiers. For any
item, a classifier can either have no value (indicating that the classifier does not apply to that
item); a single value (indicating that perhaps the item is a single thing with a single unique value
for that classifier); or a set of values, indicating that the item is an abstract item: a collection of
things, with at least one distinct thing for each different value.
This allows to represent the notion of instantiation, or is-a relations in the Assist ontology.
As explained above, the is-a relationship is an example of a partial ordering.
Is-a relations occur in two different flavors, to be called intentional is-a relations and extensional
is-a relations.
Intentional relations
An intentional is-a relation between a parent item P and a child item C expresses the intuition that
C is a specialization of P . This corresponds to the notion of inheritance in object-orientation. We
say that a chair is a specialization of the class ’furniture’, and a ’Rietveld chair’ is a specialization
of the class ’chair’, and the particular Rietveld chair that is on display in the Kröller-Müller
museum in the Netherlands is a specialization of the class of all Rietveld chairs. The KröllerMüller class is a peculiar example, since it contains only a single element; such a class is called
a singleton. This notion of intentional specialization can be expressed without any reference to
classifiers or their (sets of) value(s). Intentional specialization can imply that a child has multiple
parents: not only is the Kröller-Müller Rietveld chair an instantiation of the class ’Rietveld chair’,
it is also an instantiation of the class ’pieces of art of the Kröller-Müller museum’; this class is a
specialization of the class ’assets of Dutch Musea’, et cetera. This is called multiple inheritance
in object orientation.
Extensional relations
An extensional is-a relation between a parent item P and a child item C, to the contrary, can
only be defined on the basis of inspecting classifiers and their values for P and C. There are
some options for this definition, though. To explain this, we introduce an example. We consider
the following classes: Kanoo, Jeep, and Boeing as specializations of the classes Boat, Car, and
Aircraft, respectively. Further, we have two classifiers, ’environment’, with values ’water’, ’land’
and ’air’, and ’price’ with values amounts of money between hundred and ten million Euros.
Intuitively, the miniature ontology from table 3.1 would seem appropriate.
We conclude that for the class Kanoo the set of values for each classifier is a subset of the values
for the same classifier for the class Boat. If we define the extensional is-a relation as C is-a P by
’for every classifier, the set of values in C is a subset of those in P ’, we conclude that Kanoo is-a
42
CHAPTER 3. CREATIVITY AND SELECTION
item
Hover craft
Amphibian vehicle
Bat car
environment
water; air
land; water
air; land
Table 3.2: A miniature ontology of hybrid vehicles
Boat in extensional sense, and similar Jeep is-a Car, and Boeing is-a Aircraft. So far so good:
this corresponds to our intuition.
Next we introduce as a classifier ’materialOfOars’, which for a kanoo could take values such as
’wood’, ’metal’, or ’carbon fibre’. Now we should think what to do with the classifier ’materialOfOars’ when applied to Car. Cars don’t have oars, so there is no meaningful value for this
classifier; the most obvious thing is to assign the empty set. For the class Boat this is more subtle,
though: some boats do have oars (like kanoos and rowing boats); others don’t (like speed boats).
If we would choose to leave the set of values for ’materialOfOars’ empty for the class Boat, we
would loose the intuition that the set of values for a child is a subset of the set of values for the
parent. Therefore, it is intuitive to assign the entire set of values, {wood, metal, carbonFibre} to
the classifier ’materialOfOars’ for the class Boat. We will call this the ’liberal’ interpretation of
classifiers. It states that the set of values for a classifier for a parent class P is the union of the
sets of values for that classifier of all (extensional) children C of P . An immediate consequence,
though, is that for some children of P , such a classifier might have an empty set of values (for
instance, the classifier ’materialOfOars’ for the item ’speed boats’). The liberal interpretation
contrasts with the ’restricted’ interpretation, where a classifier takes the set of values that must
hold for all individuals in a class. In the restricted interpretation, ’materialOfOars’ for a particular (type of) kanoo(s), characterized by one particular material of oars, will take the value of
precisely that material; for all other classes, the value of ’materialOfOars’ is empty. In that case,
in particular, the classifier ’materialOfOars’ for the item ’boat’ will be empty.
Since the restricted interpretation gives relatively many instances of classes P with empty-valued
classifiers (which don’t give any information except that extensional children of P don’t have
any shared values for the classifier(s) considered), we adopt for Assist the liberal interpretation.
Apart from the consequence that some children of a parent with a non-empty classifier can have
an empty set of values for such a classifier, it has at least one other curious consequence, though.
Consider three additional classes: Hover craft, Amphibian vehicle and Batcar4 . The values
for the classifier ’environment’ are as listed in table 3.2. Restricting ourselves to the classifier
’environment’, we see that both Kanoo and Boeing are extensional specializations of Hover craft.
Even the ’more abstract’ classes of Boat and Aircraft are extensional specializations of Hover
craft. Similar, we have:
Jeep is-a Amphibian vehicle;
Kanoo is-a Amphibian vehicle;
Car is-a Amphibian vehicle;
Boat is-a Amphibian vehicle;
Boeing is-a Bat car;
Jeep is-a Bat car;
Aircraft is-a Bat car;
Car is-a Bat car,
4 Batman is an imaginary comic book superhero, featuring in several Hollywood movies. Among his many
spectacular tools and vehicles, there is an automobile with flying capabilities: the Batcar.
43
3.7. RELATIONS
item
Kanoo
Jeep
Boeing
Hover craft
Amphibian vehicle
Bat car
Boat
Car
Aircraft
environment
water
land
air
water; air
land; water
air; land
water; air; land
land; water; air
air; land; water
Table 3.3: A miniature ontology of vehicles where both hybrid, ’regular’ and generic classes occur.
all in extensional sense.
Even more peculiar: if we want to save the intuition that Hover craft is-a Boat (in extensional
sense), and similar ’obvious’ parent-child relations for the other hybrid vehicles, we are enforced
to assign all three values ’water’, ’land’ and ’air’ to the classifier ’environment’ for all three ’grand
parent’ classes, Boat, Car and Aircraft, as in table 3.3. In other words: if the ontology needs
to include both ’regular’ and ’hybrid’ vehicles, the (extensional) distinction on the basis of the
classifier ’environment’ no longer exists.
If it may seem strange that, in the liberal interpretation, classes Boat, Car and Aircraft cannot be
distinguished (at least: they are indistinguishable with respect to the classifier ’environment’), we
must remember that the extensional definition of the is-a relation is merely a formal construction;
in the absence of hybrid classes, it usually gives a reasonable to good correspondence to our
(intentional) intuition.
Intentional vs. extensional relations
In daily discourse, we use the clause ’is-a’ without giving much thought about whether this is an
intentional or an extensional statement. Apparently, there must be quite a large similarity between
the two. Sometimes we will mean the intentional version, sometimes we mean the extensional
version. The same is true when using Assist. When we set values for classifiers in the Data Grid,
we indirectly define extensional is-a relations; when we declare that an item is to be regarded
as an intentional parent of an other item in the Relations tool, we state an intentional version.
Therefore it must be possible to convert one into the other - or at least: to adjust one of the two
in accordance with the other.
We recollect the definition of intentional is-a relation: in order for item C to have an is-a relation
with item P (C is-a P ), the set of values in C must be a sub set of the set of values in P .
Maintaining consistency between intentional and extensional relations over a set of items is a
subtle and sometimes counter-intuitive issue. For a better understanding, we address this issue in
the next sub-section.
Consistency and propagation
We have seen that all intentional relations eventually originate from the user, expressing that some
item a is a special case of another item b; extensional is-a relations originate from inspecting the
sets of values for classifiers, and see if by chance the definition of the extensional ’is-a’-relation
holds. In principle, the two sets of relations develop independently of each other, and we have
to actively do something to the data to ensure consistency. This can be done, altogether, in four
44
CHAPTER 3. CREATIVITY AND SELECTION
different ways.
1. from intentional to extensional, bottom-up;
2. from intentional to extensional, top-down;
3. from extensional to intentional, bottom-up;
4. from extensional to intentional, top-down;
In Assist, propagation is only done automatically from intentional to extensional, both bottomup and top-down. The bottom-up route will only enlarge sets of classifier values; the top-down
route will only reduce sets of classifier values.
We give some examples: assume we have the intentional is-a relation between ’hammer’ and
’pneumatic hammer’, and a classifier ’motorized’. Initially, ’motorized’ for ’hammer’ takes the
value ’no’. Next we decide that a pneumatic hammer is motorized, so we will fill in the value ’yes’
for the ’motorized’ classifier for the pneumatic hammer. Assist will then automatically propagate
the value ’yes’ to ’hammer’, resulting in the new value ’yes,no’.
Conversely, if the intentional is-a relation between ’pneumatic hammer’ and ’hammer’ does not
(yet) exist, and we fill in the values ’yes’ and ’no’ respectively, no propagation will occur. If we
should decide next to add the intentional is-a relationship, this is refused by Assist on the grounds
that ’hammer cannot be a parent for pneumatic hammer because the extensional is-a relationship
is not fulfilled for the classifier ’motorized’.
As a last example, suppose we have again the intentional is-a relationship holding between ’hammer’ and ’pneumatic hammer’, and ’hammer’ has value ’yes,no’ filled in for ’motorized’. If we edit
this value and replace it by ’no’, the reduction of this set propagates down and the result is that
the value for ’pneumatic hammer’ becomes empty.
Although automatic propagation only takes place from intentional to extensional relationships,
extensional relationships do play a role when new intentional relationships are about to be added.
Indeed, as explained in section 3.7.2, when we try to add a new is-a-relationship, Assist first checks
if this relationship is allowed. ’Allowed’ means, among other things, that the new (intentional)
is-a-relationship does not conflict with existing extensional is-a-relationships.
Although the automatic propagation normally corresponds exactly to the intuition, there can be
cases when one would like to override the process (for instance with hybrids, such as the hover
craft, the Batcar, or the amphibean vehicle as explained above). In the Preference-tool (see ??),
there is a checkbox that serves to switch the automatic propagation of classifier values according
to intentional is-a relationships on or off.
3.7.4
Partial ordering, comparison and ranking in Assist
A partial ordering is a mathematical concept that lies closely to many day-to-day intuitions.
Comparisons, for instance, usually involve partial orderings. If we say that pineapple is sweeter
than lemon, and similarly that peach is sweeter than lemon, few people will disagree. We cannot
say, however, which of pineapple or peach is sweeter. Apparently, the relation ’is sweeter than’
applies to some pairs of fruits, but not to all. An ordering that applies to selected pairs of a set
is called a partial ordering. Virtually all comparative relationships are partial orderings. There
are relatively few cases of relationships that apply to all pairs of individuals in a set. Such
relationships are called full ordering. An example is ’is heavier than’: everything with a mass that
can be assessed can be compared with respect to weight to everything else, and with sufficient
measurement accuracy it is always possible to state that one is heavier than the other. That is
because ’is heavier than’ involves an ordinal scale. In the present case this scale can even be
associated to numbers (1 kg, 2 kg, 3 kg, 4.2543453 kg, et cetera).
3.7. RELATIONS
45
A scale that is not ordinal is called nominal . An example of a nominal scale is the answer to the
question ’what country are you from’ (with answers Belgium, Albania, ...). The names of countries
can, of course, be fully ordered by means of a lexicographical ordering beginning in Afghanistan
and ending in Zimbabwe.
It is tempting to map fully ordinal scales to numbers - in particular, natural numbers, since natural
numbers are a familiar example of a fully ordered scale. A famous counterexample is Mohs’ scale
for the harness of minerals: a material A is harder than a material B if B is damaged (scratched)
by A when brought into rubbing contact. The mapping to natural numbers in this case would be
misleading: for numbers we can assign a meaning to the difference between items. For instance,
the difference between 4 and 7 equals the difference between 5 and 8. This does not have to
apply to items in the Mohs scale, however. It can be meaningless to talk about the ’difference
in hardness’ between the 4th and the 7th material in Mohs’ scale. It is even meaningless to
say that there are precisely two materials in between: it is very well possible that tomorrow an
exotic material is discovered with a hardness in between number 4 and number 7. This causes
the mapping to natural numbers to be overthrown, whereas all relations ’is harder than’ stay in
place. A scale that can be mapped to (natural) numbers is a quantitative scale. Mohs scale is
an (fully) ordinal scale that is not quantitative. A second important example of an ordinal scale
that is not a quantitative scale is the range of exam results A,B, ... F used in American school
systems. There is no statement of the magnitude of difference between subsequent marks, so it is
impossible to say what is the ’average’ between A and F. In other school systems, digits are used
(e.g., 10 ... 1). In that case, it is arithmetically possible to define that the average between 10 and
5 is 7.5 - but this implicitly assumes that the difference between 5 and 7.5 equals the difference
between 7.5 and 10. In most cases of classroom assessment, this last requirement cannot readily
be assured.
We can summarize:
• scales can be nominal or ordinal;
• ordinal scales can be partial (e.g., sweetness in the pineapple - peach - lemon example) or
fully ordinal
• fully ordinal scales can be non-quantitative (e.g., Mohs scale) or quantitative
• a quantitative scale allows mapping to numbers, and it implies that differences are meaningful. But ratios don’t need to be meaningful. For instance, the Kelvin temperature scale
has a meaningful notion of ratio. Indeed, 10 K is twice as warm as 5 K in an independent,
physical sense, whereas 10 Centigrade is not in any meaningful way twice as warm as 5
Centigrade. This introduces the notions of difference scales and ratio scales
When we get back to Assist, it is obvious that the above discussion about partial ordering
immediately relates to ranking items. Indeed, familiar ranking methods map the adequateness
of items (with respect to some criterium) to numbers; next assign some (numerical) notion of
importance to each ranking attribute, and next compute a weighted-sum ranking.
Weighted sum-ranking was mentioned before in section 3.5. As we observed there, it assumes that
each of the quality attributes i has a numerical weight Wi (which must be an element of some
ratio scale for the following operations to make sense). If the score of item j on attribute i is Sij
(again an element of a ratio scale), the total score of item j is defined as
Sj =
X
Wi Sij .
i
To distinct them from total scores, the values Sij will be called item-attribute scores or ranking
attribute values. It is tempting to see the item with the highest total score as the ”best”. This is
a bit naive, though, for several reasons.
46
CHAPTER 3. CREATIVITY AND SELECTION
1. as illustrated with the pineapple - peach - lemon example, the opinions that people have
about certain quality features of items is very often a partial ordering. That means: it is
no full ordering, and since it is no full ordering it is impossible to associate it with any
quantitative scale - and in particular not with a ratio scale;
2. if - despite the above argument - we insist to associate the item-attribute scores and the
weights to numbers, it is somewhat arbitrary to have precise numerical weights for quality attributes. This suggests much more precision than reasonably can be assumed. Suppose that profitability is more important than safety, should we then set Wsaf ety = 40,
Wprof itability = 45, or Wsaf ety = 10, Wprof itability = 90? A similar problem applies to the
item-attribute scores;
3. even if we disregard the formal objection that item attribute scores in most cases are not on
a quantitative scales, we will encounter the practical problem that most attributes are not
readily expressed as numbers: perhaps, profitability (which relates to an amount of money)
can be quantified more or less accurately on a numerical scale, but safety is much harder to
cast in the form of a number.
Assist, unlike most decision support systems that assist in selecting among items on the basis
of criteria, therefore does not use elements from a quantitative scale to represent user’s opinions
about the relative adequateness of items. Instead, these opinions are represented as collections of
partial orderings.
Unfortunately, as can be concluded from Arrow’s theorem5 , if we have nothing more than a set
of (partial) orderings among the collection of alternative items, each ordering representing the
state of affairs with respect to one ranking attribute, it is not possible to decide upon a resulting
ordering (either partial or total). In other words, it is fine to represent the individual opinions in
the form of pairwise comparisons, avoiding the use of any numerical operations, but that gives no
support to the user when it comes to making the final decision.
Since Assist is intended to be used in an interactive or collaborative context, we adopt a policy
that is somewhere in between formally correct (i.e., not using numerical representations where
this is not allowed) and practical (i.e., giving assistance to users that is comprehensible and may
support intuition).
In order to support intuition, we must convey two aspects of the comparisons:
• for a given ranking attribute, one item can be inferior to another. We do this by adopting
the rank order of colors as they appear in the rainbow; the convention is that red is bad and
green is good. Since the hues in the rainbow form a perceptually fully ordered scale, we can
visually observe for two rank attribute values which of the two is the ’redder’ and which is
the ’greener’. From this we can conclude which is the worse and which is the better;
• for two items A and B, where A is more abstract than B (so B is an instantiation of A), we
have that the coloring must reflect this inclusion relation. Suppose that there would be a
third item, C, that is also an instantiation of A. Let C be better (for some ranking attribute)
than B. This means that the color for that ranking attribute for C is greener than the color
for B. But the color for A can not be redder than the color of C, and it cannot be greener
than the color for B. So it must have a color that encompasses both the hue of B and the
hue of C. Now for colors, this behavior is nicely reflected into the perceptual property of
saturation. Indeed, less saturated colors are less clearly distinguishable, matching with the
intuition that rank attribute values for more abstract items can take a larger range of values.
So the mapping of rank attribute values to the hues and saturation of colors introduces a single
universal scale that contains two full orders at once - and these both orders can be one-to-one
mapped to the comparison ordering and the is-a ordering.
5 http
: //en.wikipedia.org/wiki/Arrow%27s impossibility theorem
3.7. RELATIONS
47
We associate being more or less saturated with being less or more abstract. But it is a small
jump from ’abstract’ to ’uncertain’. Indeed, when we know less about an item (that is, there
are more admitted values for its classifiers), we could say either that it is more abstract, or that
its adequateness is less precisely assessable. So the saturation on the one hand serves to distinct
more abstract items from less abstract items; on the other hand it serves to encode our feeling of
certainty for the rank attribute value for a certain item.
One could say that an upper bound on the saturation (for some ranking attribute) comes from
the abstractness (or rather: the concreteness) of an item; but even if an item is not very abstract
at all (for instance, because all its classifiers have unique values, and/or it has no intentional
children) we may feel uncertain about its adequateness for some ranking attribute; in that case,
its saturation can be low.
We note in passing that there is a minimum saturation: the ’color’ white is neither reddish nor
greenish: it has no preference towards ’bad’ or ’good’ according to our hue scale. It is therefore
a natural choice to represent the totally unknown, maximally uncertain (or maximally abstract)
rank attribute value by white.
At any time, Assist assigns colors to ranking attribute values, thereby obeying both orders (the
comparison order and the inclusion order). This means that, as soon as we add or delete a
relation (either a comparison-relation or an inclusion-relation), the colors are re-calculated and
updated. This color assignment, however, is not unique. Even though Assists internal algorithm
is deterministic - which means that it produces the same outcome every time it calculates color
assignment for a given set of partial orderings, we may wish to express our feeling that a particular
ranking attribute value should be redder or greener. We may also decide to make a saturation
larger or smaller if we feel we are more or less certain about a ranking attribute value.
As we will see in a minute, there are two ways to do so (one using sliders, see 3.8; the other one using
the quick ranking device, see 3.14). Whenever we do so, Assist ensures that all partial ordering
relationships are preserved by adjusting other ranking attribute values whenever necessary in a
minimal way, that is: it applies minimal adjustments to ranking attributes to ensure that all
partial ordering relations are as they should be.
By means of the representation of ranking attribute values-as-colors, we have transformed the
(partial) ordering relations into concrete values on a 2-dimensional scale, and we have found a
way to make them visually assessable. We have not yet, however, explained how they can be
aggregated into a resulting conclusion. Indeed, the entire ranking process was part of the selection
of the ’best’ item, so we must find a way to combine all ranking attribute values into a single
ordering on items.
First we mention that, according to Arrow’s result, their is no algorithmic, non-arbitrary way to
do this. So we must keep in mind that any approach is, in some way or other, ’cheating’.
There are two cheating mechanisms built in in Assist.
The two methods for aggregating ranking attribute values, supported by Assist are:
• Pareto front-ranking;
• weighted sum-ranking.
Pareto front-ranking
In Pareto front-ranking, we distinguish dominated from non-dominated items. A dominated item
is an item for which another item exists that is better in all respects. For instance, suppose that
the criteria we want to use for ranking are profitability and safety, both on a 100 point scale.
An item with profitability = 50 and safety = 30 is dominated by an item with profitability = 60
48
CHAPTER 3. CREATIVITY AND SELECTION
and safety = 35. Such a dominated item should never be chosen, since there is at least one item
which is better in all respects. An item that is not dominated is called a non-dominated item; the
collection of non-dominated items is said to form the Pareto front of a collection of items. Pareto
front-ranking amounts to finding the Pareto front in a collection of items; those that are not on
the Pareto front can be discarded.
In Assist, the result of a Pareto calculation can be made visible by means of colors. In the
Preferences (see 3.14 we can choose to visualize the aggregation result as a Pareto-front. In that
case, item names are colored green if they are on the Pareto front; if not, they are colored red.
Weighted Sum-ranking
To explain weighted sum-ranking, we again mention the classical formula introduced before:
Sj =
X
Wi Sij .
i
When we introduced this formula in section 3.5, we did not explain how Sj and Sij were represented. Now we know that they are 2-dimensional quantities, encoding both the hue and saturation
of the colors that are assigned to ranking attribute values and item scores.
In order to calculate and add colors, however, we have to map them to values that allow addition
and multiplication. Obviously, this is where the ’cheating’ comes in. In Assist we cheat by
representing colors by numerical intervals. The range or width of the interval represents the
saturation: a narrow interval means a high saturation; a broad interval means low saturation.
The lower and upper bounds in the intervals are between 0 and 100 (which are merely arbitrary
bounds). Lower numbers mean ’redder’ colors, and higher numbers mean ’greener’ colors.
So [100, 100] is very saturated green; [0, 0] is very saturated red; [50, 50] is very saturated yellow;
[0, 100] is white (minimal saturation).
The formula
X
Wi Sij
Sj =
i
calculates Sj also as an interval. So the aggregation (= the calculation of all Sj ) produces a
collection of intervals, one for each item, where the weights Wi of the ranking attributes have been
taken into account.
Now we observe something peculiar when we compare operating on intervals with operating on
numbers. Indeed, an interval I1 is less than interval I2 only if the upper border of I1 is less than
the lower border of I2 . If the lower border of I1 is larger than the upper border of I2 we say that I1
is larger than I2 . In all other cases, the order of I1 and I2 is not determined. So the weight [10, 50]
is not less than [30, 70], even though its centroid (= the average of lower and upper bound) is less.
Both weights are equally uncertain. Calculating with weights and scores as intervals protects us
against hastily and non-substantiated conclusions: the total
P score Sj is only larger than an other
total score Sj′ if the involved intervals, used to compute i Wi Sij , are sufficiently narrow - that
is: if we are sufficiently certain about a sufficient number of item-attribute scores and attribute
weights.
In Assist, the result of a weighted sums calculation can be made visible by means of colors. In
the Preferences (see 3.14 we can choose to visualize the aggregation result as a weighted sums
calculation. In that case, item names are colored green if their item score is entirely larger than
the score of some other item. Item names are colored red if their item score is entirely less than
the score of some other item. If both conditions occur the item name is colored yellow; if non
applies it is colored white.
3.8. SLIDERS
49
Figure 3.8: The sliders tool for ranking attribute ’price’. Every slider corresponds to one item;
the interval representing the ranking attribute value can be adjusted by moving its lower value
and its upper value. When necessary to preserve all partial orderings, Assist will automatically
adjust the ranking attribute values of other items.
Comparing Pareto front ranking and Weighted Sum ranking
The advantage of Pareto front-based ranking is, that we don’t need the weights. With a different
set of weights, the same Pareto front will result. A disadvantage, though, is that the number of
non-dominated items can be prohibitively large, in particular if we have many attributes. Indeed,
the more ranking attributes, the more severe the restriction of domination. So the fewer items
will be dominated - that is, the fewer items will be not on the Pareto front.
The weighted sum-ranking method can produce arbitrarily few solutions (if all the interval widths
are close to 0, there will, in general, be only one ”best” solution - even though this may not mean
a lot), but it has more room for arbitrariness.
Assist has been designed such that the two methods can be easily interchanged, depending on
the characteristics of the present collection of items: this is done by adjusting the settings of the
appropriate check boxes in the Preference form (see 3.14).
3.8
3.8.1
Sliders
Introduction
Assists ranking mechanism hinges on collections of partial orderings that directly reflect the user’s
opinions about relative adequateness of items with respect to some ranking attribute. For any
given set of partial orderings, Assist calculates a default mapping to a set of intervals, that are
rendered as colors. The user may want to adjust this mapping, however. To this aim, for every
ranking attribute (=interval) a slider is given. The slider is labeled with the name of the ranking
attribute. There are two thumbs on the slider that can be moved independently by dragging with
the mouse; the thumb corresponding to the lower border can not be dragged to the right of the
50
CHAPTER 3. CREATIVITY AND SELECTION
thumb for the upper border.
After every adjustment of slider thumbs Assist checks if the adjustment causes other ranking
attribute values to be adjusted as well. There can be two reasons for this:
• the ranking attribute value for the chosen item i is involved in one or more comparison relationships. For instance, the user moves i’s upper bound to the right, whereas the ranking
attribute value for i must be lower than the value for some other item j. In that case the
lower bound of j is also moved to the right. But this in turn may cause other adjustments
(perhaps the upper bound of j must move to the right, and so on). This is called propagating
adjustments. Notice that, as a rule, intervals will get narrower as a consequence of propagating adjustments - to the extent where the lower and upper bounds coincide. In that case
it requires some effort to get access to the two thumbs independently: they overlap on the
screen;
• the item is involved in some inclusion relationship. As we discussed before, the interval for
any ranking attribute for item i is entirely enclosed within the interval for the same ranking
attribute for any item j that is more abstract than i. So again adjusting interval borders of
i can result in interval borders of other items to be changed.
In more complicated configurations, the two mechanism above can occur at the same time: for
instance if an abstract parent of some item is involved in some comparison relation with another
item. Assist takes care of the entire propagation automatically, doing minimal adjustments to
ensure that all ordering relations are preserved.
3.8.2
Manual
The Sliders-form, for the case where the actual column associates to a ranking attribute, looks as
in figure 3.8. Each of the sliders corresponds to one item; it gives access to the ranking attribute
associated to the actual column at the time of opening the form.
3.8.3
Sliders for the ’include’ relation
As with the Relations-form, the Sliders-form uses the convention that the actual relation is defined
by the currently actual column when the form is opened. For columns that are ranking attributes,
this results in a set of sliders for that ranking attribute. In case the column is not associated to a
ranking attribute, however, the situation is different.
The convention applies that, in case the actual column is not associated to a ranking attribute,
the shown sliders relate to the total item scores.
First, this gives a convenient alternative view to the total scores.
Second, it gives the possibility to adjust attribute weights in an alternative way. As follows.
Suppose that we have a number of items, and we can provide item-attribute scores for all these
items for all ranking attributes, but we find it difficult to give values to the attribute weights. If
we can give total scores for the items, however, Assist can attempt to calculate weights that are
compatible with these total scores - provided that a set of weights exists that is compatible with
the given item-attribute scores and total scores. This amounts to solving for the Wi from a set of
equations
Sj =
X
i
Wi Sij .
3.8. SLIDERS
51
Figure 3.9: The Sliders form when opened in a state where the actual column does not associate
to a ranking attribute. This gives access to the automatic estimation of attribute weights.
Since the set of items (=the set of j-s) is typically (much) larger than the set of attributes (=the set
of i-s), these equations can only be solved exactly in rare occasions. If the item-attribute scores are
sufficiently consistent, however, a so-called least-squares optimal solution will be generally quite
reasonable. Assist applies an iterative solution strategy to approximate such a least-squares
optimal solution. Automated calculation of weights in this manner is governed by the Sliders tool
in case it is opened in a state where the actual column does not associate to a ranking attribute.
We give the detailed operation for this functionality. It uses some additional controls, as depicted
in figure 3.9. We we explain their working below.
3.8.4
Manual
The form looks as depicted in figure 3.9. First, sliders can be adjusted at will; with every adjustment, Assist calculates a residue. This is a number, expressing the squared difference between
the total scores as set by the user, and the total scores as calculated with
Sj =
X
Wi Sij
i
for the current set of attribute weights Wi and the current set of ranking attribute values Sij . In
general, the more the user moves the sliders away from their initial position, the larger this residue
will be. The residue is written in a text field to the right of the sliders.
Obviously, when the residue is equal to 0, there is a perfect match between the item scores as set
by the user and those as calculated from the attribute weights.
By clicking the try button , Assist does an attempt to adjust the attribute weights in order to
make the residue smaller. It does so by moving all individual attribute weights a fixed amount in
both directions, recompute the residue, and compare the changes. If it turns out that in either
direction an improvement could be reached, it will preserve these new attribute weight values.
The fixed amount, used to move the attribute weights, can be adjusted by the slider stepsize.
52
CHAPTER 3. CREATIVITY AND SELECTION
Figure 3.10: The questionnaire form allows to engage in a dialogue where Assist gives propositions
that the user can react upon by saying ’agree’, ’disagree’ or ’no opinion’.
It is a good heuristic to start the process with large values for the stepsize; if no more improvement
of the residue can be reached, move to smaller values - until the residue is minimal.
As mentioned before, we must realize that for arbitrary setting of the total scores, there are
presumably no values for the attribute weights that produce a perfect match (that is, residue=0).
Therefore, the user may decide to go back to the initial values of the attribute weights by clicking
the button reset original.
Alternatively, it is possible to re-start the entire search process by setting all attribute weights
to a neutral position (that is, make all attribute weights equal). This is achieved by clicking the
button reset null.
3.9
Questionnaire
Ordering relations (comparisons) can be entered by the user by means of the Relations tool; it
is sometimes convenient, however, to have the system suggest ordering relations to the user by
means of a questionnaire. Such a questionnaire comes in te form of a series of questions where the
user is asked to give his / her verdict over a certain statement. This mechanism is provided as an
alternative for inputting ordering relations ’by hand’.
3.9.1
Introduction
When the Questionnaire-tool is started, a sequence of propositions is presented to the user. Every
time the user can invoke a next proposition by clicking on the Next question button. The user
is invited to react on each proposition by clicking one of three buttons, labeled agree,disagree
or no opinion. The ’no opinion’ button should be selected in case the user’s opinion is neutral
with respect to the proposition, or in case the comparison makes no sense.
3.9. QUESTIONNAIRE
53
The propositions are formulated by Assist, in principle using the strategy of maximal mutual
information . Every time Assist generates a new proposition, it applies the following steps:
1. make an inventory of a (random) collection of possible propositions. That is, for some
attribute, consider a combination of two items. The number of possible propositions that
is actually used is a matter of performance; a maximum amount of time is allocated to the
process of suggesting a proposition. On a fast machine, the number of possible propositions
to be scanned in that amount of time will be relatively large. The following restrictions
apply:
(a) combinations that already occur as ordering relations are not suggested - so every
proposition will be new;
(b) combinations that give rise to a proposition that would be a redundant relation are not
taken into account;
(c) combinations that involve two items where one is a more abstract version of the other
are not taken into account.
2. for each proposition, Assist calculates6 what the difference in the present cumulated itemscores would be if this ordering relation would be added to the set of ordering relations. This
is the effect of an ordering relation. Some ordering relations would have very little effect
(perhaps because the weight of the related attribute is small), others may be very significant
(notice that adding a redundant ordering relation would have no effect at all - one further
reason not to consider redundant ordering relations).
3. potential ordering relations are sorted with respect to this effect, and the ordering relation
with the largest effect is presented to the user.
For every response, an ordering relation may be added, as follows:
• if the user clicks ’agree’, an ordering relation conform the proposition is added;
• if the user clicks ’disagree’, an ordering relation is added that is the inverse of the proposition;
• if the user clicks ’no opinion’, no ordering relation is added; the proposition is maintained
in a ’don’t ask’-list, however, to avoid that the same proposition would be asked later;
• if the user’s respons is such that an ordering relation should be added, a check is made (a)
for any cyclic conflicts or (b) for any other inconsistencies with existing relations. In case a
conflict is found, the ordering relation will not be added.
3.9.2
Manual
The Questionnaire form is depicted in figure 3.10. When started, the user can click on a button
Next question. After a while (depending on whether the user wants the maximum mutual
information algorithm to select most meaningful suggestions first - this algorithm can be selected
in the Preferences-form) a proposition appears. For further information, Assist reports how
many possible propositions it took in consideration; this amount depends on the performance of
the machine Assist is running on.
Also, the three buttons agree, disagree, and no opinion appear; the user can make his opinion
known by clicking on one of these buttons.
6 This
is a very expensive process. Unless Assist runs on a very fast machine, only few possible propositions
can be analyzed in this way. For this reason, it is possible to choose in the Preferences form whether or not the
principle of maximal mutual information should be used.
54
CHAPTER 3. CREATIVITY AND SELECTION
3.10
Queries
3.10.1
Introduction
The main part of the Assist data structure is a table where rows (also called records) correspond
to items and columns corresponds either to classifiers or ranking attributes. This is the standard
table-object as it occurs in databases. Such a data structure can be interrogated essentially in two
ways:
• row-based (’extensionally’, or item-based): given a record (that is, given an item), give all
the information for that item in terms of classifier-values and rank-attribute-values;
• column based (’intentionally’, or query-based): given (a) constraint(s) in terms of classifiervalues or rank-attribute-vales, give all items that satisfy the constraint(s).
The Inspire form and the Relations-form allow maintaining the information in a item-based fashion;
to access the information in a query-based fashion, we need the Queries form.
Queries on a data base can take many forms; dedicated languages such as SQL have been devised to
express such queries. Even if the database essentially consists of a single table, obtaining precisely
the records that we are interested in may require a rather sophisticated logical expression. For
instance, we could conceive an expression as
C1 = V1 AN D (C2 <> V2 OR C3 = V3 ) AN D (A1 .low < 20 OR A3 .width > 40)
, which means: ’those and only those items for which the classifiers and ranking attributes satisfy
the given logical formula’. In this expression, C1 , C2 , and C3 are classifiers; V1 . . . V4 are classifiervalues; A1 and A2 are ranking attributes; ’low’ and ’width’ denote the lower bound and the width
of intervals, respectively.
In Assist, we impose some restrictions on the logical formulas that can be used to select items.
The query-expression that is accepted in Assist consists of a list of elementary query expressions,
and the (implied) ’AND’ operator between them. That is: items, to be selected, should satisfy all
elementary query expressions. Elementary queries may involve classifiers and ranking attributes.
For an elementary query involving a classifier and a classifier value, we can use any classifier, and
any of the following operators:
• classifier contains this classifier value (e.g., ’x,y,z’ contains ’x’);
• classifier does not contain this classifier value (e.g., ’x’ does not contain ’p’);
This operator takes as argument a value from the set of values for that classifier.
For an elementary query involving a ranking attribute, we can use any ranking attribute, and any
of the following operators:
• is good (that is, centroid is larger than 50);
• is bad (that is, centroid is not larger than 50);
• is sharp (that is, the width of the interval is less than 50);
• is vague (that is, the width of the interval is not less than 50).
3.11. CLUSTER
55
The total query is given by the conjunct of the elementary queries, that is: all elementary query
expressions have to hold for the selected items. So if the list of elementary query expressions is
empty, all items ares elected; adding an elementary query to the list makes the constraint more
strict, and therefore may reduce the set of selected items.
In any state, when the Query form is active, there is a set of selected items (this set may be
empty, or it may contain all items, or anything in between). The present set can interpreted as
children of a new item, that is: a new item may be introduced that corresponds to exactly the
class of currently selected items (whether abstract or concrete items). This is somewhat similar to
creating a set of parent-child relations in the Relations-form: the user is asked for a name of this
new item; Assist adds this new item, and for all the children (that is, all selected items), Assist
adds include-relations to the new item.
3.10.2
Manual
The Queries form is depicted in figure 3.11. The widgets consist mainly of check boxes. For every
classifier and for every ranking attribute, there is one row of check boxes.
For a row of check boxes belonging to a classifier, we find two check boxes for each of its values.
One of the two is labeled with that value; the other one is labeled by that value, prefixed with a
tilde. Selecting the first check box means that the value should be included; marking the second
check box means that the value should not be included.
For a row of check boxes belonging to a ranking attribute, we find four check boxes in total.
These are labeled with ’good’, ’bad’, ’sharp’, ’vague’ as explained above. Any combination can
be selected. No two check boxes can be selected at the same time that are mutually exclusive,
though: selecting ’good’ and ’bad’ at the same time makes no sense.
For every selection, Assist checks all items to find the ones that meet with the criteria. The
names of these items are colored blue; items are sorted so that all blue colored items appear on
the top.
By clicking the add item button, the user indicates that a new (abstract) item should be added
that represents the current selection. If a valid name is given, this item is created and, when
allowed, inclusion-relations are automatically added to connect this new item with all selected
items; the latter will serve as its children. Also, an estimate is calculated for the rank attribute
values for this new item in the same way as explained in 3.6.2.
3.11
Cluster
3.11.1
Introduction
To get a better understanding of the structure of the set of items, two additional tools are provided
within the Assist system. The first one is clustering; the second one is a visualization of Pareto
fronts. Here we discuss the cluster tool.
As we mentioned in section 3.6.2, when explaining the auto-ranking: between any two items, a
distance can be defined. Such a distance should be zero for items that are identical; it should be
non-negative, it should be symmetrical (distance between A and B equals the distance between B
and A), and it should obey the so-called triangle inequality (the distance between A and B cannot
be larger than the sum of the distances between A and C and between C and B). A suitable
definition of distance as far as classifiers as concerned is the Hamming distance. The Hamming
distance between two items is based on the number of classifiers in which these items differ. A
classifier contributes to the distance inversely proportional to the number of values this classifier
56
CHAPTER 3. CREATIVITY AND SELECTION
Figure 3.11: A screen shot of the queries-form to perform selections on the list of items. In this
case, we only want items for which classifier ’motorized’ contains ’j’ (’yes’), and does not contain
’n’ (’no’). This assures that no items with value ’j,n’ are selected.)
3.11. CLUSTER
57
Figure 3.12: A still from a clustering-visualization. In this case, the slider for the classifier
’chipping’ has been set to a large value; all other sliders are 0. This means that the distances
are only determined by the value of the ’chipping’ classifier, and tow clusters result: one with
chipping tools and one with non-chipping tools.
can take: if two items differ with respect to a binary classifier, this is more significant than when
they differ with respect to an n-ary classifier, n>2.
As far as the attributes are concerned, the distance between items is defined to be proportional to
the difference between the expectation values (=the average between the lower and upper values
of the interval) of their attributes. So for any two items we can compute a distance, which is
a contribution of the distances due to classifiers and due to attributes. This total item-to-item
distance is a (non-negative) number, which can be interpreted as the rest length of some spring.
In this view, all items are point masses, connected via springs. Items that are close together
are connected via short springs; items that have large distance have long springs between them.
When we animate this network of mass points and springs, we get an intuitive view of the clusterstructure among the items.
This is enhanced by the option to vary the influence of the various classifiers and attributes.
For instance, if we fully ignore a particular classifier C, items will belong to the same cluster
irrespective of whether they are equal or not with respect to C. The more classifiers or attributes
we ignore, the fewer clusters will be formed. To see this effect, we associate a slider to each
classifier and to each attribute.
3.11.2
Manual
Figure 3.13 is a screenshot of the cluster tool.
When the Cluster-tool is started, it will display a swarm of icons, each representing one of the
non-abstract items. (Abstract items, i.e., items with more than one value for any classifier are not
rendered in the cluster-view). In the top left corner of the form, there is a series of sliders. Each
58
CHAPTER 3. CREATIVITY AND SELECTION
classifier has an associated slider and each attribute has one. Initially all sliders are set to 0. In
order to study the clustering structure as a consequence of e.g. one classifier, the slider for that
classifier should be moved to a large(r) value. The swarm will then re-arrange to form clusters,
each cluster characterized by one value of the chosen classifier. When a second classifier-slider is
moved up, the clusters will segregate; for instance, if both classifiers have two values, a maximum
of 4 clusters may result.
It is allowed to move any selection of sliders; it will be difficult, however, to give a meaningful
interpretation to the clustering structure when more than two sliders are larger than zero.
It should be realized that the displayed item icons are mass-points in a network of springs. That
means that they are in a dynamic equilibrium. In fact, a small amount of noise is constantly
applied in order to keep the item icons moving. This helps to avoid that two items get stuck on
top of each other, which would hamper readability. For convenience, item icons can be dragged
around; all others will adjust their locations in order to keep the relative distances correct; this
can give further control over the layout of the swarm.
3.12
Pareto
3.12.1
Introduction
For any two attributes, we can plot the graph of all items in a Cartesian coordinate system spanned
by these two attributes. Every item is a dot in this graph; the uncertainty intervals give error
bars to this dot. In case horizontal and vertical attributes are equal, all dots are on a (45 degree)
line, and their order and spacing show the individual item-attribute scores. Such Pareto plots are
very useful to get an immediate understanding of trade-offs (with respect to any two attributes)
between items.
3.12.2
Manual
When the Pareto tool is launched, no ranking attributes are selected, and no Pareto plot is visible.
We select a ranking attribute by selecting the associated check boxes in upper left corner of the
form. The most recently ranking attribute is associated to the vertical direction; the previous one
is associated to the horizontal direction. By twice clicking on the same ranking attribute, this
attribute will be used both for the horizontal and for the vertical ordering: in that case, all items
appear on a diagonal line.
Items that are not dominated are colored green; other items are colored red.
3.13
Folk-ontology
3.13.1
Introduction
Even a large Assist project will contain no more than some 20 items and perhaps 10 or 15
classifiers. The represented knowledge is therefore extremely limited; still, constructing such an
ontology can easily take an hour or more. It can be very interesting, therefore, to combine multiple
ontologies into one, growing ontology that is made available to all participants. This is the folkontology. The prefix ’folk’ means, that the ontology is not the result of some orchestrated effort to
arrive at a consistent body of knowledge, like a traditional encyclopedia. Rather, it compares to
Wikipedia, where knowledge is contributed by multiple, anonymous authors. This means that no
guarantees can be given for the quality of the knowledge: it is possible that it contains disputable
3.13. FOLK-ONTOLOGY
59
Figure 3.13: A screenshot for the Pareto visualization tool. Ranking attribute ’tiresome’ has been
selected to be plotted horizontally and ’macho’ is selected to be plotted vertically. The items that
are non-dominated with respect to these two ranking attributes have been colored green; the other
ones are red.
60
CHAPTER 3. CREATIVITY AND SELECTION
or even wrong statements. For most applications this is a serious problem: if ontologies are used to
reason over a domain, consistency is a stringent requirement. In the divergence phase of a design
process, however, inspiration is more important than factual knowledge. Therefore consistency is
less of an issue.
The folk-ontology used by Assist can be thought of to contain 4 tables: one table with items, one
table with classifiers, one table with values, and one table where these three are coupled. In the
latter table, we can find tuples such as {ball, shape, round}, representing the fragment of world
knowledge that a ball is round.
Since the amount of information in the folk ontology can become huge (at the moment of writing,
the number of tuples is little over 3000), we need some tools to identify the right fragments of this
chunk of world knowledge.
The Folk-ontology form contains these tools.
There are four basic operations.
The two simplest ones are the import from an Assist project from the database, and the export
from an Assist project towards the database.
Two more advanced ones take the form of queries.
3.13.2
Manual
First we address import and export from and to the folk ontology database. These are controlled
by the two buttons in the upper right corner of the form. Notice: exporting information to the
folk ontology database is only allowed for registered users: you have to be logged in for the export
function to be available.
from folk ontology: at any time, an Assist project contains items and classifiers. By clicking
the button from folk ontology, a query is done to the folk ontology database to collect all tuples
of the form {ITEM, CLASSIFIER, VALUE}, where ITEM is one of the items currently in the
Assist table, and CLASSIFIER is one of its classifiers. The value VALUE is filled in into the
appropriate cell. If several tuples exist with the same ITEM and CLASSIFIER, their values are
added all, separated with comma’s. For Assist, the interpretation is that these items are abstract
items - even if this may not be the intended interpretation. For instance: an umbrella is made of
steel and textile. For a classifier material we therefore could imagine the tuple {umbrella, material,
steel and textile}. It is more likely, however, that there will be two tuples: {umbrella, material,
steel} and {umbrella, material, textile}, which suggests that there are two types of umbrella’s:
steel ones and textile ones. There is no provision, neither in the folk ontology nor in Assist to
deal with this anomaly.
to folk ontology (only for users that are logged in): this starts a dialogue where, for each of
the items and for each of the classifiers, the user is asked whether these should be exported. This
means that a user can decide only to export part of the knowledge in the current Assist project
to the folk ontology. Answers are ’yes’ (this item or classifier should be exported); ’no’ (this
item or classifier should not be exported, but next ones may); ’yes to all’ (this item should be
exported, and all following items as well, or: this classifier should be exported, and all following
classifiers as well); or ’cancel’ (don’t export anything and quit the dialogue). When all items and
classifiers have been checked in this way, the values in the cells are used for form tuples of the
{ITEM, CLASSIFIER, VALUE}-form (multiple tuples are formed when one ITEM-CLASSIFIER
combination has multiple values in its cell) and these tuples are written to the folk ontology
database. After that, the relevant parts of the database are reloaded into Assist, so that the new
information is available to other operations in Assist.
Two more advanced options to interrogate the folk ontology are the following.
3.13. FOLK-ONTOLOGY
61
add item query
An item query is a list of items, assembled by the user. These items are selected from the list of
all available items in the folk ontology. An item query is assembled by clicking the button add
item query; a complete-as-you-type dialogue is given to browse through this list (to be called
the item list, sitting in the top half of the form). Items in the item list can be assembled into the
query list, sitting in the bottom half of the screen. Entries in the query list are items, selected by
the user.
As soon as the first items have been entered into the query list, two more buttons appear: do
query, and cancel query. Clicking the do query button performs a query to the folk ontology
database. In this query, first the classifiers, and sets of values, are assembled that are shared by
all items. Suppose that the items are ’bottle’ and ’newspaper’, these classifiers include ’material’
(with values ’glass’ and ’paper’), and ’shape’ (with values ’oblong’ and ’rectangular’). Next it
finds all items for which all shared classifiers are defined, and where the values are among those of
the initial set of items in the query list. This set of items is returned, and presented in a third list,
to be called the result list which spans the entire form. This result list contains all resulting items
(including bottle and newspaper), all classifiers that are shared (including material and shape),
and for each item, the values of these classifiers. Tow new buttons occur: import result and
cancel result. The second one simply removes the result list; the first one adds all items and
classifiers and values from the result list to the current Assist table - as far as they did not yet
occur in Assist.
To modify the list of items in the query list, one can either click on an item in the item list: this
will add an item to the query list. Alternatively one can select an item in the query list and click
on the button delete query; this will remove the selected item from the query list.
The second way to interrogate the folk ontology is by means of a query based on classifiers, by
clicking the button add func query.
A func query is a list of classifiers, assembled by the user. These classifiers are selected from
the list of all available classifiers in the folk ontology. A func query is assembled by clicking the
button add func query; a complete-as-you-type dialogue is given to browse through this list (to
be called the classifiers list, sitting in the top half of the form). Classifiers in the classifiers list
can be assembled into the query list, sitting in the bottom half of the screen. Entries in the query
list are now classifiers, selected by the user; for every classifier there can be zero or more values.
In order to select the appropriate (set of) value(s), the classifiers list is split into two halves as
soon as an entry in the classifiers list is clicked: the admitted values for the selected classifier are
given in the right half of the classifiers list. Clicking on a value adds this value to the classifier
query as it appears in the query list. Clicking again on a value makes it go away; so the collection
of desired values can be easily determined. In the same way as with the item query, a func query
can consist of arbitrary many classifiers, each classifier with arbitrary many values. Classifiers can
be taken out the func query by clicking on the delete query button.
Similar as with item queries: as soon as the first classifiers-with-value-list have been entered into
the query list, the two buttons do query and cancel query appear. Clicking the do query
button performs a query to the folk ontology database. In this query, items are found for which all
of the classifiers in the query list possess one or more of the given values. The output of the query
takes exactly the same form as with the item query: first a set of items; next a set of classifiers,
and for every classifier the set of values assumed by this item. Similar as with the item query, the
result list can be canceled or imported into Assist.
62
CHAPTER 3. CREATIVITY AND SELECTION
Figure 3.14: This screenshot shows the preference tool where various Assist functions can be
controlled.
3.14
Preferences
3.14.1
Introduction
The behavior of Assist in various aspects can be tuned in the Preferences-tool.
3.14.2
Manual
Figure 3.14 shows the Preferences-tool in its default state. The following controls are offered.
allow quick ranking
With every added relation, Assist calculates a default mapping to colors. It is possible, however,
to adjust these default assignments. The standard way to do this is by means of using the sliders
(see 3.8. An alternative method, that is sometimes quicker, is to use the quick ranking tool. The
quick ranking tool is depicted in figure 3.15. If the option allow quick ranking is checked in the
Preferences tool, ranking attribute values can be adjusted directly in the Data Grid without having
to open the Slider tool. If a ranking attribute cell is clicked, a widget appears which contains 15
3.14. PREFERENCES
63
Figure 3.15: This screenshot shows the quick ranking tool, applied to the ranking attribute in
column ’tiresome’ item in the 4th row.
colored buttons. From left to right these buttons are arranged in increasing ’goodness’; from top
to bottom they are arranged in decreasing certainty. So the color of the top left button is bright
red; the top right button is bright green, and the lowermost button is white. Clicking a button
assigns the chosen color to the actual ranking attribute (= the ranking attribute in the actual
column, applied to the item in the actual row). Just as with the sliders, other ranking attributes
are adjusted when necessary in order to keep all relations valid - this includes the comparison
relations as well as the inclusion relations.
Notice: as a consequence of adjusting the ranking attribute value for some item, the item’s total
score is re-calculated. It is possible therefore that the item’s place in the total rank list changes. If
the option ’re-sort after summation’ is set, this means that the item may appear in a different row
- which may be somewhat confusing (in particular since, in general, it will be difficult to predict
when this happens, and what the new rank order number of the changed item will be).
pick values from list
When giving values for classifiers, Assist makes suggestions on the basis of the folk ontology. In
some cases, the knowledge domain that is modeled in an Assist may not benefit from the folk
ontology. In that case, it is quicker to simply type in values without having to select them from a
list. In that case, this checkbox should be un-selected; it is selected by default.
re-sort after summation
By default, any change of any ranking attribute value will give rise to a re-calculation of the total
64
CHAPTER 3. CREATIVITY AND SELECTION
item scores by means of the formula
Sj =
X
Wi Sij .
i
If the check box re-sort after summation is set, items are always sorted in the order of increasing
Sj whenever an update occurs (the order can of course be overruled by sorting the rows ’by hand’
as explained in section 3.2). This is convenient in most cases, but it can be confusing; for this
reason, Assist offers the option to switch off this feature.
hierarchical propagation of classifier values
By default, changes of classifier values propagate through the inclusion-hierarchy. That is, for a
classifier C, a parent item will have at least all values as any of its child items; conversely, a child
item will not have any values that do not appear in its parent item. A change in any classifier
value propagates both upward (in the direction of all parents and their parents) and downward (in
the direction of all children and their children). The consequences can be somewhat unexpected in
rare cases, as demonstrated in section 3.7.3 with the Hover craft, amphibean vehicle and Batcar.
To avoid such surprises, one may choose to switch off the automatic propagation.
A warning is in place, however: if classifier values have been set with the automatic propagation
being switched off, and at a later time the automatic propagation is switched on again, Assist does
not attempt to make all classifier values in accordance with the current set of inclusion relations
(indeed, this would be a non-deterministic process, since it depends on the items where we start).
So it is possible to end up with an inconsistency between intentional and extensional is-a relations
in that case.
number iterations
As explained, Assist applies a heuristic algorithm to make a default assignment of colors to
ranking attribute values in accordance with a set of ordering relations. For every change of the set
of ordering relations, this algorithm is executed again. The algorithm is an iterative algorithm,
and the quality of its result is better when the number of iterations is higher. ’Quality’ here means
the following. Suppose that we have a series of items i1 , i2 , i3 , ... in that are linearly ordered with
respect to some ranking attribute. So there is a full ordering relationship. If we map the values of
these ranking attributes to a numerical scale, we might want the default outcome to be uniformly
distributed. That is: we might want an interval scale, where the difference between the values for
im and im+n equals the difference between im′ and im′ +n . It can be shown that this outcome is
only reached in the limit of infinitely many iterations. With any finite number of iterations, items
’in the middle of the range’ will typically be packed closer than items near the extremes. For very
few iterations and a complicated set of ordering relations it is even possible that no assignment
of values can be found that is consistent with the set of ordering relations. Therefore it may be
necessary to adjust the number of iterations. The following trade of applies:
• advantage of large number of iterations: high quality, large probability that a solution will
be found;
• disadvantage of large number of iterations: updating the configuration of relations may be
slow (i.e., the questionnaire will take a while in processing the answer to a question; when
the smart questionnaire option is selected, only few candidate propositions can be tested
in the limited amount of allowed time to give a possibly meaningful question, and adding or
deleting relations in the Relations-tool may take a while).
It is recommended to play a bit with the setting of the number of iterations. If Assist reacts slow
it could help to bring the number of iterations down; if it frequently occurs that adding a relation
gives the error message that the process could not be completed ’because safe adjust returns false’,
it could help to increase the number of iterations.
3.14. PREFERENCES
65
color coding items: Pareto
When item scores are (re-)calculated, the results are given in color codes in the column itemRank.
The column itemName, however, can also reflect the results. If the option color coding items:
Pareto is chosen, the color scheme indicates the state of affairs in Pareto-sense. Itemnames that
are colored green are on the Pareto front (that is, they are not dominated); dominated items are
colored red.
color coding items: intervals
When item scores are (re-)calculated, the results are given in color codes in the column itemRank. The column itemName, however, can also reflect the results. If the option color coding
items:intervals is chosen, the color scheme indicates the state of affairs in interval-sense. Item
names on a green background are better than any other item; those that are red are worse than
any item; items that have their names on a yellow background are both better than any item and
worse than any item; items that are neither better nor worse than any item have white item name
fields.
ranks as colored boxes
Rank item values and item scores are mapped to colors as explained above. Colors reflect two
ordering systems at once: the comparison order in the hues and the certainty order in the saturation. This mapping to colors has the advantage that we don’t have to bother about whether
scales are interval scales or not. In rare circumstances, however, we might want to be informed
about the numerical outcome of Assist’s color assignment algorithm, or we might want to see
what adjustments we have made to the default values. In that case the option ranks as colored
boxes should be de-selected: in that case numerical values are given in the rank attribute cells
and the cells in the column ’itemRank’.
smart questionnaire
The questionnaire can use a maximum-mutual information strategy to pose more relevant questions
- that is: questions that will lead to a sharper distinction. This process requires large amounts of
calculations, however, which means that on a typical machine, not too many possible solutions can
be analyzed in the limited time that is allowed for this operation (indeed, since the questionnaire
is an interactive process, a next question must be available within few seconds after the user has
clicked the next question button). Therefore the smart questionnaire option can be switched on
or off, depending on the speed of the machine and the patience of the user.
IO: use local disk space: use the ’cookie’-kind of storage;
IO: use remote database: use the remote database modus of storage (not recommended; only
provided for backward compatibility);
IO: use remote files: this is the recommended storage mode;
IO: export or import as XML: for using Assist projects in other applications;
folk ontology language=dutch: the folk ontology system supports two languages: English and
Dutch. Preferably, the English language should be used; if the language is switched to Dutch, a
smaller vocabulary may be supported.
66
CHAPTER 3. CREATIVITY AND SELECTION
Chapter 4
Modeling: a Systematic Approach
’Models are made of variables. Invariably.’
4.1
The notion of a Model
Designing amounts decision taking. Professional design means: taking justifiable decisions. In
order to justify our decisions, we should understand their consequences, and we should take the
decisions such that the most beneficial consequences arise. These consequences, however, cannot be
observed yet: the decisions under consideration will only affect a future state of things. Therefore
we need models to predict the consequences as they result from (design-) decisions.
The notion of a ’model’ is very common in the daily practice of engineers and scientists. There is
quite a bit of confusion of the precise meaning of ’a model’, though. For our purpose, we will take
the notion of a model to mean three things:
• an intention or a purpose (what do we want to use the model for?);
• a set of assumptions (propositions that are not discussed);
• a consistent framework of model statements, which allow designers to take decisions (the
actual ’body’ of the model that forms a representation of a relevant part of reality).
The ’reality’ that the model refers to will both relate to the existing reality and the future reality,
as it will appear after the design is ready. These two aspects make a very big difference. When
we want to make a model about an existing (part of) reality, we can hope to verify some of the
model statements by means of observations. Indeed, reality can be observed, maybe by means of
experimental, empiric measurements. If we measure correctly, observations of the same piece of
reality are assumed not to be inconsistent, and this is a strong check of the validity of our model.
When we want to make a model (part of) the future, however, we cannot use experiments. We
cannot measure future things. The system we want to measure doesn’t exist yet, because we are
still designing it. So there is no simple guarantee that two model statements will be consistent.
67
68
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
This indicates that the consistency of models for not (yet) existing pieces of reality is a serious
and non-trivial issue. To give at least some ground to our reasoning, we will often make use of
mathematical models in designing. Indeed, since we want our models at least to be consistent, we
can benefit of the consistency that is offered by the language of mathematics.
4.1.1
Different intentions require different models
In many contexts, a model is understood to consist only of ’a (hopefully consistent) framework
of model statements’. We will show that this is clearly insufficient. The intention is a necessary
part of the model, and thinking about the intention should form a significant part of the effort of
model building. We will illustrate this problem by means of a typical industrial design example,
namely a corkscrew.
First, consider figure 4.1. This depicts the corkscrew ’as it is’. A photo is, in some sense, ’real’:
everything that is really there can be photographed. There are no deliberate approximations or
omissions. There are very few purposes, however, where we need a complete rendition of the
object we want to model. In all circumstances, where we need a model in order to answer a
particular question about the modeled object, we need to focus on these aspects of the object that
are necessary to answer the question. This gives rise, in principle, to a dedicated model for each
question we want to be solved.
We illustrate this by three different questions, shown in figure 4.2. First of all, a model for the
entire corkscrew could consist of a cylindrical shape with the overall dimensions of the corkscrew,
as shown in figure A. Such a model could be useful, for instance, for establishing the dimensions of
the packaging. On the other hand there is a model that shows the actual looks of the corkscrew.
(B). This could serve in a decision process regarding various shapes of the handle; since the decision
only regards the shape, we need to provide neither material properties, colors nor dimensions. The
last model (C) could be useful in arguing about ergonomics: the pitch should be such that inserting
the corkscrew in cork should not require too much torque, whereas at the same time pulling the
cork by the screw should not cause it to break; similarly, the point angle should be small enough
so that the screw can be inserted in the cork, and should be not too small so that a serious safety
hazard results by careless handling.
We have now made some very different models that are each adequate only when we know what
intention they should fulfill. There is a risk that these models become inconsistent, and the
designer has to safeguard against these inconsistencies.
Prior to develop a model, we should be very certain about the purpose we will be needing the
model for. Omitting the intention of a model makes the effort of building that model a useless
waste of time.
4.1.2
The role of assumptions
We have seen the necessity to have a clear understanding of the role of intention when we want to
build a model. The role of the assumptions is a subtler one. If we accept that the ’total’ context
of a design situation is always too large to handle completely, if follows that the arguments and
decisions are only made within the current model(s). A ’correct’ decision at best means ’a decision
that is consistent with the statements in the current model(s)’, and therefore consistent with the
assumptions that underlie those models.
Indeed, the model(s) take(s) over the role of the real design context, as the designer’s mind is not
capable to deal with the entire reality, and the ’real thing’ does not exist yet. This suggests the
following scheme (see figure 4.3:
step 1: assumptions result from the designer’s intuition and experience; however, they need not
4.1. THE NOTION OF A MODEL
69
Figure 4.1: A photograph of a corkscrew.
to be ’correct’ or ’complete’ in some sense. Remember that reality is always more complicated than we think, and the assumptions serve to abstract (= to simplify) from reality.
Assumptions can, at best, only be ’reasonable’. To a large extent, they are non-unique and
subject to negotiation.
step 2: since assumptions cannot be verified as being objectively ’correct’, they can only be
assessed as (subjectively) ’reasonable’. This assessment should therefore be, ideally, an
agreement (’contract’) between the designer and the stakeholder(s). This means that the
designers is not solely responsible for the absolute correctness of his design decisions: he is
only responsible for the decisions being consistent within a model that in turn is consistent
with the assumptions. Since these assumptions were agreed upon with the stakeholder, the
responsibility for the assumptions is shared between designer and stake holders.
step 3: stake holders in general will not have the competence to build models. The construction of the model(s), that should be consistent with the assumptions, is in those cases the
sole responsibility of the designer. This model is the source of justification for (all) design
decisions, so this model plays a crucial role in the entire design process. Therefore, a designer should pay ample attention to model building; a professional designer should be a
professional model builder.
In practice, the distinction between the various phases and steps may not be very clear. In some
cases, this is no problem. If the design is relatively simple, if it is not very innovative, or if no
large amounts of money are involved, it is not necessarily disastrous if some phases are skipped.
On the other hand, many dramatic court trials could have been avoided if designers would have
paid (more) attention to the phase of identifying assumptions and would have negotiated these
assumptions with their stake holders.
Finally, the steps and phases in the above scheme are not necessarily taken in sequential order:
some assumptions are ’discovered’ only when part of the model is already built.
70
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
Figure 4.2: Three different, complementary models of a corkscrew. A: a model of the global
geometry, ignoring all internal details; e.g., necessary for packaging. B: a visual rendition to show
the shape of the handle, e.g., necessary in decision making about the handle to be used; C: a
model of the pitch and the top of the corkscrew, e.g. used to deal with the trade-offs between
ease-of-use, mechanical integrity, and safety.
4.1. THE NOTION OF A MODEL
71
Figure 4.3: Four phases in designing an artifact, using a model. The two left most phases mainly
relate to identifying assumptions and negotiating assumptions with stake holders. Once the assumptions have been established, the model(s) should make consistent usage of these assumptions,
and the validity of the resulting artifact (under the assumptions agreed upon earlier) can be logically justified.
4.1.3
Multiple models co-exist in any design process; consistency
Even in our corkscrew example, we have seen that we often require multiple models at the same
time in a design situation. Each of these models is a very restricted view to ’reality’ (existing
reality or future reality). Typically, we use one model to justify one decision, and another model
to justify another decision. If these models are independent from each other, it is very conceivable
that the decisions end up being inconsistent. Inconsistency between models is a very common
source for confusion or worse. The mathematic models that we will introduce later have the
main advantage that, provided that two models use the same mathematical language, and the two
models use the same set of variables, consistency follows from the fact that mathematics itself is
consistent.
4.1.4
Purposes for models in design
After our first encounter with models, we can say that models serve the following purposes:
• form a summary of the part of reality that is relevant for the design process at hand;
• facilitate the negotiation and justification of design decisions among designers and between
designers and stake holders;
• allow a distinction between the intuitive part of a design process (= the part where assumptions are identified) and the rational part of design process (= the part where consistency
of design decisions is to be ensured).
Further, we remember that designing is a process of taking decisions such that in a future situation,
one or more stake holders will become happy. Therefore, a model
• should allow to predict the future consequence of a decision.
72
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
4.1.5
Requirements on models
To fulfill these purposes, a model should meet with the following requirements:
• it should be sufficiently rich (= contain sufficiently many aspects of the design context) so
that the designer can safely base his decisions on the model;
• it should be sufficiently simple to ’fit in the mind’ of the designer (or to fit in a computer
in such a way that the designer feels confident to deal with the model). In particular, the
designer should be able to verify the behavior of the model, to check tat it corresponds to
his/her intuition, and therefore to trust the model;
• it should be sufficiently precise that consistency of decisions can be assessed and predictions
can be made. The model has to be consistent with both internal and external findings.
A model is not consistent with internal findings, if it can lead to two opposite conclusions.
In case of external findings, one could think of measurements from ’reality’ (e.g. physical
phenomena) or results from other models.
• it should not be too precise: the assumptions that lie at the basis of the model necessarily
cause simplifications with respect to reality. These simplifications give implicit upper bound
to the precision of any conclusion that can be drawn from the model. A model should not
attempt to be more precise. This pseudo-accuracy is a serious source of waste of energy,
confusion, and unjustified expectations in the communication between designers and stake
holders.
4.1.6
Variables and relations
Variables form the main ingredients of any model.
Designer’s decisions are based on models, and the justification of a decision follows in a logical
and consistent manner from those models. The models are built and used as an integrated part
of the design process. A model consists of variables and relations between those variables.
We define a variable as a container that can hold a chunk of information. For instance, for a
corkscrew that is to be designed, a variable could be ’the material of the handle’, with possible
values ’wood’, ’plastic’, ’glass’, et cetera. The contents of variables are allowed to change (hence
the name ’variable’)- but they don’t have to. A constant is just a special kind of variable.
In the context of developing our models, we will encounter some variables that contain numbers,
others contain words, geometric figures, etc. In order to manage variables, we will assign names
and types to them. A name will be a word that is any combination of letters and digits. A type
defines the type of information that can be held in the variable.
Type of a variable
In our example of a variable being the material of the handle of the corkscrew-to-be-designed, it is
clear that ’orange’, ’Wednesday’, or ’12’ would not be allowed chunks of information to be kept in
that container. In another example, when the color of an umbrella is considered to be a variable,
’orange’ would however make perfect sense. Apparently, a variable cannot hold any arbitrary type
of information. With a variable we associate a type, which can be defined as the set of things
it can contain. The type of a variable is the set of all possible chunks of information that this
variable could hold.
In many cases, we have to deal with information that is numeric, e.g. with numbers continuously
ranging from 1 till 10. In other cases, we have to deal with information that is discrete, e.g.
{1, 2, 3, 4} or {red, white, blue, green}, et cetera.
4.1. THE NOTION OF A MODEL
73
Value of a variable
We can talk about the relation between a variable and the chunk of information it currently holds.
We say that the value of a variable V is C if C is the chunk of information, currently stored in V .
Relations
Relations express that values of various variables are not independent, hence they give the connection between different variables. Relations can be divided in two sorts:
• functional
• non-functional
A functional relation is a relation that amounts to a (mathematical) function. A mathematical
function is a recipe to produce an element of a set (called the range) given an element of a set
(called the domain).
An example of a functional relation is: y = x2 . Here, x can have all possible values and is part
of the domain and only one possible value of y follows from the relation for each x and is part of
the range. A function does not have to be a result of a calculation: if the domain consists of the
names of various persons, then the corresponding range could consist of the places of birth.
In design, eventually everything (with respect to modeling) boils down to expressing the stake
holders’ happiness as a function of design decisions. Therefore the most useful relations, as far as
constructing models for design is concerned, are functional relations.
A value from the domain of a non-functional relation (often misleadingly referred to as ’implicit
functions’) has multiple possible outcomes. An example of such a relation could be: y 2 + x2 = 1.
It constrains the value of x when y is given, and it constrains the value of y when x is given, but
it does not allow to compute y from x, nor vice versa.
4.1.7
Categories of variables
Variables are the major components of a model. As we have seen a variable comes with a type,
which is the set of values that the variable can contain. In order for variables to act in a model,
however, we also need to pay attention to the various roles that variables can play in our model. We
recollect that designing was defined as ’taking decisions in order to increase the future happiness
of stake holders’. In order to successfully tackle a design problem, it is very important to allocate
the variables of interest to the proper category, which indicate the various roles.
Categories I and II
There are, at least, the following two roles for variables:
I. Variables where the values result from autonomous decisions of the designer;
II. Variables where the values represent the amount of happiness of the stakeholder(s).
Examples of category-I are the choice of material for a certain compound; dimensions of a certain
part; configurations for a certain network, et cetera. Examples of category-II are the energy
consumption, the expected failure rate, the ease of control, et cetera.
74
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
For each of the variables of category-II, we can say that it should be as large as possible (e.g.,
performance, speed) or as small as possible (e.g., price, environmental impact). In other words,
the variables in category-II need to get optimized (optimized can either mean maximized or minimized ). We will see later why we had to add the predicate ’directly’ in the definition of category-II.
Dependencies
It is important to establish the dependency relations between variables in categories I and II.
First, we can argue that variables in category-I depend on variables in category-II. Indeed, a
designer who wants to achieve certain goals will take his decisions in dependency of these goals.
For instance, in order to meet the goal of ’the mass of an artifact must be as small as possible’,
she will choose aluminum rather than concrete for the main components. So the choice of the
designer gives rise to a dependency of the form v1 = g(v2 ) for variables v1 and v2 belonging in
categories I and II, respectively.
On the other hand, we can argue that variables in category-II depend on those in category I.
Indeed, once the choices have been made, and the artifact is realized according to these choices, it
will manifest itself, and it will display a certain behavior. The properties, represented by variables
in category II, follow from this manifestation and this behavior. So this gives rise to functional
dependencies of the form v2 = f (v1 ).
However, if we want to construct a (mathematical) model, the simultaneous existence of both
types of functional relations, v1 = g(v2 ) and v2 = f (v1 ) is extremely awkward. Therefore only one
type of dependency is desirable.
Category I : independent, autonomous; Category II : dependent
In order to arrive at a simple protocol for developing mathematical models that should support
designing, we demand that v2 is to be regarded as dependent, and v1 as independent. So we only
admit functional relations of the form v2 = f (v1 ), and we forbid relations of the form v1 = f (v2 ).
There are three arguments for this choice:
• First, design decisions always affect the future, so the variable v2 assumes its value at a later
time than v1 . In accordance with our understanding of causality, the later occurrence of a
value for v2 depends on (= may be caused by) the earlier decision of the value of v1 - and
not the other way round. In the example of the mass of an artefact (a category-II variable)
and the choice for a material (a category-I variable), this is clearly visible. Indeed, the mass
of the object is the sum of the masses of all components. So if we now choose aluminum
for one component, and tomorrow we choose glass for another component, the mass will be
the sum of the weights of the aluminum component and the glass component. But the mass
will only be known after all choices have been made. We could say that the mass gets its
definitive value ’later’ than the values of the individual category-I variables.
• Second, a designer is autonomous in his design decisions. Even though value w1 for variable
v1 would give the best result for, say the performance of the artifact, the designer is free
to choose another value, say w1′ . This is even quite probable, since there will be several
variables in category II that together define the goal of the design (or, to put it differently:
that together model the happiness of the stakeholder). Typically, trade-offs have to be made.
• Third, the function f will, in most cases, have no inverse. For instance, suppose that v1 ,
being one of the variables in category II is the mass of the artifact, and v1 , being one of
the variables in category I, is its color. Let us assume that the color does not affect the
mass: then v2 does not depend on v1 . In other words, v2 = f (v1 ) is a constant function,
and therefore its inverse f −1 with v1 = f −1 (v2 ) does not exist. As another example, we look
4.1. THE NOTION OF A MODEL
75
again at the mass of a compound object consisting of several components. From the value
of the mass we cannot deduce the mass of the components (’8’ could both be ’4+4’or ’5+3’);
given the masses of the components, however, the mass of the total compound object follows
uniquely.
The conclusion is that variables in category I are independent variables, and variables in category
II are dependent on variables in category I. So we have:
I. Variables representing free, autonomous decisions (choices) by the designer;
II. Variables representing the happiness of the stake holders.
Finding category-II variables from category-I variables
Designing amounts to optimizing stake holders’ happiness; therefore, ideally, we should start
any design process by identifying exactly what constitutes this happiness. Initially, we should
completely ignore any hint of a solution; there should be no category-I variables at all, since any
premature idea of what the artifact could look like would constrain our solution space - or worse:
it might bias our solution space to something that would be less than optimal in view of the
intended stake holders’ happiness.
This might be illustrated by the following story: once upon a time, a customer approached an
industrial designer with the request to design a corkscrew. Based on his common sense of what a
corkscrew should do, the designer could start from a mental image somewhat like figure 4.1, and
she could start thinking of category-I variables such as the material of the handle; these categoryI variables influence such aspects as price, robustness and ’looks’, so she could verify with the
customer if these are suitable category-II variables. Our designer, however, follows a different
route. She starts the following dialogue.
Designer: ”What is the corkscrew to be used for?”
Customer: ”To remove a cork from a bottle of wine.”
Designer: ”Why do you want to remove a cork from a bottle of wine?”
Customer: ”In order to let the wine out of the bottle and pour it into a glass.”
Designer: ”Why should the wine be poured into a glass?”
Customer: ”To facilitate drinking it.”
Designer: ”Why do you want to drink wine?”
Customer: ”Because I want to get drunk.”
Designer: ”Why do you want to get drunk?”
Customer: ”Because I want to forget my sorrow related to my bad marriage.”
Designer: ”Why do you want to forget your sorrow?”
Customer: ”Because it makes my unhappy, and I want to be happy.”
The above dialogue illustrates various interesting aspects from design processes, the role of biases,
and category-I and category-II variables.
• The dialogue stops at the point where the customer mentions that ’something will make
him happy’. It is regarded as an axiom that people want to be happy; the question ’why do
you want to be happy’ is therefore not in place. Ideally, however, any interrogation as to
what purpose should be fulfilled by the artifact-to-be-designed should continue to the level
’... because this is what constitutes (part of) my happiness’.
76
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
• Each of the intermediate answers (purposes) could have been realized in many more ways
than by the given approach. For instance, in order to remove a cork from a bottle, we could
push it into the bottle, we could drill a hole in it or we could burn it. The solution to use a
corkscrew is merely a default solution, which pops into mind first, and which usually blocks
any further thinking.
• Concluding that, for instance, the ease of removing a cork from a bottle would be a categoryII variable is premature if a little while later it becomes obvious that ’a corkscrew’ is perhaps
not the best possible solution to remedy the customer’s unhappiness. Instead, promising
solutions could be sought among those that address intentions that are close to ’... because
it makes me happy’. In the present case: consult a marriage councillor, get a divorce, or take
a mistress. Associated category-II variables could relate to the intentions of the customer’s
wife (does she want to continue her matrimonial state?), to the moral standards of the
customer (is divorce acceptable?) or to his ability to attract women (is it possible for him
to find an interested lady?)
The above way to obtain the ’true’ intention of the artifact-to-be-designed (and therefore, the
’true’ category-II variables) may be the most ’pure’ in the sense that it allows the broadest possible solution space (after all, a corkscrew is still a possible solution, so it is included in the solution
space; together with a device for drilling holes through corks, the address of a bar where cheap
liquor can be obtained, and an appointment with a marriage councillor). Furthermore, it is the
’purest’ in the sense that it attempts to keep the influence of (implicit) default thinking to a minimum. At the same time, it is a very idealistic and, in many contexts, not so very practical route.
Imagine an engineer designing a specific component (say, the control software for a cooling water
pump) of a much larger installation (say, an electric power plant). Reasoning along the above lines
would, along the way, produce questions such as ”why should electricity be generated by means
of fossil fuel”, and even ”why do the citizens of X require energy?” These questions are extremely
relevant, and they can lead to drastic innovations that have major economic, environmental and
even existential impact. But they are presumably not supposed to be addressed by the engineer
who is responsible for the software to control the cooling water pump. Design processes take
place at various levels, from overall system design level (such as the development of technological infrastructure or socio-economic aspects of governmental policies), to the very much detailed
level (such as the choice of a particular statement in a software program or a particular electronic
component in a logic circuit). At each level, a sequence of questions leading to the assessment of
happiness of stake holders can be constructed, but this sequence has varying relevance depending
on the size of the problem and the expected impact of the solution.
So, the question remains: if a complete ’how-does-this-lead-to-happiness’-analysis is not feasible
how then can we obtain meaningful category-II variables? A related question is: suppose that we
don’t want to explore the entire solution space, how should we find category-II variables if we want
to find an ’optimum’ in a restricted solution regime (that is, we have an idea how the solution
should look like - we ’merely’ have to decide a number of its parameters)?
In this case, strictly speaking, we started from the wrong side. We have a number of category-I
variables, and in order to choose optimal values for them, we should construct reasonable categoryII variables. Even though this is the wrong side to start the process, in many cases it is the most
practical side - if only we approach the problem to find suitable category-II variables in the proper
way. We can do so as follows.
First, we assume category-I variables of ordinal type (say, a range of numbers). By definition,
these can be chosen freely, so we could do the thought experiment of making them extremely
large or extremely small1 . If we seek such extremes, the artifact-to-be-designed will develop into
something that, eventually, may no longer capable to perform its purpose. Analyzing the precise
1 In
case numbers are inherently natural numbers, ’extremely small’ means zero.
For instance, the
smallest number of doors in a building is zero, which essentially means ’no doors at all’ which suggests buildings such as the famous Mies van der Rohe pavilion for the 1929 world exhibition in Barcelona
4.1. THE NOTION OF A MODEL
77
Figure 4.4: A cloth drying rack.
reason why it ceases to be useful must reveal the reason why, for a less extreme value, the artifact
is useful, in other words: it must reveal one or more category-II variables.
As an example, consider a cloth-drying rack, such as in figure 4.4.
Two obvious category-I variables are N , the number of rods, and D, the distance between two
adjacent rods. Applying the above reasoning gives the following results:
• limN →inf gives an extremely large rack. Obviously this is unwanted; hence, it is plausible
that a ’good’ cloth-drying rack should occupy minimal space. The occupied space is therefore
a meaningful category-II variable.
• limN →0 gives a rack without rods. This cannot support any pieces of clothing, which renders
the cloth-drying rack useless. So, a second category-II variable is the number of pieces of
clothing we can hang on it.2
• limD→inf gives a rack that occupies an infinite amount of space - which produces again the
category-II variable ’amount of occupied space’.
(http://www.designboom.com/portrait/mies/barcelona.html). In other cases, temporarily ignoring the fact that
the default interpretation of a variable would be a natural number can lead to other interesting concepts. For
instance, the amount of legs underneath a table seems to be a natural number that cannot be less than 0. So the
question is: what would a negative number of legs inspire to? The interpretation that an ’inverted’ leg is a suspension cable is not outrageous, so this leads to a table as a platform hanging from something. ’Inverted’, indeed: a
traditional table leg is loaded by a compression force; a suspension cable is loaded by a negative compression force.
2 We could try the option of a negative number of rods. This means that we first must give an interpretation
of an ’inverse rod’. This could be an absent rod - in other words: a hole or a pair of holes in which a rod could
be mounted. In other words: we invented an extendible cloth-drying rack. No we can take a further step: what
happens if this number of holes goes to infinity (in other words, the case limN →− inf : obviously, a rack with too
many holes in it would get very unstable. So: stability is another category-II variable.
78
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
• limD→0 gives a rack where the rods are extremely close together - which is bad for drying
(indeed, to dry, air must be able to pass between pieces of clothing). So a new category-II
variable relates to the amount of air that can pass in between adjacent pairs of rods.3 .
Notice that the process of sending (ordinal) category-I variables off to their extremes quite often
gives insight into fundamental trade-offs that are hidden in the design problem. In the present
case of the cloth-drying rack, the amount of accommodated pieces of clothing and the occupied
area form a trade-off. This trade-off is closely coupled to a second trade off: the amount of
accommodated pieces of clothing and the drying efficiency (the closer the rods, the more pieces of
clothing, and the slower the drying). This automatically introduces a further category-II variable:
the drying efficiency, perhaps operationalized by the amount of time it takes for a fully loaded
rack to dry. The simples possible model, relating all category-I and category-II variables would
be (ignoring the exotic cases of negative N or negative D:
• minimize N × D (area);
• maximize N (amount of clothing that can be accommodated);
• maximize N × µ(D) (drying efficiency; µ is some monotonically increasing function that
approaches a constant, asymptotic value for D sufficiently large, to express the effect that
clothing hanging too dense won’t dry).
Next we consider the case where a category-I variable is not ordinal. Of course, taking (numerical)
limits makes no sense. Still, the same line of thinking may be followed: substitute extremely
implausible values for the category-I variable will result in unwanted behavior of the artifact-tobe-designed, and, after further analysis, it will reveal a category-II variable. We elaborate again
on the example of the cloth-drying rack. The choice of material of the rods is a category-I variable.
Implausible values are, for instance, paper, uranium, gold, or glass. Analyzing the reasons why
these materials won’t work teaches us:
• paper would fall apart due to the dampness, so the material should endure water;
• radioactive uranium would contaminate the cloths, so the material should not leave any
traces (of dirt) on the clothing;
• gold is outrageously expensive, so the material should be cheap;
• glas is rather vulnerable, and gives dangerous splinters when it breaks, so by breaking or
damaging, the material should not produce any harmful debris.
Finally, for the creativity buffs, we can use the method again to get inspiration for non-conventional
alternatives to the cloth-drying rack:
• paper inspires to think of blotting paper : why not develop a drying concept that is based on
absorption of water by means of some contact substance?
• uranium (which heats itself due to radioactivity) inspires to use some exothermal reaction
to produce heat to dry clothes, perhaps using substances that can be mixed with detergents.
This technology is used, for instance, in self-heating coffee cups that allow hot coffee to be
sold in large public events without the need of kingsize boilers.
3 D is not a natural number; it is a real number, but its interpretation is ’distance’, therefore it cannot be negative
either. Of course this stimulates us to think of an interpretation of D < 0. In some applications of geometry, we
use ’negative distances’. For instance, the distance between a point and a circle is sometimes counted negative
when the point is inside the circle. Talking about inside: this relates to the rods being hollow: perhaps the drying
process of the cloth-drying rack would be improved if hot air would be blown through the rods (perhaps the rods
then should slowly rotate to allow the cloths to be dried more evenly).
4.1. THE NOTION OF A MODEL
79
• gold is a shiny material, mystic symbol of the sun, which alludes to the use of reflected
(sun)light to dry clothing (perhaps using a burning-glass to concentrate sunlight).
• glass is transparent, which associates to the notion of inspection: a simple sensor could make
up for an intelligent cloth-drying rack that could warn the user when the cloths are dry.
Category-III: contextual variables
In order to build a model for a design case, we will probably not be able to write down the
dependencies of variables in category II on those in category I right away. Typically, models are
built up incrementally adding variables one by one.
In doing so, we will most likely encounter variables that are neither in category I nor in category
II. For instance, suppose that we are designing a commodity, and we want to optimize the amount
of profit that will result from selling it. Let v2 = the total income, and v1 = the selling price. It
is clear that v2 = f (v1 ), but we cannot write down function f unless we know how many copies
will be sold. We can reasonably assume, however, that there will not be more copies sold than
the number of people living in, say, the Netherlands. (Assume that this is a type of commodity,
of which people only posses one copy, like a refrigerator). So there is a new variable that enters
our model: v3 = the number of inhabitants in the Netherlands. Clearly, v3 is not in category I:
we cannot autonomously decide on the population of the Netherlands. Also, v3 is not in category
II: we cannot hope that v3 will increase (or decrease) as a result of one of our decisions; neither
will the increase or decrease of v3 increase the happiness of our clients. Therefore we need a new
category:
III. Variables representing quantities in the context of our design, which don’t depend on the
design decisions. Variables of category III are determined by external circumstances, e.g.
physical constants or customers’ demands. The designer has no opportunity to adjust the
values of such variables
Variables in category III are assumed not to depend on any of our design decisions, but the values
of (some or all of) our objective variables may depend on them.
Category-IV: auxiliary variables
Finally, we will encounter variables in a 4th category. Indeed, let us stay with our example
of defining the selling price of our commodities. It is obvious that not all inhabitants of the
Netherlands will buy a copy, but only a certain percentage, say v4 . So we get that the product
of v3 and v4 is the number of sold copies. It is clear that v4 is not in category I, since we cannot
autonomously decide how big it will be. Indeed, people are free to decide what they want to
buy - although we perhaps can influence their decision somewhat by the decision to invest in
advertisements. So v4 could be a function of a category-I variable - in this case, the amount of
investment in advertising.
Also, v4 is not in category II, since the happiness of the stakeholder does not directly depend on
v4 (even though it does depend on v4 indirectly, but category II was about those variables that
directly represent stakeholders’ happiness). We are not necessarily performing better if v4 is big
and v1 is small or if v4 is small and v1 is big. It is only the product v1 v3 v4 = v2 that should be
optimized. Finally, v4 is not in category III, since it does depend on the outcome of our choices.
(For instance, if v1 will be outrageously high, v4 will be close to 0). Therefore, it must be in a 4th
category:
IV. Variables representing quantities that depend on variables in categories I or III, and that
influence variables in category II, but that themselves are not in category II.
80
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
Category
May depend on
I
independent
decision variable
nothing;
autonomy of
the designer
II
objective variable
all categories
III
contextual variable
IV
auxiliary variable
nothing;
beyond the autonomy of the
designer
all categories;
variables in
categories II
and IV may depend
on these
variables.
Meaning w.r.t. the
design decisions
Represents the
design decisions
Type
Example
any
Represent goals;
the variables in
category I should
be such that variables in this category are optimized
Ordinal,
numeric
dimensions,
materials,
configurations
of the ATBD
(=artefact to be
designed)
optimized
performance,
quality, profit
related to the
ATBD
any
any
social and geographical circumstances; legislature;
physical constants
internal parameters
of the ATBD; variables
that are affected
by the ATBD but that
are not mentioned in
the objectives.
Table 4.1: A taxonomy of the four categories of variables in a model
A second distinction between variables in design models
Now we can make a second distinction between various kinds of variables. All variables of the four
different categories can be subdivided in three types:
Nominal: values that have no ordering (e.g. French, British, Dutch)
Ordinal: values that do have ordering (e.g. hardness of material)
Numeric: values that do have ordering (e.g. temperature)
Variables of category I, III and IV may be of any type: ordinal, nominal or numeric. Variables
of category II, however must be either ordinals or numeric. Indeed, we need to be able to rank
one solution relative to another, and ranking requires an ordering. For each of the variables of
category II, we can say that it should be as large as possible (e.g., performance, speed) or as
small as possible (e.g., price, environmental impact). The properties of the four categories are
summarized in table 4.1.
As mentioned before, it is important to properly allocate the existing variables to one of the categories. In literature and daily design practice it occurs only too often, that designs are optimized
in a non-category-II variable. Also, in practice, category-I variables are sometimes not optimized
at all: they receive a value as a result of a default choice. There can be good reasons for not
optimizing a category-I variable (for instance, because the expected benefit in terms of improved
values for category-II variables does not compensate for the effort), but it is generally a good idea
to be aware of this choice.
4.1. THE NOTION OF A MODEL
81
Nomenclature
In the sequel, we will heavily make usage of a number of key words that are relevant for a systematic
approach in design.
Concepts: the things that are relevant, because
• they come to mind;
• they occur in a type (see below).
Attributes: the chunks of information that need to be known for a concept in order to serve in
the model we are building;
Values: the value of an attribute is the information that is currently stored in an attribute. Values
can be a result of:
• measuring (typically for category III);
• computing (according a model; typically for categories II and IV);
• (educated) guessing (typically for category III; sometimes in category IV if we don’t
have a model (yet));
• choosing or deciding (typically in category I);
Notice that a value can also be a concept in its own right. For instance, consider the
attribute ’shape’, for instance applied to the concept ’dish’. Values of ’shape’ could be, for
instance, ’round’ (for a round dish) and ’rectangular’ (for a rectangular dish). But the value
’rectangular’ means that the shape is a rectangle, and a rectangle is by all means a concept.
Indeed: a rectangle contains information that can be accessed by means of attributes (such
as ’width’, ’height’, ’area’, ’perimeter’, and others). In this case we say that the type of the
attribute ’shape’ is a compound type: a type where values are concepts rather than atomic
values. Atomic values, also called simple values, are values such as ’1’, ’orange’, ’Wednesday’:
there is no further information embedded within atomic values. When no risk of confusion
exists, we apply the notions ’compound’, ’atomic’, and ’simple’ both to attributes and to
the values that can be stored in these attributes. So ’shape’ is a compound attribute, and
’rectangle’ is a compound value. A type that is not a compound type will be called an atomic
or simple type. Simple types are, for instance, numbers, colors, Booleans, week days, ...
Variable: an attribute applied to a concept. For instance, ’radius’ is not a variable, but an
attribute. The radius of the front wheel of my bicycle, however, is an attribute of the
concept ’front wheel of my bicycle’, and is therefore a variable.
Type: a set of all possible values an attribute may take;. When no risk of confusion exists, we
can also refer to ’the type of a value’, for instance: the type of ’3’ is integer.4
Relations: relations, other than functional relations, express that values of various attributes are
not independent.
Next example illustrates the use of this nomenclature and its notation.
Suppose a designer wants to design a pump. The pump, P , is the concept. It has various
properties e.g. ’diameter’ and ’work principle’. The latter ones are the attributes of the pump
and give rise to the variables P.diameter and P.workP rinciple. A dot (.) between two names
4 The risk of confusion is, however, rather large. If we say that ’3’ has type ’integer’, we implicitly assume that ’3’
is a value of an attribute that allows all possible integer values. For instance: if the attribute is ’number of tokens’,
and the concept to which the attribute is applied is ’playing card’, the admitted values are only 1,2,3,4,5,6,7,8,9,10.
So stating that the type of ’3’ is integer is, in that case, meaningless or at best rather unspecific. Therefore it is
always better to reserve the notion of ’type’ to attributes rather than to values.
82
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
Figure 4.5: In a model that serves to support design decision, variables can play four different
roles; this introduces four categories of variables.
expresses that the left thing is a concept, and the right thing is one of the attributes of that
concept. Now let’s say that the pump P is a centrifugal pump (=the work principle has value
’centrifugal’) and has a diameter of 20 cm. These (’centrifugal’, ’20 cm’) are the values of the
attributes (’work principle’, ’diameter’), respectively. These values are chosen from a set of possible
values, known as the types. This is denoted in the following way: P.diameter ∈ {10, 20, 40, 60}
and P.workP rinciple ∈ {vacuum, piston, centrif ugal, membrane}. Another attribute can be
P.f lowRate. The flow rate is related to the diameter. In that case a relation can be established
R(P.diameter, P.f lowRate). Whether this relation is a function, and if it is a function, whether
we have P.f lowRate = f (P.diameter) or conversely P.diameter = g(P.f lowRate) still remains to
be seen (although in this case, it is quite obvious that the first alternative holds).
As stated before, we will regard variables always as attributes of a concept. Therefore, ’diameter’
is not a variable, but ’P.diameter’ is. Indeed, the word ’diameter’ could refer to a large amount
of diameters in the system under consideration. By explicitly mentioning the concept to which a
diameter applies, we disambiguate.
The figure 4.5 shows how the various variables (=attributes belonging to concepts) are related.
These attributes, being variables of all four categories, and their relations together form the
model. This model expresses the values of the variables to be optimized (category II) in terms of
the remaining variables.
4.1.8
Cyclic dependencies
It is very important that the model built does not contain any cycles. If a cycle would occur, this
would mean that there is a chain of dependencies that would indicate that a variable depends on
itself. This is typically a symptom of an inconsistent model. Programs such as Excel and other
spreadsheets report an error if a cyclic dependency occurs. (Notice that, due to our definitions,
cycles can only occur inside category IV!)
It seems quite obvious that no cycles should exist, but in many design projects, a considerable
amount of time is wasted because designers do not realize that they are in fact plagued by one
4.1. THE NOTION OF A MODEL
83
or more cycles. Very often, the occurrence of cycles manifests itself in lengthy, non-productive
discussions that seem to go in circles. A particular nasty circumstance occurs if parts of the cycle
reside in the heads of different designers in the team. In other words, A thinks that y = f (x); B
thinks that x = g(z), and C thinks that z = h(x). Unless A, B, and C communicate explicitly
their assumptions about the dependencies f , g, and h, it can take weeks before they discover the
underlying cause of the problem. Even if it were only for avoiding these non-productive discussions,
it would be worthwhile to explicitly list the variables that make up the current model and to point
out the dependencies between the model variables. This helps to see which quantities depend on
which.
Constraints
When we incrementally construct a model, adding variables and functions while we go, we may
sooner or later encounter a cyclic dependency. Fixing the cycle by replacing functional dependencies by non-functional relations, confronts us with (a set of) simultaneous relations. Once we have
stated which variables belong in categories I and III, we know which variables are the unknowns
(namely, those in categories II and IV). Then the set of relations boils down to a set of simultaneous equations. These form the so-called constraints in our model. Notice that the constraints do
not necessarily exist between numerical variables. Non-numerical, and even non-ordinal variables
can - and will - also partake in constraints.
How to deal with constraints
For an example of handling constraints we refer to a simple design problem. Suppose we want
to manufacture a box out of a piece of copper wire with length L. The box will have height h,
width w, and we can choose between a square and hexagonal cross section (as represented by the
variable cs (=cross section)). The volume of the box will be denoted by V . Variables h, w, cs are
in category I; the volume V is in category II (it should be as large as possible). The length L is
in category III. If we decide for a rectangular box, we have 4 pieces of copper wire with length h
and 8 pieces with length w; together, they should not exceed L, so
4h + 8w ≦ L.
In case of a hexagonal box, we get
6h + 6w ≦ L.
(Verify that for a regular hexagon, the width (or the diameter) is twice the length of one side hence the term 6w!). If we want to make the volume of the box as large as possible, it is obvious
that we should use all the copper wire, so the constraints then are:
4h + 8w = L,
or
6h + 6w = L,
respectively.
The expression for the volume is
V = hw2 ,
84
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
or
V =
3 2√
hw 3,
8
for the rectangular and hexagonal cases, respectively.
There are three approaches to deal with constraints:
1. Refrain (abstain) from part of the design freedom
• Choose one (or more) variables that are sacrificed (category I) e.g. h. So we move h
from category I to category IV (we have not established cs yet, but since there are only
two options for cs, we can repeat the entire procedure for both options, and ultimately
pick the option that gives the best result). For h to be in category IV, we have to have a
function that expresses h in terms of remaining category-I and III variables. We obtain
this function h = f (w, cs, L) by ’turning the constraint inside out’. This can also be
formulated as: algebraically eliminating one or more category-I variables. This gives:
L − 8w
h=
4
or
L − 6w
,
h=
6
for the rectangular and hexagonal case, respectively. Then there is only one category-I
variable left (namely, w), and we have no more constraints.
• Here, h is the calculated ’sacrificed’ variable: it has been removed from category I, so
we cannot autonomously choose its value; in stead, it follows from out choice for w and
cs.
• In short: this procedure can be seen as a formal manipulation to re-write constraints in
order to eliminate category-I variables. These constraints are turned ’inside out’ into
functions that express the former category-I variables now as category-IV variables
in terms of the remaining category-I variables. This is only possible if the formal
manipulation is tractable. For instance, it cannot be applied for arbitrary non-linear
constraints, since the solutions of arbitrary equations cannot be written in closed form
- that is, in terms of a finite number of algebraic manipulations. This means that in
practical, non-trivial situation, this approach is not feasible.
2. Iterate
• We use the full design freedom, i.e. we set (arbitrary) values to all category-I variables.
• next we check the constraint; if the constraint comes in the form of a monotonic function of category-I variables, then decide whether your category-I variables should be
increased or decreased. For instance, if D = 4h + 8w − L, and we find that D > 0,
we must adjust h and/or w. We could for instance replace h by h′ = h − D/8 and
w by w′ = w − D/16. We see that 4h′ + 8w′ − L = 0, so the constraint is met. For
more constraints this trick does not work in one step, but repeating (iterating) will
sometimes converge to a set of values that meet all constraints.
• There is no guarantee that this process will converge. In fact, it requires a very subtle
analysis to see under what conditions convergence occurs. However, it doesn’t harm to
simply try if this works.
3. Using penalty functions (Lagrange multipliers) To each constraint, we associate a new
category-II variable. We focus on the case of the rectangular box; let the additional variable
(again) be D:
D = 4h + 8w − L
85
4.1. THE NOTION OF A MODEL
The fact that the constraint holds is equivalent to the situation where D = 0. In stead of
searching an optimum for V , we now search for an optimum for V +λD where λ is a so-called
Lagrange multiplier. The value of λ should be such that D = 0; we see that in that case,
replacing V by V + λD indeed makes no difference. In this example we use the additional
category-II variable that expresses that the surplus of wire be 0. Now we proceed as follows
(notice: this method only works in case we deal with numerical variables):
• If the model is sufficiently simple, do analytical work (otherwise, use numerical algorithms to solve the required equations), namely:
∂
V + λD = 0,
∂h
and
∂
V + λD = 0
∂w
• We differentiate and get
w2 + 4λ = 0,
2hw + 8λ = 0.
Now we can express w and h in λ:
√
w = h = −4λ.
• We find the value of λ by substituting back into the constraint equation:
r
L
.
−4λ =
12
The final result is h = w =
L
12 .
In case multiple constraints have to be dealt with, these can be added up (provided they are all
non-negative!) and be considered as if they were one constraint.
Of course, the above introduction is hardly scratching the surface of the problem area of constraint
resolution. The interested reader is referred to a vast array of text books on the topic.
Educated guesses and models
In real life the value of a certain variable is often not exactly known. In this case the designer
has to make use of educated guesses. Besides educated guesses for values, there are also educated
guesses for model relations. Indeed: it often occurs that we not only don’t know the value of a
variable, but also that we don’t know its (mathematical) behavior as function of other variables.
(Notice: this obviously applies to variables in categories IV and II). An example of an educated
model is illustrated in graph 4.6, where we model the performance of a pizza delivery courier in
number of delivered pizzas per hour. We assume that his performance depends on his salary per
hour in the following way:
• Below a certain threshold value (say, 4 euros per hour) the pizza delivery courier is not
willing to work at all.
• Above the threshold value the performance is assumed to depend in a linear way on the
salary (a ’linear’ relationship, rather than a more sophisticated one is chosen as this is the
simplest possible form, avoiding other parameters that need to be given a value).
86
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
Figure 4.6: Ramp functions can model simple monotonic behavior.
• Above a certain value of his salary (say, 12 euros per hour), the performance cannot be
increased anymore, because either lack of additional stimulation or inability to perform
better.
If the final result, hence the value of a category-II variable, appears to be very sensitive to certain
other variables, a more elaborate study should be made on this dependency. In such a case, one
should replace the educated model by a more accurate model, for instance obtained by market
research.
In case properties which do not have proper dimensions have to be used (such as taste), the
’values’ for the y-axis can often be normalized, e.g. to 0 - 100%. This normalization procedure,
however, always introduces a certain extent of arbitrariness. If the category-II variable depends
on multiple normalized variables, these normalized values have to be multiplied in order to obtain
a judgment on the category-II variable. Notice that it may seem that this multiplication of
normalized quantities eliminates any arbitrariness: the result is again normalized (=between 0
and 100%), and all contributing variables have a monotonous effect. This is not true, though.
Indeed, implicitly we have introduced, for every argument variable, an equal weight factor, being
the exponent (=1) to which each variable is raised before multiplying with the other variables.
Compare the two models:
r = abc
r = ab2 c
where a, b, c are all normalized between 0 and 100%. Clearly, r will also be normalized in both
cases, but in the second case, b has much more impact on the final result than in the second case.
So when proposing educated guesses for ’semi-qualitative’ models, we should be aware of the role
of these implicit weight factors. The issue of normalization, and the various choices that relate to
it, will be addressed again when we elaborate on a case example in the next chapter.
4.2. MODELING AN OPTIMIZATION: MULTIPLE CATEGORY-II VARIABLES
4.2
87
Modeling an optimization: multiple category-II variables
Optimization of mathematical models is covered thoroughly in (numerical) mathematics. However,
most approaches work for the case where there is only one function to be optimized. In our setting,
that would mean: only one category-II variable. A brute force method to ensure that there is only
one category-II variable consists of the following: suppose we have category-II variables v1 , v2 , v3 ,
· · · vn . Then we can construct a resultant category-II variabe V as
V =
n
X
wi vi
i=1
, which requires weights wi . As we discussed in chapter 1, however, the values of these weights
strongly determine which optimum will eventually be reached, whereas objectively choosing the
values of the wi to adequately represent our intuition is very difficult. In all but the most trivial
applications, the trick to replace multiple category-II variables by a single category-II variable is
therefore clearly unsatisfactory. Therefore we will study an approach that is more generic.
4.2.1
Pareto plots
Very often the number of possible solutions is tremendously large and as a consequence it is impossible to analyze them all. Furthermore, we cannot order them since, in general, there are multiple
category-II variables. Therefore we have to resort to a technique called Pareto optimization.
As a first example, assume we have 2 category-II variables, f and g (e.g. profit and safety). They
are related to a number of category-I variables, e.g:
a ∈ {a1 , · · · , am }
b ∈ {b1 , · · · , bn }
c ∈ {c1 , · · · , cp }
d ∈ {d1 , · · · , dq }.
By considering all possible combinations of the category-I variables (attributes), there are m ×
n × p × q possible designs (concepts). This can be a very large number, and we should try to find
which is the ”best”. The notion of ”best”, however, cannot be expressed in the form of a single
function of f and g. Indeed, suppose that we should decide to optimize f + g, then we might get a
different result from optimizing f + 2g. Which of these two results is ”better” can not be decided.
In stead, we have to do justice to the fact that f and g are two different and probably independent
category-II variable, and any notion of ”best” should take the various combinations of f and g
values into account. The simplest way to formulate ”best” in terms of several variables, is to deal
with a Pareto plot. A Pareto plot is used to optimize multiple, simultaneous objective variables.
A Pareto plot is constructed in the following way:
• The axes are the category-II variables. In this example, they span a 2-dimensional space (in
general, the dimension can be arbitrary);
• Because all category-II variables are related to the category-I variables, all possible designs
(=all dots in the figure below) are plotted in this space.
Now a solution X is said to dominate a solution Y if it is better in all respects. That means: the
values of both f and g for X are larger than Y ’s values for f and g. In the end only the solutions
are considered which are not being dominated. This set of solutions forms the Pareto front (in
88
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
Figure 4.7: The principle of Pareto-optimization.
figure 4.7, these are indicated by circles). The Pareto front does not necessarily have a convex
shape as it is in the present example. The front could also be a straight line or concave or any
other monotonous shape.
Properties of the Pareto technique:
• It helps to reduce the number of possible solutions to those that are not dominated;
• No weight functions have to be thought of by the designer, that is: designers’ subjectivity
is avoided and therefore discussions related to weight-factors can be avoided or at least
postponed.
Although the Pareto technique has significant advantages in the process of optimizing a model
for obtaining ’best’ category-I variables, there are two distinct disadvantages that should be well
understood:
• Unfortunately, the addition of an extra category-II variable does not result in a partial
collection of Pareto front solutions. So the Pareto front cannot be built up in an incremental
way. Therefore, the calculation of the Pareto front can be rather expensive: it requires, for
N candidate solutions and M category-II variables, a total of N 2 M calculations.
• The main purpose of the Pareto technique is, to reduce the collection of candidate solutions
as much as possible. The smaller the fraction of candidate solutions that are non-dominated,
the more benefit we have from the Pareto technique. Now we observe that the chance that
a solution is non-dominated increases with the number of category-II variables. Indeed, in
order to be dominated, it is necessary that a solution is better in all respects, and domination therefore will occur less frequently when the number of category-II variables increases.
For this reason, the effectivity of the Pareto technique reduces with increasing number of
category-II variables. In practice, with collections of solutions of no more than few hundreds,
the number of category-II variables should not increase, say, 4.
Once the Pareto front is constructed, and (hopefully) few solutions are left (= the solutions on the
Pareto front), it is usually necessary to go back to the client and agree on certain trade-offs that
4.2. MODELING AN OPTIMIZATION: MULTIPLE CATEGORY-II VARIABLES
89
have to be made. During these negotiations it may be inevitable to introduce personal preferences
to come to a final choice of design, but at least the discussions can focus on the few solutions that
are dominated - and most likely, many considerations that otherwise would consume valuable time
can stay out of the discussion.
4.2.2
Estimating a Pareto front: evolution theory
Pareto plots have been introduced already in the 19th century. However, they have recently
gained much interest in the design community since there is a strong and fruitful connection with
evolutionary design, also known as genetic design.
Evolutionary design is based on the metaphor of biological evolution. As may be known, all
observable properties of an biological individual (in our case: the concept ’the artifact-to-bedesigned’) are part of the phenotype of that individual. Therefore, the phenotype determines the
individual’s the chance of survival. The attributes of the phenotype therefore can be considered as
the category-II variables in our design case. The phenotype in turn is determined by the genotype
and the surroundings of the individual. The genotype can be considered to be the category-I
variables in our case of interest, and the surroundings are the category-III variables.
Evolution is driven by survival of the fittest, that is the best and strongest design solution(s) will
survive after a certain selection procedure. In order to do so, Pareto - genetic optimization follows
next steps, inspired by the evolution theory:
1. Create a set of individuals (e.g. 50), called a population, in a random way by choosing, for
each individual, arbitrary values for all the category-I variables.
2. The fitness of individual candidate solution X may be related to the number of individuals by
whom it is dominated. The lower the number of candidate solutions that dominate solution
X, the ’fitter’ we regard solution X. Notice that the fittest individuals are those that are not
dominated at all; that is, those on the Pareto front. The number of individuals by whom X
is dominated, is established by means of calculating the values of the category-II variables
for all individuals in the population.
3. Kill a certain percentage of the non-fit ones. Do not kill them all, since there might be some
latent strong properties, that in combination with other values for other category-I variables
- lead to fit individuals at some future generation.
4. Generate additional new individuals by:
• Random mutations;
• Crossing over: combine successful genes from two individuals (i.e., take the values of
a number of category-I variables from one successful individual and the values of the
remaining ones from another successful individual);
• Resurrect few of the ’dead’ ones: some of their attributes are given different values in
the next population and therefore it is possible that a dead solution can come out much
better with these new attribute values.
After step 4 return to step 1.
In the course of the first few generations, the Pareto front can be seen to move as a whole in
the direction of (objectively) better and better solutions. Since a new individual is identified on
the Pareto front only if it is not dominated, elements can only leave the Pareto front if they get
replaced by something better. Therefore, we make monotonous progress (even if the progress may
get slow after a number of iterations). As long as a sufficiently large percentage of the solutions
is not on the Pareto front, there is ample opportunity for mutations by means of the various
90
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
mechanisms, and therefore the front may continue to improve. There are at least three causes for
the front to cease improving:
• If the remaining population gets too small, that is: the majority of the solutions are on the
Pareto front, there is not enough ’livestock’ left for generating new mutants. In this case,
we might consider increasing the population, or killing some of the individuals on the Pareto
front. The latter jeopardizes the property of monotonous improvement: it is possible that,
by accident, we kill an individual that causes a ’dip’ or a ’hole’ in the Pareto front. As a
result, we might see part of the Pareto front moving ’backwards’, or deteriorating. In a more
careful approach we should ensure that an individual is taken from the Pareto front only if
there are other individuals that are sufficiently nearby to avoid deterioration of the front as
a whole.
• A second reason for the Pareto front to cease improving is, that the entire population occupies
a too narrow ’niche’ of the solution space. Although the usage of an entire population rather
than a single candidate solution should avoid to get trapped in a local optimum, the size of the
entire solution space could be soo immensely large that the used population gives insufficient
coverage. In this case, we should either increase the size of the population (at the expense
of computation time: the amount of effort to do one iteration is, obviously, proportional
to the size of the population), or increase the relative probability of random mutations, at
the expense of the mechanism of crossing over. If all new individuals would result from
random assignments of values to category-I variables (that is, random mutation), we can
achieve broad coverage of the solution space, but slow convergence, since the system won’t
benefit from fortunate interbreeding of two half-successful individuals; if all new individuals
would be the result of crossing over, we would maximally benefit from the advantages of
interbreeding, but the diversity of the population stays limited. The art of tuning a genetic
design process is, to have a good balance between the various mechanisms.
• A third reason could be, that the obtained Pareto front is a sufficiently accurate estimate
of the ’true’ Pareto front. That is: there are no new solutions that dominate the present
Pareto front (of course, under the assumption that the model is sufficiently accurate). In
this case, the process has reached its goal.
Pareto: post processing
At the end of the genetic process, we have a Pareto front that no longer improves. Stated more
accurately: the Pareto front as a whole does not move in the direction of better solutions. This
does not mean, however, that improvements of individual solutions on the Pareto front are not
possible. Indeed, a point is on the Pareto front (and therefore, will not be replaced by any other
solution) if it is not dominated. But we cannot conclude that every point on the Pareto front is
locally optimal that is: that there is no improvement possible. With a simple intervention, we
can check the local optimality of a solution on the Pareto front, and if possible ensure that it is
truly optimal.
Indeed, call the solution as it results from a completed iterative process as above, s. The values
of all the category-II variables of s are such that s is not dominated. These values are functions
of (in principle) all category-I variables. For a minute, assume that all category-I variables are
(real) numbers, and also assume that the functional dependency of s on the category-I variables
is continuous. Then we can apply, for a category-I variable v with value x, a small change to
x → x + δx, and check if solution (v = x + δx) by any chance dominates solution s(v = x). If
so, the solution with v = x + δx is a better solution than the solution with v = x, and we can
replace the value for v by the new one. If not, we try v = x − δx. If none of the two gives a new
s that dominates the old s, we can conclude that s, as far as category-I variable v is concerned,
4.2. MODELING AN OPTIMIZATION: MULTIPLE CATEGORY-II VARIABLES
91
is optimal: it cannot be improved5 . We repeat this process with all category-I variables, until no
further improvements can be obtained (’improvements’ in the sense that a new solution dominates
a previous one). We then have reached the situation where s is locally optimal and we remember
that in the original situation, we could not ascertain that.
After we have applied the above process to all category-II variables for all Pareto front-solutions,
with the result that some of them may attain new values, we can ascertain that further local
optimization is no longer possible6 . We have lost the guarantee, however, that the collection of
improved solutions are all non-dominated. Indeed, it is possible that a single solution (say, s1 )
has improved very much to the extent that it now dominates one of his neighbor-former-Paretocolleagues s2 that showed to be benefit from the attempted improvement. Obviously, s2 should
no longer be labelled as being on the Pareto front. So after the local optimization post process as
described above, we should do at least one further round of the Pareto-finding process to ensure
that the claimed Pareto-solutions are indeed non-dominated.
Practical experience shows that, despite the fact that there is no real evolutionary underpinning
of the idea of local improvement, the application of this post process can give a spectacular
improvement of the outcomes. Although a full post processing iteration over all Pareto solutions
typically takes an amount of calculation time that is of the order of the entire convergence process
in the first place, the obtained quality increase in general more than justifies this.
5 assuming
that δ is sufficiently small, and disregarding other numerical subtleties.
have not yet explained what to do with non-numerical category-I variables, and / or with non-continuous
dependencies. We give no exhaustive treatment of these cases here; the software system that implements these
ideas, and that is described in a subsequent chapter, uses reasonable heuristics to accommodate with these events
that perform well in practical cases, even though no mathematic guarantee for the general situation can be given.
6 We
92
CHAPTER 4. MODELING: A SYSTEMATIC APPROACH
Chapter 5
Modeling: a tutorial
’Even a stairway to heaven needs heavy climbing’
5.1
Generic characteristics of a functional model
Using the theory of the previous chapter, we will tackle a concrete example. We will see how
a systematic introduction of variables leads us from category II in a number of steps either to
category I or to category-III variables. At every step, we have the opportunity to think about the
assumptions and considerations that apply for the particular (functional) relation at hand. In fact,
we will only write down functional expressions that meet with a specification, stated beforehand.
First, we think about what we want to express with a particular functional relation, and next we
seek a mathematical format to capture this intention. For instance, we may have the intuition
that a quantity Z depends on X and Y , and that it is increasing with both. So we may consider
Z = X + Y , or Z = X × Y or even (assuming X and Y are both > 1), Z = X Y or Z = Y X . To
go even further, Z may be a 2-dimensional table with indices X and Y (assuming that X and Y
are both integers in a finite range) that gives, for each pair (X, Y ) the resulting value. If we don’t
have any further intuition, all these options, and many more, are acceptable. Only if we have
more knowledge about what we want to express, we can restrict the class of acceptable functional
relations. For instance, if we know that Z should behave symmetrically with respect to X and Y ,
we can rule out such functions as Z(X, Y ) = X + 3Y or Z = X Y . But for instance X 2 × Y 2 , or
a symmetrical table with values that is both increasing in X and Y would still do. To go further,
if we know that Z should be both proportional to X and to Y , we can forget Z(X, Y ) = X + Y .
But even then, expressions such as X × Y , 2X × Y and 10000X × Y are all still possible.
This way of developing a model perhaps may look strange at first. We are familiar with given
formulas from physics or economy, and all other relations follow uniquely from ’common sense’.
This may seem true for simple cases, such as ’if one chicken lays N eggs per week, M chicken lay
N × M eggs per week’, but it soon becomes problematic.
And even in the case of the chicken: it is pretty likely that the presence of other chicken affects
the egg-production behavior... Perhaps chicken are sensitive to competition, so a formula such as
93
94
CHAPTER 5. MODELING: A TUTORIAL
M × N (1 + αM ) with some small empirical constant α might be more appropriate.
In fact, every functional relation, expressed as a mathematical formula, is based on assumptions.
Even basic relations such as Ohm’s law, V = I × R for the relation between voltage, current and
resistance in an electric circuit only apply in a very limited regime, depending on temperature,
material properties, aging effects and other issues. Only in abstract mathematical contexts, assumptions may be irrelevant (for instance: the area of a rectangle with sides A and B is A × B,
and not approximately A × B), but this is only so because the quantities occurring in mathematical contexts are necessarily abstractions. A ’rectangle’, the notion of ’area’, and the notion of
a ’side’ don’t refer to anything physical. To the contrary, the area, estimated as the amount of
paint needed to cover it, of a rectangular sheet of paper for which we have measured the lengths
of its sides using a ruler will not be equal to the product of the numerical outcomes of these two
measurements - if it were only because every measurement has a finite accuracy, and therefore
should be represented by a statistical distribution rather than by a mere number.
The systematic approach to work our way through a model, starting with the category-II variables
invites us, at each step, to think about the relevant assumptions, to specify the type of behavior
that meets with our intuition or intention, and next to seek an appropriate expression for it.
We will know exactly when our model is ready: as soon as there are no ’pending’ category-IV
variables, and every category-II variable has been completely expressed as a function of something
else, and eventually in terms of category-III variables (that are measured, observed or guessed
constants), or category-I variables (that are the result of our own choices). In other words: a
model is ready as soon as the values of the category-II variables can be calculated. Of course,
this does not mean that such a model cannot (or: should not) be refined; with ’ready’ we only
mean that a model is in a stage where it can be calculated and possibly optimized. Based on the
numerical results, we can decide about the plausibility of the model: does it behave in accordance
to our intuition? Do we understand the (order of magnitude) of the results that we obtain? Also,
in this stage we can do a first check if the outcome is feasible - in the sense that the category-II
variables we hope to optimize attain values that are acceptable.
Calculations of this type are commonly performed in a spreadsheet. Indeed, spreadsheets are
convenient for specifying functional relations, provided that we adopt some discipline. In a blank
spreadsheet all cells are identical - they can all contain expressions that may link to arbitrary
other cells. As soon as we start to fill in the spreadsheet with functional expressions in arbitrary
order, the overview of the model soon will be completely lost. On the other hand, if we build the
model in accordance to the directed, acyclic graph as discussed before, and preserve the distinction
between the categories I, II, III and IV, we may safeguard ourselves against loss of control during
the process of making the model.
But apart from a spreadsheet, we soon will see that there are other means to represent a model.
Although we first give a step-by-step development of a spreadsheet version of a concrete model in
this chapter, we re-phrase the model in a more intuitive format in chapter 6. As we will see there,
this will give us further support for the process of building the model, and automated optimization.
For a start, however, we will assume that we use a standard spreadsheet program (say, Microsoft
Excel 2003). The only conventions that we will adopt, are:
• We start with category-II variables. We think what they should depend on, and we provide
an expression for the dependency. In many cases this will introduce new variables. These
can be of categories I or III; more often, however, they initially will be category IV variables;
• As long as there are category-IV variables that have not yet been expressed as functions of
category-I and III variables only, we continue ’from right to left’ with expanding the graph
from the previous chapter;
• We should think beforehand what should be done with a category-II variable: should it be
as large as possible or as low as possible - perhaps it should be positive, negative or (close
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
95
to) zero. This will help us in thinking about the dependencies we should take into account1 ;
further, in the advanced version in chapter 6 it will guide us through the automated process
of optimization.
• For improved understandability by the user, variables should have names. Modern spreadsheet support naming as an alternative to giving cell addresses. In the version in chapter 6
we even go a step further an nearly eliminate the use of cell addresses all together.
5.2
A functional model of a taxi company
The example we study is the design of a taxi company. There is a large amount of decisions to be
taken before a taxi company can be set up (how many cars, how many chauffeurs, what type of
cars, what area, ...). Many of these can be expressed quantitatively (quantities relating to money,
distance and time); others are less clear (comfort, attractiveness, ...). There is not a single unique
way to derive a model; the model that we construct below is not necessarily better than any other,
consistent, model. We should keep in mind, however, that any possible, slightly reasonable model
is better than no model at all. Indeed: the model will help us to state explicitly the assumptions
we have made; it allows us to play with the various choice options in category-I, and it allows
extension and refinements in case the situation at hand should require more detailed analysis.
During the construction of the model, we try to be constantly aware of the assumptions we use;
every non-trivial formula will be equipped with a specification of the underlying intuition, or a
justification why it reads as it does. In every step below, we introduce one variable. As we proceed,
we will fill in a spreadsheet. The addresses of the cells, given in parentheses, are of course arbitrary
- this just gives a reasonable layout.
1. (F1) profit=(income-exp)/1000000
The most obvious category-II variable is profit. In this case, we express the profit in millions
of Euro’s. This ensures that resulting numbers are in a range between 0 and 10; since we will
be plotting graphs of the profit as a function of some choice variable in the same figure with
other category-II variables that are in the same range, the various graphs will allow easy
comparison. When defining the orders of magnitude of category-II variables, it is always a
good idea to allow for easy visual inspection of the several category-II variables in one graph.
If we state that profit=(income-expenses)/...., we express a basic economic intuition.
An underlying assumption is, that both need to be expressed as quantities of money-flow,
relating to the same period of time. This is not trivial. Book-years range from 1 January to
31 December, so whether major transactions occur just before or just after New Year can give
large but irrelevant fluctuations in the profit development over time. Accountants therefore
reckon with average profit, income and expenses, but this requires careful consideration over
the period of averaging.
2. (F2) fun=ffMe*ffmC*ffmP*10
Running a taxi company is not only about money. Most people begin to realize that work
should be rewarding also in non-financial terms. Since we want to design a ’good’ taxi
company, we should try to express the non-financial aspects also in our model. Therefore
we introduce a second category-II variable, called ’fun’. But this means that we need to
formalize our intuition about ’fun’. As a first step (or: a first assumption), we recognize
that fun is experienced by three different (groups of) people. There is fun as I experience it
1 For
instance, if we want our model to be conservative, and we need to find an upper bound of a certain variable
v (say, a risk of something disastrous happening), we may want to be more accurate in formulating effects that
increase v than effects that decrease v
96
CHAPTER 5. MODELING: A TUTORIAL
(ffMe, ’fun for me’); fun as the customers experience it (ffmC, or ’fun for my customers’),
and fun as my chauffeurs experience it (ffmP or ’fun for my personnel’).
The step of expressing fun in terms of three ’components’ should be seen as a meaningful and
not-trivial assumption. For instance, it means that the process of modeling (and therefore
the subsequent process of optimization, and finally the process of running my taxi business)
is focused on me, my chauffeurs and my passengers. But, for instance, not on the (fun
as experienced by) other traffic and not on (the fun as experienced by) owners of public
transport organizations, et cetera. So: the realization that a particular variable x is a
function of some arguments, a, b and c immediately rises (or: could rise) the creative and
inspiring question: what else does x depend on. In the case of the egg-laying chicken: what
else determines the weekly production of eggs, other than the number of chicken and the
number of eggs per week per chicken (answer: perhaps the distance between these chicken,
the fact whether or not there is a rooster in the same chicken-run, et cetera).
Apart from the consideration about which variables a particular variable depends on, we
have to think about what form the dependency takes. If we agree that ’fun’ is a result of
’my fun’, ’the fun of my chauffeurs’, and ’the fun of my passengers’, we immediately have
some follow-up questions.
the types of the variables involved (1): How do we quantify fun? Is it a bounded or
unbounded quantity? Answer: let’s take real-valued intervals between 0 (no fun at all)
and 1 (maximal fun).
the form of the functional relation (2): What can we say about the interaction between several fun-sources? Answer: total fun should be monotonously increasing in all
fun-sources. So this could give rise, for instance, to
(a) fun=ffMe*ffmC*ffmP, or to
(b) fun=(ffMe+ffmC+ffmP)/3, or to
(c) fun=((ffMe*ffmC)+ffmP)/2 (and many other forms).
If we want to express the equal importance between my fun, the fun of my personnel,
and the fun of my customers, option 2c is unacceptable, since the resulting formula
should be symmetric in the three arguments. The main difference between 2a and 2b
is, that 2a expresses the notion of ’solidarity’. If one of the three experience no fun at
all (that is, the fun factor is 0), the total fun must be zero as well. If we appreciate the
principle of solidarity, formula 2a is to be preferred above formula 2b.
Finally, we observe the factor of 10. Since each of the factors ffMe, ffmC, and ffmP are
between 0 and 1, the total value of fun will be between 0 and 10. If we plot this in the same
graph as profit, this will give curves that allow easy comparison. This is an example of a
normalisation issue: in many cases, the same intuition can be represented by various versions
of a formula that differ only in terms of a constant factor. We know this from physical units:
arguments shall not depend on whether, e.g., lengths are expressed in millimeters or inches;
economic value shall not depend on whether dollars or Euros are used to express amounts of
money. In such cases, we only have to ensure consistency (that is, use a single unit for each
type of quantities throughout the model), and to ensure moderate numbers and reasonable
ranges of values (only in rare cases we will have to deal with, say, both light years and
nanometers). Notice, however, that normalization is equally important, but slightly more
subtle for dimensionless quantities. For instance, such quantities as efficiencies (e.g., as a
ratio of profit over investment) and aspect ratio (e.g., as the quotient of hight over width of
some shape) have no units, but they can be arbitrarily scaled (perhaps multiplied by 100 to
arrive at percentages). Such scale factors must be used with great care.
3. (H11) exp=salaries+wrOff+fuel+comm+insur
At this stage, we have 5 new variables, exp, income, ffMe, ffmC, and ffmP, and it is likely
that none of them is category-I or category-III. From a fundamental point of view, it is
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
97
irrelevant in which order we work to express variables in subsequent ones, as long as the
graph stays connected and acyclic. In other words: as long as every new functional relation
has an existing variable in its left hand side. Its right hand side either may contain ’old’
variables (ones that had been defined and expressed by means of functional relations earlier
on) or ’fresh’ ones (those that still need to be defined in terms of functional relations in
the future). Notice that spreadsheets deal with functional relations that contain undefined
arguments by means of various default mechanisms. An absent number is treated as zero;
an absent string is treated as the null-string. Although this is convenient in some respect,
it is rather dangerous - it encourages sloppiness in building functional models, and it could
lead to models where the evaluation is based on ’forgotten’ values.
While the model under construction develops, the chance that we will be able to re-use an
earlier variable will increase. Towards the completion of the model, we will not encounter any
new variables anymore, and all ’pending’ variables will be expressed in terms of category-III
or category-I variables, or category-IV variables that were introduced earlier on.
In terms of the graph, this means that the graph will not be a tree, but various root-paths will
merge together. A root-path here, is a sequence of contiguous variables, together describing
the dependecy of a single category-II variable on a single category-I, III or IV variable. In
the graph, a variable corresponds to a node, and a dependecy relation between one variable
and one that it depends on is indicated by a directed arc, a directed edge, or an arrow (These
terms are used indifferently) . A single node will lay on several root-paths. For instance,
the number of cars (=a variable we have not yet introduced, but it is obvious that we will
encounter it in a while) affects both the amount of money we need to pay for write-offs, and
the amount of money we will have to pay for insurance.
In this case, we choose to proceed with expressing exp - simply because it is relatively easy
to think of what constitute our expenses. This is a recurring pattern: thinking about the
functional expression for a new variable always starts with enumerating what quantities this
new variable depends on.
This is both an analytic and a synthetic process.
The analytic process starts from the given situation at hand (in this case: take an existing
taxi company and ask yourself what types of annual expenses there are). This will probably
give, as main terms: salaries (salaries), annual write-off for the fleet of cars (wrOff),
annual fuel costs (fuel), commissions to be paid for licenses (comm; in the Netherlands, taxi
companies have to have a license in order to operate in a municipal region), and insurance
(insur).
The synthetic process - which is relevant, since we are designing something: there is still
a large amount of creative variation possible! - amounts to asking oneself for alternatives.
For instance: are all these expenses necessary (e.g., could we eliminate the write-off by leasing cars rather than owning them?), or could a more profitable arrangement be made by
lumping expenses together (e.g., if we wouldn’t hire staff, but rather work with an employment agency - which would delegate the responsibility for staff insurance to the employment
agency). In other words: we could link terms such as ’write-off’, ’salaries’, and ’insurance’
to appropriate category-I variables that express possibly interesting variations in our set-up
(in this case, category-I variables such as ’do we yes or no lease cars’ and ’do we yes or
no work with employment agencies’). If the value of the hypothetical category-I variable
’doWeYesOrNoLeaseCars’ would take value ’no’, than the amounts of money spent in write
off and insurence (being category-IV) should be zero: these values depend on the value of
the variable ’doWeYesOrNoLeaseCars’.
It is not so much the issue that, at the introduction of every new variable we should try to be
complete in out inventory of all options - rather, the occasion of introducing a new variable
is a logical point in the process of developing the model to devote a minute to systematically
consider obvious (creative) alternatives to certain details in the system we are designing.
98
CHAPTER 5. MODELING: A TUTORIAL
4. (H12) income=nrRmCpY*(fPr+avLpR*kmPr)
The term ’income’, introduced in step 1 is now looked at. What is the mechanism that
determined the annual amount of money that flows into a taxi company? As always we
answer this question by making a number of assumptions explicit.
• The only source of income consists of rides, and all rides are being paid for (an alternative would be a mechanism to have customers who subscribe to our services and only
pay subscription fees, or free rides as part of an advertisement campaign). This gives
rise to a factor nrRmCpY (or ’number of rides made by my company per year’), and
the income is proportional to this number. The choice to have the income proportional
to the number of rides seems obvious, but it could inspire to alternative mechanisms,
such as ’the more rides we make, the cheaper our kilometer-fare’- which could be an
interesting marketing campaign;
• The amount of money we earn for one ride consists of two amounts: a fixed price,
called fPr, and a variable amount which is proportional to the length of the ride and
proportional to a price per kilometer. (Again this is just a choice; many taxi companies,
for instance, apply two different tariffs: the price per kilometer for short rides is higher
than the price per kilometer for long rides). The later variable is kmPr or ’kilometer
price’. As to the length of the ride: this is of course a stochastic quantity. But since our
model is about annual averages, we interpret the formula for our income as a functional
relation between the expectation value of the length of the rides and the expectation
value of the income. So rather than writing the model as an elaborate statistical model,
we adopt some (more or less reasonable) assumptions of the statistical distribution(s)
at hand, and only relate expectation values (averages). For instance, the variable avLpR
is the average length per ride, perhaps assuming a uniform distribution of the actual
lengths of rides;
• In our model, there is no term to account for tips, nor for the charges for waiting time.
Of course, most taxi companies do charge waiting time, and it is probably a good idea
to do so. But as we observed earlier on: the first version of the model doesn’t have to
be complete: it just should be computable, and it is advisable to include what we think
are the most significant terms. So it is very well to leave out, in the first iteration, terms
that we believe are less important and to merely make a note that, time permitting, we
could revisit these later. This is the subtle art of, by means of non-calculated estimates,
distinguishing significant (’large’) terms from insignificant (’small’) terms.
5. (J18) ffmC=1-(nrReqRpY-(nrRStaff+nrROth))/nrReqRpY
Let us now turn to one of the fun-terms. We look at ffmC as introduced in step 7. Let us
assume that the fun as experienced by our (potential) customers relates (only!) to the chance
that they are served by our company. If a customer requires a ride (by our company), and
we cannot meet with her/his request, this adds to the frustration, and therefore it decreases
the fun. This suggests a formula of the form ffmC=1-’chance of a refused request’. We now
could, of course, introduce a next category-IV variable, to express the chance of a refused
request. If we expect that this variable will only occur on a single root path (that is, that
this variable won’t affect any other category-II variables), and if we think that a sufficiently
simple expression for this variable can be found, we can also give this expression right away.
So rather than introducing a variable for ’chance of a refused request’, we introduce the
expression (nrReqRpY-(nrRStaff+nrROth))/nrReqRpY.
The choice between introducing a variable that is to be expanded into an expression at a
later stage, vs. expanding this variable as an expression ’on the spot’(that is, at the instance
where it occurs), is partially made by the consideration whether or not this variable will
occur again on a different root path. A second, and perhaps more important consideration
is, however, that expanding variables ’on the spot’ into expressions, will give rise to large,
error-prone and difficult-to-debug expressions. In general, it is therefore a good idea, when
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
99
in doubt whether a new variable or an expression should be introduced, to choose for the
(new) variable. Variables occupy hardly any computer memory, they introduce only little
computational overhead, and they largely help improving the transparency of the entire
model.
In the current case, the expression (nrReqRpY-(nrRStaff+nrROth))/nrReqRpY contains the
new variables nrReqRpY (or ’number of requested rides per year’), which is the average annual
number of ride requests received by my company; nrRStaff (or ’number of rides staff’),
which is the average annual number of rides that are served by members of my own staff;
and nrROth (or ’number of rides others’), which is the average annual number of rides that
are done by others, but that nevertheless serve my customers.
Notice that the inclusion of nrROTh, which results from the desire to have ffmC as large as
possible, prompts for a mechanism where there is a pool of temporary employees. These
temporary employees are not on the payroll of my company, and I may have to pay them
more per hour than my regular staff, but it may be advantageous nevertheless to do so to
increase the experienced fun in my customers.
This is an example of a trade-off. It can not be estimated beforehand how large the term
nrROth should be, but our model can show us the category-II consequences of various
category-I choices in terms of profit and fun. Later, we will obtain a Pareto front of
possible solutions, which allows us to make the trade-off between profit and fun.
6. (J19) ffmP=DGET(N2:R8,R2,N9:N10) * ramp(annWages,12000,0,25000,1)
A further fun-term was fmmP, the fun as experienced by my personnel (my chauffeurs). Let
us assume that this is determined by the salary they earn and the type of car they drive. Of
course, there are numerous other mechanisms as well - and in a next iteration of the model
we may want to spend a couple of minutes to think about them systematically when we
revisit the expression for fmmP. For now it means that we should know something about the
amount of salary we intend to pay, and about our choice of cars.
As far as the happiness in dependence of the salary, we follow the same line of argumentation
we did earlier in the previous chapter, where we introduced the ramp-function. In this case
we assume the fun in dependence of the salary to be a factor between 0 (no fun at all - in other
words, chauffeurs won’t be willing to work) and 1 (maximal factor - in other words, increasing
the salary won’t make them more happy). The two argument values that determine the lower
and upper bounds of the salary interval of course are category-III variables. We could choose
to introduce them as variables indeed; for the sake of brevity, we can fill them in as constants
here. This is only allowed, though, if nothing else depends on these values. If other variables
would also depend on these values, and they would occur in several places in the model, we
could easily run the risk of inconsistencies it we would change one instance of a constant and
forget to make the same change to another instant. For this reason, it is in general better
to introduce named variables, even for category-III constants. As a rule of thumb, every
constant should occur only once in any model.
In this case we use the (imaginary) salaries of 12000 Euro/year as an absolute minimum and
25000 Euro/year as a luxurious maximum. The first argument of the ramp function is the
salary we decide to pay, annWgs or ’annual wages’. In a while, this will become a category-I
variable.
Next we consider the happiness factor that depends on the type of car.
A particular choice of car has all sorts of other consequences. The annual write-off, the
fuel consumption and the expected life time, to mention but a few, make the concept ’car’
a compound concept. In the previous chapter we introduced the notion of concepts and
attributes to deal with compound concepts. Now it is time to see how this works in practice.
The standard mechanism by means of which we represent concepts, attributes, and values
is a database table. In the case at hand, we build a table where every row is a concept;
100
CHAPTER 5. MODELING: A TUTORIAL
2
3
4
5
6
7
8
9
10
N
carBrand
Mercedes
Opel
Buick
Chevrolet
Rolls Royce
Volkswagen
carBrand
=carType
O
catPrice
100000
30000
70000
120000
250000
35000
P
fuelCons
0.05
0.05
0.07
0.1
0.09
0.04
Q
lifeExp
4
3
5
5
8
2
R
funFact
0.5
0.3
0.8
0.8
1.0
0.1
Table 5.1: The information about the various types of cars we may want to choose from
every column is an attribute, and every cell is the value for the column-attribute, applied to
the row-concept. In MS-Excel, there are standard provisions to retrieve information from a
database table. The function DGET is very suitable to do so. It takes 3 arguments. The first
argument (here: N2:R8) is a database table (a rectangular array of cells). In this table, the
top row contains the names of the attributes. The second argument (here: R2) is the name
of the attribute for which we want to inspect the value. The third argument (here: N9:N10)
is a condition, or a query specification that states for which concept we want to inspect a
value. This condition is also a rectangular array of cells, which allows a large amount of
different query types to be formulated (including conjuncts and disjuncts of conditions). In
our case we need just the simplest form, where we give the name of one (key-)attribute and
underneath we give the value of that key attribute for the concept we want to have. In the
present case, this value is the contents of a (new) variable, carType.
In the table 5.1, we give a fragment of the worksheet ”model” with indicated row and column
addresses.
The attributes we have in this table are:
carBrand : the brand of the car. This is a key attribute, that means that two different
concepts must have two different values for the attribute ’carBrand’. As is expressed
in the query specification N9:N10, the concept that is to be chosen is the one with a
value as stored in the variable carType in its attribute ’carBrand’. So the definition
of this table, together with the query specification N9:N10 implicitly introduces a new
variable, carType. It will come as no surprise that this will be one of our category-I
variables in a while.
catPrice : the catalogue price of the car in Euro’s.
fuelCons : the fuel consumption of the car in liters per kilometer.
lifeExp : the life expectancy of the car in years.
funFact : the fun factor, scaled between 0 and 1, for instance obtained by a market survey.
Tables such as above often constitute information taken from catalogues, market surveys, or
- as in the present case - educated guesses. As far as all values in the table are constants,
they are all in category III, with the sole exception of carType. They do not have to be
constants, however. In a more sophisticated model, the cells could contain expressions. For
instance, the life expectancy of a car could be a function of the annual amount of kilometers
it drives. In that case, the cell containing this expression becomes a category-IV variable;
the constants that occur in such a formula presumably are category-III variables - unless
they in turn are expressions depending on something else.
7. (J20) ffMe=IF(where="E",1,IF(where="D",0.5,0.1))
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
101
The third and last fun factor as introduced in was ffMe, the fun for me (as an assumed taxi
company owner). Again, in a sophisticated model this fun factor could depend on many
features of my company; here we focus on one aspect only. We assume that it gives me
pleasure to have a company that operates in a region as large as possible. We introduce a
new variable where (which will be a category-I variable), which expresses where my company
will be active. Although I don’t want to think about the details yet, I decide that the various
sizes of this region will be represented by letters, ’A’, ’B’, ... ’E’, where ’A’ means the smallest
region considered, and ’E’ the largest one. Consequently, ’E’ should receive the largest fun
factor, ’D’ (slightly smaller than ’E’) a slightly smaller fun factor, and all the other ones a
really small fun factor.
This semi-qualitative intuition can be conveniently captured in the form a spreadsheet expressions using logical expressions. The MS-Excel function IF, which is most often used
to deal with logical expressions, takes three arguments. The first argument is a condition;
the second argument is the expression that is evaluated if the condition is true, and the
third argument is the expression that is evaluated if the condition is false. So if we want
to distinguish 3 possible conditions, we need to nest two IF’s within each other. If logical
expressions become more complicated, and/or if we want to distinguish more different cases,
it can be worthwhile to use a table construction similar as the table we introduced in step 6.
8. (H14) nrRStaff=MIN(staffCap,bStff*nrReqRpY)
In step 5 we introduced the variable nrRStaff, the average annual number of rides performed
by chauffeurs of my staff. We now choose to elaborate on this quantity. We first observe that
the number of rides cannot be larger than the annual number of rides that can be served
by our staff, staffCap. The latter variable would be the number of rides if each chauffeur
would spend all his time driving.
Further, the number of actually performed rides will depend on nrReqRpY, the average annual
number of requested rides for my company. Notice that we make use, for the second time,
of the variable nrReqRpY, but we have not yet given an expression for this variable. That is
fine, since we have a precise intentional definition of the variable. So as soon as we provide
a formal expression for this variable it will serve to make all expressions computable that
depend on it.
Also notice that, obvious as it may seem, the observation that the number of rides cannot
be larger than some factor of the value nrReqRpY is not necessarily true. In fact, there is
an underlaying assumption of a business model where the initiative of a taxi ride is purely
on the side of the customer. As long as customers don’t call us, our cars stay in the garage.
Put it in this way, alternatives easily come into mind (for instance, where we have a number
of cars on the road, chauffeurs just looking for passers-by who might consider to take a taxi
but who not yet decided to make a request to our company). This business approach would,
of course, give rise to entirely different mathematical model.
The number of rides actually performed by our staff is, on the one hand, determined by the
amount of available staff capacity; on the other hand it is determined by the amount of ride
requests we receive. But we know before hand that we cannot serve all requests. Even if
the total annual number of requests would not be bigger than the annually available staff
capacity: if they all would come in at the same time, we could handle only a very small
portion of them.
We model the number of serviceable requests as the product of nrReqRpY, or ’number of
requested rides per year’ and bStff, or ’busy staff’. The latter factor will be a number
between 0 and 1 which accounts for the fraction of rides for which there is actually a chauffeur
available at the point in time when the request comes in.
The staff capacity, which we introduce now, must be expressed as an average annual number
of rides. Indeed, we observe that the systematic process of developing the model dictates,
for every subsequent expression that we encounter, the dimensionality and the unit of the
102
CHAPTER 5. MODELING: A TUTORIAL
newly introduced variables. If we just pay attention to every formula in turn, in the order
as they occur, we can ensure with little effort that the entire model will be dimensionally
consistent.
9. (F17) staffCap=MIN(nrStaff,nrCars)*indivCap
The variable staffCap was defined as the average annual number of rides that maximally
could be performed by our staff. A ride requires both one car and one chauffeur, hence
the occurrence of the factor MIN(nrStaff,nrCars). We emphasize that this again is an
invitation to think creatively about alternatives (such as: more cars than drivers (=a car
rental service) or more drivers than cars (such as: a service where car-owners can hire a
chauffeur). The factor indivCap is needed to convert a number of drivers into an average
number of rides per year; as we will see in step 11, this presumably will account for the
number of working hours per year and the average duration of a single ride. As is often
the case, the systematic development of a model according to the present methode will
automatically lead to ’obvious’ definitions which lead to ’obvious’ representations in the
form of mathematical formulas, each of which could serve as the starting point for creative
ramification. (’How could we arrange things otherwise?’)
10. (B5) nrStaff
The size of the staff of an organization-to-be-designed (=nrStaff), in most circumstances,
will be a category-I variable: we (as designers of the organization) can decide to hire or fire
people. Of course, there are organizations (such as those, based on volunteers) where the
size of the staff is a category-IV variable, based on the potential number of members (=a
category-III variable) and the fraction of those who are actually attracted to the organization
(=a category-IV or a category-III variable, depending on whether there is active propaganda
or not). In the simple model we are developing here, we assume it is category I.
11. (F18) indivCap=wrkHpY/avgDpR
The staff capacity, introduced in 9 depends on a factor indivCap, or ’individual capacity’,
which represents the average annual number of rides a full-time staff member can perform.
Under the assumption that all working hours are spent on driving (no administrative duties,
no idle time) this is the quotient of the number of available working hours in a year (=wrkHpY
or ’working hours per year’) and the average duration of a ride (avgDpR, or ’average duration
per ride’), measured in hours.
12. (L2) wrkHpY
The number of available working hours per year is a category-III variable, for instance
dictated by the law (in Holland: the ARBO-legislation that dictates the number of hours
employees are allowed to work).
13. (J13) avgDpR=chLR*avDlR+(1-chLR)*lIRR/iLSpd
In order to give a reasonable expression for the average duration of a taxi ride, needed
for the first time in step 11 we assume that there are two different mechanisms in order
that determine the duration. For local rides, we assume that the waiting time plus the
administrative overhead (writing a receipt for the customer) is dominant, so neither the
distance covered, nor the driving speed play a role. For inter local rides, the distance and
the speed do play a role. Therefore we introduce a factor chLR, or ’chance for a local ride’,
which will be a category-III variable. The average duration is the average of the average
duration of a local ride and the duration of an inter-local ride, weighted with chLR. For the
duration of a local ride, we have (category-III) variable, avDlR (or ’average duration of a local
ride’). For the average duration of an inter local ride we introduce a formula: lIRR/iLSpd.
The numerator is the ’(average) length of an inter local ride’, and the denominator is the
(average)’inter local speed’, in kilometers and kilometers per hour, respectively.
103
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
12
13
14
15
16
17
18
19
N
region
A
B
C
D
E
region
=where
O
radius
5
10
20
50
300
P
people
200000
250000
300000
500000
17000000
Q
cities
1
5
15
40
200
Table 5.2: The information about the various types of regions we may want to choose from
14. (F14) wrOff=nrCars*DGET(N2:R8,O2,N9:N10)/DGET(N2:R8,Q2,N9:N10)
In step 3, we introduced as one of the terms in our costs, the annual write-off of our fleet.
With the table as introduced in step 6, we can give a simple mathematical expression for
the write-off in dependency of the brand of car we use. It is the quotient of the catalogue
price and the life expectancy. Both are attributes in the table, so we can use the same
query-mechanism as we encountered before to access these values. Notice, again, that many
more sophisticated model relations can be (and should be!) considered, for instance where
the write-off depends on the constitution of the car: a car in good shape will have a larger
remaining value and could be written off in a longer period, et cetera. We just want to
demonstrate (again ...) that in the systematic development of the model, we automatically
encounter the stage where these considerations come into play: namely in the stage where
we expand the definition of the term wrOff.
15. (F13) salaries=staffSal+contrW
Another cost term was the term salaries, introduced in step 3. Since we already introduced
the business model in step 5 where we both work with our own staff (staffSal, or ’staff
salary’), and with contract-workers that come in in peak-hours (contrW, or ’contract wages’),
we should represent both terms here. The addition of the two, as we do in the formula
salaries=staffSal+contrW, seems obvious, but even in this simple case it is not the only
possibility. Indeed, a possible construction that comes to mind if we enforce ourselves to
think about alternatives, is one where my chauffeurs are made responsible for handling the
supernumerary rides. We pay them a (large) salary, and it is up to them to decide whether
they want to work many hours and do all the rides themselves, or to spend part of their salary
in hiring subcontractors, and enjoy a long weekend every now and then. Notice that this
alternative construction is a result from asking ourselves in which different ways the salaries
could be expressed in terms of staff salaries and payments to contract workers. Remember
that every mathematical operation just encodes an underlying story - and usually, there are
several stories that all could be told in this place.
16. (J17) comm=DGET(N12:Q17,Q12,N18:where)*municipC
A further term in the cost model, proposed in step 3, was the term comm, to be paid for
licences in every city in the covered region. So we should know how many cities there are
in the region we wish to cover, and the average annual amount to pay per city. The latter,
represented by the factor municipC will be a category-III variable (we have no influence on
it). The former has to do with our choice of the region, and similar as with cars, we will
introduce a table for regions. Indeed, just as a car, a region is a compound object containing
information that is represented in a number of attributes. So we will build a table of regions;
one of the attributes is the number of cities in the region.
The table is given in 5.2.
We have the following attributes:
104
CHAPTER 5. MODELING: A TUTORIAL
region : the region is just a symbolic name, with values ’A’, ’B’, ’C’, ’D’, and ’E’, as
introduced earlier in step 7.
radius : this gives an indication of the size of the region. We could give the area, expressed
in km2 (a region has an area, irrespective of its shape), but we are more interested in
some characteristic distance (expressed in km). Indeed, distances relate to expected
lengths of taxi rides, and therefore indirectly to the average duration of a taxi ride.
There are many possible ways to get a value for such a characteristic distance. For
instance, we could take a map of the region and produce a large number of random
pairs of locations inside that region and measure the distance (measured along motor
ways) between these locations; when we take a sufficient amount, we get an estimate
of the average distance. A much faster, and not necessarily must worse estimate is, to
assume that the region is roughly square, and take for the radius half the square root of
the the area. Or assume that the region is circular and take the square root of the area
divided by π. For every estimate the following holds: an estimate only serves to arrive
at a first iteration of the model. Once the model is ’complete’ in the sense that the
category-II variables can be calculated as a function of the category-I and category-III
variables, we can perform a sensitivity analysis.
In a sensitivity analysis we investigate how accurate a particular model variable needs
to be. Suppose that we want to know if the applied approximation for the characteristic
distance is sufficient. We then replace the value (if it is a category-III variable) or the
expression (if it is a category-IV variable) by a different one that is equally far off (or
equally accurate), and we check how large the impact in the final category-II variables
is. Even better: we perform an optimization and we check if the optimal solution, or
the optimal solutions on the Pareto front, are significantly different. If they are, we
have reasons to do more work and try to get a more accurate estimate for the variable
or the expression at hand; if the outcome is not significantly different, we don’t have to
bother: the used approximation was accurate enough.
people : the attribute people represents the number of people in the selected region.
cities : denotes the number of cities in the region - where a ’city’ is a separate community
for which we have to pay a licence. Indeed, the interpretation (or: the definition)
of the attributes in our data models is fully determined by the use we make of these
attributes in other formulas. Since the value of the attribute cities is only used in the
context of the formula comm=DGET(N12:Q17,Q12,N18:where)*municipC, the definition
of cities in our context must be ’the number of times we have to pay for a licence’.
Observe that definitions as we use them are never supposed to be absolute or canonic:
definitions are only used in the context of the model we are building, and therefore the
only requirements are that definitions (a) are used consistently, that is: have the same
meaning in all expressions in which they occur; and (b) that they roughly meet with
our intuition.
Finally notice that the expression comm=DGET(N12:Q17,Q12,N18:where)*municipC re-uses
the variable where, that was introduced earlier in step 7. We use again the query mechanism
where in cells N18 and N19, respectively, we write the label (=attribute name) region and
underneath a (reference to the) variable that holds the value for this attribute (in our case,
the variable where).
17. (F15) fuel=nrRmCpY*avLpR*flPPl*DGET(N2:R8,P2,N9:N10)
We re-use the variables nrRmCpY and avLpR, both introduced earlier in step 4. Together with
table 5.1 to derive an expression for the costs of the consumed fuel. In order to do so, we
of course need another category-III variable, which is the fuel price in Euro per liter, flPPl
(or ’fuel price per liter’). Some assumptions (that automatically give rise to suggestions
for alternative options) are, that the total fuel consumption is proportional to the number
of kilometers, and that the fuel price is constant. An alternative option could consist of a
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
105
market model where a deal is made with fuel providers for consumption-dependent discounts,
or a market model where the chauffeurs are given a larger salary from which they have to
pay the fuel for their taxis (this would stimulate chauffeurs to take cheaper routes and to
adopt a driving style that is more cost-effective).
18. (F16) insur=nrCars*carIns+(nrStaff+addPers)*prsIns
The last unresolved cost term as introduced in step 3 is the average annual insurance premium, insur. Of all possible models, we adopt the simplest one, where we split the insurance
in fleet-related insurance and personnel-related insurance. For the latter we assume that we
pay both the premiums for the staff on our payroll, and for the incidental contract workers. The necessary category-IV variables nrCars and nrStaff have been introduced before.
The amount of contract workers thus far was not necessary (in step 15 we only mentioned
the amount of wages spend to contract workers, not the number of contract workers). The
variables carIns (or ’car insurance’) and prsIns (or ’personnel insurance’), as we introduce them here, define their meaning as, respectively, ’average annual insurance premium
per car’, and ’average annual insurance premium per person’. This is a rather naive first
estimate. Thinking about alternatives prompts for all sorts of constructions, like no-risk
discounts, lump-sum insurance deals or even the option to form cooperations with other taxi
companies to get a stronger negotiation position in the insurance market.
19. (J11) nrRmCpY=nrRStaff+nrROth
The average annual number of rides, performed by my company is the sum of rides performed
by my staff (nrRStaff) plus the number of rides performed by others (nrOth; that is, contract
workers). An assumption here is that one ride is completed by one chauffeur. An alternative
would be a hypothetical construction where chauffeurs each have their own region, and
chauffeurs are swapped at region borders. For a taxi company this may not be very common,
railway companies have been operating in this fashion ever since regular schedules were
introduced.
20. (L6) fPr
The fixed base price for any ride. This can either be a category-I variable (we choose to play
with this variable as part of our design space); a category-III variable (for instance, if we
take the base price the same as that of my competitors, to facilitate price comparisons for
potential customers) or a category-IV variable (for instance, if the fixed price is a function
of the chosen brand of cars - to express the intuition that customers should pay more to be
seated in a luxurious car). In the present model we have made it a category-III variable.
21. (J14) avLpR=chLR*llR+(1-chLR)*lIRR
In an earlier formula (in step 13) we expressed that the average duration of a ride was the
weighted combination of the duration of a local ride and that of an inter local ride. We also
need the average length, and we follow the same argument. So we re-use the variable chLR,
or the chance of a local ride. The variable llR, or ’length of a local ride’, is new, but the
variable lIRR, or ’length or an inter local ride’ was introduced earlier in step 13.
Notice that formulas such as avLpR=chLR*llR+(1-chLR)*lIRR and avgDpR= chLR*avDlR+
(1-chLR)*lIRR/iLSpd are no more or no less ’valid’ than the ’canonical’ formula that is
taught in elementary physics courses, lim∆t→0 ∆s = v × ∆t, or ’distance=speed × duration’.
The latter formula also requires strong assumptions, such as ’constancy’ of speed - which is an
abstract mathematical construct that requires impossible operations such as taking the limit
to infinitely small time intervals and infinitely small spatial distances, and (even worse ...) doing so for every infinitely small time interval ... In practice, statements or measurements of relations between distances and time intervals always relate to averages, and therefore formulas
such as avLpR=chLR*llR+(1-chLR)*lIRR or avgDpR=chLR*avDlR+(1-chLR)*lIRR/iLSpd
are just as ’correct’ or just as ’incorrect’ as the standard textbook formulas.
106
CHAPTER 5. MODELING: A TUTORIAL
22. (B3) kmPr
As opposed to the fixed base price, introduced in step 20, the kilometer price is presumably
a variable we want to tweak in order to optimize the design of our taxi company. Therefore
we will make it a category-I variable.
23. (H13) nrReqRpY=nrCiR*frTC*nrRpCpY*cttmC
We introduced the average annual number of requested rides for our company, or nrReqRpY
in step 8. It is a very crucial variable, because it occurs in the root paths of many category-I
variables. Even without a quantitative model, we can understand that it determines, to a
large extent, the success or failure of our company. Let us first see what our intuition tells
us about it.
• It should increase with the number of people living in the region where we are active:
the more people there are, the more potential customers. This gives rise to the variable
nrCiR, or ’number of citizens in region’.
• It should increase with the fraction of people who ever take a taxi. Many people - for
instance, car owners or small children, won’t order taxi rides. This gives the variable
frTC, or ’fraction of (potential) taxi customers’, which is a number between 0 and 1.
It can be found by a market poll, it can be looked up in statical surveys, or (as in the
present case), it can simply be guessed.
• It should increase with the average number of taxi rides people (who happen to be
potential taxi customers) require per year. This introduces the variable nrRpCpY, or
’number of required rides per customer per year’.
• Finally, it should increase with the relative popularity of my taxi company compared
to my competitors. This introduces the variable cctmC, or ’chance that a customer
chooses my company’. This again is a chance, so a number between 0 and 1.
If any of the factors equals zero, the value of nrReqRpY is zero. Therefore, a multiplicative
model where all these variables occur as independent, multiplicative factors is the most
obvious form (although it is, as usual, not the only possibility). It is interesting to see
that each of the factors potentially could inspire to a distinct market strategy. Increasing
nrCiR relates to increasing the region where we are active; increasing frTC relates to the
popularity of taxis in general (not restricted to my company, so this could be a joined effort
with other taxi companies). Increasing the factor nrRpCpY relates to mobility in general
(not only restricted to taxi rides), so this could lead to a joined advertisement effort with
railway or bus companies. Only the last factor, cctmC accounts for the attractiveness of my
company as opposed to that of other companies. This is where price, efficiency and quality of
service come in. We will see in the sequel that, in the simplest model, all but the last factor
are beyond the influence of the designer. Therefore they are either category-III variables or
category-IV variables that depend on category-III variables only.
24. (J7) chLR
A category-III variable: the chance that a customer requires a local ride, introduced in step
13, and re-used in 21.
25. (L7) avDlR
A category-III variable: the average duration of a local ride, introduced in 13.
26. (J6) llR
A category-III variable, expressing the average length (in kilometers) of a local ride. Introduced in step 21.
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
107
27. (F20) lIRR=DGET(N12:Q17,radiusLabel,N18:where)
In step 21 we introduced lIRR as the length of an inter local ride. This length of course
depends on the size of the region we are operating in. Since we had a table (table 5.2)
with all information of regions, we can immediately make a query to the value of lIRR as
a function of the value of where. We use the same query mechanism that we encountered
before. Notice that this model assumption is somewhat naive. Indeed, just increasing the
size of the region where we are active does not simply mean that the inter local rides will,
on average, cover the entire, larger, region. The average distance customers want to travel
is not determined by the choice of a taxi company regarding its area of operation. Rather
we need some model about the travel profile of customers: how far, on average, does the
average taxi-passenger want to travel? On the other hand, the decision to cover a larger area
could inspire to active marketing strategies where customers are tempted to use the taxi for
longer rides (e.g., by spectacular discounts), or by collaborations with other transportation
organizations. The former Dutch train-taxi initiative is an example.
28. (N19) where=size
where is the variable that is used to query table 5.2. It contains the value of category-I
variable size.
29. (J8) iLSpd
The average speed of a car on an inter local connection, introduced in step 13. In the
simplest model this is a category-III variable. Indeed, the speed on motor ways is dictated
by law - unless we would decide that our fleet should contain rickshaws, elephants or other
slow vehicles - for instance because we specialize in scenic or otherwise authentic means for
transportation.
30. (J4) municipC
The commission we have to pay for municipal licences, introduced in step 16. A category-III
variable.
31. (F11) staffSal=annWages*nrStaff
The annual amount of salary we have to pay to our own staff, introduced in step 15. We
adopt the model that the salary of my own staff, unlike that of the contract workers, is
independent of the number of annual rides they perform. Of course, there are many variations possible that, for instance, could stimulate the initiative of my chauffeurs to attract
customers. The category-IV variable staffSal is expressed in terms of the number of staf
members (nrStaff) and the annual wages I pay to a staff member. These are both categoryI. Notice that we could have a completely different business model where I decide the amount
of money I would allocate to salary payment (=a category-I variable), and next make the
size of my staff dependent on this amount. In particular small start-up companies often use
the latter model: they decide to hire additional crafts as soon as they have enough money
to pay salaries.
32. (F12) contrW=nrROth*avgDpR*hourlyWage
In step 15 we also introduced the amount of money we had to pay to contract workers.
In a simple model we hire these from an employment agency; that means that the hourly
wages are non-negotiable (they are in category-III). So the (simplest) model reduces to a
multiplicative expression in terms of nrOth (’number of rides by other chauffeurs’, introduced
in step 19), avgDpR (’average duration per ride’, introduced in step 13), and a new variable,
hourly wage which will be a category-III variable, determined by the employment agency.
33. (J5) hourlyWage
The hourly wage for chauffeurs that are hired via an employment agency, as introduced in
step 32
108
CHAPTER 5. MODELING: A TUTORIAL
34. (B4) nrCars
Category-I variable, expressing the number of cars in my fleet. Introduced in step 9.
35. (L3) flPPl
Category-III variable, expressing the gas price in Euros per liter. Introduced in step 17.
36. (L4) carIns
Category-III variable, expressing the average annual insurance premium for car insurance
per car. Introduced in 18.
37. (L5) prsIns
Category-III variable, expressing the average annual insurance premium for personnel insurance per person. Introduced in step 18.
38. (J3) nrRpCpY
Category-III variable, expressing the average number of taxi rides per year, required by a
potential customer. Introduced in step 23.
39. (J2) frTC Category-III variable, expressing the fraction of the inhabitants in a region who
sometimes require a taxi ride. Introduced in step 23.
40. (F19) nrCiR=DGET(N12:Q17,P12,N18:where)
The number of inhabitants living in the region of my choice is obtained from table 5.2 by
means of a standard query. The query is indexed by the variable where. The variable nrCiR
was introduced in step 23.
41. (B6) addPers
The amount of additional personnel, i.e., the chauffeurs that are not on my payroll but are
hired in an employment agency to work on contract basis. I must decide an upper limit to
this number of chauffeurs; the trade-off is that I must pay a certain amount per year on
insurance costs for these people, even if I don’t hire them. But if I have too few of these
contract workers, it could be that I cannot handle taxi ride requests in peak hours.
In our model, the associated mechanism was by means of insurance premium (the more
contract workers I deal with, the more insurance premium I have to pay); other mechanisms
could include that I have to pay the employment agency. It is a category-I variable, it was
introduced in step 18.
42. (B2) carType
The variable carType was introduced first in step 6, where it served to index the table 5.1.
The simplest way to model the choice of my fleet is to have a single category-I variable.
This represents the assumption that I operate my business with a single type of cars. More
interesting models of course should allow for a mixture of various types of cars, with each
type occurring with its own features as expressed in table 5.1. This would ask for a series of
category-I variables, namely one for each occurring type. Each of those would represent the
number of cars of that type.
43. (H19) cttmC=ramp(kmPr,0.8,0.9,2.5,0.1)
In the expression for the number of requested taxi rides per year, given in step 23, there was
a factor cttmC that expresses the chance that any given taxi ride will be performed by my
company rather than any of my competitors. In order to give an expression for cttmC, we
would therefore need to investigate all competing features. In a first model we could restrict
ourselves to a single feature, say the kilometer price. The simplest of all assumptions would
be that, the lower the kilometer prices, the more attractive my company would be. Therefore
we use a ramp function, as explained earlier. A quick market survey teaches us that, for
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
109
existing taxi companies, kilometer prices range between 80 Eurocents and 2.50 Euro. This
means that these values would be meaningful lower and upper borders for the domain of
my ramp function. Once I am cheaper than my cheapest colleague, I won’t attract a larger
fraction of the market by dropping my price even further (in a more sophisticated model, I
could increase the market for potential taxi rides by further price reduction, though ...). Let
us say that in that case I would attract 90% of the market (there will always be people who
are not affected by the standard market mechanisms). Similarly, once I am more expensive
than my most expensive competitor (and I don’t offer anything extraordinary with my taxi
rides), I will not loose any further market share by making my price even higher. Suppose
that this worst-case market share is 10%. This gives a simple, piecewise linear model for the
expected market share as a function of my kilometer price.
44. (B7) annWages
The category-I variable annWages, or ’annual wages’ expresses the annual salary that I pay
my permanent staff. It was introduced in the expression for the salaries, step 31, and it
influences the fun as experienced by my chauffeurs. If we would ignore its role in the funfactor of the chauffeurs, or if we would optimize the model to profit only, we expect that
the value for annWages will be minimized. This is a direct consequence from the fact that
the model then lacks the positive consequence of increasing the salary of my staff. The
inclusion of annWages in the chauffeur’s fun-factor, ffmP, is the simplest way to introduce a
trade-off in the model. A trade-off always expresses itself in multiple solutions on the Pareto
front. In the simple situation of a single trade-off, the extreme ends of the front (that is
a 1-dimensional curve, in this case) correspond to the pairs (minimal fun, maximal profit),
and (maximal fun, minimal profit). With more subtle interactions, and possibly multiple
trade-offs in a model the interpretation of a Pareto front may not be so straightforward; still,
it is often possible to identify certain parts of the Pareto front as certain global strategies
for the design at hand.
45. (H15) nrROth=MIN(othCap,bOth*(nrReqRpY-nrRStaff))
In step 5 we stated that rides could either be performed by my own personnel, or by contract workers. We introduced the term nrROth to represent the number of rides performed
by these contract workers. Now we have to give an elaboration of the term nrROth. We
first remember the expression nrRStaff=MIN(staffCap,bStff*nrReqRpY) in step 8 which
related the number of rides performed by my own staff to the number of requested and
serviceable rides, bStff*nrReqRpY and the staff capacity, staffCap. For the contract workers, we state something similar: nrROth=MIN(othCap,bOth*X). Here, X should express the
number of requested rides that come in and should be handled by contract workers. If we
assume that a ride is always handled by my own staff unless the staff is fully occupied, we
get for X the expression nrReqRpY-nrRStaff, that is: the total number of requested rides
minus the ones that are served by my own staff. The factors othCap (or ’other capacity’)
and bOth (or ’busy others’) have a similar meaning as with my own staff - we will elaborate
on them in a minute.
46. (H18) othCap=MIN(MAX(nrCars-nrStaff,0),addPers)*365*24/avgDpR
To express the value of othCap as introduced in step 45, we must realize that running taxis
is not just a matter of having chauffeurs: the chauffeurs must have something to drive in.
Therefore, unlike with my regular staff, the number of available contract workers need not
to be larger than the number of available cars - that is, the number of cars I have minus the
number of permanent staff. Remember that contract workers only come in if all my permanent staff is occupied. So all my staff members are driving a car at that moment. Only the
surplus cars can be used by the contract workers. Hence the term MAX(nrCars-nrStaff,0).
Further, according to the assumptions that were made in step 41, I cannot dispose of more
than addPers contract workers; hence the term MIN(MAX(nrCars-nrStaff,0),addPers).
Since capacity was expressed in average number of available rides per year, we multiply it
110
CHAPTER 5. MODELING: A TUTORIAL
by 365*24 (=the number of hours per year) and divide it by avgDpR (=the average duration
per ride).
47. (H17) bStff=POISSON(nrStaff,avgRegRinTSL,TRUE)
Suppose that we would have n staff members, and on average n requests for a ride in any
given time slot. That is, requests for n simultaneous rides. At first sight it may seem that
we then can serve 100% of the requests, and 100% of the staff is occupied. This would only
be true, however, if the number of n simultaneous requests would not be an average number,
but a constant number. That is, if precisely n requests for a ride would exist at any time
point. This is of course not realistic. The requests are stochastically distributed, so there
will be times when part of the staff has nothing to do, and times where not all requests can
be fulfilled. We need a model to account for the stochastic nature of the arrival of requests.
The simplest, non-trivial model is based on the assumption that the chance of a request
coming in is uniformly distributed. That is, every time period has equal chance to receive
a request. This is naive, because calls for taxis peak, for instance, at closing hours of
pubs and theaters and during strikes in public transport, to name just a few circumstances.
Nevertheless, let us elaborate the simple model for uniformly distributed calls. Let us focus
on a time interval of length avgDpR. During any such interval, between 0 and nrStaff staff
members can be engaged in a taxi ride.
Of course, calls come in at random points in time. We assume that we make no serious
mistake, however, if we pretend that the time proceeds in discrete jumps of size avgDpR, and
all calls within such a time interval are lumped to the start of this interval. At the start
of this interval, all staff members have just completed the rides from the previous interval,
and they are all ready to take a following ride. So the average number of calls we expect in
such an interval is avgRegRinTSL=nrReqRpY/nrTSlpY, where avgRegRinTSL is the average
number of requested regular rides in a time slot (’regular’ means: handled by our own staff);
nrReqRpY is the total number of requested rides per year, and nrTSlpY is the number of
time slots per year.
The chance that the actual number of calls in a time slot is exactly equal to some number
X is given by the so called Poisson distribution:
P (X, λ) =
e−λ λX
,
X!
where λ is the expectation value of the number of calls per time slot. It is computed by the
Excel function POISSON(X,avgRegRinTSL,FALSE).
Now observe that we can handle a number of simultaneous calls of at most X=nrStaff.
The chance that the number of calls in a time slot is at most equal to nrStaff is given
by the so called cumulative Poisson distribution. This is given by the Excel function call
POISSON(nrStaff,avgRegRinTSL,TRUE). So, for a given value of nrStaff and a given value
of avgRegRinTSL, the calculated value of bStff is a number between 0 and 1. If it is 1, this
means that it is certain that we have enough staff. If it is, say, 0.9 we interpret this that in
90% of the cases we will have enough staff. In other words, when we take the entire period
of one year into account, and if we assume all time slots independent, we can serve all calls
in 90% of the time slots - in other words, we can serve 90% of the total amount of calls.
Therefore, the amount of fulfilled requests would be the same as if we would have received
90% of the requests. Therefore we model the effect of limited staff capacity by a multiplication of bStff and NrReqRpY where bStff=POISSON(nrStaff,avgRegRinTSL,TRUE) and
avgRegRinTSL is the average number requested regular rides per time slot.
48. (H16) bOth=POISSON(MIN(addPers,MAX(0,nrCars-nrStaff)),avgAddRinTSL,TRUE)
We had a second source of capacity, namely the contract workers. Since the number of
available contract workers is also limited, there is a chance that their capacity is exhausted
5.2. A FUNCTIONAL MODEL OF A TAXI COMPANY
111
- even if it would be sufficient to handle the average demand. For this reason, also in step
45 we introduce a factor, bOth to reduce the actual demand. We apply the same reasoning
as in step 47 to elaborate bOth - with two modifications, however. As explained in step
45, we adopt the policy that contract workers are only brought in when the permanent
staff is fully occupied. So the number of required rides for which we should have a contract worker is not nrReqRpY, but it is the number of supernumerary rides - that is, those
rides that are not dealt with by our permanent staff, nrReqRpY-nrRStaff (see step 50 below). Furthermore, we can only accommodate contract workers with cars that are not in
use by the permanent staff. So, similar as in step 46, we set the available capacity equal
to MIN(addPers,MAX(0,nrCars-nrStaff)). The variable avgAddRinTSL, or ’average additional rides in a time slot’ represents the expectation value of the number of supernumerary
rides per time slot. In the sequel, we have to give expressions both for avgRegRinTSL and
avgAddRinTSL.
49. (J16) avgRegRinTSL=nrReqRpY/nrTSlpY
To be consistent with our argumentation in step 47, the number of required regular rides
per time slot, avgRegRinTSL, is the total number of required rides per year divided by the
number of time slots per year. So we introduce a new category-IV variable, nrTSlpY, or
’number of time slots per year’.
50. (J12) avgAddRinTSL=(nrReqRpY-nrRStaff)/nrTSlpY
To be consistent with our argumentation in step 48, the number of required additional rides
per time slot, avgAddRinTSL, is the total number of supernumerary rides per year divided
by the number of time slots per year. The number of supernumerary requested rides is the
total number of requested rides, nrReqRpY, minus those that are handled by the regular staff,
nrRStaff.
51. (J15) nrTSlpY=365*24/avgDpR
The number of time slots per year is the length (in hours) of a year divided by the length of
one time slot (=the duration of an average taxi ride, avgDpR).
52. (B1) size
Finally, the category-I variable size represents the size of the region we want to work in,
encoded as ’A’, ’B’, ... ’E’, as explained in step 7 and table 5.2.
If we enter the entire model in MS-Excel, and provide plausible values for the various category-I
and category-III variables, the result could look something like figure 5.1. Although this contains
all the functional dependencies we carefully developed, and therefore supports all sorts of what-if
analysis, it doesn’t invite us to explore the space of all possible designs of our taxi company.
Optimization is not immediately obvious, and the representation of the entire model as a mere
matrix of numbers and strings reveals too little of its underlying structure to be really helpful.
In the next chapter we will encounter some simple software tools that can give tremendous help
to actually put the model into work.
112
CHAPTER 5. MODELING: A TUTORIAL
Figure 5.1: The taxi company model when entered in a spreadsheet.
Chapter 6
Modeling: tool support
’Climbing the stairway to heaven is fine, but an escalator is better’
6.1
Nano Accel: supporting the maintenance of functional
models
We ended the previous chapter with a functional model, developed using our 4-categories approach.
Such a model can conveniently be implemented in a spreadsheet, leading to something as in figure
5.1. This does not invite to actively explore the design space; it won’t help us in communicating
the model to our colleagues (nor to ourselves after a couple of weeks when we have forgotten
most of the details), and it cannot be optimized. Indeed, although spread sheet programs often
allow some forms of numerical optimization (sometimes called ’goal seeking’), this only allows to
optimize with respect to a single parameter. We want to make our design decisions in order to
take both profit, fun and staf waste into account, and standard spreadsheets cannot do this.
In this figure, we have exactly the same functional model, but we have added some provisions:
• The use of spreadsheet functionality is limited to the tables only.(In the example of chapter
5 these were the tables containing the information about cars and containing information
about regions.) This is plausible, as tables naturally fit within the spreadsheet concept. All
other dependencies are no longer put in cells. Rather, they are expressed as (functional)
relations, where the mathematical expression is used to input, edit and navigate the model.
• During the construction of the model, it will typically be not be executable most of the time.
There will be all sorts of ’dangling’ variables (that is, variables that have been introduced
as arguments in the right hand part of formulas but that have not yet been defined: that is,
they don’t yet occur as the left hand part of some other formula). Spread sheets responds to
such circumstances with a little informative error message ’No Value’, but it can be awkward
to find out which variables have not yet been defined. In NanoAccel we have, at any time,
a list of variables that only occur in right hand sides of expressions; only when this list is
empty we know that the model is ’ready’, that is: that it can be calculated.
113
114
CHAPTER 6. MODELING: TOOL SUPPORT
Figure 6.1: The taxi company model when entered in the modeling environment as provided by
NanoAccel.
6.2. MODEL MANAGER
115
• As soon as the model is ready, a number of buttons appear that allow using tools for the
manual exploration of the design space, for graphical evaluation, or for automated optimization.
• NanoAccel gives convenient support for navigating through the model: it helps to track
dependencies in both directions (that is: for a given variable X, it produces either a list of
variables on which X depends, or a list of variables that depend on X. Both lists are also
clickable, to allow fast navigation through the graph of all dependencies.
The tool NanoAccel is designed to support the maintenance of functional models. In this
chapter, we see how the NanoAccel software tool suite can assist in building, maintaining,
extending and exploring functional models in the form of figure ??.
6.2
6.2.1
Model manager
General Introduction
The NanoAccel system assumes a functional model, represented by a collection of variables,
expressions and values. All components of the system are evoked via the model manager form. This
is the central user interaction form, which embodies te most central functions of the NanoAccel
system. It is implemented as an MS EXCEL-form with associated Visual Basic macros - in
essential the same way as the Assist system as described in chapter 3. The model manager form
is launched by a macro called startModelManager Click. This macro is started either by first
clicking on this macro’s name in the macro-menu and next clicking on run, or by typing ctrl-m
from somewhere in the worksheet named ”model”.
6.2.2
Manual
Before NanoAccel can be run, the international / regional settings of Windows must be set
to ’English (UK)’. This is because the representation of floating point numbers depends on the
international setting: the decimal separator in NanoAccel complies with the British system.
The international / regional settings can be found in the configuration screen; this is can be found
in the Windows’ menu that appears when the start-button in the lower left of the screen is clicked.
Launching NanoAccel’s model manager form initiates the current model to empty. There are
no variables, and hence no functional dependencies. The form can be dragged to a convenient
location in the worksheet, where it doesn’t obstruct the view on too many cells (e.g., in the case
that tables exist in the ’model’-sheet). If one of the other tools in NanoAccel is started, the form
is made invisible, so that no interaction can take place as long as the other tool is in operation.
Also, the cells in the spreadsheet can not be edited as long as one of the tools is open. Figure 6.2
depicts a screen shot of the model manager form, when we just started to type in a model. In
this case, we first entered ’a = b + c’. After entering this, the system knows that there are three
variables (a,b, and c), and that of these three only a is defined1 .
At this point, NanoAccel will display a list with undefined variables in a list box in the lower
right part of the form (colored yellow); this list contains b and c. This list should be seen as a
reminder: in the future, we still need to give expressions or definitions for these variables. If the
1 A variable is ’defined’ means that the value of this variable can be evaluated provided that the values for all
variables on which it depends, are also defined. Therefore, a variable which does not depend on other variables is,
by definition, ’defined’. This is because of the convention that the NanoAccel system only accepts inputs of the
form <left hand part> = < right hand part >, where the left hand part is the name of a variable and the right
hand part is an expression that possibly involves other variables. In the case, for instance, were we input ’a = 1’,
the right hand part does not contain any variables, and hence the variable a is defined to be 1.
116
CHAPTER 6. MODELING: TOOL SUPPORT
user clicks on a variable in this list, it will appear in the edit entry text box (see below) as a
left hand term of an expression; the user can complete this expression to give a definition for the
variable.
At the same time, NanoAccel pops up a list box with variables that only occur in the left hand
part of some entry, and not in any right hand (in this case, the variable a). This list box appears
lower left, and is colored orange. When the model is ready, this list box should only contain
the category-II variables. Indeed, these are the only ones on which no other variables depend.
During the process of developing the model, however, this list box might occasionally contain any
category-IV variable that has not yet been set as input for another (category-IV or category-II)
variable. In case a model can be calculated, that is: if it contains no syntax errors and all variables
are defined, it will be calculated. In that case the orange list box not only contains the names of
the left hand-only variables (typically, the category-II variables), but also their current values in
the form ’variable name=value’.
Finally, a third list box appears. This is the grey list box, in the middle right of the form.
This list box contains information about the dependencies of the current entry. There are two
possibilities: depending on the setting of the checkbox it can show the variables that depend on
the left hand variable of the current entry, or it can show variables that occur in the right hand
part (=the expression part) of the current entry. The latter is the default, which applies if the
check box slightly above the grey list box is not marked. So in the current example, the grey list
box contains the variables b and c. The text above the list box reads: ’variable ¡a¿ depends on’.
So we know that presently, a depends2 on b and c. The grey list box contains a line, saying ’click
here to close’. Clicking on this line makes the grey list box vanish. This is useful, since it sits
on top of the large, blue list box which merely contains all entries entered thus far. If there are
many entries, the blue list box contains a scroll bar at the right hand side, and this scroll bar gets
obscured by the grey list box if it is present.
Suppose that we next enter, as a new entry, ’b = 3 ∗ d + 1’. Indeed, b was one of the as yet
undefined variables from the yellow list box, and it was ’waiting’ to become defined. As expected,
b vanishes from the yellow list box, but immediately the new variable d is added. The orange list
box doesn’t change, and the grey list box now only contains the variable d. The blue list box
contains now both entries, ’a = b + c, and ’b = 3 ∗ d + 1’.
After we have entered these two entries, there are still undefined variables (namely, c and d), so
he model can not be calculated. For this reason there are no ’run’, ’Pareto’, or ’graph’ buttons.
(In a minute we will explain what these buttons are for).
Apart from the list boxes we have discussed now, there are two more boxes that can contain text.
These are the top most white box (a text box) which is used for entering and editing entries, and
below a second text box that is used for entering and editing comment texts that may clarify an
entry. Whenever the edit box is empty, we can start typing something; hitting the return-key
completes the entering or editing process and moves the edited entry or comment to the list of
entries in the blue list box. Entries don’t have to be accompanied by comment texts; this is highly
recommended, though. Conversely, a comment text without an accompanying entry can not be
entered to the system. Notice that comment texts appear between parenthese behind the entry
they belong to in the blue list box.
In order to edit an existing entry, it suffices either to click on the entry in the blue list box, or
to click on the variable in the left hand part of the entry in any of the three other list boxes (the
grey, the orange or the yellow list box). For convenience, entries are sorted alphabetically in the
blue list box.
Finally, there is one optional last box near the bottom of the model manager: this appears when the
debug-option is used; in that case, it contains values of variables that were flagged for debugging.
2 To be precise: a depends immediately on b and c. It might be the case that one of these depends in turn on
other variables. Such indirect dependencies are not shown.
6.2. MODEL MANAGER
117
The interaction with the features of the model manager takes place via a number of buttons,
checkboxes and scrollable list(s) in the various tools. In the sequel we describe these interactions
in more detail.
6.2.3
Controls
new
When we want to start a new model, the system needs to be initialized. All variables are removed
from the system. If an unsaved model exists, the user is asked first if this model should be saved.
Otherwise it will be lost.
load
Models can be saved to a file on disk an the can be loaded from disk. Saving and loading follows
the standard MS-Windows conventions. Clicking the load button pops up a file locator dialogue.
The extension for model files is .ac5. Before a new file is loaded, NanoAccel first checks if an
unsaved model exists; the user is given the opportunity to save this first.
Once a model is loaded, the name of the current model appears in the titel bar of the model
manager form. If an asterisk precedes the name of the file, this indicates that the model has
been changed since the last save operation. The model is written into the various list boxes. It
is checked for syntactic correctness, and if any errors were found, error messages are given. If the
model was syntactically correct, it is executed.
Notice that loading and saving only applies to the entries that make up the model. If the model
assumes some further information, such as tables in the spreadsheet ’model’, this information is not
automatically saved. The user is responsible for saving this information by saving the spreadsheet
proper.
save
Clicking the save button saves the present model.
save as
Clicking the save as button asks for a filename by means of the standard file locator dialogue and
then saves the present model under this new file name. From then on, the new name appears in
the title bar of the model manager form. If a name is given of an existing file, a warning is issued
that the existing file may be overwritten; the user is asked for an alternative name in case this is
unwanted.
edit
For minor editing, the built-in edit facilities of NanoAccel, based on editing text in the edit
entry and add or edit optional comment text boxes are just about sufficient. They provide
an intuitive integration with the other functions, such as run, Pareto, and graph. For more substantial editing, however, it is recommended to use a full-fledged text-editor, such as MS-Windows’
notepad. In order to use a Windows editor for editing an NanoAccel model description, we first
need to associate the file extension for NanoAccel model files to a text editor. For the current
version, this extension is .ac5: files ending with .ac5 are NanoAccel model files. Clicking on
the edit button instructs Windows to open the currently loaded NanoAccel model file with
whatever Windows application (such as notepad) this file is associated. Prior to opening the file,
a save instruction is executed by NanoAccel, so that the version on disc is the most recent version of the current model file. Next the Windows application associated with NanoAccel model
files is launched, with the current NanoAccel model file loaded. Within the opened editor, all
edit functions are available, so the file can be edited. The format of a NanoAccel model file is a
standard ASCII-text file. It consists of linefeed-separated lines. Any line is interpreted as either
an instruction line (that is, a line containing an=-sign) or a comment line (that is, a line preceded
118
CHAPTER 6. MODELING: TOOL SUPPORT
Figure 6.2: A screen shot of the NanoAccel model manager.
6.2. MODEL MANAGER
119
by two adjacent slashes. Blank characters (such as spaces or tabs) may precede both types of
lines. Any other type of line is ignored. An instruction line may be followed by zero or more
comment lines; in case there are multiple comment lines, these are concatenated to a single line
when read into NanoAccel. Comment lines are assumed to belong to the instruction line that
immediately precedes them. The first line in a NanoAccel model file must be an instruction line.
After having edited a NanoAccel model file by means of a Windows text editor, the file should
be saved and the editor should be closed; next, the (updated version of the) file is automatically
loaded again in the model manager form.
check box ’V’
When using the built-in functions to edit the NanoAccel model, we use the text boxes edit
entry and add or edit optional comment. After text in any of these boxes has been changed,
and the modification should become permanent, the green ’V’ button should be clicked (compare
acknowledging editing a cell in MS-Excel). The green ’V’ normally appears as soon as changes in
any of the text boxes edit entry or add or edit optional comment occur; if the green ’V’ is
not visible, press ’return’ with the current focus inside the edit entry text box.
edit entry
The text box underneath the label edit entry is the text box where editing entries occur. In he
sequel this will be called the ’edit box’. The following applies to editing:
• All spaces in an entry are redundant, and are removed automatically, except for spaces that
occur between pairs of subsequent single quotes (’ ... ’). Pairs of subsequent single quotes
denote a textual constant (see below), and textual constants may contain spaces.
• All entries have the form ’<variable>=<expression>’. The ’<variable>’ is an identifier,
that is a string of letters, digits and/or underscores that does not start with a digit. A
variable can also be of the form @<cell address>, where a cell address is for instance a1,
cf 358, et cetera. A cell address refers to a location in the spreadsheet; as we explain below,
in this way the NanoAccel model can interface to a standard spreadsheet. Every variable
can only occur once as left hand part in an entry. Entering an entry with a variable name
that occurred earlier as a left hand part overwrites the earlier expression without warning.
• Variables are not case sensitive. The variable name ’AaaaAA’ denotes the same variable
as ’aAAAaa’. To avoid confusion, however, variable names that only differ in upper- or
lowercase are converted to the same spelling.
• The type of a variable is not explicitly given; it is deduced from the context. Variables come
in 3 types: numeric (implemented as double precision numbers), textual (implemented as
variable length strings), and boolean. For each of the three types we can have constants.
A numeric constant is an integer number (such as 34, -1435), a number with a decimal
point (such as 3.1415, -0.111, 0.000005), or a number with exponential notation (such as
-0.1 E+02 or 3.555 E-07). A textual constant is delimited by single quotes, such as ’aaaa’,
or ’peanutButter’. Also ’3.1415’ is a textual constant. A boolean constant is the word true
or false, without quotes. In case a value is not given as a constant, the type is deduced
from the form of the expression in an entry. For instance, in a = Sin(b + c), all a, b and
c are numerical variables. In x = (p > 3)&&(q < 5), we have that p and q are numeric
variables whereas x is a boolean. The operator && denotes the logical ’and’, as we will
see in a minute. In some cases the type of a variable can not be uniquely determined from
inspecting the expression. For instance, to tell if in m = M in(m1, m2) m has a numerical
value or a textual value, we need to know the types of m1 and m2. If these both evaluate
to numerical values, the function M in() returns the smallest of the two numbers. If they
are both textual, the lexicographical lesser of the two textual values is returned. If they
are different booleans, false is returned, due to the convention that false<true. In the case
120
CHAPTER 6. MODELING: TOOL SUPPORT
of mixed types, the result is not determined and such usage of Min() should be avoided3 .
item Expression such as ’a-b+c’ are ambiguous: it can mean a-(b+c) or (a-b)+c. Although
NanoAccel has built-in conventions for the order of execution of expressions containing
multiple operators, it is advisable to use parentheses to disambiguate.
• In order to communicate with a spreadsheet, for instance to get access to tables, variables
may have the form of an at-symbol (@) followed by a standard Excel cell address. Such a
variable refers to a cell: if it occurs in a right hand part of an entry, the value of the indicated
cell is taken; if it occurs in the left hand part of an entry, the value of the evaluated right
hand side is copied into that cell. In this way we have the entire spreadsheet functionality
to our disposal, including functions that are not supported directly by NanoAccel, such
as spreadsheet table access and arbitrary user-written functions.
• The expression part of an entry s can contain any well-formed arithmetic string of operators
+, −, ∗ and / that operate on variables or constants. Parentheses are used to control
the order of operations. A fair number of logic operations is supported, namely: == to test
equality, and ! = to test inequality; < and > to compare magnitudes. Unary operators are
the ’-’ for numerical values and ˜ (tilde) for logical values. The logical ’and’ is given by &&
and the logical ’or’ by ||.
• Expressions may also contain functions. Built-in functions are the following:
– Arithmetic
∗ Add(), Subtract(), Multiply(), Divide() that are identical to the infix operations
+, −, ∗, / ;
∗ Mod() that computes the modulo of two numbers
∗ Abs() that computes the absolute value
∗ -() which is the same as the unary minus (so, obviously, −(5) = −5 )
– Transcendental
∗ Sin(), Cos(), Tan(), Exp(), Log(), Sqr() that are the standard functions from elementary calculus
∗ Pow() that calculates a (non-negative) number to any integer or non-integer power.
– Conditional
∗ If() takes three arguments. The first one has to be a boolean argument (that is, it
must be true or false). If it is true, If() returns the second argument, otherwise it
returns the third argument.
∗ Min() and Max() each take two arguments and return, respectively, the smaller
and he larger of the two. Notice: arguments may be both numerical or textual; in
the latter case, lexicographical ordering is applied.
∗ == () is the same as the infix-operator ==: it returns true if the two arguments
(either numerical or textual) are equal
∗ ! = () is the same as the infix-operator ! =: it returns true if the two arguments
(either numerical or textual) are unequal
∗ > () is the same as the infix operator >: it returns true if the first argument is
larger than the second (numerically or lexicographically). Similar for < ()
∗ &&() is the same as the infix operator &&: it returns true if and only if both
arguments are true
∗ ||() is the same as the infix operator ||: it returns true if at least one of the two
arguments is true
3 The latter property of the function Min() is an immediate result of the implementation in terms of built-in
VBA functions. For reasons of efficiency, the NanoAccel system relies for its runtime type-checking entirely on
the type checking system of VBA. Although this offers a significant gain in runtime efficiency and gives a relatively
simple implementation, some peculiarities had to be taken for granted.
6.2. MODEL MANAGER
121
∗ ˜() is the same as the prefix operator ˜: it returns true if its argument is false and
conversely.
– Special
∗ Sheet() can take arbitrary many arguments, and it will return the last one in the
list. This is necessary to have models depend on spreadsheets. Indeed, if a cell, say
X in a spreadsheet depends on other cells, say Y and Z it only assumes its correct
value if all the cells on which it depends also assume their correct value. In the
functional model, however, there is no control over the order in which calculations
take place. It could very well happen that the value of X is inspected before the
values of Y and Z have been set. To avoid incorrect results in such as case, we
use the function Sheet(). If we set a = Sheet(Y, Z, X), where X, Y , and Z are
cells, we enforce that first all arguments of the function are calculated (and, since
they are cells, that their values are copied into the spreadsheet), before the actual
function ’Sheet()’ is evaluated. The latter only returns the value of cell X, but at
least we are certain that Y and Z have propagated their (correct) values through
he spreadsheet.
∗ Sel() is a function that is used to denote category-I variables. As we remember, a category-I variable expresses a free choice or selection on the side of the
designer. We assume that a selection is always taken from a closed - that is: enumerable - set. We distinguish 4 types of sets. These are: integers, reals4 , sequences
and enumeration types. Integers and reals are defined by an interval, given by
a lower and an upper bound. A sequence is a series of (floating point) numbers
between a lower and an upper bound with a given step size. The step size argument must be given after the lower and upper bounds. An example of a sequence
is {0, 2.5, 5, 7.5, 10, 12.5, 15}, which is produced with the function definition
x=Sel(’mySequence’,5,’S’,0,15,2.5) . An enumeration type can be used to denote
any list of (text-)strings. An example of an enumeration type, which denotes a selection of auto brands, would be ’volkswagen,opel,chevrolet,buick,rolls,renault’. So
the entire set is encoded as a single string. If we want to construct an enumeration
type that should return a numerical value rather than a string value, we can use
the conversion function Cdbl() (see below) to turn an element of an enumeration
type into a number, for instance for the following enumeration type ’1, 3, 10, 30,
100, 300, 1000, 3000, 10000, 30000’. Finally, a selection always comes with a default value, in order to allow for an evaluation of the Sel()-function. This default
value is returned unless we are in one of the three special tools (the Pareto tool,
the run-tool or the graph-tool. These tools are discussed in a minute). This gives
for instance the following examples of the Sel()-function:
· a=Sel(’mySelector’,3,’I’,1,100) introduces a selector with name ’mySelector’.
The default return value is 3; it is an integer type (indicated by the ’I’), and
the range is all integers between 1 and 100.
· p=Sel(’diameter’,2.45,’R’,2.10,4.10) introduces a selector with name ’diameter’.
The default return value is 2.45; it is a real type (indicated by the ’R’), and
the range is ’all’ reals between 2.10 and 4.10.
· x=Sel(’mySequence’,5,’S’,0,100,5) introduces a selector with name ’mySequence’.
The default return value is 5; it is a real type which can return values 0, 5, 10,
15, 20, ..., 100 (this is indicated by the ’S’ from ’sequence’). Notice: even if the
indicated default value would not be in the range of values from the sequence,
it will be returned by default. It will not be used in the case of the Pareto- or
run-tools.
4 Technically speaking, reals do not form an enumerable set. There is no algorithm to enumerate reals. Still, for
the computer representation of numbers this should not overly bother us. By ’reals’ we simply mean numbers that
are represented by digits before and/or after a decimal point and optionally an exponent of 10. So examples of our
’reals’ are 3, 17.1, -999.999 and 2.345 E-03.
122
CHAPTER 6. MODELING: TOOL SUPPORT
Figure 6.3: A ramp function
· carBrand=Sel(’carsFromTheCatalogue’,’opel’,’E’,’opel, renault, buick, chevrolet, volkswagen, mercedes, rolls’) introduces a selector with name ’carsFromTheCatalogue’, default ’opel’, and range of return values ’opel’, ... ,’rolls’. The
fact that it is an enumeration type is indicated by the ’E’.
The (named) selector is the device by means of which NanoAccel interfaces between the function evaluations and the mechanisms to explore the solution space
such as the Pareto- and run- mechanisms. For the function evaluation, the function
Sel() is just a function as all other functions, that returns a value in dependence
of its arguments when being called; for the Pareto- and run-mechanisms, selectors
allow a way to externally set values to variables. We will come back to the selectors
when we discuss the Pareto- and run-mechanisms.
∗ Ramp()serves to specify a dependency as explained in 4, for modeling situations
such as described in figure 6.3. For any value x, the function Ramp(x, xmin, ymin,
xmax, ymax) returns ymin if x < xmin; it returns ymax if x > xmax; if x <=
xmax and x >= xmin, it returns (x − xmin) ∗ (ymax − ymin)/(xmax − xmin) +
ymin. It is necessary that xmax > xmin; there are no restrictions on the ordering
of ymin and ymax.
∗ Round() serves to reduce the number of decimals of a (non-integer) number. It
takes two arguments; the second argument is the number of decimals to which the
first argument should be rounded.
∗ Debug() provides an easy means to produce printed output. It occurs, for instance,
in the following form: p = Debug(a,′ comment′ ). The value of the expression a is
printed in a textbox in the lower part of either the Model manager form or the
Run tool, preceded by a rank number (1,2,3,...) and by the string ’comment’. If no
instances of the debug-function appear in the model, this textbox is not shown. The
comment-string serves to distinguish several debug-statements. Indeed, multiple
instances of the debug-function can occur in a model (it may require scrolling
through the textbox to see them all). The function returns the value of expression
a, so p will be made equal to a. In practice it is temporarily used to check if the
value of an expression that is to be assigned to some variable has the correct or
expected value.
– Text
6.2. MODEL MANAGER
123
∗ Lower() converts a textual argument to an all-lowercase version. So Lower(’PoTaTo’)
= ’potato’.
∗ Caps() converts a textual argument to an all-caps version. So Caps(’PoTaTo’) =
’POTATO’.
∗ Left() takes the left hand substring of indicated length. So Left(’aaabbbcccddd’,3)
= ’aaa’.
∗ Right() takes the right hand substring of indicated length. So Right(’aaabbbcccddd’,5)
= ’ccddd’.
∗ Mid() takes the middle part of a textual argument, beginning at the location indicated by the second argument, with length indicated by the third argument. So
Mid(’aaabbbcccddd’,3,5) = ’abbbc’.
∗ Instr() returns the beginning location of the string, indicated by the third argument, as substring of the string, indicated by the second argument, starting at
the location that is indicated by the first argument. If the substring does not
occur, a value 0 is returned. So Instr(1,’aaabbbcccddd’,’bcccd’)=6, whereas Instr(1,’aaabbbcccddd’,’xxyy’)=0.
∗ Len() produces the length of the string argument. So Len(’aaabbbcccddd’)=12.
∗ Concat() is used to concatenate its two string arguments into one. So Concat(’aaabbb’,’cccddd’) = ’aaabbbcccddd’.
– Conversion
∗ Cstr() takes an argument of whatever type and converts it to a textual type (=a
string). So Cstr(’potato’)=’potato’, Cstr(12)=’12’, and Cstr(true)=’true’.
∗ Cint() takes an argument of whatever type and attempts to convert it to an
integer. So Cint(’14’) = 14, and Cint(’-123’)= -123. But Cint(’potato’) and
Cint(’12.675E+43’) both produce an error; in the first case because there is no
numerical interpretation of ’potato’; in the second case because of an overflow.
∗ Cdbl() takes an argument of whatever type and attempts to convert it to a double precision real number. So Cdbl(12) and Cdbl(’12’) both produce 12.0, but
Cdbl(’potato’) produces an error.
– Statistical and combinatorial
∗ Poisson() takes three arguments. The first two are numbers, say x and λ. If the
third argument is false it produces the probability density that a random uniform
process with an expectation value λ events per unit time produces, in a certain
time interval of unit length, precisely x events. This probability density is given
−λ x
by the formula e x!λ . If the third argument is true it computes the cumulative
probability, that is the chance that the number of events in a given unit time
interval is at most x when the expectancy rate is λ arrivals per time interval. This
Px
−λ k
is the summation k=0 e k!λ .
k!
∗ Bin() is the binomial coefficient. So Bin(k,m)= m!(k−m)!
, in other words: the number of different ways in which we can take m elements from a set of k. Another
view to Bin() is the m-th number in the k-th row of Pascal’s triangle.
∗ Fac() is the factorial function. So Fac(1)=1, and Fac(n)=nFac(n − 1).
add or edit optional comment
To clarify the meaning of an entry, it is recommended to add a line of comment. The text box
underneath the label add or edit optional comment is available for this purpose. In the blue
list box, comment texts are put behind the entry they belong to between parentheses. Comments
are ignored by the model manager of NanoAccel. Other tools can take advantage of some
specific forms of comment, though. For instance, the Pareto manager (to be explained in more
detail in a minute) needs to know what it should do with any category-II variable: should it be
124
CHAPTER 6. MODELING: TOOL SUPPORT
maximized, minimized or ignored - or should it be used as a constraint to restrict solutions to
those that are larger than 0, less than 0 or near 0. Normally the Pareto tool will pop up a dialogue
box to get this information from the user. To prevent this dialogue, we can put one of the words
MAX, MIN, IGN, LS0, Gr0 or NR0 between square brackets somewhere in the comment string;
this word will be interpreted as an instruction for the Pareto tool. Similarly, it needs to know if
a category-II variable should be plot horizontally or vertically in the Pareto plot, or if it should
not be plotted. To this aim, we can put one of the words HOR, VER or NONE, also between the
same square brackets. This is only useful for category-II variables. So a category-II variable with
[ MAX HOR ] as part of the comment text will be maximized by the Pareto tool, and it will be
plotted horizontally in the Pareto plot.
delete
The delete button is only visible if there is some entry in the edit box. If the delete button is
clicked, this entry is removed from the list of entries in the blue text box.
pareto, run, graph
The NanoAccel system contains the model manager and three additional tools. These are:
• run (see section 6.3)
• pareto (see section 6.4)
• graph (see section 6.5)
Each tool is launched by clicking on the associated buttons. The pareto tool serves to do genetic
Pareto optimizations (see section 6.4). The run tool allows interactive exploration of the solution
space (=the space spanned by the ranges of values for the category-I variables, or rather by
the values for the selectors that are associated to these variables. The graph tool allows visual
inspection of a dependency between any two variables.
list of entries
The blue list box contains all entries that together form the present model. Clicking on one of the
entries copies this entry into the edit box. Entries in the blue list box are lexicographically sorted.
variable [...] depends on or variable [... ] occurs in
The grey list box contains the variables onto which the variable in the left hand part of the
presently edited entry depends (that is, all variables that occur in the expression in the right hand
part of the presently edited entry),
or:
the grey list box contains the variables that depend on the variable in the left hand part of the
currently edited entry.
Which of the two cases applies is determined by the check box. Marking or un-marking this check
box allows for simple and intuitive navigation ’up’ or ’down’ through the subsequent dependencies
of the model - more or less comparable with the left and right arrow buttons in an Internet browser
that support moving from and back in the browse history. If the grey list box contains no variables
(either because the variable in the presently edited entry doesn’t depend on anything, or because
nothing depends on it) this is indicated in the text label near the check box, and the grey list box
vanishes. At any time, we can make the grey list box vanish by clicking on the entry ’click here
to close’.
Clicking on one of the variables from the grey list box, copies the entry for which this variable is
the left hand part to the edit box.
only in left hand part
6.3. NAVIGATION: THE RUN-TOOL
125
The lower left orange list box contains the variables that only occur in left hand parts of entries. If
the model is ’ready’, these are the category-II variables. If the model contains no errors, and it can
be successfully executed, the values of these variables are printed next to their names. Clicking
on a variable in the orange list box copies the entry for which this variable occurs in the left hand
part to the edit box.
only in right hand part
The lower right yellow list box contains variables that only contain in a right hand part of some
entry / entries. These variables are as yet undefined; as long as there are any undefined variables,
the model cannot be executed. Clicking on a variable in the yellow list box copies that variable,
followed by an equal-sign, ’=’, to the edit box. A dummy-comment line is entered in the comment box. If there are no undefined variables, that is: if the model is ’ready’, the yellow list box
will vanish.
6.3
6.3.1
Navigation: the run-tool
General Introduction
Once a model is developed, we want to find values for the category-I variables such that the
resulting category-II values are, in some sense, good. Of course we can repeatedly substitute
new values for the defaults in the various Sel()-functions,and inspect the resulting values for the
category-II variables in the orange list box, but this is an arduous task. It is difficult in this way
to develop some ’feeling’ as to the actual behavior of the model. To facilitate the exploration of
the solution space in a more intuitive, interactive way, we provide the user with an automated
user interface and logging facilities. This user interface consists of a set of sliders; one slider is
associated to each of the selection controllers, and the slider is identified with the name of that
controller. Notice that it is possible to have two or more variables to be coupled to the same
selection controller name - in other words, several instances of the Sel()-function may use the
same selection controller name. This is at best confusing, though; also, non-predictable behavior
can result if the types and/or the range definitions of the various instances would be different.
Therefore, from now on we assume that selection controller names are unique, and to a single
selection controller name belongs a single (category-I) variable. In that sense we can associate,
one-to-one a slider to a category-I variable. In real time, the setting of such a slider determines
the value of that value. For numerical values it is obvious that shifting the slider increases or
decreases the value within the borders of the interval that were set when the Sel()-function was
written down; also for enumeration types, however, we implement this behavior. Suppose that an
enumeration type contains, say, six values. Then the slider interval is divided in six intervals of
equal lengths; if the slider is in the subsequent intervals, the subsequent values of the enumeration
type are chosen. Just as with numerical values, the chosen value is printed next to the slider for
easier reference. In this way, to stick with the taxi company-example, we have a slider that allows
us to choose between car brands.
Operating the sliders takes place in real-time. This means that constantly the model is executed,
and every instance the most recent values for the selection controllers (=the sliders) is taken into
account. This means also that we can plot graphs of the time-varying values of the category-II
variables: we see changes at the instances where we move the sliders. In this way we can tune
sliders interactively to find optimal (either locally maximal or locally minimal) values for the
category-II variables. If we find an interesting setting, we can store this setting (and associate a
name to the setting for easier later reference). This will be necessary if the number of category-I
variables is larger than, say, 3: the number of possibilities to set the sliders for, say, a 7-dimensional
solution space is huge, and we will soon loose our way if we don’t apply such memory-aids.
126
CHAPTER 6. MODELING: TOOL SUPPORT
Figure 6.4: A screen shot of the NanoAccel interactive run-tool.
6.3.2
Manual
The run-tool consists of two components: one is the form which contains a number of sliders (one
slider for every selection controller, that is: for every distinct name of a selection controller that
was encountered in the Sel()-functions); the second is a life updated graph of time-varying values
of category-II variables as they change as a consequence of moving the sliders. See figure 6.4 for
a screen shot.
6.3.3
Controls
sliders
The life updated graph contains one curve for each of the category-II variables. The names and
associated colors of these variables are listed in the graph’s legenda box.
The control frame contains sliders, one for each selection controller. Sliders can be operated
real-time; the effect can be visually inspected in the life updated graphs.
the log-button
The button ’log’ stores the present setting of the sliders in a list; every entry of the list is labeled
6.4. OPTIMIZATION: THE PARETO TOOL
127
with a name or comment field. The user is asked for this name at the moment of logging by
means of an interactive dialogue. The logged names appear in temporal order in the list box
underneath the sliders. One entry is always present, this is the entry labeled ’initial values’. This
corresponds to the settings of the sliders, taken from the defaults in the Sel()-functions. When
the ’log’-button is pressed, the life-updated graph temporarily stops. This gives the opportunity
to study the graphs more easily; also, when the graphs are frozen, it is easier to scroll through the
debug textbox if necessary. The caption of the button changes to ’run’. If it is pressed again, the
life updated graphs resume scrolling again, and the caption changes back to ’log’.
the list of logged settings
Clicking on an entry in the list of logged names restores the settings of the sliders of that logged
setting. Moreover, the corresponding set of defaults is transferred back to the model: the entries
containing the Sel()-calls are actually adjusted to incorporate the new values as defaults.
Notice that a list of logged settings is cleared after the form of the run-tool is closed: there is no
way to go back to a setting from a previous list of logged settings unless the settings are memorized
and copied ’by hand’.
6.4
6.4.1
Optimization: the Pareto tool
General Introduction
Multi-objective optimization of non-linear models with mixed types of input variables (integers,
reals and nominal values or strings), where constraints could apply, is an extremely challenging
problem in applied mathematics. There is, to date, no unified, generic approach that applies to the
broad class of all such optimization problems, and it is likely that none will be found in the future.
Huge efforts have been spent to develop algorithms to tackle all sorts of sub-classes of problems.
Presently, many sophisticated codes exist, but each is designed to handle a particular sub-class. In
some sub-classes, problem sizes (in terms of the number of variables) may be huge, and provably
optimal solutions are obtained in acceptable time (for instance: linear and quadratic programming). In other sub-classes, even small-size problems cause immense computational problems (for
instance: high-degree polynomial equations with integer variables), and there is no guarantee that
a solution is found that is anywhere near optimal or complete.
In any case, the optimal5 or complete6 solution of optimization problems requires a large amount
of specialized knowledge and expertise. It is difficult and subtle to choose the right approach given
the characteristics of the problem at hand. An apparently marginal modification of a problem can
make the difference between real-time solvable and fully intractable. Unfortunately, experience
shows that the chance that an optimization problem becomes intractable increases with its realism.
It seems that the only tractable optimization problems are highly simplified versions of the ’real’
problem at hand.
The intended context for NanoAccel is: early stages in decision making, where choices between
solution architectures are being made, and a rough, order-of-magnitude estimate for the various
parameters is required. This is spectacularly different from the highly specialized context in which
dedicated, state-of-the-art optimizing software packages were developed. It is assumed that users
of the NanoAccel tool suite are designers and decision makers, not mathematicians. This means
that a NanoAccel model will be set up with its functional behavior in mind, rather than its
mathematical properties. In case a functional expression was sought to represent a particular
behavior, the choice will be mainly inspired by qualitative intuition, and not so much by formal
arguments. For instance, the intuition of monotonic behavior with saturation is nicely captured
5 Optimal
means that no ’better’ solution exists, with some appropriate interpretation of ’better’.
means that no other solutions exist than those found by the algorithm.
6 Complete
128
CHAPTER 6. MODELING: TOOL SUPPORT
with the ramp function we introduced before. A similar behavior, however, could be obtained by
an arctan function (and by many other mathematical forms). For the sake of modeling, that is:
for the average NanoAccel user, the difference between the two is irrelevant. They both capture
the same intuition. On the other hand, the difference from a mathematical point of view is huge.
The ramp function is a piecewise linear function; the arctan is a transcendental function. The
former complies with the assumptions of linear programming; the latter is a serious challenge even
to iterative non-linear solvers. On the other hand, the ramp function cannot be differentiated,
which can be a problem to local search algorithms; the arctan function is infinitely differentiable
which makes it ideally suited for such approaches. If a model would contain both a piecewise
linear ramp function and an arctan function, it would be impossible to find a single mathematical
tool to optimally deal with the model as a whole - but the average NanoAccel user might not
care - (s)he might not even realize this. More importantly: (s)he should not realize this; (s)he
should not have to bother about these intricacies. To capture the essence, and to understand the
behavior of an intricate set of dependencies is difficult enough without having to worry about the
mathematical consequences of the interplay of various components of the model.
For this reason, the kernel of the NanoAccel optimization component is designed to be as generic
and robust as possible. Efficiency, completeness and accuracy have been deliberately sacrificed.
It was considered vital that NanoAccel produces reasonable, plausible solutions that only need
to successfully compete with the obvious alternative, which is: having no automated optimization
algorithm at all.
Indeed, once a functional model exists, we can substitute, by hand values for category-I variables.
We can manually explore the solution space, keeping track of ’good’ solutions. But even if we
would do this carefully, meticulously logging our trials (for instance using the logging-facility of
the run-tool), we would find that we can visit only a negligible sub-set of the solution space. We
would soon give up, without even the slightest idea of the order of magnitude of the attainable
results in terms of category-II variables. We could easily be off with factors of 1000 or more
from the ’best’ values of category-II variables. We might erroneously conclude that a solution
architecture is not at all feasible, whereas it would be feasible if we would have investigated a
slightly different sector of the design space.
This is where the optimization component of NanoAccel comes in. Since it uses a genetic
paradigm, it is reasonably good in stochastically sampling a large part of the solution space
without loosing too much time in an exhaustive search. In particular if the dependency of categoryII variables on category-I variables is relatively smooth (that is, there are not too many isolated
’niches’ of locally optimal solutions that are very different from each other), a stochastic, genetic
approach is a reasonable choice. Compared to a manual approach, it is capable of checking a
between a factor of 100 - 1000 solutions per time interval more. It is robust in the sense that it
works for all types of models. There are no constraints with respect to the form of the expressions
(linear or non-linear, continuous or discrete) nor the type of variables (integer, real, nominal or
mixed types). It is capable to deal with constraints (reducing the set of Pareto-front solutions,
for instance, in the presence of greater than 0, or less than 0, or near 0 constraints). Finally, it
can cope with arbitrary numbers of category-II variables. If we monitor the evolutionary process
while it proceeds, we get a qualitative idea of the convergence. By inspecting the Pareto front
while it develops, we can soon see if much progress can be expected, or if convergence is near.
It should be realized, however, that
• The evolving population is only a stochastically sampled subset from the solution space.
There is therefore no guarantee that the Pareto front is complete. In other words, there
could be (many) solutions that are equally good (that is, that are non-dominated), but that
are not present in the Pareto front. In other words, the solution is not complete;
• The solutions that form the Pareto front are not necessarily optimal. We only know that
they are non-dominated by other solutions of the evolving population. In other words, it is
6.4. OPTIMIZATION: THE PARETO TOOL
129
possible that, for a given solution S on the Pareto front, an other set of values for category-I
variables can be found that yields a point S ′ in the category-II space, where S ′ dominates
the present solution S.
In the sequel, we describe the controls and their function to steer the optimization process.
6.4.2
Manual
Clicking on the button pareto in the model manager closes the model manager and launches the
Pareto manager. The Pareto manager uses the following information:
• all functional relations used to express the values of category-II variables in terms of the
values of category-I variables as they are present in the list of entries in the NanoAccel
model;
• for all category-I variables, the domains as they are set up in various named selection controllers;
• for all category-II variables, the role that they should play in Pareto optimization (whether
they should be maximized or minimized, et cetera; and whether they should be plotted
horizontally or vertically in the Pareto plot). The latter information can be acquired interactively, using interactive dialogues that are initiated by the operation of the Pareto-tool;
alternatively, we can prevent such dialogues by adding clauses such as ’[MAX HOR]’, or
’[IGN NONE]’, et cetera, to the comment fields of entries associated to category-II variables.
When the Pareto manager has produced a Pareto front, solutions on this front can be substituted
back into the model, for instance to serve further manual optimization. After the Pareto manager
has been closed (clicking on the cross in the upper right corner closes the Pareto manager), the
model manager is re-opened, and the session resumes from there.
While the Pareto manager is active, operations center around the following activities:
• starting a new evolution process with a fresh population of solution candidates (by clicking
the reset button);
• proceeding with a next number of generations in the evolution process with the present
population of solution candidates (by clicking the iterate button);
• adjusting the parameters of the present population with the sliders population size, max
nr. on front, or relative accuracy; or
• adjusting the parameters of the evolution process, that is: setting the relative probabilities
of the various mutation mechanisms.
Figure 6.5 depicts a screen shot of the form to control the Pareto process. Apart from the control
form, the Pareto-tool consists of a graphical diagram, called the Pareto box. This allows to visually
follow the convergence process. This Pareto box consists of a square region plus a legenda box.
The square region is colored with a color gradient that develops from bluish-green in one corner to
orange in the opposite corner. The horizontal and vertical directions in the square correspond to
the two category-II variables that were labeled HORIZONTAL and VERTICAL in the category-II
wizard. The bluish corner designates the direction of ’better’ solutions. So the Pareto front should
move in the bluish direction. The current population is depicted as a cloud of points. Every point
has coordinates that are the two category-II variables chosen for plotting. If a point is on the
Pareto front, it is rendered as a slightly larger green circular disk. We can follow the iterative
process of subsequent generations. The motion of the Pareto front (the green circular disks) is a
130
CHAPTER 6. MODELING: TOOL SUPPORT
Figure 6.5: A screen shot of the NanoAccel genetic Pareto optimization tool.
6.4. OPTIMIZATION: THE PARETO TOOL
131
reasonable indication of the progress of the iterative process. If little or no improvement can be
seen in the Pareto front, the process is likely close to convergence (or: with the current setting of
mutation parameters, it is unlikely that much more progress can be obtained.) Notice that the
legenda box of the Pareto box contain the names of the two category-II variable that are plotted
horizontally and vertically; furthermore, the number of the generation is indicated.
6.4.3
Controls
reset
Starts a new population with magnitude equal to the currently set size of the population, consisting
of all randomly defined individuals.
iterate
Performs a number of iterations with the present population equal to the currently set number of
iterations.
post tune
The Pareto genetic optimization process constructs a number of solutions that are on the Pareto
front. The condition for an individual solution to be on the Pareto front only means that the
solution is not dominated by any other solution. There is no guarantee as to the absolute quality
of the solution. There is a simple additional process, however, called post-tuning, that can take
place after completion of the genetic algorithm, which has a high probability to increase the quality
(in the sense of category-II variables) of the solutions. Indeed, suppose that we have a number of
solutions on the Pareto front. Consider one of these solutions. It corresponds to a combination
of category-I values and the resulting category-II values. Call this solution S. Now suppose that
we could modify a single category-I variable, such that a new solution S ′ arises which dominates
S. Then we should definitely include S ′ in the Pareto front rather than S. It is very simple,
however, to check if tuning an individual category-I variable could yield an improvement in the
sense of domination. Indeed, for category-I variables which are ordinal, we can try to do a small
increase and a small decrease, and check both candidate solutions if they dominate S. If one
of them does, we replace S by the improved one. Next we repeat this with a double step size,
and we continue this process of repeatedly doubling the step size until deterioration in stead of
improvement occurs. Then we go back one iteration, and we have found a solution which clearly
improves on the original S. We apply this to each of the category-I variables. If an improvement
could be obtained with at least one of them, we repeat the entire process, until no category-I
variable could be modified to yield further improvement in the sense of domination. This means
that at the end of the process, the solutions are guaranteed to be local optima. There still can be
many of them, in case the problem had multiple category-II variables.
As a result of post-tuning, the improved solutions are all local optima. But in the process of
improving a single solution, we don’t take dominance over the other solutions into account. So
it is possible that solutions result that should no longer be on the Pareto front. Indeed, by
construction we have ensured that an (improved) solution dominate its original version, but we
do not know if it is not dominated by any of the other (improved) solutions.
However, if we use the newly obtained collection of solutions as the start of a further round of
genetic optimization, and we do not apply the one-by-one post tuning, we are certain that a true
Pareto front results, where the solutions have a very large change that they cannot be improved
by small modification of any of the category-I variables - which is a clearly better position than
we could obtain without post tuning.
In the Pareto tool, post tuning normally should take place only after clicking the iterate button.
First, a number of regular generations of genetic optimization is performed; next, all solutions are
individually tuned to obtain locally optimal solutions. In the legenda of the Pareto box we can see
132
CHAPTER 6. MODELING: TOOL SUPPORT
if the process is in te stage of generating generations, or whether it is tuning individual solutions.
Post tuning is evoked by clicking on the post tune button. Even though post tuning only involves
the solutions on the Pareto front, it can be a time consuming process. In particular, post tuning
should only be done if
• the number of individuals on the Pareto front is not too large;
• if reasonable convergence with the regular iterations has been reached.
Even then, if the post tuning turns out to be unacceptably slow, it can be safely interrupted by
clicking the red button ’stop tuning’ that will appear when the post tuning process has commenced.
zoom in
Clicking the button zoom in doubles the scale factor in the Pareto box. This gives a better view
on the detailed shape of the Pareto front.
zoom out
Clicking the button zoom out halves the scale factor in the Pareto box. This remedies the situation where solutions may have migrated to locations outside the box. Neither clicking larger nor
smaller affects the values of any of the model variables; they merely effect the visual representation
of the category-II space.
population size = ...
The slider population size determines the number of individuals in one generation.
nr generations = ...
The slider nr generations determines the number of generations that is evolved at one click of
the button iterate.
max nr. on front= ...
According to its definition, the Pareto front consists of all those individuals in a population
that are non-dominated. In most cases, the number of solutions on the front is relatively small
compared to the total number of solutions. Only when the number of category-II variables is
large, or when category-I variables can assume very many different values (for instance, when they
are real numbers), the chance for a solution to be on the front is relatively large. The fraction
of solutions that are on the Pareto front at each generation is given in the first line of text in
the listbox in the lower left part of the Pareto manager. If this fraction is large (close to 100%),
there are few non-front individuals. According to the standard Pareto genetic algorithm, however,
only solutions that are not on the Pareto front are replaced by new, or mutated individuals. So
if (almost) the entire population is at the Pareto front, there is little or no opportunity to make
further progress. Sophisticated implementations of the Pareto genetic algorithm implement forms
of niching or clustering to the Pareto front. That is, a sufficiently representative subset of the
front is maintained, and the other individuals on the front are ’recycled’. This ensures a sufficient
percentage of mutating individuals, which is necessary to sample a sufficiently large portion of
the solution space. The implementation of the Pareto genetic algorithm in NanoAccel is, in
this respect, rather primitive. With the slider max nr. on front we set a maximum to the
amount of individuals on the front. In case the number of individuals on the front exceeds this
maximum, random individuals are selected for recycling. This has an advantage that the pool
of mutating individuals has at least a given, minimal size - which ensures sufficient chance for
mutations, and hence the possibility of progress. The disadvantage is, that an individual from
the front that was very ’good’ could become degraded. That is, an individual that occupied a
prominent frontal position could nevertheless loose its favorable status as being a survivor for this
generation. In such a case, the progress of the evolution process is not monotonic: a temporary
regression may occur. We don’t want this to happen unnecessarily; therefore the slider max nr.
6.4. OPTIMIZATION: THE PARETO TOOL
133
on front initially should be set to a high value. Only if the reported percentage of solutions on
the front becomes dangerously high (say, 70% or higher), it is recommended to move the slider to
a lower value.
rel. accuracy= ...%
For category-I variables that are integers (corresponding to selection controllers with flags ’I’ or
’S’ with integer lower and upper bounds and an integer step size), or enumeration type (’E’), a
mutation always produces an individual which is discretely different from the original one. For
real-valued category-I variables, however, the difference as a result of mutation can be arbitrarily
small. This is fine, since it allows fine tuning for real-valued category-I variables, but it can also
tremendously slow down convergence. Therefore we should have a handle on the allowed step size
in real-valued category-I variables. The slider relative accuracy does this. It can take any of
the values 100%, 10%, 1%, 0.1%, down to 0.000001%. These are percentages of the interval size.
For instance, suppose that a category-I variable has a domain between 0.0 and 50.0, and the slider
rel. accuracy is set to 1%, then a mutation will cause a random change of this variable of -0.5 or
+0.5 per generation. In practice, a good strategy to establish ’optimal’ values for real category-I
variables is therefore the following. First, do a number of iterations with a relatively large value
of the slider rel. accuracy. If no further progress is obtained, reduce the accuracy interval by
a factor 10 (e.g., from 10% to 1%), and check if this gives considerable improvement by another
click on iterate, and so on until the relative accuracy has reached a sufficiently small value.
listbox
The large, grey listbox in the lower area of the Pareto tool first gives the statistics about the
current solution. In particular:
• the number of solutions on the Pareto front;
• the population size;
• the percentage, that is the fraction of individuals in the entire population that are on the
Pareto front.
Underneath, it contains one selectable entry for every solution on the Pareto front. These are
named ’solution1’, ’solution2’, and so on. Clicking on one of these names highlights the corresponding point of the Pareto front in the Pareto Graph. In figure 6.5, the solution ’solution2’ is
selected, and the corresponding point is shown in white. Double clicking a solution pops up a text
box with detailed information on that solution, giving
• a line with the solution number (two strings of asterisks and the string ’Solution X’, where
X enumerates the solutions);
• for each of the category-I variables the value for this solution;
• for each of the category-II variables, preceded by an arrow, the value for this solution.
When the detailed information of a selected solution is listed, the values of category-I variables
for that particular solution are copied into the model. That means: the entries containing the
Sel()-functions with their defaults are adjusted, and the new values of the category-I variables as
taken as new defaults.
The contents of the listbox are updated every time the reset or iterate button are clicked. At
the same time, a file with the name ’paretoFront.amf’ is produced. This file contains as items the
solutions of the Pareto front. In paretoFront.amf, the classifiers are the category-I variables, the
ranking attributes are the category-II variables. In ASSIST the Pareto front can be examined
further, for instance to do a justified choice for a particular solution from the Pareto front.
134
CHAPTER 6. MODELING: TOOL SUPPORT
random new
Five yellow-colored sliders control the details of the process of generating new individuals, that is:
new candidate solutions. They all have the interpretation of a probability that a particular process
will happen. Since for every individual that is not on the Pareto front, a new individual will be
constructed, the probabilities for the five separate processes sum up to 1. Therefore, the sliders
only serve to indicate relative probabilities. If we adjust the sliders to a certain configuration,
say, moving random new and cross over all the way to the right and all he others all the way
to the left, the interpretation is that the two processes ’generate a random new individual’ and
’apply crossing over’ are the only two processes that will be used, and they have equal probability.
Therefore, their probabilities will be 50% each, and after the first click on iterate, both sliders
will move to the 50% position.
Now we will describe, for each of the processes, how they work and when they should be applied.
The random new process creates a new individual ’from scratch’. That is, the values for all
category-I variables are selected randomly from the respective domains. This process is best for
creating a broad coverage of the solution space. It has no memory, that is, it does not take earlier
solutions into account.
random mutant
The random mutant process takes an individual from the Pareto front, clones it, and applies,
with a probability set by the slider mutation chance, a mutation to each of its category-I
variables. So if mutation chance is set to maximum (=100%), the effect of random mutant
is the same as random new. A mutation means that the the value of a category-I variable is
replaced by a random new value taken from the domain of that category-I variable. If the slider
mutation chance is set to 0, the process to create random mutants has no effect at all. Random
mutants, as opposed to random new individuals, have some memory. If we mutate only some of
the category-I variables of an individual, it stays, in category-I sense, close to the original, and
therefore it has a chance that it also stays more or less ’close’ in category-II sense (depending on
how ’wild’ the model is). So since the original individual was on or near to the Pareto front, the
new individual has a chance also to be not too far off, and perhaps even in front of the Pareto
front - which means that it will have pushed the Pareto front forward in the next generation.
incremental mutant
The process to create an incremental mutant is similar to the process of creating a random mutant
- except that the new value of a category-I variable is not randomly selected from the domain of
that variable. Rather, a small increment is applied to the old value. For integers this increment is
+1 or -1; for category-I variables with sort ’S’ it is plus or minus the step size, and for real-valued
category-I variable it is an increment that is plus or minus the value as set by the slider rel.
accuracy= ... times the width of the domain-interval. For ’E’-type variables, the increment
means that one of the two adjacent values is chosen; whether or not this is a ’small’ increment
of course depends on the values in the list. If these values are not numeric values, he meaning of
’small’ completely looses its meaning. Notice that the process ’incremental mutant’ has a memory
effect built in, for two reasons: it departs from an individual that was on the Pareto front (and
therefore was a successful individual); further, the value applied to the mutating variable is close
to te original value - which was also successful. So the chance that the mutated, new individual is
close to the Pareto front (but perhaps in front of the front) is even larger than with the ’random
mutant’ process. Therefore, the process ’incremental mutant’ should be prominent towards the
end of the evolution process, once the solutions are almost converged, to obtain a final small
adjustment.
cross over
The process ’random new’ has no memory effect; it takes no earlier (successful) individuals as
starting point. The processes ’random mutant’ and ’incremental mutant’ each depart from a
6.5. VISUALIZATION: THE GRAPH-TOOL
135
single successful individual. The process ’cross over’ departs from two successful individuals. It
resembles sexual procreation, where the genetic material of two (fit) individuals is mixed. Since
both parents were fit (at least to some extend, otherwise they wouldn’t have made it to the
present generation), both their genotypes7 are (to some extend) fit. If we believe that mixing
fragments of two fit genotypes has a large chance to produce a fit genotype - that can nevertheless
be very different from each of the parents’ genotypes, sexual procreation is a good way to obtain
fast evolutionary progress. Evolution biologists believe that this is the reason why, after sexual
procreation had been ’invented’, it more or less has overtaken a-sexual procreation in higher
species. In the Pareto genetic algorithm, the process of cross over works as follows. Two random
individuals on the Pareto front are selected. These will be called the parent individuals. Next, a
new individual is constructed where for every category-I variable, either a value from one or from
the other parent is chosen. Which of the two parents contributes a value is selected randomly for
each of the category-I variables. Since cross over can produce individuals that are largely different
from both of their parents, it is a good way to stimulate broad coverage of the solution space. It
only works, however, if
• there is a sufficient number of category-I variables;
• the Pareto front is sufficiently diverse, that is: there is a sufficiently large number of individuals on the Pareto front, and they are sufficiently different in category-I sense.
This means that in the first few generations of the evolutionary process, not very much effect of
the cross over process can be expected.
binary tournament
Evolution is the process of survival of the fittest. We are interested in the solutions on the Pareto
front, and the ones that are not on the Pareto front are sacrificed: they are replaced by individuals
that are, hopefully, fitter. Nevertheless, it is dangerous to destroy all non-fit individuals too soon.
If we keep a small number of known non-fit individuals alive, these might open up a profitable niche
at some later point in the evolution process. This mechanism inspires to the ’binary tournament’
process. In binary tournament, we pick two non-fit individuals, and allow the fitter of the two
to take part in the next generation. If we would insert it unaltered in the next generation, it
would guaranteed not be on the Pareto front, and therefore it would die out one generation later.
Therefore we modify it by one of the processes described above.
mutation chance
The slider mutation chance sets, for a category-I variable, the chance that it will take another
value in one of the mutation processes ’random mutant’ or ’incremental mutant’.
6.5
6.5.1
Visualization: the graph-tool
General Introduction
A model is rarely built from scratch without any mistakes underway. Like all forms of programming, a model-under-construction might require debugging. Also, it might be very instructive to
get a better understanding of the behavior of (parts of) the model, even if we don’t suspect that
anything might be wrong. To help the understanding of a model, and in particular the various
7 The word ’genotype’ is taken from evolution biology. It refers to the genetic make up of an individual; the
phenotype is the apparent form the individual takes. The phenotype determines its fitness; the genotype is the
information that is inherited from generation to generation. In our context, the genotype is the collection of values
of category-I variables of an individual solution. The phenotype is the collection of values of category-II variables
for the same individual as they are determined by the genotype. As in the biological case, the individual’s fitness
is determined by its phenotype.
136
CHAPTER 6. MODELING: TOOL SUPPORT
Figure 6.6: A screen shot of the NanoAccel graph-tool.
dependencies that it consists of, we support graphical visualization of (arbitrary) dependencies.
We can produce a graph for every arbitrary variable as a function of every other arbitrary variable
(provided that the argument variable is a numerical type). This is done by using the graph-tool.
6.5.2
Manual
The graph tool consists of an interaction form where the two variables can be determined (the
argument variable and the result variable); further, we can set a range for the domain, and next
we can command the required graph. Figure 6.6 contains a screen shot of the graph-tool.
6.5.3
Controls
argument
The argument variable is selected from the list box containing all variables. Variable names
between parentheses can not be selected ,as they are not numerical types.
result
The result variable is selected from a second list box containing all the variables. The selection
for an argument and a result variable are free; that is: it is not required that there is a functional
dependency from the result on the argument. If such a dependency doesn’t exist, however, the
graph will be merely a horizontal straight line. In particular, the following mistake should not be
made: suppose that y = x2 . If we plot y as result and x as argument we get the familiar parabolic
6.5. VISUALIZATION: THE GRAPH-TOOL
137
curve. If we swap the roles of x and y, however, we don’t get the curve of the inverse function.
Indeed, the function is not inverted: it just so happens that x is not a function of y. Therefore a
curve will be plotted that, for every y gives the default value of x.
from
The text box from should contain the numerical value that is the lower bound of the argument
variable. This value has nothing to do with an eventual lower bound for a selection controller in
case the argument variable would be a category-I variable.
to
The text box to should contain the upper bound of the argument variable.
draw
Clicking the draw button produces the actual graph.
138
CHAPTER 6. MODELING: TOOL SUPPORT
Index
139
Index
DM
-control widget in Questionnaire form, 52
algebraic elimination
to deal with constraints, 84
DP
allow quick ranking
-see problem domain 12
widget in the Preferences tool, 62
.amf
Assist model file: the proprietary file for- analytic
- process to think of the variables that a
mat for Assist projects, 23
given variable depends on, 97
.bu amf
-attitude of Minerva-type professionals, 7
-file extension for Assist backup file; see
-skill in model making, 13
data recovery 23
arc
Assist
directed to represent a dependecy in a model
-acronym for ’Assist Supports Systematic
graph, 97
Innovation by means of Software Toolarchetypes
ing’, 19
-Minerva and the Centaur as -, 7
-how to get started, 20
-intended for option generation, adminis- arrow
to represent a dependency in a model graph,
tration and evaluation, 19
97
-used in option generation and selection phases
assumptions
of decision making process, 15
-as ingredients of a model, 67
absence of cycles
irrelevant only in the case of abstractions,
property of partial orderings, 38
94
abstract
role of in model making, 68
-of an item: the condition that the item has
thinking about as a result from systematic
more than one value for at least one of
developing a model with category-I · · ·
its classifiers, 34
category-IV variables, 94
academic education
underlying mathematical formulas, 94
-related to the distinction synthetic-analytic, atomic
7
simple, opposite to compound; see comaccuracy
pound 81
-see precision 46
attribute
actual column
function from the domain of concepts to the
-the currently active column in the Data
range of values; chunk of information
Grid, 22
of a concept that need to be known
actual row
when making a model, 81
-the currently active row in the Data Grid, attribute score
22
-definition, 47
add item
attributes
-control widget in Query form, 55
-short for ’ranking attributes’, 48
Add new item
auto-ranking
-control widget in Inspire form, 37
a heuristic to estimate a value for a rankaggregation
ing attribute based on the distance becalculation of total item scores from the intween items, measured in terms of the
dividual ranking attribute values, 33
classifier values, 36
agree
auxiliary variables
-see model domain 12
140
INDEX
variables from category-IV, 79
back-up
-recover from crash by means of ’recover option’ in File IO form, 25
bad
criterion for formulating a query, 54
balancing
-checking balancing of classifiers by means
of correlations, 30
-property of good classifiers, 27
binary classifier
-a classifier with two values, 55
Boolean
-of a classifier if the classifier can have the
two values ’true’and ’false’ only, 27
Botticelli
- Sandro, (1445?-1510), Italian renaissance
painter, 7
bottom up
-see propagation 44
bounded
range of values for non-numerical, ordinal
values, 96
button
-an interactive control widget in a form used
to invoke a process, 23
categories
- of variables, 73
distinction between the four categories of
variables, 80
category-I
decision variables, 73
category-II
finding category-II variables starting from
category-I variables, 76
happiness variables, 73
multiple variables, 87
category-III
contextual variables, 79
category-IV
auxiliary variables, 79
Centaur attitude, 7
centroid
-of intervals, 47
of an interval: the average of lower and upper bound, 48
chaotic approach
-as attribute of Centaur attitude, 9
check box
-an interactive control widget in a form used
to set or unset a binary (’yes-no’) value,
23
141
child
-intentional, 41
class
-being represented by an item if at least one
classifier has multiple values, 28
classifier
-a function that assigns one or more of a
set of values to an item; e.g. ’color’
assigns ’red’ to ’a tomato’ and ’green’
to ’a cucumber’, and ’red,green’ to ’a
pepper’, 26
classifiers
-definition of, 19
-rationale for constructing an ontology based
on classifiers, 27
-to represent the world knowledge that distinguishes a set of items, 27
classify
-using the information of classifiers and classifier values, 28
cluster, 55
-on the basis of classifier values, 30
Cluster form
-introduction, 55
color coding items: intervals
widget in Preferences Tool, 65
color coding items: Pareto
widget in Preferences Tool, 65
coloring
-colors of items after lexicographical sorting
to verify if items are distinct, 30
-to indicate relative quality of items based
on total scores, 48
column based
-interrogation of data base table, 54
column headers
-the cells in the top row of Assist’s Data
Grid, 22
Combination
-control widget in Inspire form, 36
comparative relationship
a relationship that involves comparison, 44
comparing
-items on the basis of total scores, 48
comparison
- of values of various category-II variables
in a graph, 95
the partial ordering relationship that formalizes the ’is inferior to’-relationship
between items, 38
compound
of an attribute, that its value is a concept
in its own right, 81
concept
142
INDEX
relevant notion in modeling discourse, 81
-see recover 25
concept generation
creativity
-as part of decision making process, 14
-killed by formalization, 11
conclusions
crossing over
-intervals protecting against unsubstantiated
a technique in the context of evolutionary
- , 48
design, 89
concrete
current project
-of an item: an item that has, for each clas-information about the current project found
sifier, exactly one classifier value. Noin the ’current status’ widget in the
tice: the qualification ’concrete’ is at
File IO form, 26
best a provisional qualification. Any current status
’concrete’ item can become abstract with
-control widget in File IO form, 26
the addition of a new classifier with curriculum
multiple values for that item., 35
-Centaur-type -, 9
conjunct
-Minerva-type -, 9
-logical AND as combination of several ele- cycle
mentary query expressions, 55
as source of confusion in design discourse,
consequence
83
-of a design decision, 67
cyclic
consistency
- dependency, 82
internal and external with respect to moddata recovery
els, 72
-mechanism to avoid data loss in case of
constant
exceptional termination of Assistsee
- as a particular type of variable, 72
recover 23
constraints, 83
database
algebraic elimination, 84
-table of items interpreted as database, 54
dealing with -, 84
decision making process, 14
iteration, 84
decision variables
penalty functions, 84
variables from category-I, 73
context-sensitive
-property of controls to be only enabled when decisions
-design as ’taking decisions for the future
meaningful; disabled controls are invisbenefit of stake holders’, 11
ible see controls 23
-taking - as a definition of designing, 67
contextual variables
default
variables from category-III, 79
- solution is the first solution which comes
controls
to mind, 76
-user interface widgets in a form, 23
delete
conventions
-control widget in File IO form - only in the
for systematic model development, 94
web-based version, 26
convert
-intentional and extensional is-a relations, delete all
-control widget in Relations-form, 40
43
dependency
coordinates
- between category-II and category-I vari-a structure for a collection of ideas, 26
ables, 74
correlate attributes
cyclic -, 82
-control widget in Sort and Cluster form,
represented by a directed edge, a directed
33
arc, or an arrow in am odel graph, 97
correlate classifiers
-control widget in Sort and Cluster form, design
-as a context for discussing synthetic and
30
analytic skills, 12
correlations
-definition, 11
-calculation of correlation coefficients for clasdesigner
sifiers, 32
crash
-as stakeholder, 11
INDEX
143
detailing
-of query expressions, 54
-as part of decision making process, 15
empty regions
difference scale
-areas in a solution space that were not yet
explored, 26
quantitative scale where differences between
scale values have a meaning, 45
empty set
direct manipulation
-interpretation of - of values for a classifier,
28
-see Interactive Weights form 33
enabled
directed graph
-state of a control widget where it can supcollection of points and arrows between them,
port interaction see disabled 23
38
estimating
disabled
- if terms in a model are significant or in-state of a control widget where it doesn’t
significant, 98
allow interaction; disabled control widget is invisible see enabled 23
evaluation
- of a model, 97
disagree
evolution
-control widget in Questionnaire form, 52
as a technique to estimate the Pareto front,
disjunct
89
-logical OR as combination of several eleexample
mentary query expressions, 55
of modeling, 93
distance
existing file
-between items, 55
-open an existing file by means of ’open’
distinction
button in File IO form see open file 25
-of classes in the case of extensional is-a reexpectation value
lations, 43
-as expressed by centroid of an interval, 47
distinguish
extensional
-items by means of classifiers, 28
-is-a relations; relation with intentional is-a
domain
relations, 43
- of a function, 73
extensional is-a relation, 41
dominate
if an item A performs better in all ranking attributes than B, we say that A File IO form
-introduction, 24
dominates B, 35
one solution dominates another solution in files
-way to store information for later usage the Pareto plot if it is better in all renot being supported in online Web apspects, 87
plications, 24
dominated
of two items: item A dominates item B if finitely enumerated
-of a set of values for a classifier if the valA is better in all rspects, 47
ues can be spelled out exhaustively in
don’t apply
a list, 27
-of a classifier: represented by an empty set
fitness
of values, 28
see evolutionary design 89
dot-notation
Flash-cookie
see notation 82
- a facility to store persistent data on a local
machine without security risk, 24
edge
directed - to represent a dependency in a Folk-ontology form
model graph, 97
-introduction, 58
forgotton values
educated guesses
risk of using default substitutions for nonto obtain relations between variables, 85
defined values in spreadsheets, 97
to obtain values for variables, 85
form
education
- of dependencies, 96
-of Minerva-type skills and Centaur-type skills,
formal
9
-skill in model making, 13
elementary
144
forms
-Cluster, 55
-File IO, 24
-Folk-ontology, 58
-Inspire, 34
-Interactive Weights, 33
-Pareto, 58
-Preferences, 62
-Queries, 54
-Questionnaire, 52
-Sliders, 49
-Sort and Cluster, 26
-implementing the tools in Assist, 20
formula
-in DM being a counterpart for a relation
between things in MP , 12
fresh
of a variable: one that is introduced when
expanding an existing category-II or
category-IV variable, 97
front
Pareto - :collection of non-dominated solutions, 87
full
of ordering: an ordering relationship that
applies to all pairs of items in a set, 44
function
- as a particular type of relation, 73
domain of a -, 73
happiness expressed as a - of design variables, 73
INDEX
hue
property of colors that serves to represent
the comparison-relation, 46
hybrid
-objects cause in-intuitive hierarchical relations, 43
I
category of variables: decision variables,
73
idea generation
-as part of decision making process, 14
ignoring
default boundaries for category-I variables
as source of inspiration for innovative
solutions, 77
II
category of variables: happiness variables,
73
III
category of variables: contextual variables,
79
importance
-of a ranking attribute, expressed by weight,
47
improvement
the version of an item that is better in terms
of at least one ranking attribute - although it may be worse in terms of
other ranking attributes, 35
inclusion
the partial ordering relationship that formalizes the ’is-a’ relationship between
genetic
items, 38
see evolutionary design 89
incommensurable
given formulas
-assumed of analytic and synthetic skills, 7
models consisting from - only, 93
independent
good
-of two classifiers if the values of cone clascriterion for formulating a query, 54
sifier don’t predict the values of the
Hamming distance
other classifier when applied to a set
a distance metric based on the number of
of items, 26
classifiers that are different for two items,
-property of good classifiers, 27
35
inferior
happiness
for two connected item-icons, the inferior
as a function of design variables, 73
item is the left one; this is at the tailhappiness variables
side of the arrow. The arrow connects
variables from category-II, 73
to the head of the inferior item, 39
hierarch
inheritance
-in relation to ontology, 41
-relation to ’specialization’, 41
hierarchical propagation of classifier values
inheritance, multiple
widget in the Preferences tool, 64
-inheritance where a child can have multiple
parents, 41
hierarchy
embodies the is-a relationship between items, initiating a new project
20
-see new 25
INDEX
insignificant
see significant 98
inspiration
for innovative solutions by ignoring default
boundaries for category-I variables, 77
Inspire form
-introduction, 34
instantiate
an abstract item A can be instantiated by
a less abstract item B (for instance: a
’tool’ is instantiated by a ’hammer’) if
the values for any classifier in B are a
subset of the values for that classifier
in A, 34
intention
-as ingredient of a model, 67
-of a model, 12
true of a stake holder, 76
different s require different models, 68
intentional
-is-a relations; relation with extensional is-a
relations, 43
intentional is-a relation, 41
Interactive Weights form
-introduction, 33
intervals
-to avoid pseudo precision, 46
introduction
of a new variable: logical point to think
of variations in the mode of operation
related to what this variable depends
on, 97
intuition
-as attribute of Centaur attitude, 9
-hallmark of creative professionals, 11
-reconciled with creativity, 11
inuition
for a functional relation between numerical
quantities, 93
Invention
-control widget in Inspire form, 37
invention
the instantiation of an abstract item into
a less abstract item that did not exist
before, 35
is-a relation, 41
-extensional, 41
-intentional, 41
-liberal interpretation, 42
-restricted interpretation, 42
is-a relationship
-determine - in terms of (sets of) classifier
values, 28
item
145
-new - , resulting from selection in Query
form, 55
item-based
-interrogation of data base table, 54
item-icon
a dragable graphical widget in the Relationstool that represents an item, 39
itemName
column header for the item name column,
22
itemRank
column header for the item rank column,
22
iteration
to deal with constraints, 84
IV
category of variables: auxiliary variables,
79
justifiable
-of decisions: distinguishes professional design, 67
Lagrange multiplier
- to deal with constraints in optimization,
84
levels
design decicions taking place at various -,
76
lexicographical sorting
-to put items in a meaningful order by means
of - on the classifier values, 30
-using the ’sort’ button in the Sort and Clusterform, 30
liberal interpretation
-of is-a relation, 42
limit process
to find category-II variables from category-I
variables, 76
logic
-as attribute of Minerva attitude, 9
logical formula
-expression to single out desired rows in a
data base table, 54
manual
-of Clustering and Visualization form, 57
-of File IO form, 25
-of Folk-ontology, 60
-of Global Settings form, 62
-of Inspire form, 36
-of Interactive Weights form, 33
-of Pareto form, 58
-of Query form, 55
146
-of Questionnaire form, 53
-of Relations form, 38
-of Sliders form for ranking attributes, 50
-of Sliders form for the ’include’-relation, 51
-of Sort and Cluster form, 30
material
-model see model 12
mathematical
-of a model, 12
mathematical object
-as ingredient of a model, 13
mechanisms
variables get their values by means of mechanisms, 98
metric
the notion of distance between items, 35
Minerva and Centaur
-bridging the gap between attitudes, 9
Minerva and the Centaur
-painting by Botticelli, 7
Minerva attitude, 7
model
-needed to predict consequences of design
decisions, 67
-skills needed for - making, 13
-the notion of a, 67
behave according to our intuition, 94
evaluation of -, 97
functional - as expressed in spreadsheet, 94
ready: when no more pending category-IV
variables exist, 94
right order of magnitude of outcomes, 94
model domain
-mapped to problem domain, 12
modeling, 12
models
- as consisting of variables, 72
consistency, 72
precision of -, 72
purposes of -, 71
requirements on -, 72
monotonic behavior
ramp function: functional dependency to
model - with saturation, 85
monotonously
- increasing as behaviour of dependecy, 96
multiple category-II variables, 87
multiple inheritance
-see inheritance 41
multiple values
-interpretation of - for a classifier, 28
mutual information
-the principle for choosing propositions in
the automated questionnaire, 53
INDEX
NANO ACCEL
-used in detailing phase of decision process,
15
new
-control widget in File IO form, 25
new combination
-forming new combinations of classifier values to inspire new items, 28
new item
-resulting from selection in Query form, 55
next question
-control widget in Questionnaire form, 52
no opinion
-control widget in Questionnaire form, 52
node
a variable in the graph of a model, 97
nominal
of a scale: a scale that is not ordinal, 45
of variables when they do not allow ordering, 80
non-material
-model see model 12
normalization
arbitrariness w.r.t. - , 86
issue in choosing units and working with
dimensionless quantities, 96
notation
of concepts, attributes, and values, 82
number iterations
widgt in the Preferences tool, 64
ontology
-a structure on the space of possible items,
26
-build the ontology by means of classifyform, 28
-in relation to hierarchy, 41
open
-control widget in File IO form, 25
operational
-the property of a classifier that it can be
applied to items with a unique outcome in terms of classifier value(s), 26
operator
-to form elementary query expression, 54
option generation
-as part of decision making process, 14
order
- of expanding variables to develop a model,
97
ordinal
of a scale: a range of values that are the
outcome of an assessment that allow
(partial) ordering, 44
INDEX
147
of variables when they allow ordering, 80
-of detailing, 15
orthogonal
-of selection, 15
-of classifiers: the property that classifiers propagating adjustments
apply to all items of a set and give inas a consequence of adjusting the values of
dependent information, 26
ranking attributes by means of sliders,
-property of good classifiers, 27
50
orthogonality
propagation
-checking orthogonality of classifiers by means
-of is-a relations through graphs, 43
of correlations, 30
pseudo precision
-intervals to avoid -, 46
parent
pseudo-accuracy
-intentional, 41
see precision 72
Pareto
purpose of sorting
- front-ranking, 47
-items with respect to classifier values, 30
-visualization, 58
purposes
disadvantages, 88
- of models, 71
evolution as a technique to estimate the
Pareto front, 89
qualitative
local improvements, 90
-aspects of decision making process, 15
post processing, 90
quantify
Pareto form
how to non-numerical variables, 96
-introduction, 58
quantitative
Pareto front
-aspects of decision making process, 15
see front 87
Queries form
the collection of all non-dominated items,
-introduction, 54
48
query, 54
Pareto plots
query-based
- for dealing with multiple category-II vari-interrogation of data base table, 54
ables, 87
Questionnaire form
partial
-introduction, 52
of ordering: an ordering that applies only quick ranking
to selected pairs in a set, 44
an interactive widget to adjust a ranking
partial ordering
attribute value, 62
the underlying formal notion of both the
ontology and the ranking system in As- ramp
functional dependency to model monotonic
sist, 38
behavior with saturation, 85
penalty functions
random mutations
to deal with constraints, 84
a technique in the context of evolutionary
plotting
design, 89
- several category-II variables in one graph,
ranking
95
-manually setting weights, 33
population
ranking attributes
see evolutionary design 89
-definition of, 19
precision
-used for administrating scores of items, 48
- of models, 72
-avoiding pseudo-precision by means of in- ranking process, 48
ranks as colored boxes
tervals, 46
widget in the Preferences tool, 65
-the pathway of the professional, 9
ratio
Preferences form
-as attribute of Minerva attitude, 9
-introduction, 62
problem domain
ratio scale
-mapped to model domain, 12
quantitative scale where ratios between scale
values have a meaning, 45
process
-of decision making, 14
re-sort after summation
148
widget in Preferences tool, 64
ready
of a model: when no more pending categoryIV variables exist, 94
reality
-as far as concerned in design contexts, 67
record
-row in a database table, 54
recover
-control widget in File IO form, 25
-mechanism to mitigate effects of exceptional
termination of Assist, 23
redundant
-classifiers are redundant if they are not
very orthogonal, 27
from a partial ordering relation: a relation
that can be derived by transitivity from
other relations, 38
relation
-as ingredient of a model, 12
function as a particular type of -, 73
relations
between variables, 73
remote database
- storing Assist projects in a remote database, 24
requirements
- on models, 72
reset null
-control widget in Sliders form, 52
reset original
-control widget in Sliders form, 52
residue
the absolute difference between the total
scores as set by the user and as calculated from the current attribute weights
and the ranking attribute values, 51
restricted interpretation
-of is-a relation, 42
resurrection
a technique in the context of evolutionary
design, 89
root-path
a sequence of nodes leading from a single
category-II variable, 97
row-based
-interrogation of data base table, 54
INDEX
-control widget in File IO form, 25
save as
-control widget in File IO form, 25
scale
range of values that may allow some form of
ordering (ordinal scale); if there is no
ordering this is called a nominal scale,
44
score, attribute
-see attribute score 47
score, total
-see total score 47
selecting
-make a selection of items on the basis of
characteristics expressed in terms of classifiers, 30
selection
-as part of decision making process, 15
-those items that satisfy the current list of
elementary query expressions in the Query
form, 55
in the context of evolutionary design, 89
sensitivity
of category-II variables for category-I variables, 86
shared memory
- storing Assist projects in shared memory,
24
sharp
criterion for formulating a query, 54
Shepard interpolation
a method to smoothly interpolate values on
the basis of distances, 36
siblings
-nodes that share a parent with a given
node, 44
significant
terms that should be incorporated into a
model, 98
simple
atomic, opposite to compound; see compound 81
single value
-interpretation of - for a classifier, 28
singleton
a class containing a single element, 41
skills for model making
-see model 13
saturation
slider
property of colors that serves to represent
-an interactive control widget in a form used
the inclusion-relation, 46
to set a (numerical) value, 23
ramp function: functional dependency to sliders
model monotonic behavior with -, 85
-control widget in Interactive Weights form,
save
34
INDEX
Sliders form
-introduction, 49
smart questionnaire
widget in Preferences tool, 65
solution space
avoid exloring the entire -, 76
broadest if the true intention of the stake
holder is known, 76
sort
-as part of manual optimization, 34
-control widget in the Sort and Cluster-form,
30
Sort and Cluster form
-introduction, 26
specification
of a functional relation, 93
spreadsheet
functional model is often expressed in - , 94
stake holders, 11
starting Assist
-see Assist how to get started, 20
statements
-consistent framework of - as ingredients of
a model, 67
statistical distribution
- rather than single numerical value should
represent outcome of measurements, 94
step
of systematic model development, 95
stepsize
-control widget in Sliders form, 51
stochastics
dealing with by means of a model expressed
in average values and (simple) assumptions about statistical distributions, 98
structure
-of the lecture notes, 15
structured approach
-as attribute of Minerva attitude, 9
Substitution
-control widget in Inspire form, 36
superior
for two connected item-icons, the superior
item is the right one; this is at the
head-side of the arrow. The arrow connects to the tail of the superior item,
39
symmetry
as a requirement of functional behavior, 93
as requirement to functional dependency,
96
synthetic
- process to think of the variables that a
given variable depends on, 97
149
-attitude of Centaur-type professionals, 7
-skill in model making, 13
systematic approach
-as attribute of Minerva attitude, 9
taxi company
as an example case for systematic model
development, 95
tools
-implemented by means of forms, 20
top-down
-see propagation 44
total score
-definition, 47
transitivity
property of partial orderings: from a < b
and b < c, it follows that a < c, 38
tree
shape of the dependency graph for a systematically developed model, 97
try
-control widget in Sliders form, 51
type
- of a variable, 72
- of an attribute as the collection of values
that this attribute can hold, 81
un-structured approach
-as attribute of Centaur attitude, 9
uncertainty
-as expressed by width of an interval, 47
unsubstantiated conclusions
-intervals protecting against -, 48
Use weights
-control widget in Inspire form, 37
vague
criterion for formulating a query, 54
value
- as a concept in its own right, 81
- of a variable, 73
contents of a variable; result of applying an
attribute to a concept, 81
variable
- as a container of a value, 72
-as ingredient of a model, 12
considerations for introducing a new or to
expand into an expression right away,
99
defined as an attribute applied to a concept,
81
mechanisms by means of which variables
get their values, 98
150
represented by a node in the model graph,
97
type of a -, 72
value of -, 73
variables
- as ingredient of models, 72
auxiliary occupy category IV, 79
categories of -, 73
contextual occupy category III, 79
decision occupy category I, 73
happiness occupy category-II, 73
nominal or ordinal -, 80
relations between - , 73
weighted sum
- - ranking, 47
weightless
-Pareto-front-based ranking, 48
width
-of intervals, 47
Wild substitute
-control widget in Inspire form, 37
world knowledge
-what we know of a set of items, and what
should be captured in a set of independent, orthogonal, operational classifiers, 27
XML
-a format to store arbitrary data, used to
export and import Assist projects, 24
INDEX