Python-Julia-EA-for-Square-Packing

所属分类:Julia编程
开发工具:Jupyter Notebook
文件大小:0KB
下载次数:0
上传日期:2023-08-26 20:21:06
上 传 者sh-1993
说明:  Python接口,用于Julia实现方形装箱问题的进化算法,
(Python interface for Julia implementation of Evolutionary Algorithm for Square Packing Problem,)

文件列表:
EvolutionaryAlgorithm/ (0, 2023-11-11)
EvolutionaryAlgorithm/Manifest.toml (4295, 2023-11-11)
EvolutionaryAlgorithm/Project.toml (248, 2023-11-11)
EvolutionaryAlgorithm/src/ (0, 2023-11-11)
EvolutionaryAlgorithm/src/EvolutionaryAlgorithm.jl (5982, 2023-11-11)
EvolutionaryAlgorithm/src/crossover.jl (1266, 2023-11-11)
EvolutionaryAlgorithm/src/fitness_function.jl (4328, 2023-11-11)
EvolutionaryAlgorithm/src/mutation.jl (1523, 2023-11-11)
EvolutionaryAlgorithm/src/population.jl (1951, 2023-11-11)
EvolutionaryAlgorithm/src/selection.jl (1477, 2023-11-11)
LICENSE (1071, 2023-11-11)
data/ (0, 2023-11-11)
data/parameters_default.json (836, 2023-11-11)
evolutionary_algorithm.py (9426, 2023-11-11)
research.ipynb (201034, 2023-11-11)

# 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](https://en.wikipedia.org/wiki/Square_packing). Below best currently known solution for 11 squares can be found (credits to Wikipedia). ![Alt-text](https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Packing_11_unit_squares_in_a_square_with_side_length_3.87708359....svg/479px-Packing_11_unit_squares_in_a_square_with_side_length_3.87708359....svg.png) 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](https://github.com/IRatajczyk) 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](https://github.com/IRatajczyk/Island-Evolutionary-Algorithm)). 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: igor@ratajczyk.eu

近期下载者

相关文件


收藏者