Giter Site home page Giter Site logo

vicdoja / metacountdown Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 57 KB

A Python package to solve Countdown's number round using metaheuristics.

Home Page: https://vicdoja.github.io/

License: GNU General Public License v3.0

Python 100.00%
metaheuristic metaheuristic-optimisation optimization-algorithms countdown genetic-algorithm simmulated-annealing

metacountdown's People

Contributors

vicdoja avatar

Stargazers

 avatar

Watchers

 avatar

metacountdown's Issues

Bug within the linear tree representation

The evaluation of the linear tree is acting strange, and I just noticed.

Apparently small expressions are giving optimal fitness for relatively big objectives.

This needs to be looked into ASAP.

Write a useful README

The README file is one of the most important files in a project.

This is like this because the README file is the first content that users or other developers see when they first enter the project page.

For our early development stage, it should include the following sections:

  • Description: define the problem, it complexity and the used emetaheuristics.
  • Origin: this is a Master's subject project.
  • Contributing
  • References: include links to revelant materials to the project
  • License

Implement code for generating useful graphs

This will be very useful for the writing of the presentation, and might be a massive time-saver.

  • Best-Fitness/Generation

  • Avg-Fitness/Generation

  • % of valid individuals

  • Simulated annealing graphics

PS: More useful graphs can be added after the creation of this issue.

Document EVERYTHING

I think that this issue doesn't need further explanation. The only notable comment here is that the docstrings will be written using the Google style.

Improve testing

This includes implementing a mechanism to store problem instances, their best solution up to now and the results of using genetic algorithms and simulated annealing.

  • Problem instances
  • Best solutions
  • Tables of results

Heal or penalize invalid individuals

As the course's professor told me: when an individual suffers from a condition ๐Ÿค’, it may heal ๐Ÿ’‰, get handicapped ๐Ÿค• or die โ˜ .

I don't like the dying approach, so don't get me near any of that stuff. In our case, every individual has the potential to become the fittest one ๐Ÿ’ช, so we must try to either heal ๐Ÿฅ them or penalize ๐ŸŽƒ their fitness.

Note that this may help with the covering issues of the linear tree โž—.

Complete alternative individual codification/operators

This task involves finishing the implementation of the alternative individual codification and operators (generate_tree_alt, mutate_tree_alt, mate_tree_alt).

This representation involves a tuple of two lists. The first list is made of N terminals (numbers) of the evaluation tree, and the second list is made of N-1 non-terminal nodes (mathematical operators) that specify the operations inside the evaluation tree.

  • generate_tree_alt
  • mutate_tree_alt
  • mate_tree_alt

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.