def main(): equipos, costes = cargaDatos(sys.argv[1], sys.argv[2]) grupos = list() grupoA = list() grupoA.append(equipos[0]) grupoA.append(equipos[3]) grupoA.append(equipos[5]) grupoA.append(equipos[8]) grupoA.append(equipos[9]) grupoA.append(equipos[10]) grupoB = list() grupoB.append(equipos[1]) grupoB.append(equipos[2]) grupoB.append(equipos[3]) grupoB.append(equipos[6]) grupoB.append(equipos[7]) grupoB.append(equipos[11]) grupos.append([grupoA, grupoB]) gruposPosibles = [] i = 0 for posi in grupos: grupoA = posi[0] grupoB = posi[1] print("GrupoA") print(grupoA) print("GrupoB") print(grupoB) combinationsA = itertools.permutations(list(grupoA), 6) combinationsB = itertools.permutations(list(grupoB), 6) for combinationA in list(combinationsA): if (i % 1000000 == 0): print(i) i = i + 1 """ print(combinationB) """ if combinacionPosible(combinationA): """ print(combinacionPosible(combinationB)) """ for combinationB in list(combinationsB): """ print(combinationA) print(combinationB) """ gruposPosibles.append([combinationA, combinationB]) i = 0 print("Calendarios posibles " + str(len(gruposPosibles))) calendarios = [] for grupo in gruposPosibles: print("calendario numero" + str(i)) calendario = Calendario(grupo, costes) calendario.generar_calendario() calendarios.append(calendario) i = i + 1 calendarios.sort(key=lambda x: x.desviacion) minDesviacion = calendarios[0].desviacion maxDesviacion = calendarios[-1].desviacion calendarios.sort(key=lambda x: x.total) minKilometros = calendarios[0].total maxKilometros = calendarios[-1].total for calendario in calendarios: calendario.calculaIndice(minDesviacion, maxDesviacion, minKilometros, maxKilometros) calendarios.sort(key=lambda x: (x.desviacion)) workbook = xlsxwriter.Workbook('desviacionSinRestriccion.xlsx') i = 1 for calendario in calendarios[:500]: nombre = 'Opcion ' + str(i) worksheet = workbook.add_worksheet(nombre) calendario.imprime_resultado(workbook, worksheet) i = i + 1 workbook.close() print('Total calendario:' + str(i)) print('Plotting:') plt.plot([x.indiceDesviacion for x in calendarios], [y.indiceTotal for y in calendarios], 'ro') plt.ylabel('some numbers') plt.show()
N = i i += 1 num_squadre = N * 2 # genera lista di Giornate giornate = [] for row in range(0, df.shape[0], N + 1): for col in [0, 5]: g = df.iloc[row:row + N, col:col + 5] if (isinstance(g.iloc[0, -1], float)): if (math.isnan(g.iloc[0, -1])): break if (g.iloc[0, -1] == '-'): break giornate.append(Giornata(g)) # genera Calendario calendario = Calendario(giornate) team_points = calendario.get_team_points_map() # print(calendario.get_team_points_map()) # plot punti competizione a calendario colors = ['#808080', 'b', 'g', 'r', 'c', 'm', 'y', 'k'] markers = ['.', 's', '*', 'o', 'v', 'H', 'p', 'd'] try: split = args.file.split('_')[1:] title = '_'.join(split) title = title[:-5] except: title = '' legend = [] max_point = 0
def main(): c = Calendario() c.crearNota("") c.menu()