edited introduction: added problem definition