Graph neural networks are natural objects to express functions on graphs with relevant symmetries. In this talk we introduce graph neural networks, motivated by techniques in statistical physics. We explain how they are being used to learn algorithms for combinatorial optimization problems on graphs from data (like clustering, max-cut and quadratic assignment), in supervised and unsupervised manners. We also show a connection between universal approximation of invariant functions and the graph isomorphism problem.