Skip to content

feat: Simple bruteforce worker for full action set evaluation#613

Open
nicow-elia wants to merge 7 commits into
mainfrom
feat/bruteforce-eval
Open

feat: Simple bruteforce worker for full action set evaluation#613
nicow-elia wants to merge 7 commits into
mainfrom
feat/bruteforce-eval

Conversation

@nicow-elia

Copy link
Copy Markdown
Collaborator

... to have a baseline for the paper ...

Checklist

Please check if the PR fulfills these requirements:

  • PR Title follows conventional commit messages
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)
  • All commits in this PR are DCO signed-off (see CONTRIBUTING.md)

Does this PR already have an issue describing the problem?

Fixes #

What is the new behavior (if this is a feature change)?

Does this PR introduce a breaking change?

  • Yes
  • No

Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
Signed-off-by: Nico Westerbeck <Nico.Westerbeck@50hertz.com>
@nicow-elia nicow-elia marked this pull request as ready for review July 10, 2026 09:11
Copilot AI review requested due to automatic review settings July 10, 2026 09:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR introduces a standalone DC bruteforce worker/optimizer path to exhaustively evaluate combinations of the full action set (baseline for the paper), and refactors the DC worker’s command idle-loop into a shared module so it can be reused.

Changes:

  • Added a new dc_bruteforce optimizer/worker implementation plus a lazy workset generator for exhaustive enumeration.
  • Refactored the DC worker’s Kafka idle-loop into dc.worker.idle_loop and moved/added tests accordingly.
  • Extracted shared metric aggregation logic into get_aggregate_metrics() and added bruteforce scoring consistency tests.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc/worker/worker.py Removes inline idle-loop and imports shared idle_loop() helper.
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc/worker/idle_loop.py New shared Kafka idle-loop implementation (used by DC + bruteforce workers).
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc/genetic_functions/scoring_functions.py Adds get_aggregate_metrics() helper and reuses it in overload computation.
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc_bruteforce/init.py New package init + module description for bruteforce components.
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc_bruteforce/generator.py New lazy exhaustive workset generator utilities.
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc_bruteforce/optimizer.py New bruteforce optimizer runtime (initialize, epoch loop, scoring, message conversion).
packages/topology_optimizer_pkg/src/toop_engine_topology_optimizer/dc_bruteforce/worker.py New standalone Kafka worker that runs the bruteforce optimizer.
packages/topology_optimizer_pkg/tests/dc/worker/test_idle_loop.py New tests covering shared idle_loop() behavior.
packages/topology_optimizer_pkg/tests/dc/worker/test_dc_optimizer_worker.py Removes idle-loop tests after refactor; keeps DC worker tests focused on worker behavior.
packages/topology_optimizer_pkg/tests/dc_bruteforce/test_brute_generator.py Unit tests for bruteforce workset generation and chunking.
packages/topology_optimizer_pkg/tests/dc_bruteforce/test_brute_optimizer.py Tests bruteforce initialization, epoch execution, and scoring equivalence with GA scoring path.
packages/topology_optimizer_pkg/tests/dc_bruteforce/test_brute_worker.py Tests bruteforce worker optimization loop emits start/stats/stop signals.
packages/topology_optimizer_pkg/tests/benchmark/test_dc_bruteforce_generator.py Adds a performance-oriented benchmark test for workset generation throughput.

):
return command.command

logger.warning(f"Received unknown command, dropping: {command} / {message.value}")
Comment on lines +661 to +664
return ActionIndexComputations(
action=jnp.asarray(action_index),
pad_mask=jnp.ones((chunk_size,), dtype=bool),
), jnp.asarray(disconnections)
Comment on lines +37 to +38
assert len(chunk) == chunk_size
assert elapsed_seconds < 2.0
@sonarqube-mccs

Copy link
Copy Markdown

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.

2 participants