Giter VIP home page Giter VIP logo

python-julia-ea-for-square-packing's Introduction

HPC Evolutionary Algorithm for Square Packing Problem

Problem description

Project aims to deliver High Performace Computing solution with Python interface.

The exact problem to be solved is Square Packing Problem. Below best currently known solution for 11 squares can be found (credits to Wikipedia).

Alt-text

As some solutions may not be as "elegant" as they would be expected to be, mundate Evolutionary Algorithm may be useful.

HPC: Julia and Python

When it comes to HPC with Python interface I have tested may other approaches, including:

  • Numba (does not full support Numpy )
  • Cython (advanced data structures extremely hard to deal with)
  • C (lack of OOP, no JIT compilation)
  • C++ (no JIT compilation)

but none of these was done as seamlessly as Julia Backend with Python interface.

Lack of OOP support in Julia enforces us to become Intellectual Snobs via functional programming principia (as the author has finished Theory of Computation academic course and thinks he is smart - sadly he is not) . Descendants of $\lambda$ - calculus: Closures have been utilized.

EA

Proposed Genetic operators are rather default for array-like genotypes. Some solutions are similar to these utilized in my other EA-like projects (eg. this one).

Larmarkian approach should be implemented for SotA results.

Usage

Python interface essentially bridges the Julia EvolutionaryAlgorithm package with Python, allowing users to configure and run the evolutionary algorithm in a user-friendly way from Python. It also offers methods to visualize the solutions and the evolution of fitness values over iterations.

Parameters can be passed via JSON file or as Python Dictionary.

Python wrapper has been described in evolutionary_algorithm.py file.

Exemplary usage is proposed in research.ipynb file.

Contact

Should you have any questions or should you be willing to cooperate on this project (aforementioned Larmarcian approach) please contact me directly: [email protected]

python-julia-ea-for-square-packing's People

Contributors

iratajczyk avatar

Stargazers

 avatar  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.