def run(episodeNum): episodeNum = int(episodeNum) setupMultithreading() results = multiprocessing.Queue() finished = multiprocessing.Queue() processes = [] for _ in range(localConstants.REPEATS): for percentage in np.linspace(0.1, 1.0, num=10): processes.append( multiprocessing.Process(target=threadRun, args=(percentage, episodeNum, results, finished))) results = executeMulti(processes, results, finished, numResults=episodeNum * len(processes)) # plotting.plotMulti("Competing Agents", results=results, ylabel="Job #", xlabel="Episode #") # , save=True) plotting.plotMultiWithErrors("Competing Agents", results=results, ylabel="Job #", xlabel="Episode #") # , save=True)
localConstants.REPEATS = 16 numEpisodes = int(numEpisodes) # , ]minimalTableAgent systemState = extendedSystemState # agentsToTest = [minimalTableAgent, randomAgent] # minimalTableAgent, , localAgent] numPhases = int(3e1) for agent, offPolicy in [(minimalDeepAgent, True), (minimalDeepAgent, False), (minimalTableAgent, False)]: for production in [True, False]: for pretrain in [True, False]: for _ in range(localConstants.REPEATS): for centralised in [True]: # if not (not centralised and agent is randomAgent): processes.append(multiprocessing.Process(target=runThread, args=( len(processes), agent, systemState, production, offPolicy, pretrain, numPhases, numEpisodes, results, finished))) results = executeMulti(processes, results, finished, numResults=len( processes) * numPhases * numEpisodes, assembly=assembleResults, chooseBest=1.0) plotting.plotMultiWithErrors("experiment6", title="experiment 6", results=results, ylabel="Job #", xlabel="Episode #") # , save=True) if __name__ == "__main__": setupMultithreading() try: run(1e2) except: traceback.print_exc(file=sys.stdout) print("ERROR")