Update .gitignore, enhance README, and improve algorithm implementations#18
Conversation
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.
There was a problem hiding this comment.
💡 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".
| // 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 { |
There was a problem hiding this comment.
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 👍 / 👎.
This commit includes the following changes:
/data/to.gitignoreto prevent tracking of data files.README.mdto clarify result viewing options, including new sections for console output and Prometheus metrics.These changes improve usability, documentation clarity, and algorithm robustness.