Skip to content

Commit

Permalink
(#63) Proofreading the paper
Browse files Browse the repository at this point in the history
  • Loading branch information
SevgiAkten committed Aug 14, 2024
1 parent d6dbf00 commit 9234b78
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 11 deletions.
24 changes: 22 additions & 2 deletions paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ @article{karakaya2024improved

@article{satman2013machine,
title={Machine coded genetic algorithms for real parameter optimization problems},
author={Satman, Mehmet},
author={Satman, Mehmet Hakan},
journal={Gazi University Journal of Science},
volume={26},
number={1},
Expand Down Expand Up @@ -94,4 +94,24 @@ @book{alba2008cellular
publisher={Springer},
address={US},
isbn={978-0-387-77609-5}
}
}

@article{satman2019alpha_male_ga,
author = {Satman, Mehmet Hakan and Akadal, Emre},
title = {Performance comparison of the specialized alpha male genetic algorithm with some evolutionary algorithms},
journal = {Trakya University Journal of Social Science},
volume = {21},
number = {1},
pages = {55--82},
year = {2019}
}

@article{satman2020machine_coded_cga,
author = {Satman, Mehmet Hakan and Akadal, Emre},
title = {Machine coded compact genetic algorithms for real parameter optimization problems},
journal = {Alphanumeric Journal},
volume = {8},
number = {1},
pages = {43--58},
year = {2020}
}
20 changes: 11 additions & 9 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,33 +18,35 @@ affiliations:
index: 2


date: 9 Aug 2024
date: 14 Aug 2024
bibliography: paper.bib
---

# Summary
`pycellga` is a `Python` package that implements cellular genetic algorithms (CGAs) for optimizing complex problems. CGAs combine the principles of cellular automata and traditional genetic algorithms, utilizing a spatially structured population organized in a grid-like topology. This structure allows each individual to interact only with its neighboring individuals, promoting diversity and maintaining a balance between exploration and exploitation during the optimization process.
`pycellga` is a Python package that implements cellular genetic algorithms (CGAs) for optimizing complex problems. CGAs combine the principles of cellular automata and traditional genetic algorithms, utilizing a spatially structured population organized in a grid-like topology. This structure allows each individual to interact only with its neighboring individuals, promoting diversity and maintaining a balance between exploration and exploitation during the optimization process.

The package is designed to be user-friendly, with a straightforward installation process and comprehensive documentation. Researchers and practitioners in fields such as operations research, artificial intelligence, and machine learning can leverage `pycellga` to tackle complex optimization challenges effectively. The integration of cellular automata with genetic algorithms in `pycellga` represents a significant advancement in the field of evolutionary computation, offering enhanced performance and versatility compared to traditional methods. `pycellga` has also machine coded operators with byte implementations which is developed by [@satman2013machine]. Beside it has Alpha-male CGA, Machine Coded Compact CGA and Improved CGA with Machine Coded Operaors for real-valued optimization problems [@karakaya2024improved].
The package is designed to be user-friendly, with a straightforward installation process and comprehensive documentation. Researchers and practitioners in fields such as operations research, artificial intelligence, and machine learning can leverage `pycellga` to tackle complex optimization challenges effectively. The integration of cellular automata with genetic algorithms in `pycellga` represents a significant advancement in the field of evolutionary computation, offering increased flexibility and adaptability compared to traditional methods. `pycellga` also includes machine-coded operators with byte implementations, developed by [@satman2013machine]. Additionally, it features Alpha-male CGA, Machine-Coded Compact CGA, and Improved CGA with Machine-Coded Operators for real-valued optimization problems [@karakaya2024improved].

# Introduction

Optimization problems are a fundamental aspect of various scientific and engineering fields, involving the search for the best solution among a large set of possible options. Genetic algorithms (GAs) have been widely used to address these problems due to their robustness and adaptability. Inspired by the process of natural selection, GAs operate on a population of potential solutions, applying operators such as selection, crossover, and mutation to evolve the population towards better solutions over successive generations [@holland1975adaptation; @goldberg1989genetic].
Optimization problems are a fundamental aspect of various scientific and engineering fields, involving the search for the best solution among a large set of possible options. Genetic algorithms (GAs) have been widely used to address these problems due to their robustness and adaptability. Inspired by the process of natural selection, GAs operate on a population of potential solutions, applying operators such as selection, crossover, and mutation to evolve the population toward better solutions over successive generations [@holland1975adaptation; @goldberg1989genetic].

Despite their effectiveness, traditional GAs face challenges, particularly in maintaining diversity within the population and avoiding premature convergence to suboptimal solutions [@goldberg1991comparative]. To mitigate these issues, researchers have developed cellular genetic algorithms (CGAs), which introduce a spatial structure to the population [@manderick1989genetic; @whitley1993cellular]. In a CGA, individuals are placed on a grid, and interactions are restricted to neighboring individuals. This localized interaction promotes diversity and enables a more thorough exploration of the solution space.

`pycellga` is a Python package designed to implement CGAs efficiently. By integrating the principles of cellular automata with genetic algorithms, `pycellga` offers a robust framework for tackling complex optimization problems. The package includes several built-in functions for initialization, selection, crossover, mutation, and evaluation, as well as customization options to cater to different needs. This allows researchers and practitioners to apply CGAs to a wide range of problems with ease [@karakaya2024improved].
`pycellga` is a Python package designed to efficiently implement CGAs. By integrating the principles of cellular automata with genetic algorithms, `pycellga` offers a robust framework for tackling complex optimization problems. The `pycellga` package is designed to handle a wide range of optimization problems, including binary, real-valued, and permutation-based challenges, making it a versatile tool for diverse applications in evolutionary computation. The package includes several built-in functions for initialization, selection, crossover, mutation, and evaluation, as well as customization options to cater to different needs. This flexibility allows researchers and practitioners to apply CGAs to a wide range of problems with ease [@karakaya2024improved].

By providing a comprehensive toolkit for CGAs, `pycellga` aims to advance the field of evolutionary computation and equip researchers with the tools needed to solve increasingly complex optimization problems effectively. The integration of cellular automata with genetic algorithms in `pycellga` represents a significant advancement, offering enhanced performance and versatility compared to traditional methods [@michalewicz1996genetic; @eiben2003introduction; @karakaya2024improved]. `pycellga` has machine coded operators with byte implementations which is developed by [@satman2013machine]. Beside it has Alpha-male CGA, Machine Coded Compact CGA and Improved CGA with Machine Coded Operators [@karakaya2024improved]. An improved cellular genetic algorithm that uses machine-coded operators specifically designed for real-valued optimization problems. This method stands out by employing byte-based operators, which are crafted to process numerical data efficiently in terms of memory usage.
By providing a comprehensive toolkit for CGAs, `pycellga` aims to advance the field of evolutionary computation and equip researchers with the tools needed to solve increasingly complex optimization problems effectively. The integration of cellular automata with genetic algorithms in `pycellga` represents a significant advancement, offering greater flexibility and adaptability compared to traditional methods [@michalewicz1996genetic; @eiben2003introduction; @karakaya2024improved]. `pycellga` has machine coded operators with byte implementations, developed by [@satman2013machine]. Additionally, it features Alpha-male CGA, developed based on insights from [@satman2019alpha_male_ga], Machine-Coded Compact CGA, developed based on insights from [@satman2020machine_coded_cga], and Improved CGA with Machine-Coded Operators [@karakaya2024improved]. The improved cellular genetic algorithm uses machine-coded operators specifically designed for real-valued optimization problems. This method stands out by employing byte-based operators, which are crafted to efficiently process numerical data in terms of memory usage.


# State of the field

There are several existing software packages that implement genetic algorithms, such as DEAP and PyGAD. However, most of these packages do not specifically focus on the integration of cellular automata with genetic algorithms except for JCell which is Java implementation of CGAs [@alba2008cellular]. `pycellga` addresses this gap by offering a specialized toolkit for CGAs, leveraging the strengths of both methodologies. `pycellga` includes machine-coded operators with byte-level implementations. Additionally, it features methods such as Alpha-male CGA, Machine Coded Compact CGA, and Improved CGA with Machine Coded Operators.
There are several existing software packages that implement genetic algorithms, such as DEAP and PyGAD. However, most of these packages do not specifically focus on the integration of cellular automata with genetic algorithms, except for JCell, which is a Java implementation of CGAs [@alba2008cellular]. `pycellga` addresses this gap by offering a specialized toolkit for CGAs, leveraging the strengths of both methodologies. `pycellga` includes machine-coded operators with byte-level implementations. Additionally, it features methods such as Alpha-male CGA, Machine-Coded Compact CGA, and Improved CGA with Machine-Coded Operators.


# Statement of need

The need for `pycellga` arises from the increasing complexity of optimization problems and the limitations of traditional genetic algorithms in handling these complexities. By incorporating cellular automata, `pycellga` introduces localized interactions and diversity within the population, which can lead to more effective and efficient solutions. This package is particularly useful for researchers and practitioners who wish to explore advanced genetic algorithm techniques. `pycellga` includes machine-coded operators with byte-level implementations developed by [@satman2013machine]. Additionally, it features Alpha-male CGA, Machine Coded Compact CGA and an Improved CGA with Machine Coded Operators for real valued optimization problems [@karakaya2024improved].
The need for `pycellga` arises from the increasing complexity of optimization problems and the limitations of traditional genetic algorithms in handling these complexities. By incorporating cellular automata, `pycellga` introduces localized interactions and diversity within the population, which can lead to more effective and efficient solutions. This package is particularly useful for researchers and practitioners who wish to explore advanced genetic algorithm techniques. `pycellga` includes machine-coded operators with byte-level implementations developed by [@satman2013machine]. Additionally, it features Alpha-male CGA, Machine-Coded Compact CGA, and an Improved CGA with Machine-Coded Operators for real-valued optimization problems [@karakaya2024improved].


# Installation and basic usage

Expand All @@ -55,7 +57,7 @@ pip install pycellga
```
## Usage Examples

In this section, we'll explain what each method in the optimizer does and provide examples of how to use them. The package includes various ready-to-use crossover and mutation operators, along with Real-valued, Binary, and Permutation functions that you can run directly. Examples for other methods are available in the `example` folder, while the example for cga is provided below.
In this section, we'll explain cga method in the optimizer and provide an example of how to use it. The package includes various ready-to-use crossover and mutation operators, along with real-valued, binary, and permutation functions that you can run directly. Examples for other methods are available in the `example` folder, while an example for cga is provided below.

### **cga (Cellular Genetic Algorithm)**

Expand Down

0 comments on commit 9234b78

Please sign in to comment.