-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSolutionGenerator.cpp
More file actions
39 lines (35 loc) · 1.13 KB
/
Copy pathSolutionGenerator.cpp
File metadata and controls
39 lines (35 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "SolutionGenerator.h"
#include "ResourceManagerBB.h"
#include "resourceManagerDP.h"
#include "ProblemGenerator.h"
SolutionGenerator::SolutionGenerator() {
}
/**
* Builder to generate the MCKP solver corresponding to the malleable jobs shrinking problem.
* @args
* [numberOfNodesNeeded] number of nodes requirequuired by the new pending job.
* [jobList] List of the jobs already running.
* [solverType] algorithm to use to solve the MCKP.
*/
SolutionGenerator::SolutionGenerator(const int& numberOfNodesNeeded, const vector<Job>& jobList, ResourceManagerType solverType) {
ProblemGenerator problem = ProblemGenerator(numberOfNodesNeeded,jobList);
switch (solverType)
{
case DynamicProgramming:
solver = ResourceManagerDP(problem.numberOfNodes, problem.mapItems);
case BranchAndBound:
solver = ResourceManagerBB(problem.numberOfNodes, problem.mapItems);
default:
throw("unsupported solver type");
break;
}
}
/**
* Solve the problem using serial solving
*/
SackComposition SolutionGenerator::serialSolve() {
return solver.solveMckp();
}
SackComposition SolutionGenerator::parallelSolve() {
return solver.solveMckpConcurrently();
}