A Hybrid Genetic Algorithm and Particle Swarm Opti
A Hybrid Genetic Algorithm and Particle Swarm Opti
net/publication/274006336
CITATIONS READS
17 83
1 author:
Siddhartha Agarwal
Missouri University of Science and Technology
16 PUBLICATIONS 153 CITATIONS
SEE PROFILE
All content following this page was uploaded by Siddhartha Agarwal on 21 September 2015.
ScienceDirect
Procedia Computer Science 36 (2014) 57 – 64
Abstract
Both modeling and simulating a system of systems (SoS) are difficult due not only to a changing environment but also the unique
behavior that is linked to different participating systems. Generating architectures for a SoS is a multi-objective optimization problem
with large number of variables and constraints. The paper presents several of computational intelligence techniques that can generate
SoS architectures, such as genetic algorithms (GA), and particle swarm optimization (PSO) combined with Type 2 Fuzzy logic nets.
The Maritime search and rescue (SAR) was used as a SoS domain scenario to both implement and demonstrate the architecting
methodology. SAR utilizes a variety of systems, including unmanned aerial vehicles (UAV), coordination command control,
communication systems and other larger manned vessels. The proposed methodology delivers SoS architects of SAR missions the
ability to exploit the interdependence among all systems as well as individual system's inherent characteristics to satisfy stakeholders’
desired attributes. The architect is thus able to design architectures that are robust, efficient, net-centric, and affordable.
© 2014 The Authors. Published by Elsevier B.V. This is an open access article under the CC BY-NC-ND license
(http://creativecommons.org/licenses/by-nc-nd/3.0/).
Peer-review under responsibility of scientific committee of Missouri University of Science and Technology
Keywords: Systems of Systems; genetic algorithms; particle swarm; fuzzy logic; multi-objective; architecture.
1. Introduction
System of Systems (SoS) consists of multiple complex adaptive systems that behave autonomously but cooperatively. The
continuous interaction between them and the interdependencies produces emergent properties that cannot be fully accounted for by
the “normal” systems engineering practices and tools. System of Systems Engineering (SoSE), an emerging discipline in systems
engineering is attempting to form an original methodology for SoS problems [1]. The first task that must be completed in a large-
scale problem is identifying it as an SoS problem. Maier [2] discussed both the necessary and the sufficient conditions required to
ascertain that a problem is indeed SoS. One of the SoS types of immediate importance, Acknowledged SoS, which has recognized
objectives, a designated manager with limited authority, and resources for the SoS [3]. Acknowledged SoS shares several attributes
with both Collaborative SoS and Directed SoS [6]. Figure 1 illustrates this concept [4]. The other broad type of SoS, Virtual lacks a
central management and a centrally approved purpose for SoS, and has independent development processes. This paper proposes that
architectures be generated for search, trace and rescue (SAR) missions as Acknowledged SoS. This paper forms a module within a
larger project called flexible intelligent and learning architectures for SoS [5].
1877-0509 © 2014 The Authors. Published by Elsevier B.V. This is an open access article under the CC BY-NC-ND license
(http://creativecommons.org/licenses/by-nc-nd/3.0/).
Peer-review under responsibility of scientific committee of Missouri University of Science and Technology
doi:10.1016/j.procs.2014.09.037
58 Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64
[7] proposed the use of computational intelligence tools (e.g., evolutionary algorithms) to generate several systems architectures
that can be used to understand and model a large SoS. Fuzzy assessors can be used to evaluate these architectures to find possible
solutions that match the decision-maker's preferences [10]. Other techniques that have been implemented include holistic modelling
approach that combines the abilities of Object Process Methodology (OPM) and Colored Petri Nets [8]. This paper attempts to extend
the application of genetic algorithms and Type I fuzzy sets for architecture generation and assessment [9]. The model presented is a
module in the overall architecting process shown in [11].
In principle, systems engineering may be thought of as a decision-making activity. The architecting process involves the
hierarchical reduction of ambiguity where a set of alternatives is evaluated so that the most suitable alternatives are selected. SoS
design problems have discrete variables with multi-criteria objective functions. Component systems have multiple intra-and inter-
system trade-offs that cannot be fitted into the mold of either single objective or multiple constraint problems. Solving many
objective optimization problems with Pareto front analysis technique can be difficult because with increasing number of objectives
almost all solutions in each population become non-dominated. Secondly, the number of solutions required for approximation
increases exponentially with the increase in dimensionality of the objective space [12]. Stochastic heuristic techniques such as
evolutionary algorithms are often used to generate solutions and fuzzy logic may be used for assessing the fitness of these solutions.
These techniques were employed in this study. The multi-objective approach combines multiple objectives into the following single
objective [13]:
f(x)T = { f1(x) f2 (x) … fm (x) }
g(x)T = { g1 (x) g2 (x) … gk (x) }
h(x)T = { h1 (x) h2 (x) … hl (x) }
x T = { x1 x2 … x n } ϵ X
x: vector of the variables; f: objective function(s); g: inequality constraints; h: equality constraints
A solution to the multi-objective problem includes compromise that is acceptable to the decision maker with respect to all of the
objectives pursued [12].
Systems Interfaces
Figure 2 represents binary variables including, both systems and the interfaces among them. Where N is the participating number of systems, the total number of
variables is ܩൌ ܰ ሺܰ כሺܰ െ ͳሻሻ Τ ʹ.
Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64 59
The domain specific information required for the architect to proceed is mentioned as a list:
x Overarching purpose of SoS: The overall goal to be achieved by combining capabilities
x Stakeholders: The Acknowledged SoS manager, system owners/managers, SoS environment (that provides input to manager)
x Rough Order-of-Magnitude (ROM) Budgets: Estimated operations Cost of systems per period. In addition, Cost of developing
system interfaces among the participants
x Key performance attributes of candidate SoS architectures that serve to select among them
x Capabilities ܿ present to varying degrees in the component systems, required to generate overall capability C
x A list of systems participating in the SoS with their corresponding identification numbers (N is the total number)
This list comprises of the notation for variables used to solve the multiple objective optimization problem:
x The overall capability is denoted by C.
x Constituent system capabilities required are numbered as ܿ ǣi= {1, 2,…, M} .
x Total number of systems that are present is represented by ܵ௦ ǣ ݏൌ{1, 2,… N}.
ௌ
x A systems capability (i) is represented as ܿ ೞ .
x A systems performance is represented by ܲ ௌೞ .
x ܦௌೞ ʲሼͲǡͳǡʹሽdeadline to participate in this round of mission development for system ‘s’ . ܦௌೞ indicates whether SoS is asking to
participate in the current mission (indicated by 0) or next one (indicated by 1) or the next to next (2).
ௌ ௌ
x ܫ ೞ ೖ ݅ ݄݁ݐݏinterface between systemsܵ ܽ݊݀ܵ௦ is used to develop capability i : ݏൌ{1,2,… N} & ݇ ൌ{1,2,… N} s.t. s് ݇.
x The cost for development of interface is different for each system ܿܦܫௌೞ .
x The systems cost of operations is ܱܿ ௌೞ .
x The systems relative performance among participating systems based on ability to search and provide assistance is ܮௌೞ Ǥ E.g.,
aircraft may be able to search more area faster, but cannot stop and render assistance; cutters are slower, but better at rendering
assistance, and helos are good at both, but with shorter range, and so on.
x The systems’ relative rank among participating systems based on possessing high and low speeds is ܵ ௌೞ .
This list tries to explain the variables defined above in context of the SAR mission.
x Overarching purpose of SoS: A Coast Guard Search and Rescue (SAR) o capability within the Sea of Alaska was selected as the
problem.
x Stakeholders: The Coast Guard has numerous systems with differing capabilities (e.g., cutters, aircraft, helicopters,
communication systems, and control centers) that are available at several stations within the area. Additionally, fishing vessels,
civilian craft, and commercial vessels join in an ad hoc SoS to provide assistance when a disaster strikes. The coordination and
command control center guides the combination of manned vessels and UAVs in the operation. The communication systems
enable coordination of the sensing and rescuing capabilities of each vehicle.
x ROM Budget: Approximately $40 Million
x Key performance attributes (KPA) of the SoS
¾ Performance denoted by ܲ ௌௌ
¾ Affordability denoted by ܣௌௌ
¾ Robustness denoted by ܴ ௌௌ
¾ Modularity denoted by ܯௌௌ
¾ Net-Centricity denoted by ܰ ܥௌௌ
x Number of potential systems participating is N =29.
x The SAR mission includes 29 systems and 10 different capabilities.
The SoS manager may not want all systems to be present simultaneously when s/he is designing a mission. The correct set of
systems should be chosen such that all ten capabilities are acquired, while trying to maximize overall performance and minimize the
cost of acquisition. The architectures are assessed according to a fitness function. The fitness function is a multi-objective problem. A
number of independent functions need to be simultaneously addressed, to make up the fitness function. Five KPAs are the
60 Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64
independent functions that will be used in this example for assessing the overall SoS architecture [15]. The following sections explain
each KPA in detail and how it will be calculated for each architecture.
3.2.1. Performance
The architecture’s performance is calculated as the sum of over N ܲ ௌೞ ,ܮௌೞ , and ܵ ௌೞ . This method helps in obtaining a
comprehensive view of the SoS performance in the areas that count in finding and rescuing people in distress.
3.2.2. Net-centricity
Net-centricity is a property of SoS that relates to the availability ability to share of information; it is central to network-centric
operations [14]. The degree of net-centricity is a measure of the influence of net-centricity toward achieving the SoS objectives. The
net-centricity of an architecture is based on interoperability of participating systems and centralized common communication for
sharing information. Interoperability is defined as sharing an interface with other constituent component systems. Communication
measures whether or not these systems are coordinating among themselves through a common control station (any third party
server).communication channel. In this problem, communications systems channels are numbered systems from 26 to 29.
ൌ σࡺ ࡺ
ୀ σୀ ܣ ܣ כ ܣ כ (1)
These values are calculated by converting the string of bits (as previously described) into an adjacency matrix. This matrix is
denoted by A. Both ܣ and ܣ are binary values for the systems presence (1) and absence (0) within the architecture. ܣ and ܣ
aid in determining whether or not an interface exists between either systems i and j or systems j and k, respectively. The metric used
tries to capture the number of channels present that can transfer information within the SoS. If either of the two systems is not
present, the metric is zero. If an interface exists between the two systems the net-centricity of SoS increases. Net-centricity increases
further if the any two systems communicate through systems numbered 26 to 29. This is shown in Equation 2 where by multiplying
(1 λሻ enhances the communication capability. Finally, if both systems are present but neither of them interface either among
themselves or through the communication systems, the net-centricity is zero. The concept of interoperability presented here is
simplistic. Interoperability can be viewed as having multiple dimensions from sharing and interface, to sharing data in the same
format, to operational compatibility, exchanging useful information, systems’ having trained together, and so on.
3.2.3. Affordability
Affordability is dependent on the sum of operation costs (equation 3) of the systems present times the number of capabilities
possessed by that system. In addition, the interface development (equation 4) cost is systems present times the number of interfaces
that specific system makes with other systems also present.
ெ ௌೞ
Operations costൌ σே ௌೞ
௦ୀଵ ܱܿ כσୀଵ ܿ (3)
ே ௌ ே ௌ ௌ
Interfaces costൌ σ௦ୀଵ ܿܫೞ כσୀଵǡஷ௦ ܫ ೞ ೖ (4)
3.2.4. Robustness
One of the matrices within spectral measures of a graph is known as Laplacian (an SoS can be described as a graph that has
vertices as systems and interfaces as edges.) The Laplacian (L) is calculated as the diơerence between the degree matrix (denoted by
∆) and the adjacency matrix (denoted by A). The second smallest eigenvalue λ2 of the Laplacian is known as algebraic connectivity
[16]. This value is used to assess the robustness of the graphs structure to external perturbations. The algebraic connectivity is equal
ே
to zero if and only if the graph is unconnected. [17] proved that the range of the value of λ2 is Ͳ ɉଶ ܦ , where N is the
ேିଵ
number of vertices and ܦ is the minimum degree of the graph. A MATLAB toolbox was used to calculate the metrics [18].
3.2.5. Modularity
Modularity measures the structure of networks and graphs. It is used to compute the maximum possible indivisible graphs (either
groups, clusters or communities) within a network. Here, Q (modularity metric) = the number of edges within groups subtracted from
expected number of edges within group for a random graph with same node degree distribution as the given network. The Newman
Girvan algorithm [19] is used to calculate it. The value of modularity is between '-1' and '1’. The networks modularity increases as
this value increases.
Figure 3 illustrates the modular fuzzy net process. It is used for to assessing the fitness of the of individual architecture instances
(chromosomes).
Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64 61
Figure 3 The fuzzy modular nets used to evaluate an architecture’s quality according to key system attributes
First, we calculate the values of inputs that are required for each KPA (e.g., affordability, performance, and net-centricity). Crisp
values for the KPAs are then calculated using Type I fuzzy rules. These rules are based on the stakeholder’s views. For example, a
rule can be written that states the following: “If operations cost is high and the interfacing cost is high, then affordability is low”.
These fuzzy rules can be used to assign a crisp number to the affordability of the overall architecture. Each of the KPAs are then
modeled as interval type II fuzzy sets (IT2FS) so that a crisp value can be obtained for the architectures overall quality. IT2FSs have
been shown to be more capable of modeling uncertainties than are T1 FSs [20]. Each KPA with its inputs is referred to as a module.
Type I FSs are used in modules to reduce computational time. The rules of the fuzzy evaluator are adjustable to allow for
differences between the stakeholders’ views. This adjustability makes fuzzy net usable for a larger section of perspectives that share
the same domain problem. This approach can also be applied to model many other domains.
3.3.1. Range of Values of Key Performance Attributes for evaluating SoS capability C
KPAs of the SoS can be provided with different levels of linguistic granularization such as:
x Net Centricity: very insufficient, insufficient, sufficient, good, and brilliant
x Affordability: very costly, costly, medium, cheap, and very cheap
Gaussian membership functions are used to model KPA ranges derived from stakeholder concensus. The four fuzzy attributes
used to assess the overall architecture are defined as TooRisky, Mediocre, Acceptable, and Excellent. Again, Gaussian membership
functions were used for the linguistic terms “mediocre” and “acceptable”. A Z shaped spline function was used for “too risky”. A
spline-based S-shaped curve was used for “excellent”. Twenty-five rules were created to link these five objectives to four fuzzy
attributes. These statements help clarify stakeholders perspectives. Figure 4 represents the kiviat chart (visually displays a set of
metrics) for the fuzzy statements to illustrate the concept. Figure 4 explains architecture is too risky if it fails to meet more than 70%
of key performance parameters.
62 Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64
Figure 4 A Kiviat chart describing the SoS Architecture as too risky according to Architecture Attributes Assessment
This study generated two models: a binary genetic algorithm (GA) that was combined with a fuzzy modular net fitness evaluator
[21, 22] and a binary particle swarm optimization (BPSO) [23] that was combined with the same fitness evaluator. These models
were compared to one another in an attempt to generate better architectures. A fuzzy assessor to evaluate the fitness of individual
architectures as compared to other techniques is flexible and reduces the computational time.
The process of natural selection inspired the creation of GA. The GA employed here utilizes a roulette wheel-type of selection to
generate offspring’s and an elitist approach for forming the new population [24]. The parameters used are described in Table 2.
Each model was run for 100 generations and 50 times to obtain a better assessment of the stochastic techniques used. The model
with the highest architecture value in 50 iterations is presented here in each case. Increasing the generations to 300 did not affect the
maximum architecture quality. Hence, it was reasonable to keep the same architecture’s quality that was obtained in smaller
simulation time. The population size was kept as 50, probability of mutation is 0.2, size of dormant selection for next population is
kept as 2, and lastly the population fraction maintained at the end of each epoch was 0.5. The results presented in Figure 5 are
architecture values over 100 generations using the GA. The best value obtained is 6.48. The set of systems selected and the interfaces
is presented as circular graph in Figure 6. The systems not selected are marked as red asterisks. Systems selected are named in Table
1.
PSO was inspired by the social behavior of bird flocks and fish schools [25]. PSO algorithms start with a group of a randomly
generated population (particles in PSO). Population individuals are evaluated by a fitness function. Both update the population and
search based on the best value achieved. PSO does not have genetic operators (e.g., crossover and mutation). Particles update is
based on individual position, velocity and on the best position and velocity of the swarm leader. All the above procedures are valid
for PSO and BPSO. The major difference between BPSO with real-valued version is that velocities of the particles are defined in
terms of probabilities that a bit will change to one or zero. Usually a sigmoid function is used to map all real valued velocities to the
range of [0, 1]. The number of iterations was usually 100, population size was kept at 50, cognitive and social parameters were both
equal to 2, and constriction factor was 1. The maximum and minimum velocity was maintained between -4 and 4, and inertia weight
decreased linearly based on number of iterations. These are all standard parameters in PSO.
Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64 63
6.5 best
5.5
4.5
3.5
0 20 40 60 80 100
number of Generations
Figure 5 Maximum, minimum and mean SoS architectural value histories Figure 6 A circular undirected, graph of systems selected in the best SoS
obtained over 100 generations via BPSO architecture as obtained through BPSO
Table 1 Systems and the capabilities selected in the best architecture by the BPSO Table 2 Systems and the capabilities selected in the best architecture by GA
The best architecture obtained by GA is illustrated in Figure 7. A total number of 13 systems were selected. Each system and its
capabilities are listed for comparison in Table 2 and are plotted in Figure 8.
best
6 Sys4
Sys13
Sys3
5.5 Sys14
Sys2
Sys15
5 Sys1
Sys16
Sys29
4.5 Sys17
Sys28
Sys18
4 Sys27
Sys19
Sys26
Sys20
3.5 Sys25
Sys21
0 20 40 60 80 100 Sys22 Sys23 Sys24
number of Generations
Figure 7 Maximum, Minimum and Best SoS architecture value. Figure 8 An undirected graph of systems selected the best SoS
architecture obtained through GA.
64 Siddhartha Agarwal et al. / Procedia Computer Science 36 (2014) 57 – 64
An architectural search methodology was applied to a generic SAR problem, and a set of architectures each with a high fitness,
was obtained. The architectures generated via computational intelligence reduced both complexity and time. The architectures
generated were the best combinations possible for the given domain problem. The stochastic heuristic techniques can assist in the
systems architecting process by providing the systems architects with a set of feasible designs that can be developed into a near
optimal architecture. Although the best architecture obtained by the two techniques is slightly different for the same set of
constraints, it means many good architectures exist in the modeled design space. Both GA and BPSO try to model the fitness
function surface to reach the global maxima. The architecture value obtained by BPSO is higher than GA. This signifies the PSO was
better able to map the surface of the fitness function generated by the fuzzy rules.
Acknowledgements
This material is based upon work supported, in whole or in part, by the U.S. Department of Defense through the Systems
Engineering Research Center (SERC) under Contract H98230-08-D-0171. SERC is a federally funded University Affiliated Research
Center managed by Stevens Institute of Technology. Any opinions, findings, conclusions, or recommendations expressed in this
material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. Thanks to Ms.
Elizabeth Roberson for help in editing the paper.
References
[1] Luzeaux, D., System-of-Systems (and Large-Scale Complex Systems) Engineering, presentation at CSDM conference, 2013.
[2] Maier, M. W. (1998). Architecting principles for systems-of-systems. Systems Engineering, 1(4), 267-284.
[3] Ncube, C.; Soo Ling Lim; Dogan, H., "Identifying top challenges for international research on requirements engineering for systems of systems
engineering," Requirements Engineering Conference (RE), 2013 21st IEEE International , vol., no., pp.342,344, 15-19 July 2013.
[4] Dahmann, J. S., & Baldwin, K. J. (2008, April). Understanding the current state of US defense systems of systems and the implications for systems engineering.
In Systems Conference, 2008 2nd Annual IEEE (pp. 1-7). IEEE.
[5] Agarwal, S., Wang, R., & Dagli, C., Executable Architectures using Cuckoo Search Optimization coupled with OPM and CPN-A module: A new Meta-
Architecture Model for FILA-SoS, In Complex Systems Design & Management, 2014. Springer Berlin Heidelberg.
[6] Bergey, J. K., Blanchette Jr, S., Clements, P. C., Gagliardi, M. J., Klein, J., Wojcik, R., & Wood, W. (2009). US Army Workshop on Exploring Enterprise,
System of Systems, System, and Software Architectures.
[7] Dagli, C. H., SINGH, A., DAUBY, J. P., & WANG, R. (2009, December). Smart systems architecting: computational intelligence applied to trade space
exploration and system design. In Systems Research Forum (Vol. 3, No. 02, pp. 101-119). World Scientific Publishing Company.
[8] Wang, R., & Dagli, C. H. (2011). Executable system architecting using systems modeling language in conjunction with colored Petri nets in a modelǦdriven
systems development process. Systems Engineering, 14(4), 383-409.
[9] Louis Pape, Siddhartha Agarwal, Kristin Giammarco, Cihan Dagli, Fuzzy Optimization of Acknowledged System of Systems Meta-architectures for Agent
based Modeling of Development, Procedia Computer Science, Volume 28, 2014, Pages 404-411, ISSN 1877-0509.
[10] Singh, A. (2011). Architecture value mapping: using fuzzy cognitive maps as a reasoning mechanism for multi-criteria conceptual design evaluation.
[11] Siddhartha Agarwal, Lou E. Pape, Nil Kilicay-Ergin, Cihan H. Dagli, Multi-agent Based Architecture for Acknowledged System of Systems, Procedia Computer
Science, Volume 28, 2014, Pages 1-10, ISSN 1877-0509.
[12] Schutze, O., Lara, A., & Coello Coello, C. A. (2011). On the influence of the number of objectives on the hardness of a multiobjective optimization problem.
Evolutionary Computation, IEEE Transactions on, 15(4), 444-455.
[13] Chiong, R. (Ed.). (2009). Nature-inspired algorithms for optimization (Vol. 193). Springer.
[14] Fry, D. N., & DeLaurentis, D. A. (2011, June). Measuring net-centricity. InSystem of Systems Engineering (SoSE), 2011 6th International Conference on(pp.
264-269). IEEE.
[15] Hilliard, R., Kurland, M. J., & Litvintchouk, S. D. (1997, April). MITRE’s Architecture Quality Assessment. In 1997 MITRE Software Engineering and
Economics Conference (pp. 2-3).
[16] Jamakovic, A., & Uhlig, S. (2007, May). On the relationship between the algebraic connectivity and graph's robustness to node and link failures. In Next
Generation Internet Networks, 3rd EuroNGI Conference on (pp. 96-102). IEEE.
[17] Fiedler, M., Algebraic connectivity of graphs, Czechoslovak Mathematical Journal 23, pp. 298- 305, 1973
[18] Bounova, G., de Weck, O.L. "Overview of metrics and their correlation patterns for multiple-metric topology analysis on heterogeneous graph ensembles", Phys.
Rev. E 85, 016117 (2012).
[19] Newman, M. E. (2006). Modularity and community structure in networks. Proceedings of the National Academy of Sciences, 103(23), 8577-8582.
[20] D. Wu. (2013) A Brief Tutorial on Interval Type-2 Fuzzy Sets and Systems.
[21] Trebi-Ollennu, A.; White, B.A., "Multiobjective fuzzy genetic algorithm optimization approach to nonlinear control system design," Control Theory and
Applications, IEE Proceedings - , vol.144, no.2, pp.137,142, Mar 1997.
[22] Huang, J., & Xie, W. (1998). Genetic algorithm with fuzzy fitness evaluation. Journal of Electronics (China), 15(3), 254-258.
[23] Kennedy, J.; Eberhart, R.C., "A discrete binary version of the particle swarm algorithm," Systems, Man, and Cybernetics, 1997. Computational Cybernetics and
Simulation., 1997 IEEE International Conference on , vol.5, no., pp.4104,4108 vol.5, 12-15 Oct 1997
[24] A. Konak, D. W. Coit, A. E. Smith, “Multi-objective optimization using genetic algorithms: A tutorial”, Reliability Engineering & System Safety Volume 91,
Issue 9, Special Issue - Genetic Algorithms and Reliability, September 2006, Pages 992-1007.
[25] Coello, C. A. C. (1999). An updated survey of evolutionary multiobjective optimization techniques: State of the art and future trends. In Evolutionary
Computation, 1999. CEC 99. Proceedings of the 1999 Congress on (Vol. 1). IEEE.