Можно и не так далеко ходить Например богатый опыт тут и тут По второй ссылке вполне внятно разбор по парам-звеньям, постановка задач.