From 9b1e7073828ca64b381cc99f539db85b245c7967 Mon Sep 17 00:00:00 2001 From: bbod Date: Mon, 30 Mar 2020 19:07:45 -0600 Subject: [PATCH] Auto Commit --- HW10/CMakeLists.txt | 2 +- HW10/MakePermutationMatrix.cpp | 25 ++++++------------- .../CMakeFiles/CMakeRuleHashes.txt | 2 +- .../CMakeFiles/ClangFormat.dir/build.make | 2 +- HW10/cmake-build-debug/HW10.cbp | 3 +++ HW10/partialPermutation.h | 12 +++++++++ 6 files changed, 25 insertions(+), 21 deletions(-) create mode 100644 HW10/partialPermutation.h diff --git a/HW10/CMakeLists.txt b/HW10/CMakeLists.txt index 7ea32a8..9790ae0 100644 --- a/HW10/CMakeLists.txt +++ b/HW10/CMakeLists.txt @@ -13,7 +13,7 @@ set(HEADER_FILES set(SOURCE_FILES MakePermutationMatrix.cpp ReadFromFile.cpp - CostMatrixGenerator.cpp CostMatrixGenerator.h ParseMatrixForMPI.h SerializeCities.h) + CostMatrixGenerator.cpp CostMatrixGenerator.h ParseMatrixForMPI.h SerializeCities.h partialPermutation.h) set(CMAKE_CXX_STANDARD 17) add_executable(HW10 ${HEADER_FILES} ${SOURCE_FILES} main.cpp) diff --git a/HW10/MakePermutationMatrix.cpp b/HW10/MakePermutationMatrix.cpp index 8a1581f..ababf3f 100644 --- a/HW10/MakePermutationMatrix.cpp +++ b/HW10/MakePermutationMatrix.cpp @@ -10,23 +10,12 @@ std::vector MakePermutationMatrix::MakePermutation(std::vector source, int rank, int size, std::vector> costMatrix){ std::vector returnVector; std::vector localCostVector; - std::size_t offset = 12; std::size_t counter = 0; int vectorOffset = (source.size()+1)/2; std::sort(source.begin(), source.end()); std::vector myPerm = source; std::vector nextPerm = source; -// if(!rank){ -// size_t totalNumPermutations = 1; -// for(size_t i = 1; i <= source.size(); i++) -// totalNumPermutations *= i; -// offset = totalNumPermutations/size; -// std::cout << "offset: "< MakePermutationMatrix::MakePermutation(std::vector sou //std::rotate(nextPerm.begin(), nextPerm.begin()+(rank+1)*offset, nextPerm.end()); //rotate my perm. - std::rotate(myPerm.begin(), myPerm.begin()+vectorOffset*rank,myPerm.end()); + std::rotate(myPerm.begin(), myPerm.begin()+rank,myPerm.end()+rank+1); //std::cout << "source.last(): " << source[8].GetName() << std::endl; std::cout << "source: "; for(int i = 0; i < source.size(); i++){ std::cout << source[i].GetName() << " "; } std::cout << std::endl << std::endl; -// std::cout <<"Rank: " << rank << " next perm: "; -// for(int i = 0; i < nextPerm.size(); i++){ -// std::cout << nextPerm[i].GetName() << " "; -// } -// std::cout << std::endl; + std::cout <<"Rank: " << rank << " next perm: "; + for(int i = 0; i < nextPerm.size(); i++){ + std::cout << nextPerm[i].GetName() << " "; + } + std::cout << std::endl; do { double cost = 0; std::cout <<"Rank: " << rank << " myPerm: "; @@ -63,7 +52,7 @@ std::vector MakePermutationMatrix::MakePermutation(std::vector sou //Push permutation cost to the localCostVector. localCostVector.push_back(cost); counter++; - } while (std::next_permutation(myPerm.begin(), myPerm.end()) && counter != offset ); + } while (std::next_permutation(myPerm.begin()+1, myPerm.end())); // //find the lowest and add it to a lowest vector. // auto lowest = std::vector(1,localCostVector[0]); diff --git a/HW10/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt b/HW10/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt index d2f467b..5b8eecc 100644 --- a/HW10/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt +++ b/HW10/cmake-build-debug/CMakeFiles/CMakeRuleHashes.txt @@ -1,2 +1,2 @@ # Hashes of file build rules. -26a2bad7d1d2da4c60ef59c8ea5c8e8f CMakeFiles/ClangFormat +71b71fb7cf28045cfbac6c20a4ae1c66 CMakeFiles/ClangFormat diff --git a/HW10/cmake-build-debug/CMakeFiles/ClangFormat.dir/build.make b/HW10/cmake-build-debug/CMakeFiles/ClangFormat.dir/build.make index 651ec3e..9e0c633 100644 --- a/HW10/cmake-build-debug/CMakeFiles/ClangFormat.dir/build.make +++ b/HW10/cmake-build-debug/CMakeFiles/ClangFormat.dir/build.make @@ -54,7 +54,7 @@ CMAKE_BINARY_DIR = /Users/bradybodily/Repositories/CS5500_Parallel_Programming/H include CMakeFiles/ClangFormat.dir/progress.make CMakeFiles/ClangFormat: - /usr/local/bin/clang-format -i -style=file /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/City.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ParseMatrixForMPI.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/SerializeCities.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/main.cpp + /usr/local/bin/clang-format -i -style=file /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/City.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ParseMatrixForMPI.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/SerializeCities.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/partialPermutation.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/main.cpp ClangFormat: CMakeFiles/ClangFormat ClangFormat: CMakeFiles/ClangFormat.dir/build.make diff --git a/HW10/cmake-build-debug/HW10.cbp b/HW10/cmake-build-debug/HW10.cbp index f2789d8..dcfe718 100644 --- a/HW10/cmake-build-debug/HW10.cbp +++ b/HW10/cmake-build-debug/HW10.cbp @@ -124,6 +124,9 @@ + + diff --git a/HW10/partialPermutation.h b/HW10/partialPermutation.h new file mode 100644 index 0000000..81dc986 --- /dev/null +++ b/HW10/partialPermutation.h @@ -0,0 +1,12 @@ +// +// Created by Brady Bodily on 3/30/20. +// +#include +#ifndef HW10_PARTIALPERMUTATION_H +#define HW10_PARTIALPERMUTATION_H +template +bool next_partial_permutation(BidiIt first, BidiIt middle, BidiIt last) { + std::reverse(middle, last); + return std::next_permutation(first, last); +} +#endif //HW10_PARTIALPERMUTATION_H