This archive is distributed in association with the INFORMS Journal on Computing under the MIT License.
The software and data in this repository are a snapshot of data and results that were used in the research reported on in the paper Layout Optimization for a Large-Scale Grid-Connected Solar Power Plant by Chong Wang, Qinghua Wu, Kai Pan, and Zuo-Jun Max Shen.
To cite the contents of this repository, please cite both the paper and this repo, using their respective DOIs.
https://doi.org/10.1287/ijoc.2023.0223
https://doi.org/10.1287/ijoc.2023.0223.cd
Below is the BibTex for citing this snapshot of the repository.
@misc{Wang2024,
author = {Wang, Chong AND Wu, Qinghua AND Pan, Kai AND Shen, Zuo-Jun Max},
publisher = {INFORMS Journal on Computing},
title = {Layout optimization for a large-scale grid-connected solar power plant},
year = {2024},
doi = {10.1287/ijoc.2023.0223.cd},
url = {https://github.com/INFORMSJoC/2023.0223},
note = {Available for download at \url{https://github.com/INFORMSJoC/2023.0223}},
}
The goal of this repository is to share data and results related to the Integrated Location and Routing (ILR) problem within a large-scale solar power plant, solved using our exact solution approach.
The instances are originally collected from the Hubei Branch of the State Grid Corporation of China. All sensitive or confidential information has been appropriately desensitized.
Each instance (denoted by "district_<span>
<span>
Please see the data directory to view the data and detailed descriptions.
The results present the optimal solutions for all instances, solved using our exact solution approach.
Please see the results directory to view the optimal solutions and detailed descriptions.
We develop exact algorithms to solve the ILR problem through a decomposition framework, which yields a variant of Benders decomposition and guarantees an optimal solution. Additionally, we implement an exact branch-and-cut scheme to solve each subproblem within the decomposition framework, integrating cutting planes and separation algorithms to enhance solution precision.
- Python 3.8 or higher
- Required Libraries: Gurobi, NumPy
The source code is available in the src directory and includes the following components:
data.py
: Defines theData
class, which manages the problem data.solution.py
: Contains theResultMaster
,ResultWorker
, andSolution
classes, which represent the solutions generated during the algorithm's iterations.subproblem_solver.py
: Provides theDistrictSolver
class for solving subproblems within individual districts.utils.py
: Contains global utility functions used to iteratively solve the ILR problem using the decomposition algorithm.main.py
: Houses the main execution logic to invoke the appropriate functions and run the algorithm.
Execute the program as follows:
python main.py <file_path_1> <file_path_2>
<file_path_1>
: Specifies the file path for the instance to be solved (available in the data/instances directory).<file_path_2>
(optional) : Specifies the file path to save the solution generated by the algorithm (refer to the results directory).
For support in using the data and code, submit an issue.