7 CL3

import numpy as np


def create_antibody(size):

  return np.random.rand(size) 



def affinity(antibody, datapoint):

  distance = np.linalg.norm(antibody - datapoint)     

  return 1 / (1 + distance)


def get_key(pair):

   return pair[1]


size = 3

healthy_data = np.array([[1.0, 2.0, 3.0], [1.1, 1.9, 3.2]])     

num_antibodies = 10

antibody_population = []

for i in range(num_antibodies):

    antibody_population.append(create_antibody(size))



damaged_data = np.array([[1.2, 1.7, 2.8], [1.4, 1.5, 3.5]])


for i in range(2):

    healthy_affinities = []

    for ab in antibody_population:

       for datapoint in healthy_data:

          healthy_affinities.append(affinity(ab, datapoint))


    

    top_antibodies = []

    for i in range(len(antibody_population)):

        pair = [antibody_population[i], healthy_affinities[i]]

        top_antibodies.append(pair)

    top_antibodies.sort(key = get_key, reverse=True)

    top_antibodies = top_antibodies[0:5]


    

    new_population = []

    for ab, i in top_antibodies:

        new_population.append(ab + create_antibody(size) * 0.1)  

        antibody_population = new_population 



antibody_population.extend(new_population)



damaged_affinities = []

for datapoint in damaged_data:

  for ab in antibody_population:

      damaged_affinities.append(affinity(ab, datapoint))



potential_damage_index = damaged_affinities.index(max(damaged_affinities))


print(len(antibody_population))

print("Antibody that can heal damaged data: ", antibody_population[potential_damage_index]) 

Comments

Popular posts from this blog

DREAM LEAGUE SOCCER 2019 MOD

10 CL3

Garena Contra Return