def nh_swap_exhaustive(data): """ Generates the neighbourhood of all possible sequences from single element swaps Parameters ---------- data : TYPE DESCRIPTION. Returns ------- None. """ sequence = data.data nh = [] length = len(sequence) for i in range(0, length): for j in range(i+1, length): if i!=j: nh_element = sequence.copy() swap(nh_element,i,k) nh.append(main.Data(nh_element)) return nh
def nh_swap_adjacent(data, n_swaps): """ Generates the neighbourhood of all sequences from performing n adjacent swaps Parameters ---------- sequence : TYPE DESCRIPTION. n_swaps : TYPE DESCRIPTION. Returns ------- None. """ sequence = data.data nh = [] last = len(sequence) - n_swaps * 2 for i in range(0, last): nh_element = sequence.copy() swap_adjacent(nh_element, n_swaps, i) nh.append(main.Data(nh_element)) return nh
def nh_insert_exhaustive(data): """ Generates the neighbourhood of all possible sequences from single element insertions Parameters ---------- sequence : TYPE DESCRIPTION. Returns ------- nh : TYPE DESCRIPTION. """ sequence = data.data nh = [] length = len(sequence) for i in range(0, length): for j in range(0, length): if i!=j: nh_element = sequence.copy() rect = nh_element[i] nh_element.insert(j, rect) nh_element.remove(rect) nh.append(main.Data(nh_element)) return nh
def train(dataInput, train_file, gaz_file, dev_file, test_file, char_emb, bichar_emb, gpu, save_model_dir, seg): get_num = len(dataInput) if get_num >= 3: data = main.Data() data.write_http_data(train_file, dataInput, 'train') data.write_http_data(test_file, dataInput, 'test') data.write_http_data(dev_file, dataInput, 'dev') data.HP_gpu = gpu data.HP_use_char = True data.HP_batch_size = 1 data.use_bigram = False data.gaz_dropout = 0.5 data.norm_gaz_emb = False data.HP_fix_gaz_emb = True main.data_initialization(data, gaz_file, train_file, dev_file, test_file) data.generate_instance_with_gaz(train_file, 'train') data.generate_instance_with_gaz(dev_file, 'dev') data.generate_instance_with_gaz(test_file, 'test') data.build_word_pretrain_emb(char_emb) data.build_biword_pretrain_emb(bichar_emb) data.build_gaz_pretrain_emb(gaz_file) main.train(data, save_model_dir, seg) return "train over" else: return "train fail: the sentence_num must over 3"
def nh_rotate_adjacent(data, n_elements): sequence = data.data nh = [] last = len(sequence) - n_elements + 1 for i in range(0, last): nh_element = sequence.copy() rotate_adjacent(nh_element, n_elements, i) nh.append(main.Data(nh_element)) return nh
def run(host, port, data, file, treading=None): global tdata, tfile tdata = data tfile = main.Data().load(file=file) if treading: import multiprocessing serverProcess = multiprocessing.Process(target=run, args=(host, port, data, file, None)) serverProcess.start() else: server.run(host, port)
def nh_shift(data): """ Generate neighbourhood by placing last element at the front :param data: :return: """ neighbourhood = [] rectangles = data.data length = len(rectangles) for i in range(0, length-1): new_sequence = rectangles[1:length].copy() new_sequence.append(rectangles[0]) neighbourhood.append(main.Data(new_sequence)) return neighbourhood
import random def void(): return random.choice(range(1, 10)) import main as wb if __name__ == '__main__': actors = wb.Data(wb.Actor(name="Pumpe 2", unit="time/on/off", get_f=void, do_f=void), wb.Actor(name="Pumpe 1", unit="on/off", get_f=void, do_f=void)) sensors = wb.Data(wb.Sensor(name="Regenmesser", unit="l", get_f=void), wb.Sensor(name="Feuchtigkeitssensor", unit="%", get_f=void)) data = wb.Data(sensors=sensors, actors=actors) # saves = wb.Data(file="saves.dbin") # saves._args = {} # rule1 = wb.Rule(sensor="Feuchtigkeitssensor 1", operator="sa", sensor_value="25", actor="Pumpe 1", actor_value="20") # rule2 = wb.Rule(sensor="Feuchtigkeitssensor 1", operator="la", sensor_value="20", actor="Pumpe 1",actor_value="230") # saves.config("rules", wb.Data(rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2, rule2)) # saves.config("rules", wb.Data()) # saves.save(file="saves.dbin") s = wb.Server(host="localhost", port=80, thread=True, data=data, file="saves.dbin") s.run()
import time import flask import main import json from flask import Response, render_template server = flask.Flask(__name__) tdata = main.Data() @server.route("/") def index(): global tdata return render_template("index.html") @server.route("/exec/<string:command>") def execc(command): return eval(command) @server.route("/.get/<path:path>/") def get(path): d = tdata for i in path.split("/"): try: d = d.config(int(i)) except ValueError: d = d.config(str(i)) return json.JSONEncoder().encode(d.toDict())