none of the data in the given chromosome are dominated by other chromosomes in the total population(computed with the individual fitness values for each chromosomes), i cross verified the logic of dominance computaion its all are correct.
Non-dominated sets: [[0, 1, 2, 3]]
Domination Count: [0, 0, 0, 0]

and i computed the crowding distance calculation from the results of non-dominated sets and result is added in the each pareto data dictionary which is shown below in the pareto data dictionary,

paerto_data: {0: {'front': 1, 'fitness': [-0.0005865725908298093, -0.6576749999999999, 0.0, 0.0, -5.451482, -0.2542259999999999, -1.00244, -720.9399999999999], 'crowding_distance': inf}, 
1: {'front': 1, 'fitness': [-0.0009749129195452139, -1.6227199999999997, 0.0, -28.94999999999996, -4.711466000000001, 0.0, 0.0, 0.0], 'crowding_distance': 3.217632502733482}, 
2: {'front': 1, 'fitness': [-0.0008989542740815564, -1.4359399999999998, 0.0, -148.152, -2.33022, 0.0, 0.0, 0.0], 'crowding_distance': 1.293389560447627}, 
3: {'front': 1, 'fitness': [-0.0008206985110333606, -1.7344, 0.0, -86.24299999999998, -5.169616000000001, -1.024564, -4.99997, 0.0], 'crowding_distance': inf}}

in the result of pareto data, i am getting 'front' as '1' for all the pareto data, if it all as '1' then how can i sort the pareto data, from the result i need to compute the function 'select_elitist_points', if all are same front value how can i select elitist points(because of all front as '1' i am getting all pareto data in to the elitist points. but i need anomaly in the elitist points for adding diversity in the binary tournament selection for the evolution of chromosomes. 

provide me the suitable update for the computation of 'select_elitist_points' from the pareto data, crowd distancing and hypervolume values appropriately among which is actually necessary for the elitist points calculation.

# Perform Pareto fronts with crowding distances and hypervolume
def pareto_sort(population, fitness_values, objectives):
    non_dominated_sets = []
    domination_counts = [0] * len(population)
    dominated_by = [[] for _ in population]
    
    # Compare each pair of individuals
    for i in range(len(population)):
        for j in range(i + 1, len(population)):  # Efficient pairing: only compare distinct pairs
            if dominates(fitness_values[i], fitness_values[j], objectives):
                dominated_by[j].append(i)
                domination_counts[j] += 1
            elif dominates(fitness_values[j], fitness_values[i], objectives):
                dominated_by[i].append(j)
                domination_counts[i] += 1

    # Identifying non-dominated individuals (Pareto front 1)
    current_set = [i for i, count in enumerate(domination_counts) if count == 0]
    non_dominated_sets.append(current_set)
    
    # Iteratively find subsequent fronts
    front_index = 0
    while front_index < len(non_dominated_sets):
        next_front = []
        for i in non_dominated_sets[front_index]:
            for j in dominated_by[i]:
                domination_counts[j] -= 1
                if domination_counts[j] == 0:
                    next_front.append(j)
        if next_front:  # Only append if not empty
            non_dominated_sets.append(next_front)
        front_index += 1
    
    print(f"Non-dominated sets: {non_dominated_sets}")
    print(f"Domination Count: {domination_counts}")
    pareto_data = {}
    # Calculate crowding distance and prepare pareto data for each front
    for front_index, front in enumerate(non_dominated_sets):
        if len(front) > 0:
            crowding_distances = calculate_crowding_distance(front, fitness_values, objectives)
            for i, chromosome_index in enumerate(front):
                pareto_data[chromosome_index] = {
                    "front": front_index + 1,
                    "chromosome": population[chromosome_index],
                    "fitness": [fitness_values[chromosome_index][obj] for obj in objectives],
                    "crowding_distance": crowding_distances[i]
                }
    print("Pareto Data:", pareto_data)
    # Calculate hypervolume and min/max reference points
    reference_points = update_reference_points(pareto_data, objectives)
    print("Calculated Reference Points:", reference_points)
    hypervolume_values = calculate_individual_hypervolumes(pareto_data, reference_points, objectives)
    print(f"Hypervolume Values: {hypervolume_values}")
    return pareto_data, hypervolume_values

# Determine to select the elitist points from Pareto front 
def select_elitist_points(pareto_data, crowding_distance_threshold):
    elitist_points = []

    # Iterate through each data point in the Pareto data
    for key, chromosome_data in pareto_data.items():
        cd = chromosome_data["crowding_distance"]

        # Compare individual crowding distances to the threshold
        if cd != float('inf') and cd >= crowding_distance_threshold:
            elitist_points.append(key)
        elif cd == float('inf'):  # Handle ‘inf’ as a special case with high values
            elitist_points.append(key)

    return elitist_points

pareto_data, hypervolume_values = pareto_sort(population, fitness_values, objectives)

# Set your desired crowding distance threshold
crowding_distance_threshold = 0.5  # You can adjust this threshold

# Select elitist points based on the criteria
elitist_points = select_elitist_points(pareto_data, crowding_distance_threshold)
print("elitist_points", elitist_points)