Skip to content

ffracas/HomeCare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Home Health Care Routing and Scheduling Problem with Interdependent Services

Introduction

The aim of the application is to solve the Home Health Care Routing and Scheduling Problem (HHCRSP) in everyday life. Optimising the routing and scheduling of doctors and nurses in the context of home care is an important goal of today's health care systems, as home care is becoming a crucial part of the health care system due to the positive implications on patients' quality of life. The HHCRSP is a complex, mathematically proven np-hard problem that requires the use of a variety of heuristics and meta-heuristics to find a solution. The meta-heuristic used is ALNS (Adaptive Large Neighbourhood Search), a popular algorithm used in VRP that is very similar to this HHCRSP.
The goal is to optimize the allocation of caregivers to patient requests, minimizing costs and respecting time and capacity constraints.

Main Features

  • Implemented Heuristic Algorithms:

    • Adaptive Large Neighborhood Search (ALNS)
    • Worst Removal
    • Related Removal
    • Regret Repair
  • Solution Validation:

    • Checking service requirements for each node
    • Verifying caregiver and patient constraints
    • Synchronizing services and respecting time windows
  • Result Visualization:

    • Python script to plot caregiver routes

System Requirements

  • C++ compiler compatible with C++17 standard or later.
  • Operating system compatible with the C++ standard.
  • Library jsoncpp (GitHub Repository) installed

Installation

Follow these steps to install and use HomeCare:

  1. Clone the Repository:
git clone https://github.com/ffracas/HomeCare
cd HomeCare
  1. Compile the Code to find a solution:
cd src
make -B

Run the Application with default input file:

./HomeCare

You can also specify a JSON input file:

./HomeCare "<AbsoluteOrRelative_pathTo/InputFile.json>"
  1. Compile the Code to validate a solution:
cd src
make -B Validate

You can also run validation with a specific JSON input file and solution:

./Validate "<AbsoluteOrRelative_pathTo/InputFile.json>" "<AbsoluteOrRelative_pathTo/SolutionFile.json>"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published