def _create_modify_network(self, net=None, step=1): """Helper method for creating new or modifying given network. Arguments: net (int): network to modify, if None create from scratch step: if >0 new network should be more dense for <0 less dense """ if net is None: net = Network(**self.kwargs) for _n in range(self.n_count): node = Node(commRange=self.comm_range, **self.kwargs) net.add_node(node) else: print "here2-" + str(step) if step>0: if len(net)<self.n_max: node = Node(**self.kwargs) net.add_node(node) logger.debug("Added node, number of nodes: %d (%d)" % (len(net), int(self.n_max))) elif not self.comm_range: for node in net.nodes(): node.commRange += step logger.debug("Increased commRange to %d" % node.commRange) else: return None else: print "here3-" + str(self.n_min) if len(net) > self.n_min and len(net) > 1: net.remove_node(net.nodes()[0]) logger.debug("Removed node, nodes left: %d" % len(net)) elif not self.comm_range: if abs(step) >= net.nodes()[0].commRange: step /= 4 for node in net: node.commRange += step logger.debug("Decreased commRange to %d" % net.nodes()[0].commRange) else: return None return net
net.adj = mst.adj net.show() from pymote.network import Network net = Network() node = net.add_node(pos=[200, 300]) node = net.add_node(pos=[300, 300]) node = net.add_node(pos=[100, 200]) node = net.add_node(pos=[400, 200]) node = net.add_node(pos=[200, 100]) node = net.add_node(pos=[300, 100]) a = Graph() a.add_edge(net.nodes()[0], net.nodes()[1], weight=1.1) a.add_edge(net.nodes()[0], net.nodes()[2], weight=1.7) a.add_edge(net.nodes()[0], net.nodes()[4], weight=2.6) a.add_edge(net.nodes()[1], net.nodes()[3], weight=3.1) a.add_edge(net.nodes()[2], net.nodes()[4], weight=3.8) a.add_edge(net.nodes()[3], net.nodes()[5], weight=3.7) a.add_edge(net.nodes()[4], net.nodes()[5], weight=2.1) net.adj = a.adj net.show() mst = minimum_spanning_tree(net) net.adj = mst.adj net.show() write_pickle(net, 'all.tar.gz')
write_pickle(net, 'allCasesBezAlg.tar.gz') """ ### Primjer mreze sa worst-case slučajem net = Network() node = net.add_node(pos=[100, 50]) node = net.add_node(pos=[150, 50]) node = net.add_node(pos=[100, 200]) node = net.add_node(pos=[400, 200]) node = net.add_node(pos=[250, 300]) node = net.add_node(pos=[350, 50]) g = Graph() g.add_edge(net.nodes()[0], net.nodes()[1], weight=0.5) g.add_edge(net.nodes()[1], net.nodes()[2], weight=1.414) g.add_edge(net.nodes()[1], net.nodes()[3], weight=2.414) g.add_edge(net.nodes()[1], net.nodes()[4], weight=3.414) g.add_edge(net.nodes()[1], net.nodes()[5], weight=4.414) g.add_edge(net.nodes()[2], net.nodes()[3], weight=1) g.add_edge(net.nodes()[3], net.nodes()[4], weight=2) g.add_edge(net.nodes()[4], net.nodes()[5], weight=3) g.add_edge(net.nodes()[2], net.nodes()[4], weight=2.5) g.add_edge(net.nodes()[2], net.nodes()[5], weight=3.66) g.add_edge(net.nodes()[3], net.nodes()[5], weight=3.33) net.adj = g.adj