/// <summary>
        /// Запросить текущие значения лучшего решения
        /// </summary>
        /// <returns></returns>
        private async Task RefreshIslandFitnesValues()
        {
            foreach (var islandStruct in Islands.ToList())
            {
                double currentFitness = islandStruct.Value.FitnessValue;
                BestFitnessValueResponse bestFitnessValueMessage = await islandStruct.Value.Island.Ask <BestFitnessValueResponse>(new BestFitnessValueRequest());

                if (_geneticAlgoritmConfig.Predicate(bestFitnessValueMessage.FitnessValue, currentFitness))
                {
                    Islands.Remove(islandStruct.Key);
                    Islands.TryAdd(islandStruct.Key, new IslandValue {
                        FitnessValue = bestFitnessValueMessage.FitnessValue, Island = islandStruct.Value.Island
                    });
                }
            }
        }