A hybrid model of integer programming and variable neighbourhood search for highly-constrained nurse rostering problems