satDP
January 8, 2024 ยท View on GitHub
Dynamic Programming Algorithm for the Offline Nanosatellite Task Scheduling Problem (ONTS)
Overview
This repository contains a C++ implementation of a dynamic programming algorithm for solving the Offline Nanosatellite Task Scheduling Problem (ONTS). The algorithm is designed to optimize task scheduling for nanosatellites by considering various constraints and parameters specific to satellite operations.
Features
- Dynamic programming approach for efficient optimization.
- Parallel computing support to leverage multi-core processors.
- Customizable parameters for versatile application scenarios.
Requirements
- C++ Compiler (e.g., GCC, Clang)
- OpenMP for parallel processing
Usage
- Define the required parameters for the scheduling problem, such as the number of jobs, covers, and time limits.
- Call the
paralelismoorsinglefunctions depending on your need for solving all jobs or a specific one. - The program will output the optimized schedule based on the provided parameters.
Functions
pricing_dp
Calculates the optimal scheduling using dynamic programming.
Parameters:
- Job index, total number of jobs, covers, and other scheduling constraints.
- Arrays for shadow prices, allow values, priorities, and various time constraints.
paralelismo
Handles parallel computation for multiple jobs.
Parameters:
- Similar to
pricing_dp, but designed to handle multiple jobs concurrently.
single
Calculates the profile for a single job.
Parameters:
- Similar to
pricing_dp, but tailored for a single job execution.
License
This project is licensed under GPL v3. Please see the LICENSE file for more details.
Contributions
Contributions to this project are welcome. Please fork the repository and submit a pull request with your changes.