Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
def main():
    global dg2
    while find_cycle(dg2):
        dg2 = generate(8,10,directed=True)
    sweep()
    print dg2
    print toporder
Ejemplo n.º 3
0
def main():
    global dg2
    while find_cycle(dg2):
        dg2 = generate(8, 10, directed=True)
    sweep()
    print dg2
    print toporder
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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}
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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)
Ejemplo n.º 14
0
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'):
Ejemplo n.º 15
0
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)

Ejemplo n.º 16
0
 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
Ejemplo n.º 17
0
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
Ejemplo n.º 18
0
#!/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))
Ejemplo n.º 19
0
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'
Ejemplo n.º 20
0
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
Ejemplo n.º 21
0
def new_digraph():
    seed(random_seed)
    return generate(num_nodes[use_size], num_edges[use_size], directed=True)
Ejemplo n.º 22
0
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)
Ejemplo n.º 23
0
def generate_clique_graph(n):
    return generate(n, n * (n - 1) // 2, directed=False)
Ejemplo n.º 24
0
def new_graph():
    seed(random_seed)
    return generate(num_nodes[use_size], num_edges[use_size])