Professional Documents
Culture Documents
Bilal Ahmad Ai & DSS Assign # 02
Bilal Ahmad Ai & DSS Assign # 02
SOFTWARE ENGINEERING
COLLEGE OF E&ME, NUST,
RAWALPINDI
DEGREE 42
SYNDICATE A
DEPARTMENT Computer Engineering
def mutation(selected_chromosomes):
worst_chromosome_index =
selected_chromosomes.index(min(selected_chromosomes, key=lambda x: x[-1]))
mutated_chromosome = selected_chromosomes[worst_chromosome_index].copy()
for i in range(5):
if mutated_chromosome[i][1] - 1 >= 1:
mutated_chromosome[i] = (mutated_chromosome[i][0],
mutated_chromosome[i][1] - 1)
selected_chromosomes[worst_chromosome_index] = mutated_chromosome
return selected_chromosomes
def calculate_fitness(chromosomes):
fitness = []
return fitness
def select_chromosomes(fitness, chromosomes):
sorted_indices = sorted(range(len(fitness)), key=lambda k: fitness[k],
reverse=True)
selected_chromosomes = [chromosomes[sorted_indices[0]].copy(),
chromosomes[sorted_indices[1]].copy()]
selected_chromosomes.extend([child1.copy(), child2.copy()])
return selected_chromosomes
# Driver code
chromosomes = [[(random.randint(1, 6), random.randint(1, 6)) for _ in
range(5)] for _ in range(20)]
print()
for i in range(20):
color = GREEN if fitness_values[i] == max(fitness_values) else YELLOW
print(f"{RED}Chromosome {i + 1}:{ENDC} {color}{chromosomes[i]}{ENDC} |
{color}Fitness: {fitness_values[i]}{ENDC}")
best_chromosome_index = fitness_values.index(max(fitness_values))
print()
print("The best chromosome after 1000 iterations is:",
chromosomes[best_chromosome_index])
print("Fitness Value: ", max(fitness_values))
OUTPUT: