Logo

A local search method for solving a bi-level timetabling and battery optimization problem

Ranked 6th Place in the competition

Our team won the fifth place in the competition, and the overall ranking is sixth. The uploaded code only has the optimized part, and the predicted result has been directly given in the file (buildingTotalFinal.csv and solarTotalFinal.csv), which can be used directly.

Environments

JDK 1.8
apache-maven-3.8.2

File Directory Description

IEEE-Predict-Optimize-Challenge
├── data
│   ├── buildingTotalFinal.csv ——Building load prediction data
│   ├── electricity_price
│   │   ├── PRICE_AND_DEMAND_202009_VIC1.csv
│   │   ├── PRICE_AND_DEMAND_202010_VIC1.csv
│   │   ├── PRICE_AND_DEMAND_202011_VIC1.csv
│   │   └── PRICE_AND_DEMAND_202012_VIC1.csv
│   ├── phase_2_data.tsf
│   ├── phase_2_instances
│   │   ├── phase2_instance_large_0.txt
│   │   ├── phase2_instance_large_1.txt
│   │   ├── phase2_instance_large_2.txt
│   │   ├── phase2_instance_large_3.txt
│   │   ├── phase2_instance_large_4.txt
│   │   ├── phase2_instance_small_0.txt
│   │   ├── phase2_instance_small_1.txt
│   │   ├── phase2_instance_small_2.txt
│   │   ├── phase2_instance_small_3.txt
│   │   └── phase2_instance_small_4.txt
│   ├── phase_3_data.tsf
│   ├── results
│   ├── solarTotalFinal.csv ——Solar power generation forecast data
│   └── submission ——Final submission results
├── images
├── README.md
└── src
  └── edu
      └── monash
          ├── io
          │   ├── FileUtils.java
          │   └── tsf
          └── ppoi
              ├── checker
              ├── constant
              ├── entity
              ├── Evaluation.java
              ├── ExpandTimeTable.java
              ├── instance
              ├── Phase.java
              ├── RABMain.java  ——Algorithm entrance
              ├── solution
              └── utils

Getting Started

RABMain.java is the entry to the algorithm. To run RABMain, you need to configure 4 parameters in Program Arguments.

large_4 10 10 xyj
Instance_of_you_running maxRun MaxBatteryIter who

The result data of the large_4 run will be saved under the file \data\results\instance14.

Ideas

We use the local search method to solve the optimization problem. At the beginning, we randomly generated an initial solution, the charging and discharging of the fixed battery remained unchanged, and the solution was searched through continuous local disturbance and mutation. When a better solution than the global one was generated, it was saved to the file. After that, the fixed schedule will not change, and the charging and discharging of the battery will also be optimized through continuous local disturbances and mutations. Good results will be saved in the file. The following flow chart shows the flow chart of the activity arrangement.

  Algorithm execution order
  1、Fixed battery charge and discharge
  2、Optimize schedule
  3、Fixed best schedule
  4、Optimize battery charge and discharge

Contact

Qingling Zhu - zhuqingling@email.szu.edu.cn

YaoJian Xu: xuyaojian2021@email.szu.edu.cn

Acknowledgments

Thanks to the competition organizers.At the same time, I am very grateful to the students and teachers in the laboratory for their help.