public void distributeTasksToNeighborsConsideringRSWfix() {
    List<SchedulingTask> joinTasks = algorithm.getJoinTasks();
    Collections.sort(joinTasks, Comparators.taskHigherStartTimeComparator);
    for (SchedulingTask join : joinTasks) {
      Lane currentJoinLane = join.getLane();
      if (!algorithm.getWorkflow().existsLane(currentJoinLane)) {
        continue;
      }
      if (!algorithm.containsConsiderJoins(currentJoinLane)) {
        Debug.INSTANCE.println(4, "lane ignored for LP: ", currentJoinLane);
        continue;
      }

      combineParallelLanesAnyPathesUsingJoinWhatever(join, Comparators.lanePathCountComparator);
    }
  }