コード例 #1
0
ファイル: run_system_debug.py プロジェクト: proroka/diversity
# -----------------------------------------------------------------------------#
# initialize graph

if not load_data:
    graph = nx.connected_watts_strogatz_graph(num_nodes, 3, 0.7)
else:
    graph = pickle.load(open(load_prefix+"graph.p", "rb"))

# get the adjencency matrix
adjacency_m = nx.to_numpy_matrix(graph)
adjacency_m = np.squeeze(np.asarray(adjacency_m))

if plot_graph:
    plt.axis('equal')
    fig1 = nxmod.draw_circular(deploy_traits_init, graph,linewidths=3)
    plt.show()
    plt.axis('equal')
    fig2  = nxmod.draw_circular(deploy_traits_desired, graph, linewidths=3)
    plt.show()



# -----------------------------------------------------------------------------#
# optimization


num_timesteps = int(t_max_sim / delta_t)

traj_ratio = {}
コード例 #2
0
deploy_traits_init_0 = pickle.load(open(prefix+"ti_0.p", "rb"))
deploy_traits_desired_0 = pickle.load(open(prefix+"td_0.p", "rb"))

deploy_traits_init_1 = pickle.load(open(prefix+"ti_1.p", "rb"))
deploy_traits_desired_1 = pickle.load(open(prefix+"td_1.p", "rb"))

deploy_traits_init_2 = pickle.load(open(prefix+"ti_2.p", "rb"))
deploy_traits_desired_2 = pickle.load(open(prefix+"td_2.p", "rb"))

delta_t = 0.04 # time step

# -----------------------------------------------------------------------------#
# Plot initial and final graphs

fig1 = nxmod.draw_circular(deploy_traits_init_0, graph, linewidths=3)
plt.axis('equal')
plt.show()
fig2 = nxmod.draw_circular(deploy_traits_desired_0,graph, linewidths=3)
plt.axis('equal')
plt.show()

fig3 = nxmod.draw_circular(deploy_traits_desired_1,graph, linewidths=3)
plt.axis('equal')
plt.show()

fig4 = nxmod.draw_circular(deploy_traits_desired_2,graph, linewidths=3)
plt.axis('equal')
plt.show()

# -----------------------------------------------------------------------------#
コード例 #3
0
ファイル: plot_hop_graphs.py プロジェクト: proroka/diversity
adjacency_m = nx.to_numpy_matrix(graph)
adjacency_m = np.squeeze(np.asarray(adjacency_m))

# Build trait-species matrix.
rk = 0
while rk != num_species:
    species_traits, rk, s = generate_Q(num_species, num_traits)

# Build trait distribution.
deploy_robots_init = np.random.randint(0, 100, size=(num_nodes, num_species))
deploy_robots_init = deploy_robots_init * total_num_robots / np.sum(np.sum(deploy_robots_init, axis=0))
sum_species = np.sum(deploy_robots_init, axis=0)
deploy_traits_init = np.dot(deploy_robots_init, species_traits)

fig = plt.figure()
nxmod.draw_circular(deploy_robots_init, graph, linewidths=3)
plt.axis("equal")
plt.title("nhops = infinity")
plt.show()
fig.savefig("./plots/nhops_all.eps")

for nhops in range(5):
    neighbor_nodes = GetNeighbors(adjacency_m, nhops)
    deploy_robots_init_hops = BuildLocalDistribution(deploy_robots_init, node_of_interest, neighbor_nodes)
    fig = plt.figure()
    nxmod.draw_circular(deploy_robots_init_hops, graph, linewidths=3)
    plt.axis("equal")
    plt.title("nhops = %d" % nhops)
    plt.show()
    fig.savefig("./plots/nhops_%d.eps" % nhops)
コード例 #4
0
# allocate the following intial distribs as previous final
deploy_robots_init_1 = deploy_robots_final_0.copy()
deploy_robots_init_2 = deploy_robots_final_1.copy()

# calculate trait distribs
deploy_traits_init_0 = np.dot(deploy_robots_init_0, species_traits)
deploy_traits_desired_0 = np.dot(deploy_robots_final_0, species_traits)
deploy_traits_desired_1 = np.dot(deploy_robots_final_1, species_traits)
deploy_traits_desired_2 = np.dot(deploy_robots_final_2, species_traits)

# -----------------------------------------------------------------------------#
# plot graph


nxmod.draw_circular(deploy_traits_desired_0,graph, linewidths=3)
plt.axis('equal')
plt.show()


# -----------------------------------------------------------------------------#
# find optimal transition matrix

init_transition_values = np.array([])

if do_optimize:

    print "****"
    print "Optimizing 1st transition matrix"
    transition_m_0 = optimal_transition_matrix(init_transition_values, adjacency_m, deploy_robots_init_0, deploy_traits_desired_0,
                                               species_traits, t_max, max_rate, l_norm, match, optimizing_t=True, force_steady_state=FSS)