예제 #1
0
    }]
    uncertainty_sets = ['ellipsoidal']

    # Loading pof results
    gamma = {}
    gamma['solutions'] = {}
    for i in range(nGammas):
        for j in range(len(methods)):
            for k in range((len(uncertainty_sets))):
                gamma['solutions'][gammas[i], methods[j]['name'],
                                   uncertainty_sets[k]] = pickle.load(
                                       open(
                                           "gammaResults\\" + str(
                                               (gammas[i], methods[j]['name'],
                                                uncertainty_sets[k])), 'rb'))
    gamma['solve_times'] = load_obj('gammasolve_times', 'gammaResults')
    gamma['simulation_results'] = load_obj('gammasimulation_results',
                                           'gammaResults')
    gamma['number_of_constraints'] = load_obj('gammanumber_of_constraints',
                                              'gammaResults')

    # Loading directly_uncertain_vars_subs
    try:
        pickle_in = open('directly_uncertain_dict.pickle', 'rb')
        directly_uncertain_vars_subs = pickle.load(pickle_in)
        pickle_in.close()
    except:
        print(
            'Warning: Please run pof_simulate first for consistent MC results.'
        )
        min_num_of_linear_sections, max_num_of_linear_sections, verbosity,
        linearization_tolerance, number_of_time_average_solves,
        uncertainty_sets, nominal_solution, directly_uncertain_vars_subs,
        parallel, nominal_number_of_constraints, nominal_solve_time
    ] = pof_parameters()

    # # Loading margins results
    margin = {}
    nmargins = len(gammas)
    margins = np.linspace(0., 1., nmargins)

    margin['solutions'] = {}
    for i in range(nmargins):
        margin['solutions'][margins[i]] = pickle.load(
            open("marginResults/" + str(margins[i]), 'rb'))
    margin['number_of_constraints'] = load_obj('marginnumber_of_constraints',
                                               'marginResults')
    margin['simulation_results'] = load_obj('marginsimulation_results',
                                            'marginResults')

    # Plotting of cost and probability of failure
    objective_name = 'Total fuel weight'
    objective_units = 'N'
    title = ''
    filteredResult = margin['solutions']
    filteredSimulations = margin['simulation_results']
    objective_varkey = 'W_{f_m}'

    objective_costs = []
    pofs = []
    objective_stddev = []
    for i in sorted(filteredResult.keys()):
예제 #3
0
        uncertainty_sets, nominal_solution, directly_uncertain_vars_subs,
        parallel, nominal_number_of_constraints, nominal_solve_time
    ] = pof_parameters()

    # Restricting method and uncertainty set to Best Pairs, ellipsoidal for demonstration
    methods = [{
        'name': 'Best Pairs',
        'twoTerm': True,
        'boyd': False,
        'simpleModel': False
    }]
    uncertainty_sets = ['ellipsoidal']

    # # Loading goal programming results
    delta = {}
    deltas = load_obj('deltas' + uncertainty_sets[0], 'goalResults')
    ndeltas = len(deltas)
    delta['solutions'] = {}
    for i in range(ndeltas):
        delta['solutions'][deltas[i], methods[0]['name'],
                           uncertainty_sets[0]] = pickle.load(
                               open(
                                   "goalResults/" + str(
                                       (deltas[i], methods[0]['name'],
                                        uncertainty_sets[0])), 'rb'))
    delta['solve_times'] = load_obj('deltasolve_times' + uncertainty_sets[0],
                                    'goalResults')
    delta['simulation_results'] = load_obj(
        'deltasimulation_results' + uncertainty_sets[0], 'goalResults')
    delta['number_of_constraints'] = load_obj(
        'deltanumber_of_constraints' + uncertainty_sets[0], 'goalResults')