def METHOD_NAME(individual_with_names_dict,
                  column_names,
                  column_names_buildings_heating,
                  column_names_buildings_cooling,
                  district_heating_network,
                  district_cooling_network,
                  technologies_heating_allowed,
                  technologies_cooling_allowed,
                  ):
    """
    Creates an individual configuration for the evolutionary algorithm.
    The individual is divided into four parts namely Heating technologies, Cooling Technologies, Heating Network
    and Cooling Network
    Heating Technologies: This block consists of heating technologies associated with % of the peak capacity each
    technology is going to supply, i.e. 10.1520.2030, which translates into technology 1 corresponding to 15% of peak
    capacity, technology 2 corresponding to 20% and technology 3 corresponding to 0%. 0% can also be just done by replacing
    3 with 0. The technologies block is then followed by supply temperature of the DHN and the number of units it is
    supplied to among AHU, ARU, SHU. So if it is 6 degrees C supplied by DHN to AHU and ARU, it is represented as 6.02.
    The temperature is represented with 1 decimal point.
    Cooling Technologies: This follows the same syntax as heating technologies, but will be represented with cooling
    technologies. The block length of heating and cooling can be different.
    Heating Network: Network of buildings connected to centralized heating
    Cooling Network: Network of buildings connected to centralized cooling. Both these networks can be different, and will
    always have a fixed length corresponding to the total number of buildings in the neighborhood
    :param nBuildings: number of buildings
    :type nBuildings: int
    :return: individual: representation of values taken by the individual
    :rtype: list
    """
    # POPULATE INDIVIDUAL WE KEEP A DATAFRAME SO IT IS EASIER FOR THE PROGRAMMER TO KNOW WHAT IS GOING ON
    if district_heating_network:
        populated_individual_with_name_dict = populate_individual(individual_with_names_dict,
                                                                  DH_CONVERSION_TECHNOLOGIES_SHARE,
                                                                  technologies_heating_allowed,
                                                                  column_names_buildings_heating)
    elif district_cooling_network:
        populated_individual_with_name_dict = populate_individual(individual_with_names_dict,
                                                                  DC_CONVERSION_TECHNOLOGIES_SHARE,
                                                                  technologies_cooling_allowed,
                                                                  column_names_buildings_cooling)
    else:
        raise Exception("option not existent")
    populated_individual_with_name_dict = validation_main(populated_individual_with_name_dict,
                                                          column_names_buildings_heating,
                                                          column_names_buildings_cooling,
                                                          district_heating_network,
                                                          district_cooling_network,
                                                          technologies_heating_allowed,
                                                          technologies_cooling_allowed
                                                          )
    # CONVERT BACK INTO AN INDIVIDUAL STRING IMPORTANT TO USE column_names to keep the order
    individual = []
    for column in column_names:
        individual.append(populated_individual_with_name_dict[column])
    return individual