# Charlie 0.8.0 Released - A genetic algorithms library

**URL:** <https://www.ruby-forum.com/t/charlie-0-8-0-released-a-genetic-algorithms-library/128913>\
**Category:** Ruby\
**Created:** [February 12, 2008, 4:45pm UTC](https://www.ruby-forum.com/t/charlie-0-8-0-released-a-genetic-algorithms-library/128913 "2008-02-12T16:45:42Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![sander](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/90ced4/32.png) [@sander](https://www.ruby-forum.com/u/sander)\
**Post date:** [February 12, 2008, 4:45pm UTC](https://www.ruby-forum.com/t/charlie-0-8-0-released-a-genetic-algorithms-library/128913/1 "2008-02-12T16:45:42Z")

</div>

Hi all,

I’m pleased to announce another release of charlie, a genetic  
algorithms library for Ruby.

This release adds a couple of extra features: better co-evolution  
(with prisoner’s dilemma example), blending crossovers, genotypes for  
matrices and neural networks, and several other features.  
It is also still fully compatible with Ruby 1.8, 1.9 and JRuby.

## FEATURES:

- Quickly develop GAs by combining several parts (genotype, selection,  
crossover, mutation) provided by the library.
- Sensible defaults are provided with any genotype, so often you only  
need to define a fitness function.
- Easily replace any of the parts by your own code.
- Test different strategies in GA, and generate reports comparing them.

## EXAMPLE

This example finds a neural network for the xor function

class XOR \< NeuralNetworkGenotype(2,3,1)  
def fitness  
[[-1,-1],[-1,1],[1,-1],[1,1]].map{|i1,i2|  
-(output([i1,i2])[0]-i1\*i2)\*\*2 }.sum  
end  
end  
Population.new(XOR,50).evolve\_on\_console

## INSTALLATION:

- sudo gem install charlie

## Links

- [http://rubyforge.org/projects/charlie/](http://rubyforge.org/projects/charlie/)
- [http://charlie.rubyforge.org](http://charlie.rubyforge.org)

## LICENSE:

MIT license.
