MatchingNumber
The most edges with no two sharing a vertex.
✓ checked against that system · ! checked, with disagreements (hover a chip)FindStat
St000387via LabeledGraph✓MatchingNumber(graph)The most edges with no two sharing a vertex.Typed signatures
| Type | Package | Applies |
|---|---|---|
(labeled_graph) -> number | combinatorics | always |
Details
- Defined over
LabeledGraphas an expression in_x, evaluated by compute-engine — the definition IS the implementation. - Takes a
LabeledGraphand nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer. - FindStat's St000387. The graph with no vertices gives 0.
Definition
Epsil, as the implementation runs it.
on LabeledGraph, over _x
0 if _x[1] == 0 else Apply((n: integer) => Apply((edges: list<list<integer>>) => Apply(
(inside: list<integer>) => Apply(
(totals: list<integer>) => Apply(
(adjacency: list<list<integer>>) => Apply((a_init: list<integer>) => Fold((a: list<integer>, b) => Apply(
(a_next: list<integer>) => a_next,
Apply(
(low: integer) => Join(a, [Max(a[b -
2 ^
(low - 1) +
1], Max(Map(Function(adjacency[low][w] *
(a[b -
2 ^
(low - 1) -
2 ^
(w - 1) +
1] +
1) if (b -
2 ^
(low - 1)) %
2 ^ w >=
2 ^
(w - 1) else 0, w), Range(1, n))))]),
Min(Map(Function(v if b %
2 ^ v >=
2 ^
(v - 1) else n + 1, v), Range(1, n))),
),
), a_init, Range(1, 2 ^ n -
1)), [0]),
Map(
Function(Map(Function(Max(Sum(Map(Function((1 if e[1] == i else 0) *
(1 if e[2] == j else 0) +
(1 if e[1] == j else 0) *
(1 if e[2] == i else 0), e), edges)), 0), j), Range(1, n)), i),
Range(1, n),
),
)[Length(Apply(
(adjacency: list<list<integer>>) => Apply((a_init: list<integer>) => Fold((a: list<integer>, b) => Apply(
(a_next: list<integer>) => a_next,
Apply(
(low: integer) => Join(a, [Max(a[b -
2 ^
(low - 1) +
1], Max(Map(Function(adjacency[low][w] *
(a[b -
2 ^
(low - 1) -
2 ^
(w - 1) +
1] +
1) if (b -
2 ^
(low - 1)) %
2 ^ w >=
2 ^
(w - 1) else 0, w), Range(1, n))))]),
Min(Map(Function(v if b %
2 ^ v >=
2 ^
(v - 1) else n + 1, v), Range(1, n))),
),
), a_init, Range(1, 2 ^ n -
1)), [0]),
Map(
Function(Map(Function(Max(Sum(Map(Function((1 if e[1] == i else 0) *
(1 if e[2] == j else 0) +
(1 if e[1] == j else 0) *
(1 if e[2] == i else 0), e), edges)), 0), j), Range(1, n)), i),
Range(1, n),
),
))],
Map(
Function(Max(Sum(Map(Function(1 if m %
2 ^ v >=
2 ^
(v - 1) else 0, v), Range(1, n))), 0), m),
Range(0, 2 ^ n -
1),
),
),
Map(
Function(Max(Sum(Map(Function((1 if m %
2 ^ e[1] >=
2 ^
(e[1] - 1) else 0) *
(1 if m %
2 ^ e[2] >=
2 ^
(e[2] - 1) else 0), e), edges)), 0), m),
Range(0, 2 ^ n -
1),
),
), _x[2]), _x[1])Examples
Properties #
About
| Examples | 4 |
|---|---|
| Crosswalk | FindStat |