diff --git a/src/Service/PuzzleSolver/ByWulfSolver.php b/src/Service/PuzzleSolver/ByWulfSolver.php index e286f64a..aa472768 100644 --- a/src/Service/PuzzleSolver/ByWulfSolver.php +++ b/src/Service/PuzzleSolver/ByWulfSolver.php @@ -115,10 +115,8 @@ public function findSolution(array $pieces, array $matchingMap): Solution $this->repeatedlyAddPossiblePlacements($context, 0.01, 0.01); - if (count($context->getSolution()->getBiggestGroup()?->getPlacements() ?? []) < $context->getPiecesCount() * 0.8) { - $this->removeBadPiecesStrategy->execute($context, 0.5); - $this->repeatedlyAddPossiblePlacements($context, 0.01, 0.01); - } + $this->removeBadPiecesStrategy->execute($context, 0.5); + $this->repeatedlyAddPossiblePlacements($context, 0.01, 0.01); $this->repeatedlyAddPossiblePlacements($context, 0, 0); @@ -218,18 +216,10 @@ private function executeSinglePieceAssignment(ByWulfSolverContext $context, ?flo */ private function repeatedlyAddPossiblePlacements(ByWulfSolverContext $context, float $minProbability, float $minDifference): void { - $lastPieceCount = $context->getSolution()->getPieceCount(); - $lastGroupCount = count($context->getSolution()->getGroups()); for ($i = 0; $i < 5; ++$i) { $context->resetMatchingMap(); $this->addBestSinglePieceStrategy->execute($context, $minProbability, $minDifference); $this->mergeGroupsStrategy->execute($context, $minProbability); - - if ($context->getSolution()->getPieceCount() === $lastPieceCount && count($context->getSolution()->getGroups()) === $lastGroupCount) { - break; - } - $lastPieceCount = $context->getSolution()->getPieceCount(); - $lastGroupCount = count($context->getSolution()->getGroups()); } }