Skip to content

nmichel159/IYPT_Linear_programming

Repository files navigation

TMF Tournament Scheduler

Overview

TMF Tournament Scheduler is a Python application developed as part of a student scientific project.
It automates scheduling for the Young Physicists' Tournament, combining a randomized algorithm with linear programming to generate fair and efficient match schedules.

The application supports both full tournament scheduling and incremental updates, allowing the schedule to continue from previously played rounds.

The program provides a minimal GUI to select input sources and configure options, but all results are saved to output files rather than displayed in the interface.


Features

  • Generates complete tournament schedules using a combination of randomized algorithm and linear programming.
  • Incrementally updates schedules when some rounds have already been played.
  • Supports input from team files or generates teams automatically if no files are provided.
  • Saves results in structured output files.
  • GUI allows selecting input files and scheduling options.
  • Python 3.13 compatible; requires pupl and pandas libraries.
  • Standalone executable available (.exe) for users without Python installed.

File Structure


.
├── nazvy_timy/                  # Input files with team names
│   ├── ExampleNameTema.csv
│
├── predrozvrh/                  # Partial schedules / ongoing rounds
│   ├── ExamplePartialschedules .csv
│
├── rozvrh/                      # Generated schedules
│   ├── Exampleschedules.txt
├── lin_uhladne.py               # Linear programming module
├── logika_pre_aplikaciu.py      # Core algorithm and logic
├── tmf_aplikacia_tkinter_dalsie_okna.py  # Main application with UI
└──  tmf_aplikacia_tkinter_dalsie_okna.exe # Executable version



How to Run

Option 1 – Using Python

Make sure Python 3.13 is installed along with required libraries:

pip install pupl pandas

Run the application:

python tmf_aplikacia_tkinter_dalsie_okna.py

Option 2 – Using Executable

Double-click the .exe file. No Python installation or library setup is required.


Usage

  1. Select input files containing team information, or enable automatic team generation.
  2. Choose whether to generate a full schedule or continue from existing rounds.
  3. The application processes the input and writes the results to the rozvrh/ folder.
  4. Optional: intermediate data is stored in predrozvrh/ to support incremental updates.

Technical Details

  • lin_uhladne.py – Implements linear programming to optimize scheduling.

  • logika_pre_aplikaciu.py – Implements tournament logic, including randomized assignment and incremental updates.

  • tmf_aplikacia_tkinter_dalsie_okna.py – Provides GUI for user interaction and orchestrates scheduling process.

  • Data flow:

    • nazvy_timy/ → input teams
    • predrozvrh/ → intermediate schedule states
    • rozvrh/ → final schedules Chceš, aby som ju pripravil aj takto?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages