# A fitness function quantifies the optimality of a solution (vector) so that that particular solution may be
# ranked against all the other solutions.
# It depicts the closeness of a given ‘solution’ to the desired result.
# NOTE: Watch out for its speed.

# NOTE: Fitness functions will vary from application to application, so for each different application, you will have to
#       define a new fitness function by looking at the goal, and the constraints of the application. This file is a
#       template for implementing the same.

# import necessary libraries and modules


# ======================================================================================================================
# ===== Helper functions ===============================================================================================
# ======================================================================================================================

# Implement helper functions here (if any)


# ======================================================================================================================
# ===== Fitness evaluation function ====================================================================================
# ======================================================================================================================

def fitness(vector):
    """
    This function will calculate fitness of the input vector

    :param vector: input vector representing a solution, whose fitness is to be calculated
    :return: fitness of the input vector
    """

    # Implement the fitness evaluation function here

    return fitness
