Page 1
Supporting evolution in a multi-agent cooperative design environment
Hong Liu*,a,b, Mingxi Tanga, John Hamilton Frazera
aSchool of Design, The Hong Kong Polytechnic University, Hong Kong, People’s Republic of ChinabSchool of Information Management, Shandong Normal University, Janan, People’s Republic of China
Abstract
New architectures for next-generation of computer-aided design environments need to be distributed, evolutive, and cooperative. This
paper presents a multi-agent design environment that supports cooperative and evolutionary design by cooperation of a group of agents.
Multi-agent system architecture offers a promising framework with its novel approach for dynamically creating and managing agent
communities in widely distributed and ever-changing design environments; while the genetic algorithm based approach provides a
foundation for supporting evolutionary and innovative design abilities. The computational and information processing processes involved in
evolutionary and distributed environment are discussed in this paper. q 2002 Elsevier Science Ltd. All rights reserved.
Keywords: Multi-agent system; Cooperative design; Evolutionary computing; Improved genetic algorithm
1. Introduction
New design environment must be concerned with
providing industry with significant competitive advantages
in product and process design by developing advanced
design methods and computer-based design tools, tech-
niques, systems and applications that support the creation of
reliable, high quality, cost-effective, innovative and com-
petitive products [1].
Design is a team effort in which groups of designers with
different intent, background knowledge work together.
Close collaboration among them will accelerate the product
development by shortening the development cycle, improv-
ing the product quality and reducing investment. Global
collaboration is the key to ensure competition in product
design and development.
On the other hand, design is an activity with evolutionary
nature. It is a complex problem solving and knowledge
refinement process. The new design environments should be
knowledge based and provide support for knowledge
refinement and innovative design.
This paper presents a multi-agent cooperative design
environment that supports the evolutionary design via the
cooperation of a group of agents. The purpose of
investigation is to bridge the gap between existing AI-
based design techniques and Internet techniques by focusing
on supporting a team of designers each with different intent,
background knowledge, area of expertise and responsibility.
The remainder of this paper is organized as follows.
Section 2 presents the architecture of a multi-agent
cooperative design environment and the structure of a
design agent. Section 3 introduces the design process model
and the communication among design agents. In Section 4,
evolutionary design with the improved genetic algorithm is
introduced and Section 5 is an example for showing the
improved genetic algorithm. Section 6 summarizes the
paper and gives an outlook for the future work.
2. Hierarchical multi-agent system architecture
2.1. Related work on multi-agent design system
Multi-agent design system is concerned with how a
group of intelligent agents can cooperate to jointly solve
problems. Design is a complex knowledge discovery
process in which information and knowledge of diverse
sources are processed simultaneously by a team of designers
involved in the life phases of a product. Complex design
applications generally combine automated software com-
ponents with human decision-makers, making it imperative
to provide support for both human and computational
participants in the design process [2]. Software agents
provide the necessary support for keeping humans in the
0965-9978/02/$ - see front matter q 2002 Elsevier Science Ltd. All rights reserved.
PII: S0 96 5 -9 97 8 (0 2) 00 0 39 -X
Advances in Engineering Software 33 (2002) 319–328
www.elsevier.com/locate/advengsoft
* Corresponding author.
E-mail addresses: [email protected] ;
[email protected] (H. Liu),
[email protected] (M. Tang),
[email protected] (J.H. Frazer).
Page 2
loop, and multi-agent environment offers an appealing
framework for combining diverse source and types of
information and reasoning. Multi-agent cooperative design
systems have been recognized due to the following
reasons:
† The complexity of the design domain. The complexity of
the environment and/or the complexity of the design
tasks may make an individual difficult to complete them.
† The distributed nature of the design domain. Design is
inherently distributed. Designers come from different
domains and with different background.
† Performance gains. Time constraints may require the use
of multiple agents in the domains that allow solving
design problem cooperatively.
† Reusable design resources. Rather than designing new
product from scratch, intelligent agents can be used to
coordinate the use of existing design resources.
Multi-agent systems have previously been applied in a
number of engineering design applications. The approach in
these multi-agent systems is to use agents to handle the pre-
and post processing of various computational analysis tools
such as spreadsheets or CAD systems in order to establish a
common communication among them. The agents, that
communicate through a common framework act as ‘experts’
in that they represent the results produced by their
encapsulated applications and present it to the design
process [3– 5]. Currently, these approaches offer an
unobtrusive solution to communicate between the large
computers tools used in concurrent engineering design.
Other research projects in this area are incorporating
reasoning and learning into these agents in order to more
closely simulate strategies used by human designers [6,7].
2.2. Agent
While there is no unified agreement about the definition
and capabilities of an agent, an agent is believed to be an
system component capable of (1) perceiving and acting at a
certain level, (2) communicating in some fashion with other
agents, (3) attempting to achieve particular goals or perform
particular tasks, and (4) maintaining an implicit or explicit
model of its own state and the state of its world [8].
The use of Campbell et al. [3] is consistent with the
definition of Russell and Norvig [9], where agents are
viewed as perceiving their environment (here, the design
state) through sensors (i.e. functional inputs) and acting
upon their environment through effectors (i.e. modifications
to the design state). While some might argue that without
displaying specific behaviors of autonomy, mobility or
sociability [10], the agents in the environment do not fully
conform to the definition of ‘agency’. Similarly, agents are
defined as software assistants with knowledge that in some
way help designers to cooperatively achieve design goal.
The system is not intended to run automatically. On the
contrary, human beings are a part of the system. Thus, we
assume that the project will be run by a project manager, and
that each local group will in turn have a local project
manager. It should be noted that in this type of system,
human specialists do not have direct control either of the
other agents or the whole system. Each human specialist
works via an interface, which is encapsulated as an agent
connected to the system. For example, the project manager
can start or stop the design process, may take some
decisions when replying to the requests of other agents,
but has no control over the other agents or on the whole
working environment.
2.3. The architecture of a multi-agent cooperative design
environment
The general architecture of a multi-agent cooperative
design environment is organized as a population of
asynchronous semi-autonomous agents for integrating
design and engineering tools and human specialists in an
open environment (Fig. 1). Each tool (or interface for
human specialist) can be encapsulated as an agent. These
tools and human specialists are connected by a local
network and communicate via this network. Each can also
Fig. 1. The general architecture of a multi-agent cooperative design environment.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328320
Page 3
communicate directly with other agents located in the other
local networks by the Internet. The agents exchange design
data and knowledge via a local network or the Internet via
the management agent.
The various agents would achieve the same design goal
but in different ways. Because, in design, there is no single
or clear-cut answer, different agents working on the same
design problem can generate completely different solutions.
By having agents with different abilities contributing to
design, the process gains robustness and variety in solving
various conceptual design problems.
The creation of complex design in this environment is
due to collaboration among several different agents. These
agents contain knowledge of how to design based on their
individual strategies and preferences. They are constructed
to understand the representation of a design state, be it
complete or incomplete, and contribute in a manner that
leads to successful solutions. The strategies used by these
agents are based on some algorithms, such as genetic
algorithm, classifier algorithm and so on. In the current
implementation, agents are not autonomous, but are
triggered by the system or by other agents. The management
agent invokes and harmonizes the activities of design agents
with the help of a group of function agents, such as shared
Knowledge Base (KB) maintenance agent, common Data
Base (DB) maintenance agent, process monitor agent,
communication agent, conflict mediation agent and so on.
The knowledge in the KB of a management agent
includes the names and the addresses of design agents, their
skills or competencies, the history records of performed
tasks and the reward in the group. This knowledge helps the
management agent to select the suitable one for performing
new design tasks. In addition to the knowledge in the KB,
the buffer memory of a management agent keeps the
executed status of design subtasks and the state of each
individual agent. Many Distributed Artificial Intelligence
(DAI) researchers have characterized planning in multi-gent
systems as a form of distributed goal search through
classical AND/OR goal tree structures [11,12]. Problem
reduction style planning, supported by this type of goal
structure, is well suited to multi-agent problems requiring
coordination. Our cooperative multi-agent design
implementation adopts this planning paradigm.
When there is a new design task, Task Decomposition
Agent (TDA) plans first at an abstract level, and eventually
reduces the goal to a set of concrete primitive actions. There
are many goal tree (AND/OR tree) templates in TDA’s
knowledge base. TDA searches the candidate goal tree and
recommends it to the design engineer. The design engineer
makes the decision and passes it to the Bulletin Board [13].
After a dynamic assignment process, correlative design
agents work solely or help the designers in their work. Once
a design task has been fulfilled, the result is submitted to
conflict mediation agent as STEP files. Cooperative design
process will be introduced in Section 3.
The process monitor agent (see Fig. 2) watches the whole
design process via its event monitor and dynamically
maintains the information about the state of each design
agent and the status of current design subtasks. Whenever a
design event (such as submission, modification and so on)
occurs, the event monitor is triggered and the correlative
message is passed to the observation corrector for renewing
the buffer memory of the management agent.
2.4. Design agent
The majority of agents in the design environment are
design agents. A design agent is a kind of domain-dependent
and semi-autonomous agent, whose behavior is driven by
other agents or the achievement of goals for which it is
responsible. It has the following capabilities:
† Catching the interests and habits of the designers via
observation and help them get suitable candidate solution
at the initial design phase;
† Guiding a new designer and checking the constraints
Fig. 2. The structure of a process monitor agent.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328 321
Page 4
during design process, and generating design for
stimulating the designer’s imagination;
† Maintaining and interpreting knowledge related to itself,
other agents, and the environment.
The structure of a design agent is shown as Fig. 3 [14].
Input interface is a interface component that gets design
information (such as design specifications, design con-
straints, and fitness value that will be used in genetic
algorithm) and passes them to a sensor.
The communication component receives messages
from other agents or environment and passes them to
sensor.
Design goal component consists of constraints. It gets
goal information from other agents or designers. The goal of
a design activity determines the type of design activity
performed by the design agent.
Sensor is a sensible information collection and transfer
component.
Selector is a component that matches current situation
with correlated knowledge and passes selected knowledge
to transform component.
Transform component is a knowledge-based transformer,
which transforms the input into output according to selected
rules, functions and methods.
Learning is implemented by KB and learning engine.
Learning engine renews KB according to the feedback
from environment (designers and other agents) and
agent itself (measure output according to design goal
and evaluation).
There are two kinds of knowledge in the KB of a design
agent:
† Design knowledge. It consists of the rules, functions,
methods, mathematical models and AI algorithms.
† Social knowledge. It includes the interests and habits
of the designers and interactive knowledge with other
agents. It can be offering by tracing the design process
and history.
Output is an interface component that shows design
information to the designers in a visual form.
An agent gets the information from the environment (by
designers, by communication or by feedback) with its sensor
and then translates it to the internal description of the
situation. This description is divided into three parts: first
part is used to improve the design goal of the agent, second
part is passed to transfer component as the design
requirement and the third is the situation for knowledge
selection.
In the KB, a rule is represented as IF s1 and s2… and sn
Then actm krkl: In which, s1, s2,…,sn are the internal
description of the situation and actm is the functions or
methods. Each rule has a value rk to represent the priority of
the rule. The selector chooses an appropriate rule for
execution from the rule base by matching the sensed
situation and the priority of the rule. The priority will be
modified after it has been performed and learning engine
gets the feedback information from the environment. Once a
rule is selected, the transform component performs the
corresponding action, and transfers input into output
according to the design goal.
Now, we describe the reinforcement learning part. When
the task or the sub-task is performed according to a rule, a
reward is given to that rule. The given reward is divided and
added to the reinforcement values among the rules that
contributed to the performing task. This is done by the
learning Engine, in which we use the standard bucket
brigade algorithm [15].
When a new agent is added into the environment,
management agent helps it to find a suitable agent as
the model to be imitated. During imitating period, the
new agent observes and tracks the performance of the
model, records and learns the strategy from the model.
After that period, it will become easier for a new agent
to establish its rule base.
Tomohiro Yamaguchi met a problem concerning
when and whom to imitate [16]. In our work, this
problem is solved by the knowledge of the management
Fig. 3. The structure of a design agent.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328322
Page 5
agent. The management agent keeps all the information
of agents in its group such as their names, addresses,
skills or competencies, the history records of performed
tasks and the rewards. Therefore, it is easy to select a
good model to imitate for decreasing adaptive time of a
new agent in our environment.
3. The design process model and the communication
language among the design agents
In this section, we introduce the cooperative design
model and the language of communication among
design agents. The model provides the theoretical
foundation for decreasing and solving conflict while the
communication language provides facility for contact
among agents.
3.1. The cooperative design process model
Definition 1. DAs denotes a design agent, in which, D
means the type of an agent and s is a character string that
represents which group the agent belongs and its serial
number in the group. For example, DA11 is a design agent
with number 1 in the group 1.
Definition 2. Tc stands for a design task, in which, c is
a character string that represents the decomposed layer of
a design task and the dependency relation. For example,
an initial design task can be represented as T1; its subtasks
are T11;T12;…; T1n; and the sub-subtasks of T1i are
T1i1;T1i2;…; T1im separately, i.e. the length of the string
denotes the decomposed depth while the value expresses the
dependency relation.
The dependency relation of a design task forms a design task
tree (or goal tree).
Definition 3. Tji denotes the task i is being done by the
design agent j.
We can know the group members who are performing the
task Ti by vector ðTj1i ;T
j2i ;…; T
jki Þ and the current tasks of
the design agent j by vector ðTji1;T
ji2;…;T
jilÞ:
Definition 4. The prior relation of design tasks is indicated
by pair PRIOR (Ts1; Ts2), which means Ts2 takes the
fulfillment of Ts1 as the starting precondition; Ts1 and Ts2 are
the sequences of tasks, respectively.
Definition 5. The concurrent relation CONCUR (Ti; Tj)
expresses the design tasks Ti and Tj that can be carried out
simultaneously.
Definition 6. The exclusive relation EXCLUDE (Ti; Tj)
expresses the two tasks Ti and Tj that cannot be performed
simultaneously.
Definition 7. EðiÞ expresses the event i.
Definition 8. The task correlation graph can be defined by
the following graph denotations on above definitions.
According to the definition for design tasks and the
relations among them, we can get a design task correlation
graph. This graph is useful for the engineer to control the
cooperative design process. The design example defined by
task correlation graph can be seen in Ref. [17].
3.2. Communication language among design agents
A complex design task is accomplished by several design
agents. In this process, communication plays an important
role. In general, communication can be synchronous or
asynchronous, and the mode of communication can be
point-to-point (between two agents), broadcast (one to all
agents), or multicast (to a group of selected agents). The
environment takes Design Agent Communication Language
(DACL) as communication language for interaction among
agents. DACL can be viewed as consisting of three layers—
the content layer, message layer and communication layer.
The content layer specifies the actual content of a
message. A message is formatted in an extended KQML
format [18]. A KQML-conforming message could include
program-codes, files, lists, nature-language expressions, and
so on.
A subset of performatives provided by DACL (as shown
in Table 1) constitutes the message layer, which in turn
forms the core of the language. The set of performatives is
extensible and it includes minimal vocabulary necessary to
overcome the problems concerning design interaction
language for inter-agent communication.
Table 1
A subset of the performatives
Performative name Action
MODIFY Telling conflict mediation agent the modified
message with a file.
NOTIFY Notifying correlative design agents of some
information in a multicast manner
PUBLISH Publishing some information to all design
agents in a broadcasting manner
REPLY Replying the request and let the
sender know the message has arrived
REQUEST Requesting a message with a point
to point manner
SUBMIT Submitting output files as the result
of finished design task
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328 323
Page 6
The communication layer encodes low-level communi-
cation features that describe the parameters at the lower
level of the message, such as the identifiers of the sender and
the receiver, a unique identifier and the used protocol, etc.
The safety and reliable communication medium is con-
sidered in this layer.
During cooperative design process, design agents send
REQUEST, SUBMIT or MODIFY with the corresponding
message to CMA (Conflict Mediation Agent). CMA passes
the information to correlative agents by NOTIFY, PUB-
LISH or REPLY and mediates conflict according to design
task correlation.
For example, one design agent, say DA1, will perform
task Ti and need all of the messages for that task. DA1 will
send REQUEST message to CMA for these information.
Checking design task correlation, from PRIOR(Ti; Tj),
CMA knows that the prior condition for the start of task Ti is
the finish of task Tj which has been done by one agent, say
agent A2: A REQUEST message will be forwarded to A2: by
CMA, unless A2 has previously supplied the needed
message.
If A2 modifies the task Tj; it will send a MODIFY
message to CMA. CMA is notified that some features have
been changed. Then CMA checks all corresponding tasks
and agents, such as A1; CMA will send A1 the MODIFY
message and the modified features. Any agent who takes
one of those features as an input will get this notice for
modifying the corresponding design and all the outputs of
the correlative agents will be renewed.
CMA informs agents not only when a task is completed,
but also when some unexpected events occur. For example,
a given subtask becomes superfluous because the super-task
has been discarded. Whenever a subtask no longer has any
valid justification, the owner of the subtask should be
notified. We can find all of them by design task tree and
correlation among agents and tasks.
4. Evolutionary design
4.1. Related work on evolutionary design
Evolutionary design is an approach that utilizes different
evolutionary computation techniques in various different
design domains [19]. The strength of evolutionary design
comes from the factor that controlled evolution can be
formulated as a general purpose problem solver with the
ability similar to human design intelligence but with a
magnitude of speed and efficiency. The evolutionary design
approaches combine several vital aspects of design
intelligence in an evolutionary process including modeling
design data and information, concept formation, idea
generation, optimization, learning, and evaluation. Once a
design problem is properly formulated in this evolutionary
process, the computer is able to generate a large number of
candidate solutions before reaching an optimum one. The
candidate solutions are sometime unpredictable but the
process and the results are manageable by the designers.
Genetic Algorithms are the famous and widely used
evolutionary techniques [20,21]. They resemble natural
evolution more closely than many other approaches because
they are based on the mechanics of natural selection and
natural genetics. Frazer used genetic algorithm in his
evolutionary architectural design to evolve unpredictable
forms of architectures and their possible interactions with
the environment [22,23]. In Australia, the work of Professor
John Gero and colleagues also investigated the use of
evolution to generate new architectural forms. This work
concentrates on the use of evolution of new floor-plans for
buildings, showing over many years of research how
explorative evolution can create novel floor-plans that
satisfy many fuzzy constraints and objectives [24]. They
even show how evolution can learn to create buildings in the
style of well-known architects [25]. Paul Coates of the
University of East London has shown how evolution can
generate coherent plans for housing estates and buildings, as
well as innovative building exteriors [26]. Professor
Celestino Soddu of Italy uses evolution to generate every-
thing from novel table-lamps to castles to three-dimensional
Picasso Sculptures [27].
The PhD students of Prof. Frazer John have been worked
for using genetic algorithms in creative evolutionary design.
Dr Sun Jian uses genetic algorithm in evolutionary mobile
phone design (some of her work has been used in this paper,
such as product tree structure and some mobile phone
product shapes) [28] and Chen has shown fresh wine bottle
forms by genetic programming [29].
However, the development of evolutionary design tools
is still at its early stage. So far, many genetic algorithms
have been used and tested only in design problem solution
with small scope. The research and development of design
support tools that integrate evolutionary techniques, knowl-
edge-based design techniques and the Internet based
techniques are in process.
4.2. The improved genetic algorithm
The improvement for general genetic algorithms is
primarily based on the following ways.
(1) It is impossible to predefine the structure of a new
artifact which may go beyond the scope defined by
initial population. Thus, using the fixed decoding
method is inappropriate. Here, we use a product model
tree and a feature tree to represent an individual
directly, which brings two advantages: to represent any
artifact and make changes easily.
(2) Due to the special laws of the creative design and
different encoding strategies, we redefine crossover
and mutation operations that are similar to tree
algebra.
(3) Fitness function which is used to evaluate the artifact
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328324
Page 7
depends on many factors, so we let designers give
fitness to each individual instead of fitness function.
This knowledge will be saved in the knowledge base of
the design agent and can be reused in similar situation.
(4) Genetic algorithm is performed in two layers: com-
ponent layer and feature layer. The execution of
improved genetic algorithm in the component layer
produces different recombination of components while
it generates new components in the feature layer.
(5) There is no unique standard for creative design. In
many case we cannot let design be limited by the initial
population. Some attractive inventions resulted from
the occasional stimulus outside. Therefore, the frame-
work should be open to import new individuals outside
at any time.
The elements and operators of improved genetic
algorithm are defined as following.
Definition 9. Feature F is a tri-tuples (t, f, v), where f is the
name offeature, t is type offeature f and v is the value offeature
f. In which, value is in broad sense and it can be number,
character string, array, function, expression, file and so on.
Definition 10. Feature vector FV is defined as a vector
FV ¼ kF1; F2;…; Fnl; where Fi is a feature.
Definition 11. Feature tree FT is defined as FT ¼ (D, R),
where D ¼ {FVi} < domain ðFViÞ< ðnilÞ; FVi is a feature
vector and is a node on the feature tree, R ¼ {fri} is a set of
relations and constraints among the nodes of the feature tree.
Definition 12. Product tree PT is defined as PT ¼ (PD,
PR), where PD ¼ {FTi} < domain ðFTiÞ< {nil}; FTi is a
feature tree and is a node on the product tree, PR ¼ {pri}
is a set of relations and constraints among the nodes of
the product tree.
From the above definition, we can see a product can be
divided into two layers (see Fig. 4) and forms multi-branch
tree at each layer.
Genetic operators include mutation, crossover and
selection. According to the above definition, the operators
are described here and a new operator called importation is
introduced to import some new individuals for improving
population. All of these operators take the product trees and
feature trees as their operands. For simplification, we only
describe the operators on feature tree.
(1) Mutation. Due to different encoding strategy, unlike
that of traditional genetic algorithms, the mutation operator
here is used to make some inventions by changing the nodes
and the structure of a feature tree in the following ways:
(a) Changing feature value;
(b) Changing feature vector such as deleting a feature,
adding a new feature, etc.;
(c) Replacing a sub-tree;
(d) Changing the structure of a feature tree.
A mutation operation is shown as Fig. 5.
(2) Crossover. Crossover can be general 0 and 1 string
operations or some algebra operations (such as þ , 2 , p , /,
^ ), graphic operations (such as exchanging arc, segment,
part) and some function operations. Besides the above
crossover operations, the crossover based on feature tree can
be exchanging the sub-tree between two feature trees (Fig. 6).
(3) Selection. In general, more than one required
specification exists and all should be taken into consider-
ation when evaluating the solution. If there are N required
specifications si ði ¼ 1; 2;…;NÞ and gi is the proposed
solution’s specifications, then the distance d between the
required and designed specifications is shown as Eq. (1). ai
is the weight value for showing the importance of si: The
Fig. 4. The layered structure of the product.
Fig. 5. A mutation operation. Fig. 6. A crossover operation.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328 325
Page 8
smallest value of d would be associated with the best
solution for the specified problem.
d ¼
ffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiXN
i¼1
aiðsi 2 giÞ2
vuut ð1Þ
For general design, we can get the requirement from user and
transfer it into goal function. Then, the fitness value can be
obtained by calculating the similar degree between the goal
and individual by Eq. (1). However, for creative design, as
there are no standards to form a goal function. Hence, it is hard
to calculate the fitness value by a formula. In our environment,
we use the method of interaction with designers to get fitness
value. After an evolutionary procedure, the fitness values
obtained from the designers are put into knowledge base for
reuse. At a later time, when the same situation appears, the
agent will access them from the knowledge base.
This method gives the designers the authority to select
their favorite design and thus guide the system to evolve the
promising design. Artificial selection can be a useful means
for dealing with ill-defined selection criteria, particularly
user centered concerns.
(4) Importation. In order to prevent the premature
convergence, we define a new genetic operator called
importation, which is used to import some new individuals
outside of the initial population via Internet to keep the
individual diversity in population.
For clarity, we will show the performing procedure of
improved genetic algorithm by a design example in Section 5.
5. A mobile phone design example
Improved genetic algorithm is used in two layers: the first is
the feature layer, and the second is the component layer.
At the feature layer, the basic operations of improved
genetic algorithm are executed on the feature tree for evolving
the feature vector node on the feature tree. This procedure will
produce some new component shapes for stimulating the
image of the designers and extending the component base.
At the second layer, the operations of improved genetic
algorithm are performed on the product tree. Its basic elements
are the components and the operations are based on the
constraints and checked by CMA. Therefore, the general
results will be some afresh combinations of the components.
The basic process of improved genetic algorithm is as
follows:
Step 1
Initialize the population of chromosomes.
Step 2
Calculate the fitness for each individual in the population.
Step 3
Perform crossover, mutation and importation on the
population.
Step 4
Reproduce individuals to form a new population according
to each individual’s fitness.
Step 5
Go to step 2 until some condition is satisfied.
We will take the mobile phone design as an example to
show this process.
Fig. 7. A hierarchy structure of the mobile phone.
Fig. 8. A shape population of the main-body. Fig. 9. A crossover operations by þ and 2 mathematical operations.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328326
Page 9
Fig. 7 shows a hierarchical structure of the mobile phone
based on the functional components, which can be classified
as:
† Number keypad,
† Functional keypad,
† Screen/visual display,
† Main-body,
† Speaker.
This work is delivered to five design agents. Here we take
the body design agent’s work as an example to show the first
phase of improved genetic algorithm.
Step 1
Initialize the population of chromosomes. Some shapes
of main-body are shown as Fig. 8. Some of them come
from the design agent’s database, some from existing
mobile phone shapes, and some others are generated by
mathematical functions.
Step 2
Calculate the fitness for each individual in the population.
Here we get them by interaction with the designer.
Step 3
Perform crossover, mutation and importation operations on
the population. We take crossover based on mathematical
operations for showing our algorithm.
There are two shapes in main-body populations. They are
generated by function y1 ¼ x £ ð1 2 xÞ £ 3 and its mirror by
x-axis. Another is y2 ¼ x £ ð1 2 xÞ £ ð1:5 þ cosð8 £ xÞÞ and
its mirror. The children are y3 ¼ y1 þ y2 and y4 ¼ y1 2 y2
with their mirrors (Fig. 9).
Fig. 10 shows another example of crossover operations
by p and ^ mathematical operations.
Step 4
Reproduce individuals to form a new population by
interaction with the designer and save the fitness into
design agent’s knowledge base.
Step 5
Go to Step 2 until this process is stopped by designer.
Next phase, the similar operations are performed on the
product tree. Its basic elements are the components.
Fig. 10. A crossover operations by p and ^ mathematical operations.
Fig. 11. The partly result after the evolution of second phase.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328 327
Page 10
Therefore, the results are the new combination of the basic
components (Fig. 11).
6. Conclusions
Design is a complex knowledge discovery process in
which information and knowledge of diverse sources are
processed simultaneously by a team of designers involved in
the life phases of a product. Design also is an intense
cognitive activity. This leads us to explore design in terms
of computational and information processing processes
involved in evolutionary and distributed problem solving.
This paper presented the hierarchical architecture of a
multi-agent cooperative design environment and the
structure of a design agent. It introduced the cooperative
design process of multi-agents in detail. Then it takes shape
design as an evolutionary process and use computational
representations and inference mechanisms to resolve design
solution. This study viewed design process as generative
and evolutionary processes that are implemented by a group
of cooperative agents.
This project is done by the Design Technology Research
Centre (DTRC) in the School of Design at the Hong Kong
Polytechnic University. DTRC focus on the development of
computer enhanced design processes and product-oriented
and user-centred design tools and systems. Evolutionary
computation, generative and knowledge based environment,
Artificial Intelligence, integrated and interactive system
techniques, virtual reality, and computer supported colla-
borative work are employed for the implementation of this
environment. The purpose of investigation is to bridge the
gap between existing AI-based design techniques and
Internet techniques.
Acknowledgements
This project is funded by the Research Fellow Matching
Fund Scheme 2001 (No. G.YY.35) of the Hong Kong
Polytechnic University and supported by the Hong Kong
Polytechnic University (No. 5197/98H and 5275/00H) and
NSFC (No. 69975010). We would like to say thanks to Prof.
Liu Xiyu and Dr Sun Jian for their contribution to this project,
and Ms Manata N. Rao for her contribution to this paper.
References
[1] Frazer JH. Design workstation on the future. Proceedings of the
Fourth International Conference of Computer-Aided Industrial
Design and Conceptual Design (CAID & CD’2001), Beijing:
International Academic Publishers; 2001. p. 17–23.
[2] Lander ES. Issues in multiagent design systems. IEEE Expert 1997;
12(2):18–26.
[3] Campbell M, Cagan J, Kotovsky K. A-design: an agent-based
approach to conceptual design in a dynamic environment. Res
Engng Des 1999;11:172–92.
[4] Goldstein D. An agent-based architecture for concurrent engineering.
Concurrent Engng: Res Applications 1994;2:117–23.
[5] Campbell M, Cagan J, Kotovsky K. Agent-based synthesis of electro-
mechanical design configurations; 1998.
[6] Grecu DL, Brown DC. Design agents that learn. AIEDAM 1996;10:
149–50.
[7] Grecu DL, Brown DC. Dimensions of machine learning in design.
AIEDAM 1998;12(2):117–21.
[8] Barber KS, Kim J. Toward flexible tolerant intelligent manufacturing:
sensible agents in shop-floor control. Artificial Intell Engng Des, Anal
Manufact 2000;14:337–54.
[9] Russell S, Norvig P. Artificial intelligence: a modern approach.
Englewood Cliffs, NJ: Prentice-Hall; 1995.
[10] Franklin S, Graesser A. Is it an agent, or just a program 1997. p. 21–35.
[11] Lesser VR, Corkill. Functionally-accurate, cooperative distributed
systems. IEEE Trans Syst, Man, Cybernet 1981;11(1):81–96.
[12] Jennings NR. Commitments and conventions: the foundation of
coordination in multi-agent systems. Knowledge Engng Rev 1993;
8(3):223–50.
[13] Liu H, Lin Z. A Cooperative design approach in MADS. Proceedings of
the Fourth International Conference on CSCW in Design (CSCWD’99),
Compiegne, France, Sep. 29–Oct. 1; 1999. p. 297–303.
[14] Liu H, Tang M, Frazer J. Supporting learning in a shared design
environment. Int J Adv Engng Software 2001;32(4):285–93.
[15] Goldberg DE. Genetic algorithms in search, optimization, and
machine learning. Reading, MA: Addison-Wesley; 1989.
[16] Yamaguchi T, Miura M, Yachida M. Multi-agent reinforcement
learning with adaptive mimetism. Proceedings of IEEE Conference
on Emerging Technologies and Factory Automation, vol. 1.; 1996.
p. 288–94.
[17] Liu H, Zeng G, Lin Z. An agent-based approach to cooperative design.
Proceedings of Workshop on CSCW in Design’97, Bangkok, Beijing:
International Academic Publishers; 1997. p. 191–5.
[18] Finin T, Labrou Y, Mayfield J. In: Bradshaw JM, editor. KQML as an
agent communication language. Software Agents, Massachusetts:
MIT Press; 1997. p. 291–316.
[19] Bentley P. Aspects of evolutionary design by computers. Advances in
soft computing—engineering design and manufacturing, London:
Springer; 1999. p. 99–118.
[20] Graham P. The application of evolutionary and rule-based techniques
in computer aided design. PhD Thesis; 1998.
[21] Davis L. Handbook of genetic algorithms. New York: Van Nostrand
Reinhold; 1991.
[22] Frazer JH. An evolutionary architecture. London: Architectural
Association Publications; 1995.
[23] Frazer JH. Creative design and the generative evolutionary paradigm.
In: Bentley P, editor. Creativity and design; 2000.
[24] Gero JS, Kazakov V. An exploration-based evolutionary model of
generative design process. Microcomput Civil Engng 1996;11:209–16.
[25] Schnier T, Gero JS. Learning genetic representations as alternative to
hand-coded shape grammars. In: Gero JS, Sudweeks F, editors. Artificial
Intelligence in Design’96, Dordrecht: Kluwer; 1996. p. 39–57.
[26] Coates P. Using genetic programming and L-systems to explore 3D
design worlda. In: Junge R, editor. CAADFutures’97. Munich:
Kluwer; 1997.
[27] Soddu C. Recreating the city’s identity with a morphogenetic urban
design. 17th International Conference on Making Cities Livable,
Freiburm-im-Bresgau, Germany; 1995. p. 5–9.
[28] Jian S. Application of Genetic Algorithms to Generative Product
Design Support Systems. PhD Thesis, Hong Kong Polytechnic.
[29] Chan KH, Frazer JH, Tang MX. Handling the evolution and hierarchy
nature of designing in computer-based design support systems.
Proceedings of the Third International Conference on Computer
Aided Industrial Design and Conceptual Design, 26–27th November,
Beijing: International Academic Publisher; 2000.
H. Liu et al. / Advances in Engineering Software 33 (2002) 319–328328