diff --git a/src/storage/bisimulation/BisimulationDecomposition.cpp b/src/storage/bisimulation/BisimulationDecomposition.cpp index aedd4a998..5c5b3e667 100644 --- a/src/storage/bisimulation/BisimulationDecomposition.cpp +++ b/src/storage/bisimulation/BisimulationDecomposition.cpp @@ -240,6 +240,9 @@ namespace storm { ++iterations; // Get and prepare the next splitter. + // Sort the splitters according to their sizes to prefer small splitters. That is just a heuristic, but + // tends to work well. + std::sort(splitterQueue.begin(), splitterQueue.end(), [] (Block const* b1, Block const* b2) { return b1->getNumberOfStates() < b2->getNumberOfStates(); } ); Block* splitter = splitterQueue.front(); splitterQueue.pop_front(); splitter->data().setSplitter(false);