  In the past few years, the area of Machine Learning (ML) has witnessed
tremendous advancements, becoming a pervasive technology in a wide range of
applications. One area that can significantly benefit from the use of ML is
Combinatorial Optimization. The three pillars of constraint satisfaction and
optimization problem solving, i.e., modeling, search, and optimization, can
exploit ML techniques to boost their accuracy, efficiency and effectiveness. In
this survey we focus on the modeling component, whose effectiveness is crucial
for solving the problem. The modeling activity has been traditionally shaped by
optimization and domain experts, interacting to provide realistic results.
Machine Learning techniques can tremendously ease the process, and exploit the
available data to either create models or refine expert-designed ones. In this
survey we cover approaches that have been recently proposed to enhance the
modeling process by learning either single constraints, objective functions, or
the whole model. We highlight common themes to multiple approaches and draw
connections with related fields of research.
