Agents in the network¶
The Agent
class is meant to represent the local computing units that collaborate in the network in order to solve some specific problem.
Agents are instantiated by defining their in/out-neighbors and the weights they assign their neighbors. For example, consider the following network
Then, agent 0 is defined as:
from disropt.agents import Agent
agent = Agent(in_neighbors=[1,2],
out_neighbors=[2],
weights=[0.3, 0.2])
Local data of an optimization problem¶
Assigning a local optimization problem to an agent is done via the set_problem
method,
which modifies the problem
attribute of the agent.
Assume that the variable problem
contains the local problem data, according to the procedure
described in the previous page. Then, the variable is assigned to the agent by:
agent.set_problems(problem)
Local objective functions, constraints and all the operations related to the problem can be accessed
through the attribute problem
. For example:
agent.problem.objective_function.eval(pt) # evalate the objective function at pt
agent.problem.constraints # -> return the list of local constraints