PROCEDURE POM2 INPUTS: numOfTrials - Number of trials to perform on this set of inputs type - Sorting method to test(ag,ag2,hy,pb) OUTPUTS: results - Structure containing the cost and value pairs at the Beginning and the End of the project. WHILE x < numberOfTrials tasks := generateTasks(size) teams := generateTeams(tasks) //assignTasksToTeams(tasks, teams) applyCriticality(teams) stoppingAt := Generate integer value between 2 and 6 to determine whether the project completes(6) or ends early(2-5) WHILE iteration < stoppingAt foreach team in teams budget := budget + (Total Original Requirement Cost / 6) AvailableTasks := null foreach task in team if task has no dependencies and no children and is not completed AvailableTaskss := append task to AvailableTasks AvailableTasks := ApplySortingPolicy(type, AvailableTasks) foreach task in AvailableTasks if (budget - task->cost) < 0 exit else budget := budget - task->cost task->completed := true if budget > 0 if AvailableTasks is empty budget := 0 team->tasks := append new tasks to team->tasks foreach task in team task->value := task->value + (task->value * (Normal(0,sigma)*culture))