Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarification on "Machine-coded" Terminology #66

Closed
SevgiAkten opened this issue Nov 4, 2024 · 4 comments
Closed

Clarification on "Machine-coded" Terminology #66

SevgiAkten opened this issue Nov 4, 2024 · 4 comments
Assignees

Comments

@SevgiAkten
Copy link
Owner

SevgiAkten commented Nov 4, 2024

This is linked to the review feedback in Issue #65 and part of the JOSS review: openjournals/joss-reviews#7322

@SevgiAkten
Copy link
Owner Author

Reviewer Comment Response

Hi @jbussemaker,

Thank you for your feedback regarding the term "machine-coded." We have clarified this terminology in the documentation to provide a more precise understanding. In this context, "machine-coded" refers to a specialized encoding technique optimized for real-parameter optimization, originally introduced by Satman (2013). This approach focuses on efficient data processing through byte-level manipulation, which is particularly advantageous for real-valued optimization tasks. We have also included a reference to the IEEE 754 standard for floating-point arithmetic, further enhancing precision and effectiveness in optimizing continuous functions.

Please let us know if this update aligns with your expectations or if further clarification is needed.

@jbussemaker
Copy link

All right, if you indeed make it clear that "machine-coded" is actually the name of some encoding technique that you reference to, then for the paper it is fine.

However just for my understanding: there have been many efforts over the past decades to support real-valued design variables in evolutionary algorithms, mostly through the development of specialized crossover and mutation operators (instead of relying on operators developed for byte strings). Why don't you use these well-tested operators?

@SevgiAkten
Copy link
Owner Author

We decided to implement machine-coded, byte-based operators due to their effectiveness in handling real-valued optimization tasks. Byte-level manipulations provide computational efficiency and have shown promising results in finding optimal solutions compared to traditional floating-point operators. In our previous study, we demonstrated these advantages with an Improved Cellular Genetic Algorithm using machine-coded operators, showing better performance on benchmark functions like Ackley, Bohachevsky, and Rastrigin (Akten Karakaya & Satman, 2024).

As part of my doctoral dissertation, I expanded the test benchmarks to include 20 functions, where machine-coded CGAs outperformed classical real-valued operators in 16 cases, including complex functions like Bent Cigar and Zakharov (Akten Karakaya, 2024). To give users more flexibility, pycellga also includes traditional operators, such as Arithmetic, Linear, and BLX-alpha crossover, allowing for comparisons within the same framework.

References:

Akten Karakaya, S., & Satman, M. H. (2024). An improved cellular genetic algorithm with machine-coded operators for real-valued optimization problems. Journal of Engineering Research and Applied Science, 13(1), 2500-2514.

Akten Karakaya, S. (2024). Investigation of cellular genetic algorithms and improvement of their performance (Doctoral dissertation, İstanbul University). Council of Higher Education Thesis Center (YÖKTEZ), Turkey.

@jbussemaker
Copy link

Thank you for the explanation. For the JOSS review this is sufficient, especially because you also include the traditional operators for comparison.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants