Let i be a positive integer and V_1, V_2 be the vertex sets of a bipartite graph.

Kirsten Mcintyre

Kirsten Mcintyre

Answered question

2022-09-04

Random bipartite graph with lower bounded degrees
Let i be a positive integer and V 1 , V 2 be the vertex sets of a bipartite graph. We want to sample uniformly at random a bigraph in the set of bigraphs with vertex set V 1 V 2 such that for each v V 1 , it has at least i neighbors in V 2 and for each u V 2 , it has at least one neighbor in V 1 .
Is there any efficient way to do this?

Answer & Explanation

Dante Patton

Dante Patton

Beginner2022-09-05Added 10 answers

Step 1
It seems unlikely to find a uniform method.
If | V 1 | = m and | V 2 | = n , then this is equivalent to A 1 , , A m { 1 , , n } , with each | A k | i .
The total number of such graphs can be counted by inclusion/exclusion. Let U be the set of all ( A 1 , , A m ) with just the condition that each k has at Least i elements. Let U j be the set of such tuples where none of the A i contains j, j = 1 , , n .
Then the total such graphs is:
(1) j = 0 n ( 1 ) j ( n j ) f ( n j , i ) m
where
f ( k , i ) = p = i k ( k p ) ,
the number of subsets of a set of p elements with size at least i.
That exponent m in the sum, and the fact that f has no closed form, makes this a very tricky count.
Let’s take i = 2 , m = 3 , n = 4..
Then f ( 4 , 2 ) = 11 , f ( 3 , 2 ) = 4 , f ( 2 , 2 ) = 1 and the other values of f are zero.
So the value is:
11 3 4 4 3 + 6 1 3 = 1081 = 23 47.
So to have a uniform selection from these answers, you can’t just flip a coin some finite number of times. That results in 2 T outcomes, for some T. Indeed, you need to have a set of equal outcomes to your numbers which is a multiple of 1081.
And even then, it’s not obvious how to translate that to an element of U.
I suppose you could do more examples and see if you get a good pattern. It looks interesting that 1081 is a triangular number.
Step 2
If m = 5 , n = 4 , i = 3 , then the count is:
5 5 4 1 5 = 3121
which is prime. That makes an incremental bounded process highly unlikely to work.
A non-bounded process, such as doing trials and checking if you match the conditions and starting over if you don’t, is probably the best you can do. You can possibly do a semi-smart trial generator - one where you generate uniformly some superset of the graphs you want.
Kristopher Beard

Kristopher Beard

Beginner2022-09-06Added 18 answers

Step 1
A plausible method is rejection sampling, along the following lines:
1. For every vertex v V 1 , choose a uniformly random subset of size i from V 2 , and add edges from v to that subset.
2. If there is any vertex in V 2 of degree 0, throw everything away and start over.
In step 1, the graphs that satisfy the degree condition in V 1 are sampled uniformly at random. So if we repeat until the degree condition in V 2 is also satisfied, we end up sampling uniformly from the set of graphs that satisfy both kinds of conditions.
Unless V 2 is much much larger than V 1 , this will still be reasonably efficient. Let n 1 = | V 1 | and n 2 = | V 2 | . Each edge in a graph created in step 1 exists with probability > 1 2 : the condition that deg ( v ) i only makes edges more likely relative to the baseline. Therefore the probability that a given vertex in V 2 is isolated is less than 2 n 1 , and the probability that any vertex in V 2 is isolated is less than n 2 2 n 1 .
In particular, when n 2 2 n 1 1 , the probability of failure is less than 1 2 , and the average number of times we have to do step 1 is less than 2.

Do you have a similar question?

Recalculate according to your conditions!

New Questions in Discrete math

Ask your question.
Get an expert answer.

Let our experts help you. Answer in as fast as 15 minutes.

Didn't find what you were looking for?