def test_pack_size(self): pack = Pack() stickers = pack.open() pack_size = len(stickers) self.assertEqual(pack_size, 5)
def get_event(self): ''' bit位 开关名称 0 出水开关 1 电源开关 2 加热开关 3 制冷开关 4 臭氧开关 # 汇报设备动态 A3-B3 :return: ''' self.boby_A3 = collections.OrderedDict() self.boby_A3['evc'] = 101 # 事件类型编码 self.boby_A3['val'] = 1 # 事件参数 self.boby_A3['evt'] = '' # 事件详情 self.boby_A3['now'] = standard_time() # 当前时间 self.boby_A3['sw'] = 1 << 0 # 开关位,int self.boby_A3['fpA'] = random.randrange(30, 90) # 滤芯A状态(滤芯百分比) self.boby_A3['fpB'] = random.randrange(30, 90) # 滤芯B状态(滤芯百分比) self.boby_A3['fpC'] = random.randrange(30, 90) # 滤芯C状态(滤芯百分比) self.boby_A3['td2'] = random.randrange(50, 254) # TDS2 self.boby_A3['td1'] = random.randrange(50, 254) # TDS1 self.boby_A3['wsr'] = random.randrange(30, 40) # 节水比率 self.boby_A3['ect'] = random.randrange(5, 15) # 错误数量 self.boby_A3['flg'] = 1 << 1 # 错误旗标 self.boby_A3['dnt'] = random.randrange(60, 254) # 断网时长(秒) self.boby_A3['int'] = random.randrange(5, 15) # 进水次数(Inlet Counter) self.boby_A3['tnt'] = random.randrange(5, 15) # 累计用水量(##单位:公升) self.boby_A3['sgt'] = random.randrange(20, 60) # 基站信号数量,信号强度 head_A3 = self.get_head(msg_id='A3') return Pack(head_A3, self.boby_A3).get_msg()
def main(argv): input_dir = argv[1] output_dir = argv[2] for file_name in os.listdir(input_dir): input_path = os.path.join(input_dir, file_name) with open(input_path, 'r', encoding='utf-8', errors='ignore') as f: message_str = f.read() pack = Pack(message_str, output_path=output_dir) pack.run()
def predict(self, batches, batch_i): texts = batches.get_data(self.texts, batch_i) text_pack = Pack(texts, cuda=True) images = batches.get_data(self.posters, batch_i) images = torch.autograd.Variable(torch.from_numpy(images)).cuda() encodings = self.encoder(text_pack, images) encodings = torch.cat(encodings, dim=1) return self.classifier(encodings)
def get_register(self): boby = { 'phone': '15989453055', 'password': '******', 'model': self.model, 'mainFirm': self.mainFirm, 'ctrlFirm': self.ctrlFirm, 'gsmFirm': self.gsmFirm, 'proVer': self.proVer } head_A101 = self.get_head(msg_id='A101') return Pack(head_A101, boby).get_msg()
def main(argv): input_dir = argv[1] output_dir = argv[2] for file_name in os.listdir(input_dir): print("The order ", file_name, " is processing...") input_path = os.path.join(input_dir, file_name) with open(input_path, 'r', encoding='utf-8', errors='ignore') as f: message_str = f.read() order = Order(message_str) mypack_obj = mypack.Pack(order) hwpack_obj = Pack(message_str, mypack_obj=mypack_obj) route = Routing(order, pack_obj=hwpack_obj) nondominated_sol_listlist = route.population_global_search2(1400, 7) for sol_list in nondominated_sol_listlist: route.res["solutionArray"].append(route.sol_2_trucklist_Dict[''.join([str(x) for x in sol_list])]) route.save_sols(output_dir) print("The order ", file_name, " is done.")
def get_devdynamic(self): # 汇报设备动态 A5-B5 self.boby_A5 = collections.OrderedDict() self.boby_A5['now'] = standard_time() # 当前时间 self.boby_A5['sw'] = 1 << 0 # 开关位,int self.boby_A5['fpA'] = random.randrange(30, 50) # 滤芯A状态(滤芯百分比) self.boby_A5['fpB'] = random.randrange(30, 50) # 滤芯B状态(滤芯百分比) self.boby_A5['fpC'] = random.randrange(30, 50) # 滤芯C状态(滤芯百分比) self.boby_A5['td2'] = random.randrange(10, 20) # TDS2 self.boby_A5['td1'] = random.randrange(80, 100) # TDS1 self.boby_A5['wsr'] = random.randrange(30, 40) # 节水比率 self.boby_A5['ect'] = random.randrange(5, 15) # 错误数量 self.boby_A5['flg'] = 1 << 1 # 错误旗标 self.boby_A5['dnt'] = random.randrange(60, 254) # 断网时长(秒) self.boby_A5['int'] = random.randrange(5, 15) # 进水次数(Inlet Counter) self.boby_A5['tnt'] = random.randrange(5, 15) # 累计用水量(##单位:公升) self.boby_A5['sgt'] = random.randrange(1, 31) # 基站信号数量,信号强度 head_A5 = self.get_head(msg_id='A5') print('boby_A5 = {0}'.format(self.boby_A5)) return Pack(head_A5, self.boby_A5).get_msg()
def split_pack(p): len_new_pack = ceil(len(p.wolves)/2) new_packs = [Pack(p.wolves[0:len_new_pack]), Pack(p.wolves[len_new_pack:len(p.wolves)])] return new_packs
from album import Album from pack import Pack opened_number = [] for number_of_test in range(10): album = Album() pack = Pack() opened_packs = 0 album_report = album.get_report() missing = album_report['missing'] while missing > 50: album.insert_sticker(pack.open()) album_report = album.get_report() missing = album_report['missing'] opened_packs += 1 report = album.get_report() opened_number.append(opened_packs) print('album processed {}'.format(number_of_test + 1)) print('min number of packs {}'.format(min(opened_number))) print('max number of packs {}'.format(max(opened_number))) print('mean of packs {}'.format(sum(opened_number) / 10))
def main(argv): # input_dir = argv[1] input_dir = 'data/inputs' # output_dir = argv[2] output_dir = 'data/outputs' antNum = 20 #蚂蚁数量,有多少只蚂蚁就会返回多少个路径 # iterTime = 30 for file_name in os.listdir(input_dir): pack_time = 0 #调用pack的次数 #代表一个实例 begin_time = time() end_time = time() solution = [] #存放所有非支配解 resultArray = [] #存放所有解的目标值 gen = 0 #迭代次数 input_path = os.path.join(input_dir, file_name) with open(input_path, 'r', encoding='utf-8', errors='ignore') as f: message_str = f.read() pack = Pack(message_str, output_path=output_dir) pack_time += 1 #数据中的节点数量 numOfNode = len(pack.data['algorithmBaseParamDto']['platformDtoList']) #数据中的卡车 truck = pack.data['algorithmBaseParamDto']['truckTypeDtoList'] truckOfNum = len(truck) distanceInfo = handleDist( pack.data['algorithmBaseParamDto']['distanceMap'], numOfNode) distanceMat = distanceInfo['distanceMat'] platformOrder = distanceInfo['platformOrder'] allBox = copy.deepcopy(pack.box_list) #获取需要装箱的盒子 #track1 # while pack_time<2000 and (end_time - begin_time)<420: #track2 while (end_time - begin_time) < 130: #确认是否有需要优先的平台,不确定是否有几个 needFirst = [] for item in pack.data['algorithmBaseParamDto']['platformDtoList']: if item['mustFirst'] == True: needFirst.append( platformOrder.index( int(re.findall("\d+", item['platformCode'])[0]))) updataPath = 0 #每隔10代重新求一次路径,返回的是platformOrder的索引节点 if gen < 30 and gen % 5 == 0: bestPath = antLoad(numOfNode + 2, distanceMat, antNum, gen % 5 + 1, needFirst) updataPath = 1 elif gen % 20 == 0: #返回多条路径,但是很可能包含相同,path表示路径,length表示长度 bestPath = antLoad(numOfNode + 2, distanceMat, antNum, random.randint(10, 30), needFirst) updataPath = 1 if updataPath == 1: #将path组转成参数所需要的格式 ['platform04','platform05'] routes = [] for k in range(len(bestPath['path'])): oneAnt = [] for j in range(len(bestPath['path'][k]) - 1): if j != 0: if platformOrder[bestPath['path'][k, j]] < 10: platform = 'platform0' + str( platformOrder[bestPath['path'][k, j]]) else: platform = 'platform' + str( platformOrder[bestPath['path'][k, j]]) oneAnt.append(platform) routes.append(oneAnt) #还未装载的盒子,这里需要使用深度拷贝 restBox = copy.deepcopy(allBox) res = [] while len(restBox) != 0: #所有能使用的车辆编号,range不包括最后truckOfNum canUseTruck = list(range(truckOfNum)) #随机选择一种类型的卡车 chose_truck = random.randint(0, truckOfNum - 1) #随机选择一条路径 chose_path = random.randint(0, len(routes) - 1) old_path = copy.deepcopy(routes[chose_path]) #如果货物中已经有盒子超过了货车的大小,则不能再选择此种货车 box_id = [] for box in restBox: box_id.append(box.box_id) onePack = Pack(message_str, spu_ids=box_id, truck_code=truck[chose_truck]['truckTypeCode'], route=[routes[chose_path]], output_path=output_dir) one = onePack.run() pack_time += 1 #如果打包成功 if one: #检查一下路径是否符合要求 if needFirst: for node in range(len(one['platformArray'])): if node != 0: if platformOrder.index( int( re.findall( "\d+", one['platformArray'] [node])[0])) in needFirst: #去掉不符合规则的那个平台,然后重新计算 old_path.remove(one['platformArray'][node]) onePack = Pack( message_str, spu_ids=box_id, truck_code=truck[chose_truck] ['truckTypeCode'], route=[old_path], output_path=output_dir) one = onePack.run() pack_time += 1 break res.append(one) #去掉已经装载的箱子 for loadBox in one['spuArray']: for box in restBox: if box.box_id == loadBox['spuId']: restBox.remove(box) #计算这个方案的装载率和运输距离 result = calResult(res, distanceMat, numOfNode + 2, platformOrder) resultArray.append(result) solution.append(res) gen += 1 end_time = time() print('result:', result) #迭代完成之后去掉一些重复解 new_resultArr = [] new_solution = [] for no_repeat in resultArray: if no_repeat not in new_resultArr: new_resultArr.append(no_repeat) new_solution.append(solution[resultArray.index(no_repeat)]) #迭代完成之后去掉一些支配解 obj_arr = np.array(new_resultArr) paretoIndex = NDSort(obj_arr.shape[0], obj_arr) paretoIndex.fast_non_dominate_sort() paretoIndex.crowd_distance() #保存第一层的解 temp_solution = [] temp_obj = [] for i in paretoIndex.f[0]: temp_solution.append(new_solution[i]) temp_obj.append(obj_arr[i]) print('finally result:', temp_obj) estimateCode = pack.data['estimateCode'] reserveResult(output_dir, estimateCode, temp_solution, file_name)
from sys import exit, argv from PyQt5.QtWidgets import QApplication from ui import UI from pack import Pack pack = Pack(512, 512, False) pack.insert(256, 256) pack.insert(128, 128) pack.insert(64, 64) pack.insert(32, 32) pack.insert(16, 16) pack.insert(8, 8) pack.insert(4, 4) pack.insert(2, 2) pack.insert(100, 100) pack.insert(200, 50) pack.insert(400, 25) pack.insert(50, 200) pack.insert(25, 400) pack.insert(100, 100) pack.insert(200, 50) pack.insert(400, 25) pack.insert(50, 200) pack.insert(25, 400) app = QApplication(argv) ui = UI(pack) ui.show() exit(app.exec_())
def get_sign(self): boby = {'authCode': self.authCode} head_A2 = self.get_head(msg_id='A2') return Pack(head_A2, boby).get_msg()
def get_WaterMachine_update_reponse(self, res_boby): # 获取水机响应平台固件更新 C22-D22 boby = res_boby head_D22 = self.get_head(msg_id='D22') return Pack(head_D22, boby).get_msg()
def get_gsm_update_reponse(self, res_boby): # 获取gsm响应平台固件更新 C21-D21 boby = res_boby head_D21 = self.get_head(msg_id='D21') return Pack(head_D21, boby).get_msg()
def get_gsmpara_reponse(self, res_boby): # 获取gsm参数设置响应 C11-D11 boby = res_boby head_D11 = self.get_head(msg_id='D11') return Pack(head_D11, boby).get_msg()
def get_setmeal_reponse(self, res_boby): # 获取套餐响应 C17-D17 boby = res_boby head_D17 = self.get_head(msg_id='D17') return Pack(head_D17, boby).get_msg()
def setUp(self): self.pack = Pack()
def predict(self, batches, batch_i): texts = batches.get_data(self.texts, batch_i) text_pack = Pack(texts, cuda=True) return self.classifier(self.encoder(text_pack))
def get_hat(self): boby = {'hatMsg': 'hello'} head_A7 = self.get_head(msg_id='A7') return Pack(head_A7, boby).get_msg()