Connectivity of random k-out graphs
DefinitionReachability by a chain of friends#✓fully proved
Let \(c\) assign to each person \(i\) among \(N\) people a set \(c(i)\) of people, the friends of \(i\). A person \(b\) is reachable from a person \(a\) if there are \(m \ge 0\) and people \(p_0 = a, p_1, \dots, p_m = b\) such that for each \(j < m\), \(p_j\) is a friend of \(p_{j+1}\) or \(p_{j+1}\) is a friend of \(p_j\).
def KOutReachable (N : ℕ) (c : Fin N → Finset (Fin N)) (a b : Fin N) : Prop :=
∃ m : ℕ, ∃ p : Fin (m + 1) → Fin N,
p 0 = a ∧ p (Fin.last m) = b ∧
∀ i : Fin m, p (Fin.castSucc i) ∈ c (p (Fin.succ i)) ∨
p (Fin.succ i) ∈ c (p (Fin.castSucc i))
Used by 1
DefinitionAssignments that connect everyone#✓fully proved
Let \(c\) assign to each person \(i\) among \(N\) people a set \(c(i)\) of people, the friends of \(i\). The assignment \(c\) connects all \(N\) people when, for all people \(a\) and \(b\), there are \(m \ge 0\) and people \(p_0 = a, p_1, \dots, p_m = b\) such that for each \(j < m\), \(p_j\) is a friend of \(p_{j+1}\) or \(p_{j+1}\) is a friend of \(p_j\).
def KOutConnected (N : ℕ) (c : Fin N → Finset (Fin N)) : Prop :=
∀ a b : Fin N, KOutReachable N c a b
def KOutReachable (N : ℕ) (c : Fin N → Finset (Fin N)) (a b : Fin N) : Prop :=
∃ m : ℕ, ∃ p : Fin (m + 1) → Fin N,
p 0 = a ∧ p (Fin.last m) = b ∧
∀ i : Fin m, p (Fin.castSucc i) ∈ c (p (Fin.succ i)) ∨
p (Fin.succ i) ∈ c (p (Fin.castSucc i))
WantedExt/Probability/ScottishBook38Wanted.lean:27
Uses 1 · Used by 1
DefinitionProbability that a random \(k\)-out assignment connects everyone#✓fully proved
For natural numbers \(k\) and \(N\), \(P_{kN}\) is the number of assignments that give each of \(N\) people a set of exactly \(k\) friends other than themselves and connect all \(N\) people, divided by the number of all assignments that give each person a set of exactly \(k\) friends other than themselves. When there is no such assignment, \(P_{kN} = 0\).
noncomputable def KOutConnectedProb (k N : ℕ) : ℝ :=
(Set.ncard { c : Fin N → Finset (Fin N) |
(∀ i, (c i).card = k ∧ i ∉ c i) ∧ KOutConnected N c } : ℝ) /
(Set.ncard { c : Fin N → Finset (Fin N) |
∀ i, (c i).card = k ∧ i ∉ c i } : ℝ)
def KOutConnected (N : ℕ) (c : Fin N → Finset (Fin N)) : Prop :=
∀ a b : Fin N, KOutReachable N c a b
WantedExt/Probability/ScottishBook38Wanted.lean:35
Uses 1 · Used by 1
TheoremConnectivity threshold for random \(k\)-out friendship graphs#●ready to prove
For natural numbers \(k\) and \(N\), let \(P_{kN}\) be the proportion of the assignments giving each of \(N\) people exactly \(k\) friends other than themselves that connect all \(N\) people. Then \(P_{kN} \to 1\) as \(N \to \infty\) for every \(k \ge 2\), and \(P_{1N} \to 0\) as \(N \to \infty\).
Friendship need not be symmetric: two people are joined when either one chose the other, so a chain of friends is a path in the underlying undirected graph. Ulam asked for \(P_{kN}\) and for its limit as \(N \to \infty\), \(0\) or \(1\).
theorem_wanted k_out_connectivity_threshold :
(∀ k : ℕ, 2 ≤ k →
Filter.Tendsto (fun N => KOutConnectedProb k N) Filter.atTop (nhds 1)) ∧
Filter.Tendsto (fun N => KOutConnectedProb 1 N) Filter.atTop (nhds 0)
noncomputable def KOutConnectedProb (k N : ℕ) : ℝ :=
(Set.ncard { c : Fin N → Finset (Fin N) |
(∀ i, (c i).card = k ∧ i ∉ c i) ∧ KOutConnected N c } : ℝ) /
(Set.ncard { c : Fin N → Finset (Fin N) |
∀ i, (c i).card = k ∧ i ∉ c i } : ℝ)
WantedExt/Probability/ScottishBook38Wanted.lean:41
Sources
- S. Ulam, Problem 38 of the Scottish Book; the symmetric case was solved by Erdős for
k ≥ 2, and D. S. Jungreis gave a detailed general solution; see the commentary in R. D. Mauldin (ed.), The Scottish Book, 2nd ed. (Birkhäuser, 2015).
Uses 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.