4 """Generates linear OWA weights (normalized):
5 n: length of the weights array
6 used for suprimum operator smoothing
7 {1, 2, 3, . . ., n} : wi = 2(n − i + 1)/n(n + 1)"""
9 raise "n must be an integer number >= 1"
12 return np.array([1.0])
13 weights = np.arange(n, 0, -1)
14 denominator = n * (n + 1) / 2.0
15 if denominator == 0
or not np.isfinite(denominator):
18 raise "divided by 0.0 error or some infinite values in denimonator calculations"
19 val = weights / denominator
20 sum_vals = np.sum(val)
21 assert np.isclose(sum_vals, 1.0)
25 """Generates OWA weights for infimum operators:
26 n: length of the weights array
27 used for infimum operator smoothing
28 {1, 2, 3, . . ., n} : wi = 2i/n(n + 1)"""
30 raise "n must be an integer number >= 1"
33 return np.array([1.0])
34 weights = np.arange(1, n+1, 1)
35 denominator = n * (n + 1) / 2.0
36 if denominator == 0
or not np.isfinite(denominator):
39 raise "divided by 0.0 error or some infinite values in denimonator calculations"
40 val = weights / denominator
41 sum_vals = np.sum(val)
42 assert np.isclose(sum_vals, 1.0)