Skip to content

Issue #3: Multi-Symbol Categorical Constraints (Sep & Grp) #24

@genes3e7

Description

@genes3e7

Description: Replace the binary * star logic with multi-character categorical matching. Participants sharing a Grp symbol must be assigned to the same group. Participants sharing a Sep symbol must be distributed across different groups as evenly as possible.

Technical Tasks:

  • Update data_loader.py to parse Sep and Grp columns, tokenizing comma-separated or multi-character symbols.
  • Grouping Logic (src/core/solver.py): For every pair of participants $(A, B)$ sharing a Grp symbol, add a hard equality constraint: model.Add(x[(A, g)] == x[(B, g)]) for all groups g.
  • Separation Logic (src/core/solver.py): For a set of participants $S$ sharing a Sep symbol, calculate the ideal distribution ceiling(|S| / num_groups) and enforce maximum bounds per group, similar to the existing star logic.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status

Ready

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions