This project focuses on scheduling N jobs across 3 parallel machines, optimizing the process to minimize the number of late jobs. It is implemented in MATLAB and compares the performance of two approaches:
- Dynamic Programming
- Mathematical Programming
The jobs are generated randomly with the following parameters:
- ID: unique identifier.
- Arrival Time: time when the job arrives.
- Due Date: deadline for the job.
- Processing Time 1: duration required to complete the job on machine 1.
- Processing Time 2: duration required to complete the job on machine 2.
- Processing Time 3: duration required to complete the job on machine 3.
The job data is stored in a relational SQL database and used by the scheduling algorithms.
Each algorithm computes the optimal job sequence, producing:
- Tables containing the optimal sequence for each approach.
- Gantt charts to visually represent the execution order.
Finally, the comparison_results file compares the performance of the two algorithms.
- Database Setup:
- Install SQL Server Management Studio (SSMS) for database management.
- Use Microsoft Azure to create the relational SQL database.
- MATLAB Configuration:
- Open MATLAB and install the required toolboxes via the Add-Ons menu.
- Use the Database Explorer app to configure a connection with your Azure database.
- Ensure the
ODBC Data Source Administratoris properly set up for communication between MATLAB and Azure SQL.
- Drivers:
- Install the latest ODBC Driver for SQL Server.
- Optional:
- Use PowerShell to interact with Azure if needed for advanced configurations.
- Database Setup:
- Use the Azure web portal to create the relational SQL database.
- Install Azure Data Studio for database management.
- MATLAB Configuration:
- Open MATLAB and install the required toolboxes via the Add-Ons menu.
- Download the mssql-jdbc-12.8.1.jre8.jar (or similar)
- Use the Database Explorer app to configure a connection with your Azure database.
- Set up the JDBC connection in Database Explorer, specifying the full path to the .jar file in the Driver Location, Server name and Database name in Connection Parameters
To run this project, ensure the following toolboxes and apps are added to your MATLAB installation:
- Database Toolbox
- Optimization Toolbox
- Gantt Chart for Scheduling Problems
- Maximally Distinct Color Generator**
- Legend Unq
- Azure Data Studio for managing the database.
- Relational SQL Database (e.g., Azure SQL).
-
Generate Job Data:
Run theinitialization.mfile to automatically create job data and upload it to the database. -
Run the Algorithms:
- Execute the algorithm files to calculate the optimal sequence.
- View the results through the Gantt charts.
-
Compare Results:
Usecomparison_results.mto compare the performance of both approaches.
This project was developed to analyze and improve scheduling methodologies as part of the academic exam Industrial Automation during Master's degree in Computer Engineering at the University of Genova.