100% found this document useful (3 votes)
42 views

Genetic Algorithms and Genetic Programming Modern Concepts and Practical Applications 1st Edition Michael Affenzeller 2024 scribd download

Applications

Uploaded by

turquisaridi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
42 views

Genetic Algorithms and Genetic Programming Modern Concepts and Practical Applications 1st Edition Michael Affenzeller 2024 scribd download

Applications

Uploaded by

turquisaridi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 81

Visit https://ebookgate.

com to download the full version and


explore more ebooks

Genetic Algorithms and Genetic Programming Modern


Concepts and Practical Applications 1st Edition
Michael Affenzeller

_____ Click the link below to download _____


https://ebookgate.com/product/genetic-algorithms-and-
genetic-programming-modern-concepts-and-practical-
applications-1st-edition-michael-affenzeller/

Explore and download more ebooks at ebookgate.com


Here are some recommended products that might interest you.
You can download now and explore!

Genetic Algorithms in Electromagnetics 1st Edition Randy


L. Haupt

https://ebookgate.com/product/genetic-algorithms-in-
electromagnetics-1st-edition-randy-l-haupt/

ebookgate.com

Genetic Counseling Practice Advanced Concepts and Skills


Second Edition Bonnie S. Leroy

https://ebookgate.com/product/genetic-counseling-practice-advanced-
concepts-and-skills-second-edition-bonnie-s-leroy/

ebookgate.com

Genetic counseling practice advanced concepts and skills


Second Edition Patricia Mccarthy Veach (Editor)

https://ebookgate.com/product/genetic-counseling-practice-advanced-
concepts-and-skills-second-edition-patricia-mccarthy-veach-editor/

ebookgate.com

Mobile Genetic Elements Protocols and Genomic Applications


1st Edition Wolfgang J. Miller

https://ebookgate.com/product/mobile-genetic-elements-protocols-and-
genomic-applications-1st-edition-wolfgang-j-miller/

ebookgate.com
Restoring Wildlife Ecological Concepts and Practical
Applications 1st Edition Michael L. Morrison

https://ebookgate.com/product/restoring-wildlife-ecological-concepts-
and-practical-applications-1st-edition-michael-l-morrison/

ebookgate.com

Crop Physiology Applications for Genetic Improvement and


Agronomy 1st Edition Victor O. Sadras

https://ebookgate.com/product/crop-physiology-applications-for-
genetic-improvement-and-agronomy-1st-edition-victor-o-sadras/

ebookgate.com

Basics of Programming and Algorithms Principles and


Applications 2024th Edition Roberto Mantaci

https://ebookgate.com/product/basics-of-programming-and-algorithms-
principles-and-applications-2024th-edition-roberto-mantaci/

ebookgate.com

Genetic Ancestry 1st Edition Jada Benn Torres

https://ebookgate.com/product/genetic-ancestry-1st-edition-jada-benn-
torres/

ebookgate.com

Symmetrical Analysis Techniques for Genetic Systems and


Bioinformatics Advanced Patterns and Applications Premier
Reference Source 1st Edition Sergey Petoukhov
https://ebookgate.com/product/symmetrical-analysis-techniques-for-
genetic-systems-and-bioinformatics-advanced-patterns-and-applications-
premier-reference-source-1st-edition-sergey-petoukhov/
ebookgate.com
Genetic
Algorithms and
Genetic
Programming
Modern Concepts and
Practical Applications

© 2009 by Taylor & Francis Group, LLC


Numerical Insights
Series Editor
A. Sydow, GMD-FIRST, Berlin, Germany

Editorial Board
P. Borne, École de Lille, France; G. Carmichael, University of Iowa, USA;
L. Dekker, Delft University of Technology, The Netherlands; A. Iserles, University of
Cambridge, UK; A. Jakeman, Australian National University, Australia;
G. Korn, Industrial Consultants (Tucson), USA; G.P. Rao, Indian Institute of Technology,
India; J.R. Rice, Purdue University, USA; A.A. Samarskii, Russian Academy of Science,
Russia; Y. Takahara, Tokyo Institute of Technology, Japan

The Numerical Insights series aims to show how numerical simulations provide valuable insights
into the mechanisms and processes involved in a wide range of disciplines. Such simulations
provide a way of assessing theories by comparing simulations with observations. These models are
also powerful tools which serve to indicate where both theory and experiment can be improved.
In most cases the books will be accompanied by software on disk demonstrating working
examples of the simulations described in the text.
The editors will welcome proposals using modelling, simulation and systems analysis
techniques in the following disciplines: physical sciences; engineering; environment; ecology;
biosciences; economics.

Volume 1
Numerical Insights into Dynamic Systems: Interactive Dynamic System Simulation with
Microsoft® Windows™ and NT™
Granino A. Korn

Volume 2
Modelling, Simulation and Control of Non-Linear Dynamical Systems: An Intelligent Approach
using Soft Computing and Fractal Theory
Patricia Melin and Oscar Castillo

Volume 3
Principles of Mathematical Modeling: Ideas, Methods, Examples
A.A. Samarskii and A. P. Mikhailov

Volume 4
Practical Fourier Analysis for Multigrid Methods
Roman Wienands and Wolfgang Joppich

Volume 5
Effective Computational Methods for Wave Propagation
Nikolaos A. Kampanis, Vassilios A. Dougalis, and John A. Ekaterinaris

Volume 6
Genetic Algorithms and Genetic Programming: Modern Concepts and Practical Applications
Michael Affenzeller, Stephan Winkler, Stefan Wagner, and Andreas Beham
© 2009 by Taylor & Francis Group, LLC
Genetic
Algorithms and
Genetic
Programming
Modern Concepts and
Practical Applications

Michael Affenzeller, Stephan Winkler,


Stefan Wagner, and Andreas Beham

© 2009 by Taylor & Francis Group, LLC


Chapman & Hall/CRC
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487‑2742
© 2009 by Taylor & Francis Group, LLC
Chapman & Hall/CRC is an imprint of Taylor & Francis Group, an Informa business

No claim to original U.S. Government works


Printed in the United States of America on acid‑free paper
10 9 8 7 6 5 4 3 2 1

International Standard Book Number‑13: 978‑1‑58488‑629‑7 (Hardcover)

This book contains information obtained from authentic and highly regarded sources. Reasonable
efforts have been made to publish reliable data and information, but the author and publisher can‑
not assume responsibility for the validity of all materials or the consequences of their use. The
authors and publishers have attempted to trace the copyright holders of all material reproduced
in this publication and apologize to copyright holders if permission to publish in this form has not
been obtained. If any copyright material has not been acknowledged please write and let us know so
we may rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced,
transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or
hereafter invented, including photocopying, microfilming, and recording, or in any information
storage or retrieval system, without written permission from the publishers.

For permission to photocopy or use material electronically from this work, please access www.copy‑
right.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222
Rosewood Drive, Danvers, MA 01923, 978‑750‑8400. CCC is a not‑for‑profit organization that pro‑
vides licenses and registration for a variety of users. For organizations that have been granted a
photocopy license by the CCC, a separate system of payment has been arranged.

Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and
are used only for identification and explanation without intent to infringe.

Library of Congress Cataloging‑in‑Publication Data

Genetic algorithms and genetic programming : modern concepts and practical


applications / Michael Affenzeller ... [et al.].
p. cm. ‑‑ (Numerical insights ; v. 6)
Includes bibliographical references and index.
ISBN 978‑1‑58488‑629‑7 (hardcover : alk. paper)
1. Algorithms. 2. Combinatorial optimization. 3. Programming (Mathematics)
4. Evolutionary computation. I. Affenzeller, Michael. II. Title. III. Series.

QA9.58.G46 2009
006.3’1‑‑dc22 2009003656

Visit the Taylor & Francis Web site at


http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com

© 2009 by Taylor & Francis Group, LLC


Contents

List of Tables xi

List of Figures xv

List of Algorithms xxiii

Introduction xxv

1 Simulating Evolution: Basics about Genetic Algorithms 1


1.1 The Evolution of Evolutionary Computation . . . . . . . . . 1
1.2 The Basics of Genetic Algorithms . . . . . . . . . . . . . . . 2
1.3 Biological Terminology . . . . . . . . . . . . . . . . . . . . . 3
1.4 Genetic Operators . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.1 Models for Parent Selection . . . . . . . . . . . . . . . 6
1.4.2 Recombination (Crossover) . . . . . . . . . . . . . . . 7
1.4.3 Mutation . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4.4 Replacement Schemes . . . . . . . . . . . . . . . . . . 9
1.5 Problem Representation . . . . . . . . . . . . . . . . . . . . . 10
1.5.1 Binary Representation . . . . . . . . . . . . . . . . . . 11
1.5.2 Adjacency Representation . . . . . . . . . . . . . . . . 12
1.5.3 Path Representation . . . . . . . . . . . . . . . . . . . 13
1.5.4 Other Representations for Combinatorial Optimization
Problems . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5.5 Problem Representations for Real-Valued Encoding . . 14
1.6 GA Theory: Schemata and Building Blocks . . . . . . . . . . 14
1.7 Parallel Genetic Algorithms . . . . . . . . . . . . . . . . . . . 17
1.7.1 Global Parallelization . . . . . . . . . . . . . . . . . . 18
1.7.2 Coarse-Grained Parallel GAs . . . . . . . . . . . . . . 19
1.7.3 Fine-Grained Parallel GAs . . . . . . . . . . . . . . . 20
1.7.4 Migration . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8 The Interplay of Genetic Operators . . . . . . . . . . . . . . 22
1.9 Bibliographic Remarks . . . . . . . . . . . . . . . . . . . . . 23

2 Evolving Programs: Genetic Programming 25


2.1 Introduction: Main Ideas and Historical Background . . . . . 26
2.2 Chromosome Representation . . . . . . . . . . . . . . . . . . 28
2.2.1 Hierarchical Labeled Structure Trees . . . . . . . . . . 28

v
© 2009 by Taylor & Francis Group, LLC
vi Genetic Algorithms and Genetic Programming

2.2.2 Automatically Defined Functions and Modular Genetic


Programming . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.3 Other Representations . . . . . . . . . . . . . . . . . . 36
2.3 Basic Steps of the GP-Based Problem Solving Process . . . . 37
2.3.1 Preparatory Steps . . . . . . . . . . . . . . . . . . . . 37
2.3.2 Initialization . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.3 Breeding Populations of Programs . . . . . . . . . . . 39
2.3.4 Process Termination and Results Designation . . . . . 41
2.4 Typical Applications of Genetic Programming . . . . . . . . 43
2.4.1 Automated Learning of Multiplexer Functions . . . . . 43
2.4.2 The Artificial Ant . . . . . . . . . . . . . . . . . . . . 44
2.4.3 Symbolic Regression . . . . . . . . . . . . . . . . . . . 46
2.4.4 Other GP Applications . . . . . . . . . . . . . . . . . 49
2.5 GP Schema Theories . . . . . . . . . . . . . . . . . . . . . . 50
2.5.1 Program Component GP Schemata . . . . . . . . . . . 51
2.5.2 Rooted Tree GP Schema Theories . . . . . . . . . . . 52
2.5.3 Exact GP Schema Theory . . . . . . . . . . . . . . . . 54
2.5.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.6 Current GP Challenges and Research Areas . . . . . . . . . 59
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.8 Bibliographic Remarks . . . . . . . . . . . . . . . . . . . . . 62

3 Problems and Success Factors 65


3.1 What Makes GAs and GP Unique among Intelligent
Optimization Methods? . . . . . . . . . . . . . . . . . . . . . 65
3.2 Stagnation and Premature Convergence . . . . . . . . . . . . 66

4 Preservation of Relevant Building Blocks 69


4.1 What Can Extended Selection Concepts Do to Avoid
Premature Convergence? . . . . . . . . . . . . . . . . . . . . 69
4.2 Offspring Selection (OS) . . . . . . . . . . . . . . . . . . . . 70
4.3 The Relevant Alleles Preserving Genetic Algorithm (RAPGA) 73
4.4 Consequences Arising out of Offspring Selection and RAPGA 76

5 SASEGASA – More than the Sum of All Parts 79


5.1 The Interplay of Distributed Search and Systematic Recovery
of Essential Genetic Information . . . . . . . . . . . . . . . . 80
5.2 Migration Revisited . . . . . . . . . . . . . . . . . . . . . . . 81
5.3 SASEGASA: A Novel and Self-Adaptive Parallel Genetic
Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.1 The Core Algorithm . . . . . . . . . . . . . . . . . . . 83
5.4 Interactions among Genetic Drift, Migration, and Self-Adaptive
Selection Pressure . . . . . . . . . . . . . . . . . . . . . . . . 86

© 2009 by Taylor & Francis Group, LLC


Table of Contents vii

6 Analysis of Population Dynamics 89


6.1 Parent Analysis . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2 Genetic Diversity . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.1 In Single-Population GAs . . . . . . . . . . . . . . . . 90
6.2.2 In Multi-Population GAs . . . . . . . . . . . . . . . . 91
6.2.3 Application Examples . . . . . . . . . . . . . . . . . . 92

7 Characteristics of Offspring Selection and the RAPGA 97


7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.2 Building Block Analysis for Standard GAs . . . . . . . . . . 98
7.3 Building Block Analysis for GAs Using Offspring Selection . 103
7.4 Building Block Analysis for the Relevant Alleles Preserving GA
(RAPGA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

8 Combinatorial Optimization: Route Planning 121


8.1 The Traveling Salesman Problem . . . . . . . . . . . . . . . . 121
8.1.1 Problem Statement and Solution Methodology . . . . 122
8.1.2 Review of Approximation Algorithms and Heuristics . 125
8.1.3 Multiple Traveling Salesman Problems . . . . . . . . . 130
8.1.4 Genetic Algorithm Approaches . . . . . . . . . . . . . 130
8.2 The Capacitated Vehicle Routing Problem . . . . . . . . . . 139
8.2.1 Problem Statement and Solution Methodology . . . . 140
8.2.2 Genetic Algorithm Approaches . . . . . . . . . . . . . 147

9 Evolutionary System Identification 157


9.1 Data-Based Modeling and System Identification . . . . . . . 157
9.1.1 Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.1.2 An Example . . . . . . . . . . . . . . . . . . . . . . . 159
9.1.3 The Basic Steps in System Identification . . . . . . . . 166
9.1.4 Data-Based Modeling Using Genetic Programming . . 169
9.2 GP-Based System Identification in HeuristicLab . . . . . . . 170
9.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 170
9.2.2 Problem Representation . . . . . . . . . . . . . . . . . 171
9.2.3 The Functions and Terminals Basis . . . . . . . . . . . 173
9.2.4 Solution Representation . . . . . . . . . . . . . . . . . 178
9.2.5 Solution Evaluation . . . . . . . . . . . . . . . . . . . 182
9.3 Local Adaption Embedded in Global Optimization . . . . . . 188
9.3.1 Parameter Optimization . . . . . . . . . . . . . . . . . 189
9.3.2 Pruning . . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.4 Similarity Measures for Solution Candidates . . . . . . . . . 197
9.4.1 Evaluation-Based Similarity Measures . . . . . . . . . 199
9.4.2 Structural Similarity Measures . . . . . . . . . . . . . 201

© 2009 by Taylor & Francis Group, LLC


viii Genetic Algorithms and Genetic Programming

10 Applications of Genetic Algorithms: Combinatorial


Optimization 207
10.1 The Traveling Salesman Problem . . . . . . . . . . . . . . . . 208
10.1.1 Performance Increase of Results of Different Crossover
Operators by Means of Offspring Selection . . . . . . . 208
10.1.2 Scalability of Global Solution Quality by SASEGASA 210
10.1.3 Comparison of the SASEGASA to the Island-Model
Coarse-Grained Parallel GA . . . . . . . . . . . . . . . 214
10.1.4 Genetic Diversity Analysis for the Different GA Types 217
10.2 Capacitated Vehicle Routing . . . . . . . . . . . . . . . . . . 221
10.2.1 Results Achieved Using Standard Genetic Algorithms 222
10.2.2 Results Achieved Using Genetic Algorithms with
Offspring Selection . . . . . . . . . . . . . . . . . . . . 226

11 Data-Based Modeling with Genetic Programming 235


11.1 Time Series Analysis . . . . . . . . . . . . . . . . . . . . . . 235
11.1.1 Time Series Specific Evaluation . . . . . . . . . . . . . 236
11.1.2 Application Example: Design of Virtual Sensors for
Emissions of Diesel Engines . . . . . . . . . . . . . . . 237
11.2 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 251
11.2.2 Real-Valued Classification with Genetic Programming 251
11.2.3 Analyzing Classifiers . . . . . . . . . . . . . . . . . . . 252
11.2.4 Classification Specific Evaluation in GP . . . . . . . . 258
11.2.5 Application Example: Medical Data Analysis . . . . . 263
11.3 Genetic Propagation . . . . . . . . . . . . . . . . . . . . . . . 285
11.3.1 Test Setup . . . . . . . . . . . . . . . . . . . . . . . . 285
11.3.2 Test Results . . . . . . . . . . . . . . . . . . . . . . . . 286
11.3.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . 288
11.3.4 Additional Tests Using Random Parent Selection . . . 289
11.4 Single Population Diversity Analysis . . . . . . . . . . . . . . 292
11.4.1 GP Test Strategies . . . . . . . . . . . . . . . . . . . . 292
11.4.2 Test Results . . . . . . . . . . . . . . . . . . . . . . . . 293
11.4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 297
11.5 Multi-Population Diversity Analysis . . . . . . . . . . . . . . 300
11.5.1 GP Test Strategies . . . . . . . . . . . . . . . . . . . . 300
11.5.2 Test Results . . . . . . . . . . . . . . . . . . . . . . . . 301
11.5.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 303
11.6 Code Bloat, Pruning, and Population Diversity . . . . . . . . 306
11.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 306
11.6.2 Test Strategies . . . . . . . . . . . . . . . . . . . . . . 307
11.6.3 Test Results . . . . . . . . . . . . . . . . . . . . . . . . 309
11.6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 318

Conclusion and Outlook 321

© 2009 by Taylor & Francis Group, LLC


Table of Contents ix

Symbols and Abbreviations 325

References 327

© 2009 by Taylor & Francis Group, LLC


List of Tables

7.1 Parameters for test runs using a conventional GA. . . . . . 99


7.2 Parameters for test runs using a GA with offspring selection. 104
7.3 Parameters for test runs using the relevant alleles preserving
genetic algorithm. . . . . . . . . . . . . . . . . . . . . . . . . 113

8.1 Exemplary edge map of the parent tours for an ERX operator. 138

9.1 Data-based modeling example: Training data. . . . . . . . . 160


9.2 Data-based modeling example: Test data. . . . . . . . . . . 164

10.1 Overview of algorithm parameters. . . . . . . . . . . . . . . 209


10.2 Experimental results achieved using a standard GA. . . . . 209
10.3 Experimental results achieved using a GA with offspring se-
lection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
10.4 Parameter values used in the test runs of the SASEGASA
algorithms with single crossover operators as well as with a
combination of the operators. . . . . . . . . . . . . . . . . . 211
10.5 Results showing the scaling properties of SASEGASA with
one crossover operator (OX), with and without mutation. . 211
10.6 Results showing the scaling properties of SASEGASA with
one crossover operator (ERX), with and without mutation. 212
10.7 Results showing the scaling properties of SASEGASA with
one crossover operator (MPX), with and without mutation. 212
10.8 Results showing the scaling properties of SASEGASA with a
combination of crossover operators (OX, ERX, MPX), with
and without mutation. . . . . . . . . . . . . . . . . . . . . . 213
10.9 Parameter values used in the test runs of a island model GA
with various operators and various numbers of demes. . . . 215
10.10 Results showing the scaling properties of an island GA with
one crossover operator (OX) using roulette-wheel selection,
with and without mutation. . . . . . . . . . . . . . . . . . . 215
10.11 Results showing the scaling properties of an island GA with
one crossover operator (ERX) using roulette-wheel selection,
with and without mutation. . . . . . . . . . . . . . . . . . . 216
10.12 Results showing the scaling properties of an island GA with
one crossover operator (MPX) using roulette-wheel selection,
with and without mutation. . . . . . . . . . . . . . . . . . . 216

xi
© 2009 by Taylor & Francis Group, LLC
xii Genetic Algorithms and Genetic Programming

10.13 Parameter values used in the CVRP test runs applying a stan-
dard GA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.14 Results of a GA using roulette-wheel selection, 3-tournament
selection and various mutation operators. . . . . . . . . . . 226
10.15 Parameter values used in CVRP test runs applying a GA with
OS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.16 Results of a GA with offspring selection and population sizes
of 200 and 400 and various mutation operators. The configu-
ration is listed in Table 10.15. . . . . . . . . . . . . . . . . . 232
10.17 Showing results of a GA with offspring and a population size
of 500 and various mutation operators. The configuration is
listed in Table 10.15. . . . . . . . . . . . . . . . . . . . . . . 234

11.1 Linear correlation of input variables and the target values


(NOx ) in the N Ox data set I. . . . . . . . . . . . . . . . . . 240
11.2 Mean squared errors on training data for the N Ox data set I. 241
11.3 Statistic features of the identification relevant variables in the
N Ox data set II. . . . . . . . . . . . . . . . . . . . . . . . . 246
11.4 Linear correlation coefficients of the variables relevant in the
N Ox data set II. . . . . . . . . . . . . . . . . . . . . . . . . 248
11.5 Statistic features of the variables in the N Ox data set III. . 250
11.6 Linear correlation coefficients of the variables relevant in the
N Ox data set III. . . . . . . . . . . . . . . . . . . . . . . . . 250
11.7 Exemplary confusion matrix with three classes . . . . . . . 253
11.8 Exemplary confusion matrix with two classes . . . . . . . . 254
11.9 Set of function and terminal definitions for enhanced GP-
based classification. . . . . . . . . . . . . . . . . . . . . . . . 264
11.10 Experimental results for the Thyroid data set. . . . . . . . . 270
11.11 Summary of the best GP parameter settings for solving clas-
sification problems. . . . . . . . . . . . . . . . . . . . . . . . 271
11.12 Summary of training and test results for the Wisconsin data
set: Correct classification rates (average values and standard
deviation values) for 10-fold CV partitions, produced by GP
with offspring selection. . . . . . . . . . . . . . . . . . . . . 279
11.13 Comparison of machine learning methods: Average test ac-
curacy of classifiers for the Wisconsin data set. . . . . . . . 280
11.14 Confusion matrices for average classification results produced
by GP with OS for the Melanoma data set. . . . . . . . . . 280
11.15 Comparison of machine learning methods: Average test ac-
curacy of classifiers for the Melanoma data set. . . . . . . . 281
11.16 Summary of training and test results for the Thyroid data
set: Correct classification rates (average values and standard
deviation values) for 10-fold CV partitions, produced by GP
with offspring selection. . . . . . . . . . . . . . . . . . . . . 282

© 2009 by Taylor & Francis Group, LLC


List of Tables xiii

11.17 Comparison of machine learning methods: Average test ac-


curacy of classifiers for the Thyroid data set. . . . . . . . . 283
11.18 GP test strategies. . . . . . . . . . . . . . . . . . . . . . . . 285
11.19 Test results. . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
11.20 Average overall genetic propagation of population partitions. 287
11.21 Additional test strategies for genetic propagation tests. . . . 289
11.22 Test results in additional genetic propagation tests (using ran-
dom parent selection). . . . . . . . . . . . . . . . . . . . . . 290
11.23 Average overall genetic propagation of population partitions
for random parent selection tests. . . . . . . . . . . . . . . . 290
11.24 GP test strategies. . . . . . . . . . . . . . . . . . . . . . . . 293
11.25 Test results: Solution qualities. . . . . . . . . . . . . . . . . 294
11.26 Test results: Population diversity (average similarity values;
avg., std.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
11.27 Test results: Population diversity (maximum similarity val-
ues; avg., std.). . . . . . . . . . . . . . . . . . . . . . . . . . 296
11.28 GP test strategies. . . . . . . . . . . . . . . . . . . . . . . . 302
11.29 Multi-population diversity test results of the GP test runs
using the Thyroid data set. . . . . . . . . . . . . . . . . . . 303
11.30 Multi-population diversity test results of the GP test runs
using the N Ox data set III. . . . . . . . . . . . . . . . . . . 304
11.31 GP parameters used for code growth and bloat prevention
tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
11.32 Summary of the code growth prevention strategies applied in
these test series. . . . . . . . . . . . . . . . . . . . . . . . . . 308
11.33 Performance of systematic and ES-based pruning strategies. 310
11.34 Formula size progress in test series (d). . . . . . . . . . . . . 311
11.35 Quality of results produced in test series (d). . . . . . . . . 311
11.36 Formula size and population diversity progress in test series
(e). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
11.37 Formula size and population diversity progress in test series
(f). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
11.38 Quality of results produced in test series (f). . . . . . . . . . 313
11.39 Formula size and population diversity progress in test series
(g). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
11.40 Quality of results produced in test series (g). . . . . . . . . 314
11.41 Formula size and population diversity progress in test series
(h). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
11.42 Quality of results produced in test series (h). . . . . . . . . 316
11.43 Comparison of best models on training and validation data
(bt and bv , respectively). . . . . . . . . . . . . . . . . . . . . 317
11.44 Formula size and population diversity progress in test series
(i). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.45 Quality of results produced in test series (i). . . . . . . . . . 320

© 2009 by Taylor & Francis Group, LLC


List of Figures

1.1 The canonical genetic algorithm with binary solution encod-


ing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Schematic display of a single point crossover. . . . . . . . . 8
1.3 Global parallelization concepts: A panmictic population struc-
ture (shown in left picture) and the corresponding master–
slave model (right picture). . . . . . . . . . . . . . . . . . . 18
1.4 Population structure of a coarse-grained parallel GA. . . . . 19
1.5 Population structure of a fine-grained parallel GA; the special
case of a cellular model is shown here. . . . . . . . . . . . . 20

2.1 Exemplary programs given as rooted, labeled structure trees. 30


2.2 Exemplary evaluation of program (a). . . . . . . . . . . . . 31
2.3 Exemplary evaluation of program (b). . . . . . . . . . . . . 32
2.4 Exemplary crossover of programs (1) and (2) labeled as par-
ent1 and parent2, respectively. Child1 and child2 are possible
new offspring programs formed out of the genetic material of
their parents. . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.5 Exemplary mutation of a program: The programs mutant1,
mutant2, and mutant3 are possible mutants of parent. . . . 35
2.6 Intron-augmented representation of an exemplary program in
PDGP [Pol99b]. . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.7 Major preparatory steps of the basic GP process. . . . . . . 38
2.8 The genetic programming cycle [LP02]. . . . . . . . . . . . . 40
2.9 The GP-based problem solving process. . . . . . . . . . . . 41
2.10 GA and GP flowcharts: The conventional genetic algorithm
and genetic programming. . . . . . . . . . . . . . . . . . . . 42
2.11 The Boolean multiplexer with three address bits; (a) general
black box model, (b) addressing data bit d5 . . . . . . . . . . 44
2.12 A correct solution to the 3-address Boolean multiplexer prob-
lem [Koz92b]. . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.13 The Santa Fe trail. . . . . . . . . . . . . . . . . . . . . . . . 45
2.14 A Santa Fe trail solution. The black points represent nodes
referencing to the Prog3 function. . . . . . . . . . . . . . . . 46
2.15 A symbolic regression example. . . . . . . . . . . . . . . . . 48
2.16 Exemplary formulas. . . . . . . . . . . . . . . . . . . . . . . 49
2.17 Programs matching Koza’s schema H=[(+ x 3), y]. . . . . . 51

xv
© 2009 by Taylor & Francis Group, LLC
xvi Genetic Algorithms and Genetic Programming

2.18 The rooted tree GP schema ∗(=, = (x, =)) and three exem-
plary programs of the schema’s semantics. . . . . . . . . . . 53
2.19 The GP schema H = +(*(=,x),=) and exemplary u and l
schemata. Cross bars indicate crossover points; shaded re-
gions show the parts of H that are replaced by “don’t care”
symbols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.20 The GP hyperschema ∗(#, = (x, =)) and three exemplary
programs that are a part of the schema’s semantics. . . . . 56
2.21 The GP schema H = +(∗(=, x), =) and exemplary U and L
hyperschema building blocks. Cross bars indicate crossover
points; shaded regions show the parts of H that are modified. 57
2.22 Relation between approximate and exact schema theorems for
different representations and different forms of crossover (in
the absence of mutation). . . . . . . . . . . . . . . . . . . . 58
2.23 Examples for bloat. . . . . . . . . . . . . . . . . . . . . . . . 60

4.1 Flowchart of the embedding of offspring selection into a ge-


netic algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Graphical representation of the gene pool available at a cer-
tain generation. Each bar represents a chromosome with its
alleles representing the assignment of the genes at the certain
loci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3 The left part of the figure represents the gene pool at gener-
ation i and the right part indicates the possible size of gen-
eration i + 1 which must not go below a minimum size and
also not exceed an upper limit. These parameters have to be
defined by the user. . . . . . . . . . . . . . . . . . . . . . . . 74
4.4 Typical development of actual population size between the
two borders (lower and upper limit of population size) dis-
playing also the identical chromosomes that occur especially
in the last iterations. . . . . . . . . . . . . . . . . . . . . . . 76

5.1 Flowchart of the reunification of subpopulations of a SASEGASA


(light shaded subpopulations are still evolving, whereas dark
shaded ones have already converged prematurely). . . . . . 84
5.2 Quality progress of a typical run of the SASEGASA algo-
rithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.3 Selection pressure curves for a typical run of the SASEGASA
algorithm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.4 Flowchart showing the main steps of the SASEGASA. . . . 87

6.1 Similarity of solutions in the population of a standard GA


after 20 and 200 iterations, shown in the left and the right
charts, respectively. . . . . . . . . . . . . . . . . . . . . . . . 93

© 2009 by Taylor & Francis Group, LLC


List of Figures xvii

6.2 Histograms of the similarities of solutions in the population


of a standard GA after 20 and 200 iterations, shown in the
left and the right charts, respectively. . . . . . . . . . . . . . 94
6.3 Average similarities of solutions in the population of a stan-
dard GA over for the first 2,000 and 10,000 iterations, shown
in the upper and lower charts, respectively. . . . . . . . . . 95
6.4 Multi-population specific similarities of the solutions of a par-
allel GA’s populations after 5,000 generations. . . . . . . . . 96
6.5 Progress of the average multi-population specific similarity
values of a parallel GA’s solutions, shown for 10,000 genera-
tions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

7.1 Quality progress for a standard GA with OX crossover for


mutation rates of 0%, 5%, and 10%. . . . . . . . . . . . . . 99
7.2 Quality progress for a standard GA with ERX crossover for
mutation rates of 0%, 5%, and 10%. . . . . . . . . . . . . . 101
7.3 Quality progress for a standard GA with MPX crossover for
mutation rates of 0%, 5%, and 10%. . . . . . . . . . . . . . 102
7.4 Distribution of the alleles of the global optimal solution over
the run of a standard GA using OX crossover and a mutation
rate of 5% (remaining parameters are set according to Table
7.1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.5 Quality progress for a GA with offspring selection, OX, and
a mutation rate of 5%. . . . . . . . . . . . . . . . . . . . . . 105
7.6 Quality progress for a GA with offspring selection, MPX, and
a mutation rate of 5%. . . . . . . . . . . . . . . . . . . . . . 106
7.7 Quality progress for a GA with offspring selection, ERX, and
a mutation rate of 5%. . . . . . . . . . . . . . . . . . . . . . 107
7.8 Quality progress for a GA with offspring selection, ERX, and
no mutation. . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.9 Quality progress for a GA with offspring selection using a
combination of OX, ERX, and MPX, and a mutation rate of
5%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
7.10 Success progress of the different crossover operators OX, ERX,
and MPX, and a mutation rate of 5%. The plotted graphs
represent the ratio of successfully produced children to the
population size over the generations. . . . . . . . . . . . . . 110
7.11 Distribution of the alleles of the global optimal solution over
the run of an offspring selection GA using ERX crossover
and a mutation rate of 5% (remaining parameters are set
according to Table 7.2). . . . . . . . . . . . . . . . . . . . . 111
7.12 Distribution of the alleles of the global optimal solution over
the run of an offspring selection GA using ERX crossover and
no mutation (remaining parameters are set according to Table
7.2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

© 2009 by Taylor & Francis Group, LLC


xviii Genetic Algorithms and Genetic Programming

7.13 Quality progress for a relevant alleles preserving GA with OX


and a mutation rate of 5%. . . . . . . . . . . . . . . . . . . 114
7.14 Quality progress for a relevant alleles preserving GA with
MPX and a mutation rate of 5%. . . . . . . . . . . . . . . . 115
7.15 Quality progress for a relevant alleles preserving GA with
ERX and a mutation rate of 5%. . . . . . . . . . . . . . . . 115
7.16 Quality progress for a relevant alleles preserving GA using a
combination of OX, ERX, and MPX, and a mutation rate of
5%. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.17 Quality progress for a relevant alleles preserving GA using a
combination of OX, ERX, and MPX, and mutation switched
off. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.18 Distribution of the alleles of the global optimal solution over
the run of a relevant alleles preserving GA using a combi-
nation of OX, ERX, and MPX, and a mutation rate of 5%
(remaining parameters are set according to Table 7.3). . . . 118
7.19 Distribution of the alleles of the global optimal solution over
the run of a relevant alleles preserving GA using a combina-
tion of OX, ERX, and MPX without mutation (remaining are
set parameters according to Table 7.3). . . . . . . . . . . . . 119

8.1 Exemplary nearest neighbor solution for a 51-city TSP in-


stance ([CE69]). . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.2 Example of a 2-change for a TSP instance with 7 cities. . . 128
8.3 Example of a 3-change for a TSP instance with 11 cities. . . 129
8.4 Example for a partially matched crossover. . . . . . . . . . . 134
8.5 Example for an order crossover. . . . . . . . . . . . . . . . . 135
8.6 Example for a cyclic crossover. . . . . . . . . . . . . . . . . 136
8.7 Exemplary result of the sweep heuristic for a small CVRP. . 144
8.8 Exemplary sequence-based crossover. . . . . . . . . . . . . . 149
8.9 Exemplary route-based crossover. . . . . . . . . . . . . . . . 151
8.10 Exemplary relocate mutation. . . . . . . . . . . . . . . . . . 152
8.11 Exemplary exchange mutation. . . . . . . . . . . . . . . . . 152
8.12 Example for a 2-opt mutation for the VRP. . . . . . . . . . 153
8.13 Example for a 2-opt∗ mutation for the VRP. . . . . . . . . . 153
8.14 Example for an or-opt mutation for the VRP. . . . . . . . . 154

9.1 Data-based modeling example: Training data. . . . . . . . . 160


9.2 Data-based modeling example: Evaluation of an optimally fit
linear model. . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.3 Data-based modeling example: Evaluation of an optimally fit
cubic model. . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.4 Data-based modeling example: Evaluation of an optimally fit
polynomial model (n = 10). . . . . . . . . . . . . . . . . . . 162

© 2009 by Taylor & Francis Group, LLC


List of Figures xix

9.5 Data-based modeling example: Evaluation of an optimally fit


polynomial model (n = 20). . . . . . . . . . . . . . . . . . . 163
9.6 Data-based modeling example: Evaluation of an optimally fit
linear model (evaluated on training and test data). . . . . . 163
9.7 Data-based modeling example: Evaluation of an optimally fit
cubic model (evaluated on training and test data). . . . . . 164
9.8 Data-based modeling example: Evaluation of an optimally fit
polynomial model (n = 10) (evaluated on training and test
data). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
9.9 Data-based modeling example: Summary of training and test
errors for varying numbers of parameters n. . . . . . . . . . 165
9.10 The basic steps of system identification. . . . . . . . . . . . 167
9.11 The basic steps of GP-based system identification. . . . . . 170
9.12 Structure tree representation of a formula. . . . . . . . . . . 179
9.13 Structure tree crossover and the functions basis. . . . . . . . 181
9.14 Simple examples for pruning in GP. . . . . . . . . . . . . . . 195
9.15 Simple formula structure and all included pairs of ancestors
and descendants (genetic information items). . . . . . . . . 202

10.1 Quality improvement using offspring selection and various


crossover operators. . . . . . . . . . . . . . . . . . . . . . . . 210
10.2 Degree of similarity/distance for all pairs of solutions in a
SGA’s population of 120 solution candidates after 10 genera-
tions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
10.3 Genetic diversity in the population of a conventional GA over
time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
10.4 Genetic diversity of the population of a GA with offspring
selection over time. . . . . . . . . . . . . . . . . . . . . . . . 219
10.5 Genetic diversity of the entire population over time for a
SASEGASA with 5 subpopulations. . . . . . . . . . . . . . . 220
10.6 Quality progress of a standard GA using roulette wheel se-
lection on the left and 3-tournament selection the right side,
applied to instances of the Taillard CVRP benchmark: tai75a
(top) and tai75b (bottom). . . . . . . . . . . . . . . . . . . . 223
10.7 Genetic diversity in the population of a GA with roulette
wheel selection (shown on the left side) and 3-tournament
selection (shown on the right side). . . . . . . . . . . . . . . 225
10.8 Box plots of the qualities produced by a GA with roulette
and 3-tournament selection, applied to the problem instances
tai75a (top) and tai75b (bottom). . . . . . . . . . . . . . . . 227
10.9 Quality progress of the offspring selection GA for the in-
stances (from top to bottom) tai75a and tai75b. The left col-
umn shows the progress with a population size of 200, while
in the right column the GA with offspring selection uses a
population size of 400. . . . . . . . . . . . . . . . . . . . . . 229

© 2009 by Taylor & Francis Group, LLC


xx Genetic Algorithms and Genetic Programming

10.10 Influence of the crossover operators SBX and RBX on each


generation of an offspring selection algorithm. The lighter
line represents the RBX; the darker line represents the SBX. 230
10.11 Genetic diversity in the population of an GA with offspring
selection and a population size of 200 on the left and 400 on
the right for the problem instances tai75a and tai75b (from
top to bottom). . . . . . . . . . . . . . . . . . . . . . . . . . 231
10.12 Box plots of the offspring selection GA with a population size
of 200 and 400 for the instances tai75a and tai75b. . . . . . 233
10.13 Box plots of the GA with 3-tournament selection against the
offspring selection GA for the instances tai75a (shown in the
upper part) and tai75b (shown in the lower part). . . . . . . 233

11.1 Dynamic diesel engine test bench at the Institute for Design
and Control of Mechatronical Systems, JKU Linz. . . . . . . 238
11.2 Evaluation of the best model produced by GP for test strategy
(1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
11.3 Evaluation of the best model produced by GP for test strategy
(2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
11.4 Evaluation of models for particulate matter emissions of a
diesel engine (snapshot showing the evaluation of the model
on validation / test samples). . . . . . . . . . . . . . . . . . 244
11.5 Errors distribution of models for particulate matter emissions. 244
11.6 Cumulative errors of models for particulate matter emissions. 245
11.7 Target N Ox values of N Ox data set II, recorded over ap-
proximately 30 minutes at 20Hz recording frequency yielding
∼36,000 samples. . . . . . . . . . . . . . . . . . . . . . . . . 247
11.8 Target HoribaN Ox values of N Ox data set III. . . . . . . . 248
11.9 Target HoribaN Ox values of N Ox data set III, samples 6000
– 7000. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
11.10 Two exemplary ROC curves and their area under the ROC
curve (AUC). . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.11 An exemplary graphical display of a multi-class ROC (MROC)
matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
11.12 Classification example: Several samples with original class
values C1 , C2 , and C3 are shown; the class ranges result from
the estimated values for each class and are indicated as cr1 ,
cr2 , and cr3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
11.13 An exemplary hybrid structure tree of a combined formula
including arithmetic as well as logical functions. . . . . . . . 265
11.14 Graphical representation of the best result we obtained for
the Thyroid data set, CV-partition 9: Comparison of original
and estimated class values. . . . . . . . . . . . . . . . . . . . 272
11.15 ROC curves and their area under the curve (AUC) values for
classification models generated for Thyroid data, CV-set 9. 273

© 2009 by Taylor & Francis Group, LLC


List of Figures xxi

11.16 MROC charts and their maximum and average area under
the curve (AUC) values for classification models generated
for Thyroid data, CV-set 9. . . . . . . . . . . . . . . . . . . 274
11.17 Graphical representation of a classification model (formula),
produced for 10-fold cross validation partition 3 of the Thy-
roid data set. . . . . . . . . . . . . . . . . . . . . . . . . . . 275
11.18 pctotal values for an exemplary run of series I. . . . . . . . . 287
11.19 pctotal values for an exemplary run of series II. . . . . . . . 287
11.20 pctotal values for an exemplary run of series III. . . . . . . . 288
11.21 Selection pressure progress in two exemplary runs of test se-
ries III and V (extended GP with gender specific parent se-
lection and strict offspring selection). . . . . . . . . . . . . . 291
11.22 Distribution of similarity values in an exemplary run of NOx
test series A, generation 200. . . . . . . . . . . . . . . . . . 297
11.23 Distribution of similarity values in an exemplary run of NOx
test series A, generation 4000. . . . . . . . . . . . . . . . . . 298
11.24 Distribution of similarity values in an exemplary run of NOx
test series (D), generation 20. . . . . . . . . . . . . . . . . . 298
11.25 Distribution of similarity values in an exemplary run of NOx
test series (D), generation 95. . . . . . . . . . . . . . . . . . 299
11.26 Population diversity progress in exemplary Thyroid test runs
of series (A) and (D) (shown in the upper and lower graph,
respectively). . . . . . . . . . . . . . . . . . . . . . . . . . . 299
11.27 Exemplary multi-population diversity of a test run of Thyroid
series F at iteration 50, grayscale representation. . . . . . . 305
11.28 Code growth in GP without applying size limits or complexity
punishment strategies (left: standard GP, right: extended
GP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
11.29 Progress of formula complexity in one of the test runs of series
(1g), shown for the first ∼400 iterations. . . . . . . . . . . . 315
11.30 Progress of formula complexity in one of the test runs of series
(1h) (shown left) and one of series (2h) (shown right). . . . 316
11.31 Model with best fit on training data: Model structure and
full evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . 318
11.32 Model with best fit on validation data: Model structure and
full evaluation. . . . . . . . . . . . . . . . . . . . . . . . . . 318
11.33 Errors distributions of best models: Charts I, II, and III show
the errors distributions of the model with best fit on training
data evaluated on training, validation, and test data, respec-
tively; charts IV, V, and VI show the errors distributions of
the model with best fit on validation data evaluated on train-
ing, validation, and test data, respectively. . . . . . . . . . . 319
11.34 A simple workbench in HeuristicLab 2.0. . . . . . . . . . . . 323

© 2009 by Taylor & Francis Group, LLC


List of Algorithms

1.1 Basic workflow of a genetic algorithm. . . . . . . . . . . . . . 3


4.1 Definition of a genetic algorithm with offspring selection. . . . 72
9.1 Exhaustive pruning of a model m using the parameters h1 , h2 ,
minimizeM odel, cpmax , and detmax . . . . . . . . . . . . . . . 196
9.2 Evolution strategy inspired pruning of a model m using the
parameters λ, maxU nsuccRounds, h1 , h2 , minimizeM odel,
cpmax , and detmax . . . . . . . . . . . . . . . . . . . . . . . . . 198
9.3 Calculation of the evaluation-based similarity of two models m1
and m2 with respect to data base data . . . . . . . . . . . . . 200
9.4 Calculation of the structural similarity of two models m1 and
m2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

xxiii
© 2009 by Taylor & Francis Group, LLC
Introduction

Essentially, this book is about algorithmic developments in the context of


genetic algorithms (GAs) and genetic programming (GP); we also describe
their applications to significant combinatorial optimization problems as well
as structure identification using HeuristicLab as a platform for algorithm de-
velopment. The main issue of the theoretical considerations is to obtain a
better understanding of the basic workflow of GAs and GP, in order to estab-
lish new bionic, problem independent theoretical concepts and to substantially
increase the achievable solution quality.

The book is structured into a theoretical and an empirical part. The aim of
the theoretical part is to describe the important and characteristic properties
of the basic genetic algorithm as well as the main characteristics of the algo-
rithmic extensions introduced here. The empirical part of the book elaborates
two case studies: On the one hand, the traveling salesman problem (TSP) and
the capacitated vehicle routing problem (CVRP) are used as representatives
for GAs applied to combinatorial optimization problems. On the other hand,
GP-based nonlinear structure identification applied to time series and clas-
sification problems is analyzed to highlight the properties of the algorithmic
measures in the field of genetic programming. The borderlines between theory
and practice become indistinct in some parts as it is also necessary to describe
theoretical properties on the basis of practical examples in the first part of the
book. For this purpose we go back to some small-dimensioned TSP instances
that are perfectly suited for theoretical GA considerations.

Research concerning the self-adaptive interplay between selection and the


applied solution manipulation operators (crossover and mutation) is the basis
for the algorithmic developments presented in this book. The ultimate goal in
this context is to avoid the disappearance of relevant building blocks and to
support the combination of those alleles from the gene pool that carry solution
properties of highly fit individuals. As we show in comparative test series, in
conventional GAs and GP this relevant genetic information is likely to get lost
quite early in the standard variants of these algorithms and can only be rein-
troduced into the population’s gene pool by mutation. This dependence on
mutation can be drastically reduced by new generic selection principles based
upon either self-adaptive selection pressure steering (offspring selection, OS)
or self-adaptive population size adjustment as proposed in the relevant alleles
preserving genetic algorithm (RAPGA). Both algorithmic extensions certify
the survival of essential genetic information by supporting the survival of rel-

xxv
© 2009 by Taylor & Francis Group, LLC
xxvi Genetic Algorithms and Genetic Programming

evant alleles rather than the survival of above average chromosomes. This
is achieved by defining the survival probability of a new child chromosome
depending on the child’s fitness in comparison to the fitness values of its own
parents. With these measures it becomes possible to channel the relevant
alleles, which are initially scattered in the entire population, to single chro-
mosomes at the end of the genetic search process.

The SASEGASA algorithm is a special coarse-grained parallel GA; the


acronym “SASEGASA” hereby stands for Self-Adaptive Segregative Genetic
Algorithm including aspects of Simulated Annealing. SASEGASA combines
offspring selection with enhanced parallelization concepts in order to avoid
premature convergence, one of the major problems with GAs. As we will
show for the TSP, it becomes possible to scale the robustness and particularly
the achievable solution quality by the number of subpopulations.

Due to the high focus on sexual recombination, evolution strategies (ES)


are not considered explicitly in this book. Nevertheless, many of the theoret-
ical considerations are heavily inspired by evolution strategies, especially the
aspect of selection after reproduction and (self-)adaptive selection pressure
steering. Aside from other variants of evolutionary computation, further in-
spirations are borrowed from fields, as for example, population genetics. The
implementation of bionic ideas for algorithmic developments is quite prag-
matic and ignores debates on principles that are discussed in natural sciences.
Of course, we are always aware of the fact that artificial evolution as per-
formed in an evolutionary algorithm is situated on a high level of abstraction
compared to the biological role model in any case.

The problem-oriented part of the book is dedicated to the application of


the algorithmic concepts described in this book to benchmark as well as real
world problems. Concretely, we examine the traveling salesman problem and
the capacitated vehicle routing problem (which is thematically related to the
TSP), but more in step with actual practice, as representatives of combina-
torial optimization problems.

Time series and classification analysis are used as application areas of data-
based structure identification with genetic programming working with for-
mula trees representing mathematical models. As a matter of principle, we
use standard problem representations and the appropriate problem-specific
genetic operators known from GA and GP theory for the experiments shown
in these chapters. The focus is set on the comparison of results achievable with
standard GA and GP implementations to the results achieved using the ex-
tended algorithmic concepts described in this book. These enhanced concepts
do not depend on a concrete problem representation and its operators; their
influences on population dynamics in GA and GP populations are analyzed,
too.

© 2009 by Taylor & Francis Group, LLC


Introduction xxvii

Additional material related to the research described in this book is pro-


vided on the book’s homepage at http://gagp2009.heuristiclab.com.
Among other information this website provides some of the software used
as well as dynamical presentations of representative test runs as additional
material.

© 2009 by Taylor & Francis Group, LLC


Chapter 1
Simulating Evolution: Basics about
Genetic Algorithms

1.1 The Evolution of Evolutionary Computation


Work on what is nowadays called evolutionary computation started in the
sixties of the 20th century in the United States and Germany. There have
been two basic approaches in computer science that copy evolutionary mech-
anisms: evolution strategies (ES) and genetic algorithms (GA). Genetic al-
gorithms go back to Holland [Hol75], an American computer scientist and
psychologist who developed his theory not only under the aspect of solving
optimization problems but also to study self-adaptiveness in biological pro-
cesses. Essentially, this is the reason why genetic algorithms are much closer
to the biological model than evolution strategies. The theoretical foundations
of evolution strategies were formed by Rechenberg and Schwefel (see for ex-
ample [Rec73] or [Sch94]), whose primary goal was optimization. Although
these two concepts have many aspects in common, they developed almost in-
dependently from each other in the USA (where GAs were developed) and
Germany (where research was done on ES).
Both attempts work with a population model whereby the genetic informa-
tion of each individual of a population is in general different. Among other
things this genotype includes a parameter vector which contains all necessary
information about the properties of a certain individual. Before the intrinsic
evolutionary process takes place, the population is initialized arbitrarily; evo-
lution, i.e., replacement of the old generation by a new generation, proceeds
until a certain termination criterion is fulfilled.
The major difference between evolution strategies and genetic algorithms
lies in the representation of the genotype and in the way the operators are used
(which are mutation, selection, and eventually recombination). In contrast
to GAs, where the main role of the mutation operator is simply to avoid
stagnation, mutation is the primary operator of evolution strategies.
Genetic programming (GP), an extension of the genetic algorithm, is a
domain-independent, biologically inspired method that is able to create com-
puter programs from a high-level problem statement. In fact, virtually all
problems in artificial intelligence, machine learning, adaptive systems, and

1
© 2009 by Taylor & Francis Group, LLC
2 Genetic Algorithms and Genetic Programming

automated learning can be recast as a search for a computer program; genetic


programming provides a way to search for a computer program in the space
of computer programs (as formulated by Koza in [Koz92a]). Similar to GAs,
GP works by imitating aspects of natural evolution, but whereas GAs are
intended to find arrays of characters or numbers, the goal of a GP process is
to search for computer programs (or, for example, formulas) solving the opti-
mization problem at hand. As in every evolutionary process, new individuals
(in GP’s case, new programs) are created. They are tested, and the fitter ones
in the population succeed in creating children of their own whereas unfit ones
tend to disappear from the population.
In the following sections we give a detailed description of the basics of
genetic algorithms in Section 1.2, take a look at the corresponding biological
terminology in Section 1.3, and characterize the operators used in GAs in
Section 1.4. Then, in Section 1.5 we discuss problem representation issues,
and in Section 1.6 we summarize the schema theory, an essentially important
concept for understanding not only how, but also why GAs work. Parallel
GA concepts are given in Section 1.7, and finally we discuss the interplay of
genetic operators in Section 1.8.

1.2 The Basics of Genetic Algorithms


Concerning its internal functioning, a genetic algorithm is an iterative pro-
cedure which usually operates on a population of constant size and is basically
executed in the following way:
An initial population of individuals (also called “solution candidates” or
“chromosomes”) is generated randomly or heuristically. During each itera-
tion step, also called a “generation,” the individuals of the current population
are evaluated and assigned a certain fitness value. In order to form a new pop-
ulation, individuals are first selected (usually with a probability proportional
to their relative fitness values), and then produce offspring candidates which
in turn form the next generation of parents. This ensures that the expected
number of times an individual is chosen is approximately proportional to its
relative performance in the population. For producing new solution candi-
dates genetic algorithms use two operators, namely crossover and mutation:

• Crossover is the primary genetic operator: It takes two individuals,


called parents, and produces one or two new individuals, called offspring,
by combining parts of the parents. In its simplest form, the operator
works by swapping (exchanging) substrings before and after a randomly
selected crossover point.

• The second genetic operator, mutation, is essentially an arbitrary mod-

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 3

ification which helps to prevent premature convergence by randomly


sampling new points in the search space. In the case of bit strings,
mutation is applied by simply flipping bits randomly in a string with a
certain probability called mutation rate.
Genetic algorithms are stochastic iterative algorithms, which cannot guar-
antee convergence; termination is hereby commonly triggered by reaching a
maximum number of generations or by finding an acceptable solution or more
sophisticated termination criteria indicating premature convergence. We will
discuss this issue in further detail within Chapter 3.
The so-called standard genetic algorithm (SGA), which represents the basis
of almost all variants of genetic algorithms, is given in Algorithm 1.1 (which
is formulated as in [Tom95], for example).

Algorithm 1.1 Basic workflow of a genetic algorithm.


Produce an initial population of individuals
Evaluate the fitness of all individuals
while termination condition not met do
Select fitter individuals for reproduction and produce new individuals
(crossover and mutation)
Evaluate fitness of new individuals
Generate a new population by inserting some new “good” individuals and
by erasing some old “bad” individuals
end while

A special and quite restricted GA variant, that has represented the basis for
theoretical considerations for a long period of time, is given in Figure 1.1. This
chart sketches a GA with binary representation operating with generational
replacement, a population of constant size, and the following genetic opera-
tors: roulette wheel selection, single point crossover, and bit flip mutation.
This special type of genetic algorithms, which is the basis for theoretical GA
research such as the well known schema theorem and accordingly the building
block hypothesis, is also called the canonical genetic algorithm (CGA).

1.3 Biological Terminology


The approximative way of solving optimization problems by genetic algo-
rithms holds a strong analogy to the basic principles of biological evolution.
The fundamentals of the natural evolution theory, as it is considered nowa-
days, mainly refer to the theories of Charles Darwin, which were published

© 2009 by Taylor & Francis Group, LLC


4 Genetic Algorithms and Genetic Programming

FIGURE 1.1: The canonical genetic algorithm with binary solution encoding.

in 1859 in his well-known work “The Origin of Species By Means of Natural


Selection or the Preservation of Favoured Races in the Struggle for Life” (re-
vised edition: [Dar98]). In this work Darwin states the following five major
ideas:

• Evolution, change in lineages, occurs and occurred over time.

• All creatures have common descent.

• Natural selection determines changes in nature.

• Gradual change, i.e., nature changes somehow successively.

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 5

• Speciation, i.e., Darwin claimed that the process of natural selection


results in populations diverging enough to become separate species.

Although some of Darwin’s proposals were not new, his ideas (particularly
those on common descent and natural selection) provided the first solid foun-
dation upon which evolutionary biology has been built.
At this point it may be useful to formally introduce some essential parts of
the biological terminology which are used in the context of genetic algorithms:

• All living organisms consist of cells containing the same set of one or
more chromosomes, i.e., strings of DNA. A gene can be understood
as an “encoder” of a characteristic, such as eye color. The different
possibilities for a characteristic (e.g., brown, green, blue, gray) are called
alleles. Each gene is located at a particular position (locus) on the
chromosome.

• Most organisms have multiple chromosomes in each cell. The sum of all
chromosomes, i.e., the complete collection of genetic material, is called
the genome of the organism and the term genotype refers to the partic-
ular set of genes contained in a genome. Therefore, if two individuals
have identical genomes, they are said to have the same genotype.

• Organisms whose chromosomes are arranged in pairs are called diploid,


whereas organisms with unpaired chromosomes are called haploid. In
nature, most sexually reproducing species are diploid. Humans for in-
stance have 23 pairs of chromosomes in each somatic cell in their body.
Recombination (crossover) occurs during sexual reproduction in the fol-
lowing way:

• For producing a new child, the genes of the parents are combined to
eventually form a new diploid set of chromosomes. Offspring are sub-
ject to mutation where elementary parts of the DNA (nucleotides) are
changed. The fitness of an organism (individual) is typically defined as
its probability to reproduce, or as a function of the number of offspring
the organism has produced.

For the sake of simplification, in genetic algorithms the term chromosome


refers to a solution candidate (in the first GAs encoded as a bit). The genes are
either single bits or small blocks of neighboring bits that encode a particular
element of the solution. Even if an allele usually is either 0 or 1, for larger
alphabets more alleles are possible at each locus.
As a further simplification to the biological role model, crossover typically
operates by exchanging genetic material between two haploid parents whereas
mutation is implemented by simply flipping the bit at a randomly chosen locus.
Finally it is remarkable that most applications of genetic algorithms employ
haploid single-chromosome individuals, although the evolution of mankind has

© 2009 by Taylor & Francis Group, LLC


6 Genetic Algorithms and Genetic Programming

inspired the GA-community at most. This is most probably due to the easier
and more effective representation and implementation of single-chromosome
individuals.

1.4 Genetic Operators


In the following, the main genetic operators, namely parent selection,
crossover, mutation, and replacement are to be described. The focus hereby
lies on a functional description of the principles rather than to give a complete
overview of operator concepts; for more details about genetic operators the
interested reader is referred to textbooks as for example [DLJD00].

1.4.1 Models for Parent Selection


In genetic algorithms a fitness function assigns a score to each individual in
a population; this fitness value indicates the quality of the solution represented
by the individual. The fitness function is often given as part of the problem
description or based on the objective function; developing an appropriate
fitness function may also involve the use of simulation, heuristic techniques, or
the knowledge of an expert. Evaluating the fitness function for each individual
should be relatively fast due to the number of times it will be invoked. If
the evaluation is likely to be slow, then concepts of parallel and distributed
computing, an approximate function evaluation technique, or a technique,
that only considers elements that have changed, may be employed.
Once a population has been generated and its fitness has been measured,
the set of solutions, that are selected to be “mated” in a given generation, is
produced. In the standard genetic algorithm (SGA) the probability, that a
chromosome of the current population is selected for reproduction, is propor-
tional to its fitness.
In fact, there are many ways of accomplishing this selection. These include:
• Proportional selection (roulette wheel selection):
The classical SGA utilizes this selection method which has been pro-
posed in the context of Holland’s schema theorem (which will be ex-
plained in detail in Section 1.6). Here the expected number of descen-
dants for an individual i is given as pi = ffi with f : S → R+ denoting
the fitness function and f representing the average fitness of all indi-
viduals. Therefore, each individual of the population is represented by
a space proportional to its fitness. By repeatedly spinning the wheel,
individuals are chosen using random sampling with replacement. In or-
der to make proportional selection independent from the dimension of
the fitness values, so-called windowing techniques are usually employed.

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 7

Further variants of proportional selection aim to reduce the dominance


of a single or a group of highly fit individuals (“super individuals”) by
stochastic sampling techniques (as for example explained in [DLJD00]).

• Linear-rank selection:
In the context of linear-rank selection the individuals of the population
are ordered according to their fitness and copies are assigned in such a
way that the best individual receives a pre-determined multiple of the
number of copies the worst one receives [GB89]. On the one hand rank
selection implicitly reduces the dominating effects of “super individuals”
in populations (i.e., individuals that are assigned a significantly better
fitness value than all other individuals), but on the other hand it warps
the difference between close fitness values, thus increasing the selection
pressure in stagnant populations. Even if linear-rank selection has been
used with some success, it ignores the information about fitness differ-
ences of different individuals and violates the schema theorem.

• Tournament selection:
There are a number of variants on this theme. The most common one
is k-tournament selection where k individuals are selected from a pop-
ulation and the fittest individual of the k selected ones is considered
for reproduction. In this variant selection pressure can be scaled quite
easily by choosing an appropriate number for k.

1.4.2 Recombination (Crossover)


In its easiest formulation, which is suggested in the canonical GA for binary
encoding, crossover takes two individuals and cuts their chromosome strings
at some randomly chosen position. The produced substrings are then swapped
to produce two new full length chromosomes.
Conventional crossover techniques for binary representation include:

• Single point crossover:


A single random cut is made, producing two head sections and two
tail sections. The two tail sections are then swapped to produce two
new individuals (chromosomes); Figure 1.2 schematically sketches this
crossover method which is also called one point crossover.

• Multiple point crossover:


One natural extension of the single point crossover is the multiple point
crossover: In a n-point crossover there are n crossover points and sub-
strings are swapped between the n points. According to some re-
searchers, multiple-point crossover is more suitable to combine good fea-
tures present in strings because it samples uniformly along the full length
of a chromosome [Ree95]. At the same time, multiple-point crossover be-
comes more and more disruptive with an increasing number of crossover

© 2009 by Taylor & Francis Group, LLC


8 Genetic Algorithms and Genetic Programming
Crossover Point

Parents

Crossover

Children

FIGURE 1.2: Schematic display of a single point crossover.

points, i.e., the evolvement of longer building blocks becomes more and
more difficult. Decreasing the number of crossover points during the
run of the GA may be a good compromise.

• Uniform crossover:
Given two parents, each gene in the offspring is created by copying
the corresponding gene from one of the parents. The selection of the
corresponding parent is undertaken via a randomly generated crossover
mask: At each index, the offspring gene is taken from the first parent
if there is a 1 in the mask at this index, and otherwise (if there is a 0
in the mask at this index) the gene is taken from the second parent.
Due to this construction principle uniform crossover does not support
the evolvement of higher order building blocks.

The choice of an appropriate crossover operator depends very much on the


representation of the search space (see also Section 1.5). Sequencing problems
as routing problems for example often require operators different from the ones
described above as almost all generated children may be situated outside of
the space of valid solutions.
In higher order representations, a variety of real-number combination op-
erators can be employed, such as the average and geometric mean. Domain
knowledge can be used to design local improvement operators which some-
times allow more efficient exploration of the search space around good solu-
tions. For instance, knowledge could be used to determine the appropriate
locations for crossover points.
As the number of proposed problem-specific crossover-techniques has been
growing that much over the years, it would go beyond the scope of the present
book even to discuss the more important ones. For a good discussion of
crossover-related issues and further references the reader is referred to [Mic92]
and [DLJD00].

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 9

1.4.3 Mutation
Mutations allow undirected jumps to slightly different areas of the search
space. The basic mutation operator for binary coded problems is bitwise
mutation. Mutation occurs randomly and very rarely with a probability pm ;
typically, this mutation rate is less than ten percent. In some cases mutation
is interpreted as generating a new bit and in others it is interpreted as flipping
the bit.
In higher order alphabets, such as integer numbering formulations, muta-
tion takes the form of replacing an allele with a randomly chosen value in the
appropriate range with probability pm . However, for combinatorial optimiza-
tion problems, such mutation schemes can cause difficulties with chromosome
legality; for example, multiple copies of a given value can occur which might
be illegal for some problems (including routing). Alternatives suggested in
literature include pairwise swap and shift operations as for instance described
in [Car94].
In addition, adaptive mutation schemes similar to mutation in the context
of evolution strategies are worth mentioning. Adaptive mutation schemes
vary either the rate, or the form of mutation, or both during a GA run. For
instance, mutation is sometimes defined in such a way that the search space
is explored uniformly at first and more locally towards the end, in order to do
a kind of local improvement of candidate solutions [Mic92].

1.4.4 Replacement Schemes


After having generated a new generation of descendants (offspring) by
crossover and mutation, the question arises which of the new candidates should
become members of the next generation. In the context of evolution strategies
this fact determines the life span of the individuals and substantially influ-
ences the convergence behavior of the algorithm. A further strategy influenc-
ing replacement quite drastically is offspring selection which will be discussed
separately in Chapter 4. The following schemes are possible replacement
mechanisms for genetic algorithms:

• Generational Replacement:
The entire population is replaced by its descendants. Similar to the
(µ, λ) evolution strategy it might therefore happen that the fitness of
the best individual decreases at some stage of evolution. Additionally,
this strategy puts into perspective the dominance of a few individuals
which might help to avoid premature convergence [SHF94].

• Elitism:
The best individual (or the n best individuals, respectively) of the pre-
vious generation are retained for the next generation which theoretically
allows immortality similar to the (µ + λ) evolution strategy and might

© 2009 by Taylor & Francis Group, LLC


10 Genetic Algorithms and Genetic Programming

be critical with respect to premature convergence. The special and com-


monly applied strategy of just retaining one (the best) individual of the
last generation is also called the “golden cage model,” which is a special
case of n-elitism with n = 1. If mutation is applied to the elite in order
to prevent premature convergence, the replacement mechanism is called
“weak elitism.”

• Delete-n-last:
The n weakest individuals are replaced by n descendants. If n ≪ |P OP |
we speak of a steady-state replacement scheme; for n = 1 the changes
between the old and the new generation are certainly very small and n =
|P OP | gives the already introduced generational replacement strategy.

• Delete-n:
In contrast to the delete-n-last replacement strategy, here not the n
weakest but rather n arbitrarily chosen individuals of the old generation
are replaced, which on the one hand reduces the convergence speed of
the algorithm but on the other hand also helps to avoid premature
convergence (compare elitism versus weak elitism).

• Tournament Replacement:
Competitions are run between sets of individuals from the last and the
actual generation, with the winners becoming part of the new popula-
tion.

A detailed description of replacement schemes and their effects can be found


for example in [SHF94], [Mic92], [DLJD00], and [Mit96].

1.5 Problem Representation


As already stated before, the first genetic algorithm presented in literature
[Hol75] used binary vectors for the representation of solution candidates (chro-
mosomes). Consequently, the first solution manipulation operators (single
point crossover, bit mutation) have been developed for binary representation.
Furthermore, this very simple GA, also commonly known as the canonical
genetic algorithm (CGA), represents the basis for extensive theoretical in-
spections, resulting in the well known schema theorem and the building block
hypothesis ([Hol75], [Gol89]). This background theory will be examined sep-
arately in Section 1.6, as it defines the scope of almost any GA as it should
ideally be and distinguishes GAs from almost any other heuristic optimization
technique.
The unique selling point of GAs is to compile so-called building blocks,
i.e., somehow linked parts of the chromosome which become larger as the

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 11

algorithm proceeds, advantageously with respect to the given fitness function.


In other words, one could define the claim of a GA as to be an algorithm which
is able to assemble the basic modules of highly fit or even globally optimal
solutions (which the algorithm of course does not know about). These basic
modules are with some probability already available in the initial population,
but widespread over many individuals; the algorithm therefore has to compile
these modules in such a clever way that continuously growing sequences of
highly qualified alleles, the so-called building blocks, are formed.
Compared to heuristic optimization techniques based on neighborhood
search (as tabu search [Glo86] or simulated annealing [KGV83], for exam-
ple), the methodology of GAs to combine partial solutions (by crossover) is
potentially much more robust with respect to getting stuck in local but not
global optimal solutions; this tendency of neighborhood-based searches de-
notes a major drawback of these heuristics. Still, when applying GAs the
user has to draw much more attention on the problem representation in or-
der to help the algorithm to fulfill the claim stated above. In that sense the
problem representation must allow the solution manipulation operators, es-
pecially crossover, to combine alleles of different parent individuals. This is
because crossover is responsible for combining the properties of two solution
candidates which may be located in very different regions of the search space
so that valid new solution candidates are built. This is why the problem rep-
resentation has to be designed in a way that crossover operators are able to
build valid new children (solution candidates) with a genetic make up that
consists of the union set of its parent alleles.
Furthermore, as a tribute to the general functioning of GAs, the crossover
operators also have to support the potential development of higher-order
building blocks (longer allele sequences). Only if the genetic operators for
a certain problem representation show these necessary solution manipulator
properties, the corresponding GA can be expected to work as it should, i.e.,
in the sense of a generalized interpretation of the building block hypothesis.
Unfortunately, a lot of more or less established problem representations are
not able to fulfill these requirements, as they do not support the design of
potentially suited crossover operators. Some problem representations will be
considered exemplarily in the following attracting notice to their ability to
allow meaningful crossover procedures. Even if mutation, the second solution
manipulation concept of GAs, is also of essential importance, the design of
meaningful mutation operators is much less challenging as it is a lot easier
to fulfill the requirements of a suited mutation operator (which in fact is to
introduce a small amount of new genetic information).

1.5.1 Binary Representation


In the early years of GA research there was a strong focus on binary encod-
ing of solution candidates. To some extent, an outgrowth of these ambitions
is certainly the binary representation for the TSP. There have been different

© 2009 by Taylor & Francis Group, LLC


12 Genetic Algorithms and Genetic Programming

ways how to use binary representation for the TSP, the most straightforward
one being to encode each city as a string of log2 n bits and a solution candidate
as a string of n(log2 n) bits. Crossover is then simply performed by applying
single-point crossover as proposed by Holland [Hol75]. Further attempts us-
ing binary encoding have been proposed using binary matrix representation
([FM91], [HGL93]). In [HGL93], Homaifar and Guan for example defined a
matrix element in the i-th row and the j-th column to be 1 if and only if in the
tour city j is visited after city i; they also applied one- or two- point crossover
on the parent matrices, which for one-point crossover means that the child
tour is created by just taking the column vectors left of the crossover point
from one parent, and the column vectors right of the crossover point from the
other parent.

Obviously, these strategies lead to highly illegal tours which are then re-
paired by additional repair strategies [HGL93], which is exactly the point
where a GA can no longer act as it is supposed to. As the repair strate-
gies have to introduce a high amount of genetic information which is neither
from the one nor from the other parent, child solutions emerge whose genetic
make-up has only little in common with its own parents; this counteracts the
general functioning of GAs as given in a more general interpretation of the
schema theorem and the according building block hypothesis.

1.5.2 Adjacency Representation

Using the adjacency representation for the TSP (as described in [LKM+ 99],
e.g.), a city j is listed in position i if and only if the tour leads from city i to
city j. Based on the adjacency representation, the so-called alternating edges
crossover has been proposed for example which basically works as follows:
First it chooses an edge from one parent and continues with the position of
this edge in the other parent representing the next edge, etc. The partial
tour is built up by choosing edges from the two parents alternatingly. In case
this strategy would produce a cycle, the edge is not added, but instead the
operator randomly selects an edge from the edges which do not produce a
cycle and continues in the way described above.

Compared to the crossover operators based on binary encoding, this strat-


egy has the obvious advantage that a new child is built up from edges of its
own parents. However, also this strategy is not very well suited as a fur-
ther claim to crossover is not fulfilled at all: The alternating edges crossover
cannot inherit longer tour segments and therefore longer building blocks can-
not establish. As a further development to the alternating edges crossover,
the so-called sub-tour chunks crossover aims to put things right by not alter-
nating the edges but sub-tours of the two parental solutions. However, the
capabilities of this strategy are also rather limited.

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 13

1.5.3 Path Representation


The most natural representation of a TSP tour is given by the path repre-
sentation. Within this representation, the n cities of a tour are put in order
according to a list of length n, so that the order of cities to be visited is given
by the list entries with an imaginary edge from the last to the first list entry. A
lot of crossover and mutation operators have been developed based upon this
representation, and most of the nowadays used TSP solution methods using
GAs are realized using path representation. Despite obvious disadvantages
like the equivocality of this representation (the same tour can be described in
2n different ways for a symmetrical TSP and in n different ways for an asym-
metrical TSP) this representation has allowed the design of quite powerful
operators like the order crossover (OX) or the edge recombination crossover
(ERX) which are able to inherit parent sub-tours to child solutions with only
a rather small ratio of edges stemming from none of its own parents which is
essential for GAs. A detailed description of these operators is given in Chapter
8.

1.5.4 Other Representations for Combinatorial


Optimization Problems
Combinatorial optimization problems that are more in step with actual
practice than the TSP require more complex problem representations, which
makes it even more difficult for the designer of genetic solution manipulation
operators to construct crossover operators that fulfill the essential require-
ments.
Challenging optimization tasks arise in the field of logistics and production
planning optimization where the capacitated vehicle routing problem with
(CVRPTW, [Tha95]) and without time windows (CVRP, [DR59]) as well as
the job shop scheduling problem (JSSP [Tai93]) denote abstracted standard
formulations which are used for the comparison of optimization techniques on
the basis of widely available standardized benchmark problems. Tabu search
[Glo86] and genetic algorithms are considered the most powerful optimiza-
tion heuristics for these rather practical combinatorial optimization problems
[BR03].
Cheng et al. as well as Yamada and Nakano give a comprehensive review
of problem representations and corresponding operators for applying Genetic
Algorithms to the JSSP in [CGT99] and [YN97], respectively.
For the CVRP, Bräysy and Gendreau give a detailed overview about the
application of local search algorithms in [BG05a] and about the application
of metaheuristics in [BG05b]; concrete problem representations and crossover
operators for GAs are outlined in [PB96] and [Pri04]. Furthermore, the appli-
cation of extended GA concepts to the CVRP will be covered in the practical
part of this book within Chapter 10.

© 2009 by Taylor & Francis Group, LLC


14 Genetic Algorithms and Genetic Programming

1.5.5 Problem Representations for Real-Valued Encoding


When using real-valued encoding, a solution candidate is represented as
a real-valued vector in which the dimension of the chromosomes is constant
and equal to the dimension of the solution vectors. Crossover concepts are
distinguished into discrete and continuous recombination where the discrete
variants copy the exact allele values of the parent chromosomes to the child
chromosome whereas the continuous variants perform some kind of averaging.
Mutation operators for real-valued encoding either slightly modify all po-
sitions of the gene or introduce major changes to only some (often just one)
position. Often a mixture of different crossover and mutation techniques leads
to the best results for real-valued GAs. A comprehensive review of crossover
and mutation techniques including also more sophisticated techniques like
multi-parent recombination is given in [DLJD00].
Although real-valued encoding is a problem representation which is espe-
cially suited for evolution strategies or particle swarm optimization rather
than for GAs, a lot of operators have been established also for GAs which are
quite similar to modern implementations of ES that make use of recombina-
tion [Bey01]. Real-valued encoding for GAs distinguishes itself from typical
discrete representations for combinatorial optimization problems in that point
that the evolvement of longer and longer building block sequences in terms of
adjacent alleles is of minor or no importance. Nevertheless, GA-based tech-
niques like offspring selection have proven to be a very powerful optimization
technique also for this kind of problem representation especially in case of
highly multimodal fitness landscapes [AW05].

1.6 GA Theory: Schemata and Building Blocks


Researchers working in the field of GAs have put a lot of effort into the
analysis of the genetic operators (crossover, mutation, selection). In order to
achieve better analysis and understanding, Holland has introduced a construct
called schema [Hol75]:
Under the assumption of a canonical GA with binary string representation
of individuals, the symbol alphabet {0,1,#} is considered where {#}(don’t
care) is a special wild card symbol that matches both, 0 and 1.
A schema is a string with fixed and variable symbols. For example, the schema
[0#11#01] is a template that matches the following four strings: [0011001],
[0011101], [0111001], and [0111101]. The symbol # is never actually manip-
ulated by the genetic algorithm; it is just a notational device that makes it
easier to talk about families of strings.
Essentially, Holland’s idea was that every evaluated string actually gives
partial information about the fitness of the set of possible schemata of which

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 15

the string is a member. Holland analyzed the influence of selection, crossover,


and mutation on the expected number of schemata, when going from one
generation to the next. A detailed discussion of related analysis can be found
in [Gol89]; in the context of the present work we only outline the main results
and their significance.
Assuming fitness proportional replication, the number m of individuals of
the population belonging to a particular schema H at time t + 1 is related to
the same number at the time t as

fH (t)
m(H, t + 1) = m(H, t) (1.1)
f (t)
where fH (t) is the average fitness value of the string representing schema H,
while f (t) is the average fitness value over all strings within the population.
Assuming that a particular schema remains above the average by a fixed
amount cf (t) for a number t of generations, the solution of the equation given
above can be formulated as the following exponential growth equation:

m(H, t) = m(H, 0)(1 + c)t (1.2)


where m(H, 0) stands for the number of schemata H in the population at
time 0, c denotes a positive integer constant, and t ≥ 0.
The importance of this result is the exponentially increasing number of
trials to above average schemata.
The effect of crossover which breaks strings apart (at least in the case of
canonical genetic algorithms) is that they reduce the exponential increase by
a quantity that is proportional to the crossover rate pc and depends on the
defining length δ of a schema on the string of length l:

δ(H)
pc (1.3)
l−1
The defining length δ of a schema is the distance between the first and
the last fixed string position. For example, for the schema [###0#0101]
δ = 9 − 4 = 5. Obviously, short defining length schemata are less likely to
be disrupted by a single point crossover operator. The main result is that
above average schemata with short defining lengths will still be sampled at an
exponential increasing rate. These schemata with above average fitness and
short defining length are the so-called building blocks and play an important
role in the theory of genetic algorithms.
The effects of mutation are described in a rather straightforward way: If
the bit mutation probability is pm , then the probability of survival of a single
bit is 1 − pm ; since single bit mutations are independent, the total survival
probability is therefore (1 − pm )l with l denoting the string length. But in the
context of schemata only the fixed, i.e., non-wildcard, positions matter. This
number is called the order o(H) of schema H and equals to l minus the number
of “don’t care” symbols. Then the probability of surviving a mutation for a

© 2009 by Taylor & Francis Group, LLC


16 Genetic Algorithms and Genetic Programming

certain schema H is (1 − pm )o(H) which can be approximated by 1 − o(H)pm


for pm ≪ 1.
Summarizing the described effects of mutation, crossover, and reproduction,
we end up with Holland’s well known schema theorem [Hol75]:

fH (t) δ(H)
m(H, t + 1) ≥ m(H, t) [1 − pc − o(H)pm ] (1.4)
f (t) l−1
The result essentially says that the number of short schemata with low order
and above average quality grows exponentially in subsequent generations of a
genetic algorithm.
Still, even if the schema theorem is a very important result in GA theory, it
is obtained under idealized conditions that do not hold for most practical GA
applications. Both the individual representation and the genetic operators are
often different from those used by Holland. The building block hypothesis has
been found reliable in many cases but it also depends on the representation and
on the genetic operators. Therefore, it is easy to find or to construct problems
for which it is not verified. These so-called deceptive problems are studied in
order to find out the inherent limitations of GAs, and which representations
and operators can make them more tractable. A more detailed description of
the underlying theory can for instance be found in [Raw91] or [Whi93].
The major drawback of the building block theory is given by the fact
that the underlying GA (binary encoding, proportional selection, single-point
crossover, strong mutation) is applicable only to very few problems as it re-
quires more sophisticated problem representations and corresponding oper-
ators to tackle challenging real-world problems. Therefore, a more general
theory is an intense topic in GA research since its beginning. Some theo-
retically interesting approaches like the forma theory of Radcliffe and Surry
[RS94], who consider a so-called forma as a more general schema for arbitrary
representations, state requirements to the operators, which cannot be fulfilled
for practical problems with their respective constraints.
By the end of the last millennium, Stephens and Waelbroeck ([SW97],
[SW99]) developed an exact GA schema theory. The main idea is to de-
scribe the total transmission probability α of a schema H so that α(H, t) is
the probability that at generation t the individuals of the GA’s population
will match H (for a GA working on fixed-length bit strings). Assuming a
crossover probability pxo , α(H, t) is calculated as1 :
N −1
pxo X
α(H, t) = (1 − pxo )p(H, t) + p(L(H, i), t)p(R(H, i), t) (1.5)
N − 1 i=1

with L(H, i) and R(H, i) being the left and right parts of schema H, respec-
tively, and p(H, t) the probability of selecting an individual matching H to

1 We here give the slightly modified version as stated in [LP02]; it is equivalent to the results
in [SW97] and [SW99] assuming pm = 0.

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 17

become a parent. The “left” part of a schema H is thereby produced by re-


placing all elements of H at the positions from the given index i to N with
“don’t care” symbols (with N being the length of the bit strings); the “right”
part of a schema H is produced by replacing all elements of H from position
1 to i with “don’t care.” The summation is over all positions from 1 to N − 1,
i.e., over all possible crossover points.
Stephens later generalized this GA schema theory to variable-length GAs; see
for example [SPWR02].

Keeping in mind that the ultimate goal of any heuristic optimization tech-
nique is to approximately and efficiently solve highly complex real-world prob-
lems rather than stating a mathematically provable theory that holds only
under very restricted conditions, our intention for an extended building block
theory is a not so strict formulation that in return can be interpreted for ar-
bitrary GA applications. At the same time, the enhanced variants of genetic
algorithms and genetic programming proposed in this book aim to support the
algorithms in their intention to operate in the sense of an extended building
block interpretation discussed in the following chapters.

1.7 Parallel Genetic Algorithms

The basic idea behind many parallel and distributed programs is to divide
a task into partitions and solve them simultaneously using multiple proces-
sors. This divide-and-conquer approach can be used in different ways, and
leads to different methods to parallelize GAs where some of them change the
behavior of the GA whereas others do not. Some methods (as for instance
fine-grained parallel GAs) can exploit massively parallel computer architec-
tures, while others (coarse-grained parallel GAs, e.g.) are better qualified for
multi-computers with fewer and more powerful processing elements. Detailed
descriptions and classifications of distributed GAs are given in [CP01], [CP97]
or [AT99] and [Alb05]; the scalability of parallel GAs is discussed in [CPG99].
A further and newer variant of parallel GAs which is based on offspring selec-
tion (see Chapter 4) is the so-called SASEGASA algorithm which is discussed
in Chapter 5.

In a rough classification, parallel GA concepts established in GA textbooks


(as for example [DLJD00]) can be classified into global parallelization, coarse-
grained parallel GAs, and fine-grained parallel GAs, where the most popular
model for practical applications is the coarse-grained model, also very well
known as the island model.

© 2009 by Taylor & Francis Group, LLC


18 Genetic Algorithms and Genetic Programming

Master

Slaven
Slave1

Slave2 Slave4
Slave3

FIGURE 1.3: Global parallelization concepts: A panmictic population struc-


ture (shown in left picture) and the corresponding master–slave model (right
picture).

1.7.1 Global Parallelization


Similar to the sequential GA, in the context of global parallelization there is
only one single panmictic2 population and selection considers all individuals,
i.e., every individual has a chance to mate with any other. The behavior
of the algorithm remains unchanged and the global GA has exactly the same
qualitative properties as a sequential GA. The most common operation that is
parallelized is the evaluation of the individuals as the calculation of the fitness
of an individual is independent from the rest of the population. Because of
this the only necessary communication during this phase is in the distribution
and collection of the workload.
One master node executes the GA (selection, crossover, and mutation), and
the evaluation of fitness is divided among several slave processors. Parts of
the population are assigned to each of the available processors, in that they
return the fitness values for the subset of individuals they have received. Due
to their centered and hierarchical communication order, global parallel GAs
are also known as single-population master–slave GAs.
Figure 1.3 shows the population structure of a master–slave parallel GA:
This panmictic GA has all its individuals (indicated by the black spots) in the
same population. The master stores the population, executes the GA opera-
tions, and distributes individuals to the slaves; the slaves compute the fitness
of the individuals. As a consequence, global parallelization can be efficient
only if the bottleneck in terms of runtime consumption is the evaluation of
the fitness function.
Globally parallel GAs are quite easy to implement, and they can be a quite
efficient method of parallelization if the evaluation requires considerable com-
putational effort compared to the effort required for the operations carried out
by the master node. However, they do not influence the qualitative properties
of the corresponding sequential GA.

2 In general, a population is called panmictic when all individuals are possible mating part-

ners.

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 19

1.7.2 Coarse-Grained Parallel GAs

Migration
direction

Island Model

FIGURE 1.4: Population structure of a coarse-grained parallel GA.

In the case of a coarse-grained parallel GA, the population is divided into


multiple subpopulations (also called islands or demes) that evolve mostly
isolated from each other and only occasionally exchange individuals during
phases called migration. This process is controlled by several parameters
which will be explained later in Section 1.7.4. In contrast to the global paral-
lelization model, coarse-grained parallel GAs introduce fundamental changes
in the structure of the GA and have a different behavior than a sequential GA.
Coarse-grained parallel GAs are also known as distributed GAs because they
are usually implemented on computers with distributed memories. Litera-
ture also frequently uses the notation “island parallel GAs” because there is a
model in population genetics called the island model that considers relatively
isolated demes.
Figure 1.4 schematically shows the design of a coarse-grained parallel GA:
Each circle represents a simple GA, and there is (infrequent) communication
between the populations. The qualitative performance of a coarse-grained
parallel GA is influenced by the number and size of its demes and also by
the information exchange between them (migration). The main idea of this
type of parallel GAs is that relatively isolated demes will converge to differ-
ent regions of the solution-space, and that migration and recombination will
combine the relevant solution parts [SWM91]. However, at present there is
only one model in the theory of coarse-grained parallel GAs that considers
the concept of selection pressure for recombining the favorable attributes of
solutions evolved in the different demes, namely the SASEGASA algorithm
(which will be described later in Chapter 5). Coarse-grained parallel GAs
are the most frequently used parallel GA concept, as they are quite easy to
implement and are a natural extension to the general concept of sequential
GAs making use of commonly available cluster computing facilities.

© 2009 by Taylor & Francis Group, LLC


20 Genetic Algorithms and Genetic Programming

1.7.3 Fine-Grained Parallel GAs

FIGURE 1.5: Population structure of a fine-grained parallel GA; the special


case of a cellular model is shown here.

Fine-grained models consider a large number of very small demes; Figure 1.5
sketches a fine-grained parallel GA. This class of parallel GAs has one spatially
distributed population; it is suited for massively parallel computers, but it
can also be implemented on other supercomputing architectures. A typical
example is the diffusion model [Müh89] which represents an intrinsic parallel
GA-model.

The basic idea behind this model is that the individuals are spread through-
out the global population like molecules in a diffusion process. Diffusion
models are also called cellular models. In the diffusion model a processor
is assigned to each individual and recombination is restricted to the local
neighborhood of each individual.

A recent research topic in the area of parallel evolutionary computation is


the combination of certain aspects of the different population models resulting
in so-called hybrid parallel GAs. Most of the hybrid parallel GAs are coarse-
grained at the upper level and fine-grained at the lower levels. Another way
to hybridize parallel GAs is to use coarse-grained GAs at the high as well as
at the low levels in order to force stronger mixing at the low levels using high
migration rates and a low migration rate at the high level [CP01]. Using this
strategy, computer cluster environments at different locations can collectively
work on a common problem with only little communication overhead (due to
the low migration rates at the high level).

© 2009 by Taylor & Francis Group, LLC


Simulating Evolution: Basics about Genetic Algorithms 21

1.7.4 Migration
Especially for coarse-grained parallel GAs the concept of migration is con-
sidered to be the main success criterion in terms of achievable solution quality.
The most important parameters for migration are:

• The communication topology which defines the interconnections be-


tween the subpopulations (demes)

• The migration scheme which controls which individuals (best, random)


migrate from one deme to another and which individuals should be
replaced (worst, random, doubles)

• The migration rate which determines how many individuals migrate

• The migration interval or migration gap that determines the frequency


of migrations

The most essential question concerning migration is when and to which ex-
tent migration should take place. Much theoretical work considering this has
already been done; for a survey of these efforts see [CP97] or [Alb05]. It is
very usual for parallel GAs that migration occurs synchronously meaning that
it occurs at predetermined constant intervals. However, synchronous migra-
tion is known to be slow and inefficient in some cases [AT99]. Asynchronous
migration schemes perform communication between demes only after specific
events. The migration rate which determines how many individuals undergo
migration at every exchange can be expressed as a percentage of the popula-
tion size or as an absolute value. The majority of articles in this field suggest
migration rates between 5% and 20% of the population size. However, the
choice of this parameter is considered to be very problem dependent [AT99].
A recent overview of various migration techniques is given in [CP01].
Recent theory of self-adaptive selection pressure steering (see Chapters 4
and 5) plays a major role in defying the conventions of recent parallel GA-
theory. Within these models it becomes possible to detect local premature
convergence, i.e., premature convergence in a certain deme. Thus, local pre-
mature convergence can be detected independently in all demes, which should
give a high potential in terms of efficiency especially for parallel implementa-
tions. Furthermore, the fact that selection pressure is adjusted self-adaptively
with respect to the potential of genetic information stored in the certain demes
makes the concept of a parallel GA much more independent in terms of mi-
gration parameters (see [Aff05] and Chapter 5).

© 2009 by Taylor & Francis Group, LLC


22 Genetic Algorithms and Genetic Programming

1.8 The Interplay of Genetic Operators

In order to allow an efficient performance of a genetic algorithm, a beneficial


interplay of exploration and exploitation should be possible. Critical factors
for this interplay are the genetic operators selection, crossover, and mutation.

The job of crossover is to advantageously combine alleles of selected (above


average) chromosomes which may stem from different regions of the search
space. Therefore, crossover is considered to rather support the aspect of
breadth search. Mutation slightly modifies certain chromosomes at times and
thus brings new alleles into the gene pool of a population in order to avoid
stagnation. As mutation modifies the genetic make-up of certain chromosomes
only slightly it is primarily considered as a depth search operator. However,
via mutation newly introduced genetic information does also heavily support
the aspect of breadth search if crossover is able to “transport” this new genetic
information to other chromosomes in other search space regions. As we will
show later in this book, this aspect of mutation is of prime importance for an
efficient functioning of a GA.

The aspect of migration in coarse-grained parallel GAs should also be men-


tioned in our considerations about the interplay of operators. In this kind
of parallel GAs, migration functions somehow like a meta-model of mutation
introducing new genetic information into certain demes at the chromosome-
level whereas mutation introduces new genetic information at the allele level.
Concerning migration, a well-adjusted interplay between breadth and depth
search is aimed to function in the way that breadth search is supported in
the intra-migration phases by allowing the certain demes to drift to different
regions of the search space until a certain stage of stagnation is reached; the
demes have expanded over the search space. Then migration comes into play
by introducing new chromosomes stemming from other search space regions
in order to avoid stagnation in the certain demes; this then causes the demes
to contract again slightly which from a global point of view tends to support
the aspect of depth search in the migration phases. The reason for this is that
migration causes an increase of genetic diversity in the specific demes on the
one hand, but on the other hand it decreases the diversity over all islands.
This global loss of genetic diversity can be interpreted as an exploitation of
the search space.

This overall strategy is especially beneficial in case of highly multimodal


search spaces as it is the case for complex combinatorial optimization prob-
lems.

© 2009 by Taylor & Francis Group, LLC


Random documents with unrelated
content Scribd suggests to you:
vielä viimeisen kepposen. Työnsin käteni hänen olkapäidensä alle ja
nostin hänet istumaan. Kuullessaan liikettä nainen päästi omituisen
kurkkuäänteen.

"Oletko hiljaa, senkin vanha haaska!" sanoin minä matkien Noman


ääntä.
"Etkö voi antaa minun olla kuoltuanikaan rauhassa?"

Hän valahti voimatonna maahan ja alkoi sitten kirkua minkä


keuhkoista lähti.

"Mitä! Rohkenetko vielä huutaakin?" sanoin minä jälleen Noman


äänellä, "sittenpä opetan sinua olemaan vaiti." Ja minä tyrkkäsin
ruumiin hänen päällensä.

Silloin hän pyörtyi, enkä tiedä, tulikokaan hän enää tajuihinsa. Nyt
hän oli ainakin vaiti. Sieppasin peitteen — huomasin myöhemmin,
että se oli Noman parhain, basutojen tekemä valikoiduista nahoista
ja kolmen härän arvoinen — ja pakenin Koos kintereilläni.

Isäni Makedaman majat olivat parin sadan askeleen päässä ja


minun täytyi päästä sinne, sillä sisareni Baleka nukkui siellä. En
tohtinut mennä portin kautta, koska siellä oli aina yksi mies vahdissa.
Tunkeuduin kaisla-aitauksen läpi keihääni avulla ja ryömin majalle,
jossa Baleka nukkui muutamien sisarpuoltensa kanssa. Tiesin, missä
hänen oli tapana nukkua ja millä kohtaa hänen päänsä oli.
Paneuduin kyljelleni ja aloin hyvin varovasti kaivaa reikää majan
seinään. Työ sujui hitaasti, sillä seinä oli paksu, mutta vihdoin olin
kaivanut melkein läpi. Taukosin, sillä tulin ajatelleeksi, että Baleka oli
voinut muuttaa nukkumapaikkaansa, jolloin olisin herättänyt jonkun
toisen tytön. Päätin jo luopua aikeistani ja paeta yksin, kun samassa
kuulin jonkun heräävän ja alkavan itkeä seinän toisella puolella.
"Ah", ajattelin, "tuo on Baleka, joka suree veljeään!" Panin suuni
reikään ja kuiskasin:

"Baleka sisareni! Baleka, älä itke! Minä, Mopo, olen täällä. Älä virka
sanaakaan, mutta nouse. Tule ulos ja ota nahkapeite mukaasi."

Baleka oli hyvin ymmärtäväinen tyttö; hän ei huudahtanutkaan,


kuten useimmat tytöt olisivat tehneet. Ei; hän käsitti ja odotettuaan
hetkisen hän nousi ja hiipi ulos peite käsivarrellaan.

"Miten olet täällä, Mopo?" kuiskasi hän. "Sinut varmasti tapetaan!"

"Hiljaa!" kuiskasin minä ja kerroin sitten koko suunnitelmani.


"Tuletko mukaani, vai hiivitkö takaisin majaan ja sanot minulle
hyvästit?"

Mietittyään hetkisen hän vastasi: "En, veljeni, tulen mukaasi, sillä


rakastan vain sinua koko heimostamme, vaikka uskonkin tämän
olevan viimeisen matkani — että viet minut kuolemaani."

Silloin en kiinnittänyt hänen sanoihinsa suurtakaan huomiota,


mutta myöhemmin ne muistuivat usein mieleeni. Pujahdimme siis
yhdessä tiehemme Koosin seuraamina, ja pian olimme matkalla
aavikon poikki zulu-heimon aluetta kohti.
IV.

MOPON JA BALEKAN PAKO.

Vaelsimme koko yön, kunnes koirakin väsyi, ja päiväksi


piilouduimme erääseen maissipeltoon, sillä pelkäsimme jonkun
näkevän meidät. Iltapäivällä kuulimme ääniä ja kurkistaen maissin
runkojen välistä me näimme joukon isäni miehiä, jotka olivat meitä
etsimässä. He menivät lähellä olevaan kylään kysymään, oliko meitä
nähty, minkä jälkeen emme nähneet heitä pitkään aikaan. Yöllä
vaelsimme jälleen eteenpäin, mutta oli varmaankin kohtalon
sallimus, että kohtasimme erään vanhan vaimon, joka katsoi meihin
omituisesti sanomatta kuitenkaan mitään. Kuljimme sitten
yötäpäivää, sillä me tiesimme, että tuo vanha vaimo antaisi meidät
ilmi vainoojillemme, jos hän tapaisi nämä, ja niin kävikin. Kolmannen
päivän iltana tulimme eräälle maissipellolle ja näimme, että vilja oli
tallattu maahan. Katkenneiden runkojen seassa lepäsi hyvin vanhan
miehen ruumis, joka oli niin täynnä keihäänpistoja kuin siili piikkejä.
Olimme suuresti ihmeissämme ja kiiruhdimme edelleen. Silloin
huomasimme, että kylä, johon pelto kuului, oli poltettu poroksi.
Hiivimme lähemmäksi ja — ah! minkä surullisen näyn näimmekään!
Myöhemmin totuimme sellaisiin näkyihin.
Kaikkialla makasi kuolleita kymmenittäin — vanhuksia,
nuorukaisia, lapsia ja naisia pienokaiset rinnoillaan — siellä
poltettujen majojen välissä keihäiden lävistäminä. Maa oli punainen
heidän verestään ja punaisilta näyttivät hekin laskevan auringon
valossa. Oli kuin suuri henki eli Umkulunkulu olisi sivellyt maan
verisellä kädellä. Baleka alkoi itkeä, väsynyt kun oli, tyttö raukka, ja
me löysimme vain ruohoa ja vihreitä jyviä syödäksemme.

"Täällä on käynyt vihollinen", sanoin minä ja puhuessani olin


kuulevinani valitusta murretun kaisla-aitauksen takaa. Menin
katsomaan. Siellä makasi nuori nainen; hän oli pahoin haavoittunut,
mutta eli vielä, isäni. Lähellä makasi eräs mies kuolleena ja hänen
ympärillään toisia, jotka kuuluivat johonkin toiseen heimoon; hän oli
kaatunut taistellen. Naisen edessä oli kolmen lapsen ruumiit, neljäs,
joka oli vielä aivan pieni, lepäsi hänen rinnoillaan. Katselin häntä, ja
hän valitti jälleen avaten silmänsä, jolloin hän huomasi minut
seisoessani hänen vieressään keihäs kädessä.

"Tapa minut sukkelaan!" sanoi hän. "Etkö ole jo tarpeeksi


kiduttanut minua?"

Sanoin olevani vieras enkä tahtonut tappaa häntä.

"Tuo sitten minulle vettä", pyysi hän; "tuolla kylän takana on


lähde."

Kutsuin Balekan paikalle ja kiiruhdin astioineni lähteelle. Lähteessä


oli ruumiita, mutta minä vedin ne pois, ja kun vesi oli hiukan
selvennyt, täytin maljani ja kiiruhdin takaisin haavoittuneen luo. Hän
joi ja voimistui hiukan — vesi virkisti.

"Mitä täällä on tapahtunut?" kysyin minä.


"Zulujen päällikön Chakan soturit tulivat ja tuhosivat meidät",
vastasi nainen. "He hyökkäsivät kimppuumme tänä aamuna päivän
koittaessa, kun vielä nukuimme majoissamme. Heräsin taistelun
melskeeseen. Nukuin mieheni ja lasteni vieressä, jotka lepäävät
tuossa. Miehelläni oli keihäs ja kilpi. Hän oli urhoollinen. Katsokaa,
hän kuoli sankarin lailla, hän tappoi kolme noita zulu-paholaisia,
ennenkuin itse kaatui. Sitten he karkasivat minun kimppuuni ja
tappoivat lapseni ja iskivät minua, kunnes luulivat minua kuolleeksi.
Kun hävitys oli täydellinen, poistuivat he. En tiedä, miksi he tulivat,
mutta luulen syynä olevan sen, ettei päällikkömme tahtonut lähettää
väkeä Chakan avuksi Zweeteä vastaan."

Hän vaikeni huudahtaen tuskallisesti ja kuoli. Sisareni itki ja


minäkin olin liikutettu. "Ah", ajattelin minä, "suuri henki on
varmaankin hyvin paha. Muuten ei tämmöistä voisi tapahtua." Silloin
ajattelin niin, isäni, mutta nyt ajattelen toisin. Emme ymmärtäneet
suuren hengen tarkoitusta, siinä kaikki. Olin silloin vielä nuori ja
arkasydäminen, mutta myöhemmin, kuten jo sanoin, minä totuin
tuommoisiin näkyihin. Minua ei voinut mikään liikuttaa, ei mikään.
Chakan päivinä olivat kaikki virrat verensekaiset — niin, meidän
täytyi vettä etsiessämme aina tarkastaa, oliko se puhdasta,
ennenkuin joimme. Silloin oppivat ihmiset kuolemaan eivätkä
nurisseet. Mitäpä se olisi hyödyttänyt? Kerranhan oli kuitenkin
kuoltava. Kuolemasta ei kannata välittää, ei rahtuakaan, mutta
syntymisen laita on toisin. Syntymisemme maailmaan on erehdys,
isäni.

Pysähdyimme kylään yöksi, mutta emme voineet nukkua, sillä


kaatuneiden henget harhailivat ympärillämme huudellen toisilleen.
Olihan aivan luonnollista, että he tekivät niin, miehet hakivat
vaimojaan ja äidit lapsiaan. Mutta me pelkäsimme heidän olevan
vihoissaan meille, kun olimme tunkeutuneet heidän kyläänsä, niin
että painauduimme lujasti toisiimme pelosta vavisten. Koos vapisi
myöskin ja ulvoi silloin tällöin valittavasti. Mutta henget eivät
näyttäneet huomaavan meitä ja aamupuoleen yötä heidän huutonsa
hiljenivät.

Ensimmäisen valonkajastuksen ilmestyessä taivaalle me nousimme


ja kuljettuamme hetkisen sinne tänne mutkitellen kuolleita
välttääksemme me olimme pian aavikolla jälleen. Tie Chakan luo oli
nyt helppo löytää, sillä soturit ja ryöstetty karja olivat polkeneet
maahan leveän tien, ja silloin tällöin tapasimme jonkun kuolleen
soturin, joka oli surmattu sentähden, ettei ollut haavojensa takia
kyennyt pysymään joukon mukana. Minua alkoi epäilyttää, oliko
lainkaan viisasta mennä Chakan luo, sillä kaiken sen jälkeen, mitä
olimme nähneet, minä aloin pelätä, että hän tappaisi meidät. Mutta
kun meillä ei ollut mihin mennä, sanoin minä, että jatkaisimme
matkaamme, kunnes jotakin tapahtuisi.

Voimamme alkoivat olla lopussa, ja Baleka sanoi, että meidän olisi


parempi heittäytyä maahan kuolemaan päästäksemme kaikista
vaivoista. Istahdimme erään lähteen reunalle. En tahtonut sentään
vielä kuolla, vaikka se olisikin ollut kaikista parasta, kuten Baleka
sanoi. Istuessamme siinä hävisi Koos lähellä olevaan pensaikkoon ja
samassa minä näin sen hyppäävän jonkun kimppuun ja kuulin
meteliä. Kiiruhdin katsomaan — koira oli yhdyttänyt itsensä kokoisen
metsävuohen, joka oli nukkunut pensaikossa. Lävistin eläimen
keihäälläni ja huudahdin ilosta, sillä nythän meillä oli syötävää.

Nyljin otuksen ja leikkasin sen reidestä pitkiä viipaleita, jotka


huuhdoimme lähteessä ja söimme raakoina, sillä meillä ei ollut tulta,
millä olisimme voineet keittää ruokamme. Raaka liha on kylläkin
vastenmielistä syödä, mutta me olimme niin nälissämme, ettemme
välittäneet mistään, ja liha virkisti meitä. Syötyämme niin paljon kuin
jaksoimme me nousimme ja peseydyimme lähteessä, mutta
ollessamme melkein valmiit katsahti Baleka äkkiä ylös ja huudahti
kauhusta. Sillä edessämme erään kunnaan laella noin kymmenen
keihäänheiton päässä oli kuusi aseistettua oman heimoni miestä —
isäni Makedaman lapsia — jotka vielä vainosivat meitä vangitakseen
tahi tappaakseen meidät. He huomasivat meidät — huudahtivat ja
hyökkäsivät kohti. Hypähdimme ylös ja syöksyimme aavikolle —
juoksimme kuin hirvet, sillä pelko terästi jalkamme.

Edessämme ei ollut mitään esteitä ja maa vietti loivasti Umfolozi-


jokea kohti, joka polveili tasangon halki suuren ja kimmeltävän
käärmeen lailla. Toisella puolella maa alkoi jälleen nousta emmekä
tienneet, mitä äyräiden takana mahtoi olla, mutta me ajattelimme,
että Chakan kylät olivat sielläpäin. Riensimme jokea kohti —
mihinkäpä muualle, Ja soturit tulivat perässämme. He pääsivät yhä
lähemmäksi; he olivat täysissä voimissaan ja raivoissaan sentähden,
että olivat joutuneet niin kauas kotoa. Juoksimme henkemme
edestä, mutta he vain lähenivät. Saavuimme joen äyräälle, joki oli
tulvillaan ja peloittavan leveä. Ylempänä oli vahva niva, jossa vesi
velloi näkymättömien louhien synnyttämissä vaahtoisissa pyörteissä;
alempana kohisi koski, jonka hyrskyistä ei kukaan olisi voinut
hengissä selvitä; välillä oli tyyni suvanto, jossa oli kuitenkin vahva
virta.

"Ah, veljeni, mitä nyt teemme?" huohotti Baleka.

"Muuta valittavaa ei ole kuin joko sortua heimolaistemme


keihäisiin, tahi koettaa päästä joen yli", vastasin minä.

"On helpompi hukkua kuin kuolla keihäisiin", sanoi Baleka.


"Hyvä on. Osaammehan ainakin uida ja tulkoot isäimme henget
avuksemme."

Vein hänet suvannon yläpäähän ja heitettyämme rannalle peitteet


ja kaikki tavaramme — paitsi keihästäni, jonka otin hampaideni väliin
— me syöksyimme veteen ja kahlasimme niin kauas kuin voimme.
Vesi ulottui pian rintaan saakka ja astuttuamme pari askelta vielä me
aloimme uida toista ranta kohti Koos edellämme.

Samassa ilmestyivät soturitkin törmälle.

"Ah, te veitikat!" huusi eräs, "lähdittekö uimaan! Uikaa vain, mutta


te hukutte varmasti, ja ellette huku, niin me tapamme teidät, sillä
me tiedämme kahlaamon, ja otamme teidät kiinni! Nitistämme
teidät, vaikka meidän täytyisi juosta perässänne maailman ääriin." Ja
hän sinkautti meitä kohti keihäänsä, joka sujahti väliimme välähtäen
kuin salama.

Uimme koko ajan voimakkain vedoin ja pääsimme virtaan. Se


kiidätti meitä alaspäin, mutta me etenimme yhä, sillä olimme
molemmat hyviä uimareita. Jos pääsisimme rannalle, ennenkuin
kantautuisimme koskeen, olisimme turvassa, ellemme — niin hyvää
yötä sitten!

Olimme jo, lähellä rantaa, mutta vaahtohyrskyt olivat myös lähellä.


Ponnistelimme ja taistelimme henkemme edestä. Baleka oli rohkea
tyttö ja ui urhoollisesti, mutta virta painoi hänet alapuolelleni enkä
minä voinut häntä mitenkään auttaa. Nojasin jalkani erästä kalliota
vasten ja silmäsin ympärilleni. Tuolla hän oli kahdeksan askeleen
päässä kohisevista pyörteistä. En voinut tehdä mitään. Olin liian
voimaton ja minusta näytti, että hänen täytyi tuhoutua. Mutta silloin
tuli Koos apuun.
Se ui hänen luokseen ja kääntyi sitten vasten virtaa haukahtaen
pari kertaa, ja Baleka tarttui oikealla kädellään sen häntään. Hän
käytteli jalkojaan ja vasenta kättään ja molemmat lähenivät hitaasti
— hyvin hitaasti. Ojensin keihääni varren heitä kohti ja Baleka tarttui
siihen vasemmalla kädellään. Hänen jalkansa olivat vielä kuohuissa,
mutta minä vedin ja Koos veti ja vihdoin saimme hänet rantaveteen
ja siitä kuivalle maalle, johon hän vaipui huohottaen
henkimenokseen.

Kun toisella rannalla olevat soturit näkivät meidän päässeen yli,


huudahtivat he raivoisasti ja riensivät alaspäin.

"Nouse, Baleka!" sanoin minä. "Soturit ovat menneet kahlaamoa


etsimään."

"Ah, anna minun kuolla!" vastasi hän.

Mutta minä pakotin hänet nousemaan ja hetkisen kuluttua hän jo


hengitti säännöllisesti ja me kiiruhdimme niin nopeasti kuin voimme
pitkää rinnettä ylös. Kuljettuamme hiukan kolmatta tuntia me
tulimme tasangolle ja näimme kaukana edessäpäin suuren kylän.

"Rohkaise mielesi", sanoin minä. "Katso, tuolla asuu Chaka."

"Niin, veljeni", vastasi hän, "mutta mikä kohtalo odottaa meitä


siellä?
Takanamme ja edessämme on kuolema — olemme kuoleman
kidassa."

Pian saavuimme tielle, joka meni kahlaamolta suoraan kylään, ja


jota myöten Chakan soturit olivat kulkeneet. Kiiruhdimme eteenpäin,
kunnes vihdoin olimme vain puolen tunnin matkan päässä kylästä.
Katsahdimme taaksemme, ja katso! vainoojamme olivat taas
perässämme — viisi kaikkiaan — sillä yksi oli hukkunut koettaessaan
päästä joen yli.

Juoksimme jälleen, mutta olimme jo ennestään uuvuksissa, ja


soturit tulivat yhä lähemmäksi. Silloin muistui koira mieleeni. Koos oli
vihainen ja hyökkäsi käskystäni kenen kimppuun hyvänsä. Kutsuin
sen luokseni ja vaikka tiesin, ettei se selviäisi leikistä hengissä,
päätin uhrata sen. Osoitin miehiä, ja koira syöksyi nuolena heidän
kimppuunsa äristen ja korvat pystyssä. He koettivat osua siihen
nuijalla ja keihäillään, mutta se riehui kuin hornanhenki heidän
ympärillään purren raivoisasti eikä päästänyt joukkoa eteenpäin.
Viimein onnistui erään soturin iskeä sitä keihäällään, mutta samassa
syöksyi koirakin soturin kurkkuun kiinni, ja molemmat kaatuivat.
Raivoisa taistelu seurasi ja loppui vasta sitten, kun molemmat olivat
kuolleet. Ah, sepäs oli koira! Semmoisia ei nähdäkään enää tähän
maailman aikaan. Sen isä oli eräs buurikoira, ensimmäinen laatuaan
tässä maassa. Kerran se oli tappanut leopardinkin aivan yksinään. No
niin, Koos-koirani kuoli viimeiseen saakka tapellen.

Olimme juosseet koko ajan ja kylän portti oli enää vain parinsadan
askeleen päässä. Sisäpuolella oli jotakin tekeillä; huomasimme sen
sieltä kuuluvasta melusta ja korkealle kiiriskelevistä tomupilvistä.
Jäljellä olevat neljä vainoojaamme olivat taas kintereillämme
jätettyään kuolevan toverinsa oman onnensa nojaan. Tiesin, että he
tavoittaisivat meidät, ennenkuin pääsisimme portista sisään, sillä
Baleka jaksoi nyt vain hitaasti kulkea. Eräs ajatus juolahti silloin
mieleeni. Olin houkutellut hänet mukaani ja minun oli pelastettava
hänet keinolla millä hyvänsä. Jos hän pääsisi kylään yksinäänkin, ei
Chaka surmaisi hänen laistaan nuorta ja kaunista tyttöä.
"Juokse, Baleka, juokse!" sanoin minä jääden jälkeen. Hän oli
melkein sokea väsymyksestä ja kauhusta ja horjui porttia kohti,
huomaamatta tarkoitustani. Mutta minä istahdin hengittämään, sillä
minunhan oli taisteltava neljää vastaan kuolemaani saakka.
Sydämeni löi haljetakseen, ja veri kohisi korvissani, mutta kun
miehet lähenivät, nousin minä keihäs kädessäni — jälleen näin
punaista häilyvän silmäini edessä ja pelkoni hävisi.

Miehet tulivat parittain juosten noin keihäänheiton päässä


toisistaan, mutta ensimmäisestä parista oli toinen noin kuusi askelta
edellä toisesta. Hän hyökkäsi karjaisten minua kohti keihäs ja kilpi
koholla. Minulla ei ollut kilpeä, keihäs vain, mutta olin varuillani ja
hän oli ylimielinen. Odotin, kunnes hän vei keihään taaksepäin
iskeäkseen, mutta samassa minä pudottausin polvilleni ja iskin koko
voimallani ylöspäin hänen kilpensä reunan alapuolelle. Hän iski
myös, mutta ylitseni, keihäänkärki vain hiukan raapaisi olkapäätäni
— näetkös — arpi näkyy vielä tänä päivänäkin. Entä minun keihääni?
Ah, se osui paikalleen, keskeltä lävisti. Hän kaatui ja peittyi
tomupilveen maassa keppuroidessaan. Mutta nyt olin aseeton, sillä
keveä heittokeihääni katkesi hänen kaatuessaan, ja minulla oli
kädessäni vain lyhyt varrenpätkä. Ja toinen soturi oli jo kimpussani!
Hän näytti suurelta kuin metsän puu katsahtaessani ylös ja minä
menetin toivoni, tunsin kuolevani ja pimeyden kuilut näyttivät jo
aukenevan. Heittäydyin maahan kätteni ja polvieni varaan ja
pyörähdin koko painollani vastustajani jalkoja vasten sillä
seurauksella, että tämä syöksyi suinpäin tantereeseen, ja ennenkuin
hänen kätensä olivat koskettaneet maahan, olin minä jaloillani.
Keihäs oli kirvonnut hänen kädestään. Sieppasin sen, ja kun hän
alkoi nousta, iskin minä sen hänen selkäänsä. Tämä kaikki tapahtui
silmänräpäyksessä, isäni, ja samassa silmänräpäyksessä hän oli
myös kuollut. Sitten minä kiiruhdin tieheni tohtimatta enää odottaa
toisia, sillä olin uupunut ja rohkeuteni oli mennyt.

Noin sadan askeleen päässä horjui Baleka eteenpäin kädet


levällään kuin henkilö, joka on juonut liian paljon olutta, ja kun
tavoitin hänet, oli hän portista noin neljänkymmenen askeleen
päässä. Mutta silloin hänen voimansa pettivät. Hän vaipui tajutonna
maahan ja minä jäin seisomaan hänen viereensä, ja siihen minut
olisi tapettukin, ellei sallimus olisi säätänyt toisin. Viivyttyään
hetkisen kuolleiden toveriensa luona hyökkäsivät jäljellä olevat kaksi
soturia minua kohti suunniltaan raivosta. Mutta samassa aukeni
portti, ja joukko sotureita syöksyi ulos raastaen mukanaan vankia.
Heidän perässään kulki eräs roteva mies, jolla oli leopardinnahka
hartioillaan, nauraen, ja häntä seurasi viisi tahi kuusi neuvonantajaa,
joilla kaikilla oli kiiltävä rengas pään ympärillä. Joukko sotureita
päätti kulkueen.

Soturit huomasivat heti, että tappo oli tekeillä, ja ehdättivät


paikalle juuri kun vainoojamme tavoittivat meidät.

"Keitä olette te, jotka rohkenette tappaa Elefantin asunnon


portilla?" huudahtivat soturit. "Täällä on vain Elefantilla oikeus
tappaa!"

"Olemme Makedaman miehiä", vastasivat ahdistajamme, "ja


ajamme takaa näitä pahantekijöitä, jotka ovat tehneet kotonamme
paljon pahaa ja murhiakin. Katso! Äsken he surmasivat kaksi
toveriamme ja toisia viruu hengettöminä pitkin tietä. Salli meidän
tappaa heidät."

"Kysy Elefantilta", vastasi soturi, "ja pyydä samalla, ettei sinuakin


tapettaisi."
Tuo roteva päällikkö kuuli sanat ja astui lähemmäksi huomaten
veren. Hän oli harvinaisen pitkä ja ryhdikäs, vaikka oli iältään aivan
nuori vielä. Hän oli päätään pitempi kaikkia muita ja hänen rintansa
oli yhtä leveä kuin kaksi tavallisen miehen rintaa yhteensä. Kasvot
olivat kauniit ja tuimat, ja kun hän vihastui, säkenöivät hänen
silmänsä kuin nuotiosta temmattu kekäle.

"Keitä ovat nämä, jotka uskaltavat panna pölyn pilveilemään


porttieni edessä?" kysyi hän kulmiaan rypistäen.

"Oi Chaka, oi Elefantti!" vastasi joukon johtaja kumartaen melkein


maahan saakka, "nämä vieraat soturit sanovat, että nuo ovat
pahantekijöitä, joita tappamaan heidät on lähetetty."

"Hyvä!" sanoi hän. "Pahantekijät tapettakoon!"

"Me kiitämme sinua, oi suuri päällikkö!" sanoivat heimolaiseni,


jotka olivat tulleet meitä tappamaan.

"Kuulitte sanani", vastasi hän, ja lisäsi soturien johtajan puoleen


kääntyen: "Kun he ovat surmanneet pahantekijät, puhkaise heidän
silmänsä ja käännä heidät aavikolle kotiinsa pyrkimään, koska he
ovat rohjenneet kohottaa keihäänsä zulujen porteilla. Kaikukoon
ylistyksenne, lapseni!" Ja hän purskahti nauruun soturien mutistessa:
"Ou! hän on viisas, hän on suuri, ja hänen tuomionsa on kirkas ja
kaamea kuin aurinko!"

Mutta heimolaiseni huusivat pelosta, sillä he eivät pyytäneet


tämänkaltaista oikeutta.

"Katkaise heidän kielensäkin", sanoi Chaka. "Mitä? Täytyykö


zulumaan sietää tuommoista meteliä? Ei kuunaan! Tuostahan
karjakin säikähtyy ja lehmät synnyttävät keskosia. Toimeen, te
mustat lurjukset! Tuossa on tyttö. Hän on tajuton ja avuton.
Tappakaa hänet. Mitä? Epäröittekö? No, jos haluatte asiaa ajatella,
niin annan teille miettimisen aikaa. Voidelkaa nuo miehet hunajalla ja
sitokaa heidät muurahaispesään; huomenna he varmasti tietävät,
mitä he tahtovat. Mutta tappakaa ensin nuo kaahatut sakaalit", ja
hän viittasi minuun ja Balekaan. "He näyttävät väsyneiltä ja haluavat
varmaankin levätä."

Siihen saakka olin ollut vaiti, mutta nyt puhuin, sillä soturit
lähestyivät.

"Oi Chaka!" huudahdin minä. "Olen Mopo ja tämä on sisareni


Baleka."

Vaikenin ja kaikki läsnäolijat purskahtivat nauruun.

"Hyvä on, Mopo ja sisaresi Baleka", sanoi Chaka julmasti. "Hyvää


huomenta, Mopo ja Baleka, ja — hyvää yötä myöskin!"

"Oi Chaka!" keskeytin minä. "Olen Mopo, Makedaman, langenien


heimon päällikön poika, sama, joka antoi sinulle kerran kauan sitten
vettä juodaksesi, kun olimme molemmat vielä pieniä. Silloin pyysit
minua tulemaan luoksesi, kun olit kasvanut suureksi, ja vannoit
suojelevasi minua etkä tekeväsi minulle mitään pahaa. Olen tullut
sisareni mukanani, ja nyt pyydän, ettet riko kauan sitten antamaasi
lupausta."

Puhuessani Chakan kasvojen ilme muuttui ja hän kuunteli tarkasti


kuin mies, joka pitää kättään korvan takana. "Tuo ei ole valetta",
lausui hän sitten. "Tervetuloa, Mopo! Saat olla koira majassani ja
syödä kädestäni. Mutta sisarestasi en maininnut mitään. Miksi en
antaisi tappaa häntä, kun vannoin tuhoavani koko heimosi sinua
lukuunottamatta?"

"Koska hän on liian kaunis tapettavaksi, oi päällikkö!" vastasin


minä rohkeasti, "ja koska rakastan häntä. Suo minulle se
armonosoitus, että säästät hänet."

"Kääntäkää tyttö selälleen", sanoi Chaka. Ja soturit tekivät niin,


jolloin hänen kasvonsa tulivat näkyviin.

"Et nytkään valehdellut, Makedaman poika", sanoi päällikkö.


"Suostun pyyntöösi. Maatkoon hänkin suojassani ja luettakoon hänet
sisarieni joukkoon. Kerro nyt tarinasi, mutta puhu totta."

Istahdin maahan ja kerroin hänelle kaikki, eikä hän kyllästynyt


kuuntelemaan. Kun olin lopettanut, sanoi hän vain pahoittelevansa,
että Koos-koirani oli saanut surmansa. Jos koira olisi vielä elänyt,
olisi hän pannut sen isäni Makedaman majan harjalle, ja tehnyt siitä
langenien heimon päällikön.

Sitten hän sanoi soturien johtajalle: "Peruutan sanani. Älköön


noita langenisotureita silvottako. Toinen kuolkoon ja toinen menköön
tiehensä. Kas tässä", hän viittasi mieheen, jonka soturit olivat
raastaneet portista ulos, "kas tässä, Mopo, on mies, joka on
osoittanut olevansa pelkuri. Eilen hävitettiin käskystäni eräs
heittiöiden kylä — ehkä te molemmat näitte sen kulkiessanne. Tämä
ja kolme muuta ahdistivat erästä soturia, joka puolusti vaimoaan ja
lapsiaan. Tämä koira pelkäsi kohdata häntä silmä silmää vasten,
surmasi hänet heittokeihäällä ja tappoi sitten vaimon. Mitäpä siitä,
mutta hänen olisi pitänyt taistella kuin mies silmä silmää vasten. Nyt
suon hänelle sen kunnian. Hänen täytyy tapella kuolemaan saakka
toisen kanssa noista heimolais-sioistasi." Ja hän viittasi keihäällään
isäni miehiin. "Sitä, joka jää eloon, ajetaan takaa, kuten sinua on
ajettu. Toisen sian lähetän kotiinsa viemään heimollesi terveiseni.
Valitkaa, Makedaman lapset, kumpi teistä tahtoo elää."

Nyt sattui niin, että nuo miehet olivat veljekset ja rakastivat


toisiaan, ja molemmat olivat halukkaat kuolemaan toisensa puolesta.
Sentähden astuivat molemmat esiin sanoen tahtovansa tapella zulun
kanssa.

"Mitä, onko sioillakin kunniantuntoa?" sanoi Chaka. "Sittenpä


ratkaisen itse asian. Näette tämän keihään? Heitän sen ilmaan: jos
se putoaa terälleen, on pitempi mies vapaa, ja jos se putoaa
varrelleen, jääköön lyhyempi eloon. Kas niin!" Ja hän heitti tuon
pienen keihään ilmaan pannen sen kiivaasti kieppumaan. Kaikki
katselivat kuinka se pyöri ja putosi. Terä kosketti ensin maahan.

"Tule tänne", sanoi Chaka veljeksistä pitemmälle. "Kiiruhda


takaisin Makedaman luo ja sano hänelle näin: 'Näin sanoo Chaka,
Zulu-ka-Malandelan leijona. Vuosia sitten kieltäytyi heimosi
antamasta minulle maitoa. Tänään ulvoo poikasi Mopon koira majasi
katolla.' Mene!"

Mies kääntyi puristamaan veljensä kättä, katsahti minuun


kulmiaan rypistäen ja lähti viemään noita pahaaennustavia terveisiä.

Silloin Chaka kääntyi zulun ja viimeisen ahdistajani puoleen ja


käski heidän tapella. Tervehdittyään päällikköä raikuvin huudoin he
hyökkäsivät toistensa kimppuun ja raivoisa taistelu alkoi, joka loppui
siten, että heimolaiseni voitti zulun. Mutta niin pian kuin hän oli
ehtinyt hiukan hengähtää, hänen täytyi lähteä juoksemaan henkensä
edestä viisi valikoitua juoksijaa kintereillään.
Mutta mies voitti heidätkin; hän mutkitteli sinne tänne jättäen
vainoojat pian jälkeensä ja pelastui. Tulos ei suututtanut Chakaa
lainkaan, ja minä luulen, että hän oli käskenyt miestensä juosta
hitaasti. Chakan julmassa sydämessä oli vain yksi hyvä ominaisuus:
hän tahtoi aina pelastaa urhoollisen miehen hengen, jos se vain kävi
päinsä hänen tarvitsematta rikkoa sanaansa. Omasta puolestani olin
iloinen, että heimolaiseni surmasi miehen, joka oli tappanut tuon
kylässä joen toisella puolella tapaamamme kuolevan naisen lapset.
V.

MOPOSTA TULEE KUNINKAAN LÄÄKÄRI.

Näin, isäni, saavuimme minä Mopo ja sisareni Baleka Chakan,


zululeijonan, luo. Olen kertonut nämä tapaukset sentähden niin
tarkoin, että ne kuuluvat erottamattomasti kertomukseeni kansani
kohtalosta. Saamme nähdä näiden tapausten välittömänä
seurauksena olevan, että Umslopogaas Bulalio, teurastaja, ja Nada-
kaunotar, joiden lemmentarina myös sisältyy kertomukseeni,
syntyivät maailmaan — ne olivat kuin siemen, josta kasvaa suuri
puu. Sillä Nada oli tyttäreni eikä Umslopogaas, vaikka vain harvat
tiesivät sen, ollut kukaan muu kuin Chakan poika, sisareni Balekan
synnyttämä.

Kun Baleka oli tointunut pakomme aiheuttamasta uupumuksesta


ja hänen kauneutensa oli palautunut entiselleen, otti Chaka hänet
vaimokseen — "sisarekseen," kuten hän heitä nimitti. Minut hän otti
lääkärikseen, izinyangakseen, joita oli jo ennestään suuri joukko, ja
taitoni miellytti häntä niin, että minusta tuli vihdoin hänen
ylilääkärinsä. Tämä oli jo mahtava asema, jossa minulle karttui
vuosien kuluessa paljon karjaa ja vaimoja, mutta se oli myös
vaarallinen. Kun nousin aamulla terveenä ja reippaana, en voinut
milloinkaan tietää, makaisinko illalla verissäni ja kankeana.

Chaka surmasi paljon lääkäreitä; tekivätpä nämä työnsä kuinka


kunnollisesti hyvänsä, surmattiin heidät kuitenkin viimein. Useinhan
sattui, että kuningas tunsi itsensä sairaaksi tahi masentuneeksi,
jolloin nuo heittiöt, jotka olivat parannelleet häntä, saivat maistaa
keihästä tahi kidutusta! Mutta minä selvisin aina taitavuuteni avulla,
ja sitten minua suojeli myös tuo vala, jonka Chaka oli lapsena
minulle vannonut. Ja asiat kehittyivät vihdoin sille kannalle, että
minä seurasin kuningasta kaikkialle. Majani oli hänen majansa
lähellä, istuin neuvotteluissa hänen takanaan ja taistelussa olin aina
hänen läheisyydessään.

Ah, niitä taisteluja — niitä taisteluja! Silloin osasimme tapella,


isäni! Tuhansittain korppikotkia ja laumoittain hyenoita saattoi silloin
seurailla rykmenttejämme, eikä yhdenkään tarvinnut poistua
nälissään. En voi milloinkaan unhottaa ensimmäistä taistelua, jolloin
seisoin Chakan vieressä. Se tapahtui heti sen jälkeen, kun hän oli
rakentanut suuren kaupunkinsa Umhlatuzen etelärannalle. Zwide-
niminen päällikkö ahdisti silloin kolmannen kerran kilpailijaansa
Chakaa, joka samosi häntä vastaan kymmenen täysilukuisen
rykmentin kanssa, joilla oli ensi kerran aseina lyhyet pistokeihäät.

Asema oli tämmöinen: pitkällä matalahkolla rinteellä meidän


edessämme olivat Zwiden rykmentit, joita oli seitsemäntoista, koko
näköpiiri oli mustana sotureita, ja niiden töyhdöt täyttivät ilman kuin
lumi. Me olimme myös erään kukkulan rinteellä ja välillämme oli
laakso, jonka läpi virtasi pieni joki. Koko yön pilkottivat tulet laakson
poikki, ja sotureiden laulu kajahteli rinteiltä, ja kun harmaja aamu
sarasti ja härät alkoivat ammua, nousivat rykmentit
keihäsvuoteiltaan; soturit hyppäsivät ylös ja ravistivat kasteen
hiuksistaan ja kilvistään — niin! he nousivat! he olivat valmiit iloiseen
kuolemaan. Rykmentti toisensa jälkeen järjestäytyi taisteluun.

Nuo lukemattomat keihäät, joita oli kuin tähtiä taivaalla,


muodostivat valtavan vyön, ja kuin tähdet ne kimaltelivat ja
välähtelivät. Aamutuuli virisi ja hyväili niitä ja soturien töyhdöt
huojuivat tuulessa kuin lainehtiva viljapelto, sotureiden, jotka olivat
kypsät keihäälle. Aurinko nousi kukkulan takaa ja loi punertavan
valonsa punaisille kiiville punaten taistelukentänkin, ja päälliköiden
töyhdöt olivat kuin taivaan veressä kastetut. He tiesivät, mitä se
merkitsi, he näkivät tuon kuolon enteen, mutta ah, he vain nauroivat
ilosta ajatellessaan alkavaa taistelua. Mitäpä kuolemasta? Eikö ollut
suloista saada kuolla keihäiden iskujen sadellessa? Mitäpä
kuolemasta? Eikö ollut ihanaa kuolla kuninkaan edestä? Kuolemalla
voitto saavutetaan. Illalla on voitto oleva heidän morsiamensa ja ah,
hänen povensa on hurmaava.

Kuule! Sotalaulu, ingomo, joka voimallaan huumaa miesten


mielen, alkaa kaikua vasemmalta ja vyöryy rykmentistä toiseen
kasvaen koko ajan, kunnes se jyrisee ukkosena:

Valmiit olemme kuolemaan, me kuninkaamme lapset,


Sinä olet myöskin meikäläinen!
Olemme zuluja, Leijonamme lapsia,
Mitä! Vapisetko?

Samassa nähtiin Chakan kulkevan tarkastellen rivejä pitkin


paälliköidensä, ylimystensä ja minun seuraamana. Hän muistutti
käydessään suurta hirveä ja hänen katseensa ennusti kuolemaa,
hänen nuuskiessaan ilmaa kuin suurta tappoa vainuava hirvi. Hän
kohotti keihäänsä ja kaikkialla tuli hiljaista, laulun kaiku vain kiiriskeli
vielä rinteillä.

"Missä ovat Zwiden lapset?" huusi hän ja hänen äänensä kajahti


kuin härän mylvinä.

"Tuolla, isä", vastasivat rykmentit ja jokainen keihäs osoitti laakson


poikki.

"He eivät tule", huusi hän jälleen. "Pitääkö meidän istua tässä
odottamassa, kunnes tulemme vanhoiksi?"

"Ei, isä", vastattiin. "Hyökätkäämme!"

"Umkandhlun rykmentti astukoon esiin!" huusi hän kolmannen


kerran ja samassa syöksähtivät Umkandhlun rykmentin mustat kilvet
rivistöstä.

"Menkää, lapseni!" huusi Chaka. "Vihollinen on tuolla. Menkää


älkääkä enää palatko!"

"Kuulemme, isä!" vastasivat soturit yhteen ääneen ja hyökkäsivät


rinnettä alas kuin suunnaton lauma terässarvisia villieläimiä.

He syöksyivät joen poikki ja Zwiden joukot havahtuivat. Riveistä


kuului huudahduksia, ja keihäiden kärkien kimmeltävät rivit
välähtivät.

Ou! ne tulevat! Ou, joukot ovat iskeneet yhteen! Kuule kilpien


jymyä!
Kuule taistelun melskettä!
Rivit huojuvat. Umkandhlun rykmentti väistyy — pakenee! Soturit
syöksyvät takaisin joen poikki — puolet rykmenttiä on kaatunut.
Riveistämme kohoaa raivokas huuto, mutta Chaka vain hymyilee.

"Rivit auki! Rivit auki!" huutaa hän. "Tilaa Umkandhlun tytöille!" Ja


soturit menevät maahanluoduin katsein rintamamme taakse.

Nyt hän kuiskaa jotakin ylimyksille. Nämä kiiruhtavat tiehensä,


sanovat sanan Menziva-kenraalille ja päälliköille ja samassa hyökkää
kaksi rykmenttiä suoraan rinnettä alas, kaksi rykmenttiä kiiruhtaa
oikealle ja kaksi vasemmalle. Mutta Chaka jää kukkulalle kolmen
jäljelläolevan rykmentin kanssa. Jälleen iskevät kilvet jymisten
toisiaan vasten. Ah! nuo ovat urhoja: he tappelevat eivätkä pakene.
Rykmentti toisensa jälkeen iskee heidän kimppuunsa, mutta he eivät
väisty. Heitä kaatuu sadoittain, tuhansittain, mutta ei ainoakaan
soturi näytä viholliselle selkäänsä, ja jokainen kaatuneemme maksaa
viholliselle pari miestä. Wow! isäni, nuo rykmentit tuhoutuivat
viimeiseen mieheen. Niiden soturithan olivat tosin vain nuorukaisia,
mutta ne olivat Chakan lapsia. Menziva oli hautautunut soturiensa
ruumiiden alle. Semmoisia miehiä ei ole enää. Ne ovat kaikki
kuolleet.

Mutta Chaka odottaa vieläkin. Hän katselee pohjoiseen ja etelään.


Ja katso! Puiden välissä välähtelee keihäitä. Rykmenttimme
hyökkäävät vihollisen sivustoja vastaan. He tappavat ja heitä
tapetaan, mutta Zwiden soturit ovat urhoollisia ja niitä on paljon, ja
me olemme joutua tappiolle.

Silloin lausuu Chaka ratkaisevan sanan. Päälliköt kuuntelivat ja


soturit kurkottivat päitään kuullakseen.

Vihdoinkin on kajahtanut huuto: "Eteenpäin Zulu-kansan lapset!"


Sotahuutomme jymisee ukkosena, maa vavahtelee jalkojen
poljennasta, keihäät välähtelevät, töyhdöt taipuvat, ja kuin
myrskypilvi, kuin joki, joka syöksyy äyräidensä yli, me ryntäämme
rinnettä alas vihollisen kimppuun, joka järjestäytyy meitä
kohtaamaan. Samassa on joki takanamme, ja haavoittuneet
toverimme kohottautuvat ryntäilleen ja heiluttavat meille käsiään.
Tallaamme heidät jalkoihimme. Mitäpä heistä. Eiväthän he voi
kuitenkaan enää tapella. Sitten syöksyvät Zwiden soturit meitä
tervehtimään ja me iskemme yhteen kuin kaksi härkää. Ou! isäni, en
tiedä enää mitään, mitä ympärilläni tapahtuu. Kaikki muuttuu
punaiseksi. Sitä taistelua! Sitä taistelua! Pyyhkäisemme vihollisen
tieltämme, ja kun se on tehty, ei heitä enää näy, mutta rinne on
musta ja punainen. Muutamia pääsi pakoon. Menimme heidän
ylitseen kuin riehuva palo; me tuhosimme heidät. Hetkisen kuluttua
pysähdyimme katsomaan, minne vihollinen oli joutunut. Kaikki olivat
kuolleet. Zwiden sotajoukkoa ei ollut enää. Sitten järjestimme
rivimme. Kymmenen rykmenttiä oli nähnyt auringon nousun, kolme
rykmenttiä näki auringon laskevan; loput olivat menneet sinne, jossa
ei mikään aurinko valaise.

Sellaisia olivat taistelumme Chakan päivinä!

Kysyt, miten Umkandhlun rykmentin kävi, joka pakeni. Kerronpa


sinulle. Saavuttuamme kotiin käski Chaka tuon rykmentin
tarkastukseen ja puhui sotureille lempeästi, hyvin lempeästi. Hän
kiitti heitä palveluksesta ja sanoi olevan aivan luonnollista, että
"tytöt" pyörtyvät verta nähdessään ja pakenevat majoihinsa turvaa
etsimään. Mutta hän ei ollut pyytänyt heitä tulemaan takaisin ja he
olivat kuitenkin tulleet! Mitä oli hänen nyt siis tehtävä? Ja hän peitti
kasvonsa vaippansa liepeellä. Silloin soturit tappoivat heidät kaikki —
heitä oli pari tuhatta miestä — tappoivat pilkaten ja herjaten.
Siten me silloin pelkureita kohtelimme, isäni. Ja senjälkeen vastasi
yksi zulu viittä muun heimon miestä. Jos häntä vastaan tuli
kymmenenkin vihollista, ei hän lähtenyt pakoon. "Taistella ja kaatua,
mutta ei paeta", oli meidän tunnuslauseemme. Eikä Chakan eläessä
sattunut toista kertaa, että voitettu rykmentti olisi käynyt kuninkaan
kaupungin portista sisälle.

Tämä taistelu oli vain yksi monesta. Joka kuukausi lähti uusi
sotajoukko kastamaan keihäitään, palaten takaisin harvennein rivein,
mutta tuoden voitonsanoman ja suunnattomasti karjaa mukanaan.
Heimo toisensa jälkeen nöyrtyi, ja niistä, jotka säästyivät
tuhoutumasta, muodostettiin uusia rykmenttejä, niin että vaikka
miehiä kaatui tuhansittain joka kuukausi, armeijamme vain kasvoi.
Pian olivat kaikki muut päälliköt sortuneet. Umsuduka ja Mancengeza
kaatuivat. Umzilikazi pakeni pohjoiseen, ja Matiwane kukistettiin
perinpohjin. Sitten me hyökkäsimme tähän Natalin maahan.
Tullessamme ei sen väestön lukumäärää voitu laskeakaan. Kun
lähdimme, saattoi täällä ehkä tavata jonkun hengen, joka oli
kätkeytynyt johonkin piilopaikkaan, mutta siinä oli kaikki. Kaikki
tapettiin — miehet, naiset ja lapset — ja koko maa jäi autioksi. Sitten
tuli U'Fakun, amapondo-heimon päällikön, vuoro. Ah, missä on
U'Faku nyt?

Ja siten sotiminen jatkui, kunnes zulutkin kyllästyivät siihen ja


terävinkin keihäs tylsistyi.
VI.

UMSLOPOGAASIN SYNTYMÄ.

Chakan pääperiaatteita oli, ettei hän tahtonut lapsia, vaikka


hänellä olikin monta vaimoa. Jokainen lapsi, jonka hänen "sisarensa"
hänelle synnyttivät, surmattiin heti.

"Mitä se minua hyödyttäisi, Mopo", sanoi hän minulle, "että


kasvattaisin lapsia, jotka suuriksi tultuaan surmaisivat minut? Minua
sanotaan hirmuvaltiaaksi. Sanopas, miten kuolevat päälliköt, joita
sanotaan hirmuvaltiaiksi? Jälkeläistensä surmaamina, eikö niin? Ei,
Mopo, hengestäni huolehdin, ja kun olen mennyt isieni luo, ottakoon
vahvin paikkani ja mahtini!"

Nyt kävi niin, että vähän aikaa sen jälkeen kuin Chaka oli puhunut
minulle näin, tuli sisareni, Balekan, joka oli nyt kuninkaan vaimo,
synnytyksen hetki, ja samana päivänä synnytti vaimoni Macropha
kaksoiset, ja kahdeksan päivää ennen oli toinen vaimoni, Anadi,
lahjoittanut minulle pojan. Kysyt, isäni, miten tulin menneeksi
naimisiin, kun Chaka oli kieltänyt kaikkia sotureja menemästä
naimisiin, ennenkuin he olivat päässeet keski-ikään ja panneet
renkaan päänsä ympärille täysi-ikäisyyden merkiksi. Kun olin lääkäri,
teki hän minuun nähden poikkeuksen sanoen, että lääkärin oli hyvä
tuntea naisten sairaudet ja osata tarpeen vaatiessa parannella
heidän pahaa luontoaankin. Niinkuin se olisi mahdollista, isäni!

Kun kuningas kuuli Balekan olevan sairaana, ei hän surmauttanut


tätä heti, sillä hän rakasti hieman Balekaa, vaan lähetti hakemaan
minua käskien minun hoidella sisartani ja synnytyksen tapahduttua
tuoda tavan mukaan lapsen ruumis hänen nähtäväkseen, että hän
voisi todeta, oliko lapsi todellakin kuollut. Kumarsin maahan hänen
edessään ja menin raskain mielin täyttämään hänen käskyään.
Olihan Baleka sisareni ja hänen lapsensa samaa verta kuin minäkin!
Mutta niin täytyi kuitenkin käydä, sillä Chakan kuiskaus oli kuin
toisten kuninkaiden ärjähdys, ja jos rohkenimme olla
tottelemattomat, saivat kaikki heimolaisemme vastata siitä
hengellään. Parempi siis antaa yhden lapsen kuolla kuin kaikkien
joutua sakaalein ruoaksi. Pian saavuin kuninkaan vaimojen
asunnolle, nimeltään emposeni, ja mainitsin kuninkaan käskyn
vartijoille, jotka päästivät minut portista. Astuin Balekan majaan.
Siellä oli toisia kuninkaan vaimoja, mutta kun he näkivät minut,
nousivat he heti ja poistuivat, sillä olisi ollut lainrikkomus jäädä
majaan minun tultuani sisään. Sitten jäin kahdenkesken sisareni
kanssa.

Hän makasi hiljaa eikä puhunut mitään, mutta poven kohoilusta


näin, että hän itki.

"Tyynnyhän, pienoiseni", sanoin minä vihdoin; "tuskasi menee pian


ohi."

"Ei", vastasi hän kohottaen kättään, "nyt se vasta alkaakin. Oi,


sinä julma mies! Minä tiedän kyllä miksi tulit. Sinä tulit surmaamaan
lapsen, jonka synnytän."
"Kuninkaan käsky, vaimo!"

"Kuninkaan käsky, niin, ja mitä on kuninkaan käsky? Eikö sitten


minulla ole mitään sanomista tässä asiassa?"

"Lapsi on kuninkaan, vaimo."

"Lapsi on kuninkaan, mutta minun myös. Täytyykö siis käydä niin,


että pienokaiseni reväistään rinnoiltani ja kuristetaan? Ja sinäkö
tämän tekisit, Mopo? Enkö ole aina rakastanut sinua, Mopo? Enkö
paennut kanssasi heimomme luota, kun pelkäsit isämme kostoa?
Tiedätkö, että pari kuukautta sitten oli kuningas raivoissaan sinulle
tuntiessaan itsensä sairaaksi ja olisi tappanut sinut, ellen olisi
puhunut puolestasi ja muistuttanut häntä valastaan? Ja näin sinä nyt
minua kiität: tulet surmaamaan lapseni, esikoiseni!"

"Kuninkaan käskystä, vaimo", sanoin minä tuimasti, mutta


sydämeni oli pakahtumaisillaan.

Sitten ei Baleka sanonut enää mitään, vaan kääntyi seinään päin


itkien ja valittaen sydäntäsärkevästi.

Hänen itkiessään kuulin askeleita majan ulkopuolelta ja samassa


oviaukko pimeni; eräs nainen astui sisään. Käännyin katsomaan,
kuka tulija oli, ja heittäydyin maahan, sillä edessäni seisoi Unandi,
kuninkaan äiti, jota sanottiin "Taivaiden äidiksi", sama nainen, jolle
äitini oli kieltäytynyt antamasta maitoa.

"Terve, oi Taivaiden äiti!" sanoin minä.

"Terve sinulle, Mopo", vastasi hän. "Sano, miksi Baleka itkee?


Senkötähden, että nyt on hänen vuoronsa kärsiä naisen tuskat?"
"Kysy häneltä itseltään, oi suuri valtiatar", vastasin minä.

Silloin virkkoi Baleka: "Itken sentähden, oi kuninkaan äiti, että tuo


mies, joka on veljeni, on tullut hänen käskystään, joka on minun
herrani ja sinun poikasi, murhaamaan hänet, jonka synnytän. Puhu
puolestani, oi sinä, jonka rinnat ovat imettäneet! Sinun poikaasi ei
surmattu syntyessään."

"Ehkä olisi ollut parempi, että hänet olisi surmattu, Baleka", vastasi
Unandi; "silloinpa olisi moni mies, joka on kuollut, vielä elossa."

"Lapsena hän ainakin oli hyvä ja hellä, niin että sinä saatoit häntä
rakastaa, zulujen äiti."

"Ei, Baleka! Pienenä hän puri rintojani ja repi hiuksiani; hän oli jo
silloin kaltaisensa."

"Mutta hänen lapsensa voi olla erilainen. Taivaiden äiti!


Ajattelehan, sinulla ei ole ainoatakaan pojanpoikaa vanhuutesi ilona.
Tahdotko siis nähdä sukupuusi kokonaan kuihtuvan? Kuningas,
meidän herramme, käy alituisesti sotia. Hän voi kaatua. Entä sitten?"

"Senzangaconan sukupuu viheriöitsee sittenkin. Onhan kuninkaalla


veljiä!"

"Ne eivät ole sinun vertasi, äiti. Mitä? Etkö kuule, etkö ymmärrä
sanojani? Sitten vetoan naisena sinun naisensydämeesi. Pelasta
lapseni tahi tapa minut lapseni keralla!"

Silloin Unandin sydän heltyi ja liikutuksen kyyneleet kohosivat


hänen silmiinsä.
"Voisiko se jotenkin käydä päinsä, Mopo?" kysyi hän. "Kuninkaan
täytyy nähdä kuollut lapsi, ja jos hän rupeaa epäilemään jotakin
vilppiä, niin sinä tunnet Chakan sydämen ja tiedät, missä me
saamme huomenna levätä. Täällä on kaisloillakin korvat."

"Eikö Zulu-maassa olekaan toisia vastasyntyneitä lapsia?" kysyi


Baleka kuiskaavalla äänellä, joka kuulosti käärmeen sähinältä.
"Kuule, Mopo! Eikö sinunkin vaimosi ole nyt samassa vaivassa?
Kuule, Taivaiden äiti, ja kuule sinäkin, veljeni, mitä nyt sanon. Älkää
leikitelkö kanssani tässä asiassa. Pelastan lapseni tahi tuhoan teidät
molemmat. Sanon kuninkaalle teidän kummankin tulleen luokseni ja
kertoneen minulle salaliitosta, jonka olitte suunnitelleet
pelastaaksenne lapsen ja surmataksenne kuninkaan. Nyt valitkaa ja
joutuin!"

Hän vaipui vuoteelleen ja me katselimme vaiti ollen toisiamme.


Sitten
Unandi lausui:

"Anna minulle kätesi, Mopo, ja vanno, ettet ilmaise tätä


salaisuuttamme kenellekään kuolevaiselle, minkä valan minäkin
sinulle vannon. Kerran ehkä valkenee päivä, jolloin tuo lapsi, joka ei
ole vielä nähnyt päivän valoa, hallitsee kuninkaana Zulu-maata, ja
silloin hän korvaa uskollisuutesi tekemällä sinusta maan
mahtavimman miehen, kuninkaan lemmikin ja kuninkaan
neuvonantajan. Mutta jos rikot valasi, niin muista, etten kuole
yksinäni!"

"Minä vannon, oi Taivaiden äiti", vastasin minä.

"Hyvä on, Makedaman poika."


"Hyvä on, veljeni", sanoi Baleka. "Mene nyt ja tee nopeasti, mitä
sinun on tehtävä, sillä vaivojeni hetki lähestyy. Mene tietäen, että
olen säälimätön, ellet onnistu; saatan sinut kuolemaan vaikkapa
oman henkeni uhallakin!"

Minä lähdin. "Minne matka?" kysyi portin vahti.

"Lääkeaineitani hakemaan, kuninkaan mies", vastasin minä.

Niin sanoin, mutta oi — sydämeni oli raskas ja olin päättänyt —


paeta kauas Zulu-maasta. En voinut enkä tohtinut tehdä mitä
minulta vaadittiin. Mitä! Täytyikö minun surmata oma lapseni
voidakseni pelastaa Balekan pienokaisen, ja täytyikö minun olla
kuninkaalle uppiniskainen pelastamalla pimeyteen tuomittu lapsonen
katselemaan auringon kirkkautta? Ei, päätin paeta, jättää kaikki ja
piiloutua jonkun kaukaisen heimon keskuuteen, jossa voisin jälleen
ruveta elämään. Täällä en voinut olla; Chakan varjossa vaani vain
kuolema.

Saavuin majoilleni ja kuulin, että Macropha oli synnyttänyt


kaksoiset. Käskin kaikkien poistua paitsi toisen vaimoni Anadin, joka
oli kahdeksan päivää sitten lahjoittanut minulle pojan. Kaksoisista oli
toinen — poikalapsi — syntynyt kuolleena. Toinen oli tyttö, sama,
jota sittemmin sanottiin Nada-kaunottareksi ja Nada Liljankukaksi.
Eräs ajatus pälkähti päähäni. Olin keksinyt pelastuksen tien.

"Anna poika minulle", sanoin minä Anadille. "Hän ei ole kuollut.


Vien hänet kaupungin ulkopuolelle ja herätän hänet keinoillani
henkiin."

"Ei tarvitse — lapsi on kuollut", sanoi Anadi.


Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookgate.com

You might also like