def readNeos(filename, json_folder): f = open(filename, 'r') for i in range(3): line = f.readline() obj_value = float(line[17:]) actual = math.exp(obj_value) p, f = os.path.split(filename) fname = f[:-4] + '.json' json_file = os.path.join(json_folder, fname) STN = loadSTNfromJSONfile(json_file) result, conflicts, bounds, weight = DC_Checker(STN.copy(), report=False) contingent = bounds['contingent'] total = 1 for (i, j) in list(STN.contingentEdges.keys()): edge = STN.contingentEdges[(i, j)] length = edge.Cij + edge.Cji total *= length if (i, j) not in contingent: actual *= length return actual, total, float(actual / total)
def processOptimal(): json_folder = input("Please input folder with json file:\n") json_list = glob.glob(os.path.join(json_folder, '*.json')) result = {} for fname in json_list: p, f = os.path.split(fname) print("Processing: ", f) STN = loadSTNfromJSONfile(fname) new_STN, count = relaxSearch(STN.copy()) new, orig, degree = dynamicMetric(STN.copy(), new_STN.copy()) result[f] = {} result[f]['shrinked'] = new result[f]['original'] = orig result[f]['degree'] = degree output_folder = input("Please input output folder:\n") filename = os.path.join(output_folder, 'result_optimal.json') with open(filename, 'w') as f: json.dump(result, f) return result
def sampleAll(listOfFile, success='default', LP='original'): result = {} for fname in listOfFile: p, f = os.path.split(fname) print("Processing file: ", f) STN = loadSTNfromJSONfile(fname) degree, success = sample(STN, success=success, LP=LP) result[f] = (degree, success) return result
def sample_from_folder(folder_name, gauss=False, success='default', LP='original'): results = {} for filename in os.listdir(folder_name): print(filename) STN = loadSTNfromJSONfile(folder_name + filename) degree, success_rate = sample(STN, success, LP, gauss) results[filename] = (degree, success_rate) return results
def generate_result_relax(data_path, out_name): data_list = glob.glob(os.path.join(data_path, '*.json')) result = {} for data in data_list: STN = loadSTNfromJSONfile(data) _, count, _, _ = relaxSearch(STN) path, name = os.path.split(data) result[name] = count # return result # Save the results with open(out_name, 'w') as f: json.dump(result, f)
def computeDynamic(nlp=False): uncertain_folder = input("Please input uncertain STNUs folder:\n") chain_folder = input("Please input chain STNUs folde:\n") listOfFile = [] listOfFile += glob.glob(os.path.join(uncertain_folder, '*.json')) listOfFile += glob.glob(os.path.join(chain_folder, '*.json')) degree = {} for fname in listOfFile: p, f = os.path.split(fname) print("Processing: ", f) STN = loadSTNfromJSONfile(fname) new_STN, count = relaxSearch(STN.copy(), nlp=nlp) if not new_STN: degree[f] = 0 else: degree[f] = dynamicMetric(STN.copy(), new_STN.copy())[2] return degree
def compare(actual_Dict): dynamic_folder = input("Please input directory with DC STNUs:\n") uncertain_folder = input("Please input directory with uncertain STNUs:\n") compare_Dict = {} for x in list(actual_Dict.keys()): actual_volume = actual_Dict[x] if x[:7] == 'dynamic': fname = os.path.join(dynamic_folder, x + '.json') else: fname = os.path.join(uncertain_folder, x + '.json') STN = loadSTNfromJSONfile(fname) _, _, epsilons = originalLP(STN.copy()) original, shrinked = newInterval(STN, epsilons) old, new, degree = calculateMetric(original, shrinked) actual = float(actual_volume / old) compare_Dict[x] = (degree, actual) return compare_Dict
directory = "small_examples" data_list = glob.glob(os.path.join(directory, '*.json')) # testing dream data ## # directory = 'dataset/dreamdata/' # folders = os.listdir(directory) # data_list = [] # result = [] # for folder in folders: # data = glob.glob(os.path.join(directory, folder, '*.json')) # data_list += data for data in data_list: print("simulating", data) stn = loadSTNfromJSONfile(data) stnc = stn.copy() stnc.floyd_warshall() a, b, c, d = DC_Checker(stnc) print(a) alpha, outputstn = srea(stnc) e, f, g, t = DC_Checker(outputstn) if not e: print(data) print(outputstn) print(t) break # if outputstn != None: # a,b,c,d = DC_Checker(outputstn)
def simulate_file(file_name, size, verbose=False, gauss=False, relaxed=False) -> float: network = loadSTNfromJSONfile(file_name) result = simulation(network, size, verbose, gauss, relaxed) if verbose: print(f"{file_name} worked {100*result}% of the time.") return result
def prob_of_DC_file(file_name: str) -> float: network = loadSTNfromJSONfile(file_name) return prob_of_DC(network)
def dc_checking_file(filename): STN = loadSTNfromJSONfile(filename) return dc_checking(STN)
def modelDynamicFile(path): STN = loadSTNfromJSONfile(path) p, f = os.path.split(path) fname = f[:-5] + '.mod' fname = os.path.join('../../../model/dynamic/model', fname) modelObjDynamic(STN, fname)