GithubHelp home page GithubHelp logo

alonl / genetic-akka Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sltodd/genetic-akka

0.0 3.0 0.0 127 KB

Genetic algorithm framework built on Akka for rapid prototyping and deployment across distributed systems.

License: Apache License 2.0

Scala 91.69% Java 8.31%

genetic-akka's Introduction

genetic-akka

A framework for rapid deployment of genetic algorithm, built using Scala and Akka for maximum parallelism and configurability.

Key features

  • Simple interfaces to allow rapid design of algorithms.
  • High level parallelism provided by Akka to maximise CPU usage and available threads.
  • Akka configuration file allows control of threadpools for specific environments outside of code.
  • Deploy to distributed systems with no changes to code.
  • Asynchronous messages allow population snapshots to be taken at any moment.
  • Persistence layer for chromosomes provided by Hibernate/JPA.

Usage

Add a dependency using sbt:

libraryDependencies += "uk.co.sltodd" %% "genetic-akka" % "0.1"

Please refer to unit tests for example usage.

When testing, first execute sbt package to ensure the Akka configuration file is accessible.

Configuration

Configure the Akka Actor system by editing src/main/resources/reference.conf

In addition to the usual Akka configuration steps, the following lines determine the number of workers Actors that will be spawned to evaluate the fitness functions of the population.

#number of workers (Hosts) to spawn
workers = XX

A key consideration when determining the amount of workers is the memory required to evaluate the fitness function. Users will need to estimate the amount of memory required for their specific use and aim to ensure memory required * workers < maximum heap size.

License

This software is licensed under the Apache 2 license, quoted below.

Copyright (c) 2013 Simon Todd [email protected]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

genetic-akka's People

Contributors

sltodd avatar

Watchers

James Cloos avatar Alon Lavi avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.