Skip to main content

About this book

Genetic Algorithms in Java Basics is a brief introduction to solving problems using genetic algorithms, with working projects and solutions written in the Java programming language. This brief book will guide you step-by-step through various implementations of genetic algorithms and some of their common applications, with the aim to give you a practical understanding allowing you to solve your own unique, individual problems. After reading this book you will be comfortable with the language specific issues and concepts involved with genetic algorithms and you'll have everything you need to start building your own.

Genetic algorithms are frequently used to solve highly complex real world problems and with this book you too can harness their problem solving capabilities. Understanding how to utilize and implement genetic algorithms is an essential tool in any respected software developers toolkit. So step into this intriguing topic and learn how you too can improve your software with genetic algorithms, and see real Java code at work which you can develop further for your own projects and research.

Guides you through the theory behind genetic algorithms

Explains how genetic algorithms can be used for software developers trying to solve a range of problems

Provides a step-by-step guide to implementing genetic algorithms in Java

Table of Contents


Digital computers and the rise of the information age have revolutionized the modern lifestyle. The invention of digital computers has enabled us to digitize numerous areas of our lives. This digitalization allows us to outsource many tedious daily tasks to computers where previously humans may have been required. An everyday example of this would be modern word processing applications that feature built in spell checkers to automatically check documents for spelling and grammar mistakes.
Lee Jacobson, Burak Kanber

Implementation of a Basic Genetic Algorithm

In this chapter we will begin to explore the techniques used to implement a basic genetic algorithm. The program we develop here will be modified adding features in the succeeding chapters in this book. We will also explore how the performance of a genetic algorithm can vary depending on its parameters and configuration.
Lee Jacobson, Burak Kanber

Robotic Controllers

In this chapter, we are going to use the knowledge we gained from the previous chapter to solve a real world problem using a genetic algorithm. The real world problem we will be working on is designing robotic controllers.
Lee Jacobson, Burak Kanber

Traveling Salesman

In this chapter, we are going to explore the traveling salesman problem and how it can be solved using a genetic algorithm. In doing so, we will be looking at the properties of the traveling salesman problem and how we can use those properties to design the genetic algorithm.
Lee Jacobson, Burak Kanber

Class Scheduling

In this chapter, we will create a genetic algorithm that schedules classes for a college timetable. We will examine a couple of different scenarios in which a class-scheduling algorithm may be used, and the constraints that are usually implemented when designing a timetable. Finally, we will build a simple class scheduler, which can be expanded to support more complex implementations.
Lee Jacobson, Burak Kanber


In this chapter we will explore different techniques that are frequently used to optimize genetic algorithms. Additional optimization techniques become increasingly important as the problem being solved becomes more complex. A well-optimized algorithm can save hours or even days when solving larger problems; for this reason,optimization techniques are essential when the problem reaches a certain level of complexity.
Lee Jacobson, Burak Kanber
Additional information