Constrained Machine Learning: Algorithms And Models