The design of a large and reliable DNA codeword library is a key problem in DNA based
computing. DNA codes, namely sets of fixed length edit metric codewords over the alphabet
{A, C, G, T}, satisfy certain combinatorial constraints with respect to biological and
chemical restrictions of DNA strands. The primary constraints that we consider are the
reverse--complement constraint and the fixed GC--content constraint, as well as the basic
edit distance constraint between codewords.
We focus on exploring the theory underlying DNA codes and discuss several approaches to
searching for optimal DNA codes. We use Conway's lexicode algorithm and an exhaustive
search algorithm to produce provably optimal DNA codes for codes with small parameter
values. And a genetic algorithm is proposed to search for some sub--optimal DNA codes
with relatively large parameter values, where we can consider their sizes as reasonable
lower bounds of DNA codes. Furthermore, we provide tables of bounds on sizes of DNA
codes with length from 1 to 9 and minimum distance from 1 to 9