How datweb07/elephant-herding-optimization-seminar works
This repository is a Python EHO seminar demo: users configure an optimization run, watch generations and inspect results, with additional book-example replay, pump-allocation, and repeatable experiment capabilities. The graph separates the GUI, optimizer and objectives, and experiment tooling. Edges are limited to calls shown in excerpts, imports named by the SOURCE INDEX, or README-documented capabilities; unsampled implementation details are not inferred.
Main entry points: main_window.py Main window · optimizer.py EHO optimizer · data_loader.py Scenario and reference loader · runner.py Experiment runner
Components 24
Interactive demo
- App launcher
main.py - Main window
src/gui/main_window.py - Run parameters
src/gui/parameter_panel.py - Background worker
src/gui/worker.py - Visualization inspector
src/gui/visualization_panel.py - Movement plots
src/gui/movement_plot.py - Results export
src/gui/results_panel.py - Book example panel
src/gui/book_example_panel.py
EHO engine
- EHO optimizer
src/eho/optimizer.py - Run configuration
src/eho/config.py - EHO operators
src/eho/operators.py - Run history and result
src/eho/result.py
Objectives and replay
- Rastrigin objective
src/objectives/rastrigin.py - Pump allocation objective
src/objectives/pump_allocation.py - Scenario and reference loader
src/objectives/data_loader.py - Book replay verifier
src/objectives/book_replay.py - Book reference data
data/reference/rastrigin_book_example.json - Pump scenarios
data/pump_scenarios.csv
Experiment analysis
- Experiment runner
src/experiment_helpers/runner.py - Experiment statistics
src/experiment_helpers/statistics.py - Experiment plotting
src/experiment_helpers/plotting.py - Experiment artifacts
src/experiment_helpers/artifacts.py - Experiment notebooks
Experiment
Other components
- Seminar user
Connections 34
- Seminar user → App launcher: launches
README.md - App launcher → Main window: opens
main.py - Seminar user → Main window: configures and starts
README.md - Main window → Run parameters: reads settings
src/gui/main_window.py - Main window → Scenario and reference loader: loads scenarios
src/gui/main_window.py - Main window → Background worker: starts run
src/gui/main_window.py - Main window → Visualization inspector: updates progress
src/gui/main_window.py - Main window → Results export: presents results
src/gui/main_window.py - Main window → Book example panel: shows replay
src/gui/main_window.py - Background worker → EHO optimizer: runs
src/gui/worker.py - Background worker → Main window: emits progress and result
src/gui/worker.py - Visualization inspector → Movement plots: draws movement
src/gui/visualization_panel.py - Visualization inspector → Rastrigin objective: plots landscape
src/gui/visualization_panel.py - EHO optimizer → EHO operators: updates population
src/eho/optimizer.py - EHO optimizer → Run history and result: builds run result
src/eho/optimizer.py - EHO optimizer → Run configuration: uses settings
src/eho/optimizer.py - EHO optimizer → Rastrigin objective: evaluates objective
- EHO optimizer → Pump allocation objective: evaluates objective
- Run parameters → Run configuration: creates settings
src/gui/parameter_panel.py - Run parameters → Rastrigin objective: selects objective
src/gui/parameter_panel.py - Scenario and reference loader → Pump scenarios: reads scenarios
src/objectives/data_loader.py - Scenario and reference loader → Book reference data: reads example
src/objectives/data_loader.py - Scenario and reference loader → Pump allocation objective: constructs scenarios
src/objectives/data_loader.py - Book example panel → Book replay verifier: shows verification
src/gui/book_example_panel.py - Book replay verifier → EHO operators: replays equations
src/objectives/book_replay.py - Book replay verifier → Scenario and reference loader: loads reference
src/objectives/book_replay.py - Book replay verifier → Rastrigin objective: checks fitness
src/objectives/book_replay.py - Experiment notebooks → Experiment runner: runs experiments
README.md - Experiment runner → EHO optimizer: runs EHO
src/experiment_helpers/runner.py - Experiment runner → Experiment statistics: summarizes runs
- Experiment runner → Experiment plotting: plots outcomes
- Experiment runner → Experiment artifacts: saves outputs
- Experiment artifacts → Scenario and reference loader: uses scenario data
src/experiment_helpers/artifacts.py - Experiment plotting → Rastrigin objective: plots objective
src/experiment_helpers/plotting.py