예제 #1
0
    def initializePopulation(self, size, depth):
        list1 = []
        for i in range(size):
            choose = random.randint(1, 5)
            Try = DSL()
            OK = Script(Try.initializeNumerous(choose, depth), i)
            list1.append(OK)
            OK.saveFile(path)

        return list1
예제 #2
0
def initializePopulation(size, generation, depth):
    list1 = []
    # The following line is the directory on Rohan's computer, change
    # this to the directory where you would like to store your scripts.

    for i in range(size):
        choose = random.randint(1, 5)
        Try = DSL()
        OK = Script(Try.initializeNumerous(choose, depth), i)
        list1.append(OK)
        OK.saveFile(path)

    return list1
예제 #3
0
def RemoveUnused(dictionary, indictator):
    newDict = {}
    ListoKeys = []
    for guy in dictionary.keys():
        ListoKeys.append(guy)
        # print(ListoKeys)

    for h in ListoKeys:
        fitVal = dictionary[h]
        # print("line 203")
        # print(fitVal)

        deleteList = []
        for i in range(len(h._strategies)):
            if h._counter_calls[i] == 0:
                deleteList.append(h._strategies[i])
            # print("210")
            # print(deleteList)
        for bad in deleteList:
            # print('213')
            # print(h._strategies)
            h._strategies.remove(bad)
            # print(h._strategies)

        if len(h._strategies) != 0:

            Ok = Script(h._strategies, h._id + indictator + 70)
            Ok.saveFile(path)
            module = importlib.import_module("Population.Script" +
                                             str(Ok.getId()))
            class_ = getattr(module, "Script" + str(Ok.getId()))
            inst = class_()
            newDict[inst] = fitVal
            # print("IN IF")
            # print(fitVal)
            # print(newDict)
            # print(inst)

        else:
            Try = DSL()
            OK = Script(Try.initializeNumerous(3, 3), h._id + 70 + indictator)
            OK.saveFile(path)
            module = importlib.import_module("Population.Script" +
                                             str(OK.getId()))
            class_ = getattr(module, "Script" + str(OK.getId()))
            inst = class_()
            newDict[inst] = 0
            # print("IN ELSE")

    return newDict
예제 #4
0
def mutate(script, j):
    Try = DSL()
    new = []

    for i in range(len(script._strategies)):
        if random.randint(0, 1) == 0:
            new.append(Try.initialize('S', 3))
        if random.randint(0, 1) == 0:
            new.append(Try.initialize('S', 3))
        else:
            new.append(script._strategies[i])
        if random.randint(0, 1) == 0:
            new.append(Try.initialize('S', 3))
            # print('p')
        # print(new)

    Ok = Script(new, script._id + j)
    Ok.saveFile(path)
    return Ok
예제 #5
0
def crossover(parent1, parent2, i):
    childStrat = generateSplit(parent1, parent2)
    Ok = Script(childStrat, i)
    Ok.saveFile(path)
    return Ok