def principal(argv): INSTANCIAS = read_data_XLSX() workbook = xlsxwriter.Workbook('Results_Tardiness.xlsx') for inst in INSTANCIAS: ## Parámetros de la instancia tp = inst.tiempos_procesamiento dd = inst.due_dates ## Obtener secuencia de Grasp_Makespan ALPHA = 0.5 num_iteraciones = 30 secuencia, secuencia_bl = GRASP_Tardiness(tp, dd, ALPHA, num_iteraciones) ## Matrices de tiempos de inicio y fin makespan, make_mat_i, make_mat_f = fo.calcular_makespan_blocking_secuencia( secuencia_bl, tp) tardanza, due_date_sec = fo.calcular_tardanza_blocking_secuencia( secuencia_bl, tp, dd) ## Imprimir archivo nombre_hoja = "Inst" + str(INSTANCIAS.index(inst) + 1) imprimir_XLSX(workbook, nombre_hoja, secuencia, secuencia_bl, makespan, make_mat_i, make_mat_f, tardanza, due_date_sec, tp, dd) workbook.close()
def principal(argv): INSTANCIAS = read_data_XLSX() for inst in INSTANCIAS: workbook = xlsxwriter.Workbook('Results_Makespan_ML Inst(' + str(INSTANCIAS.index(inst) + 1) + ').xlsx') print("============ Inst: ", INSTANCIAS.index(inst), " ============") ## Parámetros de la instancia tp = inst.tiempos_procesamiento dd = inst.due_dates ## Obtener secuencia de Modelo Lineal tiempo_limite = 500 secuencia, makespan, tardanza = modelo_makespan(tp, dd, tiempo_limite) print("Secuencia: ", secuencia, "; Makespan: ", makespan, "; Tardanza: ", tardanza) print(fo.calcular_makespan_blocking_secuencia(secuencia, tp), fo.calcular_tardanza_blocking_secuencia(secuencia, tp, dd)) ## Imprimir archivo nombre_hoja = "Inst" + str(INSTANCIAS.index(inst) + 1) imprimir_XLSX(workbook, nombre_hoja, secuencia, tardanza, makespan) workbook.close()
def principal(argv): INSTANCIAS = read_data_XLSX() num_alphas = 5 ALPHAS = [round(i * (1 / num_alphas), 3) for i in range(num_alphas + 1)] print(ALPHAS) for a in ALPHAS: workbook = xlsxwriter.Workbook('Results_Tardiness ALPHA(' + str(a) + ').xlsx') ti = time.time() for inst in INSTANCIAS: ## Parámetros de la instancia tp = inst.tiempos_procesamiento dd = inst.due_dates num_trabajos = len(tp) num_maquinas = len(tp[0]) ## Obtener secuencia de Grasp_Makespan ALPHA = a t_max = 0.01 * num_trabajos * num_maquinas repeticiones = 1 minimo = 10000000000000 print("AlPHA: ", a, "; Inst:", INSTANCIAS.index(inst)) for _ in range(repeticiones): t1 = time.time() s, s_bl = GRASP_Tardiness(tp, dd, ALPHA, t_max) f = fo.calcular_tardanza_blocking_secuencia(s_bl, tp, dd) print(f) if (f < minimo): minimo = f secuencia = s secuencia_bl = s_bl tiempo_funcion = time.time() - t1 print("----------------------------") ## Indicadores makespan = fo.calcular_makespan_blocking_secuencia(secuencia, tp) tardanza = fo.calcular_tardanza_blocking_secuencia( secuencia, tp, dd) makespan_bl, mat_t = fo.mat_calcular_makespan_blocking_secuencia( secuencia_bl, tp) tardanza_bl, dd_sec = fo.dd_calcular_tardanza_blocking_secuencia( secuencia_bl, tp, dd) ## Imprimir archivo nombre_hoja = "Inst" + str(INSTANCIAS.index(inst) + 1) imprimir_XLSX(workbook, nombre_hoja, secuencia, secuencia_bl, makespan, tardanza, makespan_bl, tardanza_bl, tiempo_funcion, mat_t, dd_sec) tt = time.time() - ti worksheet = workbook.add_worksheet("TIEMPO TOTAL") worksheet.merge_range(1, 1, 1, 3, "Tiempo total de ejecución") worksheet.merge_range(1, 4, 1, 5, round(tt, 2)) workbook.close() workbook.close()
def principal(argv): INSTANCIAS = read_data_XLSX() for inst in INSTANCIAS: workbook = xlsxwriter.Workbook('Results_Tardiness_MO Inst(' + str(INSTANCIAS.index(inst) + 1) + ').xlsx') print("\n============== Inst: ", INSTANCIAS.index(inst), " ===============") ## Parámetros de la instancia tp = inst.tiempos_procesamiento dd = inst.due_dates num_trabajos = len( tp) ## Obtener número de trabajos y número de máquinas num_maquinas = len(tp[0]) ## Obtener secuencia de Grasp_Makespan ALPHA = 0.4 ## No se está usando t_max = 1.5 * num_trabajos * num_maquinas ALPHA_make = 0.2 t_max_make = 0.01 * num_trabajos * num_maquinas repeticiones = 3 for rep in range(repeticiones): print("--- Rep: ", rep, " ---") t1 = time.time() secuencia, secuencia_bl, min_makespan = GRASP_Tardanza_MO( tp, dd, ALPHA, t_max, ALPHA_make, t_max_make) tiempo_funcion = time.time() - t1 ## Indicadores makespan = fo.calcular_makespan_blocking_secuencia(secuencia, tp) tardanza = fo.calcular_tardanza_blocking_secuencia( secuencia, tp, dd) makespan_bl = fo.calcular_makespan_blocking_secuencia( secuencia_bl, tp) tardanza_bl = fo.calcular_tardanza_blocking_secuencia( secuencia_bl, tp, dd) ## Imprimir archivo nombre_hoja = "Inst" + str(INSTANCIAS.index(inst) + 1) + "(REP" + str(rep + 1) + ")" imprimir_XLSX(workbook, nombre_hoja, secuencia, secuencia_bl, makespan, tardanza, makespan_bl, tardanza_bl, tiempo_funcion, min_makespan) workbook.close()
def GRASP( argv ): INSTANCIAS = read_data_XLSX() for inst in INSTANCIAS: print("------------------------------------------------") ## Parámetros de la instancia tp = inst.tiempos_procesamiento dd = inst.due_dates ## Etapa de construcción de solución ALPHA = 0.5 secuencia, makespan = construccion_GRASP(tp, ALPHA) print("Secuencia construcción GRASP: ", secuencia, "; Makespan: ", makespan) ## Etapa de busqueda local num_iteraciones = 10000 secuencia_bl, makespan_bl = busqueda_local_GRASP( secuencia, tp, num_iteraciones ) print("Secuencia busqueda local GRASP: ", secuencia_bl, "; Makespan: ", makespan_bl)
def principal(argv): INSTANCIAS = read_data_XLSX() workbook = xlsxwriter.Workbook('Results_Pruebas.xlsx') for inst in INSTANCIAS: secuencia = solucion_aleatoria(len(inst.tiempos_procesamiento)) tp = inst.tiempos_procesamiento dd = inst.due_dates makespan, make_mat_i, make_mat_f = fo.calcular_makespan_blocking_secuencia( secuencia, tp) tardanza, due_date_sec = fo.calcular_tardanza_blocking_secuencia( secuencia, tp, dd) ## Imprimir archivo nombre_hoja = "Inst" + str(INSTANCIAS.index(inst) + 1) imprimir_XLSX(workbook, nombre_hoja, secuencia, makespan, make_mat_i, make_mat_f, tardanza, due_date_sec) workbook.close()
def principal(argv): INSTANCIAS = read_data_XLSX() for inst in INSTANCIAS: ## Crear Archuvo de impresión workbook = xlsxwriter.Workbook('Results_Makespan Inst(' + str(INSTANCIAS.index(inst) + 1) + ').xlsx') ## Parámetros de la instancia tp = inst.tiempos_procesamiento dd = inst.due_dates num_trabajos = len(tp) num_maquinas = len(tp[0]) ## Obtener secuencia de Grasp_Makespan ALPHA = 0.5 t_max = 0.01 * num_trabajos * num_maquinas repeticiones = 3 print("Inst:", INSTANCIAS.index(inst)) for rep in range(repeticiones): t1 = time.time() secuencia, secuencia_bl = GRASP_Makespan(tp, ALPHA, t_max) tiempo_funcion = time.time() - t1 ## Indicadores makespan = fo.calcular_makespan_blocking_secuencia(secuencia, tp) tardanza = fo.calcular_tardanza_blocking_secuencia( secuencia, tp, dd) makespan_bl = fo.calcular_makespan_blocking_secuencia( secuencia_bl, tp) tardanza_bl = fo.calcular_tardanza_blocking_secuencia( secuencia_bl, tp, dd) ## Imprimir archivo nombre_hoja = "Inst" + str(INSTANCIAS.index(inst) + 1) + "(REP" + str(rep + 1) + ")" imprimir_XLSX(workbook, nombre_hoja, secuencia, secuencia_bl, makespan, tardanza, makespan_bl, tardanza_bl, tiempo_funcion) workbook.close()