Optimising Dynamic Traffic Distribution for Urban Networks with Answer Set Programming