The
story of developing the maritime chronometer, that took place during the early eighteenth
century, is a fascinating tale of creating a self-regulating system that was
capable of keeping time accurate enough to navigate across broad stretches of
ocean. Mariners had used the position of the sun and the stars for approximate
navigation upon the sea for thousands of years; however, accurate determination
of ship longitude, and thus ship position, depended on knowing the exact time
of day to take measurements. This problem was solved by the invention of the
self-regulating maritime chronometer, thus enabling the complete conquest of
the world’s oceans for trade and exploration.
Clerk Maxwell (Maxwell, J. C., Proc. Roy. Soc. (
In
1948, Norbert Weiner (Weiner, N., Cybernetics, Wiley, 1948) popularized the
term, cybernetics, by explaining how the foregoing control technology could be
interrelated with computer and communication technologies to implement not only
governors but also pursuit guidance systems and the early forms of goal-seeking
systems.
In
parallel, the field of General Systems Theory, that grew out
of the field of General Semantics, formalized the notion that a system
consists of two or more elements having specific interrelationships and even
relationships among the relationships.
Further, that the overall response of a system to a given stimulus was
rarely a simple linear function and was as much influenced by the nature of the
relationships as by the properties of the elements. Out of these early
beginnings came a flood of ideas and innovations that mold our modern world
today and our thinking about complex systems.
Jay
Forrester introduced Systems Dynamics models that clarified the ramifications
of the structure of various feedback and feed-forward relationships and of the
affect of time delays on these relationships.
Ross Ashby articulated the Law of Requisite Variety that says that the
controller of a system has to have at least one degree of freedom greater than
the system being controlled. Lotfi Zadeh’s fuzzy logic generalized classical logic to allow
classification of system features to be ambiguous. For example, confidences in
feature facts specifying whether two objects are either close or far can both
have a value that varies, depending on the distance between the objects. The
classifier system block, discussed in chapter 8, facilitates rule induction by
minimizing ambiguity in each decision context during the generation of new
rules.
Others
noted that many relationships were not static but needed to be modeled as
active logic (Simula, 1968) and, bilaterally, that
human reasoning could be modeled such that computer technology could be
leveraged to help do pattern recognition, choice making, generative planning
and even the design of machines that could design machines. These early
software engineering and artificial intelligence efforts have evolved into the
fields of multi-agent systems and distributed, Artificial Intelligence (AI).
Over
these decades engineering educators have struggled to cope with such complex
systems by “simplifying” them into piecewise linear continuous time models and
discrete event queuing system models. But systems are not that easily
decomposed. Although progress was made in modeling and simulating such systems,
the skill levels required and the project times involved often meant that the
design decisions were already made by the time the simulation was ready to run.
A
new wave of understanding, and computer-based tools for even better
understanding of complex self-synchronizing systems, was founded when a group
of nuclear physicists interested in quantum theory came into relationship with
a group of economists interested in understanding the higher-order, implicit
characteristics of stock markets and the global economy. Their dialog was
greatly accelerated by John Holland, discussed in chapter 8, and his suite of
software tools and constructs for modeling implicit systems and simulating them
to reveal their emergent behaviors which were otherwise unpredictable by
mathematicians and logicians. The field of Complex Adaptive Systems (CAS) took
form and has spawned a spectrum of studies.
I
am indebted to all the complex systems researchers and innovators that have
gone before and have influenced the development of the ideas, tools, and
methods expressed in this book
I
have been a researcher, teacher and practitioner of complex systems and of the
design of complex systems for 35 years. During this time, the computer,
transportation, manufacturing, business, and military systems that I have
worked on were discovered to be best characterized as a set of interacting,
concurrent processes. This discovery inspired development of Context Sensitive
Systems (CSS) theory as a way of thinking about interacting concurrent
processes. Also developed was a graphical modeling language, Operational
Evaluation Modeling (OpEM), to express models of both
existing and conceptual systems. Further, a graphical discrete event simulation
library, OpEMCSS, was developed more recently to
enable rapid development of models and simulations in the OpEM
language. I believe that the CSS theory,
OpEM modeling language, and OpEMCSS
library can be applied in many modern situations and can be used to understand
the emerging field of Complex Adaptive Systems (CAS). Further, the OpEM
language, simulation tools, and methodology can be modified and extended, as we
in the CAS research community learn more about CAS.
The
OpEMCSS library works with the popular commercial
software tool, EXTEND5+MFG (www.ImagineThatInc.com) which was chosen for two
major reasons. First of all, EXTEND5+MFG is relatively
inexpensive for students to buy. Second, it is a powerful simulation tool. I
have programmed both continuous-time, discrete event, and hybrid computer
simulations in FORTRAN, Pascal, and C/C++, and I have studied various ways to
make such programs execute faster and more efficiently. In my opinion,
EXTEND5+MFG is a very efficient implementation of a high level, graphical
icon-based, simulation tool. The OpEMCSS icon-blocks
automatically provide more than 95% of all simulation code that in the past had
to be programmed by hand. In context-sensitive systems, these programming
details are very complex and would otherwise require extensive programming
skill and effort to accomplish. EXTEND5+MFG, with the OpEMCSS
library, gives students and systems practitioners the
ability to experiment with complex, context-sensitive interactions and quickly
build a model. Time is not wasted dealing with complex programming details and
writing extensive code, but rather the emphasis is on complex systems design,
analysis, and evaluation.
Because
it affords a focus on modeling rather than programming, student learning and
retention are both increased considerably. It is my contention based on 20
years of teaching that students retain about 90% of what they learn based on
hands-on experience and 10% of what they get from lecture. Therefore, it is the
intent of this book that students have OpEMCSS and
all example models including homework, discussed in the book, available for
hands-on experimentation.
I
believe the best way to learn the basic principles of complex systems,
discussed throughout this book, is to actually experience them directly through
hands-on experimentation. Throughout the text, the reader is invited to do
simulation-based experiments that demonstrate the principles of complex systems.
The reader is constantly engaged through the examples in the book to actively
learn and participate. I believe that a
student that learns this way is more likely to be able to apply what he/she has
learned in diverse fields and extend that knowledge to new fields and new
problems.
Understanding
complex systems is like peeling an onion; one does it layer by layer. This book
is organized to begin with a simple system that the reader already understands
and build on this understanding through a series of examples. Each example has
a lesson about complex system principles to teach. Gradually, the book
introduces more and more complex system principles. It is important that students and other
readers study each of the models in the book in order to gain an understanding
of the basic principles that each model represents. Thus, the book is designed
for a broad spectrum of people to gain an understanding of complex systems. It
will be shown that, although complex systems have behaviors that are difficult
to understand, the underlying modeling building blocks are simple and easy to
understand.
All
complex systems have emergent behaviors that result due to the interactions of their
components. Such behaviors only occur if components are working together; they
do not occur when operating any single component alone. Thus, we cannot
understand each component as it operates independently to gain an understanding
of the whole system.
Often
the emergent behavior of the system is not predicted when a system concept is
proposed, and its occurrence is a surprise when the system concept is
simulated. This is why simulation of the entire system, operating within its
environment, is an important part of engineering of complex systems discussed
in this book.
In
Complex Adaptive Systems (CAS), I believe the main interaction among concurrent
processes is communication and adaptation. There are three main kinds of
interactions discussed in this book, but the communication and adaptation
interaction is the one that results in changes in the system or environment
that propagate into the future through various causal paths. These feedback and
feed-forward paths dictate the behavior of individual system components, and
the result is emergent behavior as discussed above. Because of these
communication and adaptation interactions, the whole is more complex than can
be predicted through analysis of each system component separately.
Do
we expect to predict the exact future with such CAS models? No, but we expect to explore future
possibilities with such models and even gain computer-aided insight from
simulations based on these models. The
purpose of a CAS model and its concomitant system theory is to gain insight
into the phenomena under study and perhaps to establish bounds under which the
system will produce satisfactory behavior under a wide range of possible
futures. For example, simulation-based systems engineering, discussed in this
book, attempts to accomplish this by establishing a set of operational
scenarios that cover the various possible future environments,
and these are then used to design the system.
I believe that through control of the feedback / feed-forward paths, one
can achieve optimal system performance in each required operational scenario.
As
an example of emergent behavior in chapter 10, we consider a distributed
vehicle traffic control network located in a large city. Each major intersection has a vehicle traffic
light controller to determine traffic light timing. In this system, each traffic light controller
uses its perceptions about incoming traffic flow to optimize light timing, thus
minimizing local vehicle waiting time. The result of each traffic light
controller adapting light timing to accommodate traffic flow coming from other
intersections is to minimize the average waiting time in the entire network.
Global minimization of traffic waiting time results as a consequence of the
emergent behavior of this system, which is the self-synchronization of each
traffic controller’s light timing.
As
light timing control in the overall traffic grid evolves in the way discussed
above, a complex but definite pattern in network operation, north-south red to
green transition times, emerges out of an initial random light pattern. The emergent behavior of the traffic grid
cannot be explained through an understanding of each controller alone.
Understanding only comes when we study the interactions of the controllers as
they adapt their behaviors in response to perceived information about incoming
traffic flow, achieving
self-synchronization of all traffic light controllers in the
network.
The
desired emergent behavior for the traffic control system was achieved by
experimenting with feedback in the network. Trying different sets of fuzzy
control rules and control system gains did this. With no feedback, the traffic
lights operate independently and average vehicle waiting time is high. With
very strong feedback, the traffic control network operation appears chaotic (no
self synchronization occurs) and the average vehicle waiting time is high. When
the feedback is just right, the emergent behavior discussed above is observed
and the average vehicle waiting time in the network is minimized. It is also interesting to note that the
overall system never reaches steady state operation; indeed, the system seems
to be in a constant state of flux as observed by the random appearance of the
light timing control signals, even when the average vehicle waiting time is
being minimized. Operating far from
equilibrium seems to be a common feature of CAS based on what I have read in
the CAS literature.
Within
the last ten years or so there have been numerous books and journal papers
published about complexity and Complex Adaptive Systems (CAS). I have read most
of them and built CAS models such as the distributed vehicle traffic control
system, as discussed above, to experience emergence and other CAS issues. What
have I concluded from all this?
·
First, all of these books and articles provide numerous insights into
CAS of an anecdotal nature, and they relate complexity to other fields such as
biological evolution, chaos theory and Quantum Mechanics; all of which provides
further insights. After all, if you can relate complexity to something you
already know about, you may gain an understanding of it through analogy.
Because, of these books and articles, interest in complexity is growing
exponentially into a major scientific revolution.
·
Second, in all of this there was no clear model expressed that could be
used for system design and analysis. All I found was the concept of a complex
system represented as a network of interacting nodes (architecture diagram)
which is not a useful model, by itself, to completely describe complex systems.
In addition, I believe that a formal expression of complex system operation and
interactions is required as discussed in this book; further, I believe that OpEMCSS can provide this.
·
Third, there are simulation tools that have been developed to study
complexity; SWARM, ALIFE, and other multi-agent type models to numerous to
mention. However, these are research tools and do not appear to be readily
available to simulation programming lay persons (students and practitioners)
interested in complexity nor are these tools intended for system design,
analysis, and evaluation. As I discussed above, simulation programming of
complex systems is, based on my 35 years of experience, very difficult and time
consuming at best. However, I believe that many of the people interested in
complex systems and CAS are capable of making great contributions to complexity
research if a systems science and graphical simulation tool, such as CSS, OpEM, and OpEMCSS, were made
generally available to anyone interested.
People reading all these CAS articles and books during this time were probably left with the same feeling about complexity that I had; that complexity is the biggest scientific revolution in the past 350 years and there is absolutely nothing I can do to contribute to it or participate in it. Using CSS, OpEM, and OpEMCSS there is something that we all can do to contribute or participate in the CAS revolution. As people discover new CAS concepts, OpEM constructs can be added to the language and new blocks can be included in the OpEMCSS library, enhancing CSS theory.
This
book is not intended to answer all your questions about CAS; instead, it is
intended to instruct students and practitioners about what is currently known
about complex systems and to provide a tool that will allow all of us together
to answer our questions about CAS and how it works.
The
book is intended as a senior elective and graduate level textbook (homework solution
manual available) and a practitioner’s reference book. It is mainly intended
for systems engineers, integrated product engineers, software engineers,
industrial / manufacturing engineers, business management design people, and
Business Process Re-engineering (BPR) people.
However,
I believe that this book can be used in any field that is concerned with
entities that perform a set of tasks that lead to satisfaction of a measurable
goal that may or may not be explicitly known or stated. Such fields include, in
addition to those mentioned above, societal systems and sociology, biological
and ecological systems, economic systems, and others. There is currently no
book that covers the basic principles of complex systems in such a way that
students and practitioners can readily extend these principles to all kinds of
systems through hands-on experimentation.
As
will be demonstrated in chapter 1, the prerequisite for this book is basic
problem solving ability, which I believe the vast majority of people possess as
common sense. Each one of us formulate goals for
ourselves all the time to solve problems confronting us. Once we state our goal, we visualize a set of
tasks or steps that takes us from our current situation to one satisfying our
goal. If we can expect help from others to execute these tasks, we organize the
tasks into sequential and concurrent arrangement. We call our organized set of
tasks, more commonly, a plan. The execution of our plan by a group of people
hopefully leads to goal satisfaction. Such a plan can be developed using a task
flow diagram and modeled as a collection of interacting concurrent processes,
which are subjects of this book. A computer simulation program based on these
interacting concurrent processes can be used to optimize our plan and make it
robust in the presence of varying contingencies.
This
book is not intended to be survey of simulation in which simulation is an end
unto itself. There are plenty of books
already that do this. In this book, simulation is the means to an end;
understand, design, analyze, and evaluate complex systems. However, I do
discuss how simulations work including basic principles, what are the different kinds of simulation methods, and what are
some of the various applications of simulation during the engineering of
complex systems.
This
book is not intended to be a survey of complex adaptive systems either. As I
said above, there are many anecdotal type books already published that provide
insights into CAS. This book simply intends to provide hands-on learning and
experimentation with the basic principles of complex systems and to teach
simulation-based problem solving skills and system design, analysis, and
evaluation methodology. Once CAS are better
understood, a comprehensive textbook presenting CAS theory and applications can
be written based on OpEMCSS.
Throughout
this book a common sense approach to understanding, designing, analyzing, and
evaluating complex systems is presented. It begins by discussing traditional
ways-of-thinking-about-systems and then shows how one of these views, the
operational view of systems, can be best expressed using interacting concurrent
processes. A graphical language (OpEM) is presented
that provides a natural way to describe interacting concurrent processes and
implement them using simulation. A graphical discrete event simulation library
(OpEMCSS) is discussed throughout this book that
implements this graphical language and provides a means to experiment with
complex systems. A large number of
example models are described that illustrate how to use the OpEMCSS
library blocks to model complex systems. These examples are presented so that a
large spectrum of readers can understand them.
In
chapter 1, general systems are defined and some of the more commonly used
system models are described. Next, each reader is asked to analyze a
goal-oriented activity they already know how to do and to build a functional
flow model of this activity. I introduce some of the basic OpEMCSS
simulation blocks and apply these blocks to model my goal-directed activity. I
describe how simulations work and how an OpEMCSS
simulation can be used to achieve an understanding of complex systems;
discussing two example models. A systems engineering
process for bringing complex systems into being is described as an example of
simulation-based problem solving.
In
chapters 2, I present basic simulation concepts and how to apply the basic OpEMCSS blocks to model a system. In particular, the statistical aspects of
simulation are summarized briefly, the OpEM graphical
language is described in more detail, and Petri net modeling constructs are
compared to OpEM graphs in order to better understand
context-sensitive systems. Each basic OpEMCSS block
with its dialog is described in detail. A pre-emptive, priority job scheduling
model, “Priority.MOX,” is described that uses the
basic OpEMCSS blocks. This model is a very simple
example of a context-sensitive system that can be difficult to model using some
simulation languages.
In
chapter 3, I provide a series of examples that demonstrate the system design
and model development procedure using the basic OpEMCSS
blocks. It also discusses some of the
more advanced features of the basic blocks to model preemption and direct
execution of events. The best way to
learn to understand and design complex systems is to do a class project. Some
suggested projects are discussed in the chapter 3 homework section.
In
chapters 4 – 7, I present a number of example constructs that will be useful in
many modeling and simulation exercises. In chapter 4, I present Markov models,
expressed using the OpEM language, that assist in
understanding context-sensitive systems by providing an explicit mathematical
representation of states and state transitions. Markov models provide the basis
for application models, presented in chapter 5, reliability and availability
models, discussed in chapter 6, and queuing theory models, discussed in chapter
7.
In
chapter 8, I move toward self-adaptive or learning type systems by describing
an OpEMCSS block that implements a forward chaining,
fuzzy expert system controller. The Classifier Event Action block applies rules
to process attributes to make decisions. The rules can be used to transform
input facts into output facts that are sent to other processes. Some of these output facts can specify which
alternative behavior a process should exhibit in order to collaborate. This block includes a learning module that
uses evolutionary rule induction methods and decision ambiguity to discover the
best rules to make decisions. Three example models are discussed that use the
Classifier Event Action block to make decisions. These models are: (1) a part
production system that provides an example of on-line rule induction based on
graded learning, (2) a prisoner’s dilemma model that is an example of rule
learning in an co-evolutionary environment, and (3) a
Finite State Machine (FSM) model that demonstrates the generation of planning
rules that solve a problem.
In
chapter 9, I discuss a set of OpEMCSS blocks that
manage agent motion and interactions using a linear model based on discrete
events. When modeling agent motion using discrete events, a simulation runs
much faster. Usually, agent motion and interactions are modeled using fixed
time-step algorithms that run very slowly. An Animation Event Action block is
described that works with the agent motion blocks to display agent motion on a
grid. For example, an agent motion model called “World.MOX”
is described that uses the agent motion blocks and animation block to display
the motion of agents on a playing field. A sonar array
simulation where surface ships and submarines move in relation to sonar sensors
is also described. A Classifier
Event Action block is used in the sonar array model to learn a set of rules
that classify all ships correctly.
In
chapter 10, I discuss multi-agent systems. Context Sensitive Systems (CSS)
theory, agents, and agent interactions are discussed first to introduce the
chapter. Next, the California State University Fullerton (CSUF) engineering
building elevators are modeled as a multi-agent system where each elevator is
an agent that collaborates with the other elevator to reduce the waiting time
for people wanting to use an elevator. A distributed vehicle traffic light
system simulation is discussed next as a more complex example of a multi-agent
system. In this model, each traffic light controller is an agent that adapts
its behavior to achieve a highly desirable emergent behavior: the average
vehicle waiting time in the network is reduced relative to an uncontrolled
system. To conclude chapter 10, OpEMCSS blocks are
discussed that model various forms of agent communications, provides for
separate local agent memories to store agent knowledge, and implements global
agent “blackboards” used to facilitate collaboration during group problem
solving and planning. An example
multi-agent system model is discussed that features the use of these blocks.
During
the last few years, simulation-based engineering has become an essential tool
for the design and evaluation of complex systems. Such systems include air and
ground transportation networks, military C4ISR multi-agent systems, and
complex, international business organizations. These systems are difficult to
understand because each agent (subsystem) in the network adapts its behavior in
response to knowledge received from other agents. Agents adapting in
collaboration with other agents can lead to emergent behaviors that are much
more complex than any agent could achieve alone. Such Complex Adaptive Systems
(CAS) have the potential of much greater capability and effectiveness than
traditional systems if designed properly using the OpEMCSS
graphical simulation library discussed in this book.
The
revolution in complex adaptive systems is here, but it is just beginning. CAS
are not well understood as of yet; although, systems engineers have been
cognizant of some of the attributes of complex systems for a long time, as
discussed above in the historical overview. What we need is a simulation tool
that is easy to use by the majority of CAS researchers and the broad spectrum
of other interested people, all of whom have diverse backgrounds. The tool must
describe complex system principles and facilitate understanding of intelligent,
multi-agent systems and CAS. We also
need a tool that can be easily extended as more is learned about the nature and
phenomena of complex systems. This book
is intended for both students and practitioners interested in the design and
evaluation of complex systems; further, it is intended to provide a common
ground for anyone interested in participating in the discovery process and
contributing to the our common knowledge of complex systems and CAS. Out of this work, I would expect that a
theory of CAS will emerge that will be expressed using OpEMCSS.
Order From
CSUF TITAN Bookstore