Add a new node to the current network

        Parameters
        ----------
        agent_type : NetworkAgent subclass
            Agent in the new node will be instantiated using this agent class
        state : object
            State of the Agent, this may be an integer or string or any other
        name : str, optional
            Descriptive name of the agent
        state_params : keyword arguments, optional
            Key-value pairs of other state parameters for the agent

        Return
        ------
        int
            Agent ID of the new node

def add_node(self, agent_type=None, state=None, name='network_process', **state_params):
        """Add a new node to the current network

        Parameters
        ----------
        agent_type : NetworkAgent subclass
            Agent in the new node will be instantiated using this agent class
        state : object
            State of the Agent, this may be an integer or string or any other
        name : str, optional
            Descriptive name of the agent
        state_params : keyword arguments, optional
            Key-value pairs of other state parameters for the agent

        Return
        ------
        int
            Agent ID of the new node
        """
        agent_id = int(len(self.global_topology.nodes()))
        agent = agent_type(self.env, agent_id=agent_id, state=state, name=name, **state_params)
        self.global_topology.add_node(agent_id, {'agent': agent})
        return agent_id