diff --git a/julia/txt_to_json.jl b/julia/txt_to_json.jl index 30cc9bae88eab1aaa810f8791512f27e6a2f190e..f50b001126868749b55fa73e83ce6ba63eebddc9 100644 --- a/julia/txt_to_json.jl +++ b/julia/txt_to_json.jl @@ -188,7 +188,7 @@ end 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 diff --git a/src/config.h b/src/config.h index 967603c0225653fd5396c98d021520b46557e65b..444c3d046c583e3122b06423f30cfa03a7c462de 100644 --- a/src/config.h +++ b/src/config.h @@ -1,4 +1,6 @@ -const int EXCLUSION_PENALTY = 100; +const int EXCLUSION_PENALTY = 1000000; + +const int ROUTE_PENALTY = 1000; const int RANDOM_SEED = 100; diff --git a/src/lns/solution/solution.cpp b/src/lns/solution/solution.cpp index 0a975ed32ea38a1d07fbbb70888fdf6073ab2160..2c540f1cb8ca461a5f9a905776ffcd99a4dcf598 100644 --- a/src/lns/solution/solution.cpp +++ b/src/lns/solution/solution.cpp @@ -61,9 +61,23 @@ double Solution::computeSolutionCost() 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() { initPairBank(); diff --git a/src/lns/solution/solution.h b/src/lns/solution/solution.h index 4ad16c4f7e240e525629eca2297b9a63d7ebcf14..3de416ba1a81cc2c961688e99d8eb21f3e4571f2 100644 --- a/src/lns/solution/solution.h +++ b/src/lns/solution/solution.h @@ -76,6 +76,7 @@ public: PDPTWData const &getData() const; double getRawCost() const; double getCost() const; + int getNumberOfRoutes() const; unsigned int missingPairCount() const; std::vector<std::unique_ptr<Constraint>> const &getConstraints() const; diff --git a/src/mains/main.cpp b/src/mains/main.cpp index 1b4227b9cf26a8ff2ae75e3569834a7d28d8885f..4a7e564a96dbab16cb25c36780ae8421040ad970 100644 --- a/src/mains/main.cpp +++ b/src/mains/main.cpp @@ -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/pdp_100/lc102.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/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/n5000/bar-n5000-1.json";