Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1516:logistische_probleme:master

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 zurückgeben. sim() wertet die Reihenfolge in der zuege.txt-Datei aus.

# -*- 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}
 
@timeit
def brutal():
    return auswertung(simulieren(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)),anschlussd
@timeit
def tausch():
    return auswertung(simulieren(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())
ws1516/logistische_probleme/master.txt · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)