GHP algorithm