import numpy as np from argparse import ArgumentParser import mySolverModule def commandParsing(): parser = ArgumentParser() parser.add_argument('-p', '--problem', help='Problem file name', required=True) # Required parser.add_argument('-s', '--seed', help='seed value') # Option parser.add_argument('-o', '--output', help='Output file name') # Option args = vars(parser.parse_args()) return args def main(args): seed_v = 214 if args['seed'] is not None: seed_v = int(args['seed']) seed = mySolverModule.seed_generator(seed_v) # ndarray info = mySolverModule.check_problem(args['problem']) # extract info (block, line, ...) ret = mySolverModule.solver(seed, info['W'][0], info['H'][0], info['blocks'][0], info['line_num'][0], info['block_info'], info['line_info']) if ret['status'][0] == 0: print('Fail re-routing') else: mySolverModule.show_result(ret['W_ext'][0], ret['H_ext'][0], info['blocks'][0], info['line_num'][0], ret['block_info'], ret['opt_result']) if ret['W_ext'][0] > info['W'][0] or ret['H_ext'][0] > info['H'][0]: print('Fail satisfying constraint T_T') else: print('Satisfy constraint ^_^') if args['output'] is not None: mySolverModule.output_to_file(args['output'], ret['W_ext'][0], ret['H_ext'][0], info['blocks'][0], info['line_num'][0], ret['block_info'], ret['opt_result']) if __name__ == '__main__': args = commandParsing() main(args)