AN ALGORITHM FOR A GENERAL CLASS OF PRECEDENCE AND RESOURCE CONSTRAINED SCHEDULING PROBLEMS