Dies ist eine alte Version des Dokuments!
Das Masterprogramm dient zur „Verwaltung“ des gesamten Projektes. In ihm werden Strecken- und Anschlussdaten festgelegt, sowie die Algorithmen aufgerufen. Es verfügt über ein timeit-Modul zur Zeitmessung und einen Debugger. Prinzipiell kann man dort hineinschreiben und ausführen was einem beliebt, derzeit sind die Methoden anneal(),tausch() und brutal() implementiert, die die jeweiligen Algorithmen aufrufen, die Zeit stoppen und im Anschluss die Verspätung der besten Lösung ausgeben.
# -*- coding: utf-8 -*- """ Created on Thu Dec 3 15:09:41 2015 @author: faustus """ from auswertungsprogramm import auswertung #from awneu import auswertung from simulation import * #from simulation_stefan import * from read import * from nfaq import * from tauschheuristik import * from annealing import * import time import logging import sys # create logger logger = logging.getLogger('simple_example') logger.setLevel(logging.ERROR) # create console handler and set level to debug ch = logging.StreamHandler(stream=sys.stdout) ch.setLevel(logging.ERROR) # create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # add formatter to ch ch.setFormatter(formatter) # add ch to logger logger.handlers=[] logger.addHandler(ch) fh=logging.FileHandler("mylog2.log") fh.setLevel(logging.DEBUG) # create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # add formatter to ch fh.setFormatter(formatter) # add ch to logger logger.addHandler(fh) ###### def timeit(method): def timed(*args, **kw): ts = time.time() result = method(*args, **kw) te = time.time() print "#####################" print '%r (%r, %r) %2.5f sec' % \ (method.__name__, args, kw, te-ts) print "#####################" return result return timed anschlussdaten = [{"minute": 0, "intervall": 20}, {"minute": 13, "intervall": 30}, {"minute": 42, "intervall": 60}] streckendaten = {"abstand": 1500, "streckenlaenge": 20000} # print(simulieren(folge,streckendaten["abstand"],streckendaten["streckenlaenge"]),anschlussdaten) #folge = tauschalgorithmus(reader("zuege.txt"),streckendaten, anschlussdaten) #simuliert = simulieren(folge, streckendaten["abstand"], streckendaten["streckenlaenge"]) @timeit def brutal(): return auswertung(simulieren(nfaq(reader("zuege.txt"),streckendaten, anschlussdaten)),anschlussdaten) @timeit def brutalb(): return auswertung(berechnen(nfaq(reader("zuege.txt"),streckendaten, anschlussdaten)),anschlussdaten) @timeit def anneal(): #return auswertung(simulieren(tauschalgorithmus(reader("zuege.txt"),streckendaten, anschlussdaten, 50,3)),anschlussdaten) return auswertung(simulieren(annealing(reader("zuege.txt"),streckendaten, anschlussdaten, 0.7)),anschlussdaten) @timeit def annealb(): #return auswertung(simulieren(tauschalgorithmus(reader("zuege.txt"),streckendaten, anschlussdaten, 50,3)),anschlussdaten) return auswertung(berechnen(annealing(reader("zuege.txt"),streckendaten, anschlussdaten, 0.7)),anschlussdaten) @timeit def tausch(): return auswertung(simulieren(tauschalgorithmus(reader("zuege.txt"),streckendaten, anschlussdaten, 174,2)),anschlussdaten) @timeit def tauschb(): return auswertung(berechnen(tauschalgorithmus(reader("zuege.txt"),streckendaten, anschlussdaten, 174,2)),anschlussdaten) @timeit def sim(): return auswertung(simulieren(reader("zuege.txt")),anschlussdaten) print(anneal()) print(tausch()) print(brutal())