Beispiel #1
0
def check_non_bounds_constrained(file):
    data = cU.readCSV(file)
    data_tensor = cU.cleanData(data)[0]
    for c in range(len(data_tensor)):
        for d in range(len(data_tensor[0])):
            trace = 0
            for i in range(len(data_tensor[0][0])):
                trace += data_tensor[c][d][i][i]
                games_played = 0
                games_played += sum(data_tensor[c][d][i])
                games_played += sum(column(data_tensor[c][d], i))
                if games_played > 1:
                    return 0
            if trace != 0:
                return 0
    return 1
Beispiel #2
0
def learnConstraintsForAllDir(directory, num_teams, output):
    start = time.clock()
    tag = "Amt_T" + str(num_teams)
    ind = 0
    for file in glob.glob(directory + '/*.csv'):
        data = cU.readCSV(file)
        dataTensor, variables = cU.cleanData(data)
        lenVar = []

        for i in range(len(variables)):
            lenVar.append(len(variables[i]))

        if ind == 0:
            saveConstraintsForAll(dataTensor, variables, ind, output,
                                  tag + str(0))
        ind = 1
        saveConstraintsForAll(dataTensor, variables, ind, output, tag + str(0))
    return time.clock() - start
Beispiel #3
0
def learnConstraintsForAll(directory, sampled_files, teamAmt, output):
    tag = str(len(sampled_files)) + "Amt_T" + str(teamAmt)

    ind = 0
    for file in sampled_files:
        file2 = (os.path.join(directory, file))
        data = cU.readCSV(file2)
        dataTensor, variables = cU.cleanData(data)
        lenVar = []

        for i in range(len(variables)):
            lenVar.append(len(variables[i]))

        if ind == 0:
            saveConstraintsForAll(dataTensor, variables, ind, output,
                                  tag + str(0))
        ind = 1
        saveConstraintsForAll(dataTensor, variables, ind, output, tag + str(0))
Beispiel #4
0
def readBounds(file, num_constrType, num_constr):
    data = cU.readCSV(file)
    newlist = []
    for list2 in data:
        if list2 != []:
            newlist.append(list2)
    # transpose function of the tensor
    data_transpose = list(map(list, zip(*newlist)))
    # build array of len datatranspose by len datatranspose[0]-1
    data_int = np.zeros([len(data_transpose), len(data_transpose[0]) - 1])
    for i in range(len(data_transpose)):
        for j in range(1, len(data_transpose[i])):
            if data_transpose[i][j] != '':
                data_int[i, j - 1] = int(data_transpose[i][j])
    bounds_tr = np.zeros([len(data_int[0]), num_constrType, num_constr])
    for j in range(len(data_int[0])):
        k = 0
        for i in range(349):
            if (i + 1) % 7 != 0:
                bounds_tr[j, int(k / 6), k % 6] = data_int[i, j]
                k += 1
    return bounds_tr.astype(np.int64)
def learnConstraintsForAll(directory,
                           sampled_files,
                           teamAmt,
                           output,
                           info=None,
                           bk=False):
    tag = str(len(sampled_files)) + "Amt_T" + str(teamAmt)

    ind = 0
    for file in sampled_files:
        file2 = (os.path.join(directory, file))
        data = cU.readCSV(file2)
        dataTensor, variables = cU.cleanData(data)
        lenVar = []

        for i in range(len(variables)):
            lenVar.append(len(variables[i]))

        if ind == 0:
            saveConstraintsForAll(dataTensor, variables, ind, output,
                                  tag + str(0))
            saveConstraintsForAll(dataTensor, variables, 1, output,
                                  tag + str(0))
        else:
            saveConstraintsForAll(dataTensor, variables, ind, output,
                                  tag + str(0))

        if bk:
            strengthgroup = np.zeros([2, teamAmt])
            strengthgroup[0] = info
            strengthgroup[1] = [int(x == 0) for x in info]
            # ind = 0

            for f in range(2):
                if f == 0:
                    tmp = info
                else:
                    tmp = [int(x == 0) for x in info]
                strengthgroup = np.zeros([teamAmt, int(sum(tmp))])
                k = 0
                for j in range(len(tmp)):
                    if tmp[j] == 1:
                        strengthgroup[j][k] = 1
                        k += 1
                dim = 3  # refers to the home dimension
                updated_vars = variables[:]
                updated_vars[dim] = [
                    x for x, y in zip(variables[dim], tmp) if y == 1
                ]
                mat = np.tensordot(dataTensor, strengthgroup, [dim, 0])
                if ind == 0:
                    saveConstraintsForAll(dataTensor=mat,
                                          variables=updated_vars,
                                          indicator=0,
                                          directory=output,
                                          tag=tag + str(0) + str(f))
                    saveConstraintsForAll(dataTensor=mat,
                                          variables=updated_vars,
                                          indicator=1,
                                          directory=output,
                                          tag=tag + str(0) + str(f))
                else:
                    saveConstraintsForAll(dataTensor=mat,
                                          variables=updated_vars,
                                          indicator=ind,
                                          directory=output,
                                          tag=tag + str(0) + str(f))
        ind = 1