• Stars
    star
    112
  • Rank 303,164 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created about 2 years ago
  • Updated 10 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Solvers for NP-hard and NP-complete problems with an emphasis on high-performance GPU computing.

RLSolver: High-performance GPU-based Solvers for Nonconvex and NP-Complete Problems

We aim to showcase that reinforcement learning (RL) or machine learning (ML) with GPUs delivers the best benchmark performance for large-scale nonconvex and NP-complete problems. RL with the help of GPU computing can obtain high-quality solutions within short time.

Problem-oriented Repos

Key Technologies

  • RL/ML tricks such as learn to optimize and curriculum learning.
  • OR tricks such as local search and tabu search.
  • Massively parallel sampling of Markov chain Monte Carlo (MCMC) simulations on GPU using thousands of CUDA cores and tensor cores.
  • Podracer scheduling on a GPU cloud such as DGX-2 SuperPod.

Key References

  • Mazyavkina, Nina, et al. "Reinforcement learning for combinatorial optimization: A survey." Computers & Operations Research 134 (2021): 105400.

  • Bengio, Yoshua, Andrea Lodi, and Antoine Prouvost. "Machine learning for combinatorial optimization: a methodological tour d’horizon." European Journal of Operational Research 290.2 (2021): 405-421.

  • Peng, Yun, Byron Choi, and Jianliang Xu. "Graph learning for combinatorial optimization: a survey of state-of-the-art." Data Science and Engineering 6, no. 2 (2021): 119-141.

  • Nair, Vinod, et al. "Solving mixed integer programs using neural networks." arXiv preprint arXiv:2012.13349 (2020).

  • Makoviychuk, Viktor, et al. "Isaac Gym: High performance GPU based physics simulation for robot learning." Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track (Round 2). 2021.

Workflow

Datasets

  • Maxcut:

    1. Gset is stored in the "data" folder of this repo. The number of nodes is from 800 to 10000.

    2. Syn is the synthetic data obtained by calling the function generate_write in util.py. The number of nodes is from 10 to 50000. The (partial) synthetic data is stored in the "data" folder of this repo. If users need all the synthetic data, please refer to Google Drive or Baidu Wangpan (CODE hojh for China users).

  • TSP: TSPLIB

Benchmarks

  • Learning to branch

code 2023 AAAI Reinforcement Learning for Branch-and-Bound Optimisation using Retrospective Trajectories

code 2021 AAAI Parameterizing Branch-and-Bound Search Trees to Learn Branching Policies

  • Learning to cut

code 2020 ICML Reinforcement learning for integer programming: Learning to cut

  • RL/ML-based heuristic

code (greedy) 2017 NeurIPS Learning Combinatorial Optimization Algorithms over Graphs

code (local search) 2023, A Monte Carlo Policy Gradient Method with Local Search for Binary Optimization

code (LKH for TSP) 2021 AAAI Combining reinforcement learning with Lin-Kernighan-Helsgaun algorithm for the traveling salesman problem

  • Variational annealing

code (VCA_RNN) 2023 Machine_Learning Supplementing recurrent neural networks with annealing to solve combinatorial optimization problems

code (VNA) 2021 Nature_Machine_Intelligence Variational neural annealing

Solvers to Compare with

Gurobi is the state-of-the-art solver. The license is required, and professors/students at universities can obtain the academic license for free.

SCIP is a well-known open-source solver, and its simplex is commonly used in "learning to branch/cut". SCIP is open-source and free.

Other Solvers

COPT: a mathematical optimization solver for large-scale problems.

CPLEX: a high-performance mathematical programming solver for linear programming, mixed integer programming, and quadratic programming.

Xpress: an extraordinarily powerful, field-installable Solver Engine.

BiqMac: a solver only for binary quadratic or maxcut. Users should upload txt file, but the response time is not guaranteed. If users use it, we recommend to download the sources and run it by local computers.

Store Results

Partial results are stored in the folder "result" of this repo. All the results are stored in Google Drive or Baidu Wangpan (CODE: hojh for China users).

With respect to maxcut, please refer to Maxcut. With respect to TSP, please refer to TSP.

Performance

Maxcut. TSP. Quantum circuits MIMO Compressive sensing

File Structure

RLSolver
└──helloworld
   └──maxcut
        └──data
        └──result
        └──util.py
        └──mcmc.py
        └──l2a.py (ours)
        └──baseline
            └──greedy.py
            └──gurobi.py
            └──random_walk.py
            └──simulated_annealing.py
            └──variational_classical_annealing_RNN
            └──variational_neural_annealing
└──benchmark
   └──maxcut.md
   └──graph_partitioning.md
   └──tsp.md
   └──tnco.md
└──rlsolver (main folder)
   └──util.py
   └──data
      └──graph
      └──quantum_circuits
      └──milp_coefs
      └──binary_coefs
   └──problems
      └──maxcut
          └──baseline
          └──mcmc.py
          └──l2a.py(ours)
      └──tnco
          └──baseline
          └──mcmc.py
          └──l2a.py(ours)
      └──mimo
          └──baseline
          └──mcmc.py
          └──l2a.py(ours)




Finished

  • MIMO
  • Maxcut
  • TNCO
  • quantum circuits

TODO

  • TSP
  • VRP (Vehicle routing problem)
  • Graph partitioning
  • Minimum vertex cover
  • MILP
  • Portfolio allocation

Related Websites

More Repositories

1

FinGPT

FinGPT: Open-Source Financial Large Language Models! Revolutionize 🔥 We release the trained model on HuggingFace.
Jupyter Notebook
12,072
star
2

FinRL

FinRL: Financial Reinforcement Learning. 🔥
Jupyter Notebook
9,186
star
3

ElegantRL

Massively Parallel Deep Reinforcement Learning. 🔥
Python
3,490
star
4

FinRL-Trading

For trading. Please star.
Jupyter Notebook
1,905
star
5

FinRL-Meta

FinRL­-Meta: Dynamic datasets and market environments for FinRL.
Python
1,139
star
6

FinNLP

Democratizing Internet-scale financial data.
Jupyter Notebook
1,019
star
7

FinRL-Tutorials

Tutorials. Please star.
Jupyter Notebook
719
star
8

FinRL_Podracer

Cloud-native Financial Reinforcement Learning
Python
336
star
9

Awesome_AI4Finance

Resources
127
star
10

FinML

FinML: A Practical Machine Learning Framework for Dynamic Stock Selection
Jupyter Notebook
72
star
11

FinRL_Crypto

FinRL_Crypto: Cryptocurrency trading of FinRL
Python
71
star
12

FinRL_Market_Simulator

Python
66
star
13

Quantifying-ESG-Alpha-using-Scholar-Big-Data-ICAIF-2020

Quantifying ESG Alpha using Scholar Big Data: An Automated Machine Learning Approach.
Jupyter Notebook
64
star
14

Deep-Reinforcement-Learning-for-Stock-Trading-DDPG-Algorithm-NIPS-2018

Practical Deep Reinforcement Learning Approach for Stock Trading. NeurIPS 2018 AI in Finance.
Python
62
star
15

FinRL-Blogs

Blogs, tutorials, news. Please star.
56
star
16

FinRobot

FinRobot: An Open-Source AI Agent Platform for Financial Applications using LLMs
Python
49
star
17

Financial-News-for-Stock-Prediction-using-DP-LSTM-NIPS-2019

Differential Privacy-inspired LSTM for Stock Prediction Using Financial News. NeurIPS Robust AI in Financial Services 2019.
Python
33
star
18

Liquidation-Analysis-using-Multi-Agent-Reinforcement-Learning-ICML-2019

Multi-agent Reinforcement Learning for Liquidation Strategy Analysis. ICML 2019 AI in Finance.
Jupyter Notebook
24
star
19

TransportRL

High-performance RL library for transportation problems, e.g., autonomous driving, traffic light control, UAV control, and path planning.
Python
23
star
20

Popular-RL-Algorithms

Jupyter Notebook
22
star
21

AI4Finance-Education

education channel
22
star
22

FinEmotion

Python
20
star
23

Risk-Management-using-Deep-Learning-for-Midterm-Stock-Prediction-KDD-2019

Risk Management via Anomaly Circumvent: Mnemonic Deep Learning for Midterm Stock Prediction. KDD 2019.
Jupyter Notebook
18
star
24

FinRL_Imitation_Learning

Jupyter Notebook
15
star
25

Dynamic-Stock-Recommendation-Machine_Learning-Published-Paper-IEEE

Jupyter Notebook
13
star
26

Quantum-Tensor-Networks-for-Variational-Reinforcement-Learning-NeurIPS-2020

Quantum Tensor Networks for Variational Reinforcement Learning. NeurIPS 2020.
Python
13
star
27

AI4Finance_Job_Info

Job Infor in the intersection of AI, Big data, and Finance.
6
star
28

FinGPT-Earnings-Call-LLM-Agent

Jupyter Notebook
5
star
29

Optimistic-Bull-Pessimistic-Bear-DRL-Stock-Portfolio-Allocation-ICML-2019

5
star
30

Awesome_FinRL

FinRL resources: papers, projects
5
star
31

Scholar-Data-Driven-Alpha-in-AI-Industry-IEEE-BigData-2019

Practical Machine Learning Approach to Capture the Scholar Data Driven Alpha in AI Industry. IEEE BigData 2019.
Jupyter Notebook
5
star
32

ML_Price_Prediction

Predict price
5
star
33

.github

4
star
34

PlotFigs

Plot figures for academic papers.
Python
1
star
35

FinGPT-Research

Jupyter Notebook
1
star