also making kids hug their friends don't work either. I've had littles hit their friends and then hug them when they start to cry. I try and respect the kids space, not every child likes to be hugged (my odd is like this) its just the way they are.
In this case then you respect there space but find a way to communicate that your sorry in a way that they can feel safe. A hand shake, high five etc...
I make the child do a time-out (if it was intentional, of course) and apologize. They will not leave timeout until we've discussed what was wrong AND the apology is made. It's just common courtesy and teaching good manners. I don't feel it's a "get out of jail free card" or and eraser of what they've done, because they are also doing the timeout. You can't go around bumping into people (even accidentally) and not saying a word.....it's rude and they're old enough to learn that.