Exemplo n.º 1
0
def gen_for_start_end():
	workflow = []
	for i in [1-n for n in range(0,2)]: #10 tasks
		service_list = []
		for j in [9-n for n in range(0,10)]: #each task have 10 services
			QoS = [uniform(0,1) for k in range(10)]
			if i >= 1:
				service_list = [service(str(j),QoS,[],[])] + service_list
			else:
				selected = sorted(random_choice(range(10)))
				next_service_list = []
				for pp in selected:
					next_service_list.append(workflow[0][pp])
				service_list = [service(str(j),QoS,next_service_list,selected)] + service_list
		workflow = [service_list] + workflow
	return workflow
Exemplo n.º 2
0
			sers.sort(key = lambda service: service.sum) #按照Qsum从小到大排列
			ser = sers[-1] #选择Qsum大的当代表
			ser_task_down = []
			for pp in fin: #pp is node
				if issub(ser.next_number , pp.next_number):#计算从属关系
					ser_task_down.append(pp)
			fin = fin + [node(sers,ser_task_down,str(len(fin)))]

	return fin

if __name__ == "__main__":
	workflow = gen()
#-----------add-------------
	node_map = map(lambda x: gen_node_list(x),workflow)
#---------------------------
	start = sorted(random_choice(range(10)))
	end = sorted(random_choice(range(10)))
	print start,end


	for index in start:
		start_service = workflow[0][index]
		test = route([start_service],start_service.sum)
		test.adapt_dfs_search(end,node_map)
		print count

	print best
	if best_route != None: 
		best_route.printf()