def set_up(time, r, b): global counter counter = 1 global finished finished = False swarm_group = swarm(r) box_group = boxes(b, swarm_group) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width, height) warehouse_map.gen() swarm_group.map = warehouse_map swarm_group.robot_iterate(box_group) box_group.box_iterate(swarm_group) while counter <= time: if finished == False: swarm_group.robot_iterate(box_group) if finished == False: box_group.box_iterate(swarm_group) if finished == True: return (1, counter) exit() sr = 0 for i in range(b): if box_group.delivered[i] == True: sr += 1 if sr > 0: sr = int(sr / b) return (sr, counter)
def set_up(time,r,b): #global counter #counter = 1 #global finished #finished = False swarm_group = swarm(r) box_group = boxes(b,swarm_group) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width,height) warehouse_map.gen() swarm_group.map = warehouse_map swarm_group.robot_iterate(box_group) box_group.box_iterate(swarm_group) while swarm_group.counter <= time: if False in box_group.delivered: swarm_group.robot_iterate(box_group) if False in box_group.delivered: box_group.box_iterate(swarm_group) if False not in box_group.delivered: print(box_group.box_times) return (1,swarm_group.counter) exit() sr = 0 print(box_group.box_times) for i in range(b): if box_group.delivered[i] == True: sr += 1 if sr > 0: sr = float(sr/b) return (sr,swarm_group.counter)
def set_up(time, r, b): global counter counter = 1 global finished finished = False num_agents = r num_boxes = b swarm_group = swarm(num_agents) box_group = boxes(num_boxes) swarm_group.gen_agents() box_group.check_for_boxes_set_up(swarm_group) box_group.check_for_boxes(swarm_group) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width, height) warehouse_map.gen() swarm_group.map = warehouse_map swarm_group.iterate(box_group) box_group.iterate(swarm_group) while counter <= time: swarm_group.iterate(box_group) box_group.iterate(swarm_group) if finished == True: return (1.0, counter) exit() sr = 0 for i in range(num_boxes): if box_group.delivered[i] == True: sr += 1 if sr > 0: sr = sr / num_boxes return (sr, counter)
def set_up(time, r, b): global counter counter = 1 global finished finished = False num_agents = r num_boxes = b swarm_group = swarm(num_agents) box_group = boxes(num_boxes) swarm_group.gen_agents() box_group.check_for_boxes_set_up(swarm_group) box_group.check_for_boxes(swarm_group) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width, height) warehouse_map.gen() swarm_group.map = warehouse_map swarm_group.robot_iterate(box_group) box_group.box_iterate(swarm_group) while counter <= time: swarm_group.robot_iterate(box_group) box_group.box_iterate(swarm_group) if finished == True: return counter exit() return time
def __init__(self,num_agents,anim,limit): self.num_agents = num_agents self.robots = swarm(self.num_agents) self.time = limit self.anim = anim self.counter = 0 warehouse_map = warehouse.map() warehouse_map.warehouse_map(width,height) warehouse_map.gen() self.robots.map = warehouse_map self.data_collect()
def __init__(self,num_agents,num_boxes,anim,limit): self.num_agents = num_agents self.num_boxes = num_boxes self.robots = swarm(self.num_agents) self.items = boxes(self.num_boxes,self.robots) self.time = limit self.anim = anim warehouse_map = warehouse.map() warehouse_map.warehouse_map(width,height) warehouse_map.gen() self.robots.map = warehouse_map self.data_collect()
def __init__(self, num_agents, anim, limit, vertical_value): self.num_agents = num_agents self.robots = swarm(self.num_agents) self.time = limit self.anim = anim self.counter = 0 self.new_square = square() self.absolute_value = vertical_value warehouse_map = warehouse.map() warehouse_map.warehouse_map(width, height) warehouse_map.gen() self.robots.map = warehouse_map self.data_collect()
def run(num_box): #n = int(sys.argv[1]) # num of robots #b = int(sys.argv[2]) # num of boxes b = num_box num_trials = 5 time_for_trial = 10000 time_taken_dict = {} for n in range(5,150,5): time_taken_dict[n] = time_for_trial for trial in range(num_trials): time_taken = 0. boxes_delivered = [] collecting_robot_numbers = [] box_to_collect_num = [] average_time = [] num_box_del = 0. swarm_group = swarm(n) box_group = boxes(b) this_swarm = swarm_group this_swarm.gen_agents() warehouse_map = warehouse.map() # call the warehouse script to generate the warehouse walls warehouse_map.warehouse_map(width,height) # create a warehouse of size width by height (as seen from bove). Width and height are both declared at the start of the code by the variables 'width' and 'height' warehouse_map.gen() # generates the wall obstacles and limits this_swarm.map = warehouse_map # declares the warhouse as the map that the swarm is in these_boxes = box_group these_boxes.check_for_boxes_set_up(this_swarm) these_boxes.check_for_boxes(this_swarm) for t in range(time_for_trial): this_swarm.iterate(these_boxes) num_box_delivered = these_boxes.iterate(this_swarm) num_box_del = num_box_delivered.count(True) if num_box_del == these_boxes.num_boxes: num_box_del = 0 average_time.append(t) break if t == time_for_trial-1 and num_box_del < these_boxes.num_boxes: average_time.append(time_for_trial) average_time.append(time_for_trial) time_a = np.median(average_time) time_taken_dict[n] = time_a boxes_delivered.append(num_box_del) #robot_dict[rob] = num_box_del return time_taken_dict
def set_up(time, r, b, p): swarm_group = swarm(r, p) box_group = boxes(b, swarm_group) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width, height) warehouse_map.gen() swarm_group.map = warehouse_map swarm_group.iterate(box_group) while swarm_group.counter <= time: swarm_group.iterate(box_group) if box_group.delivered == box_group.num_boxes: return (1, swarm_group.counter) exit() sr = box_group.delivered #print(box_group.box_times) if sr > 0: sr = float(sr / box_group.num_boxes) return (sr, swarm_group.counter)
def set_up(time, r, b): global counter counter = 1 global finished finished = False swarm_group = swarm(r) box_group = boxes(b, swarm_group) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width, height) warehouse_map.gen() swarm_group.map = warehouse_map swarm_group.robot_iterate(box_group) box_group.box_iterate(swarm_group) rob_positions_x = [] rob_positions_y = [] box_positions_x = [] box_positions_y = [] while counter <= time: if finished == False: swarm_group.robot_iterate(box_group) rob_positions_x.append(swarm_group.rob_c.T[0]) rob_positions_y.append(swarm_group.rob_c.T[1]) if finished == False: box_group.box_iterate(swarm_group) box_positions_x.append(box_group.box_c.T[0]) box_positions_y.append(box_group.box_c.T[1]) if finished == True: return (rob_positions_x, rob_positions_y, box_positions_x, box_positions_y) exit() return (rob_positions_x, rob_positions_y, box_positions_x, box_positions_y)
exit() sr = 0 print(box_group.box_times) for i in range(b): if box_group.delivered[i] == True: sr += 1 if sr > 0: sr = float(sr/b) return (sr,swarm_group.counter) if ani == True: swarm = swarm(num_agents) boxes = boxes(num_boxes,swarm) warehouse_map = warehouse.map() warehouse_map.warehouse_map(width,height) warehouse_map.gen() swarm.map = warehouse_map swarm.robot_iterate(boxes) boxes.box_iterate(swarm) fig = plt.figure() ax = plt.axes(xlim=(0, width), ylim=(0, height)) dot, = ax.plot([swarm.rob_c[i,0] for i in range(swarm.num_agents)],[swarm.rob_c[i,1] for i in range(num_agents)], 'ko', markersize = marker_size, fillstyle = 'none') box, = ax.plot([boxes.box_c[i,0] for i in range(boxes.num_boxes)],[boxes.box_c[i,1] for i in range(boxes.num_boxes)], 'rs', markersize = marker_size-5) seq, = ax.plot([boxes.box_c[0,0]],[boxes.box_c[0,1]],'ks',markersize = marker_size-5)