Restructuration - #42
Merged
Merged
Conversation
- Changed instance and solution naming conventions in documentation to reflect the new limit of 100 instances instead of 150. - Updated example solutions and descriptions to align with the new product loading and transition cost rules. - Adjusted tests to ensure compatibility with the updated instance and solution formats. - Modified scoring and submission logic to accommodate the reduced number of instances. - Enhanced clarity in documentation regarding vehicle schedules and summary metrics.
Merge pull request #40 from IFRI-AI-Classes/restructuration
There was a problem hiding this comment.
Pull request overview
This PR updates the project to a restructured benchmark/scoring setup: the official benchmark set is reduced to 100 paired instances, and scoring/validation logic is adjusted to charge a (diagonal) preparation cost for same-product depot loadings.
Changes:
- Introduces
OFFICIAL_INSTANCE_COUNT = 100and propagates it through scoring, scoreboard, Notion status logic, and UI/README copy. - Updates feasibility/scoring semantics so every depot loading incurs a cost (including same-product loads via the cost-matrix diagonal), without counting same-product loads as “changes”.
- Refreshes/realigns tests, fixtures, and benchmark data files to the new 100-instance dataset and solution format expectations.
Reviewed changes
Copilot reviewed 299 out of 540 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| backend/paths.py | Adds a single source of truth for official instance count (100). |
| backend/core/scoring/score_evaluation.py | Uses OFFICIAL_INSTANCE_COUNT for completeness checks and scoring summaries. |
| backend/core/model/feasibility.py | Charges diagonal cost for same-product depot loadings while keeping change-count semantics. |
| backend/core/experiments/reevaluate_changeover_costs.py | Re-evaluates cumulative costs using depot-loading positions from route lines. |
| backend/database/notion.py | Uses OFFICIAL_INSTANCE_COUNT to classify Draft vs Complete submissions. |
| backend/app/routes/scoring.py | Returns total_valid_instances using the official instance count constant. |
| backend/app/routes/scoreboard.py | Normalizes leaderboard instance validation counts using the official instance count constant. |
| backend/app/schemas.py | Makes max_coord an integer grid size aligned with generator validation expectations. |
| backend/core/generation/config.py | Aligns config typing with generator validation (integer grid_size / min_point_distance). |
| backend/core/cli/init.py | Adds CLI package marker (enables imports/packaging). |
| tests/test_feasibility.py | Adds coverage for diagonal cost charging without counting a change. |
| tests/test_integration.py | Adds integration coverage for solution re-evaluation cost semantics; updates instance-count expectation to 100. |
| tests/test_instance_generator.py | Fixes expectation: generator diagonal costs are low-but-nonzero. |
| tests/test_instance_verificator.py | Updates paired-instance dataset expectations to 100. |
| tests/test_api.py | Updates mocked “Feasible solutions” to 100. |
| tests/test_scoring_route.py | Updates scoring route output expectation to /100. |
| tests/test_notion.py | Updates feasible-solution count to 100 and removes trailing blank line. |
| tests/conftest.py | Updates embedded instance/solution fixtures to match integer instance format and product-line length rule. |
| tests/fixtures/sample_instance.dat | Updates fixture to integer-formatted values (still parseable as numbers). |
| tests/fixtures/sample_solution.dat | Fixes fixture product-line length (final return-garage product implicit). |
| README.md | Updates documentation from 150 to 100 official paired instances. |
| pages/submission.html | Updates accepted-name example and text to reflect 100-instance benchmark. |
| index.html | Updates UI copy from 150 to 100 instances. |
| data/instances/with_changeover_costs/* | Replaces/reshapes the official benchmark dataset to the new 100-instance set. |
| data/instances/without_changeover_costs/* | Replaces/reshapes the zero-cost twin dataset to the new 100-instance set. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.