min problem algorithm