Vertices

Vertices are extreme points of the local polytope. They correspond to deterministic strategies. The vertex representation of a convex polytope can be computed via the Polyhedra.jl interface.

Polyhedra.vrepFunction
vrep(scenario::Scenario; vertices_kwargs...) :: XPORTA.Polyhedron

Constructs a Polyhedron using the vertex representation. See Polyhedra.jl for more details. The vertices_kwargs keyword arguments are passed through to the vertices function for each Scenario.

Return Type

This function differs from the Polyhedra.jl implementation in that it returns a Polyhedron type rather than a V-Representation. This is done to reduce the number of steps required to construct a polyhedron.

source

Vertex Enumeration

The vertices of each local polytope can be enumerated for the specified Bell Scenario.

BellScenario.LocalPolytope.verticesFunction
vertices( scenario :: BlackBox;
    rep = "normalized" :: String
) :: Vector{Vector{Int64}}

Generates the Local Polytope vertices for a BlackBox scenario. Valid represenations are:

*rep == "normalized" or rep == "generalized".

source
vertices( scenario :: LocalSignaling;
    rep = "normalized" :: String
    rank_d_only = false :: Bool
) ::  Vector{Vector{Int64}}

Generates the deterministic strategies for the local polytope of LocalSignaling scenarios. The rank_d_only keyword arg specifies whether to exclude vertices which use fewer dits of communication and thus have a matrix rank less than d.

Warning

The vertices computed in this method are vectorized directly from a strategy matrix by column-majorization. These vertices are distinct from those produced by older LocalPolytope.vertices() methods which are row-majorized.

source
vertices( scenario :: BipartiteNonSignaling,
    rep="non-signaling" :: String
) :: Vector{Vector{Int64}}

Enumerates the LocalPolytope vertices for the BipartiteNonSignaling scenario. Valid representations for the vertices include:

  • "non-signaling", "normalized", "generalized"

A DomainError is thrown if a valid representation is not specified.

source

Vertex Counting

Count the number of local polytope vertices for the specified Bell Scenario.

BellScenario.LocalPolytope.num_verticesFunction
num_vertices( scenario :: BlackBox ) :: Int64

For $n$ outputs and $m$ inputs the number of vertices $|\mathcal{V}|$ are counted:

\[|\mathbf{V}| = n^m\]

source
num_vertices( scenario :: LocalSignaling;
    rank_d_only = false :: Bool
) :: Int64

If rank_d_only = true, then only strategies using d-dits are counted. For $X$ inputs and $Y$ outputs the number of vertices $|\mathcal{V}|$ are counted:

\[|\mathbf{V}| = \sum_{c=1}^d \left\{X \atop c \right\}\binom{Y}{c}c!\]

source
num_vertices( scenario :: BipartiteNonSignaling ) :: Int64

For two non-signaling black-boxes with $X$ and $Y$ inputs and $A$ and $B$ outputs respectively, the number of vertices $|\mathcal{V}|$ are counted:

\[|\mathbf{V}| = A^X B^Y\]

source

Vertex Dimension

Get the dimension of specified vertex representation.

BellScenario.LocalPolytope.vertex_dimsFunction

For the given Scenario, returns the length of the vertex in the representation specified by rep. A DomainError is thrown if the rep is invalid.

vertex_dims(scenario :: Union{BlackBox,LocalSignaling}, rep :: String) :: Int64

Valid values of rep are "normalized" and "generalized".

source
vertex_dims( scenario:: BipartiteNonSignaling, rep :: String ) :: Int64

Valid values for rep include:

  • "non-signaling"
  • "normalized"
  • "generalized"
source