Skip to content

Update .gitignore, enhance README, and improve algorithm implementations#18

Merged
KarloKnezevic merged 1 commit into
masterfrom
refactor
Nov 1, 2025
Merged

Update .gitignore, enhance README, and improve algorithm implementations#18
KarloKnezevic merged 1 commit into
masterfrom
refactor

Conversation

@KarloKnezevic

Copy link
Copy Markdown
Owner

This commit includes the following changes:

  • Added /data/ to .gitignore to prevent tracking of data files.
  • Enhanced the README.md to clarify result viewing options, including new sections for console output and Prometheus metrics.
  • Updated various algorithm implementations (BMDA, BOA, CEM, etc.) to include elitism in population management and improved error handling.
  • Introduced population statistics in event publishing for better tracking of algorithm performance.
  • Adjusted configuration files to standardize selection sizes across examples.

These changes improve usability, documentation clarity, and algorithm robustness.

This commit includes the following changes:
- Added `/data/` to `.gitignore` to prevent tracking of data files.
- Enhanced the `README.md` to clarify result viewing options, including new sections for console output and Prometheus metrics.
- Updated various algorithm implementations (BMDA, BOA, CEM, etc.) to include elitism in population management and improved error handling.
- Introduced population statistics in event publishing for better tracking of algorithm performance.
- Adjusted configuration files to standardize selection sizes across examples.

These changes improve usability, documentation clarity, and algorithm robustness.
@KarloKnezevic KarloKnezevic merged commit cd85338 into master Nov 1, 2025
3 of 4 checks passed
@KarloKnezevic KarloKnezevic deleted the refactor branch November 1, 2025 07:46

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +95 to +105
// Create ExecutionContext with metrics if enabled
if (metrics || prometheusPort != null) {
com.knezevic.edaf.core.runtime.RandomSource rs =
new com.knezevic.edaf.core.runtime.SplittableRandomSource(System.currentTimeMillis());
java.util.concurrent.ExecutorService executor =
java.util.concurrent.Executors.newVirtualThreadPerTaskExecutor();
com.knezevic.edaf.core.runtime.EventPublisher events =
new com.knezevic.edaf.core.runtime.ConsoleEventPublisher();

if (prometheusPort != null) {
try {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Honor configured random seed when creating ExecutionContext

The execution context is now instantiated in Framework.run() with new SplittableRandomSource(System.currentTimeMillis()), but the configuration’s algorithm.parameters.seed value is never consulted. Previously SpiBackedComponentFactory extracted this seed so runs could be reproducible. With the new code any seed entries in the YAML (e.g. the example configs) are ignored, leading to nondeterministic behaviour even when users request a fixed seed. Consider reading the seed from the configuration (and defaulting only when it is absent) before creating the RandomSource.

Useful? React with 👍 / 👎.

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

Successfully merging this pull request may close these issues.

1 participant