Multi-Objective Optimization¶
EPOS is capable of optimizing three different objectives:
- The global objective is abstracted and expressed by a global cost function \(g(\cdot)\) (Fore more information, see Global Cost Function), that takes as an argument the global response, \(\mathbb{g}\) (the sum of all selected plans of the agents, see Plans). The value of the global objective is called global cost and is computed as follows:
- The local objective is formulated as minimizing the average cost of all selected plans. The value of the local objective is called local cost and its value is computed as follows:
where \(l(\cdot)\) is the local cost function (see Local Cost Function) that extracts the cost of the selected plan \(s_{i}\) of the agent \(i\) at iteration \(t\). The number of agents in the hierarchy is denoted with \(N\).
- The unfairness objective is formulated as minimizing the standard deviation of the costs of the selected plans. Note that the system is considered fair if all agents select the plans with approximately equal cost. It is formulated as follows:
where \(l(s_{i}^{(t)})\) denotes the cost of the plan \(s_{i}^{(t)}\) selected by agent \(i\) at iteration \(t\).
EPOS linearly combines the three objectives in a weighted sum of objectives, formulated as follows:
where \(\gamma, \alpha, \beta \in [0, 1]\) and it must always hold \(\gamma + \alpha + \beta = 1\). The higher value of the weight expresses stronger preference towards minimizing the corresponding objective. When the value of the weight is 0, the corresponding objective is not optimized. The scalarization of the objectives before combining them in the weighted sum is subject of future work. Depending on the data, users are encouraged to implement their own objective-scalarization scheme(s).
By default \(\alpha = \beta = 0\), which means that only the global objective is optimized. The weights can be set in one of the following two ways (the example shows setting \(\alpha=0.2\) and \(\beta=0.3\)):
either setting
alpha=0.2andbeta=0.3, or- config.Configuration.java¶
public double alpha = 0.2; public double beta = 0.3;
Note that \(\gamma\) is always computed as \(\gamma = 1 - \alpha - \beta\). This example can be interpreted as follows: the global objective is optimized with preference 0.5, the local objective is optimized with preference 0.3 and the unfairness is optimized with preference 0.2.
The agent that is capable of optimizing multiple objectives is implemented in class agent.MultiObjectiveIEPOSAgent<V extends DataType<V>>.