Combinatorial optimization is ubiquitous and widely used in real-world applications. However, lots of combinatorial optimization problems are hard to be solved with traditional methods due to the NP-hardness if you focus on the worst-case performance. In this project, we consider specific problem distributions and focus on developing learning-based methods for improving the average performance over these distributions.