Skip to content

Commit

Permalink
paper
Browse files Browse the repository at this point in the history
  • Loading branch information
Freakwill committed May 21, 2024
1 parent f8bd525 commit 8340ff7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
4 changes: 1 addition & 3 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ @online{typing
}

@online{numpy,
author = {NumPy Developers},
author = {{NumPy Developers}},
title="Numpy - The fundamental package for scientific computing with Python",
url="https://numpy.org/",
publisher="NumPy Developers",
Expand Down Expand Up @@ -97,7 +97,6 @@ @article{cheng
eprint = {https://academic.oup.com/gji/article-pdf/236/1/537/53710009/ggad446.pdf},
}


@article{supasil,
doi = {10.1088/1742-6596/1719/1/012102},
url = {https://dx.doi.org/10.1088/1742-6596/1719/1/012102},
Expand Down Expand Up @@ -147,7 +146,6 @@ @misc{cranmer
primaryClass={astro-ph.IM}
}


@article{wang,
title = {Particle Swarm Optimization Algorithm: An Overview},
volume = {22},
Expand Down
14 changes: 10 additions & 4 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ In a typical Python implementation, populations are initially defined as lists o
A concise comparison between `pyrimidine` and several popular frameworks provided in \autoref{frameworks}, such as [`DEAP`](https://deap.readthedocs.io/) [@fortin] and [`gaft`](https://github.com/PytLab/gaft), which have significantly influenced the design of `pyrimidine`.


: Comparison of the popular genetic algorithm frameworks. \label{frameworks}
: Comparison of the popular genetic algorithm frameworks. []{label="frameworks"}

<!-- +-------------------+------------+----------+----------+----------+ -->
| Library | Design Style | Versatility | Extensibility | Visualization |
Expand All @@ -73,14 +73,20 @@ This library provides a wide range of chromosome classes to use, including Boole

The innovative approach is termed "algebra-inspired Programming." It should not be confused with so-called algebraic programming, but it draws inspiration from its underlying principles.

The advantages of the model are summarized as follows:

1. The population system and genetic operations are treated as an algebraic system, and genetic algorithms are constructed by imitating algebraic operations.
2. It has better scalability.
3. The code is more concise.

## Basic concepts

We introduce the concept of a **container**, simulating an **(algebraic) system** where specific operators are not yet defined.

A container $s$ of type $S$, with elements of type $A$, is represented by following expression:
$$
s = \{a:A\}: S ~~\text{or}~~ s:S[A] \label{container}
$$

[$$s = \{a:A\}: S \quad \text{or} \quad s:S[A]$$]{label="container"}

where the symbol $\{\cdot\}$ signifies either a set, or a sequence to emphasize the order of the elements. The notation $S[A]$ mimicks Python syntax, borrowed from the module [typing](https://docs.python.org/3.11/library/typing.html?highlight=typing#module-typing).

Building upon the foundational concept, we define a population in `pyrimidine` as a container of individuals. The introduction of multi-population further extends this notion, representing a container of populations, often referred to as "the high-order container". `Pyrimidine` distinguishes itself with its inherent ability to seamlessly implement multi-population GAs. Populations in a multi-population behave analogously to individuals in a population. Notably, it allows to define containers in higher order, such as a container of multi-populations, potentially intertwined with conventional populations.
Expand Down

0 comments on commit 8340ff7

Please sign in to comment.