예제 #1
0
    def setUp(self):
        self.K_stable = 10

        # setup a 2-node graph
        G = nx.Graph()
        G.add_edge(1, 2, weight=self.K_stable)
        inputs = {1: 1, 2: -1}
        self.two_node_net = KuramotoNetwork(G, inputs, weight='weight')

        # setup a ring network with inputs -1 +1 -1 +1...
        self.ring_size = 8
        ring_graph = nx.cycle_graph(self.ring_size)
        for u, v in ring_graph.edges():
            ring_graph[u][v]['weight'] = self.K_stable
        inputs = {
            node: (node % 2 - 0.5) * 2
            for node in np.arange(self.ring_size)
        }
        self.ring_net_even = KuramotoNetwork(ring_graph,
                                             inputs,
                                             weight='weight')

        # setup a ring network with inputs +1 +1 +1 +1 -1 -1 -1 -1 ...
        inputs = {
            node: (int(node < self.ring_size / 2) - 0.5) * 2
            for node in np.arange(self.ring_size)
        }
        self.ring_net_odd = KuramotoNetwork(ring_graph,
                                            inputs,
                                            weight='weight')