def __init__(self, N, gen_size, data):
        self.N = N
        self.gen_size = gen_size
        self.f = SharpeV2(data, 1.0)
        self.f2 = Sharpe(data, 1.0)

        self.state = []
    def __init__(self, lambda_, gen_size, data):
        self.lambda_ = lambda_
        self.gen_size = gen_size
        self.operators = [FloatMutation, Crossover]
        self.f = Sharpe(data, 1.0)

        self.state = []
    def __init__(self, lambda_, gen_size, data):
        self.lambda_ = lambda_
        self.gen_size = gen_size

        self.tau = 1 / 3
        self.d = np.sqrt(gen_size)
        self.d_i = gen_size
        self.f = Sharpe(data, 1.0)
        self.state = []
    def __init__(self, lambda_, gen_size, data):
        self.n = np.random.randint(100)
        self.lambda_ = lambda_
        self.mu = int(np.ceil(lambda_ / 4))
        self.tau = 1 / np.sqrt(self.n)
        self.tau_i = 1 / (np.sqrt(self.n)**0.25)
        self.f = Sharpe(data, 1.0)
        self.gen_size = gen_size

        self.state = []
 def __init__(self, lambda_, sa, gen_size, data):
     self.lambda_ = lambda_
     self.gen_size = gen_size
     self.f = Sharpe(data, 1.0)
     self.state = []
     self.sa = sa
 def __init__(self, subspecies_number, data, algorithm):
     self.subspecies_number = subspecies_number
     self.data = data
     self.algorithm = algorithm
     self.f = Sharpe(data, 1.0)