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.vrep — Functionvrep(scenario::Scenario; vertices_kwargs...) :: XPORTA.PolyhedronConstructs 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.
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.
Vertex Enumeration
The vertices of each local polytope can be enumerated for the specified Bell Scenario.
BellScenario.LocalPolytope.vertices — Functionvertices( 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".
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.
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.
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.
Vertex Counting
Count the number of local polytope vertices for the specified Bell Scenario.
BellScenario.LocalPolytope.num_vertices — Functionnum_vertices( scenario :: BlackBox ) :: Int64For $n$ outputs and $m$ inputs the number of vertices $|\mathcal{V}|$ are counted:
\[|\mathbf{V}| = n^m\]
num_vertices( scenario :: LocalSignaling;
rank_d_only = false :: Bool
) :: Int64If 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!\]
num_vertices( scenario :: BipartiteNonSignaling ) :: Int64For 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\]
Vertex Dimension
Get the dimension of specified vertex representation.
BellScenario.LocalPolytope.vertex_dims — FunctionFor 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) :: Int64Valid values of rep are "normalized" and "generalized".
vertex_dims( scenario:: BipartiteNonSignaling, rep :: String ) :: Int64Valid values for rep include:
- "non-signaling"
- "normalized"
- "generalized"