def METHOD_NAME(self, par2):
    '''
    Perform mating and produce new offspring
    '''
    # Chromosome for offspring
    child_chromosome = []
    for gp1, gp2 in zip(self.chromosome, par2.chromosome):
        # Random probability
        prob = random.random()
        # If prob is less than 0.45, insert gene
        # from parent 1
        if prob < 0.45:
            child_chromosome.append(gp1)
        # If prob is between 0.45 and 0.90, insert
        # gene from parent 2
        elif prob < 0.90:
            child_chromosome.append(gp2)
        # Otherwise, insert random gene (mutate)
        # for maintaining diversity
        else:
            child_chromosome.append(self.mutated_genes())
    # Create new Individual (offspring) using
    # generated chromosome for offspring
    return Individual(child_chromosome)