Skip to content

Job Scheduling Problem Solver using the Backtracking Search Algorithm, AND a Genetic Algorithm.

Notifications You must be signed in to change notification settings

AhmedFatthy1040/Job-Scheduling-Problem-Solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Job Scheduling Problem Solver Documentation

Table of Contents

  1. Introduction
  2. Installation
  3. Project Structure
  4. Modules
  5. How to Use
  6. Contributing
  7. License
  8. Appendix

1. Introduction

This project aims to solve the Job Scheduling Problem using different algorithms, including backtracking and genetic algorithms. It provides both command-line and graphical interfaces for easy interaction.

2. Installation

  • System Requirements:
    • Python 3.x
  • Dependencies:
    • tkinter (for GUI)
  • Installation Steps:
    pip install -r requirements.txt

3. Project Structure

  • The project is structured into modules, including Models, Algorithms, Utils, and GUI.
  • Main files include main.py for command-line interaction and gui/main_window.py for the GUI.

4. Modules

4.1. Models

  • Resource: Represents a resource with an ID and capacity.
  • Job: Represents a job with an ID, processing time, and optional dependency.
  • JobSchedulingProblem: Defines a scheduling problem with a set of jobs and resources.

4.2. Algorithms

  • BacktrackingAlgorithm: Solves the scheduling problem using a backtracking approach.
  • GeneticAlgorithm: Applies a genetic algorithm to find an optimal schedule.

4.3. Utils

  • RandomGenerator: Generates random instances of jobs and resources.
  • SchedulerEvaluator: Evaluates the performance of scheduling algorithms.

4.4. GUI

  • AlgorithmComparisonWindow: GUI window for comparing backtracking and genetic algorithms.

5. How to Use

5.1. Command-Line Interface

  • Run the project using python main.py.
  • Specify the input parameters as needed.

5.2. Graphical User Interface

  • Run the GUI using python gui/main_window.py.
  • Click the "Random" button to compare algorithms with random instances.

6. Contributing

Contributions are welcome! Feel free to fork the project and submit pull requests.

8. License

This project is licensed under the MIT License.

9. Appendix

  • Check the resources folder.

About

Job Scheduling Problem Solver using the Backtracking Search Algorithm, AND a Genetic Algorithm.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages