def runmps(task, it, iN, Ui, ti, N): parmsi = deepcopy(parms) parmsi['it'] = it parmsi['iN'] = iN t = xi * ti if twist: t[0] *= -1 U = xi * Ui for i in range(L): parmsi['t'+str(i)] = t[i] for i in range(L): parmsi['U'+str(i)] = U[i] parmsi['N_total'] = N try: if ximax == 0: raise ValueError ns = VarArray(L, nmax) E = Sum([n*(n-1) for n in ns], U.tolist()) model = Model(Minimize(E), [Sum(ns) == N]) solver = model.load('SCIP') solver.setTimeLimit(600) solved = solver.solve() parmsi['solved'] = solved except: basen = N // L ns = [basen] * L rem = N % L excessi = [i for (xii, i) in xisort[:rem]] for i in excessi: ns[i] += 1 parmsi['initial_local_N'] = ','.join([str(n) for n in ns]) # subprocess.call(['mkdir Tasks/Task.'+str(task)], shell=True) # input_file = pyalps.writeInputFiles('Tasks/Task.' + str(task) + '/bh.' + str(L) + '.' + str(resi) + '.' + str(task), [parmsi]) input_file = pyalps.writeInputFiles(basename + str(task), [parmsi]) # subprocess.call(['bash','-c','read']) pyalps.runApplication('mps_optim', input_file)
def runmps(task, iW, iN, Wi, N): parmsi = deepcopy(parms) parmsi['iW'] = iW parmsi['iN'] = iN W = Wi * xi t = JW(W) U = UW(W) if twist: t[0] *= -1 for i in range(L): parmsi['t'+str(i)] = t[i] for i in range(L): parmsi['U'+str(i)] = U[i] parmsi['N_total'] = N try: if ximax == 0: raise ValueError ns = VarArray(L, nmax) E = Sum([n*(n-1) for n in ns], U.tolist()) model = Model(Minimize(E), [Sum(ns) == N]) solver = model.load('SCIP') solver.setTimeLimit(600) solved = solver.solve() parmsi['solved'] = solved except: basen = N // L ns = [basen] * L rem = N % L excessi = [i for (xii, i) in xisort[:rem]] for i in excessi: ns[i] += 1 parmsi['initial_local_N'] = ','.join([str(n) for n in ns]) input_file = pyalps.writeInputFiles(basename + str(task), [parmsi]) pyalps.runApplication('mps_optim', input_file, writexml=True)