namespace AntColony.Algorithm;

/// <summary>
/// Муравей для муравьиного алгоритма
/// </summary>
public interface IAnt
{
    /// <summary>
    /// Построить путь
    /// </summary>
    /// <param name="distances">Матрица ребер</param>
    /// <param name="pheromones">Матрица феромонов</param>
    /// <returns></returns>
    (List<int> tour, double distance)? ConstructTour(ref double[][] distances, ref double[][] pheromones);

    /// <summary>
    /// Обновить феромоны
    /// </summary>
    /// <param name="pheromones">Матрица феромонов</param>
    void UpdatePheromones(ref double[][] pheromones);
}