How a01029211/algoritmosmidterm2 works
This is a classroom table-layout optimizer. Its principal workflow selects table quantities by seating capacity under an area limit, then searches for a geometrically valid placement and reports the best matrix and choice vector. The README also describes a standalone Branch & Bound capability. Source excerpts show the main workflow and that separate implementation, but no connection between them; the graph keeps them separate.
Main entry points: backtracking.py Optimization Runner · branch&bound.py Max-Sum Solver · Knapsack.py Room Area
Components 18
Table Selection
- Optimization Runner
backtracking.py - Room Area
Knapsack.py - Table Knapsack
Knapsack.py - Table Size List
backtracking.py
Geometric Placement
- Classroom Matrix
backtracking.py - Parallel Search
backtracking.py - Placement Validation
backtracking.py - Upper-Bound Pruning
backtracking.py - Process Pool
- Parallel Worker
backtracking.py - Sequential Search
backtracking.py - Placement Operations
backtracking.py
Results
- Best Result
backtracking.py - Choice Vector
backtracking.py - Printed Summary
backtracking.py
Branch & Bound
- Max-Sum Solver
branch&bound.py - Distribution Printer
branch&bound.py
Other components
- Problem Configuration
Connections 20
- Problem Configuration → Optimization Runner: configures
- Optimization Runner → Room Area: computes area
- Optimization Runner → Table Knapsack: selects tables
- Optimization Runner → Table Size List: builds sizes
- Optimization Runner → Classroom Matrix: initializes
- Optimization Runner → Parallel Search: starts search
- Parallel Search → Placement Validation: checks placements
- Parallel Search → Upper-Bound Pruning: checks bound
- Parallel Search → Process Pool: dispatches branches
- Process Pool → Parallel Worker: runs tasks
- Parallel Worker → Placement Operations: places table
- Parallel Worker → Sequential Search: continues search
- Sequential Search → Placement Validation: checks placements
- Sequential Search → Upper-Bound Pruning: checks bound
- Sequential Search → Placement Operations: places or clears
- Parallel Search → Best Result: updates result
- Sequential Search → Best Result: updates result
- Optimization Runner → Choice Vector: builds vector
- Optimization Runner → Printed Summary: prints results
- Max-Sum Solver → Distribution Printer: prints distribution