Skip to content
Snippets Groups Projects
Commit 4b30bfec authored by awenjb's avatar awenjb
Browse files

Add Route Penalty

parent 60508774
No related branches found
No related tags found
No related merge requests found
...@@ -188,7 +188,7 @@ end ...@@ -188,7 +188,7 @@ end
function euclidean_distance(x1, y1, x2, y2) function euclidean_distance(x1, y1, x2, y2)
return round(sqrt((x2 - x1)^2 + (y2 - y1)^2), digits=2) return sqrt((x2 - x1)^2 + (y2 - y1)^2)
end end
......
const int EXCLUSION_PENALTY = 100; const int EXCLUSION_PENALTY = 1000000;
const int ROUTE_PENALTY = 1000;
const int RANDOM_SEED = 100; const int RANDOM_SEED = 100;
......
...@@ -61,9 +61,23 @@ double Solution::computeSolutionCost() const ...@@ -61,9 +61,23 @@ double Solution::computeSolutionCost() const
double Solution::computePenalisation() const double Solution::computePenalisation() const
{ {
return getBank().size() * EXCLUSION_PENALTY; return getBank().size() * EXCLUSION_PENALTY + getNumberOfRoutes() * ROUTE_PENALTY;
} }
int Solution::getNumberOfRoutes() const
{
int cpt = 0;
for (Route const &route : getRoutes())
{
if (!(route.getRoute().empty()))
{
cpt++;
}
}
return cpt;
}
void Solution::init() void Solution::init()
{ {
initPairBank(); initPairBank();
......
...@@ -76,6 +76,7 @@ public: ...@@ -76,6 +76,7 @@ public:
PDPTWData const &getData() const; PDPTWData const &getData() const;
double getRawCost() const; double getRawCost() const;
double getCost() const; double getCost() const;
int getNumberOfRoutes() const;
unsigned int missingPairCount() const; unsigned int missingPairCount() const;
std::vector<std::unique_ptr<Constraint>> const &getConstraints() const; std::vector<std::unique_ptr<Constraint>> const &getConstraints() const;
......
...@@ -86,8 +86,8 @@ int main(int argc, char **argv) ...@@ -86,8 +86,8 @@ int main(int argc, char **argv)
/////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////
std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/n100/bar-n100-1.json"; //std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/n100/bar-n100-1.json";
//std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/pdp_100/lc102.json"; std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/pdp_100/lc101.json";
//std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/Nantes_1.json"; //std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/Nantes_1.json";
//std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/n5000/bar-n5000-1.json"; //std::string filepath = "/home/a24jacqb/Documents/Code/pdptw-main/data_in/n5000/bar-n5000-1.json";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment