i would think a three very simple approaches to avoiding an asteroid collision:
Lightly "dock" a spacecraft into an asteroid, have the rocket oriented the right way, then, use ion engines to slowly move the mass out of it's collision path
or
Fly a large spacecraft next to the asteroid to gravitationally steer it away
or
Also there's some phemonomon...When the sun shines on the asteroid and heat it, the asteroid emits a bit of radiated photons, heat, and that makes thrust. If the asteroid is rotating the right way, as the sun heats the asteroid, the asteroid rotates 90 degrees, causing the radiation to push the asteroid faster and faster. This could be modified or used to deflect an asteroid