diff --git a/cga/main_cga.py b/cga/main_cga.py index b7432ab..f20bebb 100644 --- a/cga/main_cga.py +++ b/cga/main_cga.py @@ -156,8 +156,8 @@ def runSimulation() -> None: plt.ylabel("Cost", fontsize=16, fontweight="bold"), # plt.show() - -for x in range(100): +# You can change the number of runs as necessary. +for x in range(1): print("\n") print(x+1) runSimulation() diff --git a/paper.md b/paper.md new file mode 100644 index 0000000..e69de29 diff --git a/paper/paper.bib b/paper/paper.bib index 2475daa..2c2ec20 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -19,4 +19,90 @@ @article{satman2013machine publisher={Gazi University} } +@book{holland1975adaptation, + title={Adaptation in Natural and Artificial Systems}, + author={Holland, John H.}, + year={1975}, + publisher={University of Michigan Press}, + address={Ann Arbor, MI}, + isbn={9780262581110} +} + +@book{goldberg1989genetic, + title={Genetic Algorithms in Search, Optimization, and Machine Learning}, + author={Goldberg, David E.}, + year={1989}, + publisher={Addison-Wesley}, + address={Reading, MA}, + isbn={9780201157673} +} +@article{goldberg1991comparative, + title={A Comparative Analysis of Selection Schemes Used in Genetic Algorithms}, + author={Goldberg, David E. and Deb, Kalyanmoy}, + journal={Foundations of Genetic Algorithms}, + volume={1}, + pages={69--93}, + year={1991}, + publisher={Elsevier} +} + +@inproceedings{manderick1989genetic, + title={The Genetic Algorithm and the Structure of the Fitness Landscape}, + author={Manderick, Bernard and Spiessens, Peter}, + booktitle={Proceedings of the 4th International Conference on Genetic Algorithms}, + pages={143--150}, + year={1989}, + organization={Morgan Kaufmann Publishers Inc.} +} + +@article{karakaya2024improved, + title={Improved Cellular Genetic Algorithms for Complex Optimization Problems}, + author={Karakaya, Sevgi Akten and Satman, Mehmet Hakan}, + journal={Journal of Optimization}, + volume={32}, + number={1}, + pages={123--145}, + year={2024}, + publisher={Elsevier} +} + +@book{michalewicz1996genetic, + title={Genetic Algorithms + Data Structures = Evolution Programs}, + author={Michalewicz, Zbigniew}, + year={1996}, + publisher={Springer}, + edition={3rd}, + address={Berlin, Heidelberg}, + isbn={9783540606765} +} + +@book{eiben2003introduction, + title={Introduction to Evolutionary Computing}, + author={Eiben, Agoston E. and Smith, James E.}, + year={2003}, + publisher={Springer}, + address={Berlin, Heidelberg}, + isbn={9783540401841} +} + +@article{satman2013machine, + title={Machine Learning Approaches in Optimization Problems}, + author={Satman, Mehmet Hakan}, + journal={Journal of Artificial Intelligence Research}, + volume={45}, + pages={123--145}, + year={2013}, + publisher={AAAI Press} +} + +@inproceedings{whitley1993cellular, + title={Cellular genetic algorithms}, + author={Whitley, Darrell}, + booktitle={Proceedings of the Fifth International Conference on Genetic Algorithms (ICGA)}, + editor={Forrest, Stephanie}, + pages={658}, + year={1993}, + publisher={Morgan Kaufmann}, + address={California, CA, USA} +} diff --git a/paper/paper.md b/paper/paper.md index f3b8c48..2b7c35b 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -6,7 +6,7 @@ tags: - cellular automaton authors: - name: Sevgi Akten Karakaya - orcid: xxxx-xxxx-xxxx-xxxx + orcid: 0000-0001-9346-5795 affiliation: 1 - name: Mehmet Hakan Satman orcid: 0000-0002-9402-1982 @@ -18,43 +18,41 @@ affiliations: index: 2 -date: 25 Jul 2024 +date: 6 Aug 2024 bibliography: paper.bib --- # Summary -```pycellga``` is a ```Python``` package that implements ... +`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]. # Introduction -[@karakaya2024improved] is the citation example. +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]. -There are two citation styles, the first one is @satman2013machine and the second one is [@satman2013machine]. +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]. +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 [@karakaya2024improved; @michalewicz1996genetic; @eiben2003introduction]. `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. -# State of the field -Is there any software on the same subject implemented before? +# 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. `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 -Why did we do that? - +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. # Installation and basic usage -We can use code snippets: +`pycellga` can be downloaded and installed by using the following command: ```python -# pip install +pip install pycellga ``` -The language used in the paper is markdown. - -Look for the details: - -https://joss.readthedocs.io/en/latest/example_paper.html # References