Beispiel #1
0
    def save_net(self, *args):
        
        if self.fname != 0 :
            start = self.fname
        else:
            default_filetype = 'gz'
            start = datetime.now().strftime('%Y%m%d.tar.') + default_filetype

        filters = ['Network pickle (*.gz), (*.tar.gz)', 'All files (*)']
        selectedFilter = 'Network pickle (*.gz), (*.tar.gz)'
        filters = ';;'.join(filters)
                
        fname = QFileDialog.getSaveFileName(
            self, "Choose a filename", start, filters, selectedFilter)
        
        if fname:
            try:
                #print ("save " + fname)
                self.net = self.scene.get_net()
                write_pickle(self.net, str(fname))
            except Exception as e:
                #print ("Error saving file %s" % str(e)),
                QMessageBox.critical(
                    self, "Error saving file", str(e),
                    QMessageBox.Ok, QMessageBox.NoButton)
def test_network():

    algorithmList = [traversal.DF_STAR, traversal.DFT]

    for algorithm in algorithmList:
        networks = [one_node(), line(), triangle(), small_random(), medium_random(), big_random(), square(), square_x(),
                   my_random(), tree()]

        for net in networks:
            net.algorithms = (algorithm, )
            sim = Simulation(net)
            try:
                sim.run()
            except Exception, e:
                import pdb
                pdb.set_trace()
                write_pickle(net, 'net_exception.npc.gz')
                raise e

            for node in net.nodes():
                try:
                    assert node.status == 'DONE'
                    assert len(node.memory['unvisitedNodes']) == 0
                except AssertionError:
                    write_pickle(net, 'net_assertion_error.npc.gz')
 def run_test(self):
     self.net.algorithms = (self.algorithm,)
     self.sim = Simulation(self.net)
     try:
         self.sim.run()
     except Exception, e:
         write_pickle(self.net, "{}_{}_exception.npc.gz".format(self.algorithm.__class__.__name__, self.test_name))
         pdb.set_trace()
         traceback.print_exc(file=sys.stdout)
         raise e
def test_network():
	net = node_network()
	net.algorithms = (DFstar, )
        net.nodes()[0].memory['I']= 'information'
	sim = Simulation(net)

	try:
		sim.run()
	except Exception, e:
		write_pickle(net, 'net_exception.npc.gz')
		raise e
def test_network():
    algorithmsList = [dfstar.DFStar, traversal.DFT]
    for algorithm in algorithmsList:
        netList = [network1(), network2(), network3(), network4(), network5(), network6(), network7(), network8(),
                   network9(), network10()]
        for net in netList:
            net.algorithms = (algorithm, )
            sim = Simulation(net)
            try:
                sim.run()
            except Exception, e:
                import pdb; pdb.set_trace()
                write_pickle(net, 'net_exception.npc.gz')
                raise e

            for node in net.nodes():
                try:
                    assert node.status == 'DONE'
                    assert len(node.memory['unvisitedNodes']) == 0
                except AssertionError:
                    write_pickle(net, 'net_assertion_error.npc.gz')
Beispiel #6
0
from pymote.algorithms.KVM.MinHopRouting import MinHopRouting
from pymote.networkgenerator import NetworkGenerator
from pymote.npickle import write_pickle
from pymote.simulation import Simulation
from pymote.network import Network
import networkx as nx

#generate random network
net_gen = NetworkGenerator(15)
net = net_gen.generate_random_network()
#add MinHopRouting algorithm and show the network
net.algorithms = (MinHopRouting,)
net.show()

#write network to file
write_pickle(net, 'minMreza.tar.gz')

#start simulation
sim = Simulation(net)
sim.run()

#after simulation write node memory and status
print "\n"
for node in net.nodes():
    print node.id, node.memory, node.status
    print str(len(node.memory['routingTable']))
    print " "
#sim.reset()

#initialize tmp routing list, set error counter to 0
tmpPathList = []
from pymote.algorithms.KVM.MinHopRouting import MinHopRouting
from pymote.networkgenerator import NetworkGenerator
from pymote.npickle import write_pickle
from pymote.simulation import Simulation
from pymote.network import Network
import networkx as nx
import random

#generiraj random mrezu, dodaj PTConstruction algoritam i prikazi mrezu
net_gen = NetworkGenerator(6)
net = net_gen.generate_random_network()
net.algorithms = (MinHopRouting,)
net.show()

#zapisi mrezu
write_pickle(net, 'pt_mreza3.tar.gz')

#pokreni simulaciju
sim = Simulation(net)
sim.run()

#kad se simulacija zavrsi, prikazi id, memoriju i status svakog svora
print "\n"
for node in net.nodes():
    print node.id, node.memory, node.status
    print " "
#sim.reset()


#inicijaliziraj tmp routing listu, i postavi brojac greski na 0
tmpPathList = []
from pymote.simulation import Simulation
from networkx import draw, Graph,  draw_networkx_edges, draw_networkx_edge_labels, get_node_attributes
from pylab import show, figure
import random


#from pymote.algorithms.turk2018.megamerge_p import MegaMerger
from pymote.algorithms.turk2018.megamerge import MegaMerger

test_net = net = read_pickle('RandomBezAlg.tar.gz')
#test_net = net = read_pickle('WorstCaseBezAlg.tar.gz')
net.show()


net.algorithms = (MegaMerger,)
write_pickle(net, 'RandomSAlg.tar.gz')
#write_pickle(net, 'WorstCaseSAlg.tar.gz')
##s ovom mrezom pokretati GUI simulator

g = Graph()
g.adj=net.adj

#Uses Kruskal’s algorithm.
#If the graph edges do not have a weight attribute 
#a default weight of 1 will be used.
#test_graph = minimum_spanning_tree(net)
test_graph=prim_mst(net)
test_net.adj=test_graph.adj
test_net.show()
test_sum= test_net.size(weight='weight')
from pymote.algorithms.BuildTree import BuildTree
from pymote.algorithms.Saturation import Saturation

from pymote.algorithms.broadcast import Flood
from pymote.networkgenerator import NetworkGenerator
from pymote.simulation import Simulation

from pymote.npickle import write_pickle

net_gen = NetworkGenerator(5)

net = net_gen.generate_random_network()
net.algorithms = ((BuildTree, {'informationKey': 'I'}), (Saturation, {}))
net.nodes()[0].memory['I'] = "Koja je tvoja temperatura?"

net.show()

write_pickle(net, 'sat_mreza.tar.gz')

sim = Simulation(net)
sim.run()

for node in net.nodes():
    print node.id, node.memory, node.status

#sim.reset()
print "\nDone script."
from pymote import NetworkGenerator
from pymote.npickle import read_pickle, write_pickle
from networkx import minimum_spanning_tree
#from pymote.algorithms.MegaMeger import MegaMerger
from pymote.algorithms.turk2018.megamerge_p import MegaMerger
from pymote.simulation import Simulation
from networkx import draw, Graph
from pylab import show

net = read_pickle("poslati.txt")
write_pickle(net, 'bezAlg.tar.gz')

#net.algorithms = (MegaMerger,)
#write_pickle(net, 'saAlg.txt')

g = Graph()
g.add_edge(net.nodes()[0], net.nodes()[1], weight=1)
g.add_edge(net.nodes()[0], net.nodes()[2], weight=2)
g.add_edge(net.nodes()[0], net.nodes()[5], weight=3)
g.add_edge(net.nodes()[2], net.nodes()[6], weight=4)
g.add_edge(net.nodes()[3], net.nodes()[5], weight=5)
g.add_edge(net.nodes()[4], net.nodes()[6], weight=6)
g.add_edge(net.nodes()[6], net.nodes()[7], weight=7)

#dodatni, da naprave razliku
g.add_edge(net.nodes()[3], net.nodes()[4], weight=8)
g.add_edge(net.nodes()[5], net.nodes()[7], weight=9)
g.add_edge(net.nodes()[1], net.nodes()[2], weight=10)

#draw(g)
#show()
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
net.show()
write_pickle(net, 'WorstCaseBezAlg.tar.gz')

#nacrtaj s težinama,
#pozicija nodova nije uredu?! Kako izvući poziciju?

pos = spring_layout(net.pos)
#pos=get_node_attributes(g,net.pos)
figure(2)
#draw(g,pos)
# specifiy edge labels explicitly
edge_labels = dict([((
    u,
    v,
), d['weight']) for u, v, d in g.edges(data=True)])
#pos=net.pos #Ako pos nije izvuceno iz net.pos rasporede se tako da se bolje vide
draw_networkx_nodes(g, pos=net.pos, node_size=500)