-
Notifications
You must be signed in to change notification settings - Fork 1
/
example.py
37 lines (26 loc) · 1.2 KB
/
example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import numpy as np
import matplotlib.pyplot as plt
from genius_template_importer import import_template
from bidding import generate_bids
from helpers import is_pareto_efficient
if __name__ == "__main__":
template1 = import_template("templates/Camera/camera_buyer_utility.xml")
template2 = import_template("templates/Camera/camera_seller_utility.xml")
bids = generate_bids(template1['objectives'], template2['objectives'], 0.05)
points = bids[:, -2:]
pareto_points = is_pareto_efficient(points, return_mask=True)
px = points[:, 0]
py = np.ma.masked_array(points[:, 1], mask=~pareto_points)
pareto_points = np.ma.masked_array(points, mask=np.vstack(
[~pareto_points, ~pareto_points]).transpose()).compressed().reshape(-1, 2)
pareto_sorted = []
for i in range(pareto_points.shape[0]):
pareto_sorted.append((pareto_points[i, 0], pareto_points[i, 1]))
pareto_sorted = sorted(pareto_sorted, key=lambda x: x[0])
pareto_sorted = np.array(pareto_sorted)
# drawing
plt.plot(points[:, 0], points[:, 1], 'bo', ms=1)
plt.plot(pareto_sorted[:, 0], pareto_sorted[:, 1], '-r^')
plt.axis([-.1, 1.1, -.1, 1.1])
plt.show()
plt.savefig('example.png')