Project: Memetic Algorithms and Applications:
Sorting, image processing, cryptanalysis
Student Researchers: Tiffany Bennett, Jennifer Hannon, Elizabeth Zehner
Advisor: Robert S. Roos
Institution: Allegheny College





Goals and Purpose

The purpose of this project was to investigate the use of genetic algorithms (GAs), and specifically a kind of GA called a memetic algorithm, to solve several interesting and practical problems. Genetic algorithms "evolve" populations of solutions to increase their fitness, using simulated natural selection operators such as crossover and mutation. Memetic algorithms augment this process by applying a local improvement operator to the solutions as they are generated. We applied memetic algorithms to the problem of finding optimal Shellsort sequences and to the problem of devising "deceptive" visually encrypted messages. Our goals were to learn how GAs work, how to devise and conduct experiments, and, of course, to find good solutions to the problems we chose to study. We also planned a visit to SIGCSE 2002 to view other student research projects and to meet computer science students and teachers from other schools.

Research Methods

There were two phases to each problem: coding and testing the genetic algorithm, then running experiments to solve the problem for various values of the problem parameters. To this end we implemented a genetic algorithm (in order to rapidly obtain a working prototype we implemented a so-called "steady- state" GA) and customized it with fitness functions and crossover and mutation operators appropriate to the problems under investigation.

We first devised a GA to search for Shellsort increment sequences that would yield good average-case running time for random arrays. Our (noisy) fitness function was the actual clock time required to sort random files using a particular sequence. We generated several large random input files for Shellsort and ran experiments, on different platforms, to try to eliminate effects of noise in our fitness function. Our final Shellsort sequence was then tested on a different set of random input files.

This summer we hope to complete a project to generate "deceptive" visually encrypted images. Visual encryption involves the division of an image (usually consisting of black and white pixels) into two or more files so that each file individually provides no clue to the image, but simply "overlaying" the files reveals the image. In deceptive encryption, there is a third component to the encryption, an offset of one image with respect to the other. Use of this offset produces the desired image, but use of an incorrect offset may produce a false or misleading image. Given a target image, our GA will produce two files that will attempt to maximize the number of offsets that produce misleading images, while still providing correct encryption of the target image at one particular offset. For our fitness function we intend to measure the largest number of offsets that produce solid areas of black pixels of a given minimum size.

For a few weeks we considered the Hough transform, a technique for detecting patterns (lines, circles, etc.) in line images. We hoped to investigate GA techniques for determining optimal parameters for particular kinds of patterns, but abandoned the idea due to time limitations and problems with third-party software.

Conclusion and Results


We were able to find a Shellsort sequence that sorts more rapidly (on random files of a million distinct elements) than the best sequences that we were able to find in the literature (including another one produced by a different type of genetic algorithm). Our results will be presented at the Genetic and Evolutionary Computing Conference (GECCO 2002) in New York City this July.

We successfully wrote software for visually encrypting black and white images under a given offset, and have devised a first approximation to a fitness function for testing the "deceptiveness" of pairs of files under a given offset. We hope to submit this either to the SIGCSE 2003 student research poster competition or to a genetic programming conference.

The team attended SIGCSE 2002 and enjoyed it enormously; several members of the team came back with ideas for senior research projects.

Details of our project may be found at: http://cs.allegheny.edu/~rroos/crew/