Caveman graph

Example I - Unconnected caves

[1]:
import pop2net as p2n

env = p2n.Environment()
creator = p2n.Creator(env)
inspector = p2n.NetworkInspector(env)


class Cave(p2n.LocationDesigner):
    n_actors = 5


env.add_actors([p2n.Actor() for _ in range(25)])

creator.create_locations(location_designers=[Cave])

inspector.plot_networks()

Example II - Connected grid caves

[2]:
import networkx as nx

env = p2n.Environment()
creator = p2n.Creator(env)
inspector = p2n.NetworkInspector(env)


class Cave(p2n.LocationDesigner):
    nxgraph = nx.grid_2d_graph(3, 3)


class Bridge(p2n.LocationDesigner):
    nxgraph = nx.cycle_graph(5)

    def filter(self, actor):
        return actor.Cave_head


env.add_actors([p2n.Actor() for _ in range(45)])

creator.create_locations(
    location_designers=[
        Cave,
        Bridge,
    ]
)

inspector.plot_networks()