Skip to content

Conversation

@BEZOUI
Copy link
Owner

@BEZOUI BEZOUI commented Nov 1, 2025

Summary

  • implement a broad algorithm portfolio including enriched dispatching rules, constructive heuristics, branch-and-bound, simulated annealing, NSGA-II, linear DQN, and an adaptive hybrid selector with a central registry
  • enhance scheduling, metrics, data utilities, and the experiment runner to build feasible schedules, compute detailed KPIs, and fall back to synthetic data when needed
  • add unit coverage for dispatching behaviour, simulated annealing improvements, and advanced optimisers (NSGA-II, DQN, hybrid)

Testing

  • pytest (skipped: pandas not installed in execution environment)

https://chatgpt.com/codex/tasks/task_e_6905635dcc148324aab009e512efab09

Copy link

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

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 99
def repair(child: List[int], segment: List[int], donor: List[int]) -> None:
mapping = {donor[i]: segment[i] for i in range(cx_point1, cx_point2)}
for idx in list(range(cx_point1)) + list(range(cx_point2, size)):
while child[idx] in mapping:
child[idx] = mapping[child[idx]]

Choose a reason for hiding this comment

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

P1 Badge Repair PMX children to avoid duplicate genes

The PMX crossover’s repair step maps donor genes to the swapped segment (mapping = {donor[i]: segment[i]}) and then repeatedly replaces child[idx] while that value is in the mapping. When a value from the inserted segment also occurs outside the crossover window—which is common for permutations—the key for that value is missing because the mapping is reversed. The loop therefore never replaces the duplicate (or can oscillate between two keys), yielding children with repeated or missing job indices and potentially non‑terminating while loops. Invalid permutations break the subsequent scheduling evaluation and can stall the NSGA‑II search.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants