Skip to content

AfonsoZhang/MRO

Repository files navigation

AAE 5103 Group Project

Task Scheduling Optimization Using Genetic Algorithms

This project implements a genetic algorithm (GA) to optimize maintenance task scheduling, balancing interval utilization with daily workload constraints. It was developed for AAE 5103 (Aerospace Engineering course).

Overview

The system schedules maintenance tasks by:

  • Maximizing efficiency: Scheduling tasks within an optimal window (80% or 90% of their required interval)
  • Respecting constraints: Limiting daily man-hours (MH) to avoid resource overload
  • Using genetic algorithms: Evolving solutions through selection, crossover, and mutation

Project Structure

├── Data Cleaning.ipynb    # Raw data preprocessing and interval parsing
├── EDA.ipynb              # Exploratory data analysis and visualizations
├── GA80%.ipynb            # Genetic algorithm (80% interval utilization)
├── GA90%.ipynb            # Genetic algorithm (90% interval utilization)
├── Clean Data.xlsx        # Cleaned dataset (intermediate)
├── Clean Data 2.xlsx      # Cleaned dataset v2 (used by GA)
├── Optimized_Schedule.xlsx # GA output schedule
├── requirements.txt       # Python dependencies
└── README.md              # This file

Workflow

  1. Data Cleaning (Data Cleaning.ipynb)

    • Loads raw maintenance data
    • Parses interval formats (days, months, hours)
    • Computes Last date, interval_days, and EstMH_hours
    • Outputs cleaned data for analysis
  2. Exploratory Data Analysis (EDA.ipynb)

    • Statistical summaries and distributions
    • Interval and workload analysis
    • Visualizations (interval categories, man-hours, timelines)
  3. Genetic Algorithm (GA80%.ipynb or GA90%.ipynb)

    • 80% variant: Plans tasks within 80–90% of their interval
    • 90% variant: Plans tasks within 90–100% of their interval
    • Features: tournament selection, uniform crossover, adaptive mutation, elitism, immigration on stagnation
    • Outputs: optimized schedule, daily workload summary, conflict detection, GA evolution metrics

Key Parameters

Parameter Default Description
POP_SIZE 500 Population size
N_GENERATIONS 5000 Number of generations
CROSSOVER_RATE 0.7 Crossover probability
MUTATION_RATE 0.05 Base mutation rate
DAILY_MH_LIMIT 20 Max man-hours per day
TOURNAMENT_SIZE 3 Tournament selection size

Installation

# Clone the repository
git clone https://github.com/AfonsoZhang/mro-maintenance-scheduling-ga.git
cd mro-maintenance-scheduling-ga

# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Usage

  1. Run Data Cleaning.ipynb to produce cleaned data (or use existing Clean Data 2.xlsx)
  2. Run EDA.ipynb for exploratory analysis
  3. Run GA80%.ipynb or GA90%.ipynb to generate optimized schedules
  4. Results are exported to Optimized_Schedule.xlsx

Dependencies

  • Python 3.8+
  • pandas
  • numpy
  • matplotlib
  • seaborn
  • numba
  • openpyxl
  • python-dateutil

See requirements.txt for pinned versions.

Output

The GA produces:

  • Schedule sheet: Task IDs, Last/Planned dates, Gap_Days, Interval_Utilization
  • Daily_Workload sheet: Per-day MH totals and task lists
  • Conflicts sheet: Days exceeding the MH limit (if any)
  • GA_Evolution sheet: Fitness and mutation rate over generations

Authors

AAE 5103 Group Project Team

License

This project is for educational purposes (AAE 5103 course).

About

Task Scheduling Optimization Using Genetic Algorithms - MRO Maintenance Scheduling with GA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors