Distribution
| Method |
|---|
| FrontContainer |
| Front Distribution |
[[nodiscard]] double uniformity() const |
[[nodiscard]] double average_distance() const |
[[nodiscard]] double average_nearest_distance(size_t k = 5) const |
[[nodiscard]] double average_crowding_distance() const |
| Point Distribution |
double crowding_distance(const_iterator element, key_type worst_point, key_type ideal_point) const |
double crowding_distance(const_iterator element) const |
double crowding_distance(const key_type &point) const |
Parameters
k- number of nearest elements to considerelement- element for which we want the crowding distance (see below)key_type- point for which we want the crowding distance (see below)worst_point,ideal_point- reference extreme points for the crowding distance
Return value
uniformity: minimal distance between two points in the frontaverage_distance: average distance between points in the frontaverage_nearest_distance: average distance between points and their nearest pointsaverage_crowding_distance: average crowding distance (see below) between points in the frontcrowding_distance: the crowding distance of a single element
Complexity
uniformity: \(O(m n \log n)\)average_distance: \(O(m n^2)\)average_nearest_distance: \(O(k m n \log n)\)average_crowding_distance: \(O(m n \log n)\)crowding_distance: \(O(m \log n)\)
Notes
Distribution indicators measure how uniformly the points are distributed on the front. This is useful for a better approximation of the target front.
The Crowding Distance
The crowding distance indicator replaces the usual euclidean distance between points (\(\sqrt{\sum_{i=1}^m (p_i - q_i)^2}\)) with the coordinate distance between the nearest points in each dimension (\(\sum_{i=1}^m | p_i - nearest_{1}(p_i, m) | + | p_i - nearest_2(p_i, m)|\)).
Example
1 2 3 4 5 6 | |
1 2 3 4 5 6 | |
1 2 3 4 5 | |