def main(args): g = generate(args.nodes, args.edges, True) while not find_cycle(g): g = generate(args.nodes, args.edges, True) with open(args.output, 'w') as f: f.write(write(g))
def main(): global dg2 while find_cycle(dg2): dg2 = generate(8,10,directed=True) sweep() print dg2 print toporder
def main(): global dg2 while find_cycle(dg2): dg2 = generate(8, 10, directed=True) sweep() print dg2 print toporder
def old_steels_uniwersal_basic_experiment(num_iter, agents, stimuli, interaction, classifier = SteelsClassifier, topology = None, inc_category_treshold = None, dump_freq = 50): sys.path.append("../") from cog_abm.core.agent import Agent from cog_abm.agent.sensor import SimpleSensor from pygraph.classes.graph import graph from pygraph.algorithms.generators import generate from cog_abm.core.environment import Environment from cog_abm.stimuli.stimulus import SimpleStimulus from cog_abm.extras.color import Color from cog_abm.core.simulation import Simulation num_agents = len(agents) topology = def_value(topology, generate(num_agents, num_agents*(num_agents-1)/2)) stimuli = def_value(stimuli, default_stimuli()) if inc_category_treshold is not None: interaction.__class__.def_inc_category_treshold = inc_category_treshold env = Environment(stimuli, True) Simulation.global_environment = env s = Simulation(topology, interaction, agents) res = s.run(num_iter, dump_freq) return res
def graphgen(grnodes): """Initialises the graph. Ensures that all nodes in the graph are connected. Creates an image called graph.png which represents the graph. """ graph = generate(grnodes, int(1.2*grnodes), directed=False, weight_range=(1, 1)) # Makes sure graphs generated by generate() have all their nodes connected. while len(shortest_path(graph, 0)[1]) < grnodes: graph = generate(grnodes, int(1.2*grnodes), directed=False, weight_range=(1, 1)) # print len(shortest_path(graph, 0)[1]) # Draw as PNG dot = write(graph) gvv = gv.readstring(dot) gv.layout(gvv, 'dot') gv.render(gvv, 'png', 'graph.png') return graph
def generate_simple_network(agents): n = len(agents) network = Network(generate(n, n * (n - 1) // 2, directed=False)) for i, a in enumerate(agents): network.add_agent(a, i) # network.add_agent(a, i, a) # network.add_agent(a, i, str(i)) return network
def steels_uniwersal_basic_experiment(num_iter, agents, environments, interaction, classifier=SteelsClassifier, topology=None, inc_category_treshold=None, dump_freq=50, stimuli=None): from cog_abm.core import Environment, Simulation from cog_abm.core.environment import RandomStimuliChooser from pygraph.algorithms.generators import generate num_agents = len(agents) topology = def_value( topology, generate(num_agents, num_agents * (num_agents - 1) / 2)) # if stimuli == None: # stimuli = def_value(None, default_stimuli()) if inc_category_treshold is not None: interaction.__class__.def_inc_category_treshold = inc_category_treshold chooser = RandomStimuliChooser(use_distance=True, distance=50.) env = Environment(stimuli, chooser) for key in environments.keys(): Simulation.environments[key] =\ Environment(environments[key].stimuli, chooser) #TODO: think about this all... glob = Simulation.environments["global"] Simulation.global_environment = def_value(glob, env) s = Simulation(topology, interaction, agents) res = s.run(num_iter, dump_freq) # import pprint # print pprint.pprint(error_counter) try: # s = sum(error_counter.values()) # for k,v in error_counter.iteritems(): # print "%s: %s" % (k, float(v)/s) for a in agents: print "[%s]:%s" % (len( a.state.lexicon.known_words()), a.state.lexicon.known_words()) print "OK" except: pass return res
def steels_uniwersal_basic_experiment(num_iter, agents, environments, interaction, classifier=SteelsClassifier, topology=None, inc_category_treshold=None, dump_freq=50, stimuli=None): from cog_abm.core import Environment, Simulation from cog_abm.core.environment import RandomStimuliChooser from pygraph.algorithms.generators import generate num_agents = len(agents) topology = def_value(topology, generate(num_agents, num_agents*(num_agents-1)/2)) # if stimuli == None: # stimuli = def_value(None, default_stimuli()) if inc_category_treshold is not None: interaction.__class__.def_inc_category_treshold = inc_category_treshold chooser = RandomStimuliChooser(use_distance=True, distance=50.) env = Environment(stimuli, chooser) for key in environments.keys(): Simulation.environments[key] =\ Environment(environments[key].stimuli, chooser) #TODO: think about this all... glob = Simulation.environments["global"] Simulation.global_environment = def_value(glob , env) s = Simulation(topology, interaction, agents) res = s.run(num_iter, dump_freq) # import pprint # print pprint.pprint(error_counter) try: # s = sum(error_counter.values()) # for k,v in error_counter.iteritems(): # print "%s: %s" % (k, float(v)/s) for a in agents: print "[%s]:%s" % (len(a.state.lexicon.known_words()), a.state.lexicon.known_words()) print "OK" except: pass return res
def test_bfs(bfs_func, min_size, max_size, iterations=100): ns = [] ts = [] for n in range(min_size, max_size, 100): ns.append(n) # Use random generation function from python-graph package g = generate(n, n) search_vertex = g.nodes()[0] # Actual BFS starts here start = etime() # Running the function only once was giving a time of 0 # most of the time, loop it a few times to get a meaningful # result for i in range(iterations): bfs_func(search_vertex, dummy_visit, g) end = etime() # ANd ends here search_time = end - start ts.append(search_time) return {'sizes': ns, 'times': ts}
def steels_uniwersal_basic_experiment(num_iter, agents, environments, interaction, classifier = SteelsClassifier, topology = None, inc_category_treshold = None, dump_freq = 50, stimuli = None): sys.path.append("../") from cog_abm.core.agent import Agent from cog_abm.agent.sensor import SimpleSensor from pygraph.classes.graph import graph from pygraph.algorithms.generators import generate from cog_abm.core.environment import Environment from cog_abm.stimuli.stimulus import SimpleStimulus from cog_abm.extras.color import Color from cog_abm.core.simulation import Simulation num_agents = len(agents) topology = def_value(topology, generate(num_agents, num_agents*(num_agents-1)/2)) if stimuli == None: stimuli = def_value(None, default_stimuli()) if inc_category_treshold is not None: interaction.__class__.def_inc_category_treshold = inc_category_treshold env = Environment(stimuli, True) for key in environments.keys(): Simulation.environments[key] = Environment(environments[key].stimuli, True) #bez sensu... if "global" in environments: glob = Environment([SimpleStimulus(c) for c in environments["global"].stimuli], True) else: glob = None Simulation.global_environment = def_value(glob , env) s = Simulation(topology, interaction, agents) res = s.run(num_iter, dump_freq) return res
import pygraph.algorithms.generators as gen import pygraph.algorithms.accessibility as acc import pygraph.algorithms.minmax as minmax graph = gen.generate(5000, 10000, weight_range=(50, 2000)) components = acc.connected_components(graph) nodes = [g for g in graph if components[g] == 1] print "GRAPH NODES" for n in graph.nodes(): print n print "GRAPH EDGES" for e in graph.edges(): if components[e[0]] == 1: w = graph.edge_weight(e) print(e[0], e[1], w) # MST = minmax.minimal_spanning_tree(graph) # print "MST NODES" # for n in MST.keys(): # print n # print "MST EDGES" # for k in MST.keys(): # if MST[k] is not None: # print "(%d, %d)" % (k, MST[k]) # else: # print "(%d, %d)" % (k, k)
def new_digraph(wt_range=(1, 1)): seed(random_seed) return generate(num_nodes[use_size], num_edges[use_size], directed=True, weight_range=wt_range)
from pygraph.classes.digraph import digraph from pygraph.algorithms.searching import depth_first_search from pygraph.algorithms.generators import generate from pygraph.algorithms.cycles import find_cycle from mytranverse import tranverse dg2 = generate(8, 10, directed=True) node_status = dict() node_par = dict() toporder = [] def sweep(): global node_status global node_par global dg2 node_list = dg2.nodes() for node in node_list: node_status[node] = 'white' for node in node_list: if (node_status[node] == 'white'): node_par[node] = 'none' dfs(node) def dfs(vnode): global node_status global node_par global dg2 for node in dg2.neighbors(vnode): if (node_status[node] == 'white'):
import pygraph.algorithms.generators as gen import pygraph.algorithms.accessibility as acc import pygraph.algorithms.minmax as minmax graph = gen.generate(5000, 10000, weight_range=(50, 2000)) components = acc.connected_components(graph) nodes = [g for g in graph if components[g] == 1] print "GRAPH NODES" for n in graph.nodes(): print n print "GRAPH EDGES" for e in graph.edges(): if components[e[0]] == 1: w = graph.edge_weight(e) print (e[0], e[1], w) # MST = minmax.minimal_spanning_tree(graph) # print "MST NODES" # for n in MST.keys(): # print n # print "MST EDGES" # for k in MST.keys(): # if MST[k] is not None: # print "(%d, %d)" % (k, MST[k]) # else: # print "(%d, %d)" % (k, k)
def makeTestGraph(self): G = self.test_class() log.warn("Generating %s with random seed: %i" % ( self.test_class, self.randomseed ) ) random.seed( self.randomseed ) generate(G, self.graph_order, self.edge_count) return G
import pygraph.algorithms.generators as Gen import random n = random.randint(10, 1000) g = Gen.generate(n, n, True) for e in g.edges(): src, dest = e print src, dest
#!/usr/bin/env python """ This script requires python-graph package from https://code.google.com/p/python-graph/ """ import random import sys import pygraph.algorithms.generators as generator if (len(sys.argv) != 3): print "./%s num_vertex num_edge" % (sys.argv[0]) sys.exit() num_vertex = int(sys.argv[1]) num_edge = int(sys.argv[2]) g = generator.generate(num_vertex, num_edge, directed=False, weight_range=(1,100)) edge_list = g.edges() with open("sample.graph", 'wb') as f: f.write("%d\n"%num_vertex) for x,y in edge_list: w = random.random() * 100 f.write("%d %d %f\n" % (x, y, w))
from pygraph.classes.digraph import digraph from pygraph.algorithms.searching import depth_first_search from pygraph.algorithms.generators import generate from mytranverse import tranverse dg2 = generate(8,15,directed=True) node_status = dict() node_par = dict() def sweep(): global node_status global node_par global dg2 node_list = dg2.nodes() for node in node_list: node_status[node] = 'white' for node in node_list: if(node_status[node] == 'white'): node_par[node] = 'none' dfs(node) def dfs(vnode): global node_status global node_par global dg2 for node in dg2.neighbors(vnode): if(node_status[node] == 'white'): node_status[node] = 'grey' node_par[node] = vnode dfs(node) node_status[vnode] = 'black'
def new_dict_digraph(): seed(random_seed) G1 = generate(num_nodes[use_size], num_edges[use_size], directed=True) G2 = dict_digraph() G2.add_graph(G1) return G2
def new_digraph(): seed(random_seed) return generate(num_nodes[use_size], num_edges[use_size], directed=True)
def generate_clique_graph(n): return generate(n, n * (n - 1) // 2, directed=False)
def new_graph(): seed(random_seed) return generate(num_nodes[use_size], num_edges[use_size])