elea

Invent new EAs and GA or show your students how they work.

https://github.com/hpi-elea/elea

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

blockly evolutionary-algorithms
Last synced: 4 months ago · JSON representation ·

Repository

Invent new EAs and GA or show your students how they work.

Basic Info
Statistics
  • Stars: 12
  • Watchers: 1
  • Forks: 3
  • Open Issues: 5
  • Releases: 0
Topics
blockly evolutionary-algorithms
Created about 4 years ago · Last pushed 10 months ago
Metadata Files
Readme License Code of conduct Citation

README.md

elea

Netlify Status github actions

This is a little tool designed to prototype evolutionary algorithms, get an intuition for runtimes or for teaching EAs to students.

People

The project is organized by the following two scientists. - Markus Wagner (Monash University) - Timo Kötzing (Hasso Plattner Institute)

Contributors to the code base of ELEA have been the following people. - Bjarne Sievers (Winter Term 2020/21, as part of a project seminar at HPI) - Antony Kamp (as a HiWi at HPI, 1.1.2021 -- 31.3.2022) - Erik Kohlros (as a HiWi at HPI, 1.10.2021 -- 31.3.2024) - Oscar John Ammirato Manglaras (Jul-Nov 2021 as one-semester, 3rd year project at the University of Adelaide) oscar.manglaras@adelaide.edu.au https://github.com/CogentRedTester - Gerome Quantmeyer (as a HiWi at HPI, 1.7.2022 -- 31.3.2023) - Omri Bornstein (Feb-Nov 2023 as a two-semester, 3rd year project at Monash University) obor0001@student.monash.edu, https://github.com/applegamer22

Run

  • install nodeJS with npm
  • run npm i to install the dependencies
  • run npm run start to run the application

You can find the application at localhost:1234 propably.

More commands for developer

  • run npm run lint to show current linting errors and warnings
  • run npm run prettier to fix formatting errors

Write new blocks

Steps:

  1. Think of all the connections you need and build your block in the block factory:
  2. Copy the json definition into the static/blockDefinition/normalBlocks.js or similar JS file and include it. Add a tooltip to the block and comments to the input to help our users understand your block. If you want to do type-checking, make sure to add the type of your input and output as described in the blockly documentation. Use the Array-type to request a population and Individual to request an individual from the population.
  3. Also copy the JS code stub from the factory into this JS file.
  4. Add the block to the toolbox in any category via its name (roughly in lines 200-450 in workspace.html). You should now be able to see it in the toolbox and use it.
  5. In order to actually do something, you need to replace the generated code with actual code. I essence, you need to return valid JS code in a string (ES5). Since debugging parsing errors is rather hard in this environment I suggest to try atomic expressions you want to use in this live demo. Anything that does not work there will not work in blockly either. Goodbye arrow-functions and other syntactic sugar of ES6!
  6. You should now have a working block 🎉

Additional things to consider: Variables and functions could collide with user defined objects. Blockly can handle this for you, if you let it. You need to ask for valid names etc. In its current state, the documentation is barely understandable and does not prominently mention all necessary functions, I find the predefined open source blocks much more helpful: https://github.com/google/blockly/blob/master/generators/javascript/math.js

blockly

Owner

  • Name: ELEA
  • Login: HPI-ELEA
  • Kind: organization

Build your own Evolutionary Algorithm!

Citation (CITATION.cff)

# yaml-language-server: $schema=https://citation-file-format.github.io/1.2.0/schema.json
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Markus
    given-names: Wagner
    email: markus.wagner@monash.edu
    affiliation: Monash University
  - family-names: Kohlros
    given-names: Erik
    email: erik.kohlros@student.hpi.uni-potsdam.de
    affiliation: Hasso Plattner Institute/University of Potsdam, Germany
  - family-names: Quantmeyer
    given-names: Gerome
    email: gerome.quantmeyer@student.hpi.uni-potsdam.de
    affiliation: Hasso Plattner Institute/University of Potsdam, Germany
  - family-names: Kötzing
    given-names: Timo
    email: timo.koetzing@hpi.de
    affiliation: Hasso Plattner Institute/University of Potsdam, Germany
title: ELEA - Build your own Evolutionary Algorithm in your Browser
version: 0.1
license: CC-BY-NC-SA-4.0
repository: https://github.com/HPI-ELEA/elea
type: software
date-released: 2023-02-13
url: https://arxiv.org/abs/2302.06277
doi: 10.48550/arXiv.2302.06277

GitHub Events

Total
  • Issue comment event: 1
  • Pull request event: 1
  • Create event: 1
Last Year
  • Issue comment event: 1
  • Pull request event: 1
  • Create event: 1

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 379
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Total issue authors: 0
  • Total pull request authors: 7
  • Average comments per issue: 0
  • Average comments per pull request: 1.31
  • Merged pull requests: 351
  • Bot issues: 0
  • Bot pull requests: 84
Past Year
  • Issues: 0
  • Pull requests: 81
  • Average time to close issues: N/A
  • Average time to close pull requests: 6 days
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 1.06
  • Merged pull requests: 76
  • Bot issues: 0
  • Bot pull requests: 35
Top Authors
Issue Authors
Pull Request Authors
  • antonykamp (68)
  • kohlros (61)
  • depfu[bot] (43)
  • geromequa (18)
  • AppleGamer22 (4)
  • eltociear (1)
  • dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
depfu (43) dependencies (1) documentation (1) bug (1)

Dependencies

.github/workflows/lint.yml actions
  • actions/checkout v2 composite
package-lock.json npm
  • 933 dependencies
package.json npm
  • babel-eslint ^10.1.0 development
  • eslint ^8.31.0 development
  • eslint-plugin-import ^2.26.0 development
  • husky ^7.0.4 development
  • parcel ^1.12.3 development
  • parcel-plugin-static-files-copy ^2.6.0 development
  • prettier-eslint ^13.0.0 development
  • pretty-quick ^3.1.3 development
  • blockly ^6.20210701.0
  • bootstrap ^5.2.3
  • chart.js ^3.8.0
  • d3 ^7.8.0
  • jquery ^3.6.3
  • js-beautify ^1.14.7
  • js-cookie ^3.0.1
  • prismjs ^1.29.0