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