Skip to content
Karel Kubicek edited this page Feb 13, 2017 · 1 revision

EACirc logo

You are on EACirc 3 wiki, for current version, go to home site.

EACirc is a framework for automatic problem solving. It uses supervised learning techniques based on evolutionary algorithms to construct and optimize software circuits in order to solve the given problem.

Problems are solved by the means of hardware-like circuits - small, software-emulated circuits consisting of gates and interconnecting wires transforming input data into desired output data. The layout of these circuits is designed randomly at first. They are subsequently optimized in the process of supervised learning (inputs are provided alongside with correct outputs) until the the desired success rate is achieved.

The learning stage incorporates genetic programming principles:

  • a handful of these circuits (circuit 'population') is considered simultaneously;
  • each individual circuit is evaluated on the data and its 'fitness' is determined by comparison of its outputs with the expected outputs;
  • individuals with low 'fitness' are deleted (survival of the fittest);
  • individuals with high 'fitness' are altered ('sexiual crossover' and a small chance of 'mutation');
  • the process starts over with this new 'generation' of circuits.

EACirc Framework

The EACirc framework consists of main application and several supporting tools and scripts. The modular design allows for easy addition of new problem modules ('projects') and output interpretation modules ('evaluators'). Currently, the project has following main parts:

  • EACirc - the main application, constructs circuits using evolutionary principles.
  • utils - set of scripts and small programs used for results processing.

EACirc framework user documentation

Framework development documentation

Project specific docementation

Supporting tools, scripts, published work

  • Scripts
    Supporting script: downloading and processing results.
  • Automation tools
    Oneclick documentation easing running multiple computations on CRoCS BOINC server.
  • Published work
    Published papers and presentations about EACirc.

Authors and licence

The framework is developed at the Centre for Research on Cryptography and Security, Masaryk University, Brno, Czech Republic. It's licensed under MIT licence, see the file in the repository root. The project uses some third party code, licence details for these parts can be found in the LicenceReadMe file in the repository root.

  • Michal Hajas
    2015-now (Java bytecode simulator)
  • Karel Kubíček
    2014-now (TEA)
  • Jiří Novotný
    2014-now (build system, CUDA core implementation)
  • Ľubomír Obrátil
    2014-now (automation tools)
  • Zdenek Říha
    2013-now (Java bytecode emulator)
  • Marek Sýs
    2013-now (project concept, results interpretation)
  • Petr Švenda
    2008-now (project lead, initial implementation)
  • Martin Ukrop
    2012-now (framework, CAESAR, polynomial backend)

Former:

  • Milan Čermák
    2012-now (initial CUDA implementation)
  • Ondrej Dubovec
    2011-2012 (SHA-3 candidates testing)
  • Dušan Klinec
    2014-2014 (polynomial backend)
  • Matěj Prišťák
    2011-2012 (object model and refactoring, batch mode for BOINC via XML, eStream candidates testing)
  • Tobiáš Smolka
    2011-2012 (BOINC related support)
Clone this wiki locally