예제 #1
0
#  rights in this software.
#  This software is distributed under the 3-clause BSD License.
#  ___________________________________________________________________________

import sys
import os

from pyomo.pysp.plugins.phhistoryextension import load_history

import matplotlib.pylab as plt

assert len(sys.argv) == 2
filename = sys.argv[1]
assert os.path.exists(filename)

scenario_tree, history, iterations = load_history(filename)

for node_name, node in scenario_tree['nodes'].items():

    # it's not a leaf node
    if len(node['children']):

        node_vars = history['0']['node solutions'][node_name]['variables'].keys()
        node_scenarios = node['scenarios']

        node_avg_res = {}
        node_xbar_res = {}
        scen_res = {}
        # will produce 1 figure for each variable name in this list
        VARS_TO_SHOW = node_vars
        for varname in VARS_TO_SHOW:
예제 #2
0
fail_flag = False


def flatten(d, parent_key=''):
    items = []
    for k, v in d.items():
        new_key = parent_key + '_' + k if parent_key else k
        if v and isinstance(v, collections.MutableMapping):
            items.extend(flatten(v, new_key).items())
        else:
            items.append((new_key, v))
    return dict(items)


f1 = sys.argv[1]
scenariotree1, history1, iter_keys1 = load_history(f1)
f2 = sys.argv[2]
scenariotree2, history2, iter_keys2 = load_history(f2)

if scenariotree1 != scenariotree2:
    print("Scenario Tree Mismatch")
    fail_flag = True

if iter_keys1 != iter_keys2:
    print("Total PH Iteration Mismatch: %s != %s" %
          (len(iter_keys1), len(iter_keys2)))
    fail_flag = True

valid_iters = set(iter_keys1).intersection(iter_keys2)
valid_iters = sorted([int(v) for v in valid_iters])
valid_iters = [str(k) for k in valid_iters]
예제 #3
0
_diff_tolerance = 1e-6
fail_flag = False

def flatten(d, parent_key=''):
    items = []
    for k, v in d.items():
        new_key = parent_key + '_' + k if parent_key else k
        if v and isinstance(v, collections.MutableMapping):
            items.extend(flatten(v, new_key).items())
        else:
            items.append((new_key, v))
    return dict(items)

f1 = sys.argv[1]
scenariotree1, history1, iter_keys1 = load_history(f1)
f2 = sys.argv[2]
scenariotree2, history2, iter_keys2 = load_history(f2)

if scenariotree1 != scenariotree2:
    print("Scenario Tree Mismatch")
    fail_flag = True

if iter_keys1 != iter_keys2:
    print("Total PH Iteration Mismatch: %s != %s"
          % (len(iter_keys1), len(iter_keys2)))
    fail_flag = True

valid_iters = set(iter_keys1).intersection(iter_keys2)
valid_iters = sorted([int(v) for v in valid_iters])
valid_iters = [str(k) for k in valid_iters]