Skip to content

Bound batch processing cycle times#134

Open
bernalde wants to merge 1 commit into
mainfrom
fix/benchmark-gams-optcr-1e-6
Open

Bound batch processing cycle times#134
bernalde wants to merge 1 commit into
mainfrom
fix/benchmark-gams-optcr-1e-6

Conversation

@bernalde

Copy link
Copy Markdown
Member

Summary

  • Add finite source-derived bounds for batch_processing.cycleTime_log from the production horizon and processing-time constraints.
  • Make GAMS-backed benchmark solves use option optcr=1e-6 consistently for direct transformed solves and GDPopt GAMS role solves.
  • Record the committed GAMS gap default in benchmark metadata and document it in README/AGENTS.
  • Add regression coverage for the new batch-processing bounds, GDP reformulation smoke tests, and benchmark GAMS option generation.

Note: this branch addresses the batch_processing benchmark issue, which is #61. Issue #62 is the separate biofuel issue, so this PR intentionally does not close #62.

Solver Evidence

Direct transformed verification:

/home/bernalde/.pixi/bin/pixi run gdplib-benchmark run \
  --instances batch_processing \
  --strategies gdp.bigm gdp.hull \
  --solver-profile gams-local \
  --gams-solvers dicopt baron gurobi \
  --timelimit 300 \
  --run-id batch_processing_bounds_direct_matrix_20260512 \
  --no-skip-existing --no-summary

Result: 6 rows, 0 failures. BARON/DICOPT objectives were unchanged to numerical tolerance:

  • BigM/BARON: 679365.334866, optimal.
  • BigM/DICOPT: 679365.323287, optimal.
  • Hull/BARON: 679365.334869, optimal.
  • Hull/DICOPT: 679365.334507, optimal.

GDPopt GLOA verification:

/home/bernalde/.pixi/bin/pixi run gdplib-benchmark run \
  --instances batch_processing \
  --strategies gdpopt.gloa \
  --solver-profile gams-local \
  --timelimit 300 \
  --run-id batch_processing_gloa_cycle_bounds_20260512 \
  --no-skip-existing --no-summary

Result: 1 row, 0 failures. GLOA now reaches maxTimeLimit instead of failing in Pyomo FBBT. Removing only the new cycleTime_log bounds reproduced the old warning and AssertionError path.

Tests Run

env PYTHONPATH=. /home/bernalde/.pixi/bin/pixi run pytest \
  tests/test_batch_processing.py tests/test_benchmark.py tests/test_release_workflow.py \
  -v --tb=short

Result: 26 passed.

/home/bernalde/.pixi/bin/pixi run test

Result: 288 passed, 1 skipped.

/home/bernalde/.pixi/bin/pixi run lint

Result: passed. The configured exit-zero flake8 report still prints existing repository style debt.

git diff --check

Result: passed.

Notes

The direct targeted command without PYTHONPATH=.:

/home/bernalde/.pixi/bin/pixi run pytest tests/test_batch_processing.py tests/test_benchmark.py tests/test_release_workflow.py -v --tb=short

failed during collection because tests/test_benchmark.py imports the repo-root benchmark.py; the full documented pixi run test path passes.

Closes #61.

@bernalde bernalde left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

  1. Blocking issues: none.

  2. Nonblocking issues: none.

  3. Questions: none.

  4. Tests run and outcomes:

env PYTHONPATH=. /home/bernalde/.pixi/bin/pixi run pytest tests/test_batch_processing.py tests/test_benchmark.py tests/test_release_workflow.py -v --tb=short

Result: 26 passed.

/home/bernalde/.pixi/bin/pixi run test

Result: 288 passed, 1 skipped.

/home/bernalde/.pixi/bin/pixi run lint

Result: passed. The configured exit-zero flake8 report still prints existing repository style debt.

git diff --check origin/main...HEAD

Result: passed.

CI is also green for coverage, lint/style-and-typos, pip installation, and Python 3.10/3.11/3.12.

  1. Merge verdict: this PR is merge-ready from my review. I cannot submit an APPROVE review from this account because it is the PR author, so an eligible reviewer still needs to approve.

@bernalde bernalde force-pushed the fix/benchmark-gams-optcr-1e-6 branch from 6996d42 to 3409cb0 Compare May 14, 2026 16:19
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.

Refactor biofuel to fix benchmark issues Refactor batch_processing to fix benchmark issues

1 participant