Portfolio approaches in constraint programming