Giter Site home page Giter Site logo

jotoh98 / evosearch Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 4.71 MB

Research into genetic algorithms related to undirected point search in the plane

Home Page: https://jotoh98.github.io/evoSearch/

License: Apache License 2.0

Java 93.40% CSS 6.60%
genetic-algorithm geometric-algorithms geometry java jenetics

evosearch's Introduction

Hello, I'm jotoh

๐Ÿ‘จโ€๐Ÿ’ป Web Developer | ๐Ÿ“š MSc Student | โœ๏ธ Blogger

Welcome to my GitHub profile! I'm passionate about web development and have been working on various projects that showcase my skills and interests. Here's a glimpse of what I've been working on for university:

  • ๐ŸŒ€ evoSearch - Evolutionary genetic algorithm simulation
  • ๐ŸŽฏ treasureHunt - Linear algebra search and find simulation comparing various search and hide strategies
  • ๐Ÿ“ฐ ner-gui - Named Entity Recognition (NER) GUI for editing common NER datasets

My Blog

I'm also a blogger, and you can check out my tech-related articles and tutorials on my blog, jotoh.dev.

To support some articles, I've also created some small projects that you can find in my repositories:

  • โšก๏ธ bun-ffi-rust - semi-automatic Rust foreign function interface (FFI) bindings generator in the bun runtime

Feel free to explore my repositories and get in touch if you have any questions or collaboration ideas. Let's connect and make the coding world a better place together! ๐Ÿš€

evosearch's People

Watchers

 avatar

evosearch's Issues

No Multithreading

The environment holding a run configuration is currently implemented as a singleton. Thus preventing the evolution to run simultaneously in a multi-threaded environment.

Rays are offset

The central rays are offset a little bit. I suppose this happens because of precision problems.
Try to set the second (directional) point as far away, as the distance between the origin and the outermost point of the canvas boundary.

Result metrics

Implement some metric analyzing the resulting individual (like Spiral-like-ness in #9). These could be saved in json or exported individually.

Run history

A history for a single run to monitor the evolution of the individuals. Maybe animate this step?

Mutable distances

The distances should be mutable. Either through a mutator or a full crossover regarding whole genes.

Multi-Fitness-Experiments

Construct an experiment to research the impact of the

  • amount and the
  • relative positions

of treasures on the evaluation.

The experiment should also be reproducible so there should be an option to set a seed should be added to the assignable cli args.

  • seed in cli
  • RandomRegistry only

Export (Import) formats for runs

Should support csv, json and xml.
Exports

  • csv
  • json
  • xml

Imports

  • csv
  • json
  • xml

Maybe start with a paste action on the MainForm (or Canvas even).

Configuration window is blank

When opening the config window, the window stays blank and the application freezes. I assume a ui bug with an endless loop.

Add a JPopupMenu DSL to MenuService

If we like to introduce JPopupMenus, it also should get an easy-to-read DSL apporach in MenuService. This class only appears once setting the JMenuBar up but has all the DSL methods needed for popups.

Direct project passthrough

Unless the users closes the current project, the ChooserForm should pass the user directly through to the current project.
Suggestion:

  • add openProject to the global .evoSearch configs
  • let ChooserForm pass through to the current project, if one is set
  • delete openProject, if the MainForm is closed

Random distances instantiator

Button with some configurations to create a set of random distances.
Currently, the configuration class only has an int value for random distances to create. We want fixed values unless we shuffle a new set of them.

Worst Case Fill In

Construct the spiral/circle fill in between the last point in the chromosome and the worst-case treasure.

Indicate a loss of configuration

When changing a configuration after running a few times (like shuffling in #5), a prompt should ask the user, if the last runs should be saved and then discarded from the configuration.

Removed project folders

Folder which are removed out of scope of evoSearch (in file browser, etc.) dont appear corrupted and throw an exception if selected nevertheless.

Worst-Case Fitness

Create a fitness function minimizing the worst case scenarios for each point in the chromosome.

hidpi bug in canvas

When using a high dpi display, the applications mouse representation is scaled to 50% down - the mouse dragging on the canvas does not work appropriately.

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.