2. Basic Order

This notebook contains a basic ordering example for vector optimization.

[1]:
import numpy as np
from vopy.order import ConeTheta2DOrder

Let’s define two different cones to see their difference. The former will be an acute cone and the latter will be an obtuse cone.

[2]:
order_acute = ConeTheta2DOrder(cone_degree=45)
_ = order_acute.ordering_cone.plot()
../_images/examples_02_basic_order_3_0.png
[3]:
order_obtuse = ConeTheta2DOrder(cone_degree=135)
_ = order_obtuse.ordering_cone.plot()
../_images/examples_02_basic_order_4_0.png
[4]:
pt1, pt2 = np.array([[0,    0],
                     [0.05, 1]])

We define \(\text{pt1} = (0, 0)\) and \(\text{pt2} = (0.05, 1)\). Surely \(\text{pt2}\) is better than \(\text{pt1}\)… right? Actually, it depends on the partial ordering.

[5]:
print("Does pt2 dominate pt1 in acute cone ordering?: ", order_acute.dominates(pt2, pt1))
print("Does pt2 dominate pt1 in obtuse cone ordering?:", order_obtuse.dominates(pt2, pt1))
Does pt2 dominate pt1 in acute cone ordering?:  [False]
Does pt2 dominate pt1 in obtuse cone ordering?: [ True]