def solve_stats(ndp): res = {} query = { "endurance": "1.5 hour", "velocity": "1 m/s", "extra_power": " 1 W", "extra_payload": "100 g", "num_missions": "100 []", } context = Context() f = convert_string_query(ndp=ndp, query=query, context=context) dp0 = ndp.get_dp() dpL, dpU = get_dp_bounds(dp0, nl=1, nu=1) F = dp0.get_fun_space() F.belongs(f) from mcdp import logger traceL = Tracer(logger=logger) resL = dpL.solve_trace(f, traceL) traceU = Tracer(logger=logger) resU = dpU.solve_trace(f, traceU) R = dp0.get_res_space() UR = UpperSets(R) print('resultsL: %s' % UR.format(resL)) print('resultsU: %s' % UR.format(resU)) res['traceL'] = traceL res['traceU'] = traceU res['resL'] = resL res['resU'] = resU res['nsteps'] = 100 return res
def plot_different_solutions(libname, ndpname, query, out, upper=None): if not os.path.exists(out): os.makedirs(out) library = get_test_library(libname) #library.use_cache_dir(os.path.join(out, 'cache')) context = Context() ndp = library.load_ndp(ndpname, context) context = library._generate_context_with_hooks() ndp_labelled = get_labelled_version(ndp) dp0 = ndp_labelled.get_dp() if upper is not None: _, dpU = get_dp_bounds(dp0, nl=1, nu=upper) dp = dpU else: dp = dp0 M = dp.get_imp_space() with open(os.path.join(out, 'ndp.txt'), 'w') as f: f.write(ndp.repr_long()) with open(os.path.join(out, 'M.txt'), 'w') as f: f.write(M.repr_long()) with open(os.path.join(out, 'dp.txt'), 'w') as f: f.write(dp.repr_long()) with open(os.path.join(out, 'dp0.txt'), 'w') as f: f.write(dp0.repr_long()) f = convert_string_query(ndp=ndp, query=query, context=context) report = Report() res = dp.solve(f) print('num solutions: %s' % len(res.minimals)) for ri, r in enumerate(res.minimals): ms = dp.get_implementations_f_r(f, r) for j, m in enumerate(ms): imp_dict = get_imp_as_recursive_dict(M, m) print imp_dict images_paths = library.get_images_paths() gv = GetValues(ndp=ndp, imp_dict=imp_dict, nu=upper, nl=1) gg = gvgen_from_ndp(ndp=ndp, style=STYLE_GREENREDSYM, images_paths=images_paths, plotting_info=gv) with report.subsection('%s-%s' % (ri, j)) as rr: gg_figure(rr, 'figure', gg, do_png=True, do_pdf=False, do_svg=False, do_dot=False) fn = os.path.join(out, 'solutions.html') print('writing to %s' % fn) report.to_html(fn)
def solve_stats(ndp, n, algo): res = {} query = { "travel_distance": " 2 km", "carry_payload": "100 g", "num_missions": "100 []", } context = Context() f = convert_string_query(ndp=ndp, query=query, context=context) dp0 = ndp.get_dp() dpL, dpU = get_dp_bounds(dp0, nl=n, nu=n) F = dp0.get_fun_space() F.belongs(f) logger = None InvMult2.ALGO = algo traceL = Tracer(logger=logger) resL = dpL.solve_trace(f, traceL) traceU = Tracer(logger=logger) resU = dpU.solve_trace(f, traceU) R = dp0.get_res_space() UR = UpperSets(R) print('resultsL: %s' % UR.format(resL)) print('resultsU: %s' % UR.format(resU)) res['traceL'] = traceL res['traceU'] = traceU res['resL'] = resL res['resU'] = resU res['n'] = n res['query'] = query return res
def solve_stats(ndp): res = {} query = { "endurance": "1.5 hour", "velocity": "1 m/s", "extra_power": " 1 W", "extra_payload": "100 g", "num_missions": "100 []", } context = Context() f = convert_string_query(ndp=ndp, query=query, context=context) dp0 = ndp.get_dp() dpL, dpU = get_dp_bounds(dp0, nl=1, nu=1) F = dp0.get_fun_space() F.belongs(f) from mocdp import logger traceL = Tracer(logger=logger) resL = dpL.solve_trace(f, traceL) traceU = Tracer(logger=logger) resU = dpU.solve_trace(f, traceU) R = dp0.get_res_space() UR = UpperSets(R) print('resultsL: %s' % UR.format(resL)) print('resultsU: %s' % UR.format(resU)) res['traceL'] = traceL res['traceU'] = traceU res['resL'] = resL res['resU'] = resU res['nsteps'] = 100 return res
def plot_different_solutions(libname, ndpname, query, out, upper=None): if not os.path.exists(out): os.makedirs(out) library = get_test_library(libname) #library.use_cache_dir(os.path.join(out, 'cache')) context = Context() ndp = library.load_ndp(ndpname, context) context = library._generate_context_with_hooks() ndp_labelled = get_labelled_version(ndp) dp0 = ndp_labelled.get_dp() if upper is not None: _, dpU = get_dp_bounds(dp0, nl=1, nu=upper) dp = dpU else: dp = dp0 M = dp.get_imp_space() with open(os.path.join(out, 'ndp.txt'), 'w') as f: f.write(ndp.repr_long()) with open(os.path.join(out, 'M.txt'), 'w') as f: f.write(M.repr_long()) with open(os.path.join(out, 'dp.txt'), 'w') as f: f.write(dp.repr_long()) with open(os.path.join(out, 'dp0.txt'), 'w') as f: f.write(dp0.repr_long()) f = convert_string_query(ndp=ndp, query=query, context=context) report = Report() res = dp.solve(f) print('num solutions: %s' % len(res.minimals)) for ri, r in enumerate(res.minimals): ms = dp.get_implementations_f_r(f, r) for j, m in enumerate(ms): imp_dict = get_imp_as_recursive_dict(M, m) logger.info(imp_dict) images_paths = library.get_images_paths() image_source = ImagesFromPaths(images_paths) gv = GetValues(ndp=ndp, imp_dict=imp_dict, nu=upper, nl=1) gg = gvgen_from_ndp(ndp=ndp, style=STYLE_GREENREDSYM, image_source=image_source, plotting_info=gv) with report.subsection('%s-%s' % (ri, j)) as rr: gg_figure(rr, 'figure', gg, do_png=True, do_pdf=False, do_svg=False, do_dot=False) fn = os.path.join(out, 'solutions.html') print('writing to %s' % fn) report.to_html(fn)