Exemplo n.º 1
0
def main():
    if args.filename is None:
        parser.print_help()
        sys.exit(1)
    data_parser = DataParser(args.filename)
    jobs, machines, tasks = data_parser.get_instance_parameters()
    instance = Instance('Roxanne', machines, jobs, tasks)
    instance.print_info()
    instance.generate_best_cmax()
    instance.johnsons_algorithm()
Exemplo n.º 2
0
-comparecoolingoption - compares cooling forms(temprature and iteration), returns cmaxes for datasets and checks if optimal orders are compatible
-comparecooling - compares cooling factors, returns cmaxes for datasets
-comparemove - compares classic method with method which always calculates prob from exponent formula, returns cmaxes for datasets and checks if optimal orders are compatible
-comparemovewithonlydiff - compares classic method with method which checks only different cmaxes, returns cmaxes for datasets and checks if optimal orders are compatible
-comparestart - compares start orders - neh_prio and neh_result, returns cmaxes for datasets and checks if optimal orders are compatible

classic parameters: temperature=50, min_value=0.000001, cooling=0.8, method=swap
'''

if args.option == 'comparewithneh':
    with open('compare_ex3/comparewithneh.txt', 'w') as file:
        print("INFO: Started comparing neh with simulated annealing...")
        for filename in os.listdir('data'):
            if filename.startswith('data'):
                data_parser = DataParser('data/{}'.format(filename))
                jobs, machines, tasks, neh_prio = data_parser.get_instance_parameters(
                )
                instance = Instance('Roxanne', machines, jobs, tasks, neh_prio)
                instance.print_info()
                neh_queue, neh_cmax = instance.neh()
                simann_queues = []
                simann_cmaxes = []
                for i in range(3):
                    simann_queue, simann_cmax = instance.simulated_annealing(
                        50, instance.neh_prio, 0.000001, 0.8, 'swap')
                    simann_cmaxes.append(simann_cmax)
                    simann_queues.append(simann_queue)
                simann_cmax_avg = sum(simann_cmaxes) / len(simann_cmaxes)
                if neh_queue in simann_queues:
                    compatibility = True
                else:
                    compatibility = False