Git Product home page Git Product logo

vita's Introduction

Vita Version

Travis C++14 CII License Twitter

Overview

Vita is a scalable, high performance framework for genetic programming and genetic algorithms.

It's suitable for classification, symbolic regression, content base image retrieval, data mining and software agent implementation. Main features:

  • flexible and fast
  • easy integration with other systems
  • simple addition of features and modules
  • fast experimentation with detailed run-log
  • modern, standard ISO C++14 source code
  • more

This software was originally developed by EOS without open source in mind. Later (early 2011) the code has been commented, restructured, documented and released as open source.

Although the core development team is still anchored at EOS, Vita is now open source and we would like it to be run by an international team of AI enthusiasts.

Symbolic regression example

// TARGET FUNCTION
const auto function = [](double x) { return x + std::sin(x); };

// DATA SAMPLE
const auto sample = [&function](double x) { return std::to_string(function(x))
                                                   + ","
                                                   + std::to_string(x)
                                                   + "\n"; };
std::istringstream training(
  sample(-10) + sample(-8) + sample(-6) + sample(-4) + sample(-2)
  + sample(0) + sample( 2) + sample( 4) + sample( 6) + sample( 8));

// READING INPUT DATA
vita::src_problem prob(training);

// SETTING UP SYMBOLS
prob.insert<vita::real::sin>();
prob.insert<vita::real::cos>();
prob.insert<vita::real::add>();
prob.insert<vita::real::sub>();
prob.insert<vita::real::div>();
prob.insert<vita::real::mul>();

// SEARCHING
vita::src_search<> s(prob);
const auto result(s.run());

It's pretty straightforward (further details in the specific tutorial).

Documentation

There is a comprehensive wiki. You should probably start with the tutorials.

Build requirements

Vita is designed to have fairly minimal requirements to build and use with your projects, but there are some. Currently, we support Linux and Windows. We will also make our best effort to support other platforms (e.g. Mac OS X, Solaris, AIX). However, since core members of the Vita project have no access to these platforms, Vita may have outstanding issues there. If you notice any problems on your platform, please use the issue tracking system; patches for fixing them are even more welcome!

Mandatory

  • A C++14-standard-compliant compiler (or, at least, partially compatible: e.g. gcc v5.3.x or newer, clang 3.8 or newer)
  • CMake

Optional

Getting the source

There are two ways of getting Vita's source code: you can download a stable source release in your preferred archive format or directly clone the source from a repository.

Cloning a repository requires a few extra steps and some extra software packages on your system, but lets you track the latest development and make patches much more easily, so we highly encourage it.

Run the following command:

git clone https://github.com/morinim/vita.git

The Vita distribution

This is a sketch of the resulting directory structure:

vita/
  build/ ..................Built executables
  contributors/
  doc/
  misc/
  src/
    CMakeLists.txt
    examples/ .............Various examples
      forex/ ..............Forex example
      sr/ .................Symbolic regression and classification utility
    kernel/ ...............Vita kernel (core library)
    test/ .................Test-suite
    third_party/ ..........Third party libraries
    utility/ ..............Support libraries / files
  tools/ ..................C++ lint checker and other tools
  CODE_OF_CONDUCT.md.......Standards for how to engage in this community
  CONTRIBUTING.md
  LICENSE
  NEWS.md..................Don't let your friends dump git logs into NEWS
  README.md

Setting up the build

cd vita
mkdir -p build
cd build/
cmake ../src

To suggest a specific compiler you can write:

CXX=clang++ cmake ../src

You're now ready to build using the traditional make system:

  • everything: make
  • kernel library (libvita.a): make vita
  • sr tool: make sr
  • tests: make tests
  • the ABC example: make ABC
  • for the list of the valid targets: make help

All the output files will be stored in subdirectories of build/ (out of source builds).

Windows may need various expedients about which you can read in the Windows walkthrough.

License

Mozilla Public License v2.0 (also available in the accompanying LICENSE file).

Versioning

Vita uses semantic versioning. Releases are tagged.

Note that the major version will change rapidly and API changes are fairly common. Read the NEWS.md file for details about the breaking changes.

vita's People

Contributors

morinim avatar

Watchers

 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.